一种用于智能售货柜训练自动标注数据集的装置
技术领域
本发明涉及人工智能系统领域,具体涉及一种用于智能售货柜训练自动标注数据集的装置。
背景技术
随着人工智能和机器视觉的发展,出现了越来越多的使用机器视觉判断商品销售情况的智能售货柜。这些售货柜多使用目标检测神经网络模型进行商品种类和数量的检测。
神经网络在目标检测领域与传统机器视觉(机器学习)相比在成功率,对环境鲁棒性,对物品形变上都有非常明显的优势。于此同时,对机器学习需要的数据源也有非常大的需求,需要大量的标注数据集。
与分类应用不同,目标检测的数据集需要在图片中框出目标所在区域,这种用框标注目标的动作进一步增加了标注工作量。
传统上,人们使用软件的数据增广方式对数据集进行增广,这些增广包括:裁剪/旋转/亮度/对比度/色彩/噪声/平滑等图像处理方法。由于只是对已有数据进行处理,并没有真实增加信息。
本发明尝试使用自动化工具结合传统图像处理的方法,能够只需少量人工干预的情况下完成大量图像的自动化标注,极大的减少了人工标注商品的工作量,降低了智能售货柜的运营成本。
发明内容
本发明的目的在于提供一种用于智能售货柜训练自动标注数据集的装置、图像标注方法及训练方法,以解决现有技术中人工标注商品的工作量过大,运营成本较高的缺陷。
所述的用于智能售货柜训练自动标注数据集的装置,包括壳体、设在壳体顶部的摄像头、位于壳体底部的承托装置、运动机构和控制模块;所述摄像头和所述承托装置中的一个安装在所述运动机构上,另一个安装在所述壳体上,所述运动机构上安装有随之移动的移动台,所述控制模块包括计算机和连接到所述计算机的驱动控制装置,所述摄像头连接到所述计算机,所述计算机连接到所述驱动控制装置,所述驱动控制装置连接控制所述运动机构。
优选的,所述丝杆滑移机构包括X轴丝杆机构和Y轴丝杆机构,所述X轴丝杆机构包括安装在壳体或者Y轴滑块上的X轴步进电机、连接在所述X轴步进电机输出轴的X轴丝杆和配合安装在所述X轴丝杆上的X轴滑块,所述Y轴丝杆机构包括安装在X轴滑块或者壳体上的Y轴步进电机、连接在所述Y轴步进电机输出轴的Y轴丝杆和配合安装在所述Y轴丝杆上的Y轴滑块,所述移动台固定在所述Y轴滑块或者X轴滑块上,所述X轴步进电机和Y轴步进电机分别连接到所述驱动控制装置。
所述运动机构包括通过转轴安装的转盘或转动支架和步进转动电机,所述移动台安装在所述转盘或转动支架上,所述转轴连接到所述步进转动电机的输出轴,所述步进转动电机安装在所述壳体或所述丝杆滑移机构上并且电连接到所述驱动控制装置。
优选的,还包括作为标定板的棋盘格,所述棋盘格设在所述承托装置顶部。
优选的,所述承托装置具有盛放货柜中的商品或商品模型的隔间,所述隔间可拆卸安装在所述棋盘格上。
优选的,本装置采用具体的图像标注方法如下:
S1、所述计算机根据标定板获得初始状态下摄像头的外参数信息和承托装置上放置商品或商品模型的基准点在世界坐标系下的坐标;
S2、操作人员从计算机中提取采集图像信息中的第一张图片并对图片上需要识别的商品或商品模型的图像进行手动标注;
S3、所述计算机内存储有所述摄像头的内参数信息,结合外参数信息可以得到初始状态下像素坐标系和世界坐标系的变换关系;
S4、通过运动机构运动轨迹可以得到每个运动状态下,承托装置相对于摄像头移动的相对位移向量和旋转矩阵;
S5、由计算机储存的事先完成的商品三维尺寸建模数据结合结合步骤S1得到的基准点坐标得到商品在世界坐标系中建模坐标,再结合步骤S2得到的标注数据和步骤S3得到的变换关系能求得初始状态下标注数据在世界坐标系下对应的坐标;
S6、由步骤S4能得到后续每张图片对应的相对位移向量和旋转矩阵结合步骤S5得到的标注数据对应的坐标能得到假设摄像头静止时,标注范围随承托装置相对移动后产生的新坐标,新坐标与后续各图片对应通过步骤S3得到的变换关系能求得对应后续各个图片的标注数据,实现对后续图片的自动标注。
优选的,该装置采用的训练方法具体包括如下步骤;
S1、完成摄像头外参建模以及商品模型建模,商品模型至少包含商品高度;
S2、在承托装置上放置货柜售卖的商品或商品模型;
S3、计算机通过驱动控制装置控制运动机构按事先设定的运动轨迹移动,并控制摄像头在运动机构到达事先设立的各设定点时自动拍照采集图像信息;
S4、操作人员根据权利要求5所述的图像标注方法对所有采集的图像进行标注;
S5、将标注后的各个图像及相对应的标注信息作为训练样本输入到目标检测网络,通过训练样本对目标检测网络进行训练。
优选的,所述训练方法中,所述步骤S1与步骤S2之间还包括下列步骤:
S1.1、将棋盘格的数据输入计算机,棋盘格表面Z轴坐标设为零,拆下隔间;
S1.2、计算机通过驱动控制装置控制运动机构按设定的运动轨迹移动,并控制摄像头在运动机构到达设定点时自动拍照采集图像信息;
S1.3、提取采集到的图像信息,通过事先输入的摄像头内参数信息结合棋盘格的数据通过透视投影矩阵能计算出各设定点的外参数。
本发明的优点在于:由于能够在标注第一张图像上特征区域后对后续的图像实现相同实物区域的自动标注,因而能大大提高标注的速度和训练效率,也能避免人工标注错误导致的训练误差。因此该装置极大的减少了人工标注商品的工作量,降低了智能售货柜的运营成本,既提高了训练效率,也提升了训练结果的有效性。与基于图像处理的软件数据增广方式相比,通过本装置进行神经网络训练能够提供更多真实有效的标注数据,使神经网络算法更加健壮。
附图说明
图1为本发明实施例1的结构示意图。
1、壳体,2、运动机构,3、承托装置,4、计算机,5、摄像头, 6、灯箱。
具体实施方式
下面对照附图,通过对实施例的描述,对本发明具体实施方式作进一步详细的说明,以帮助本领域的技术人员对本发明的发明构思、技术方案有更完整、准确和深入的理解。
实施例1
如图1所示,本发明提供了一种用于智能售货柜训练自动标注数据集的装置、图像标注方法及训练方法,包含下列实施例:
本发明提供了一种用于智能售货柜训练自动标注数据集的装置,包括壳体1、设在壳体1顶部的摄像头5、位于壳体1底部的承托装置3、运动机构2和控制模块。壳体1顶部还设有用于照明的灯箱6。
所述承托装置3安装在所述运动机构2上,所述摄像头5安装在所述壳体1上,所述运动机构2包括由步进电机驱动的丝杆滑移机构和安装在所述丝杆滑移机构的移动台,所述控制模块包括计算机4和连接到所述计算机4的驱动控制装置,所述摄像头5连接到所述计算机4,所述计算机4连接到所述驱动控制装置,所述驱动控制装置连接控制所述运动机构2。所述承托装置3具有盛放货柜中的商品或商品模型的隔间。
所述丝杆滑移机构包括X轴丝杆机构和Y轴丝杆机构,所述X轴丝杆机构包括安装在壳体1上的X轴步进电机、连接在所述X轴步进电机输出轴的X轴丝杆和配合安装在所述X轴丝杆上的X轴滑块,所述Y轴丝杆机构包括安装在X轴滑块的Y轴步进电机、连接在所述Y轴步进电机输出轴的Y轴丝杆和配合安装在所述Y轴丝杆上的Y轴滑块,所述移动台固定在所述Y轴滑块上,所述X轴步进电机和Y轴步进电机分别连接到所述驱动控制装置。
所述计算机4用于设定运动机构2的移动轨迹、控制摄像头5拍照、标注特征图像、根据初始图像中的标注范围利用投影转换生成后续图像的标注数据,建立建构目标检测网络和通过摄像头5采集的图像信息对目标检测网络进行训练。
驱动控制装置用于将运动轨迹信息转化为精确控制各步进电机的电信号以实现对运动机构2的精确控制。
实施例2
一种用于智能售货柜训练自动标注数据集的装置,包括壳体1、设在壳体1顶部的摄像头5、位于壳体1底部的承托装置3、运动机构2和控制模块。壳体1顶部还设有用于照明的灯箱6。
所述承托装置3安装在所述壳体1底面上,所述摄像头5安装在所述运动机构2上,所述运动机构2包括由步进电机驱动的丝杆滑移机构和安装在所述丝杆滑移机构的移动台,所述控制模块包括计算机 4和连接到所述计算机4的驱动控制装置,所述摄像头5连接到所述计算机4,所述计算机4连接到所述驱动控制装置,所述驱动控制装置连接控制所述运动机构2。所述承托装置3具有盛放货柜中的商品或商品模型的隔间。
所述丝杆滑移机构包括X轴丝杆机构和Y轴丝杆机构,所述X轴丝杆机构包括安装在者Y轴滑块上的X轴步进电机、连接在所述X轴步进电机输出轴的X轴丝杆和配合安装在所述X轴丝杆上的X轴滑块,所述Y轴丝杆机构包括安装在壳体1上的Y轴步进电机、连接在所述Y轴步进电机输出轴的Y轴丝杆和配合安装在所述Y轴丝杆上的 Y轴滑块,所述移动台固定在所述者X轴滑块上,所述X轴步进电机和Y轴步进电机分别连接到所述驱动控制装置。
所述计算机4用于设定运动机构2的移动轨迹、控制摄像头5拍照、标注特征图像、根据初始图像中的标注范围利用投影转换生成后续图像的标注数据,建立建构目标检测网络和通过摄像头5采集的图像信息对目标检测网络进行训练。
驱动控制装置用于将运动轨迹信息转化为精确控制各步进电机的电信号以实现对运动机构2的精确控制。
实施例3
本实施例与实施例2相比区别在于运动机构2,本实施例中的运动机构2不采用丝杆滑移机构而采用通过转轴安装的转盘或转动支架和步进转动电机,所述移动台安装在所述转盘或转动支架上,所述转轴连接到所述步进转动电机的输出轴,所述步进转动电机安装在所述壳体1上并且电连接到所述驱动控制装置。如果摄像头5位于转轴中心则通过转盘的转动角度能直接得到摄像头5的转动矩阵。如果摄像头5与转轴中心有一定距离,除了转动矩阵外,摄像头5还发生的平移,通过摄像头5与转轴中心间的距离和转轴的转角能计算出转动矩阵和位移向量。
实施例4
本实施例与实施例2相比区别在于运动机构2,本实施例中的运动机构2在实施例2中丝杆滑移机构的基础上还设置通过转轴安装的转盘或转动支架和步进转动电机,所述移动台安装在所述转盘或转动支架上,所述转轴连接到所述步进转动电机的输出轴,所述步进转动电机安装在所述丝杆滑移机构的X轴滑块上并且电连接到所述驱动控制装置。如果摄像头5位于转轴中心则通过转盘的转动角度能直接得到摄像头5的转动矩阵。如果摄像头5与转轴中心有一定距离,除了转动矩阵外,摄像头5还发生的平移,通过摄像头5与转轴中心间的距离和转轴的转角能计算出转动矩阵和转动产生的位移向量,转动产生的位移向量与丝杆滑移机构移动的位移向量结合产生摄像头5 的位移向量。
上述各实施例的共同特点是采用了如下的图像标注方法和神经网络的训练方法。
摄像头5采集图像拍摄是一个光学成像过程。可以将此过程看作是四个坐标系之间的转换。这四个坐标系分别为:
(1)世界坐标系:也称真实或现实世界坐标系,或全局坐标系。它是客观世界的绝对坐标,由用户任意定义的三维空间坐标系。一般的三维场景都用这个坐标系来表示。坐标值用(Xw,Yw,Zw)表示。
(2)光心坐标系:也称为相机坐标系,以小孔相机模型的聚焦中心为原点,以相机光轴为Z轴建立的三维直角坐标系。X,Y一般与图像坐标系的X,Y轴平行,且采取前投影模型。坐标值用(Xc,Yc, Zc)表示。
(3)图像坐标系:表示世界坐标系下的物点在图像平面上的投影,其原点为透镜光轴与成像平面的交点,X与Y轴分别平行于光心坐标系的X与Y轴,是平面直角坐标系,坐标值用(x,y)表示。
(4)像素坐标系:坐标原点在图像平面的左上角,X轴、Y轴分别平行于图像坐标系的X轴和Y轴,坐标值用(u,v)来表示,每一像素的坐标(u,v)分别是该像素在数组中的列数和行数,且为离散的整数值。
摄像头5的内参数包括焦距f,像素坐标系在X方向和Y方向相邻像素间的距离则是dx和dy,图像坐标系原点在像素坐标系中的坐标为(u0,v0)。
内参数矩阵为:
通过三轴旋转参数能得到旋转矩阵,生成旋转矩阵的一种简单方式是把它作为三个基本旋转的序列复合。关于右手笛卡尔坐标系的 x-,y-和z-轴的旋转分别叫做roll、pitch和yaw旋转。因为这些旋转被表达为关于一个轴的旋转,它们的生成元很容易表达。
绕x-轴的主动旋转定义为:
这里的θx是roll角,和右手螺旋的方向相反(在yz平面顺时针)。
绕y-轴的主动旋转定义为:
这里的θy是pitch角,和右手螺旋的方向相反(在zx平面顺时针)。
绕z-轴的主动旋转定义为:
这里的θz是yaw角,和右手螺旋的方向相反(在xy平面顺时针)。由上述公式在θx、θy和θy已知时也可得旋转矩阵R,并能结合位移向量得到外参数矩阵。
外参数矩阵为:
在外参数矩阵中:R为旋转矩阵,t为位移向量,0T元素为O的列向量。旋转矩阵是由三轴旋转参数获得,位移向量即坐标系上平移参数(Tx,Ty,Tz)。
因此,光心坐标系与世界坐标系的转换关系如下式:
像素坐标系与光心坐标系的转换关系如下式:
像素坐标系与世界坐标系的转换关系如下式:
其中Zc为尺度因子。
因此如果内参数和外参数已知,即可由世界坐标系的坐标求得对应在图像中的像素位置。如果Xw、Yw、Zw中任一数值为已知,即可由已知的像素坐标求得世界坐标系下另外两个坐标值。由此,本装置能采用下述的方法进行自动标注。
本装置采用具体的图像标注方法如下:
S1、所述计算机4根据标定板获得初始状态下摄像头5的外参数信息和承托装置3上放置商品或商品模型的基准点在世界坐标系下的坐标。
S2、操作人员从计算机4中提取采集图像信息中的第一张图片并对图片上需要识别的商品或商品模型的图像进行手动标注。
S3、所述计算机4内存储有所述摄像头5的内参数信息,结合外参数信息可以得到初始状态下像素坐标系和世界坐标系的变换关系。
S4、通过运动机构2运动轨迹可以得到每个运动状态下,承托装置3相对于摄像头5移动的相对位移向量和旋转矩阵。
S5、由计算机4储存的事先完成的商品三维尺寸建模数据结合结合步骤S1得到的基准点坐标得到商品在世界坐标系中建模坐标,再结合步骤S2得到的标注数据和步骤S3得到的变换关系能求得初始状态下标注数据在世界坐标系下对应的坐标。
S6、由步骤S4能得到后续每张图片对应的相对位移向量和和旋转矩阵结合步骤S5得到的标注数据对应的坐标能得到假设摄像头5 静止时,标注范围随承托装置3相对移动后产生的新坐标,新坐标与后续各图片对应通过步骤S3得到的变换关系能求得对应后续各个图片的标注数据,实现对后续图片的自动标注。
对于实施例1而言运动机构2运动轨迹各点对应的平移向量即为承托装置3相对于摄像头5移动的相对位移向量。而对于实施例2-4 而言承托装置3相对于摄像头5移动的相对位移向量与运动机构2运动轨迹各点对应的移动向量距离相等而方向相反,而且摄像头5相应的旋转矩阵的方向也与转换时承托装置3相对于摄像头5的旋转矩阵相反。通过承托装置3相对于摄像头5移动的相对位移向量所做的转换相当于光心坐标系下标注数据对应坐标发生的位置变化。标注数据时一般对应商品已知高度,例如标注瓶装饮料时,标注瓶盖的顶部,此处高度在相应的建模数据中都是已知的,通过承托装置3上放置商品或商品模型的基准点在世界坐标系下的坐标能转化为标注数据的Z 轴坐标。因此能通过像素坐标系下的标注数据逆推得到在该Z轴坐标处标注数据的X轴和Y轴坐标,从而能进一步根据世界坐标系与像素坐标系的变换关系实现自动标注。当然也可以标注其他在各图片均能显示的区域,如瓶颈或商标等。
由此,该装置采用的训练方法具体包括如下步骤;
S1、完成摄像头外参建模以及商品模型建模,商品模型至少包含商品高度;
S2、在承托装置3上放置货柜售卖的商品或商品模型;
S3、计算机4通过驱动控制装置控制运动机构2按事先设定的运动轨迹移动,并控制摄像头5在运动机构2到达事先设立的各设定点时自动拍照采集图像信息;
S4、操作人员上述的图像标注方法对所有采集的图像进行标注;
S5、将标注后的各个图像及相对应的标注信息作为训练样本输入到目标检测网络,通过训练样本对目标检测网络进行训练。
实施例5
基于实施例4可进一步改进,在承托装置3顶部增设作为标定板的棋盘格。所述承托装置3具有盛放货柜中的商品或商品模型的隔间,所述隔间可拆卸安装在所述棋盘格上。
因此本装置采用的训练方法在步骤S1与步骤S2之间还包括下列步骤:
S1.1、将棋盘格的数据输入计算机4,棋盘格表面Z轴坐标设为零,拆下隔间;
S1.2、计算机4通过驱动控制装置控制运动机构2按设定的运动轨迹移动,并控制摄像头5在运动机构2到达设定点时自动拍照采集图像信息;
S1.3、提取采集到的图像信息,通过事先输入的摄像头5内参数信息结合棋盘格的数据利用像素坐标系与世界坐标系的转换关系能计算出各设定点的外参数。
由于棋盘格数据已知,即棋盘格实际大小和高度已知,因此提取在设定点拍摄的多个棋盘格图像与棋盘格数据结合通过带入内参数的透视投影矩阵(即像素坐标系与世界坐标系的转换关系)能够求得各设定点摄像头5对应的外参数信息。
本实施例采用的具体的图像标注方法为:
S1、所述计算机4根据标定板获得初始状态下摄像头5的外参数信息和承托装置3上放置商品或商品模型的基准点在世界坐标系下的坐标。
S2、操作人员从计算机4中提取采集图像信息中的第一张图片并对图片上需要识别的商品或商品模型的图像进行手动标注。
S3、所述计算机4内存储有所述摄像头5的内参数信息,结合各设定点的外参数信息可以得到各设定点对应的像素坐标系和世界坐标系的变换关系。
S4、由计算机4储存的事先完成的商品三维尺寸建模数据结合结合步骤S1得到的基准点坐标得到商品在世界坐标系中建模坐标,再结合步骤S2得到的标注数据和步骤S3得到的变换关系能求得初始状态下标注数据在世界坐标系下对应的坐标。
S5、步骤S5得到的标注数据对应的坐标通过步骤S3得到各设定点对应的变换关系能求得对应后续各个图片的标注数据,实现对后续图片的自动标注。
本实施例能直接求得对应各拍照位置的设定点处的外参数,即相当于上述标注方法中承托装置3相对于摄像头5移动的相对位移向量于初始状态下所述摄像头5的外参数相结合的结果。实施例1和实施例2计算结果为假设摄像头5静止,承托装置3相对摄像头5运动,得到世界坐标系下的承托装置3的移动后的新坐标与初始状态下承托装置3的坐标的变换关系。而本实施例则是假设承托装置静止,摄像头5相对承托装置3运动,并通过上述各设定点对应的外参数直接求得各设定点对应的像素坐标系与世界坐标系的转换关系。
采用上述的装置进行神经网络的训练,由于能够在标注第一张图像上特征区域后对后续的图像实现相同实物区域的自动标注,因而能大大提高标注的速度和训练效率,也能避免人工标注错误导致的训练误差。因此该装置极大的减少了人工标注商品的工作量,降低了智能售货柜的运营成本,既提高了训练效率,也提升了训练结果的有效性。与基于图像处理的软件数据增广方式相比,通过本装置进行神经网络训练能够提供更多真实有效的标注数据,使神经网络算法更加健壮。
上面结合附图对本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明方法构思和技术方案进行的各种非实质性的改进,或未经改进将本发明构思和技术方案直接应用于其它场合的,均在本发明保护范围之内。