まず環境問題について。
以前はubuntu18.04を使用していて、orbslam2では問題なく動作していましたが、両者を組み合わせると必ず「セグメンテーション違反」が発生し、ネット上で解決策も色々調べましたが解決策が無く、最終的にはubuntu18.04に変更しました。 ubuntu14. .04、対応するインストールパッケージをインストールし、最終的にセグメンテーション違反を解決しました(これは実際には解決策ではありません、それは時々起こるだけであり、私はまだ困惑しています)
まず、pip、cmake、git およびその他の必要なパッケージをインストールします。これらのパッケージをインストールするために参照した csdn リンクは次のとおりです。
sudo apt-get install git
sudo apt-get install cmake
sudo apt-get install g++ gcc
pangolin バージョン 0.5 をインストールします。バージョン 0.5 であることを覚えておいてください。最新バージョンは動作せず、パッケージの競合が発生します。
お気に入りの unbuntu ディレクトリに解凍します。私のディレクトリは /home/lyy の直下にあります。
フォルダー内のターミナルを開きます。これはファイルのルート ディレクトリです。
mkdir ビルド
CD ビルド
cmake .. CMAKE_BUILD_TYPE=リリース
作る
sudo メイクインストール
opencv3.4.12 をインストールします (これは私がインストールしたバージョンです) opencv をインストールするときは、事前に依存関係パッケージをインストールする必要があります。このリンクは非常に完全です。
mkdir ビルド
CD ビルド
cmake .. CMAKE_BUILD_TYPE=リリース
作る
sudo メイクインストール
eigen3.2.10 をインストールします (これは私が従ったバージョンです)
同上:
mkdir ビルド
CD ビルド
cmake .. CMAKE_BUILD_TYPE=リリース
作る
sudo メイクインストール
これで環境がインストールされました。まずここで orbslam2 を実行して、成功したかどうかを確認します。
実行コマンドのパラメータは、公式 Web サイト orbslam2 に従って指定できます。
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM3.yaml ~/Desktop/dataset/TUM/rgbd_dataset_freiburg3_walking_halfsphere_change ~/Desktop/dataset/TUM/rgbd_dataset_freiburg3_walking_halfsphere_change/associate_half.txt
これを実行してから、orbslam2 と yolov5 の組み合わせの実行を開始できます。
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM3.yaml ~/桌面/dataset/TUM/rgbd_dataset_freiburg3_walking_halfsphere_change ~/桌面/dataset/TUM/rgbd_dataset_freiburg3_walking_halfsphere_change/associate_half.txt detect_result/T UM_f3halfsphere_yolov5x/detect_result_s /
rgbd_dataset_freiburg3_walking_halfsphere データ セットを実行すると、yolo detect_result が失敗するなどの問題がいくつか発生します。
主な解決策は、detectresult の結果を出力して、slam が必要とするファイル名の種類を確認することです。私のものは次のとおりです。
strPathToDetectionResult:detect_result/TUM_f3halfsphere_yolov5x/detect_result_s/1341846464.438100.txt
テスト結果の txt ファイルに上記の形式で名前を付けるだけです。
ただし、実行はできますが、別の問題が発生します。つまり、初期段階で画像を検出するためにyoloを使用する場合、オブジェクトが検出されない可能性があり、対応するtxtファイルが存在しないため、この時点では手動でまたは、より良い認識効果を持つモデルを使用します。検出を実行して正確なファイルを生成すると、正常に実行されます。