本发明涉及图像拼接技术领域,尤其涉及一种货架场景图像的拼接方法及装置。
背景技术:
在快消领域,各大快消企业为了准确定位衡量市场的优异,需要统计分析大量的终端陈列数据。对这些终端陈列数据进行有效统计和分析的关键前提是先要获取线下超市或门店的货架图像。目前,货架图像的采集主要是通过业务员跑店拍摄。在真实的拍摄场景下,由于场地受限或货架过长等原因,业务员往往需要通过拍摄多张图像来记录完整的货架信息。因此对多幅货架图像进行有效快速的拼接,从而呈现出完整的货架场景。而现有的图像拼接技术都是始终以同一个方向为拼接基准方向对所有图像进行拼接,这种拼接方案在进行多幅图像(大于4副)拼接时,极易导致部分图像内容丢失。例如:假设现在有若干待拼接图像,以最左侧的图像为基准图像,一直以左侧为基准方向从左向右进行拼接,那么会产生一个累加误差,导致最右侧的图像出现严重变形,从而导致右侧的图像拼接后图像内容丢失。在长货架场景下的图像拼接若出现较多图像内容丢失,将直接导致用户最终统计的终端陈列数据存在严重误差。
技术实现要素:
本发明实施例提供一种货架场景图像的拼接方法及装置,能在图像拼接时降低图像内容丢失的概率,保留更多图像细节。
本发明一实施例提供一种货架场景图像的拼接方法,包括:
获取若干张待拼接货架场景图像;其中所有所述待拼接货架场景图像依次排列形成一图像队列,且相邻两待拼接货架场景图像之间存在重叠区域;
沿所述图像队列两侧向中间的方向,逐一将各待拼接货架场景图像进行图像拼接。
进一步的,所述图像队列为沿水平方向排列的图像队列。
进一步的,所述沿所述图像队列两侧向中间的方向,逐一将各待拼接货架场景图像进行图像拼接,具体包括:
当所述图像队列中待拼接货架场景图像的数量为偶数时,按所述待拼接货架场景图像的排列顺序,将所有所述待拼接货架场景图像按数量均分为左部图像集和右部图像集;
将所述左部图像集中的各待拼接货架场景图像,以从左到右的方向为拼接基准方向,将相邻的待拼接货架场景图像进行图像拼接,获得左部拼接图像;
将所述右部图像集中的各待拼接货架场景图像,以从右到左的方向为拼接基准方向,将相邻的待拼接货架场景图像进行图像拼接,获得右部拼接图像;
将所述左部拼接图像与所述右部拼接图像进行图像拼接;
当所述图像队列中待拼接货架场景图像的数量为奇数时,按所述待拼接货架场景图像的排列顺序,将位于中间的待拼接货架场景图像作为基准图像;
将位于所述基准图像左侧的各待拼接货架场景图像,以从左到右的方向为拼接基准方向,将相邻的待拼接货架场景图像进行图像拼接,获得左侧拼接图像;
将位于所述基准图像右侧的各待拼接货架场景图像,以从右到左的方向为拼接基准方向,将相邻的待拼接货架场景图像进行图像拼接,获得右侧拼接图像;
将所述左侧拼接图像和右侧拼接图像,均与所述基准图像进行图像拼接。
进一步的,所述图像拼接,具体包括:
通过akaze算法提取出两待拼接图像的特征点集合,获得第一特征点集合和第二特征点集合;
通过flann算法将所述第一特征点集合和第二特征点集合进行特征点匹配,获得若干特征点匹配对;
从所述特征点匹配对中提取符合预设阈值的特征点匹配对,作为优秀特征点匹配对,继而根据所述优秀特征点匹配对计算两待拼接图像间的单应矩阵;
根据所述单应矩阵对两待拼接图像进行透视变换,并对两待拼接图像中的重叠区域进行融合处理。
进一步的,在所述沿所述图像队列两侧向中间的方向,逐一将各待拼接货架场景图像进行图像拼接之前,还包括:
检测所述待拼接货架场景图像中的货架基准线,并计算所述货架基准线与水平线的夹角度数;
若所述夹角度数超过预设阈值,则判断所述待拼接货架场景图像为斜拍图像,继而对所述待拼接货架场景图像进行图像校正。
进一步的,所述对所述待拼接货架场景图像进行图像校正,具体包括:
根据所述货架基准线,确定所述待拼接货架场景图像的灭点;
根据所述灭点以及所述待拼接货架场景图像的边缘,确定所述待拼接货架场景图像的原始基准点和目标基准点;
根据所述原始基准点和目标基准点计算透视变换矩阵,继而根据所述透视变换矩阵对所述待拼接货架场景图像进行图像校正。
进一步的,在所述沿所述图像队列两侧向中间的方向,逐一将各待拼接货架场景图像进行图像拼接之前还包括,提取各所述待拼接货架场景图像中sku的坐标信息。
进一步的,还包括:根据所述单应矩阵,对所述拼接图像中的sku的坐标信息进行坐标变换;
计算所述两待拼接图像中,一待拼接图像的各sku与另一拼接图像的各sku之间的欧式距离;
将欧式距离大于第二预设阈值的两sku作为重复sku,并将所述重复sku中的任意一sku去除。
在上述方法项实施例的基础上,本发明对应提供了装置项实施例;
本发明另一实施例提供了一种货架场景图像的拼接装置,包括图像获取模块和图像拼接模块;
所述图像获取模块,用于获取若干张待拼接货架场景图像;其中所有所述待拼接货架场景图像依次排列形成一图像队列,且相邻两待拼接货架场景图像之间存在重叠区域;
所述图像拼接模块,用于沿所述图像队列两侧向中间的方向,逐一将各待拼接货架场景图像进行图像拼接。
通过实施本发明实施例具有如下有益效果:
本发明实施例提供了一种货架场景图像的拼接方法及装置、所述方法首先获取若干张待拼接货架场景图像,所获取的待拼接货架场景图像依次排列为一个图像队列,而且相邻的两待拼接货架场景图像之间存在重叠的区域;紧接着将图像队列中的待拼接货架场景图像,沿图像队列两侧向中间的方向,逐一进行图像拼接,即分别从图像队列的两侧开始,沿队列中心的方向,逐一将位于图像队列外侧的图像进拼接,由外向里,最终将图像队列中的所有待拼接货架场景图像拼接完成。相比于现有技术始终沿同一个方向对图像进行拼接来说,本发明实施例在进行拼接的过程中,是以位于中间的图为基准,沿两侧向中间同时进行拼接,能更好的保留原图像的图像内容,降低图像内容丢失的概率,这样进一步的可以使得用户在根据拼接完成的货架场景图像进行货架上sku(商品)数量统计时,会更加精准。
附图说明
图1是本发明一实施例提供的一种货架场景图像的拼接方法的流程示意图。
图2是本发明一实施例提供的一种货架场景图像的拼接方法的原理示意图。
图3是本发明一实施例提供的一种货架场景图像的拼接方法的又一原理示意图。
图4是本发明一实施例提供的图像校正的几何原理示意图。
图5是本发明一实施例提供的一种货架场景图像的拼接装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明一实施例提供的一种货架场景图像的拼接方法的流程示意图,包括:
步骤s101、获取若干张待拼接货架场景图像;其中,所有所述待拼接货架场景图像依次排列形成一图像队列,且相邻两待拼接货架场景图像之间存在重叠区域。
步骤s102、沿所述图像队列两侧向中间的方向,逐一将各待拼接货架场景图像进行图像拼接。
对于步骤s101、首先依次获取用户传输的各张待拼接货架场景图像;在一个优选的实施例中,用户在现实场景中分段拍摄了一个货架后,获得了上述若干待拼接货架场景图像,按拍照的顺序传入,这样就可以获得若干依次排列的待拼接货架图像。
在一个优选的实施例中,所述图像队列为沿水平方向排列的图像队列。即图像队列各待拼接货架场景图像按从左到右,或从右到左的顺序进行排列的。
对于步骤s102、具体分两种情况:
第一种,当所述图像队列中待拼接货架场景图像的数量为偶数时,按所述待拼接货架场景图像的排列顺序,将所有所述待拼接货架场景图像按数量均分为左部图像集和右部图像集;
将所述左部图像集中的各待拼接货架场景图像,以从左到右的方向为拼接基准方向,将相邻的待拼接货架场景图像进行图像拼接,获得左部拼接图像;
将所述右部图像集中的各待拼接货架场景图像,以从右到左的方向为拼接基准方向,将相邻的待拼接货架场景图像进行图像拼接,获得右部拼接图像;
将所述左部拼接图像与所述右部拼接图像进行图像拼接。
具体如图2所示,当待拼接货架场景图像为偶数时,一个图像队列依次排列着img1、img2、img3、img4、img5和img6这6张待拼接图像,那么此时将img1、img2、img3分入左部图像集,将img4、img5img6分入右部图像集,对于左部图像集按从左到右的方式进行图像拼接,即先将img1和img2进行图像拼接,然后在将img1和img2拼接得到的拼接图像与img3拼接,从而获得上述左部拼接图像。对于右部图像集按从右到左的方式进行图像拼接,即先将img6和img5进行图像拼接,然后在将img6和img5拼接得到的拼接图像与img4拼接,从而获得上述右部拼接图像。最后将左部拼接图像和右部拼接图像进行图像拼接,最终实现对所有待拼接货架场景图像的拼接。
如图3所示,当待拼接货架场景图像为奇数时,一个图像队列依次排列着img1、img2、img3、img4、img5、img6、img7这7张待拼接图像,那么此时以img4为基准图像。将img1、img2、img3按从左到右的顺序进行拼接,即先将img1和img2进行图像拼接,然后在将img1和img2拼接得到的拼接图像与img3拼接,从而获得上述左侧拼接图像。将img5、img6img7按从右到左的顺序进行拼接,即先将img7和img6进行图像拼接,然后再将img7和img6拼接得到的拼接图像与img5拼接,从而获得上述右侧拼接图像。最后将左侧拼接图像和右侧拼接图像与img4进行拼接,最终实现对所有待拼接货架场景图像的拼接。
当然在其余实施例中,上述图像队列也可以为垂直排列的图像队列(对应实际场景中竖直放置的货架的情况),那么拼接原理也和上述一致都是从队列两侧向中间拼接,区别点在于将原来的从左到右和从右到左的拼接方式,改为了从上到下和从下到上的拼接方式,具体原理与上述一致,在此不再赘述。
以下进一步的对两个图像如何进行拼接进行进一步的说明,目前的图像拼接技术普遍基于sift算法提取特征,但是sift算法实时性不高;在一个优选的实施例中,两图像拼接方法具体包括:
通过akaze算法提取出两待拼接图像的特征点集合,获得第一特征点集合和第二特征点集合;
通过flann算法将所述第一特征点集合和第二特征点集合进行特征点匹配,获得若干特征点匹配对;
从所述特征点匹配对中提取符合预设阈值的特征点匹配对,作为优秀特征点匹配对,继而根据所述优秀特征点匹配对计算两待拼接图像间的单应矩阵;
根据所述单应矩阵对两待拼接图像进行透视变换,并对两待拼接图像中的重叠区域进行融合处理。需要说明的是,在进行两张图像的拼接时,一张图是不变换的,另一张图根据两者配准后计算的单应矩阵来变换。例:两张图a(左图)和b(右图),若以左边图a为基准图,则图a不变,只用根据单应矩阵将b做相应变换,然后拼接。
本发明这一实施例基于akaze算法提取特征点,该算法的鲁棒性与计算效率均优于sift、surf等经典的特征匹配算法,可以较好的改善误匹配点过多的情况。
在一个优选的实施例中,在步骤s101之后,在步骤s102之前还包括:检测所述待拼接货架场景图像中的货架基准线,并计算所述货架基准线与水平线的夹角度数;
若所述夹角度数超过预设阈值,则判断所述待拼接货架场景图像为斜拍图像,继而需要对所述待拼接货架场景图像进行图像校正。
在实际拍摄过程中,由于业务员拍照不规范,所获得的待拼接货架场景图像中会存在大量倾斜变形的图像,直接利用这些拍照不规范的图像进行拼接,会导致拼接效果极差。因此本发明这一实施例,在对待拼接货架场景图像进行拼接之前,需要对货架图像进行倾斜检测并校正。首先通过canny边缘检测、形态学操作以及概率hough变换检测出待拼接货架场景图像中的货架基准线。
具体的,包括以下步骤,
step1:利用canny边缘检测算法检测出待拼接货架场景图像中的边缘信息;
step2:利用sobel算子检测出step1中的水平方向的边缘;
step3通过设置对应的核模板对step2中得到的结果进行形态学操作,使得水平方向的线段更加突出;
step4根据图像的尺寸确定概率hough变换中的参数(最小线段长度与线段之间的最大间距等),然后利用概率hough变换检测出图像中货架直线;
step5利用step4中得到的货架直线的位置信息与图像的尺寸关系(根据图像尺寸设定阈值从而确定出两条货架基准线)确定两条货架基准线
若待拼接货架场景图像不是斜拍的即不存在倾斜变形,那么检测出来的货架基准线与水平线应该是平行的,若是斜拍的则检测出来的货架基准线会与水平线形成一个夹角。
在实际拍照过程中很难拍摄得到货架基准线与水平线完全平行的图像,因此在本发明这一实施例中,设定了一个预设阈值,当货架基准线与水平线的夹角度数超过了预设阈值,才认定待拼接货架场景图像为斜拍图像,然后对其进行图像校正。上述预设可以由用户根据实际图像的拼接效果进行调整、设定。
在一个优选的实施例中,所述对所述待拼接货架场景图像进行图像校正,具体包括:
根据所述货架基准线,确定所述待拼接货架场景图像的灭点;
根据所述灭点以及所述待拼接货架场景图像的边缘,确定所述待拼接货架场景图像的原始基准点和目标基准点;
根据所述原始基准点和目标基准点计算透视变换矩阵,继而根据所述透视变换矩阵对所述待拼接货架场景图像进行图像校正。
如图4所示,首先利用灭点和图像的边缘确定四个原始基准点(p1、p2、p3、p4),然后根据在正常情况下货架基准线是平行的这一先验假设确定目标基准点(p1’、p2’、p3’、p4’)的坐标信息,最后利用原始基准点和目标基准点计算透视变换矩阵,并对倾斜的货架图像进行对应的透视变换,从而实现倾斜货架图像的矫正。
现有的货架图像sku信息识别通常是先对多张货架图像进行拼接,然后再识别拼接后货架场景中sku的信息。但是由于拼接过程会对图像造成一定的形变影响,因此这种先拼接后识别的方案极易出现sku漏识别的问题,最后导致在进行sku数量统计时,出现了统计数据不准确的问题。
为解决上述问题,在一个优选的实施中,在所述沿所述图像队列两侧向中间的方向,逐一将各待拼接货架场景图像进行图像拼接之前还包括,提取各所述待拼接货架场景图像中sku的坐标信息。
在图像拼接之前先检测sku的坐标信息,紧接着在两个图像拼接时,根据单应矩阵,对所述拼接图像中的sku的坐标信息进行坐标变换;计算两待拼接图像中,一待拼接图像的各sku与另一拼接图像的各sku之间的欧式距离;将欧式距离大于第二预设阈值的两sku作为重复sku,并将所述重复sku中的任意一sku去除。
需要说明的是,在进行两张图像的拼接时,基准图是不变换的,另一张图根据两者配准后计算的单应矩阵来变换。例:两张图a(左图)和b(右图),若以左边图a为基准图,则图a不变,只用根据单应矩阵将b做相应变换,然后拼接;因此,同样的,在sku坐标信息的变化过程中,图a中的sku坐标信息不用进行坐标变换,只用将图b中的sku坐标信息进行坐标变换。即上述的根据单应矩阵,对所述拼接图像中的sku的坐标信息进行坐标变换,只需对其中一张待拼接图像中的所有sku信息进行变换。
即在图像拼接前先检测sku信息,然后在图像拼接的过程中将重复的sku进行去重。这样由于sku信息的检测是在图像拼接之前,原图像上没有发生任何的形变,可以准确的检测出sku信息,不会出现遗漏,而由于各个待拼接图像是有重叠部分的,因此可能导致有些sku信息是重复的,因此在图像拼接的过程中,需要对sku信息进行去重,最后得到的实际货架的准确的sku坐标信息。需要说明的是此处所提及的sku可以理解为货架上的一个产品。
为更好的理解本发明所公开的货架场景图像的拼接方法,以下进行总体的说明,整个方法包括以下步骤:
(1)将多张具有重叠区域的待拼接货架图像按拍照顺序(从左至右)传入,利用canny边缘检测、形态学操作以及概率hough变换检测出图像中的货架基准线。然后根据检测出来的货架基准线确定一个灭点,利用此灭点的位置信息对传入的货架图像进行斜拍检测。
(2)若图像倾斜角度大于预设值则对其进行矫正后再拼接,否则直接拼接。货架图像矫正的具体过程为:首先利用灭点和图像的边缘确定四个原始基准点,然后根据在正常情况下货架基准线是平行的这一先验假设确定目标基准点的坐标信息,最后利用原始基准点和目标基准点计算透视变换矩阵,并对倾斜的货架图像进行对应的透视变换,从而实现倾斜货架图像的矫正。
(3)在进行图像拼接之前,对所有的待拼接图像进行sku信息识别,并将传入的待拼接货架图像分为两部分(此处列举待拼接图像的数量为偶数时的情况),其中左半部分的图像以右为基准方向进行拼接,右半部分的图像以左为基准方向进行拼接,从而保证所有待拼接图像都往中间拼。
(4)利用akaze算法快速提取出待拼接货架图像的特征点集合,并运用flann(fastlibraryforapproximatenearestneighbors)算法进行特征点匹配,然后通过设置预设的距离阈值从这些特征点匹配对中筛选出优秀的特征点匹配对。
(5)若步骤(4)中筛选出的优秀特征点匹配对的数量大于预先设定的最小特征点对阈值,则认为两幅待拼接图像存在重叠区域,并对两幅货架图像进行拼接;反之则认为两幅待拼接货架图像中不存在重叠区域或重叠区域过小,则不对这两幅图像进行拼接。
(6)根据筛选出的优秀特征点匹配对来计算两幅待拼接图像之间的单应矩阵,并根据步骤(3)中确定的拼接基准方向利用此单应矩阵对相应的待拼接图像进行透视变换。
(7)基于渐入渐出融合方法对待拼接图像中的重叠区域进行融合处理,并将图像进行拼接,优化拼接结果图中的拼接缝与亮度不均匀的问题。
(8)利用步骤(6)中计算的单应矩阵对相应的货架图像中所有sku的坐标信息进行对应的坐标变换;然后计算变换后所有sku的欧氏距离,当两个sku之间的距离大于设定的阈值时确定为重复的sku,反之则不是重复的sku,进而进行sku去重。
最后对已拼接完成的货架场景图像的sku数量进行统计。
在上述方法项实施例的基础上对应提供了装置项实施例;
如图5所示,本发明另一实施例提供了一种货架场景图像的拼接装置,包括图像获取模块和图像拼接模块;
所述图像获取模块,用于获取若干张待拼接货架场景图像;其中所有所述待拼接货架场景图像依次排列形成一图像队列,且相邻两待拼接货架场景图像之间存在重叠区域;
所述图像拼接模块,用于沿所述图像队列两侧向中间的方向,逐一将各待拼接货架场景图像进行图像拼接。
可以理解的是,上述装置项实施例是与本发明方法项实施例相对应的,其可以实现本发明上述任意一项方法项实施例提供的基于货架场景图像的拼接装置。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元/模块可以是或者也可以不是物理上分开的,作为单元/模块显示的部件可以是或者也可以不是物理单元/模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。所述示意图仅仅是基于货架场景图像的拼接装置/终端设备的示例,并不构成对基于货架场景图像的拼接装置/终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
通过实施本发明实施例具有如下有效果:
1、对多幅(大于4副)货架图像进行拼接时,尤其是图像拍摄过程中存在偏角时,本发明能较好保留所有待拼接原图中的内容信息,拼接效果优于当前的始终以一个固定方向为拼接基准方向进行拼接的算法,有利于后期的sku数量的统计。
2、本发明基于akaze算法提取特征点,综合算法的鲁棒性与计算效率考虑,akaze算法优于sift、surf等经典的特征匹配算法,可以较好的改善误匹配点过多的情况,且算法运行效率较高。本发明下平均两张图(600*800)的拼接加去重的总时间在0.5s左右,可以实时获取去重后的拼接结果;
3、本发明能准确统计sku数量,通过先识别后拼接有效避免现有技术在sku数量统计过程中的漏识别的问题。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。