wmy

Results 25 comments of wmy

model.compile里添加

当然,网络预测的预测框的坐标(x, y)与宽高(w, h)不可能完全一样。目标检测的指标一般用mAP。

训练步数太少,100次是绝对不够的。目标检测需要对置信度,边界框坐标,边界框长宽,物体类别等多种信息进行拟合。首先不出框,说明置信度与物体类别的预测没有很好的拟合。YOLOv3会计算置信度与物体类别概率(单类别为1)的乘积作为边界框的Score,如果Score低的话是不出框的。我这边训练动漫人脸的时候,loss是可以降到6左右的,16的损失还是很高的(因为单类别检测没有类别损失)。可以调整学习率,多迭代几次试试。然后改类别,先验框的话直接改prepare.py里的全局变量(运行的话会覆盖之前的类别,先验框信息的)。

是否是迭代次数不够,损失要降到7到8左右才会出框,降到6左右才能有比较好的预测

将h5文件放入models文件夹,运行run.py,预测结果将输出在outputs文件夹

我的权重仅仅是训练那320张图片得到的,训练集可能有点少。 model.h5就是模型文件(包涵模型和权重)在keras中通过model.save得到。

改过数据集和标签后,修改prepare.py里的classes列表,换成你自己的类别。然后运行prepare.py,信息将被写入infos文件夹。 anchors是指先验框,由coco数据集中进行聚类得到,代表边界框最可能的9种大小。网络输出的边界框大小是由先验框比例缩放得来的。详细可以看YOLOv3的论文。

不同的数据集收敛的loss值不一样的,你可以看看当前的权重是否能出效果

那个是亚像素卷积。。和AdamWithWeightsNormalization没有关系。。没有这个模块的话应该有替代的函数的

额,我的数据集图片size大小不一样,有时图片大小比裁剪大小小会报错,所以写的麻烦了一点。。然后我不是一次性把所有图片读进来的,所以没做队列。。我是存地址筛batch然后降采样的,数据集比较大的话一次性读的话内存吃不消