YOLO --- OpenCVの再利用とYOLOv3
https://github.com/JackKoLing/opencv_deeplearning_practice/tree/master/pracice3_opencv_yolov3 @ OpenCVの公式サイトでYOLOv3 ダウンロードと準備: yolov3.weightsウェイトファイル、yolov3.cfgネットワークビルドファイル、ココは、 .names、xxx.jpg、xxx.mp4ファイル、object_detection_yolo.cpp、object_detection_yolo.py他の文書、環境に依存: C ++コンパイラー環境(例えば、G ++ / VScode)、OpenCV3.4.2 + ( ディレクトリをインストールすることを忘れないでください)コンパイラ:ダウンロードソースファイルは、直接コンパイルした複雑なアプリケーションを変更せずにできる サポート: Windowsの+は、Linux + CPU + GPU(該当インテルに)
特徴:
(1)YOLOv3 OpenCVの中で+のUbuntuのウィンドウで使用することができます。
前に行って(2)窓の下で、object_detection_yolo.cppは、Visual Studioのコンパイラで(VS)です。
(3)Ubuntuの下では、この時間は、object_detection_yolo.cppがg ++コンパイラです。
DNNの(3)OpenCVのは、GPUはテストのみIntelのGPUを使用していますので、何もIntelのGPUがない場合は、コードを使用すると、CPUに切り替え設定します。
使用:
(1)object_detection_yolo.cpp、実行:
コンパイル、G ++ `PKG-設定OpenCVの --cflags` object_detection_yolo.cpp -o object_detection_yolo` PKG-設定OpenCVの--libs` -std = C ++ 11
テスト、単一の画像:
./object_detection_yolo --image = /データ/ 1.JPG。
ビデオファイル:
。./object_detection_yolo --video = /データ/ run.mp4
(2)object_detection_yolo.py、実行します。
単一の画像を:
のpython3 object_detection_yolo.pyへ= bird.jpgは--image
ビデオファイルを:
python3 object_detection_yolo.py --video = run.mp4
#README.TXT
getModels.shファイルの実行から必要なモデルファイルをダウンロードするには、コマンドラインを sudoのはchmod A + X getModels.sh 。/ getModels.sh Pythonの: 色付けするコマンドラインの使用 単一の画像: python3 object_detection_yolo.py --image = bird.jpg ビデオファイル: python3 object_detection_yolo.py --video = run.mp4 C ++ : 単一の画像: 。/ object_detection_yolo。アウト --image = bird.jpg ビデオファイル: 。/ object_detection_yolo。アウト --video = run.mp4 コンパイル例: G ++ -ggdb `のpkg-config設定--cflags --libsは/ usr / local /セラー/ opencv3 / 3.4。2 / libに/ pkgconfig / opencv.pc` object_detection_yolo.cpp -o object_detection_yolo。でる G ++ -ggdb `のpkg-config設定--cflags --libsは/ usr / local / opencv3。4.2 / libに/ pkgconfig / opencv.pc` object_detection_yolo.cpp -o object_detection_yolo。でる OpenCVのために#2.4 .X CD /パス/に/ OpenCVの/サンプル/ C / OpenCVのため#3 CD /パス/に/ OpenCVの/サンプル/ CPP / #コンパイル G ++ -ggdb facedetect.cpp -o facedetect `のpkg-config設定の--cflags - LIBS opencv` #run 。/ facedetect / usr / local / opencv3。4.2 /含む/ opencv2 /? CD /ホーム/ U / opencv3。4.2 /サンプル/ CPP /? G ++ -ggdb `pkgconfig --cflags --libsは/ usr / libに/ x86_64の-のlinux-gnuの/ pkgconfig / opencv.pc` object_detection_yolo.cpp -o object_detection_yolo。でる G ++ -ggdb object_detection_yolo.cpp -o object_detection_yolo。アウト `pkgconfig --cflags --libsは/ usr / libに/ x86_64の-のlinux-gnuの/ pkgconfig / opencv.pc` G ++ object_detection_yolo.cpp -o object_detection_yolo `pkgconfig --cflags --libsは/ usr / libに/ x86_64の-のlinux-gnuの/ pkgconfig / opencv.pc`
-------------------具体的な問題と解決策遭遇----------------------
(1)限り良い環境を構築し、object_detection_yolo.py実行よりスムーズに、どのような問題は発生しません
(2)object_detection_yolo.cppコンパイラを、問題に会いました
実行します。 G ++ object_detection_yolo.cpp -o object_detection_yolo `pkgconfig --cflags --libsは/ usr / libに/ x86_64の-のlinux-gnuの/ pkgconfig / opencv.pc` エラー: NOのためのパッケージ変更' object_detection_yolo 'が見つから :object_detection_yolo.cpp 10:31を:致命的なエラー:opencv2 / highgui.hpp:そのようなファイルやディレクトリ の#include <opencv2 / highgui.hpp> ^ コンパイルが終了しました。 U @ u1604:〜/ yolov3-opencv3。4.2 / YOLO-OpenCVの$ G ++ `のpkg-config設定object_detection_yolo --cflags` object_detection_yolo.cpp -o OpenCVの`のpkg-config設定のOpenCVの- libs` 見つかりませんでしたobject_detection_yoloパッケージに pkg- 設定の検索パス。 おそらく、あなたは`object_detection_yolo.pcを含むディレクトリを追加する必要があります" PKG_CONFIG_PATH環境変数に NOのためのパッケージ変更' object_detection_yolo 'が見つから :object_detection_yolo.cpp午前11時31分を:致命的なエラー:opencv2 / imgproc.hpp:そのようなファイルやディレクトリ の#include <opencv2 / imgproc.hpp> ^ コンパイルが終了しました。 U @ u1604:〜/ yolov3-opencv3。4.2 / YOLO-OpenCVの$ G ++ `のpkg-config設定object_detection_yolo --cflags` object_detection_yolo.cpp -o OpenCVの`のpkg-config設定のOpenCVの- libs` 見つかりませんでしたobject_detection_yoloパッケージに pkg- 設定の検索パス。 おそらく、あなたは`object_detection_yolo.pcを含むディレクトリを追加する必要があります" PKG_CONFIG_PATH環境変数に NOのためのパッケージ変更' object_detection_yolo 'が見つから :object_detection_yolo.cpp午前13時27分を:致命的なエラー:opencv2 / dnn.hpp:そのようなファイルやディレクトリ の#include <opencv2 / dnn.hpp> ^ コンパイルが終了しました。
解決策:
にobject_detection_yolo.cppチェックhighgui.hpp、imgproc.hppを、dnn.hppは、ファイルを見つけることができ、憶測を読んで、パスで入って来ていない、変更するには、プロンプトに従い、
書式#include <opencv2 /のHighGUI / highgui.hpp> #
含める<opencv2 / imgproc / imgproc.hpp>
の#include <opencv2 / DNN / dnn.hpp>
//#含める<opencv2 / highgui.hpp>
//#含める<opencv2 / imgproc.hpp>
//#<含めるopencv2 / dnn.hpp>
--------------------
コピー
のsudoのcp -r /ホーム/ユーザ名/デスクトップ/ libには/ usr
にsudoのcp -r /ホーム/ U /デスクトップ/dnn.hppは/ usr /含める/ opencv2 / DNN
新
sudoのタッチファイル名新しいファイル
はsudoます。mkdirフォルダ名の新しいフォルダが
削除
sudoをRM -rfフォルダを
sudoのRM -rfファイル
----------------------------------
以前、スルー
継続実行: G ++ `PKG-設定OpenCVの--cflags` object_detection_yolo.cpp -o object_detection_yolo` PKG-設定OpenCVの- libs`
(参考G ++` PKG-設定OpenCVの--cflags` opencv.cpp OpenCVの`のpkg-config設定-o OpenCVの- libs`#はコンパイル、OpenCVのライブラリに含まれます)
エラー:
------------------------- ----- U @ u1604:。〜/ yolov3-opencv3 4.2 /ヨロ-G ++ OpenCVの$ `PKG-config設定OpenCVの--cflags` object_detection_yolo.cpp -o object_detection_yolo` PKG-config設定OpenCVの--libs` object_detection_yolo.cpp:では'関数int型のmain(int型、char型 ** :') object_detection_yolo.cppを:77:31:エラー:への呼び出しに該当する関数 'のstd :: basic_ifstream <文字> :: basic_ifstream(STD :: __ cxx11 ::文字列&') ifstreamのIFILE(STR)。 ------------------------------ 解く: GCC / G ++のC ++コンパイラ11(G ++のみ4 0.8以上++サポートされているC 11規格)。G ++ --version G ++ -V OKを実行: Gを ++ `PKG-設定OpenCVの--cflags` object_detection_yolo.cpp -o object_detection_yolo ` PKG-設定OpenCVの--libs` -std = C ++ 11 実行可能ファイルの実行:./ object_detection_yolo --image = /データ/ 1.JPG。