🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Darknet

Darknetは、C言語で記述されたオープンソースのニューラルネットフレームワークで簡単にインストールすることが可能です。学習済みモデルとアルゴリズムも配布しており、ダウンロードすれば容易に動かすこともできます。

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Q&A

解決済

1回答

3797閲覧

darknetを準備する時にre-makeできない

_KingdomOfMoray

総合スコア7

Darknet

Darknetは、C言語で記述されたオープンソースのニューラルネットフレームワークで簡単にインストールすることが可能です。学習済みモデルとアルゴリズムも配布しており、ダウンロードすれば容易に動かすこともできます。

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

0グッド

0クリップ

投稿2019/12/12 15:23

編集2019/12/13 02:44

前提・実現したいこと

・前提
darknetのインストール方法が載っているサイトを参考に
Compiling With OpenCVという見出しの箇所の2つのコードを実行したいです。
Makefileの中をOPENCV=1にするという1つ目のコードが終わり、2つ目のコードとの間にある、
「You're done! To try it out, first re-make the project.」をdarknetディレクトリの中で
もう一度makeコマンドを実行することだと解釈してmakeコマンドを実行しました。
Installing The Base Systemという見出しのコードはすべてエラー無く実行できました。

・実現したいこと
エラーなくmakeコマンドを実行したいです。

発生している問題・エラーメッセージ

(yolo) bash-3.2$ make g++ -Iinclude/ -Isrc/ -DOPENCV `pkg-config --cflags opencv` -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -DOPENCV -c ./src/image_opencv.cpp -o obj/image_opencv.o /bin/sh: pkg-config: command not found ./src/image_opencv.cpp:5:10: fatal error: 'opencv2/opencv.hpp' file not found #include "opencv2/opencv.hpp" ^~~~~~~~~~~~~~~~~~~~ 1 error generated. make: *** [obj/image_opencv.o] Error 1

発生している問題のカレントディレクトリとディレクトリ構造

(yolo) bash-3.2$ pwd /Users/moray/darknet (yolo) bash-3.2$ ls LICENSE LICENSE.meta README.md data libdarknet.so scripts LICENSE.fuck LICENSE.mit backup examples obj src LICENSE.gen LICENSE.v1 cfg include python LICENSE.gpl Makefile darknet libdarknet.a results

試したこと

fatal error: 'opencv2/opencv.hpp'というのを、includeの参照先にそれがないと解釈して、それを参照先に追加すればいいと思いました。

opencv.hppの存在はFinderで確認して、パスは

(yolo) bash-3.2$ ls ~/opt/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/include/opencv2/opencv.hpp /Users/moray/opt/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/include/opencv2/opencv.hpp

です。
また、errorが出た.src/image_opencv.cppを少し見ると

#ifdef OPENCV #include "stdio.h" #include "stdlib.h" #include "opencv2/opencv.hpp" #include "image.h" using namespace cv;

となっていました。

予想として、opencv2の前に完全パスを書く、又は環境変数C_INCLUDE_PATH、C_PLUS_INCLUDE_PATH、CPATHに
完全パスを書く、という4つの選択肢を見つけて、それぞれ行いましたがいずれもエラーが出ました。

環境変数の件は、~/.bash_profileexport (環境変数名)="(・・・/include)"としました。
※()は実際には書いてません。

追記1(12/13, 11:44)

makeコマンドだから何か特別なことが起こって通らないだけであって、gccコマンドだったら通るのでは?と思って、
#include "opencv2/opencv.hpp"したファイルと同じディレクトリに以下のsample.cを作りました。

#include <stdio.h> #include "~/opt/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/include/opencv2/opencv.hpp" int main(){ return 0; }

で、gcc -o sample sample.cを実行すると、やはり

sample.c:2:10: fatal error: '~/opt/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/include/opencv2/opencv.hpp' file not found #include "~/opt/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/include/opencv2/opencv.hpp"

というエラーが出ました。

指定したパスはlsコマンドで存在することが分かっているのに、includeが通らないのは何故なのか分かりません。

補足情報(FW/ツールのバージョンなど)

マシン: macOS Catalina 10.15.1
実行環境: anacondaの仮想環境
gccのバージョン:

(yolo) bash-3.2$ gcc --version Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1 Apple clang version 11.0.0 (clang-1100.0.33.12) Target: x86_64-apple-darwin19.0.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

opencvはpythonのモジュールの代わりにosにインストールする必要があるやでと書いていたページを見て、
仮想環境にopencvを入れるときにpythonを付けたことを思い出しました。

(yolo) bash-3.2$ pip list Package Version --------------------- ------------------- certifi 2019.11.28 numpy 1.17.4 opencv-contrib-python 4.1.2.30 opencv-python 4.1.1.26 pip 19.3.1 setuptools 42.0.2.post20191203 wheel 0.33.6

「osにインストール」の意味が分かりませんでしたが、とりあえずopencvを丸ごと入れてしまうかと思い、
(base)(仮想環境じゃない元々の環境)に、Homebrewを使ってopencv@3をインストールしました。
この後の記憶が定かではないのですが、makeした後にエラーが出たので以降のことをしました。
(それぞれの環境、それぞれの得たエラー次第ですが一応記載しておきます)

エラーからそうすべきだと確信して行ったこと

・Homebrewで(base)にpkg-configをインストールした。
(エラーを検索したら出てきたので)

・~/.bash_profileに
export PKG_CONFIG_PATH=/usr/local/Cellar/opencv@3/3.4.5_6/lib/pkgconfigを加えた。
(たしかエラーを検索したら出てきたので)

てきとうに行ったこと

・MakefileにINCLUDE= -I./include -I/usr/local/opt/opencv@3/includeを加えた。
(インストール後も相変わらずfatal error: 'opencv2/opencv.hpp' file not foundが出て、
.src/image_opencv.cpp中のインクルードパスをusr/local/opt/opencv@3/include/opencv2/opencv.hpp
変更してもエラーが出ました。で、ファイルのパスを変更するのは諦めて、makeするときにインクルードパスを追加
すればいいんじゃねと思いました。追加したインクルードパスの後ろ側は、インストールしたパッケージのパスを
確認するためのコマンドがあるので確認してください。)

あとは何をやったか覚えていません。すいません。

投稿2019/12/14 01:58

編集2019/12/14 02:01
_KingdomOfMoray

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問