yolo v3の実行結果をopenCVで出力する


前回

とりあえずyolo v3で学習済みモデルを動かすことはできた。そしてその結果は、「一致度」としてテキストとして出力されるのに加え、darknetディレクトリ内にpredictions.jpgという画像ファイルが生成されることまで確認した。

今回のゴール

yolo v3を実行後するとその結果が画像ファイルとして自動で立ち上がるところまで。

やってみた

何はともあれ、openCVのインストール。
brewはすでにインストール済み。

brew install opencv

他の方の記事を参考に、darknet配下のMakefileを編集する。
vimはあまり好きではないので

open Makefile

で編集する。
ファイルを開くと、以下の設定がデフォルトで表示される。

GPU=0
CUDNN=0
OPENCV=0
OPENMP=0
DEBUG=0

この項目のうち、使うものは1に書き換えれば良いらしいが、今回はopenCVのみ1に書き換え、保存。ターミナルに戻ったら忘れずにmakeする。

make

すると、めちゃめちゃエラーが出た。どうもopenCVの場所がわからない的なことを言っている。
というかそもそもopenCVはちゃんとインストールできているのか?と思い、色々調べると、以下のコマンドで確認できることがわかった。

pkg-config --modversion opencv

と思いきやそもそもpkg-configがインストールされていなかったため、brewでインストール。

brew install pkg-config

もうpkg-configを実行すると、バージョンが帰ってきたのでちゃんとインストールはされているようだ。

まさかと思い、もう一度MakefileでOPENCV=1にし、makeするとエラーが出なかった。
ただpkg-configをインストールしていなかっただけというオチ。結構時間を使ってしまった。

結果

このあと前回同様

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

で実行すると、枠付きの画像ファイルが自動で立ち上がった。

めでたしめでたし。