トレーニングデータのYOLOv3独自のセット

YOLOの著者は、ダークネットは、C言語のライブラリである、彼はCVを与えていることを示しています。ビューのどの時点からどんなに、YOLOは、ライブラリの非常に素晴らしい作品です。彼らはまた、勝つために彼のコードベースのプラットフォームの一部であるロシアAlexeyABは、面白い機能がたくさんあります。
まず、基本的な状況
私はダークネットのAlexeyABバージョンを設定する方法について詳細に説明します。これは、最も直感的かつリアルタイムロスマップマップを表示することができます。


その中国語訳版(やや簡素化)
その注目すべき点がいくつかあります。

各クラスは、少なくとも2000回の反復が割り当てられていることをお勧めしますが、4000回以上の繰り返しの総数。あなたは訓練を中止するときは、次の方法を使用して、より正確に定義する場合:

  1. トレーニングプロセスは、あなたは多くのエラーがログ指標であることがわかります、あなたは以下のように平均指標はもはや、下落している時に、列車を停止する必要があります。
地域平均IOU:0.798363、クラス:0.893232、OBJの:0.700808、ノーのObj:0.004567、平均リコール:1.000000は、カウント:8地域平均IOU:0.800677、クラス:0.892181、OBJの:0.701590、ノーのObj:0.004574、平均リコール:1.000000 、カウント:8
9002 :0.211667、  0.60730平均 ロード、0.001000率、3.868000秒、576128枚の画像:0.000000秒
  • 9002  -反復の現在の数を表します。
  • 0.60730 avg - average loss (error) - 这个指标是平均loss, 其越低越好。
    在这个指标不再下降的时候就可以停止训练了。最终的值大概分布在0.05-3.0之间,小而简单的模型通常最终loss比较小,大而复杂的loss可能会比较大。

训练完成后,你就可以从 darknet\build\darknet\x64\backup 文件夹中取出比较靠后的几个weights文件,并对他们进行测试,选择最好的权重文件。

举个例子,你在9000次迭代后停止训练,但最好的权重可能是7000,8000,9000次的值。这种情况的出现是由于过拟合导致的。过拟合是由于过度学习训练集的分布,而降低了模型在测试集的泛化能力。

Early Stopping Point示意图:

为了得到在early stopping point处的权重:

2.1 首先,你的obj.data文件中应该含有valid=valid.txt一项,用于测试在验证集的准确率。如果你没有验证集图片,那就直接复制train.txt重命名为valid.txt。

2.2 假如你选择在9000次迭代后停止,那可以通过以下命令测试7000,8000,9000三个模型的相关指标。选择最高mAP或者最高IoU的模型最为最终模型。

  • darknet.exe detector map data/obj.data yolo-obj.cfg backup\yolo-obj_7000.weights
  • darknet.exe detector map data/obj.data yolo-obj.cfg backup\yolo-obj_8000.weights
  • darknet.exe detector map data/obj.data yolo-obj.cfg backup\yolo-obj_9000.weights

或者你可以选择使用-map标志符来直接实时测试mAP值:

darknet.exe detector train data/obj.data yolo-obj.cfg darknet53.conv.74 -map

然后你就能得到loss曲线和mAP曲线,mAP每4个epoch对验证集进行一次测试,并将结果显示在图中。

指标解释

mAP 是Pascal VOC竞赛的默认指标,与MS COCO竞赛中的AP50指标是一致的。

Precision和Recall参数在Pascal VOC竞赛中略微不同,但 IoU 的意义都是相同的.

二、训练结果
1、AlexeyAB标注工具训练结果:
数据过好,让人怀疑是否过拟合;然后缺乏F1-force,搞一个。
2、同样的数据集(但是不同标注方法)easydl训练结果





おすすめ

転載: www.cnblogs.com/jsxyhelu/p/12390127.html