1 天津大学 天津 300072 2 天津开发区中环系统电子工程股份有限公司 300000 3 天津理工大学中环信息学院 300380
摘要:本文介绍了一种智慧港口集装箱号识别系统的基本原理和实现方法。在Tensorflow1.13的环境下,采用SSD目标检测的方案定位集装箱箱号区域以及识别该区域中的数字和字母,然后通过对于坐标的排序算法对识别到的字符进行排序,从而得到准确的集装箱箱号。
关键字:智慧港口、目标检测、集装箱箱号识别
1引言
智慧港口中,集装箱号的识别是重要环节。根据集装箱号,可以确定相关物流信息[1-2]。本系统通过获取测试集路径的集装箱图像,逐一将图像输入集装箱号区域定位的模型判断出集装箱箱号的坐标范围。再将图像输入箱号检测的模型,将图片中的字符识别出来,通过前一次集装箱箱号坐标范围的限制得到识别到的字符。用识别到的字符的坐标来进行图像的矫正,再通过坐标排序算法来实现对应箱号的排序输出,得到最终输出的箱号信息,并将对应的图片名称和输出的箱号信息存入到txt中。
2 识别步骤
2.1模型设计及优化
本系统利用开源的tensorflow做为深度学习的框架,tensorflow相对于pytorch稳定,ssd做为网络结构,Mobile netV2做为预训练模型,考虑到每张图片有15个标签,本系统给输入的图片尺寸为(1024,1024),默认为(300,300),输入的尺寸越大,网络获取的特征就多,从而能够提升识别率,在将打完的标签喂入网络的同时需要设置学习率,学习率过大和过小都会影响识别效果,进而影响准确率。因为本系统会涉及到集装箱箱号的定位部分,也需要单独的标记训练,但由于定位只需要一个标签,为了减少读取模型定位的时间,本系统输入的图片为(600,600)。
本系统训练的2个模型都用了1000张图片,后期考虑通过扩充数据集,调整对比度、亮度的方法提高识别率。
首先对箱号位置进行标注,然后喂给网络,进行学习,通过不断更改learning_rate学习率,使得losses达到预期值。因为图片中只有一个目标,如果扩大输入图片的尺寸会增加模型识别所消耗的时间,所以将input_image的图像大小设置为(300,300)。识别结果如图1所示。
图1 箱号区域定位识别效果 图2 坐标结果
将识别到的坐标结果放到数组area,分别对应是顶部,底部,左边和右边的坐标。如图2所示。对于获取到的area区域,本系统可以用其对后期识别到的字符进行区域限制,减少错误率。
本系统中的集装箱图像矫正算法对模型识别输出的集装箱不同行的箱号坐标进行图片的旋转矫正从而提高集装箱箱号排序算法的鲁棒性。通过模型识别输出的坐标,求取到集装箱号所属人编号最左侧的字符坐标,以及箱型编号中最左侧的字符坐标,通过两点构成的直线求取在opencv图像坐标系下的斜率进而通过反正切求得直线和x轴的夹角角度值,此角度值即是需要对图片进行矫正旋转的角度。
图3 模型识别到的字符
模型识别到的箱号字符是按照模型训练时标签id号排序的,是无序的,如图3所示。本系统通过对识别到的字符传入集装箱箱号排序算法,从而输出正确的集装箱箱号。
图4 两行的箱号 图5 三行的箱号
集装箱箱号的行数是基本固定的(2行或者3行)。如图4、图5所示。
通过纵坐标的位置去分组(如果纵坐标在某个范围内,那么几个元素在某一行),采用3个数组,分别存放每行的字符,如果只有2行,那么其中有一个数组为空,用数组的第一个元素的纵坐标去减数组内其余的点,设定了一个阈值,阈值是通过取数组内前3个元素的底部坐标值减顶部坐标值的平均值,如果两个点坐标相加在本系统设定的某个范围内,那么这几个元素在一行上,坐标在另外一范围内,则在另外一行上,如图6所示。从图6中可以看到数组2为空数组,因为箱号只有2行,所以只有2个数组存了元素。上述是通过对纵坐标处理得到了每一行上有那些元素,接着本系统对横坐标处理(类似于对纵坐标处理),得到了排序后的元素,如图7所示。
图6 初步排序后元素分布 图7 再排序后的元素分布情况
3 识别结果
本系统具有一个基于qt5交互界面,可以直接部署在树莓派、英伟达nano开发板等多种硬件设备上。外界一个usb摄像头和一个触控屏,在交互界面中选择对应的视频输入源即可实现视频的采集和图像的处理,同时触控屏可直接点击方便人员控制硬件。识别结果如图8所示。
图 8 集装箱运行结果
4 结论
本系统中编写了一套基于集装箱箱号坐标排序的算法,通过图像矫正算法对模型识别输出的集装箱不同行的箱号坐标进行图片的旋转矫正从而提高箱号排序算法的鲁棒性。集装箱箱号一般两行或三行,首先通过识别到的第一行前三个元素的纵坐标取平均值的方法得到阈值判断哪些元素处于同一行,再通过横坐标排序得到该行元素的正确排序。通过列表的首元素的纵坐标大小进行箱号拼接并进行输出。识别准确率在90%以上。还具备基于pyqt5的交互界面,可以直接部署在Linux开发板上。
参考文献
马著凯,蔡黄河,韩春杰.集装箱箱号智能识别系统[J].港口装卸,2020(01):55-57.
集装箱号识别中图像及字符的处理分割技术[J]. 常捷. 淮海工学院学报(自然科学版). 2010(02)
1 通讯作者:王亚丽,博士,副教授,在站博士后,研究方向:计算机视觉、视觉测量,wangyali_buaa@163.com