目的:darknetでYOLOv3の学習を回したい
公式webページの「Training YOLO on VOC」部分をほぼそのままなぞって最後の「Train The Model」↓の実行まで動作自体はすることを確認できました
./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74
↓実行結果の学習初めの方は学習済み重み(darknet53.conv.74)を利用しているので何かしら判定してそうです
Region 82 Avg IOU: 0.420393, Class: 0.085731, Obj: 0.009004, No Obj: 0.001693, .5R: 0.500000, .75R: 0.000000, count: 2 Region 94 Avg IOU: 0.483834, Class: 0.266332, Obj: 0.000843, No Obj: 0.000320, .5R: 0.500000, .75R: 0.250000, count: 4 Region 106 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.000073, .5R: -nan, .75R: -nan, count: 0 603: 17.317871, 5.758222 avg, 0.000132 rate, 0.071158 seconds, 603 images Loaded: 0.000122 seconds Region 82 Avg IOU: 0.536301, Class: 0.147822, Obj: 0.004959, No Obj: 0.002003, .5R: 0.500000, .75R: 0.000000, count: 2 Region 94 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.000287, .5R: -nan, .75R: -nan, count: 0 Region 106 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.000073, .5R: -nan, .75R: -nan, count: 0 604: 2.782168, 5.460617 avg, 0.000133 rate, 0.069167 seconds, 604 images Loaded: 0.000065 seconds
↓しかし、学習後しばらく経つと以下のように何も判定していないようにIOUやClassなどがnanになってしまっています。(以降ずっとnanです)
Region 82 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: nan, .5R: -nan, .75R: -nan, count: 0 Region 94 Avg IOU: nan, Class: nan, Obj: nan, No Obj: nan, .5R: 0.000000, .75R: 0.000000, count: 1 Region 106 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: nan, .5R: -nan, .75R: -nan, count: 0 958: -nan, -nan avg, 0.000842 rate, 0.058459 seconds, 958 images Loaded: 0.000120 seconds Region 82 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: nan, .5R: -nan, .75R: -nan, count: 0 Region 94 Avg IOU: nan, Class: nan, Obj: nan, No Obj: nan, .5R: 0.000000, .75R: 0.000000, count: 1 Region 106 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: nan, .5R: -nan, .75R: -nan, count: 0 959: -nan, -nan avg, 0.000846 rate, 0.058410 seconds, 959 images Loaded: 0.000033 seconds
学習が進むにつれ何も判定しなくてっているように思えます。
試しにこれで学習させた学習済み重みを用いて判定してみると
$./darknet detect cfg/yolov3-voc.cfg backup/yolov3-voc_final.weights data/dog.jpg -thresh 0.3 ... 105 conv 75 1 x 1 / 1 52 x 52 x 256 -> 52 x 52 x 75 0.104 BFLOPs 106 yolo Loading weights from backup/yolov3-voc_final.weights...Done! data/dog.jpg: Predicted in 0.243276 seconds. (predictions:34278): Gtk-WARNING **: cannot open display:
と、なり何も判定できていません。
期待される結果としてはdata/dog.jpg: Predicted in 0.243276 seconds.
の次の行に検出した物体が表示されることです。
###アノテーションファイルの中身
学習が進んでいないようなのでアノテーションファイルがおかしいのではと思いましたが以下のようにdarknetの形式<object-class> <x> <y> <width> <height>
になっていると思います。
$ cat VOCdevkit/VOC2012/labels/2008_000054.txt 2 0.602 0.426426426426 0.068 0.252252252252 2 0.31 0.533033033033 0.172 0.189189189189
学習ができていない原因は何が考えられるかご教授いただきたいと思います。
環境
Ubuntu 16.04
CUDA 10.1
回答1件
あなたの回答
tips
プレビュー