• -这是上海一家芯片厂商的一个项 目,他们的流水线上需要做芯片缺 陷检测和芯片分拣。由于芯片的上 表面需要标记一些文字信息,可能 会产生划痕和油污这两种缺陷,他 们希望我们能够把这两种缺陷从芯 片图片上分割出来并且根据缺陷的 面积大小进行缺陷分级进而联动机 械臂完成分拣任务,需求就是这样 -我们联合一家做机械臂的厂商一 起做这个项目,我们主要负责缺陷 检测分割,缺陷分级这一块;甲方 给我们寄了一些缺陷样品,上面的 缺陷,肉眼观察无法分辨;我们就 请了专业的光学工程师一起去厂商 那采集样本,使用工业相机和专业 打光进行拍摄;拍摄的图片分辨率 为2400*2000,芯片在图片的中
  • 间位置,周围是白色边框;因为芯 片放大了,所以缺陷变得容易分 辨; -数据采集回来裁剪后得到150张 缺陷样本,对于深度学习来说, 数量不够,缺陷特征也不够;我采 取了三个方案,一个是做仿射变换 (旋转,平移,翻转),一个是做 缺陷迁移(opencv分割缺陷粘 贴),还有就是在训练的时候做一 个迁移学习;这个项目就是一个普 通分割任务,我提出了以下几种网 络模型方案,unet,unet++, u2net,u2netp,取部分样本进行 交叉验证;unet权重三十多m,分 割效果最差;unet++权重大一 些,分割效果比unet好;u2net权 重有一百多M,分割效果最好; u2netp权重4.7M,分割效果比 u2net差一些;考虑到机械臂硬件 环境的限制,选择损失一些精度选 择u2netp;缺陷分级这一块选择 opencv做后处理;

使用u2net训练的时候,先做一

u2net差一些;考虑到机械臂硬件环境的限制,选择损失一些精度选择u2netp;缺陷分级这一块选择 opencv做后处理; -使用u2net训练的时候,先做一个瓷砖数据的迁移学习,在这个权重的基础上再去训练芯片缺陷样本,训练后的MIOU是 -然后是opencv后处理,根据分割输出的二值图提取轮廓,计算轮廓所包含的缺陷面积,根据面积阈值对芯片进行分级进而联动机械臂分拣 -最后模型是部署在机械臂里面一个叫aidlux的第三方部署平台上, 上面可以直接跑python代码