Darkflow:为什么我会得到有损/不完整的输出图像(我用自己的数据进行训练)

时间:2019-03-07 11:16:41

标签: python tensorflow object-recognition yolo 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

结果:

  

完成29个时代
  步骤88-损失161.10618591308594-移动平均损失169.31837991674482
  步骤89-损失159.54132080078125-移动平均损失168.34067400514846
  步骤90-损失162.15159606933594-移动平均损失167.7217662115672
  完成30个纪元
  步骤90的检查点
  培训结束,退出。

要收集新的权重,请运行以下命令以将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文件包含很多边界框位置。

这没有道理。我很困惑请帮助他了解我遗漏的重点。 非常感谢。

1 个答案:

答案 0 :(得分:0)

您的损失太高。它仍然不尽人意,因此您的输出可能会有多个预测。要了解这一点,请检查您的json文件,它可能具有数千个预测。因此,使用少量数据子集为更多时期训练模型。