本家Yolo(こちらはYOLOv2で(classes+5)x5)とは、この部分の計算方法が違う。cfgファイルは、yolov3.cfgでもyolov3_voc.cfgでもあまり変わらないようだ(ただしパラメーターが微妙に違う)。解説の通りyolov3_voc.cfgを使う方が無難。obj.namesの変更点obj.namesにクラス名を1つ追加。今回はFaceとした。classesの数値を変更。これが忘れがちで、学習時原因不明エラーの要因となる。さんのdarknetは状況を確認するためにlossの数値と学習回数を関連付けたグラフが表示される。最適学習状況の判別機能が備わっている。オプションの指定によりmApの現状の数値がグラフに書き込まれる。学習は8000回目ぐらいが上限で良い様だ。コマンドを実行して確認しiouとmapの一番高いものを選ぶLossは小さい方が良いが、データによりそれ以上下がらない場合あり。0.3以下が望ましいmApが同じでも認識が良好である場合とそうでない場合がある。7000回ぐらい試してサンプル画像をTESTしてみるのがベターの様だ。Lossが1以下に下がらない場合、クラス数設定が各部で違っている場合が多い=使えない。mapが90%を越すころから使い物になってくる。開始から2.5時間から3時間の間。最初の1000回の所要時間で学習終了時刻が、ほぼ予想できる(当たり前か...)。以下の結果で1000回あたりほぼ50分必要だった。この時点でloss=0.273なぜかmapが正しく表示されていない。416x416は7000回目のデータを採用した。cfgファイルのWEIGHTとHEIGHTについて608x608指定の場合メモリーオーバー対策にsubdivisions=16とした。1000回あたり約130分必要。この時点でloss=0.2766グラフでもわかる様に収束が遅くばらつきがある。608x608は6000回目のデータを採用した。画像でテストしてみると、今回はなぜか608x608は、416x416より認識率が落ちる様だ。LEPTON画像は160x120の画像なので、少し無理があるのかもしれない。最終的に採用したデータは416x416で学習させた7000回目のものとした。(最初に貼り付けた動画はこのデータを使ってます)認識時はcfgファイル内容を608x608に変更すると認識率は上がる。スピードは犠牲となる。テストデータの比率を10%としたが、これを10%以上に上げると多少認識率が上がる可能性はある。YoloV2のジャンケン3クラス(416x416)の場合で1000回あたり約60分だった。Xavier単独でも学習作業が可能であることを示す。世の中クラウド学習が方々で話題になってますが、色々制約があるのも事実だと思われます。身近な機材で目の前で刻々と変化する学習状態を確認するのも、また、オツなものですよ。(2日も3日も動かすわけじゃないので)ってことで。nanoが発売されました。