参考にしたウェブページ
1. 環境構築
資源取得(git clone)
Terminal
electron@diynoMacBook-Pro ~ % cd Desktop
electron@diynoMacBook-Pro Desktop % git clone https://github.com/pjreddie/darknet
ディレクトリ構成の確認
Terminal
electron@diynoMacBook-Pro Desktop % ls darknet
LICENSE LICENSE.gen LICENSE.meta LICENSE.v1 README.md data include scripts
LICENSE.fuck LICENSE.gpl LICENSE.mit Makefile cfg examples python src
electron@diynoMacBook-Pro Desktop %
electron@diynoMacBook-Pro Desktop % ls | grep darknet
darknet
electron@diynoMacBook-Pro Desktop % ls darknet/data
9k.labels coco9k.map goal.txt inet9k.map person.jpg
9k.names dog.jpg horses.jpg kite.jpg scream.jpg
9k.tree eagle.jpg imagenet.labels.list labels voc.names
coco.names giraffe.jpg imagenet.shortnames.list openimages.names
electron@diynoMacBook-Pro Desktop %
make実行
Terminal
electron@diynoMacBook-Pro Desktop % cd darknet
electron@diynoMacBook-Pro darknet % make
gcc -Iinclude/ -Isrc/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast obj/captcha.o obj/lsd.o obj/super.o obj/art.o obj/tag.o obj/cifar.o obj/go.o obj/rnn.o obj/segmenter.o obj/regressor.o obj/classifier.o obj/coco.o obj/yolo.o obj/detector.o obj/nightmare.o obj/instance-segmenter.o obj/darknet.o libdarknet.a -o darknet -lm -pthread libdarknet.a
electron@diynoMacBook-Pro darknet %
学習済みの重みファイルを取得(wget)
Terminal
electron@diynoMacBook-Pro darknet % wget https://pjreddie.com/media/files/yolov3.weights
--2021-07-12 16:29:23-- https://pjreddie.com/media/files/yolov3.weights
pjreddie.com (pjreddie.com) をDNSに問いあわせています...
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 248007048 (237M) [application/octet-stream]
`yolov3.weights' に保存中
yolov3.weights 100%[========================================================================================================>] 236.52M 11.5MB/s 時間 29s
2021-07-12 16:29:54 (8.07 MB/s) - `yolov3.weights' へ保存完了 [248007048/248007048]
electron@diynoMacBook-Pro darknet %
以上で、環境構築は終わりです
2. 画像の物体検出 & 矩形抽出を試してみる
では、早速YOLO v3を使ってみたいと思います。
画像データ: dataディレクトリ直下のサンプル画像「dog.jpg」
( 扱う画像ファイル )
( YOLO v3の出力ファイル )
( 実行画面 )
Terminal
electron@diynoMacBook-Pro darknet % ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
layer filters size input output
0 conv 32 3 x 3 / 1 608 x 608 x 3 -> 608 x 608 x 32 0.639 BFLOPs
1 conv 64 3 x 3 / 2 608 x 608 x 32 -> 304 x 304 x 64 3.407 BFLOPs
2 conv 32 1 x 1 / 1 304 x 304 x 64 -> 304 x 304 x 32 0.379 BFLOPs
3 conv 64 3 x 3 / 1 304 x 304 x 32 -> 304 x 304 x 64 3.407 BFLOPs
4 res 1 304 x 304 x 64 -> 304 x 304 x 64
5 conv 128 3 x 3 / 2 304 x 304 x 64 -> 152 x 152 x 128 3.407 BFLOPs
6 conv 64 1 x 1 / 1 152 x 152 x 128 -> 152 x 152 x 64 0.379 BFLOPs
7 conv 128 3 x 3 / 1 152 x 152 x 64 -> 152 x 152 x 128 3.407 BFLOPs
( 長いので出力結果を省略 )
104 conv 256 3 x 3 / 1 76 x 76 x 128 -> 76 x 76 x 256 3.407 BFLOPs
105 conv 255 1 x 1 / 1 76 x 76 x 256 -> 76 x 76 x 255 0.754 BFLOPs
106 yolo
Loading weights from yolov3.weights...Done!
data/dog.jpg: Predicted in 18.619947 seconds.
bicycle: 99%
truck: 92%
dog: 100%
electron@diynoMacBook-Pro darknet %
画像データ: dataディレクトリ直下のサンプル画像「kite.jpg」
( 扱う画像ファイル )
( YOLO v3の出力ファイル )
( 実行画面 )
Terminal
electron@diynoMacBook-Pro darknet % ./darknet detect cfg/yolov3.cfg yolov3.weights data/kite.jpg
layer filters size input output
0 conv 32 3 x 3 / 1 608 x 608 x 3 -> 608 x 608 x 32 0.639 BFLOPs
1 conv 64 3 x 3 / 2 608 x 608 x 32 -> 304 x 304 x 64 3.407 BFLOPs
( 長いので出力結果を省略 )
105 conv 255 1 x 1 / 1 76 x 76 x 256 -> 76 x 76 x 255 0.754 BFLOPs
106 yolo
Loading weights from yolov3.weights...Done!
data/kite.jpg: Predicted in 19.940331 seconds.
kite: 99%
kite: 84%
kite: 80%
kite: 73%
person: 95%
person: 91%
person: 88%
person: 85%
person: 100%
person: 52%
person: 100%
person: 97%
person: 96%
electron@diynoMacBook-Pro darknet %