最近在训练到一批好的权重文件时 在公司的测试效果极其好 可是拿到现场测试不堪入目
工业视觉的优缺点:
优点:
1.环境单一
2.样本易收集
3.针对样本出现的问题好解决
缺点:
1.部分缺陷难检测
2.更改环境容易误检
样本:速效救心丸的裂纹检测
模型:YOLOV4
框架: kears
最终训练的数量:5000+
因为是接手上一个人离职的原因 所以不要质疑我为什么要用这些模型、框架
首先分享一下我遇到的几种问题:
1.误检(首要问题)因为保密工作原因不可放出样本 望大家脑补
a.误检将瓶子的边缘还有反光的部分会误检成裂纹
b.环境误检成裂纹
解决方案的思路:
a. 误检的地方需要给他重新标注一个类去训练
更改后遗留的问题 极小一部分的边缘还是会误检
再次改进的地方 更改光源的强度已经光源的角度 以及光照位置
最终测试结果 降低置信度的数值 检测三万个瓶子 有问题的瓶子370+ 误检瓶子:26
误检率不足百分之1 符合要求
b. 将环境涂黑 只留下需要检测的那一目标
优点:不会再出现此类误检
缺点: 会增加程序运行的时间(我们要求的时间 500毫秒内 最终测试结果440毫秒)
2.训练时遇到的问题
a.训练集loss一直下降,测试集趋于不变
解决方案: 模型过拟合了 增加数据量 打乱训练顺序 采用正则化(我这里不推荐使用earstoping 原因:数据比较难训练的迟迟降不下去他会早停 其实给模型一点时间)
b. 不管训练集还是测试集的acc都是不足百分之2
解决方案: 我目前没有找到问题出现在哪里 但是实际测试效果确实很好 我觉得关样本难易训练的原因
c.在原有基础上多加了一类,并接着上次断点的权重训练报维度错误
解决方案: 用预训练模型重新训练 不能偷不该偷的懒
d. 权重 .h5文件转.weight权重后 部署C++没有测试效果
解决方案: 需要把cfg配置文件中 三个yolo里面的anocher框的数值更改成自己kmeans聚类得来的数值
e. 比对好xml内容
例如:xml文件对应图片的路径是否正确 xml与图片数量不符的查找与删除等
分享感受:
运行机械的设备时 可能 是我不注意碰坏了一个机械臂 当晚就告诫自己 以后运行设备需要多检查几次设备是否复位成功了
调试是真的累 起的比鸡早 睡的比狗晚 时时刻刻都是当机械的测试
光源一定要弄成可数字调控光源 这样会节省不少事情 不要嫌弃贵!!!!!
慎重啊 !! 一入深度学习深似海,从此头发是路人