Tray盘瑕疵问题研究
传统演算法在TRAY盘检测上的挑战
传统的瑕疵检测我们以OpenCV函式库做为做问题解决,可以在演算法撰写上逻辑有脉络让我们反覆测试并收敛出一个解决的演算法,如有不规则的形状及对比不明显的瑕疵时,如要做到完全检测就必须面临到非常大量的瑕疵观察做出归纳写出检测逻辑,这通常需要耗费数个月的时间,尤其是在tray盘上常会遇到对比度加上不规则形状的瑕疵,如残胶、轻微波损,刮痕,光用演算法做归纳就耗时10个月仍然收集不完。
AI 真的能解决TRAY盘检测上冗长收敛的难题吗 ?
我们尝试使用深度学习,使用市面上AI程式库,并使用他们预先训练好的通用模型进行学习,并提供大约150~200的瑕疵样本标上位置label进行深度学习。
初期使用的时候是直接让1张5M 画素大小的照片作为深度学习的资料,但成效欠佳,一方面是程式本身为了学习时间要短,所以会预先进行图片大小的处理,换言之即使是完整5M画素的一张图,在做深度学习前也会进行缩图进而导致瑕疵在缩图过程失真甚至消失。
5M照片5个画素的瑕疵,可以被检出吗 ?
我們改把5M图切成小图片分成九等分进行深度学习,虽然资料量变成了9倍但对于深度学习在学习时间上并不会跟着变成9倍,反而在学习上因为资料量变多进而有了更精准的判断,实际使用后辨识率(准确度)从演算法的50%提升到了80%,而深度学习的时间也仅需要3個小時,在幾次修改(清理资料)后再进行深度学习也到达了95%以上的辨识率。
要如何快又好 ?
在實務上,原先AOI演算法在计算一盘的时间大概需要8秒,而深度学习出来的模型时间也达到了10秒以上,已明显不符合5秒内的需求,所以我们在寻找方法的时候发现我们现在训练所产出的模型的档案结构可以再优化。而程式库可以档案结构优化转换成其专门的CPU执行绪加速算法加速。利用这个方法可以让图片的运算提升一倍以上,在套用之后一个tray盘的运算时间也压低到了5秒以内,成功地完成了客户的需求。