首页 > 解决方案 > Darkflow:为什么我得到有损/不完整的输出图像(我用自己的数据训练)

问题描述

我用自己的数据训练了darkflow yolo,数据集的描述:

数据集大小:3 个图像
类:1
类名:可口可乐

将 yolo.cfg 文件编辑为 yolo_custom.cfg:

类 = 1
过滤器 = 30

训练命令:

python3 flow --model cfg/yolo_custom.cfg --load bin/yolo.weights --batch 1 --epoch 30 --train --annotation train_imgs/Annotations --dataset train_imgs/Images

结果:

Finish 29 epoch(es)
step 88 - loss 161.10618591308594 - moving ave loss 169.31837991674482
step 89 - loss 159.54132080078125 - moving ave loss 168.34067400514846
step 90 - loss 162.15159606933594 - moving ave loss 167.7217662115672
Finish 30 epoch(es)
Checkpoint at step 90
Training finished, exit .

要收集新的权重,运行以下命令将 yolo_custom-30.meta 文件保存到 built_graph/yolo_custom.pb 文件:

   python3 flow --model cfg/yolo_custom.cfg --load -1 --savepb

结果是:

使用标准文件 API 检查具有此前缀的文件。
完成于 9.207940340042114s
重建一个恒定版本...
完成

现在,当我使用以下命令测试存储在 sample_img 文件夹中的图像时:

   python3 flow --pbLoad built_graph/yolo_custom.pb  --metaLoad built_graph/yolo_custom.meta --imgdir sample_img/

包含输出图像的 sample_img/out 文件夹有不完整/有损图像,其中仅包含原始图像的几个像素。并且 json 文件包含很多边界框位置。

这没有意义。我很困惑。请帮助他理解我在哪里遗漏了重点。非常感谢。

标签: pythontensorflowobject-recognitionyolodarkflow

解决方案


你的损失太大了。它仍然欠拟合,因此您的输出可能有多个预测。要理解这一点,请检查您的 json 文件,它可能有数千个预测。因此,使用一小部分数据训练模型进行更多时期。


推荐阅读