刘兴 钱进
一汽-大众汽车有限公司佛山分公司,中国·广东 佛山 528000
图像识别是指计算机对图片进行读取,解析图片中的信息,依据于智能识别算法,对图像进行处理、分析、识别、分类。CNN 的快速发展,大大提升了图像识别处理的能力[1]。
在汽车在生产过程中需要安装多根线束,因为线束形状的特异性等,主要依靠人工进行安装,在安装过程中如果发生错装漏装等现象,不易第一时间发现问题,一旦出现问题就会产生较大的返工维修等,会造成巨大的损失。
针对上述错漏装不易发现的问题,而且为了实现最低成本实现预防的问题,论文主要描述了一套基于树莓派,通过python、OpenCV、CNN 模型来实现汽车线束图像识别的方法,从而杜绝错漏装的现象。本系统通过python snap7 与线体PLC 通信来获取当前车辆信息和车辆所处的位置;其次利用OpenCV 进行拍照然后对拍摄图像进行预处理;再利用CNN 进行图像识别分类;最后利用树莓派外接相应的报警设施最终实现错漏装或者安装不到位的报警[2],该系统具有低成本、低功率、高准确率的特点。
主要包含3 大模块,分别为车辆信息采集模块、图像采集模块,图像识别模块。
车辆信息采集模块:利用python-snap7 与plc s7-300 实时通讯获得固定位置车辆到达信息,作为后续拍照、分析启动的先决条件。
图像采集模块:利用OpenCV 进行现场图片采集并进行降噪、灰度处理、像素大小处理。
图像识别模块:利用迁移学习,训练自己的网络模型,将采集处理后的图片与模型对比分析,判断安装状态
在汽车生产过程因为多车型并线生产,故线束安装状态有多种情况,这里暂时以两种车型安装后的状态为初始图片集合。利用树莓派和UVC 相机共收集auok、aunook、vwok、vwnook 四种状态下1112 张图片,图片大小为640*480px。然后对图片进行二极化灰度处理,因为在样本拍摄过程中,因为相机自身的问题及信号传输的可能会收到信号干扰问问题,会导致图片中通常会产生高斯噪声和椒盐噪声,会出现影响视觉判断的黑白像素点,论文利用OpenCV的cv2.blur()均值滤波函数对其进行降噪处理,其滤波核ksize 为(5,5)[3]。
并根据卷积神经网络的计算要求,对图片进行归一化处理,确保图片大小等为标准形式[4]。
式中:xi 为图像像素点值;min(x)、max(x)分别为图像像素的最小值与最大值。
为了数据统一处理,Tensorflow 框架使用的图片数据格式为TFRecord 格式,其可以将各种数据类型转换为tensorflow 可以识别的数据,在python 中,其主要依靠TFRecordWriter 存入到Example 协议内存中,更易应用于神经网络框架中[4]。
卷积神经网络为当前最为火爆的深度学习网络学习的一种,其主要为识别二维图形,通过卷积层和池化层交替连接,最终通过全连接层输出分类结果[5]。
本系统利用TensorFlow 框架自主搭建一个简易的卷积神经网络,分别为→卷积层→池化层→卷积层→池化层→卷积层→全连接层→全连接层→回归分类层(见表1)。
表1 网络结构
读取存储的tfrecord格式数据集,并声明程序所需的变量,包含图像的高宽、图像分类种类、训练次数,学习率,batch 等,利用Tensorflow 的tf.train.Saver( ).save(sess,path)保存训练好的模型。
为便于操作,利用智能语音控制模块采集语音,通过RXTX 串口协议,将语音信号作为启动条件,然后通过snap7 获取车辆信息,作为拍照程序的启动信号二,并拍摄当前状态照片,然后对当前照片进行降噪、灰度二值化、图片大小统一等处理,然后载入训练好的预测模型中,进行验证测试。
论文提出了一种基于CNN 和OpenCV,利用树莓来解决汽车线束安装是否错漏装的解决方案。其主要利用Tensorflow 平台构建一个7 层的CNN,利用OpenCV 对拍摄的图片进行降噪处理,利用树莓派处理能力进行图像识别分类。
本系统主要有车辆信息采集模块、图像采集模块,图像识别模块系统三大模块,利用了CNN、OpenCV、GPIO、语音模块、UVC、树莓派,构建了低成本、低功耗的汽车线束安装识别系统,拓展了图像识别在汽车制造领域的使用场景。