YOLOv5のtrain.pyで算出されるbest.ptのときのepoch番号を知りたいと思いました(過学習の有無との兼ね合いで)。
(epoch番号以外の指標値は,コンソール(コマンドライン)にsummaryとして表示される)
いろいろググると,fitness値最大時のepochからbest.ptが算出されることがわかりました↓。
どうやらデフォルトでは,
fitness=mAP50 * 0.1 +mAP50-95 * 0,9
のようです。
自宅PCでやってみました。
train.pyを実行します(sモデル,batch=16, epochs=100)。
train.pyの終了画面です↓。
best.ptが作成されたときのmAP50は0.84と表示されました。
runs/expフォルダに格納されたresult.csvをExcelで開き,右端に"fitness"フィールドを追加し,計算させ,大きいもの順に並べ換えました↓。
best.ptのときのepochは87であることがわかりました。
Precision(=0.812),Recall(=0.781),mAP50-95(=0.551)の値もsummaryの出力と一致しています。
やったぜベイビー
というか,どうせならresult.csvでfitnessも出力してほしいですね。
この第87エポックの時に過学習が起きているか否かを,runs/expに出力されるグラフ群で判断し,必要ならばepochsの値を変えて再学習させる,とかいうふうになるようです。
またひとつYOLOv5について詳しくなってしまいました。
2023年12月26日
2023年12月24日
val.pyの使い方
今年度から2年間(R5,6),物体検出アルゴリズムのひとつである,YOLOv5を使ってマツ枯れ樹冠を自動検出する,という研究課題に取り組んでいます。
大きな流れは以下の3つです。
(1)train.pyというPythonプログラムで学習を行い,
(2)detect.pyというPythonプログラムで,(1)の学習結果に基づいた検出を行い,
(3)val.pyというPythonプログラムで検出結果の精度検証を行う。
(1),(2)については,例えば,T.Nukuiさんのサイト
https://farml1.com/tomato_yolov5/
https://farml1.com/yolov5/
などに解説があり,おおいに参考にさせてもらっているのですが,
(3)について解説しているサイトがなかなか見つけられませんでした。
が,何とかできました。
動画2本です↓。
3月の森林学会@東京農大で発表します。
要旨(500字以内)の締め切りは1/5(金)です。
大きな流れは以下の3つです。
(1)train.pyというPythonプログラムで学習を行い,
(2)detect.pyというPythonプログラムで,(1)の学習結果に基づいた検出を行い,
(3)val.pyというPythonプログラムで検出結果の精度検証を行う。
(1),(2)については,例えば,T.Nukuiさんのサイト
https://farml1.com/tomato_yolov5/
https://farml1.com/yolov5/
などに解説があり,おおいに参考にさせてもらっているのですが,
(3)について解説しているサイトがなかなか見つけられませんでした。
が,何とかできました。
動画2本です↓。
3月の森林学会@東京農大で発表します。
要旨(500字以内)の締め切りは1/5(金)です。
2023年12月06日
LitchiのミッションをDJI Mini 4 Proで実行
フェイスブックのDJI Mini 4 Proのプライベートグループに,「LitchiのミッションをDJI Mini 4 Proで実行する」旨の投稿がありました。
https://www.facebook.com/groups/3234964243468635/permalink/3329805160651209/
参加してない方はみれないかも?↑
実機(RC2が必要)を持っていて興味のある方は,
グループに参加し,
手順を会得し,
人柱として,
ぜひやってみてくださいな。
https://www.facebook.com/groups/3234964243468635/permalink/3329805160651209/
参加してない方はみれないかも?↑
実機(RC2が必要)を持っていて興味のある方は,
グループに参加し,
手順を会得し,
人柱として,
ぜひやってみてくださいな。