2023年12月26日

fitness値を計算してみた

YOLOv5のtrain.pyで算出されるbest.ptのときのepoch番号を知りたいと思いました(過学習の有無との兼ね合いで)。
(epoch番号以外の指標値は,コンソール(コマンドライン)にsummaryとして表示される)

いろいろググると,fitness値最大時のepochからbest.ptが算出されることがわかりました↓。
fitness_1.png
どうやらデフォルトでは,
fitness=mAP50 * 0.1 +mAP50-95 * 0,9
のようです。

自宅PCでやってみました。

train.pyを実行します(sモデル,batch=16, epochs=100)。
fitness_2.png

train.pyの終了画面です↓。
fitness_3.png
best.ptが作成されたときのmAP50は0.84と表示されました。

runs/expフォルダに格納されたresult.csvをExcelで開き,右端に"fitness"フィールドを追加し,計算させ,大きいもの順に並べ換えました↓。
fitness_4.png
best.ptのときのepochは87であることがわかりました。
Precision(=0.812),Recall(=0.781),mAP50-95(=0.551)の値もsummaryの出力と一致しています。

やったぜベイビー
というか,どうせならresult.csvでfitnessも出力してほしいですね。
この第87エポックの時に過学習が起きているか否かを,runs/expに出力されるグラフ群で判断し,必要ならばepochsの値を変えて再学習させる,とかいうふうになるようです。
またひとつYOLOv5について詳しくなってしまいました。


posted by Dr.koba at 09:08| Comment(0) | TrackBack(0) | AI(人工知能) | このブログの読者になる | 更新情報をチェックする

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(金)です。


posted by Dr.koba at 06:09| Comment(0) | TrackBack(0) | AI(人工知能) | このブログの読者になる | 更新情報をチェックする

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が必要)を持っていて興味のある方は,
グループに参加し,
手順を会得し,
人柱として,
ぜひやってみてくださいな。

posted by Dr.koba at 07:56| Comment(0) | TrackBack(0) | ドローン | このブログの読者になる | 更新情報をチェックする