yoossh’s diary

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

2020-01-01から1年間の記事一覧

Point Cloud LibraryをVisual Studio 2019で使う(その3)

前回までにPoint Cloud LibraryをVCPKGで導入しました。前回までに作成した単純に点群データを読み込むようなプロジェクトだと、CMakeを使ってVisual Studio用のプロジェクトを生成しようとしても特に問題はありませんでした。ところが、実装するコードによ…

ベクトル・行列演算のライブラリEigenをVisual Studio 2019用に導入する

ベクトル・行列演算のライブラリEigenを配置します。Eigen公式ページからソースをダウンロードします。私はEigen 3.3.7をダウンロードして、C:\Git\Eigenに展開しました。ビルドは不要ですが、Eigenのソースコードを展開するためにVisual Studioを使います。…

Point Cloud LibraryをVisual Studio 2019で使う(その2)

Point Cloud Libraryを使って、今回はPLY形式のファイルから点群データを読み込んでみたいと思います。方法としてはひじょうに簡単で、下記のようにpcl::PLYReaderクラスを使って読み込むことが出来ます。 #include #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/io/ply_io.h> const cha</pcl/io/ply_io.h></pcl/point_types.h></pcl/io/pcd_io.h>…

Point Cloud LibraryをVisual Studio 2019で使う

Point Cloud Libraryは点群データを扱うのにとても便利なライブラリです。Visual Studio 2019で使ってみましたので、その方法についてご紹介します。 まず最初にPoint Cloud Library(PCL)をインストールするために、Windows/Linux/MacOSの環境に様々なライブ…

Ceres SolverをVisual Studio 2019で使って最適化問題を解く(その2)

前回はCeres Solver自体のビルドまでを解説しました。今回は、Ceres Solverに含まれているサンプルプログラムrobot_pose_mle.ccを動かしながら、Ceres Solverの使い方を説明したいと思います。 説明はこのサンプルのソースコード冒頭に記載されているコメン…

(Visual Studio 2019 C++)指定したフォルダを開いた状態でExplorerを起動する

指定したフォルダを開いた状態でExplorerを起動する方法について調べたので、備忘録として記載しておきます。 下記コードのようにexplorer.exeの引数にフォルダを指定して、systemで実行します。 #include <iostream> int main(){ std::string command = "explorer.exe</iostream>…

Ceres SolverをVisual Studio 2019で使って最適化問題を解く

Ceres Solverの公式ページを参考にVisual Studio 2019で最適化問題を解いてみます。今回はまずはCeres SolverをWindowsでビルドするところまでを実施してみます。 ベクトル・行列演算のライブラリEigenを配置します。Eigen公式ページからソースをダウンロー…

Visual StudioでBoostを使う際にCMakeで失敗する問題

BoostをCMakeしてVisual Studioの環境で使おうとすると、うまくfind_packageが通らないケースがあります。なんとか解決出来たので、備忘録として記載しておきます。 まずBoostの公式ページから適切なバージョンのBoostソースコードをダウンロードして適当な…

ORBによる特徴点抽出とマッチング(その2)

前回は単純に特徴点をマッチングするだけだったので、間違ったマッチングが結構ありました。そこで今回はマッチング結果の特徴量の距離によるフィルタリングとRANSACの実行により、どれだけ間違ったフィルタリングが排除されているかを見てみたいと思います…

VINS-Mono SLAMをiPhone 11で動作確認する

iOS

VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimatorは単眼カメラで最も大きい弱点である実スケールでの環境マップ生成という課題をIMUとの融合で解決する手法です。iOS用の環境が提供されているので、iPhone 11で動作させてみま…

OpenEXRをVisual Studio 2019でビルド

SLAMやSfMなどPhotogrammetryでよく使われている画像フォーマットであるOpenEXRという画像を扱うOSSをVisual Studio 2019でビルドしてみましたので、その手順をご紹介します。 まず、ソースコードを取得します。ここから、Source code (zip) と書かれたリン…

ORBによる特徴点抽出とマッチング

今回はSfMやSLAMなどで使われる画像の特徴点と特徴量ベクトルの抽出と、画像間の特徴点マッチングについて、VisualStudio 2019で試してみましたので、そのコードについて説明をします。 #include #include #include #include #include #include #include #in…

boostのfilesystem(C++)をVisualStudio 2019で使う

ファイル操作などが便利なboostライブラリのfilesystemを使ってみたいと思います。標準ライブラリでも提供されていますが、あえてboostを使ってみました。 boostのインストールはこのページなど参考にしてください。boostはビルドせずにコピーするだけで使う…

標準のコマンドシェルをPowerShellに切り替える方法および指定フォルダをカレントフォルダにしてコマンドシェルを起動する方法

少々タイトルが長くなってしまいましたが、本日は以下の2点について説明します。 標準のコマンドシェルをコマンドプロンプトからPowerShellに変更する方法[スタート]メニューアイコンを右クリックしたときに[コマンドプロンプト]という項目があり、これをク…

COLMAPで動画から3D点群データを作成する

動画をiPhoneで撮影して、その動画ファイルからCOLMAPを使って3D点群データを作成してみます。今回、撮影したのはお気に入りのJaguar F-Paceのモデルです。 まず、動画をフレーム毎の静止画に変換します。変換にはFFmpegというツールを使います。このツール…

COLMAPをVisual Studio 2019でビルドする際の問題

以前はVisual Studio 2017でビルドがうまく出来ていたので、同様に出来るかとVisual Studio 2019でもビルドを試したところ、Glewのビルドでmemsetの外部参照エラーが発生しました。いろいろと調査してVisual Studio 2019の最新ドライバの問題であろうことは…

COLMAPをVisual Studio 2017(x64)でビルドする(その3)

補足情報です。Python 3.7.4の環境だとSSLの認証関係のエラーが発生するようなので、その場合は、下記のようにビルドスクリプトに--no_ssl_verificationオプションを追加して回避してください。 python .\scripts/python/build.py --build_path "C:/Git/colm…

OpenCVをVisual Studio 2019でビルド

今回は、いろいろなところで活用出来る、すぐれたコンピュータビジョンライブラリであるOpenCVをVisual Studioでビルドします。バイナリでの配布もされていますが、あえてビルドをしてみます。 まず、OpenCVのGitHubからソースをクローンします。 私の環境で…

Windows Embedded Compact 2013 更新プログラム(2019年12月)

Windows Embedded Compact 2013用 の更新プログラムがリリースされています。 Windows Embedded Compact 2013 Updates 2019年12月31日までの最新の更新が含まれています。

ソースコードを読む(Code Reading)用の無料ツールSourcetrail (その2)

まず、先にSourcetrailをインストールしておきます。ここから[Sourcetrail_2019_4_61_Windows_64bit_Installer.zip]をダウンロードしてインストールします。 ここからはVisual Studioでの作業です。 メニュー[拡張機能]-[拡張機能の管理]でManage Extensions…