最近在训练到一批好的权重文件时 在公司的测试效果极其好 可是拿到现场测试不堪入目

工业视觉的优缺点:

优点:

        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与图片数量不符的查找与删除等   

分享感受:

运行机械的设备时 可能 是我不注意碰坏了一个机械臂   当晚就告诫自己 以后运行设备需要多检查几次设备是否复位成功了   

        调试是真的累  起的比鸡早 睡的比狗晚  时时刻刻都是当机械的测试

光源一定要弄成可数字调控光源 这样会节省不少事情  不要嫌弃贵!!!!!  

慎重啊 !! 一入深度学习深似海,从此头发是路人