具体实施方式
(1)实施方式的概要
图像处理装置21(图5)并列地配设由从高分辨率图像提取亮度梯度方向的三行缓冲区25a~缓冲区28a构成的高分辨率图像用的处理线、由从中分辨率图像提取亮度梯度方向的中分辨率部24b~缓冲区28b构成的中分辨率图像用的处理线以及由从低分辨率图像提取亮度梯度方向的低分辨率部24c~缓冲区28c构成的低分辨率图像用的处理线,并从这三个分辨率的图像并行地同时对每个像素提取亮度梯度方向。
共生矩阵生成部30a、30b、30c使用从这三个分辨率的图像提取出的亮度梯度方向来生成共生矩阵,直方图生成部31使用该共生矩阵来输出直方图作为MRCoHOG特征量。
由于同时处理三个分辨率的图像,所以能够高速地进行处理,能够实时地对从照相机输出的视频进行处理。
(2)实施方式的详细
首先,对HOG特征量、CoHOG特征量以及MRCoHOG特征量进行简单说明。
图1使用于说明HOG特征量的概念的图。
通过以下的顺序从图像提取HOG特征量。
图1(a)左图所示的图像101是观测对象的观测窗等的关注图像区域。
首先,将图像101分割为矩形的单元102a、102b,······。
接下来,如图1(a)右图所示,按每个单元102例如在八个方向上将各像素(pixel)的亮度梯度方向(从低亮度朝高亮度的方向)量子化。
接下来,如图1(b)所示,通过生成将量子化的亮度梯度的方向作为分级,将出现次数作为度数的直方图,从而按每个单元102生成单元102所包含的亮度梯度的直方图106。
然后,以将几个单元102集中的块单位以直方图106的合计度数为1的方式进行标准化。
在图1(a)左图的例子中,由单元102a、102b、102c、102d形成一块。
如图1(c)那样将这样标准化的直方图106a、106b、······排列为一列的直方图是图像101的HOG特征量107。
图2是用于说明CoHOG特征量的图。
CoHOG特征量是着眼于局部区域中的两个像素间的梯度对的特征量,通过以下的顺序从图像提取。
如图2(a)所示,将图像101分割为矩形的单元102a、102b、······。其中,单元也被称为块。
在CoHOG特征量中,在单元102a、102b、······设定关注像素110,并通过关注像素110的亮度梯度方向与距离关注像素110处于距离1~4的像素的亮度梯度方向的组合来生成共生矩阵(与关注像素110相关的直方图)。其中,与关注像素110的组合所涉及的像素被称为补偿。
例如,以数式表示距离关注像素110的距离,若应用该数式,则如图2(a)所示那样,作为距离1的像素,得到与关注像素110相邻的像素1a~1d。
此外,关注像素110的上侧和左侧的像素不包含于组合是因为从最上侧的像素行的左端朝右方向依次设定关注像素110并进行处理,所以已经结束处理。
接下来,观察关注像素110与像素1a的亮度梯度方向。亮度梯度方向例如在八个方向上进行量子化,在图中以箭头示出方向。
关注像素110的亮度梯度方向为在右方向上像素1a的亮度梯度方向为右上方向。
因此,在图2(b)的共生矩阵113,对(行编号,列编号)=(右方向,右上方向)的要素投一票。
在图2(b)的例子中,作为关注像素110与像素1a的亮度梯度方向的组合,在作为行编号记载右方向的箭头的行和作为列编号记载了右上方向的箭头的列的要素加上1的结果为,该要素的值成为10。
此外,虽然本来应该以立体的直方图描绘共生矩阵113,并以高度方向的棒状图表表示票数,但为了使图简单化而以数值示出票数。
以下,同样地进行关注像素110与像素1b、1c、1d的组合的投票(计数)。
如图2(c)所示,以关注像素110为中心,距离2的像素规定为处于像素1a~1d的外周的像素2a~2f,距离3的像素规定为进一步处于其外周的像素3a~3h,距离4的像素规定为进一步处于其外周的像素4a~4l。
对于它们也同样地与关注像素110组合并在共生矩阵113投票。
对构成单元102的所有像素进行以上的投票处理,并得到每个像素的共生矩阵。
并且,在全部的单元102进行上述处理,将全部的共生矩阵的成分如图2(d)所示那样排列成一列的直方图是图像101的CoHOG特征量117。
图3是用于说明MRCoHOG特征量的图。
MRCoHOG特征量通过在相同的图像的不同分辨率间发现共生来大幅度地削减补偿数。
首先,如图3(a)所示,通过根据源图像来生成分辨率(图像尺寸)不同的图像从而得到高分辨率图像120(源图像)、中分辨率图像121以及低分辨率图像122。图像中的框表示像素。虽然未图示,但还这些各分辨率图像设定有单元(也称为块)。
然后,对高分辨率图像120、中分辨率图像121以及低分辨率图像122各自的像素计算量子化的亮度梯度方向。
虽然MRCoHOG特征量的提取使用中分辨率图像121、低分辨率图像122,但为了容易理解,如图3(b)所示,将中分辨率图像121和低分辨率图像122延长为中分辨率图像121a和低分辨率图像122a,使它们成为与高分辨率图像120相同的尺寸。
接下来,如图3(c)所示,与CoHOG特征量同样地取高分辨率图像120的关注像素125的亮度梯度方向与其周围的高分辨率图像120的像素1a~1d的亮度梯度方向的共生(亮度梯度方向的组合),并对未图示的共生矩阵进行投票。
接下来,按照高分辨率图像120的关注像素125与处于像素1a~1d的外周的中分辨率图像121a的像素2a~2d的共生来对共生矩阵进行投票,并且,按照关注像素125与处于像素2a~2d的外周的低分辨率图像122a的像素3a~3d的共生来对共生矩阵进行投票。
这样一来,针对高分辨率图像120的关注像素125,得到以高分辨率图像120内的组合、与中分辨率图像121a的组合以及与低分辨率图像122a的组合取得共生的共生矩阵。
对高分辨率图像120的单元内的各像素进行该处理,并对全部的单元进行该处理。
由此,得到高分辨率图像120的每个像素的共生矩阵。
同样地,还计算在中分辨率图像121a设定了关注像素的情况下的与各分辨率图像的共生矩阵、在低分辨率图像122a设定了关注像素的情况下的与各分辨率图像的共生矩阵,并将全部的共生矩阵的成分如图3(d)所示那样排列成一列的直方图是高分辨率图像120的MRCoHOG特征量127。
此外,虽然在该例子中,将使在高分辨率图像120设定了关注像素的情况下的共生矩阵、在中分辨率图像121a设定了关注像素的情况下的共生矩阵以及在低分辨率图像122a设定了关注像素的情况下的共生矩阵连结后的直方图作为MRCoHOG特征量,但也能够将任意一个例如在高分辨率图像120设定了关注像素的情况下的共生矩阵的直方图作为MRCoHOG特征量。
另外,也可以组合任意两个,并且也可以增加分辨率而利用四个种类以上的分辨率图像取得共生。
根据发明者等的实验明确根据MRCoHOG特征量,与CoHOG相比能够大幅度地减少特征量,另一方面稳健性比CoHOG要好。
这可推测为通过使分辨率降低而降低了噪声以及并非为了观看与关注像素分离的部分的共生。
接下来,对数学计算式向硬件的应用方式进行说明。
为了计算MRCoHOG特征量,需要计算平方根、除法、反正切。
然而,计算机通过加法进行平方根等各种计算,所以这些运算的负荷较大。
因此,为了使计算速度高速化,或者为了实现IC芯片化而使电路规模为适当的规模,需要研究适合于硬件的计算方法。
图4是用于说明本实施方式所使用的计算方法的图。
图4(a)的式(1)的m(x,y)表示处于坐标(x,y)的像素的亮度梯度的梯度强度的计算式。
此外,为了防止乱码,以全角示出下附的小写字符。
fx(x,y)、fy(x,y)分别是x方向(水平方向·横向)与y方向(垂直方向·纵向)的亮度的梯度强度。
fx(x,y)、fy(x,y)在数学上通过向x方向、y方向对亮度进行偏微分而求出,但在本实施方式中,以关注像素的水平方向(左右横向)两侧相邻的像素的亮度的差分表示fx(x,y),以关注像素的垂直方向(上下纵向)两侧相邻的像素的亮度的差分表示fy(x,y)。
如式(1)所示,梯度强度包含平方根,但通过将欧几里得距离置换为曼哈顿距离,使式(1)近似为式(2)的加法式。
如图4(a)的右图所示,该置换使地点TU间的欧几里得距离亦即(t平方+u平方)的平方根近似为曼哈顿距离亦即t+u。名称的曼哈顿出自美国都市的曼哈顿的街路为棋盘的网格状。
梯度强度是亮度梯度所涉及的亮度的高低差越大则越大的量,使用于零点补偿。
关于梯度强度未达到规定的阈值的亮度,虽然例如进行不取共生等规定的处理,但给予图像的识别精度的影响较小,所以在本实施方式中,对于该处理省略说明。
实验的结果为,确认了即使将欧几里得距离置换为曼哈顿距离也几乎不对图像识别能力造成影响。
图4(b)的式(3)表示一般使用的亮度梯度方向θ的计算式。
式(3)包含fy(x,y)对fx(x,y)的除法和反正切(arctangent)的计算,所以计算所需要的处理负荷较大。
因此,在本实施方式中,MRCoHOG特征量的计算所需要的并不是基于式(3)的准确值,而着眼于进行了量子化的亮度梯度方向,不使用式(3),而准备使fx(x,y)和fy(x,y)的组与亮度梯度方向建立了对应的对应表格,由此将fx(x,y)与fy(x,y)的组映射到量子化的亮度梯度方向。
图4(c)表示角度θ的范围与量子化的亮度梯度方向θ的关系。
在本实施方式中,作为一个例子,使亮度梯度方向在八个方向上量子化。
这里,如图4(c)所示,亮度梯度方向θ为0°≤θ<45°的亮度梯度方向量子化为0°,45°≤θ<90°的亮度梯度方向量子化为45°,其它的角度也同样地量子化为90°、135°、180°、225°、270°、315°。
在该方法中,首先,按照分类11,将fx(x,y)与fy(x,y)的正负的组合分类为a~d。
分类a是fx(x,y)和fy(x,y)均为正的情况,分类b是fx(x,y)和fy(x,y)均为负的情况,分类c是fx(x,y)为正而fy(x,y)为负的情况,分类d是fx(x,y)为负fy(x,y)为正的情况。
接下来,对fx(x,y)与fy(x,y)的大小关系进行比较,并根据分类12,与量子化的亮度梯度方向建立对应。
在分类为a,且y在x以下的情况下,使其与0°对应,在y比x大的情况下,使其与45°对应。
在分类为b,且-y在x以下的情况下,使其与90°对应,在-y比x大的情况下,使其与135°对应。
在分类为c,且y在x以上的情况下,使其与180°对应,在y比x小的情况下,使其与225°对应。
在分类为d,且-y在x以上的情况下,使其与270°对应,在-y比x小的情况下,使其与315°对应。
这样,在本实施方式中,通过参照由分类11、12构成的对应表格,能够不使用反正切、除法而高速地得到量子化的亮度梯度方向。
这样,本实施方式的图像处理装置使用关注像素的相邻像素的亮度来获取关注像素的水平方向的亮度梯度强度fx(x,y)以及垂直方向的亮度梯度强度fy(x,y),并在水平方向的亮度梯度强度和垂直方向的亮度梯度强度的正负及大小与量子化的梯度方向建立了对应的对应表格中参照使该获取到的水平方向的亮度梯度强度和垂直方向的亮度梯度强度来输出量子化的梯度方向。
图5是表示本实施方式的图像处理装置的电路构成的图。
图像处理装置21作为半导体装置,例如形成在半导体芯片之上。
图像处理装置21具备由三行缓冲区25a~缓冲区28a构成的高分辨率图像处理线、由中分辨率部24b~缓冲区28b构成的中分辨率图像处理线以及由低分辨率部24c~缓冲区28c构成的低分辨率图像处理线。
这些管线并列地配设,并同时地并行处理高中低分辨率的图像,所以能够高速地进行处理。
这里,由高分辨率图像处理线、中分辨率图像处理线以及低分辨率图像处理线的组合构成的电路作为使用依次输出的亮度,按不同分辨率并行地依次输出多个分辨率下的各像素的亮度的梯度方向的梯度方向输出单元发挥作用。
而且,高分辨率图像处理线、中分辨率图像处理线以及低分辨率图像处理线分别作为按多个分辨率的每一个并列地设置,并根据从后述的图像输入部23依次输出的亮度来输出该分辨率的像素的亮度的梯度方向的多个按不同分辨率梯度方向输出单元发挥作用。
图像处理装置21与时钟同步地,使这些按不同分辨率梯度方向输出单元同时动作,从而能够并行地依次输出按不同分辨率的梯度方向。
以下,对构成图像处理装置21的各电路进行说明。
计算MRCoHOG特征量只要有构成图像的各像素的亮度数据即可。
因此,在本实施方式中,从以YUYV格式形成的图像提取像素的Y(亮度)并将其作为亮度数据输入到图像处理装置21。
以下,以(i-j)等对应的像素的行编号和列编号表示图像的第i行j列的像素的亮度数据、后述的梯度方向数据。
图像输入部23是基于像素顺序(在图像配置该像素的顺序)依次输出从摄影机发送来的帧的图像的亮度数据的电路,作为基于像素的顺序依次输出构成图像的该像素的亮度的亮度输出单元发挥作用。
此外,虽然在本实施方式中,预先从YUYV格式的图像提取亮度数据Y,并将其作为图像输入到图像输入部23,但也可以构成为利用图像输入部23,或者梯度方向计算部26a、26b、26c从像素数据提取亮度成分。
如图7(a)所示,图像40由第一行的亮度数据(0-0)、(0-1)、(0-2)、······、(0-n)、第二行的亮度数据(1-0)、(1-1)、(1-2)、······、(1-n)、第m行的亮度数据(m-0)、(m-1)、(m-2)、······、(m-n)构成。
图像输入部23从自摄影机送来的图像40从上面的行开始向右方向依次读出亮度数据,并按亮度数据(0-0)、(0-1)、(0-2)、······、(0-n)、(1-0)、(1-1)、······的顺序输出。
返回到图5,图像输入部23的输出线布线到三行缓冲区25a、中分辨率部24b以及低分辨率部24c,图像输入部23输出的亮度数据同时输出到三行缓冲区25a、中分辨率部24b以及低分辨率部24c的各个。
此外,在图5中,以粗线的箭头表示高分辨率的亮度数据的布线,以细线的箭头表示中分辨率的亮度数据的布线,并以虚线表示低分辨率的亮度数据的布线。
中分辨率部24b和低分辨率部24c分别是将图像40的分辨率(尺寸)转换为1/2和1/4的分辨率转换电路。
通过这些分辨率转换电路,从图像40生成分辨率为1/2、1/4的图像。
此外,图像40也不转换分辨率而直接作为高分辨率图像使用。
转换(调节)分辨率的方法有最近邻插值、双线性插值以及双三次插值等。
最近邻插值是抽出调节前的像素并直接使用的方法,双线性插值是对以对象像素为中心的2×2的区域进行加权平均的方法,双三次插值是通过三次函数对以对象像素为中心的4×4的区域进行补充的方法。
在图像处理装置21中,采用计算简单并且检测精度较高(后述)的最近邻插值。
图6是用于说明中分辨率部24b、低分辨率部24c的分辨率转换处理的图。
如图6(a)的图像40b所示,中分辨率部24b从图像输入部23发送来的图像40的亮度数据中的以斜线所示的每隔一个的频繁度读入亮度数据,并跳读其它的亮度数据,从而生成垂直方向及水平方向的亮度数据每隔一个的分辨率1/2的图像数据。
如图像40c所示,低分辨率部24c从图像输入部23发送来的图像40的亮度数据中以斜线所示的每隔三个的频繁度读入亮度数据,并跳读其它的亮度数据,从而生成垂直方向及水平方向的亮度数据每隔三个的分辨率1/4的图像数据。
通过进行这样的亮度数据的间隔剔除,中分辨率部24b生成并输出分辨率为1/2的中分辨率图像,低分辨率部24c生成并输出分辨率为1/4的低分辨率图像。
由于采用了最近邻插值,所以能够通过跳读不需要的数据,拾取需要的数据这样的计算负荷较小的简单的处理来变更分辨率。
这样图像处理装置21通过根据基于该分辨率的频繁度来选择从亮度输出单元(图像输入部23)依次输出的亮度,从而依次输出该分辨率的亮度。
更详细而言,高分辨率图像处理线(三行缓冲区25a~缓冲区28a)通过基于高分辨率的频繁度(由于全部进行选择所以频率为全部)来选择并输出像素(的亮度),在中分辨率图像处理线(中分辨率部24b~缓冲区28b)中,中分辨率部24b通过基于中分辨率的频繁度(每隔一个)来选择并输出像素(的亮度),在低分辨率图像处理线(低分辨率部24c~缓冲区28c)中,低分辨率部24c通过基于低分辨率的频率(每隔三个)来选择并输出像素(的亮度)。
这些处理线使用这些亮度数据来输出各分辨率下的梯度方向。
图6(b)是表示使用了最近邻插值的情况下的识别率和使用了双线性插值的情况下的识别率的实验结果的ROC(Receiver Operating Characteristic:受者工作特性)曲线图。
纵轴和横轴分别是再现率和误检测率,表示曲线的下侧的面积越大则识别率越好。
如图所示,使用了最近邻补充的情况下的识别率与使用了双线性补充的情况下的识别率相比压倒性地示出较好的性能。这考虑由于与双线性插值相比边缘清晰,所以精度提高。
这样最近邻插值除了处理简单所以适合硬件安装之外,识别率也较大地提高。
返回到图5,三行缓冲区25a是储存高分辨率图像的亮度数据,并且并列地输出三行到梯度方向计算部26a的电路。
梯度方向计算部26a是使用三行的亮度数据来输出表示高分辨率图像中的关注像素的亮度梯度方向的梯度方向数据的电路。
三行缓冲区25b是储存中分辨率图像的亮度数据,并且并列地输出三行到梯度方向计算部26b的电路。
梯度方向计算部26b是使用三行的亮度数据来输出表示中分辨率图像中的关注像素的亮度梯度方向的梯度方向数据的电路。
三行缓冲区25c是储存低分辨率图像的亮度数据,并且并列地输出三行到梯度方向计算部26c的电路。
梯度方向计算部26c是使用三行的亮度数据来输出表示低分辨率图像中的关注像素的亮度梯度方向的梯度方向数据的电路。
图7是用于说明三行缓冲区25a与梯度方向计算部26a的详细的动作的图。
如先前使用图7(a)说明的那样,高分辨率图像的图像40的亮度数据从图像输入部23输出为(0-0)、(0-1)、······。
如图7(b)所示,三行缓冲区25a对这些亮度数据按不同行来储存三行,并将这三行并列地输出到梯度方向计算部26a。
在图7(b)的例子中,示出在使像素的列一致且并行地将图像40的第二行的亮度数据(1-0)、(1-1)、(1-2)、······、第三行目的亮度数据(2-0)、(2-1)、(2-2)、······、第四行的亮度数据(2-0)、(2-1)、(2-2)、······输出到梯度方向计算部26a的情况。
梯度方向计算部26a接受并列地输出的三行的亮度数据的输入,并输出量子化的亮度梯度方向。
如图所示,梯度方向计算部26a具备三行三列的存储元件的排列,与三行缓冲区25a的输出同步地获取三行三列的亮度数据,并读取基于这些亮度数据的亮度。
如图所示,梯度方向计算部26将三行三列的亮度数据中的中央的亮度数据设定为关注像素。在图的例子中,以粗线的矩形包围的亮度数据(2-1)成为关注像素的亮度数据。
然后,梯度方向计算部26a根据与关注像素在水平方向上相邻的亮度数据(2-2)、(2-0)的亮度的差分来计算水平方向的亮度梯度强度fx(x,y),并根据与关注像素在垂直方向上相邻的亮度数据(1-1)、(3-1)的亮度差分来计算垂直方向的亮度梯度强度fy(x,y)。
梯度方向计算部26a若求出fx(x,y)和fy(x,y),则将它们代入图4的式(2)求出m(x,y),在m(x,y)未达到阈值的情况下,进行规定的处理。
在m(x,y)达到阈值的情况下,在对应表格中参照fx(x,y)、fy(x,y),输出表示该像素的量子化的亮度梯度方向的梯度方向数据(2-1)。
这样,梯度方向数据与亮度数据同样地与像素对应地生成。
在下一个时钟,亮度数据的列移动一个,如梯度方向计算部26a2所示,下一个亮度数据(2-2)成为关注像素,输出梯度方向数据(2-2)。
这样,梯度方向计算部26a按每个时钟依次输出梯度方向数据。
另外,若到达最后的列,则梯度方向计算部26a的行前进一个,输出将下一行的亮度数据作为关注像素的梯度方向数据。
同样地,三行缓冲区25b和梯度方向计算部26b输出中分辨率图像的梯度方向数据,三行缓冲区25c和梯度方向计算部26c输出低分辨率图像的梯度方向数据。
这样,在梯度方向计算部26a配设的三行三列的存储元件的排列中,关注像素的位置和与其相邻的相邻像素的位置被建立对应,并使用该位置的对应,在根据时钟依次送来的亮度数据中,依次确定关注像素的亮度数据和相邻像素的亮度数据。
根据图像输入部23输出亮度数据的顺序来决定通过这些关注像素的位置、相邻像素的位置的顺序。
这与在以水桶接力式依次送来的亮度数据的路径上设置关注像素用的窗和相邻像素用的窗并通过在这些窗进行观察,来确定关注像素的亮度数据和相邻像素的亮度数据在逻辑上相同。
在图像处理装置21中,边缘的处理、电路构成变得简单,所以构成为将亮度数据缓存三行,并将它们依次送出到三行三列的排列,但这只是一个例子,能够进行基于图像输入部23输出的顺序来确定关注像素和相邻像素的亮度数据的各种变形。
同样地,梯度方向计算部26b、26c分别基于中分辨率部24b、低分辨率部24c对图像40进行下采样并输出亮度数据的顺序来确定关注像素和相邻像素的亮度数据。
这样,按不同分辨率梯度方向输出单元基于该分辨率的亮度的输出顺序来确定关注像素在水平方向以及垂直方向上相邻的相邻像素的亮度,并使用该确定出的相邻像素的亮度来输出关注像素的梯度方向。
然后,按不同分辨率梯度方向输出单元通过基于该分辨率的亮度的输出顺序来对相邻像素的位置被建立了应的排列配置亮度,从而确定相邻像素的亮度。
另外,该排列由关注像素所属的像素行、与该像素行在垂直方向上相邻的两个像素行亦即共三个像素行所对应的三个排列构成,按不同分辨率梯度方向输出单元将三个像素行的亮度配置于分别对应的三个排列,并根据配置了该亮度的位置来确定相邻像素的亮度。
返回到图5,纵向两倍部27b和纵向四倍部27c分别是对中分辨率图像和低分辨率图像,将垂直方向的梯度方向数据向垂直方向延长两倍、四倍的电路。
该处理是为了使后面利用共生矩阵生成部30a等读取共生时的时刻一致的处理。
图8是用于说明垂直方向的数据延长处理的图。
数据51表示数据延长前的梯度方向数据的构成。各框表示各梯度方向数据,它们按照对应的像素的顺序排列。
若复制数据51的各行,并使其与复制源的行相邻地配置,则得到在垂直方向上延伸两倍的数据52和延伸四倍的数据53。
通过该方法,纵向两倍部27b对从梯度方向计算部26b输出的中分辨率图像的梯度方向数据按每一行进行复制并向纵向(垂直方向)延长两倍。
另外,纵向四倍部27c对从梯度方向计算部26c输出的低分辨率图像的梯度方向数据按每一行进行复制并向纵向延伸四倍。
返回到图5,缓冲区28a、28b、28c分别是暂时存储从梯度方向计算部26a、纵向两倍部27b、纵向四倍部27c输出的高分辨率图像的梯度方向数据、中分辨率图像的梯度方向数据以及低分辨率图像的梯度方向数据的缓冲区。
时刻控制器29是控制将高分辨率图像、中分辨率图像、低分辨率图像的梯度方向数据送出到共生矩阵生成部30a、30b、30c的时刻的控制电路。
时刻控制器29在这些各分辨率图像的梯度方向数据集齐到缓冲区28a、28b、28c之前进行待机,在它们集齐后进行输出。
由此,能够使由于分辨率变更而偏移的各分辨率图像的输出时刻一致。
高分辨率图像的梯度方向数据如图的粗线那样,中分辨率图像的梯度方向数据如图的细线那样,低分辨率图像的梯度方向数据如图的虚线那样,各分辨率图像的梯度方向数据分别从不同的布线输出。
这些布线分别与共生矩阵生成部30a、30b、30c连接,由此,按不同分辨率图像的梯度方向数据被发送到共生矩阵生成部30a、30b、30c。
并且,时刻控制器29为了使共生矩阵生成部30a、30b、30c取得共生的时刻一致,而将中分辨率图像和低分辨率图像的梯度方向数据分别向水平(横)方向延长两倍、四倍。
图9是用于说明水平方向的数据延长处理的图。
数据列55、56、57分别表示时刻控制器29输出高分辨率图像、中分辨率图像以及低分辨率图像的梯度方向数据的时刻。
例如,如数据列55所示,时刻控制器29对高分辨率图像的梯度方向数据,从第一个数据开始按顺序一次一次地输出直至输出到第三十个数据。
与此相对,对于中分辨率图像的梯度方向数据,如数据列56所示,将第一个数据输出一次,从第二个数据到第十五个数据分别输出各两次,并将第十六个数据输出一次,与高分辨率的输出时刻一致地进行输出。
另外,对于低像度图像的梯度方向数据,如数据列57所示,将第一个数据输出三次,从第二个数据到第七个数据输出各四次,并将第八个数据输出三次,与高分辨率的输出时刻一致地进行输出。
此外,数据列55与数据列56的最初和最后的输出次数并非分别为各两次、各四次是为了调整为与数据列55的宽度相同的宽度。
由此,中分辨率图像、低分辨率图像的梯度方向数据在水平方向上分别延伸为两倍、四倍。
返回到图5,共生矩阵生成部30a、30b、30c分别是使用从时刻控制器29输出的梯度方向数据进行共生的投票来生成共生矩阵的电路。
共生矩阵生成部30a、30b、30c分别生成将高分辨率图像、中分辨率图像以及低分辨率图像的像素作为关注像素的共生矩阵。
直方图生成部31是根据从共生矩阵生成部30a、30b、30c输出的共生矩阵来生成MRCoHOG特征量的电路。
此外,在对图像处理装置21进行IC芯片化的情况下,也可以构成为不将直方图生成部31包含于图像处理装置21而作为外部的电路,并将IC芯片与直方图生成部31连接。
由此,能够进行选择从共生矩阵生成部30a、30b、30c输出的共生矩阵等,实现更灵活的运用,提高通用性。
图10是用于说明共生矩阵生成部30a计算共生矩阵的结构的图。
共生矩阵生成部30a具备按不同分辨率将从时刻控制器29发送来的梯度数据遍及两行地存储的、高分辨率图像用的两行缓冲区61a、中分辨率图像用的两行缓冲区61b以及低分辨率图像用的两行缓冲区61c。
在两行缓冲区61a、61b、61c的右侧分别示出存储于各两行缓冲区61a、61b、61c的梯度方向数据的配置。
使表示梯度方向数据的位置的符号与图3(c)的位置的符号对应(梯度方向未对应)。另外,以粗线的矩形包围与关注像素对应的梯度方向数据,并以○包围为了投票而与其组合的对象的像素的梯度方向数据。
如图所示,在两行缓冲区61a、61b、61c分别配置有两行三列的高分辨率图像、中分辨率图像以及低分辨率图像的梯度方向数据。
此外,由于按照图像输入部23输出亮度数据的顺序进行配置,所以在两行缓冲区61a、61b、61c的配置与图3(c)左右相反。
共生矩阵存储部62是通过接受基于共生的投票并使共生矩阵的频繁度(票数)自加1,从而生成针对关注像素125的共生矩阵的电路。
首先,共生矩阵生成部30a基于关注像素125的梯度方向数据与像素1a~1d的梯度方向数据的组合对共生矩阵存储部62进行投票。
然后,共生矩阵生成部30a基于关注像素125的梯度方向数据与像素2a~2d的梯度方向数据的组合来对共生矩阵存储部62进行投票,并基于关注像素125的梯度方向数据与像素3a~3d的梯度方向数据的组合来对共生矩阵存储部62进行投票。
若该关注像素125的投票完成,则共生矩阵生成部30a输出给直方图生成部31,将共生矩阵复位为投票数0,并使两行缓冲区61a、61b、61c所存储的梯度方向数据的列前进一个。
由此,共生矩阵生成部30a在关注像素125的位置配置与像素1a对应的梯度方向数据,并对共生矩阵存储部62进行使用了该数据的投票。
共生矩阵生成部30a通过反复进行以上的动作,使针对高分辨率图像的各像素的共生矩阵在共生矩阵存储部62完成并输出到直方图生成部31。
在直方图生成部31连结输出的共生矩阵的直方图,成为将高分辨率图像的像素作为关注像素的情况下的MRCoHOG特征量。
返回到图5,共生矩阵生成部30b、30c也与共生矩阵生成部30a同样,分别输出将中分辨率图像的像素作为关注像素的情况下的共生矩阵和将低分辨率图像的像素作为关注像素的情况下的共生矩阵。
由此,得到将中分辨率图像的像素作为关注像素的情况下的MRCoHOG特征量和将低分辨率图像的像素作为关注像素的情况下的MRCoHOG特征量,直方图生成部31将高中低图像这三个MRCoHOG特征量连结以使MRCoHOG特征量完成。
图像处理装置21如以上那样构成,各电路与时钟同步地同时动作,以流水作业依次进行处理。
这样一来能够实时处理从摄影机输出的图像。
这样,共生矩阵生成部30a、30b、30c作为通过依次组合依次输出的按不同分辨率的梯度方向来生成基于不同的分辨率间的梯度方向的共生的共生矩阵的共生矩阵生成单元和输出该生成的共生矩阵作为该图像的图像特征量的共生矩阵输出单元发挥作用。
另外,共生矩阵生成部30a、30b、30c通过梯度方向数据被输出并依次将它们配置到两行缓冲区61a、61b、61c来确定取得共生的组合,所以基于从梯度方向输出单元依次输出的梯度方向的按不同分辨率输出顺序,依次确定关注像素的梯度方向和与该关注像素组合的像素的梯度方向,并基于该确定出的梯度方向的组合对共生矩阵依次进行投票从而生成共生矩阵。
另外,两行缓冲区61a、61b、61c作为确定成为共生对象的梯度方向数据的排列发挥作用,所以共生矩阵生成部30a、30b、30c通过基于按不同分辨率输出顺序将梯度方向按不同分辨率配置于关注像素与和该关注像素组合的像素的位置被建立对应并且按不同分辨率设置(分开)的排列,从而确定作为共生对象组合的梯度方向。
而且,该排列针对各个分辨率由在垂直方向上相邻的两个像素行所对应的六个排列构成,(两个高分辨率图像用的缓冲区,两个中分辨率图像用的缓冲区,两个低分辨率图像用的缓冲区亦即共六个),共生矩阵生成部30a、30b、30c分别将各个分辨率的两个像素行的梯度方向配置于分别对应的两个排列,并根据配置了该梯度方向的位置来确定组合的梯度方向。
图11是用于说明图像处理装置21进行的图像处理顺序的流程图。
首先,图像输入部23输出图像40的亮度数据,中分辨率部24b和低分辨率部24c输出将分辨率转换为中分辨率、低分辨率后的亮度数据(步骤5)。
另外,三行缓冲区25a、25b、25c分别缓存三行量的高分辨率图像、中分辨率图像以及低分辨率图像的亮度数据(步骤10)。
另外,梯度方向计算部26a、26b、26c分别计算高分辨率图像、中分辨率图像以及低分辨率图像的像素的梯度方向,并输出梯度方向数据(步骤15)。
此外,步骤5、10、15的各处理并行地同时进行。
接下来,纵向两倍部27b、纵向四倍部27c分别将中分辨率图像和低分辨率图像的梯度方向数据向垂直方向延长两倍、四倍(步骤20)。
高分辨率图像的梯度方向数据、垂直地延伸两倍的中分辨率图像的梯度方向数据以及垂直地延伸到四倍的低分辨率图像的梯度方向数据分别被缓存在缓冲区28a、28b、28c。
接下来,时刻控制器29使时刻一致地输出各分辨率的梯度方向数据。
时刻控制器29在此时使中分辨率图像和低分辨率图像的梯度方向数据向水平方向延伸两倍、四倍并输出(步骤25)。
共生矩阵生成部30a、30b、30c使用从时刻控制器29输出的各分辨率的梯度方向数据,计算共生矩阵的要素,生成共生矩阵(步骤30)。
然后,直方图生成部31根据生成的共生矩阵来生成直方图,并将其作为MRCoHOG特征量输出(步骤35)。
以上,对各电路的动作进行了独立的说明,但各电路与时钟同步地一齐动作,依次(逐次)处理从左侧流过来的数据并同时进行流向右侧的流程作业。
图12(a)是表示使用图像处理装置21构成半导体装置的例子的图。
半导体装置71例如由IC芯片构成,在内部形成处理器、RAM、MRCoHOG加速器72、仿射加速器、直方图加速器、影像输入接口73、影像输出接口74以及输入输出接口75等。
MRCoHOG加速器72设置有图像处理装置21的电路构成,根据图像生成共生矩阵并输出。或者,也可以构成为进行到直方图的生成为止提取MRCoHOG特征量。
半导体装置71能够从影像输入接口73接受视频数据的输入,并通过MRCoHOG加速器72等提取各帧图像的MRCoHOG特征量,并利用处理器使用该特征量进行对象的图像识别。
或者,也可以从影像输出接口74输出视频数据并且从输入输出接口75输出MRCoHOG特征量,由外部设备进行对象的图像识别。
图12(b)是表示将半导体装置71安装于影像采集板,并装备于计算机来构成图像识别装置的例子的图。
图像识别装置80由CPU(Central Processing Unit:中央处理器)81、ROM(ReadOnly Memory:只读存储器)82、RAM(Random Access Memory:随机存储器)83、照相机84、存储装置85、影像采集板86、输入装置87以及输出装置88等构成。
CPU81除了根据存储于存储装置85的图像识别程序进行图像识别处理之外,还进行图像识别装置80的各部的控制等。
更详细而言,CPU81使用从影像采集板86输入的图像和该图像的MRCoHOG特征量来对对象进行图像识别。
ROM82是存储了用于CPU81使图像识别装置80动作的基本的程序、参数等的读取专用的存储器。
RAM83是提供用于CPU81进行上述处理的工作存储器的能够读写的存储器。
图像、MRCoHOG特征量在RAM83中被解压并被CPU81利用。
照相机84是视频拍摄照相机,对被拍摄体进行视频拍摄并将其映像输出到影像采集板86。映像由连续的帧的图像构成。
影像采集板86针对构成映像的图像的各个,提取MRCoHOG特征量,并使其与图像数据对应地输出。
存储装置85例如是使用了硬盘、半导体存储器等存储介质的存储装置,存储用于使CPU81进行上述的图像识别处理的图像识别程序等。
另外,存储装置85也具备存储拍摄的视频数据的数据存储部。
输入装置87是向图像识别装置80输入各种信息的装置,由用于用户对图像识别装置80进行操作的操作按钮等输入设备构成。
输出装置88是图像识别装置80输出各种信息的装置,例如由操作画面、显示拍摄中及拍摄完毕的视频的液晶显示器等输出设备构成。
图12(c)是用于说明图像识别装置80进行的使用了MRCoHOG特征量的图像识别处理的方法的图。
首先,考虑将MRCoHOG特征量的频率(假设有M个)作为成分的向量
(x)。这里,x是表示图像的向量,x=(第一个像素的亮度、第二个像素的亮度、······)。
此外,虽然以粗字等表示向量,但为了防止乱码,以下以通常的字符表示。
该图表示MRCoHOG特征量空间,图像的MRCoHOG特征量映射为M维空间的向量
(x)。
此外,在图中为了简单化而在二维空间示出MRCoHOG特征量。
另一方面,F是通过对象图像的学习得到的权重向量,是将许多的对象图像的MRCoHOG特征量平均化后的向量。
在图像与学习的图像相似的情况下,
(x)如向量109a那样分布在F的周边,在不相似的情况下,如向量109b、109c那样分布在与F不同的方向。
F和
(x)被标准化,图像越与学习图像相似,由F和
(x)的内积定义的相关系数越接近1,相似程度越低越接近-1。
这样,通过将成为相似判断的对象的图像映射到MRCoHOG特征量空间,从而能够根据亮度梯度分布来分离与学习图像相似的图像和不相似的图像。
由此能够对对象进行图像识别。
这样图像识别装置80具备通过将从图像处理装置21输出的直方图的向量
(x)与成为基准的图像的直方图的向量F进行对比来识别图像所拍摄的对象的识别单元。
接下来,例示将图像识别装置80安装于移动体的情况。
半导体装置71能够实时地进行图像处理,所以适合安装于需要实时处理的移动体。
例如,在移动体为车辆的情况下,将照相机84设置在车辆前方,拍摄车辆的前景。
由此,车辆在通过根据照相机84的映像追踪在前方行驶的其它车辆,追随该其它车辆而进行所谓的护送行驶,或者根据在前方移动的车辆、行人的追踪轨迹而判断出碰撞的危险的情况下,使制动器工作,或者改变行驶方向进行回避动作等。这样,图像识别装置80能够应用于自动驾驶技术、其它的技术。
另外,在移动体为机器人的情况下,作为机器人的眼睛利用,例如在家庭提供服务(例如,拿着货物跟在主人的后面),或者追踪移动的对象并且利用机器人臂进行把持,或者追踪家畜并进行引导等,能够在民生领域、工业领域、农业领域等产业的各领域使用。
这样,在本实施方式中,能够提供具备使用图像识别装置80检测对象的检测单元和相对于检测到的对象移动到规定的位置的移动单元的移动体装置。
为了将MRCoHOG算法IC芯片化,或者移植到FPGA(field-programmable gatearray:现场可编程门阵列)板,必须以能够进行高速处理且不降低精度的方式进行最佳化设计。
图像处理装置21的MRCoHOG特征量的多个分辨率图像的生成处理的插值方法采用高速且物体边界的边缘清晰的最近邻插值(最近插值)。通过按每一生成的图像尺寸设定存储器的间隔剔除间隔,并进行间隔剔除来生成基于最近邻插值的图像。
图像处理装置21虽然是学生作为研究课题进行设计、制作的,但能够充分地实现能够实时处理的性能。
因此,在有资本、技术的积蓄的企业制作的情况下,能够期待能够进一步实现高速化,由此能够将计算机的计算资源分配给其它的处理。
附图标记说明
1a~4l…像素,11、12…分类,21…图像处理装置,23…图像输入部,24b…中分辨率部,24c…低分辨率部,25a、25b、25c…三行缓冲区,26a、26b、26c…梯度方向计算部,27b…纵向两倍部,27c…纵向四倍部,28a、28b、28c…缓冲区,29…时刻控制器,30a、30b、30c…共生矩阵生成部,31…直方图生成部,40…图像,51、52、53…数据,55、56、57…数据列,61a、61b、61c…两行缓冲区,62…共生矩阵存储部,71…半导体装置,72…MRCoHOG加速器,73…影像输入接口,74…影像输出接口,75…输入输出接口,80…图像识别装置,81…CPU,82…ROM,83…RAM,84…照相机,85…存储装置,86…影像采集板,87…输入装置,88…输出装置,101…图像,102…单元,106…直方图,107…HOG特征量,109a、109b、109c…向量,110…关注像素,113…共生矩阵,117…CoHOG特征量,120…高分辨率图像,121…中分辨率图像,122…低分辨率图像,125…关注像素,127…MRCoHOG特征量。