yoossh’s diary

Microsoft MVP for Internet of Things の yoossh です。Windows系コンピュータビジョンや組み込みシステム、Azure IoTに関連するトピックスをお届けします。

Windows Embedded Standard

OpenMVSをVisual Studio 2022でビルドする(その3)

OepnMVS関連で3回目の解説です。前回、MetashapeからOpenMVS形式に変換してテクスチャ付きの3Dモデルを生成しました。今回は、その際に行ったMetashapeからOpenMVS形式への変換について、ソースコードを覗きながら、どのようにMetashapeで生成したファイルが…

Windows XPモードで作成した仮想PC環境をHyper-Vに移行した際にマウスカーソルが上下逆に動く

Windows Embedded CE6.0開発環境を再構築するために、Windows XPモードで作成した仮想PC環境をHyper-Vに移行する方法について投稿しましたが、マウスの挙動がおかしいことに気づきました。よくよく観察してみると、マウスカーソルの上下の動きが、実際のマウ…

Yahboom Jetson Orin NX 開発キットにVisual Studio Codeでリモート接続

Jetson NanoなどNVIDIAが出しているたくさんのボードはコンピュータビジョン系の解析やAIなどGPUを活用した様々な用途に活用できるだけでなく、Linuxを搭載していながらも、MicrosoftのAzure IoT Edgeデバイスとして利用もできるとても便利なボードです。前…

Yahboom Jetson Orin NX 開発キットを組み立てる際のケーブル配線について

Azure IoT Edgeデバイス(Linux)として利用も出来るJetson Orin NXを使ってVisual Studio Codeとのリモートデバッグをやりたくて、Yahboom Jetson Orin NX 開発キットを購入しましたが、ケーブル配線がマニュアルにも掲載されておらず苦労したので、備忘録と…

Windows XPモードで作成した仮想PC環境をHyper-Vに移行する(Windows Embedded CE6.0開発環境)

Windows 7に搭載されていたXPモード。Windows XPが様々なところで利用されていて、継続利用したいユーザー向けにマイクロソフト社が提供していた機能です。Windows Embedded CE6.0開発環境を再構築しないといけないという理由があり、このXPモードで生成した…

射影変換により画像上の座標から実座標を算出する(Visual Studio Code + Python)

写真画像上に写っている物体の位置、つまり座標が実際にはどんな座標なのかを知りたいシーンがあると思います。下図のように座標または大きさが既知の四角形が実物にも画像上にも存在する場合は、射影変換(Homography transformation)を使うことで、画像上の…

Detector-Free Structure from MotionをWindows 11(WSL)上でビルドする

Windows上でUbuntu 20.04を動作させて、その上でDetector-Free Structure from Motionをビルドしてみます。通常のSfMパイプラインの場合、最初に特徴点と呼ばれる点をすべての画像から抽出し、それらを複数画像間でマッチングを行います。これらマッチングさ…

OpenMVS を Visual Studio 2022でビルドする (その2)

OpenMVS(Multi-View Stereo)はMulti-Viewステレオという手法で三次元を再構築することを目的としたコンピュータビジョンライブラリです。OpenMVGのようなSfM(Structure-from-Motion)パイプラインのオープンソースプロジェクトは写真を解析してカメラ姿勢を推…

Gaussian SplattingをWindows (Visual Studio 2022) の環境で動作させる

Gaussian SplattingとNeRFは、両方とも3次元のシーンを再構築するための手法ですが、そのアプローチにはいくつかの機能的な違いがあります。 まず、Gaussian Splattingは、複数の画像からの情報を使用して3Dシーンを再構築します。これは、画像から得られる2…

Vcpkgでビルド中にtiffでエラーが発生

Vcpkgでビルド中にliblzmaでエラーが発生する問題に遭遇して回避策を見つけたので共有させていただきます。Visual Studio 2022環境で発生したケースですが、他のバージョンでも同様のケースになる可能性があると思います。 下記のファイルでエラーを確認して…

Windows 11にリモートデスクトップ接続(RDP)したときにキーボードが正しく入力できない問題の対策

Windows 11にリモートデスクトップ接続(RDP)したときに、日本語キーボードだと、正しく文字が入力できないケースがあります。私の環境ではMacのリモートデスクトップで接続したときに発生しました。 例えば、以下のようなケースでは同じケースだと思います。…

GTSAMをVisual Studio Code上で使ってみる(その3)

コードの解説の続きです。 下記のコードでは、オドメトリとレンジ測定を処理するループが設定されています。オドメトリデータと測距データが組み合わせられ、newFactorsとinitialの値が更新されます。また、ISAM2のアップデートが行われ、推定結果が計算され…

GTSAMをVisual Studio Code上で使ってみる(その2)

GTSAMをVisual Studio Code上で使って、実際の動き、というよりデータ(数値)がどのように計算されているのかについてとても分かりやすく説明してくれている"GTSAM by Example"というページ(e-book)に沿って解説させていただきます。 前回は、ひとまずソース…

GTSAMをVisual Studio Code上で使ってみる(その1)

GTSAMをVisual Studio Code上で使って、実際の動き、というよりデータ(数値)がどのように計算されているのかについて分析してみましたので、ご紹介します。GTSAMがどんなライブラリかというと、GitHubのページに下記のように紹介されています。 GTSAM is a C…

WSLの初期インストールからUbuntuの起動まで

Windowsをインストールしたての環境にWSLを初期インストールしてUbuntuが起動できるようになるまでに、実は結構はまることがあり、備忘録として投稿しておきます。 まず、管理者権限でWindows PowerShellを起動して、下記コマンドで仮想化機能を有効にします…

特定のファイルをGit Hubの管理対象から外す方法

特定のファイルをGitHubの管理対象から外す方法(管理対象外にする)について少し苦労したことがあるので、備忘録として共有させていただきます。 まず、管理対象から外す時は、下記のようにファイル名を指定することで実現できます。 $ git rm --cached <フ…

YOLOv8によるインスタンスセグメンテーションの実験(Visual Studio Code編)

YOLOはとても注目されている物体検出と画像セグメンテーションのモデルで、You Only Look Once(一度見るだけでOK!)の略です。2015年にワシントン大学によって開発され、そのリアルタイム性と高精度さから注目されています。 こちらのページを参考にしてYOLO …

MacのBootCamp上のWindowsでWSLを利用するためのおまじない

MacのBootCamp上のWindowsではデフォルトで仮想機能が無効になっているので、そのままではWSLを利用できません。そこでWSLを利用できるようにするためのおまじないについてご紹介します。 管理者として PowerShell を起動します。下記コマンドでWSL2をインス…

Azure Virtual Desktop(旧Windows Virtual Desktop)の日本語キーボード対応(Mac)

MacからAzure Virtual Desktopに接続する方法はこちらで紹介させていただきました。ただ、Macのリモートデスクトップアプリで接続しても、Mac側はキーボードレイアウトが日本語キーボードなのに、なぜかAzure Virtual Desktop側はUSキーレイアウトになってし…

Windows 11の仮想マシンをM1チップのMacBook Proで動かしてみました(その2)

前回、UTMを使ってM1チップのMacBook Pro上でWindows 11の仮想マシンを動かしてみました。その後、利用中に少し設定変更が必要な点に気づいたので、それらの設定内容についてご紹介します。 まず、前回作成したWindows 11仮想マシンの設定画面を開きます。 1…

Windows 11の仮想マシンをM1チップのMacBook Proで動かしてみました

Apple M1チップを搭載したMacではIntel版WindowsのBootCampも構築出来ず、不便な思いをしている方もあると思います。昨年はIntel版Windows 10をUTMという仮想環境上で動かす方法について説明しました。ただ、Intel版はCPUをエミュレートして動かしているので…

Visual Studio CodeでPython実行時の引数を指定する方法

Visual Studio CodeでPythonを実行する際に、Pythonコードに対して決まった引数を指定したいことがあると思います。その際の引数の指定方法について説明します。 まず、Visual Studio Codeのメニューで[Run]-[Configuration]を実行します。 デバッグ環境を聞…

AIによる特徴点マッチングSuperGlueをVisual Studio Codeで試してみる

特徴点マッチングを特徴量ではなく、AIで実行するSuperGlue(SuperGlue: Learning Feature Matching with Graph Neural Networks)をVisual Studio Codeで実験してみましたので、その方法についてご紹介します。 まず、Python環境の構築です。SuperGlueで使用…

ドローンのフライトコントローラ用OS(PX4)をWindows上でビルドする

ドローンの機体を制御するコンピュータであるフライトコントローラ用OSの開発環境は、一般的にはWindows非対応なので、通常はUbuntuを別PCあるいは仮想PC環境に用意しないといけません。ただ、私は普段はWindows PCを使っているため、Ubuntuとのデータやり取…

Visual Studio 2022でBoostをビルドする

BoostのページからBoostソースコードをダウンロードして適当なフォルダに展開します。この時点で最新版Ver.1.81.0だったので、boost_1_81_0.zipをC:\dev\boost_1_81_0に展開しました。 コマンドプロンプトでC:\dev\boost_1_81_0に移動します。下記のようにバ…

ソースコードのHTML表記(ハイライト)変換

ブログに投稿する際、ソースコードをハイライトするために活用しているPygmentsについて紹介したいと思います。 PygmentsはPython Syntax Highlighterと言って、様々なソースコードを言語ごとの文法で色分け表示するPython ツールです。普段はソースコードを…

Visual Studio 2022でRTKLIBをビルドして後処理位置測位(PPK)を実施

Windows用ビルド済みの実行モジュールで後処理位置測位実施例をWindowsで後処理PPKを試すで解説させていただきました。今回は、Visual Studio 2022を利用してCUIベースで同様の処理を実現するconvbinexeやrnx2rtkp.exeを自力でビルドと実行した手順について…

Windowsで後処理位置測量PPKを試す

ドローンによる写真測量で注目されているRTK測量ですが、RTKはその名称Real-Time Kineticの通り、インターネットを通してリアルタイムに基地局データを取得しながら位置測位をする方式です。しかし、インターネットの無い環境など、いくつかの制約からRTKが…

Visual Studio CodeでPythonのデバッグ(Mac編)

AnacondaとVisual Studio Codeはダウンロードしてインストール済みの前提です。 ここからはターミナル上での作業です。 myenvという名称の仮想環境を作成します。下記のようにbaseを複製して作成します。作成が終わったらmyenvを有効にします。 conda create…

C++でファイル操作をする方法(Visual Studio 2022)

個人的に仕事効率化などの目的で、ローカルフォルダ内のファイル一覧をリスト化して、それらのファイル名を特定の処理をして、その結果、一定の規則でファイル名を変換して、出力する、といったようなファイル操作をするプログラムを作ることがあります。そ…