質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.37%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Darknet

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

YOLO

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

1回答

5529閲覧

darknetのYOLO v3の学習がうまくいきません。(./darknet detector train ~自体は動きます)

at39

総合スコア5

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Darknet

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

YOLO

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

1クリップ

投稿2020/11/11 05:47

編集2020/11/11 05:55

目的: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

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

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

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

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

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

tiitoi

2020/11/11 06:07

「cannot open display」というエラーはディスプレイがないリモートサーバーで実行されていたりしないでしょうか? ローカルのモニタが使える環境で実行していますか?
at39

2020/11/11 06:19

ありがとうございます。 cannot open display部分は今回問題ではないです。 リモートで実行されていると表示できないといことは認識しています。 正常に学習していてもリモートなら (predictions:34278): Gtk-WARNING **: cannot open display: が表示されますが、その上の行に検出結果が表示されます。 Loading weights from yolov3.weights...Done! data/dog.jpg: Predicted in 0.564603 seconds. dog: 100% truck: 92% bicycle: 99% (predictions:23968): Gtk-WARNING **: cannot open display:
guest

回答1

0

自己解決

こちらに同じ質問があり回答の通りに行えば解決しました
https://github.com/pjreddie/darknet/issues/622#issuecomment-379115236

投稿2020/11/11 08:24

at39

総合スコア5

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問