基于Hu矩模板匹配和目标跟踪的ROI实时自动提取*

2021-09-28 01:33姚卫杰朱华炳殷玉龙
组合机床与自动化加工技术 2021年9期
关键词:跟踪目标像素尺寸

姚卫杰,朱华炳,殷玉龙

(合肥工业大学机械工程学院,合肥 230009)

0 引言

基于机器视觉的自动化在线测量及制造技术是实现高精尖装备中关键零件的自动化在线加工的重要手段,它对图像中ROI提取的实时性和自动化程度提出了更高要求,研究实时自动ROI提取新方法,已是亟需解决的应用研究课题。提取图像中的ROI是实现自动化在线测量和目标定位的必要条件[1-2]。模板匹配和目标跟踪算法都能实现ROI的提取。

模板匹配即使用一张目标图作为模板图片,使用一定相似度度量算法来确定待匹配图的哪个位置与模板图最为相似,该位置即为提取到的ROI。常用的模板匹配算法可以分为灰度相关的和几何特征相关的,灰度相关的模板匹配算法以图像灰度信息直接进行匹配,原理简单,但是对于光照变化和部分遮挡的情况束手无策[3],张建华[4]提出了粗匹配再精匹配的两步基于灰度的模板匹配算法,减少了计算时间和计算量。基于几何特征的模板匹配算法,具有对光照变化、部分遮挡不敏感的优点,还能解决角度旋转、比例缩放的差异问题,成为模板匹配算法的研究热点,这类算法可以以图像矩(Hu矩、Zernike矩、复数矩等)、傅里叶变换、角点信息等作为匹配信息[5],其中,基于Hu矩的模板匹配算法因其良好的旋转、缩放和平移不变性,得到了广泛应用。目前国内外学者主要在匹配搜索策略和粗匹配精匹配结合等方面提出对Hu矩模板匹配算法的改进[6-8],在显微视觉、水下地形匹配等方面都有应用[9-10]。

目前常用的目标跟踪方法主要有L-K光流法、卡尔曼滤波方法、核方法和相关滤波跟踪算法等。Xu M等[11]将L-K光流法与特征点匹配相结合,用于解决老电影的视频抖动问题,实现了帧与帧之间的平滑过渡。崔乃刚等[12]将高阶容积卡尔曼滤波算法与强跟踪滤波算法相结合,应用到有状态突变的机动目标跟踪问题中。褚天鹏[13]将基于卡尔曼滤波器改进的KCF目标跟踪算法应用于无人机拍摄到的图像的视觉目标跟踪中,该方法具有抗部分遮挡、抗光照变化和抗相机抖动等优势。

现有的基于Hu矩的模板匹配算法计算量大,不易实现实时性,而且不能根据目标实际大小提取到自适应大小的ROI,但是能够实现模板的全图匹配,不论目标在图像的哪个位置,都能匹配成功;现有的目标跟踪算法需要人工划定初始跟踪目标,无法实现自动的ROI提取,但是提取速度快,易于实现实时ROI提取。在综合考虑两种方法的优劣势后,首先提出了变模板尺寸的改进Hu矩模板匹配算法,解决现有Hu矩模板匹配算法无法提取到自适应大小的ROI的问题,其次将改进后的Hu矩模板匹配算法的ROI提取结果作为目标跟踪算法的初始跟踪目标,实现了现有目标跟踪算法的自动化ROI提取。

1 实时自动ROI提取策略

该算法的具体流程图如图1所示。为实现ROI的实时自动提取,先拍摄一张包含目标的待匹配图像,使用变模板尺寸的Hu矩模板匹配算法对待匹配图像做预处理,预处理结束后,将变模板尺寸的Hu矩模板匹配算法的匹配结果输入目标跟踪算法,作为目标跟踪算法的初始跟踪目标。在预处理阶段,使用一个尺寸尽量大但不大于待匹配图像尺寸的模板图像,采用逐级缩小模板图的方式做多次模板匹配,每次模板匹配使用不同的移动步距,从上到下从左到右依次遍历待匹配图像,使用基于Hu矩的匹配度评价函数得到每一个匹配位置的匹配得分,找到最佳得分,从而得到最佳模板大小(即ROI大小)和最佳匹配位置。预处理阶段结束后,将得到的ROI作为目标跟踪算法的初始跟踪目标,使用目标跟踪算法实现对ROI的实时自动提取。

图1 实时自动ROI提取算法总体流程

1.1 Hu矩的数学模型

M K Hu于1962年提出了由二阶和三阶图形中心距做非线性组合得到的图像不变矩,称为Hu矩。Hu矩不随图像的旋转发生改变,在模式识别和图像匹配等方面表现出明显优势[14]。

一个灰度图像可以看作一个离散的二元函数f(x,y),它的p+q阶不变矩定义为:

(1)

由式(1)可计算出图像的p+q阶中心距:

(2)

对中心距做归一化处理,得到归一化中心距:

(3)

Hu不变矩是将归一化中心距做非线性组合得到的,由式(3)可计算出i阶Hu不变矩hi(其中i=1~7):

h1=(η20+η02)

(4)

(5)

(6)

(7)

(8)

(9)

(10)

1.2 变模板尺寸的Hu矩模板匹配

在实际应用场景中,目标所占画面比例是未知的,当前的基于Hu矩的模板匹配算法都是使用固定大小的模板图,将模板图覆盖在待匹配图上不断移动,再使用基于Hu矩的相似度度量方法来确定模板图移动到待匹配图的哪个位置时与重叠的区域最为相似,最相似的重叠区域即是提取到的ROI,这样只匹配一次的方法提取到的ROI大小和模板图的大小完全相等。在实际拍摄时,当相机距离目标较远,那当前模板匹配算法得到的ROI将偏大,其中有过多的背景;当相机距离目标较近时,当前模板匹配算法得到的ROI将偏小,无法包含整个目标。如果目标所占画面比例和模板图的大小差距太大,甚至会导致匹配失败。

为解决该问题,提出了一种变模板尺寸的Hu矩模板匹配算法。在该方法中,模板的大小可变,为使ROI提取能够适应尽可能多的目标画面占比情况,使用尽量大的初始模板图像(在相机的最近对焦距离下拍摄目标,并截取出模板图,这样得到的模板图最大),但不应大于待匹配图。设待匹配图S的尺寸为W×H像素,模板图T的尺寸为m×n像素,其中m≤W,n≤H。首先定义基于Hu矩的匹配值。

由于7个Hu不变矩变化范围太大,先对其分别取对数:

(11)

将待匹配图S与模板图T的重叠部分记为重叠子图S(i,j),其中i,j为重叠部分左上角坐标。定义重叠子图S(i,j)和模板图T的基于Hu矩的匹配值d(i,j)如下:

(12)

显然,匹配值d(i,j)越小,说明模板图T和重叠子图S(i,j)越相似。

变模板尺寸的Hu矩模板匹配方法使用逐级缩小的模板图去分别匹配,从而得到合适大小的ROI。该方法的流程图如图2所示,具体步骤如下:

图2 变模板尺寸的Hu矩模板匹配流程图

步骤1:获取图像后,先用原始大小的模板做一次Hu矩模板匹配,如图3所示,将模板图T叠放在待匹配图S的左上角,然后从左到右、从上到下移动搜索,每次移动模板图宽度像素值的1/20,计算重叠子图S(i,j)和模板图T的基于Hu矩的匹配值d(i,j)。显然有0≤i≤W-m, 0≤j≤H-n。建立一个W-m+1行,H-n+1列的矩阵D,将重叠子图S(i,j)和模板图T的基于Hu矩的匹配值d(i,j)存放在矩阵D的第i行第j列处,移动模板搜索完毕后找到D中的最佳匹配值dmin;并记录下最佳匹配值dmin、ROI位置(i,j)和尺寸m×n;

步骤2:使用双线性插值方法对模板图T做缩小,在长、宽方向上使用相等的缩放因子q,得到新的缩小后的模板图。再对源图S做一次Hu矩模板匹配,将新得到的最佳匹配值与上一次得到的对比,如果比上次更小,则用这次的最佳匹配值、ROI位置和尺寸代替上一次的,执行步骤3;如果比上次的大,则直接执行步骤3;

步骤3:判断模板是否缩小到预定的最小尺寸,如果还没有,则返回执行步骤2,如果已经缩小到最小尺寸,则进入步骤4;

步骤4:现在的ROI位置和尺寸即是该方法最终得到的ROI位置和尺寸。

图3 移动模板搜索

在该方法中,由于要用多级缩小的模板图T做多次模板匹配,如果做Hu矩模板匹配时每次模板只在待匹配图上移动一个像素,将产生巨大的计算量,因此,通过实际试验发现,在保证精度的情况下,每次移动模板图T横向长度的1/20像素,这样将大大加快匹配速度。

1.3 目标跟踪初始区域的自动划定

目标跟踪是计算机视觉领域研究的热点问题,广泛应用于视频监控、运动员比赛分析、智能人机交互等。基于相关滤波的目标跟踪方法将计算转换到频域,相比传统的光流法、核方法计算量大大减小,速度得到了提高,使得目标跟踪取得了突破性的进展。其中KCF算法引入了循环矩阵,避免了矩阵的求逆运算,效果良好[15]。

目标跟踪算法速度快,可以满足ROI的实时提取需要,但是需要输入初始跟踪目标,另外,在目标位移量大时,容易跟踪丢失;而模板匹配算法能够在全图搜索目标,只要输入一个模板图,各种场景下都能实现ROI的提取,但是匹配时间长,尤其在本文的变尺寸模板算法下,需要多次匹配。将两种方法结合起来,先拍摄一张图像使用变模板尺寸的Hu矩模板匹配算法做预处理,在预处理结束后获得合适大小的ROI,将该ROI输入到目标跟踪算法中,作为目标跟踪的初始跟踪目标。这样,目标跟踪算法就可以实现自动化,并且利用其良好的速度优势可以实现ROI提取的实时性。

2 实验与讨论

本文以KCF目标跟踪算法为例,结合Hu矩模板匹配,对本文方法做实验验证。实验使用相机型号为大恒图像水星系列MER-231-41U3C,镜头为大恒图像定焦镜头HN-1216-5M-C2/3X,相机和镜头的具体参数如表1所示;实验使用的计算机CPU为Intel(R) Core(TM) i5-10210U,内存16G,Windows 10家庭中文版操作系统,实验程序使用C++语言编写,在Visual Studio 2017环境下运行,使用了OpenCV4.1.1版本。实验场景如图4所示。

表1 相机和镜头重要参数

图4 实验场景

2.1 Hu矩模板匹配实验

为了得到前文所述的尽量大但是又不大于待匹配图的模板图,使用相机在镜头的最近对焦距离下拍摄目标,并截取出只有目标的部分作为模板图,得到了700×700像素尺寸的模板图,如图5所示。

图5 模板图像

为模拟实际目标定位环境,将目标放置到物料筐中,并且在筐中散乱放置其他物料,使得背景足够复杂。

首先从不同距离拍摄目标,使得目标在图像中所占比例大小不一,设置缩放因子q分别为1.0, 0.9,…, 0.2, 0.1,最小缩放到原模板的0.1,即最小模板为70×70像素,这样的缩放因子设置已经能覆盖绝大多数目标占比情况,以此来验证该方法能否提取到合适大小的ROI。实验结果如图6所示。

(a) 缩放因子q=0.3时 得到最佳匹配值 (b) 缩放因子q=0.4时 得到最佳匹配值

(c) 缩放因子q=0.5时 得到最佳匹配值 (d) 缩放因子q=0.7时 得到最佳匹配值 图6 目标和相机不同距离的模板匹配结果

图6a中的实验在模板缩放因子q=0.3,模板尺寸为210×210时,最佳匹配值最小,因此最终匹配到的ROI位置为(990,390),尺寸为210×210,详细实验数据如表2所示。

表2 图6a中实验的数据

其他实验的最终保留的最佳匹配值及其他数据如表3所示。

表3 图6b~图6d中实验的部分实验数据

观察图6a~图6d,明显看出提取到的ROI能够适应目标实际所占比例,在不同目标占比情况下,提取到了背景尽量少又能够基本完全覆盖目标的ROI,说明变尺寸模板的Hu矩模板匹配方法能够达到预期效果。

为验证目标与模板图相比有旋转的情况,将目标以各种角度摆放在物料筐中,做模板匹配实验,结果如图7所示。

(a) 目标相比模板顺时针旋转45° (b) 目标相比模板逆时针旋转45°

(c) 目标相比模板顺时针旋转90° (d) 目标相比模板逆时针旋转90° 图7 目标相比模板有旋转的匹配结果

实验表明,Hu矩模板匹配能够识别相对模板发生旋转的目标,且匹配效果良好。

2.2 目标跟踪初始区域自动划定实验

将上一步的模板匹配结果作为KCF目标跟踪算法的初始跟踪目标,初始跟踪目标如图8所示。运行KCF算法,试验在平移和转动料筐时,对目标的跟踪情况,跟踪结果如图9所示。

图8 初始跟踪目标

(a) 原位置跟踪结果 (b) 发生平移后的跟踪结果

(c) 发生旋转后的跟踪结果 (d) 发生平移和旋转后的跟踪结果 图9 目标跟踪结果

实验结果显示,在将Hu矩模板匹配的结果作为KCF目标跟踪算法的初始跟踪目标输入后,KCF目标跟踪算法能够正常运行,且在目标发生平移、旋转和平移加旋转后,KCF目标跟踪算法都能跟踪到目标,在使用图像像素尺寸为1920×1200大小的实验中,平均跟踪速度达到了8帧/s,即每张图像的跟踪时间为125 ms,符合实时性要求。

3 结论

为了解决基于机器视觉的智能化在线三维测量等应用中,需要实时提取ROI的问题,本文提出了以变模板尺寸的Hu矩模板匹配算法的结果作为目标跟踪算法的初始跟踪目标,来实现ROI的实时自动提取的方法。通过编程实现,并采用料筐环境作为背景来测试该方法的可行性。实验结果表明:该方法能够提取到合适大小的ROI,并且结合目标跟踪算法,实现了对目标平均8帧/s的提取速度,能够实现ROI的实时自动提取。

猜你喜欢
跟踪目标像素尺寸
像素前线之“幻影”2000
CIIE Shows Positive Energy of Chinese Economy
核相关滤波与孪生网络相结合的目标跟踪算法
“像素”仙人掌
ÉVOLUTIONDIGAE Style de vie tactile
D90:全尺寸硬派SUV
基于图割理论的尺度自适应人脸跟踪算法
连续同色调背景下运动目标自适应跟踪
高像素不是全部
佳石选赏