CN107679542A - 一种双摄像头立体视觉识别方法及*** - Google Patents
一种双摄像头立体视觉识别方法及*** Download PDFInfo
- Publication number
- CN107679542A CN107679542A CN201710888927.7A CN201710888927A CN107679542A CN 107679542 A CN107679542 A CN 107679542A CN 201710888927 A CN201710888927 A CN 201710888927A CN 107679542 A CN107679542 A CN 107679542A
- Authority
- CN
- China
- Prior art keywords
- image
- camera
- color characteristic
- gray level
- mtd
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/33—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/40—Analysis of texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/56—Extraction of image or video features relating to colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
- G06T2207/10012—Stereo images
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种双摄像头立体视觉识别方法及***。所述方法包括:获取包含环境物体的左图像与右图像;将左图像中每一点的灰度值与对应点的颜色的波长值加权,得到带颜色特征的左灰度图像;将右图像中每一点的灰度值与对应点的颜色的波长值加权,得到带颜色特征的右灰度图像;对两幅带颜色特征的灰度图像进行像素级的点匹配,获取匹配点;利用匹配点生成深度图像;依据深度图像建立立体特征集;提取摄像头获取的图像的纹理特征和颜色特征,建立纹理特征集和颜色特征集;将立体特征集、纹理特征集和颜色特征集输入分类器分类,识别得到环境物体中的目标障碍物。采用本发明的方法或***,能够提高匹配点的个数,进而提高匹配精度和识别的准确性。
Description
技术领域
本发明涉及图像处理及视觉识别技术领域,特别是涉及一种双摄像头立体视觉识别方法及***。
背景技术
随着社会的发展,人们的生活不断改善,物联网、传感器和计算机图像技术也得到了极大的发展,越来越多的需求指向了拥有智能视觉的机器人产品,因此,用于机器人的双摄像头视觉识别也变得越来越重要。
目前,通常采用的双摄像头视觉识别方法为:首先使用分类器对双摄像头采集的两幅图像进行目标物体检测,得出数十到数百个散落的像素匹配点,得到的像素匹配点一般不会超过图像像素总数的5%;然后利用水平放置的双摄像头产生的视差对的各点距离进行粗略计算,并将各点坐标作为临近区域的坐标,得出目标物体粗略的总体立***置信息。利用该方法得到目标物体的总体立***置信息,以用于测速、跟踪、避障等。
现有的双摄像头视觉识别方法采用先检测为主,测距为辅的方式,使得左右两个摄像头的拍摄角度、成像范围均不相同,所能找到的匹配点少,往往会在识别目标物体的时候,导致两幅图像的像素匹配点偏差较大或无法给定较小目标的立***置信息,识别的准确性不高。
发明内容
基于此,有必要提供一种能提高识别的准确性的双摄像头立体视觉识别方法及***。
为实现上述目的,本发明提供了如下方案:
一种双摄像头立体视觉识别方法,包括:
利用左右两个摄像头分别获取包含环境物体的左图像与右图像;
将所述左图像转化为左灰度图像,并获取左图像颜色空间中每一点的颜色的波长值,将左图像中每一点的灰度值与对应点的颜色的波长值加权,得到带颜色特征的左灰度图像;
将所述右图像转化为右灰度图像,并获取右图像颜色空间中每一点的颜色的波长值,将右图像中每一点的灰度值与对应点的颜色的波长值加权,得到带颜色特征的右灰度图像;
对所述带颜色特征的左灰度图像和对应的所述带颜色特征的右灰度图像进行像素级的点匹配,获取所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像的匹配点;
利用所述匹配点生成深度图像;
依据所述深度图像建立立体特征集;
提取任一摄像头获取的图像的纹理特征,建立纹理特征集;
提取任一摄像头获取的图像的颜色特征,建立颜色特征集;
将所述立体特征集、所述纹理特征集和所述颜色特征集输入分类器进行分类,识别得到所述环境物体中的目标障碍物。
可选的,在利用左右两个摄像头分别获取包含环境物体的左图像与右图像之前,获取摄像头的内部参数和外部参数;在利用左右两个摄像头分别获取包含环境物体的左图像与右图像之后,利用摄像头的内部参数和外部参数对摄像头获取的图像进行矫正;
所述获取摄像头的内部参数和外部参数,具体包括:
利用摄像头获取棋盘图的图像,所述棋盘图由多个黑白交替的方块和多个黑色空心圆构成;
对摄像头获取的图像进行二值化,并利用二值化后的边界识别棋盘图中的黑色空心圆和公共角点,所述黑色空心圆位于棋盘图的四个角,所述黑色空心圆用于寻找和定位棋盘格,所述公共角点为两个黑色方块和两个白色方块的公共点;
依据所述黑色空心圆和所述公共角点,利用棋盘图平面上的点与摄像头获取的图像上的对应点建立投影矩阵
其中,s为尺度因子,u为摄像头获取的图像上的点的横坐标,v为摄像头获取的图像上的点的纵坐标,H为投影矩阵,XW为棋盘图平面上的点的横坐标,YW为棋盘图平面上的点的纵坐标;
利用最小二乘法求解所述投影矩阵H;
依据所述投影矩阵H,获取摄像头的内部参数;
依据所述投影矩阵和所述摄像头的内部参数,获取摄像头的外部参数。
可选的,对所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像进行像素级的点匹配,获取所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像的匹配点之前,还包括:
分别计算所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像的全向算子,所述全向算子为
Sobel(x,y)=2*[P(x+1,y)-P(x-1,y)]+P(x+1,y-1)-P(x-1,y-1)+P(x+1,y+1)-P(x-1,y+1)+2*[P(x,y+1)-P(x,y-1)]+P(x-1,y+1)-P(x-1,y-1)+P(x+1,y+1)-P(x+1,y-1)
其中,Sobel(x,y)表示图像上的点(x,y)的全向算子,P表示图像的像素,P(x,y)表示图像上的点(x,y)的像素;
利用映射函数对所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像进行映射,映射后的图像的像素为
其中,preFilterCap为一个常数参数,取值为15;
所述对所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像进行像素级的点匹配,获取所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像的匹配点,具体包括:
依据映射后的所述带颜色特征的左灰度图像的像素和映射后的所述带颜色特征的右灰度图像的像素,利用SAD算法进行匹配,获取映射后的所述带颜色特征的左灰度图像和映射后的所述带颜色特征的右灰度图像的匹配点。
可选的,所述利用所述匹配点生成深度图像,具体包括:
计算每对匹配点的真实坐标,并利用视差原理得到与每对匹配点相对应的被测点的三维空间坐标,所述真实坐标为所述匹配点在真实空间内相对于以两个摄像头中心为原点的立体坐标系的坐标;
利用所有与匹配点相对应的被测点的三维空间坐标生成深度图像。
可选的,所述依据所述深度图像建立立体特征集,具体包括:
查找所述深度图像的边界;
依据所述边界对所述深度图像进行分块,并计算每一块所述深度图像的尺寸、形状以及与左右摄像头的距离;
依据所述每一块所述深度图像的尺寸、形状以及与左右摄像头的距离建立立体特征集;
所述提取任一摄像头获取的图像的纹理特征,建立纹理特征集,具体包括:
将左图像转化为左灰度图像,提取所述左灰度图像的Haar特征,建立纹理特征集,所述Haar特征包括原始矩特征、边缘特征、线性特征和中心环绕特征;
所述提取任一摄像头获取的图像的颜色特征,建立颜色特征集,具体包括:
将左图像转换为色块图像,并获取每个色块图像颜色空间中每一点的颜色的波长值;
利用所述波长值建立颜色特征集。
本发明还提供了一种双摄像头立体视觉识别***,上述双摄像头立体视觉识别方法应用于所述***。
所述***包括:
图像获取模块,用于利用左右两个摄像头分别获取包含环境物体的左图像与右图像;
左灰度图像获取模块,用于将所述左图像转化为左灰度图像,并获取左图像颜色空间中每一点的颜色的波长值,将左图像中每一点的灰度值与对应点的颜色的波长值加权,得到带颜色特征的左灰度图像;
右灰度图像获取模块,用于将所述右图像转化为右灰度图像,并获取右图像颜色空间中每一点的颜色的波长值,将右图像中每一点的灰度值与对应点的颜色的波长值加权,得到带颜色特征的右灰度图像;
匹配模块,用于对所述带颜色特征的左灰度图像和对应的所述带颜色特征的右灰度图像进行像素级的点匹配,获取所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像的匹配点;
深度图像生成模块,用于利用所述匹配点生成深度图像;
立体特征集建立模块,用于依据所述深度图像建立立体特征集;
纹理特征集建立模块,用于提取任一摄像头获取的图像的纹理特征,建立纹理特征集;
颜色特征集建立模块,用于提取任一摄像头获取的图像的颜色特征,建立颜色特征集;
分类模块,用于将所述立体特征集、所述纹理特征集和所述颜色特征集输入分类器进行分类,识别得到所述环境物体中的目标障碍物。
可选的,还包括:内部参数和外部参数获取模块和矫正模块,所述内部参数和外部参数获取模块用于获取摄像头的内部参数和外部参数,所述矫正模块,用于利用摄像头的内部参数和外部参数对摄像头获取的图像进行矫正;
所述内部参数和外部参数获取模块,具体包括:
棋盘图图像获取单元,用于利用摄像头获取棋盘图的图像,所述棋盘图由多个黑白交替的方块和多个黑色空心圆构成;
二值化单元,用于对摄像头获取的图像进行二值化,并利用二值化后的边界识别棋盘图中的黑色空心圆和公共角点,所述黑色空心圆位于棋盘图的四个角,所述黑色空心圆用于寻找和定位棋盘格,所述公共角点为两个黑色方块和两个白色方块的公共点;
投影矩阵建立单元,用于依据所述黑色空心圆和所述公共角点,利用棋盘图平面上的点与摄像头获取的图像上的对应点建立投影矩阵
其中,s为尺度因子,u为摄像头获取的图像上的点的横坐标,v为摄像头获取的图像上的点的纵坐标,H为投影矩阵,XW为棋盘图平面上的点的横坐标,YW为棋盘图平面上的点的纵坐标;
投影矩阵求解单元,用于利用最小二乘法求解所述投影矩阵H;
内部参数获取单元,用于依据所述投影矩阵H,获取摄像头的内部参数;
外部参数获取单元,用于依据所述投影矩阵和所述摄像头的内部参数,获取摄像头的外部参数。
可选的,还包括:
全向算子计算模块,用于分别计算所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像的全向算子,所述全向算子为
Sobel(x,y)=2*[P(x+1,y)-P(x-1,y)]+P(x+1,y-1)-P(x-1,y-1)+P(x+1,y+1)-P(x-1,y+1)+2*[P(x,y+1)-P(x,y-1)]+P(x-1,y+1)-P(x-1,y-1)+P(x+1,y+1)-P(x+1,y-1)
其中,Sobel(x,y)表示图像上的点(x,y)的全向算子,P表示图像的像素,P(x,y)表示图像上的点(x,y)的像素;
映射模块,用于利用映射函数对所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像进行映射,映射后的图像的像素为
其中,preFilterCap为一个常数参数,取值为15;
所述匹配模块,具体包括:
匹配点获取单元,用于依据映射后的所述带颜色特征的左灰度图像的像素和映射后的所述带颜色特征的右灰度图像的像素,利用SAD算法进行匹配,获取映射后的所述带颜色特征的左灰度图像和映射后的所述带颜色特征的右灰度图像的匹配点。
可选的,所述深度图像生成模块,具体包括:
被测点坐标获取单元,用于计算每对匹配点的真实坐标,并利用视差原理得到与每对匹配点相对应的被测点的三维空间坐标,所述真实坐标为所述匹配点在真实空间内相对于以两个摄像头中心为原点的立体坐标系的坐标;
深度图像生成单元,用于利用所有与匹配点相对应的被测点的三维空间坐标生成深度图像。
可选的,所述立体特征集建立模块,具体包括:
边界查找单元,用于查找所述深度图像的边界;
分块与计算单元,用于依据所述边界对所述深度图像进行分块,并计算每一块所述深度图像的尺寸、形状以及与左右摄像头的距离;
立体特征集建立单元,用于依据所述每一块所述深度图像的尺寸、形状以及与左右摄像头的距离建立立体特征集;
所述纹理特征集建立模块,具体包括:
纹理特征集建立单元,用于将左图像转化为左灰度图像,提取所述左灰度图像的Haar特征,建立纹理特征集,所述Haar特征包括原始矩特征、边缘特征、线性特征和中心环绕特征;
所述立颜色特征集建立模块,具体包括:
波长值获取单元,用于将左图像转换为色块图像,并获取每个色块图像颜色空间中每一点的颜色的波长值;
颜色特征集建立单元,用于利用所述波长值建立颜色特征集。
与现有技术相比,本发明的有益效果是:
本发明提出了一种双摄像头立体视觉识别方法及***,将摄像头获取的图像中每一点的灰度值与对应点的颜色的波长值加权,形成带颜色特征的灰度图像,对左右两幅带颜色特征的灰度图像进行像素级的点匹配,能够提高匹配精度;利用所有与匹配点相对应的被测点的三维空间坐标生成深度图像,依据所述深度图像建立立体特征集,并分别提取任一摄像头获取的图像的纹理特征和颜色特征,建立纹理特征集和颜色特征集,将所述立体特征集、所述纹理特征集和所述颜色特征集输入分类器进行分类,识别得到目标物体,在纹理特征集的基础上,建立立体特征集和颜色特征集,利用三个特征集共同输入分类器进行分类,能够大大提高识别的准确性;并且利用棋盘图对左右两个摄像头进行标定,在两幅图像进行匹配之前,依据标定数据对摄像头获取的图像进行矫正,能够进一步提高匹配精度。本发明的方法或***,能够提高匹配点的个数,提高匹配精度,进而提高识别的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例双摄像头立体视觉识别方法的流程图;
图2为本发明实施例双摄像头立体视觉识别方法中的棋盘图;
图3为本实施例双摄像头立体视觉识别方法中计算被测点三维空间坐标的原理图;
图4为本发明实施例双摄像头立体视觉识别***的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明实施例双摄像头立体视觉识别方法的流程图。
参见图1,实施例的双摄像头立体视觉识别方法,包括:
步骤S1:获取摄像头的内部参数和外部参数。
具体包括:
步骤S101:利用摄像头获取棋盘图的图像。图2为本发明实施例双摄像头立体视觉识别方法中的棋盘图,参见图2,所述棋盘图由多个黑白交替的方块和多个黑色空心圆构成,具体为黑白交替的方块共有10行*14列,方块尺寸为20mm*20mm,且黑色空心圆位于棋盘图案的四个角,黑色空心圆的直径为20mm,空心部分直径为6.5mm,所述黑色空心圆用于寻找和定位棋盘格。
步骤S102:对摄像头获取的图像进行二值化,并利用二值化后的边界识别图2所示的棋盘图中的黑色空心圆和公共角点,所述公共角点为两个黑色方块和两个白色方块的公共点。
步骤S103:依据所述黑色空心圆和所述公共角点,利用棋盘图平面上的点与摄像头获取的图像上的对应点建立投影矩阵
其中,s为尺度因子,u为摄像头获取的图像上的点的横坐标,v为摄像头获取的图像上的点的纵坐标,H为投影矩阵,XW为棋盘图平面上的点的横坐标,YW为棋盘图平面上的点的纵坐标。
步骤S104:利用最小二乘法求解所述投影矩阵H。
具体包括:
由步骤S103中的投影矩阵可得到
进一步推导,可得
将分母乘到等式左边,即有
令h′=[h11 h12 h13 h21 h22 h23 h31 h32]T,
即有
令则多个对应点的方程叠加起来可以看成Sh′=e,再利用最小二乘法求解Sh′=e,得到h′=(STS)-1STe,最终求得投影矩阵H。
步骤S105:依据所述投影矩阵H,获取摄像头的内部参数。
具体包括:
令hi表示投影矩阵H的每一列向量,ri表示旋转矩阵R的每一列向量,利用步骤S104得到的投影矩阵H和真正的投影矩阵之间相差一个比例因子λ,则投影矩阵H的每一列向量可写成:
[h1 h2 h3]=λA[r1 r2 t]
其中,h1、h2和h3分别表示投影矩阵H的第1列、第2列和第3列,r1和r2分别表示旋转矩阵R的第1列和第2列,t为平移矩阵,A为内部参数矩阵,又因为r1和r2是单位正交向量,所以有
这样就为内部参数的求解提供了两个约束方程。
下面,令
其中,α为x方向的焦距,β为y方向的焦距,γ为坐标轴的倾斜参数,u0为主点横坐标,v0为主点纵坐标,其中B是一个对称矩阵,它可以由一个6维向量来定义,即
b=[B11 B12 B22 B13 B23 B33]T
设H的第i列向量为hi=[hi1,hi2,hi3]T,因此有
其中Vij=[hi1hj1,hi1hj2+hi2hj1,hi2hj2,hi3hj1+hi1hj3,hi3hj2+hi2hj3,hi3hj3]T,那么,就可以将内部参数的两个约束写成关于b的方程
如果有n幅图像的话,把它们的方程式叠加起来,得到
Vb=0
其中,V是一个2n×6的矩阵。当n≥3时,一般情况下,b可以在相差一个尺度因子的意义下唯一确定;当n=2时,此时的方程的个数少于未知数的个数,我们可以加上一个附加约束γ=0,即B12=0,因此可用[0 1 0 0 0 0]b=0作为公式Vb=0的一个附加方程,公式Vb=0的最小二乘解即是VTV的最小特征值对应的特征向量,将该向量归一化即得到要求的b,进而得到B;当n=1时,两个方程只能解两个未知数,我们可以假定光心投影在图像的中心,从而求出摄像机在水平和垂直方向上的最大倍数。
一旦b被求出,就能根据下面两种方法计算出摄像机的内部参数矩阵A,具体方法如下:
(1)由b构造出B,再利用Cholesky矩阵分解算法求解出A-1,再求逆得到A。
(2)由b构造出B,在相差一个尺度因子的意义下,即B=λA-TA-1,由绝对二次曲线的性质,很容易求出摄像机的内部参数:
α=-B12fx 2fy/λ
u0=αv0/fx-B13fx 2/λ。
步骤S106:依据所述投影矩阵和所述摄像头的内部参数,获取摄像头的外部参数。
具体包括:
由步骤S105中的[h1 h2 h3]=λA[r1 r2 t],可得r1=λA-1h1,r2=λA-1h2,t=λA-1h3,λ=1/||A-1h1||=1/||A-1h2||,r3=r1×r2,将步骤S104和步骤S105求得的投影矩阵H和内部参数矩阵A代入,求得旋转矩阵R=[r1,r2,r3],旋转矩阵即为摄像头的外部参数矩阵。
步骤S107:对所述内部参数矩阵A和所述旋转矩阵R进行优化。
上述所得到的摄像机的内部参数矩阵A和每幅图像对应的旋转矩阵矩阵R都只是一个粗糙解,没有具体的物理意义,因此,通过最大似然估计对所有参数进行非线性优化,进一步求精。
具体的,假定有n幅关于模板平面的图像,模板平面上有m个标定点,那么可建立评价函数:
其中mij是第i幅图像中的第j个像点,Ri是第i幅图坐标系的旋转矩阵,ti是第i幅图坐标系的平移向量,Mj是第j个点的空间坐标,m(A,R,ti,Mj)是通过这些已知量求得的像点坐标。
由于旋转矩阵有9个参量但是只有三个自由度,因此可用三个参量的矢量来表示,即一个旋转可由一个三维向量即旋转向量来表示,他的方向就是旋转轴的方向,他的模等于旋转角。
由三个欧拉角参数确定,r(r1,r2,r3)T是旋转矩阵的罗德里克(Rodrigues)表示,R与r之间的关系由公式给出:
其中,旋转向量r=(x,y,z)T,定义由它构成的反对称矩阵为
其中是旋转角。
使评价函数最小的A,R,ti,Mj就是这个问题的最优解,评价函数的极小值采用Levenberg-Marquardt算法来求得。
步骤S2:利用左右两个摄像头分别获取包含环境物体的左图像与右图像。
步骤S3:对包含环境物体的左图像与右图像分别进行矫正。
具体的,利用步骤S1获取的左摄像头的内部参数和外部参数对步骤S2左摄像头获取的包含环境物体的左图像进行矫正,利用步骤S1获取的右摄像头的内部参数和外部参数对步骤S2右摄像头获取的包含环境物体的右图像进行矫正。
步骤S4:获取带颜色特征的左灰度图像和带颜色特征的右灰度图像。
具体的,将所述左图像转化为左灰度图像,并获取左图像颜色空间中每一点的颜色的波长值,将左图像中每一点的灰度值与对应点的颜色的波长值加权,得到带颜色特征的左灰度图像;将所述右图像转化为右灰度图像,并获取右图像颜色空间中每一点的颜色的波长值,将右图像中每一点的灰度值与对应点的颜色的波长值加权,得到带颜色特征的右灰度图像。
步骤S5:对所述带颜色特征的左灰度图像和对应的所述带颜色特征的右灰度图像进行像素级的点匹配,获取所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像的匹配点,具体包括:
步骤S501:对步骤S4获取的图像进行映射,获取映射后的图像的像素。
具体的,分别计算所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像的全向算子,所述全向算子为
Sobel(x,y)=2*[P(x+1,y)-P(x-1,y)]+P(x+1,y-1)-P(x-1,y-1)+P(x+1,y+1)-P(x-1,y+1)+2*[P(x,y+1)-P(x,y-1)]+P(x-1,y+1)-P(x-1,y-1)+P(x+1,y+1)-P(x+1,y-1)
其中,Sobel(x,y)表示图像上的点(x,y)的全向算子,P表示图像的像素,P(x,y)表示图像上的点(x,y)的像素;
利用映射函数对所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像进行映射,映射后的图像的像素为
其中,preFilterCap为一个常数参数,取值为15。
步骤S502:依据得到的映射后的所述带颜色特征的左灰度图像的像素和映射后的所述带颜色特征的右灰度图像的像素,利用SAD算法进行匹配,获取映射后的所述带颜色特征的左灰度图像和映射后的所述带颜色特征的右灰度图像的匹配点。
具体的,利用SAD算法进行匹配代价的计算,代价的计算公式为
n表示在像素点(x,y)周围所取计算范围的大小,d表示梯度,L表示左图像的像素点值,I表示右图像的像素点值。
为了使结果更加准确,除了采用SAD方法对上一步得到的图像梯度进行计算,还进一步对原图进行了取样计算,取样比例50%,即平均对原图一半的像素取样并代入代价的计算公式进行计算。
得到所有代价结果后,采用动态规划的方式对各点进行匹配,具体为
其中,Lr(p,d)表示沿着当前方向(即从左向右的方向),当目前像素p的视差值为d时,其最小代价值;r表示某个指向当前像素p的方向,在此可以理解为像素p左边的相邻像素,k表示p-r像素的待匹配点的编号;
由上述可知,共有四条路径,其中:
P1=8*cn*SADWindowSize*SADWindowSize
P2=32*cn*SADWindowSize*SADWindowSize
cn为图像通道数,SADWindowSize是SAD窗口大小,也就是生成的SAD图像尺寸,SADWindowSize为奇数;
由于图像中不可避免的噪点、大面积无轮廓等现象,因此需要检测匹配点的唯一性,视差窗口范围内最低代价是次低代价的(1+uniquenessRatio/100)倍时,最低代价对应的视差值才是该像素点的视差,否则该像素点的视差为0,其中uniquenessRatio是一个常数参数,视差d的计算如下:
其中,Sp[d]表示存储视差d的数组,DIS_SCALE表示10000的二进制的形式;
得到视差d后,为了减小误差,对视差d一致性检测,具体为:
令左图像的视差为dispL[x],右图像的视差为dispR[x],假如已知dispL[X]=d,则dispR[X-d]=d,如有左图像多个点对应右图像中的一个点,那么有dispL[X]=d、dispL[X+n]=d+n,则dispR[X-d]=dispR[(X+n)-(d+n)]=d,这样,不合格的点就会被剔除。
步骤S6:利用所述匹配点生成深度图像。
具体包括:
步骤S601:计算每对匹配点的真实坐标,并利用视差原理得到与每对匹配点相对应的被测点的三维空间坐标,所述真实坐标为所述匹配点在真实空间内相对于以两个摄像头中心为原点的立体坐标系的坐标,被测点三维空间坐标的计算原理如下:
双摄像头测距原理与人眼的双目立体视觉相同,都是根据获取到的图像的同一点在两摄像头(双目)成像位置的不同而获得的。
图3为本实施例双摄像头立体视觉识别方法中计算被测点三维空间坐标的原理图。
参见图3,左摄像头的投影中心为o,右摄像机的投影中心为ot,两摄像头的投影中心连线的距离为基线距离,设左摄像头坐标系为o-xyz,与世界坐标系相同,且没有发生旋转,图像坐标系为O1-X1Y1,有效焦距为f1,右摄像头坐标系为ot-xtytzt,图像坐标系为Ot-XtYt,有效焦距为ft,两摄像头在同一时刻观看时空物体的同一特征点P时,分别在“左眼”和“右眼”上获取了点P的图像,设P点的坐标为(x,y,z),那么根据摄像机的投射模型可得到如下关系式:
依据o-xyz坐标系与ot-xtytzt坐标系之间的位置关系,可得到:
其中,Mlr为空间转换矩阵,其中R代表坐标系o-xyz与ot-xtytzt之间的旋转矩阵,T代表原点o与原点ot之间的平移变换矢量;
同理,对于o-xyz坐标系中的空间点,两个摄像头像点之间的对应关系可以表示为:
因此,空间点三维坐标可以表示为:
将左右摄像头的内部参数、左右摄像头的有效焦距和空间点在左右摄像头中的图像坐标带入上式,就能够重构出被测点的三维空间坐标。
步骤S602:利用所有与匹配点相对应的被测点的三维空间坐标生成深度图像。
具体的,将所有的被测点的三维空间坐标以数组形式存储到图像的其他通道中,就可形成带有坐标信息的图像,即深度图像。
步骤S7:依据所述深度图像建立立体特征集。
具体包括:
步骤S701:查找所述深度图像的边界。
步骤S702:依据所述边界对所述深度图像进行分块,并计算每一块所述深度图像的尺寸、形状以及与左右摄像头的距离。
步骤S703:依据所述每一块所述深度图像的尺寸、形状以及与左右摄像头的距离建立立体特征集。
步骤S8:提取任一摄像头获取的图像的纹理特征,建立纹理特征集。
具体的,可以提取左摄像头获取的左图像的纹理特征,建立左图像纹理特征集合,也可以提取右摄像头获取的右图像的纹理特征,建立右图像纹理特征集合,为了便于计算,本实施例中将左图像转化为左灰度图像,提取所述左灰度图像的Haar特征,建立左图像纹理特征集,所述Haar特征包括原始矩特征、边缘特征、线性特征和中心环绕特征。
步骤S9:提取任一摄像头获取的图像的颜色特征,建立颜色特征集。
具体的,可以提取左摄像头获取的左图像的颜色特征,建立左图像颜色特征集合,也可以提取右摄像头获取的右图像的颜色特征,建立右图像颜色特征集合,为了便于计算,本实施例中将左图像转换为色块图像,并获取每个色块图像颜色空间中每一点的颜色的波长值;利用所述波长值建立左图像颜色特征集。
步骤S10:将所述立体特征集、所述纹理特征集和所述颜色特征集输入分类器进行分类,识别得到所述环境物体中的目标障碍物。
本实施例中,将所述立体特征集、所述左图像纹理特征集和所述左图像颜色特征集输入训练好的分类器进行分类,识别得到所述环境物体中的目标障碍物,训练好的分类器包括利用提取的已知摄像头图像的纹理特征建立的多层二维特征分类器、利用提取的已知深度图像的立体特征集和提取的已知摄像头图像的颜色特征集建立多层立体-颜色特征分类器,所述多层二维特征分类器用于进行预分类,所述多层立体-颜色特征分类器用于利用三维坐标信息和颜色信息对所述预分类得到的结果进一步滤波分类。
本实施例中,采用了新型的级联分类器(Cascade Classifier),即将多个特征分类器串联起来的分类识别方法,从而以很少的维度和较少的时间就可达到较高的分类正确率。例如,假设一般分类器要实现99%的正确率和1%的误检率需要200维特征,实现99.9%正确率和50%的误检率的需要10维特征,而通过级联的方式,假设10级级联,最终得到的正确率和误检率分别为
TPR=(0.999)10=99.0%
FPR=(0.5)10=0.1%
由上述分析可知,通过级联分类器能够使用较少的特征和较简单的分类器更快更好的实现分类,另外在检测的过程中,因为TPR较高,所以一旦检测到某区域不是目标就可以直接停止后续检,测而由于在大多数检测应用中非目标区域占大部分,这样大部分检测窗口都能够很快停止,这样分类速度就会得到得到很大的提高。
本实施例中,采用多层二维Haar特征分类器与多层立体-颜色特征分类器级联对环境物体中包含的目标障碍物进行快速分类,多层二维Haar分类器对目标的20种像素特征进行多层分析从而初步识别出多个可能的目标,然后多层立体-颜色特征分类器进一步对多个可能目标进行过滤分类,具体为:
所述多层二维Haar特征分类器会将图像转化为Haar特征向量,并通过下式计算各区域的Haar特征值:
featureValueHaar(x)=weightall×∑Pixel∈allPixel+weightblack×∑Pixel∈ blackPixel
将得到的计算结果与xml配置文件中的特征值进行比对,从而得出多个中间结果;
所述多层立体-颜色特征分类器则会将坐标信息映射到一个三维坐标系中,并针对之前所述多层二维Haar特征分类器多给出的可疑目标区域去掉距离向量极值后作出拟合曲面:
其中lnyi=zi,
然后以曲面的坐标中心为原点,整体曲面切线方向为y轴进行坐标转换,并提取每个点的向量集,通过下式计算得到最终的特征值
featureValue(x)=weightx×∑Pixel∈xPixel+weighty×∑Pixel∈yPixel+
weightz×∑Pixel∈zPixel+weightcolor×∑Pixel∈colorPixel
其中,weightx、weighty、weightz分别为像素点在x方向、y方向、z方向对应的权重值,weightcolor为颜色对应的波长的权重值,
∑Pixel∈xPixel、∑Pixel∈yPixel、∑Pixel∈zPixel分别为在x方向、y方向、z方向符合条件的像素点的坐标之和,
其中weightx=0.1、weighty=0.1、weightz=0.53、weightcolor=0.27;
通过上述过程得到的结果即为最终的识别结果。
本实施例中的双摄像头立体视觉识别方法首先对摄像头获取的两幅图像进行矫正,并将两幅图像中每一点的灰度值与对应点的颜色的波长值加权,得到两幅相对应的带颜色特征的灰度图像,将两幅图像进行匹配,能够提高匹配点的个数,进而提高匹配精度和识别的准确性;建立多层立体-颜色特征分类器实现了单像素点级别的立***置检测和对立***置特征的分类检测,能够提高双摄像头的成像质量和深度检测准确度,减少摄像头运动状态下深度检测的失真率,并且加入了对立体特征的分类检测,更加适用于机器人。
本实施例中的双摄像头立体视觉识别方法解决了双摄像头成像点稀疏、摄像头移动时距离失真、对摄像头质量要求较高、分类器无法检测立体特征等问题,满足了机器人对运动状态下的视觉识别与三维成像的要求,实现了对人脸等物体连续可靠识别,并具备一定的分辨实物与照片、镜像的能力。
本发明还提供了一种双摄像头立体视觉识别***,上述所述双摄像头立体视觉识别方法应用于所述***。
图4为本发明实施例双摄像头立体视觉识别***的流程图。
参见图4,实施例的双摄像头立体视觉识别***40,包括:
内部参数和外部参数获取模块401,用于获取摄像头的内部参数和外部参数。
所述内部参数和外部参数获取模块401,具体包括:
棋盘图图像获取单元,用于利用摄像头获取棋盘图的图像,所述棋盘图由多个黑白交替的方块和多个黑色空心圆构成。
二值化单元,用于对摄像头获取的图像进行二值化,并利用二值化后的边界识别棋盘图中的黑色空心圆和公共角点,所述黑色空心圆位于棋盘图的四个角,所述黑色空心圆用于寻找和定位棋盘格,所述公共角点为两个黑色方块和两个白色方块的公共点。
投影矩阵建立单元,用于依据所述黑色空心圆和所述公共角点,利用棋盘图平面上的点与摄像头获取的图像上的对应点建立投影矩阵
其中,s为尺度因子,u为摄像头获取的图像上的点的横坐标,v为摄像头获取的图像上的点的纵坐标,H为投影矩阵,XW为棋盘图平面上的点的横坐标,YW为棋盘图平面上的点的纵坐标。
投影矩阵求解单元,用于利用最小二乘法求解所述投影矩阵H。
内部参数获取单元,用于依据所述投影矩阵H,获取摄像头的内部参数。
外部参数获取单元,用于依据所述投影矩阵和所述摄像头的内部参数,获取摄像头的外部参数。
图像获取模块402,用于利用左右两个摄像头分别获取包含环境物体的左图像与右图像。
矫正模块403,用于利用摄像头的内部参数和外部参数对摄像头获取的图像进行矫正。
左灰度图像获取模块404,用于将所述左图像转化为左灰度图像,并获取左图像颜色空间中每一点的颜色的波长值,将左图像中每一点的灰度值与对应点的颜色的波长值加权,得到带颜色特征的左灰度图像。
右灰度图像获取模块405,用于将所述右图像转化为右灰度图像,并获取右图像颜色空间中每一点的颜色的波长值,将右图像中每一点的灰度值与对应点的颜色的波长值加权,得到带颜色特征的右灰度图像。
全向算子计算模块406,用于分别计算所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像的全向算子,所述全向算子为
Sobel(x,y)=2*[P(x+1,y)-P(x-1,y)]+P(x+1,y-1)-P(x-1,y-1)+P(x+1,y+1)-P(x-1,y+1)+2*[P(x,y+1)-P(x,y-1)]+P(x-1,y+1)-P(x-1,y-1)+P(x+1,y+1)-P(x+1,y-1)
其中,Sobel(x,y)表示图像上的点(x,y)的全向算子,P表示图像的像素,P(x,y)表示图像上的点(x,y)的像素。
映射模块407,用于利用映射函数对所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像进行映射,映射后的图像的像素为
其中,preFilterCap为一个常数参数,取值为15。
匹配模块408,用于对所述带颜色特征的左灰度图像和对应的所述带颜色特征的右灰度图像进行像素级的点匹配,获取所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像的匹配点。
所述匹配模块408,具体包括:
匹配点获取单元,用于依据映射后的所述带颜色特征的左灰度图像的像素和映射后的所述带颜色特征的右灰度图像的像素,利用SAD算法进行匹配,获取映射后的所述带颜色特征的左灰度图像和映射后的所述带颜色特征的右灰度图像的匹配点。
深度图像生成模块409,用于利用所述匹配点生成深度图像。
所述深度图像生成模块409,具体包括:
被测点坐标获取单元,用于计算每对匹配点的真实坐标,并利用视差原理得到与每对匹配点相对应的被测点的三维空间坐标,所述真实坐标为所述匹配点在真实空间内相对于以两个摄像头中心为原点的立体坐标系的坐标。
深度图像生成单元,用于利用所有与匹配点相对应的被测点的三维空间坐标生成深度图像。
立体特征集建立模块410,用于依据所述深度图像建立立体特征集。
所述立体特征集建立模块410,具体包括:
边界查找单元,用于查找所述深度图像的边界;
分块与计算单元,用于依据所述边界对所述深度图像进行分块,并计算每一块所述深度图像的尺寸、形状以及与左右摄像头的距离;
立体特征集建立单元,用于依据所述每一块所述深度图像的尺寸、形状以及与左右摄像头的距离建立立体特征集;
纹理特征集建立模块411,用于提取任一摄像头获取的图像的纹理特征,建立纹理特征集。
所述纹理特征集建立模块411,具体包括:
纹理特征集建立单元,用于将左图像转化为左灰度图像,提取所述左灰度图像的Haar特征,建立纹理特征集,所述Haar特征包括原始矩特征、边缘特征、线性特征和中心环绕特征。
颜色特征集建立模块412,用于提取任一摄像头获取的图像的颜色特征,建立颜色特征集。
所述立颜色特征集建立模块412,具体包括:
波长值获取单元,用于将左图像转换为色块图像,并获取每个色块图像颜色空间中每一点的颜色的波长值。
颜色特征集建立单元,用于利用所述波长值建立颜色特征集。
分类模块413,用于将所述立体特征集、所述纹理特征集和所述颜色特征集输入分类器进行分类,识别得到所述环境物体中的目标障碍物。
本实施例中的双摄像头立体视觉识别***能够提高匹配点的个数,提高匹配精度,进而提高识别的准确性;能够提高双摄像头的成像质量和深度检测准确度,减少摄像头运动状态下深度检测的失真率,更加适用于机器人。
本说明书中对于实施例公开的***而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种双摄像头立体视觉识别方法,其特征在于,包括:
利用左右两个摄像头分别获取包含环境物体的左图像与右图像;
将所述左图像转化为左灰度图像,并获取左图像颜色空间中每一点的颜色的波长值,将左图像中每一点的灰度值与对应点的颜色的波长值加权,得到带颜色特征的左灰度图像;
将所述右图像转化为右灰度图像,并获取右图像颜色空间中每一点的颜色的波长值,将右图像中每一点的灰度值与对应点的颜色的波长值加权,得到带颜色特征的右灰度图像;
对所述带颜色特征的左灰度图像和对应的所述带颜色特征的右灰度图像进行像素级的点匹配,获取所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像的匹配点;
利用所述匹配点生成深度图像;
依据所述深度图像建立立体特征集;
提取任一摄像头获取的图像的纹理特征,建立纹理特征集;
提取任一摄像头获取的图像的颜色特征,建立颜色特征集;
将所述立体特征集、所述纹理特征集和所述颜色特征集输入分类器进行分类,识别得到所述环境物体中的目标障碍物。
2.根据权利要求1所述的一种双摄像头立体视觉识别方法,其特征在于,还包括:在利用左右两个摄像头分别获取包含环境物体的左图像与右图像之前,获取摄像头的内部参数和外部参数;在利用左右两个摄像头分别获取包含环境物体的左图像与右图像之后,利用摄像头的内部参数和外部参数对摄像头获取的图像进行矫正;
所述获取摄像头的内部参数和外部参数,具体包括:
利用摄像头获取棋盘图的图像,所述棋盘图由多个黑白交替的方块和多个黑色空心圆构成;
对摄像头获取的图像进行二值化,并利用二值化后的边界识别棋盘图中的黑色空心圆和公共角点,所述黑色空心圆位于棋盘图的四个角,所述黑色空心圆用于寻找和定位棋盘格,所述公共角点为两个黑色方块和两个白色方块的公共点;
依据所述黑色空心圆和所述公共角点,利用棋盘图平面上的点与摄像头获取的图像上的对应点建立投影矩阵
<mrow>
<mi>s</mi>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mi>u</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>v</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>1</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>=</mo>
<mi>H</mi>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<msub>
<mi>X</mi>
<mi>W</mi>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>Y</mi>
<mi>W</mi>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>1</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
其中,s为尺度因子,u为摄像头获取的图像上的点的横坐标,v为摄像头获取的图像上的点的纵坐标,H为投影矩阵,XW为棋盘图平面上的点的横坐标,YW为棋盘图平面上的点的纵坐标;
利用最小二乘法求解所述投影矩阵H;
依据所述投影矩阵H,获取摄像头的内部参数;
依据所述投影矩阵和所述摄像头的内部参数,获取摄像头的外部参数。
3.根据权利要求1所述的一种双摄像头立体视觉识别方法,其特征在于,对所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像进行像素级的点匹配,获取所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像的匹配点之前,还包括:
分别计算所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像的全向算子,所述全向算子为
Sobel(x,y)=2*[P(x+1,y)-P(x-1,y)]+P(x+1,y-1)-P(x-1,y-1)+P(x+1,y+1)-P(x-1,y+1)+2*[P(x,y+1)-P(x,y-1)]+P(x-1,y+1)-P(x-1,y-1)+P(x+1,y+1)-P(x+1,y-1)
其中,Sobel(x,y)表示图像上的点(x,y)的全向算子,P表示图像的像素,P(x,y)表示图像上的点(x,y)的像素;
利用映射函数对所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像进行映射,映射后的图像的像素为
<mrow>
<msub>
<mi>P</mi>
<mrow>
<mi>N</mi>
<mi>E</mi>
<mi>W</mi>
</mrow>
</msub>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<mn>0</mn>
<mo>,</mo>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>P</mi>
<mo><</mo>
<mo>-</mo>
<mi>p</mi>
<mi>r</mi>
<mi>e</mi>
<mi>F</mi>
<mi>i</mi>
<mi>l</mi>
<mi>t</mi>
<mi>e</mi>
<mi>r</mi>
<mi>C</mi>
<mi>a</mi>
<mi>p</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mi>P</mi>
<mo>+</mo>
<mi>p</mi>
<mi>r</mi>
<mi>e</mi>
<mi>F</mi>
<mi>i</mi>
<mi>l</mi>
<mi>t</mi>
<mi>e</mi>
<mi>r</mi>
<mi>C</mi>
<mi>a</mi>
<mi>p</mi>
<mo>,</mo>
</mrow>
</mtd>
<mtd>
<mrow>
<mo>-</mo>
<mi>p</mi>
<mi>r</mi>
<mi>e</mi>
<mi>F</mi>
<mi>i</mi>
<mi>l</mi>
<mi>t</mi>
<mi>e</mi>
<mi>r</mi>
<mi>C</mi>
<mi>a</mi>
<mi>p</mi>
<mo>&le;</mo>
<mi>P</mi>
<mo>&le;</mo>
<mi>p</mi>
<mi>r</mi>
<mi>e</mi>
<mi>F</mi>
<mi>i</mi>
<mi>l</mi>
<mi>t</mi>
<mi>e</mi>
<mi>r</mi>
<mi>C</mi>
<mi>a</mi>
<mi>p</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mn>2</mn>
<mo>*</mo>
<mi>p</mi>
<mi>r</mi>
<mi>e</mi>
<mi>F</mi>
<mi>i</mi>
<mi>l</mi>
<mi>t</mi>
<mi>e</mi>
<mi>r</mi>
<mi>C</mi>
<mi>a</mi>
<mi>p</mi>
<mo>,</mo>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>P</mi>
<mo>&GreaterEqual;</mo>
<mi>p</mi>
<mi>r</mi>
<mi>e</mi>
<mi>F</mi>
<mi>i</mi>
<mi>l</mi>
<mi>t</mi>
<mi>e</mi>
<mi>r</mi>
<mi>C</mi>
<mi>a</mi>
<mi>p</mi>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
其中,preFilterCap为一个常数参数,取值为15;
所述对所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像进行像素级的点匹配,获取所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像的匹配点,具体包括:
依据映射后的所述带颜色特征的左灰度图像的像素和映射后的所述带颜色特征的右灰度图像的像素,利用SAD算法进行匹配,获取映射后的所述带颜色特征的左灰度图像和映射后的所述带颜色特征的右灰度图像的匹配点。
4.根据权利要求1所述的一种双摄像头立体视觉识别方法,其特征在于,所述利用所述匹配点生成深度图像,具体包括:
计算每对匹配点的真实坐标,并利用视差原理得到与每对匹配点相对应的被测点的三维空间坐标,所述真实坐标为所述匹配点在真实空间内相对于以两个摄像头中心为原点的立体坐标系的坐标;
利用所有与匹配点相对应的被测点的三维空间坐标生成深度图像。
5.根据权利要求1所述的一种双摄像头立体视觉识别方法,其特征在于,所述依据所述深度图像建立立体特征集,具体包括:
查找所述深度图像的边界;
依据所述边界对所述深度图像进行分块,并计算每一块所述深度图像的尺寸、形状以及与左右摄像头的距离;
依据所述每一块所述深度图像的尺寸、形状以及与左右摄像头的距离建立立体特征集;
所述提取任一摄像头获取的图像的纹理特征,建立纹理特征集,具体包括:
将左图像转化为左灰度图像,提取所述左灰度图像的Haar特征,建立纹理特征集,所述Haar特征包括原始矩特征、边缘特征、线性特征和中心环绕特征;
所述提取任一摄像头获取的图像的颜色特征,建立颜色特征集,具体包括:
将左图像转换为色块图像,并获取每个色块图像颜色空间中每一点的颜色的波长值;
利用所述波长值建立颜色特征集。
6.一种双摄像头立体视觉识别***,其特征在于,包括:
图像获取模块,用于利用左右两个摄像头分别获取包含环境物体的左图像与右图像;
左灰度图像获取模块,用于将所述左图像转化为左灰度图像,并获取左图像颜色空间中每一点的颜色的波长值,将左图像中每一点的灰度值与对应点的颜色的波长值加权,得到带颜色特征的左灰度图像;
右灰度图像获取模块,用于将所述右图像转化为右灰度图像,并获取右图像颜色空间中每一点的颜色的波长值,将右图像中每一点的灰度值与对应点的颜色的波长值加权,得到带颜色特征的右灰度图像;
匹配模块,用于对所述带颜色特征的左灰度图像和对应的所述带颜色特征的右灰度图像进行像素级的点匹配,获取所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像的匹配点;
深度图像生成模块,用于利用所述匹配点生成深度图像;
立体特征集建立模块,用于依据所述深度图像建立立体特征集;
纹理特征集建立模块,用于提取任一摄像头获取的图像的纹理特征,建立纹理特征集;
颜色特征集建立模块,用于提取任一摄像头获取的图像的颜色特征,建立颜色特征集;
分类模块,用于将所述立体特征集、所述纹理特征集和所述颜色特征集输入分类器进行分类,识别得到所述环境物体中的目标障碍物。
7.根据权利要求6所述的一种双摄像头立体视觉识别***,其特征在于,还包括:内部参数和外部参数获取模块和矫正模块,所述内部参数和外部参数获取模块用于获取摄像头的内部参数和外部参数,所述矫正模块,用于利用摄像头的内部参数和外部参数对摄像头获取的图像进行矫正;
所述内部参数和外部参数获取模块,具体包括:
棋盘图图像获取单元,用于利用摄像头获取棋盘图的图像,所述棋盘图由多个黑白交替的方块和多个黑色空心圆构成;
二值化单元,用于对摄像头获取的图像进行二值化,并利用二值化后的边界识别棋盘图中的黑色空心圆和公共角点,所述黑色空心圆位于棋盘图的四个角,所述黑色空心圆用于寻找和定位棋盘格,所述公共角点为两个黑色方块和两个白色方块的公共点;
投影矩阵建立单元,用于依据所述黑色空心圆和所述公共角点,利用棋盘图平面上的点与摄像头获取的图像上的对应点建立投影矩阵
<mrow>
<mi>s</mi>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mi>u</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>v</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>1</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>=</mo>
<mi>H</mi>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<msub>
<mi>X</mi>
<mi>W</mi>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>Y</mi>
<mi>W</mi>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>1</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
其中,s为尺度因子,u为摄像头获取的图像上的点的横坐标,v为摄像头获取的图像上的点的纵坐标,H为投影矩阵,XW为棋盘图平面上的点的横坐标,YW为棋盘图平面上的点的纵坐标;
投影矩阵求解单元,用于利用最小二乘法求解所述投影矩阵H;
内部参数获取单元,用于依据所述投影矩阵H,获取摄像头的内部参数;
外部参数获取单元,用于依据所述投影矩阵和所述摄像头的内部参数,获取摄像头的外部参数。
8.根据权利要求6所述的一种双摄像头立体视觉识别***,其特征在于,还包括:
全向算子计算模块,用于分别计算所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像的全向算子,所述全向算子为
Sobel(x,y)=2*[P(x+1,y)-P(x-1,y)]+P(x+1,y-1)-P(x-1,y-1)+P(x+1,y+1)-P(x-1,y+1)+2*[P(x,y+1)-P(x,y-1)]+P(x-1,y+1)-P(x-1,y-1)+P(x+1,y+1)-P(x+1,y-1)
其中,Sobel(x,y)表示图像上的点(x,y)的全向算子,P表示图像的像素,P(x,y)表示图像上的点(x,y)的像素;
映射模块,用于利用映射函数对所述带颜色特征的左灰度图像和所述带颜色特征的右灰度图像进行映射,映射后的图像的像素为
<mrow>
<msub>
<mi>P</mi>
<mrow>
<mi>N</mi>
<mi>E</mi>
<mi>W</mi>
</mrow>
</msub>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<mn>0</mn>
<mo>,</mo>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>P</mi>
<mo><</mo>
<mo>-</mo>
<mi>p</mi>
<mi>r</mi>
<mi>e</mi>
<mi>F</mi>
<mi>i</mi>
<mi>l</mi>
<mi>t</mi>
<mi>e</mi>
<mi>r</mi>
<mi>C</mi>
<mi>a</mi>
<mi>p</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mi>P</mi>
<mo>+</mo>
<mi>p</mi>
<mi>r</mi>
<mi>e</mi>
<mi>F</mi>
<mi>i</mi>
<mi>l</mi>
<mi>t</mi>
<mi>e</mi>
<mi>r</mi>
<mi>C</mi>
<mi>a</mi>
<mi>p</mi>
<mo>,</mo>
</mrow>
</mtd>
<mtd>
<mrow>
<mo>-</mo>
<mi>p</mi>
<mi>r</mi>
<mi>e</mi>
<mi>F</mi>
<mi>i</mi>
<mi>l</mi>
<mi>t</mi>
<mi>e</mi>
<mi>r</mi>
<mi>C</mi>
<mi>a</mi>
<mi>p</mi>
<mo>&le;</mo>
<mi>P</mi>
<mo>&le;</mo>
<mi>p</mi>
<mi>r</mi>
<mi>e</mi>
<mi>F</mi>
<mi>i</mi>
<mi>l</mi>
<mi>t</mi>
<mi>e</mi>
<mi>r</mi>
<mi>C</mi>
<mi>a</mi>
<mi>p</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mn>2</mn>
<mo>*</mo>
<mi>p</mi>
<mi>r</mi>
<mi>e</mi>
<mi>F</mi>
<mi>i</mi>
<mi>l</mi>
<mi>t</mi>
<mi>e</mi>
<mi>r</mi>
<mi>C</mi>
<mi>a</mi>
<mi>p</mi>
<mo>,</mo>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>P</mi>
<mo>&GreaterEqual;</mo>
<mi>p</mi>
<mi>r</mi>
<mi>e</mi>
<mi>F</mi>
<mi>i</mi>
<mi>l</mi>
<mi>t</mi>
<mi>e</mi>
<mi>r</mi>
<mi>C</mi>
<mi>a</mi>
<mi>p</mi>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
其中,preFilterCap为一个常数参数,取值为15;
所述匹配模块,具体包括:
匹配点获取单元,用于依据映射后的所述带颜色特征的左灰度图像的像素和映射后的所述带颜色特征的右灰度图像的像素,利用SAD算法进行匹配,获取映射后的所述带颜色特征的左灰度图像和映射后的所述带颜色特征的右灰度图像的匹配点。
9.根据权利要求6所述的一种双摄像头立体视觉识别***,其特征在于,所述深度图像生成模块,具体包括:
被测点坐标获取单元,用于计算每对匹配点的真实坐标,并利用视差原理得到与每对匹配点相对应的被测点的三维空间坐标,所述真实坐标为所述匹配点在真实空间内相对于以两个摄像头中心为原点的立体坐标系的坐标;
深度图像生成单元,用于利用所有与匹配点相对应的被测点的三维空间坐标生成深度图像。
10.根据权利要求6所述的一种双摄像头立体视觉识别***,其特征在于,所述立体特征集建立模块,具体包括:
边界查找单元,用于查找所述深度图像的边界;
分块与计算单元,用于依据所述边界对所述深度图像进行分块,并计算每一块所述深度图像的尺寸、形状以及与左右摄像头的距离;
立体特征集建立单元,用于依据所述每一块所述深度图像的尺寸、形状以及与左右摄像头的距离建立立体特征集;
所述纹理特征集建立模块,具体包括:
纹理特征集建立单元,用于将左图像转化为左灰度图像,提取所述左灰度图像的Haar特征,建立纹理特征集,所述Haar特征包括原始矩特征、边缘特征、线性特征和中心环绕特征;
所述立颜色特征集建立模块,具体包括:
波长值获取单元,用于将左图像转换为色块图像,并获取每个色块图像颜色空间中每一点的颜色的波长值;
颜色特征集建立单元,用于利用所述波长值建立颜色特征集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710888927.7A CN107679542B (zh) | 2017-09-27 | 2017-09-27 | 一种双摄像头立体视觉识别方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710888927.7A CN107679542B (zh) | 2017-09-27 | 2017-09-27 | 一种双摄像头立体视觉识别方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107679542A true CN107679542A (zh) | 2018-02-09 |
CN107679542B CN107679542B (zh) | 2020-08-11 |
Family
ID=61136833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710888927.7A Active CN107679542B (zh) | 2017-09-27 | 2017-09-27 | 一种双摄像头立体视觉识别方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107679542B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108765482A (zh) * | 2018-05-31 | 2018-11-06 | 长春博立电子科技有限公司 | 一种基于硬件加速的低功耗实时双目摄像头及使用方法 |
CN109001230A (zh) * | 2018-05-28 | 2018-12-14 | 中兵国铁(广东)科技有限公司 | 基于机器视觉的焊点缺陷检测方法 |
CN109727277A (zh) * | 2018-12-28 | 2019-05-07 | 江苏瑞尔医疗科技有限公司 | 多目立体视觉的体表摆位跟踪方法 |
CN110716212A (zh) * | 2019-11-14 | 2020-01-21 | 吉林大学 | 一种路面障碍物检测方法及*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1431626A (zh) * | 2002-12-27 | 2003-07-23 | 南京师范大学 | 主题制图仪图像信息提取与黑白图像的彩色图像生成 |
CN102722080A (zh) * | 2012-06-27 | 2012-10-10 | 绍兴南加大多媒体通信技术研发有限公司 | 一种基于多镜头拍摄的多用途立体摄像方法 |
CN102761768A (zh) * | 2012-06-28 | 2012-10-31 | 中兴通讯股份有限公司 | 一种实现立体成像的方法及装置 |
CN105430295A (zh) * | 2015-10-30 | 2016-03-23 | 努比亚技术有限公司 | 图像处理装置及方法 |
CN105812649A (zh) * | 2014-12-31 | 2016-07-27 | 联想(北京)有限公司 | 一种摄像方法和装置 |
CN106937049A (zh) * | 2017-03-09 | 2017-07-07 | 广东欧珀移动通信有限公司 | 基于景深的人像色彩的处理方法、处理装置和电子装置 |
-
2017
- 2017-09-27 CN CN201710888927.7A patent/CN107679542B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1431626A (zh) * | 2002-12-27 | 2003-07-23 | 南京师范大学 | 主题制图仪图像信息提取与黑白图像的彩色图像生成 |
CN102722080A (zh) * | 2012-06-27 | 2012-10-10 | 绍兴南加大多媒体通信技术研发有限公司 | 一种基于多镜头拍摄的多用途立体摄像方法 |
CN102761768A (zh) * | 2012-06-28 | 2012-10-31 | 中兴通讯股份有限公司 | 一种实现立体成像的方法及装置 |
CN105812649A (zh) * | 2014-12-31 | 2016-07-27 | 联想(北京)有限公司 | 一种摄像方法和装置 |
CN105430295A (zh) * | 2015-10-30 | 2016-03-23 | 努比亚技术有限公司 | 图像处理装置及方法 |
CN106937049A (zh) * | 2017-03-09 | 2017-07-07 | 广东欧珀移动通信有限公司 | 基于景深的人像色彩的处理方法、处理装置和电子装置 |
Non-Patent Citations (3)
Title |
---|
YU WENG: "A Data Fusion Model based on Blogosphere Evaluation", 《2013 6TH INTERNATIONAL CONFERENCE ON INTELLIGENT NETWORKS AND INTELLIGENT SYSTEMS》 * |
王力超等: "基于双摄像头的计算机立体视觉开发平台", 《实验室研究与探索》 * |
王腾等: "一种深度图像障碍物检测新方法", 《测绘科学》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109001230A (zh) * | 2018-05-28 | 2018-12-14 | 中兵国铁(广东)科技有限公司 | 基于机器视觉的焊点缺陷检测方法 |
CN108765482A (zh) * | 2018-05-31 | 2018-11-06 | 长春博立电子科技有限公司 | 一种基于硬件加速的低功耗实时双目摄像头及使用方法 |
CN109727277A (zh) * | 2018-12-28 | 2019-05-07 | 江苏瑞尔医疗科技有限公司 | 多目立体视觉的体表摆位跟踪方法 |
CN110716212A (zh) * | 2019-11-14 | 2020-01-21 | 吉林大学 | 一种路面障碍物检测方法及*** |
CN110716212B (zh) * | 2019-11-14 | 2021-07-27 | 吉林大学 | 一种路面障碍物检测方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN107679542B (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106651942B (zh) | 基于特征点的三维旋转运动检测与旋转轴定位方法 | |
CN110866079B (zh) | 一种智慧景区实景语义地图的生成与辅助定位方法 | |
CN104063702B (zh) | 一种基于遮挡修复和局部相似性匹配的三维步态识别方法 | |
CN101299270B (zh) | 三维扫描***中的多个摄像机同步快速标定方法 | |
CN107248159A (zh) | 一种基于双目视觉的金属工件缺陷检测方法 | |
CN104930985B (zh) | 基于时空约束的双目视觉三维形貌测量方法 | |
CN107679542A (zh) | 一种双摄像头立体视觉识别方法及*** | |
CN104134200B (zh) | 一种基于改进加权融合的运动场景图像拼接方法 | |
CN107063228A (zh) | 基于双目视觉的目标姿态解算方法 | |
CN107274336A (zh) | 一种针对车载环境的全景图像拼接方法 | |
CN104933434A (zh) | 一种结合LBP特征提取和surf特征提取方法的图像匹配方法 | |
CN104361627B (zh) | 基于sift的双目视觉沥青路面微观纹理三维图像重构方法 | |
CN109118528A (zh) | 基于区域分块的奇异值分解图像匹配算法 | |
CN110008913A (zh) | 基于姿态估计与视点机制融合的行人再识别方法 | |
CN106096621B (zh) | 基于矢量约束的着降位置检测用随机特征点选取方法 | |
CN103295239A (zh) | 一种基于平面基准影像的激光点云数据的自动配准方法 | |
CN102982334A (zh) | 基于目标边缘特征与灰度相似性的稀疏视差获取方法 | |
CN107154017A (zh) | 一种基于sift特征点匹配的图像拼接方法 | |
Liu et al. | Extended faster R-CNN for long distance human detection: Finding pedestrians in UAV images | |
CN108182705A (zh) | 一种基于机器视觉的三维坐标定位方法 | |
CN105488491A (zh) | 基于金字塔匹配直方图交叉核的人体睡眠姿态检测方法 | |
CN110929782B (zh) | 一种基于正射影像图对比的河道异常检测方法 | |
Yao et al. | Robust Harris corner matching based on the quasi-homography transform and self-adaptive window for wide-baseline stereo images | |
CN113011359A (zh) | 一种基于图像的同时检测平面结构和生成平面描述的方法及应用 | |
CN104700401B (zh) | 一种基于K‑Means聚类法的图像仿射变换控制点选取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |