本周总结可能会多一点,主要在尝试,也作为此类问题的经验分享:
1.尝试:通过maskrcnn检测出器件,抠图后进行数据增强,在旋转时填充背景的时候,会引入很大误差,原因:填充背景是通过图片边缘像素延伸,这样会导致直接延伸的是器件边缘像素。
2.尝试:先数据增强后,再通过maskrcnn进行检测抠图会避免上述问题,原因:这样填充的背景是原图背景,不会将器件像素延伸作为背景。
3.在旋转时要将原图适当缩小,否则会器件在旋转后不完整。
4.maskrcnn直接检测,会导致很多器件检测不到。
5.尝试:直方图均衡化,各种滤波去燥,最终直方图均衡化后,会时检测效果大大提升,但是同时会引入很多的检测框,解决方法:遍历所有检测出的box,判断面积大小,找到满足需要面积的第一个框,也是概率最大的一个,原因:maskrcnn按概率大小输出,故取第一个满足要求就OK。效果大大改进。
6.尝试:黑点通过opencv方法,ok和ng1训练二分类器,编写接口,输出测试报告,二分类效果我感觉还ok,黑点检测阀值不好决定,误差大,jj。
7.尝试:直接训练ok,ng1,ng2,三分类器,分类器训练时10%的测试结果在96%,这并不能说明能够胜任黑点问题,因为严重过拟合,(不过拟合,基于未增强数据训练三分类器jj),原因:我们在增强数据时旋转角度只有10度,这本身就会导致训练和测试图很很相似(只有一个10度的旋转,输出测试报告还ok也是这个原因),这也是为什么客户给了新数据jj的原因。
8.尝试:模型最大池化改为平均池化,效果好点,和晨曦猜原因,我没说服他,他貌似也没说服我。
9.尝试:数据灰度化后训练,jjjjjjj。
10.写脚本,基于以前数据和周五客户新给的数据,测试maskrcnn,发现问题,周四三分类的借口显示maskrcnn有13张未检测到,周五报告只有四张,接下来找原因,一个笑话诞生了,找到出原因的地方,改代码print不出结果,貌似是因为没保存,由于有事,交给晨曦了,原因已找到,该continue的地方break了。
我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan