一种基于单目视觉的三维轮廓模型快速构建方法
文献发布时间:2024-04-18 20:01:30
技术领域
本发明专利属于图像处理的技术领域,涉及图像匹配技术、图像平面分割技术和图像插帧技术,适用于三维物体轮廓模型的构造。
背景技术
随着网络技术的发展,网上购物逐渐替代实体店购物成为主流。在产品的购买过程中,消费者需要得到商品尽可能多的信息来衡量商品是否达到自己的需求标准,同时商人需要向消费者充分的展示自己的商品来刺激消费者的购买欲。而在产品宣传推销展示的过程中展现方式是一个十分重要的问题。到目前为止向用户展现展现商品主要有三维模型、全景图两种虚拟现实的方法。全景图制作方便但是只能允许消费者在个人视角观察大型商品内部信息或者说周围的环境,无法自由变换看到商品外表。三维模型能够直观的展现商品但是制作模型过程复杂,需要很高的技术软件和设备。
在日常生活中人们可以利用摄像机手机等移动便携设备对身边的环境或者实物进行拍摄得到电子图像或者纸质相片。在一些环境下由于各种原因导致一张图像无法覆盖全部目标内容并清晰呈现目标全部内容,这时就需要用到图像拼接技术。在众多图像拼接方法中,通过变换矩阵变换图像是不可避免地的一个核心的步骤。在所有的图像拼接的过程中,大多数图像变换是通过单应矩阵实现的。但是单应变换矩阵使用有一定的约束性条件。单应变换矩阵在下列两种情况下使用图像拼接效果较好:
1.图像拼接目标位于同一平面内,两次摄像相机位置和角度任意。
2.图像拼接目标不在同一平面内,但是两次摄像相机位置相对于成像距离变换不大,可以近似看作相机只有摄像角度的旋转没有位置的平移。
如果不满足单应矩阵的使用条件待拼接的两张图像之间就会存在较大视差,使用单应矩阵进行图像拼接会产生重影鬼影变形畸变等问题,到目前为止没有一种完善的解决方案。图像拼接技术应用广泛,在虚拟现实领域主要应用于全景图拼接(全景图技术是指在任一环境下摄像机对周围三百六十五度上中下三个视角拍摄十八张照片进行无缝拼接并把拼接完成的图像投影到圆柱体立方体或者球体内部模拟真实环境给观看者产生一种沉浸感)。本文使用图像拼接方法实现视角插帧,生成目标三维物体在360°视角上闭合的连贯的目标物体的三维轮廓模型。
发明内容
本发明提出一种基于单目视觉的三维轮廓模型快速构建方法,包含基于局部分布特征的粗略三维轮廓模型构建和角度映射模型优化两个部分,其中基于局部分布特征的粗略三维轮廓模型构建对单目相机采集的三维目标物体的有限视角的有限数量的二维平面图像进行拼接融合,生成三维目标物体在360°视角上闭合的粗略三维轮廓模型,通过角度映射模型优化对生成的粗略三维轮廓模型进行优化,生成三维目标物体在360°视角上更加连贯的闭合的三维轮廓模型。
本发明所采用的技术方案如下:
一种基于图像拼接的三维轮廓模型快速构建方法,包含基于局部分布特征的粗略三维轮廓模型构建和角度映射模型优化两个部分。
基于局部分布特征的粗略三维轮廓模型构建包括以下步骤:
步骤A:采用单目相机采集三维目标物体覆盖360°的有相邻衔接的二维平面图像,提取二维平面图像的分布特征并匹配,形成匹配分布特征集;
步骤B:通过得到的匹配分布特征集,分割图像,并估计相邻二维平面图像间的旋转角度,构建三维目标物体在360°视角上闭合的粗略三维轮廓模型。
角度映射模型优化包括以下步骤:
步骤C:生成插帧二维平面图像;
步骤D:判断三维轮廓模型精细度是否达到要求。
附图说明
图1为本发明三维轮廓模型构建流程图
图2为粗略三维轮廓模型构建示意图
图3为角度映射模型优化意图
具体实施步骤
下面结合附图与具体实施步骤对本发明做进一步说明:
本发明实施流程分为四个部分,分别是单目相机进行图像采集、基于分布特征的粗略三维轮廓模型构建、角度映射模型优化、输出优化后的三维轮廓模型,流程示意图如图3所示。
基于局部分布特征的粗略三维轮廓模型构建部分示意图如图2所示,包括步骤的具体处理过程如下:
步骤A:采集三维目标物体覆盖360°的有相邻衔接的二维平面图像,提取二维平面图像的分布特征并匹配,形成匹配分部特征集,步骤A的具体处理过程如下:
A-1)采集二维平面图像
本发明采集二维平面图像包含两种类型,分别是(A-1-i)小尺寸物体二维平面图像采集
(A-1-ii)大尺寸物体二维平面图像采集;
A-1-i)小尺寸物体二维平面图像采集
对于小尺寸物体,按顺(逆)时针拍摄目标物体各个夹角正视图,连续覆盖目标物体所有视角,并保证所采集的相邻夹角正视图之间有重叠区域;
A-1-ii)大尺寸物体二维平面图像采集
对于大尺寸物体,即需要多张连续的夹角正视图和平面正视图才能覆盖物体的某一夹角或平面,按顺(逆)时针连续拍摄物体的夹角正视图和平面正视图,并保证所采集的相邻正视图之间有重叠区域;
A-2)提取分布特征
本发明提取分布特征包含三个步骤,分别是(i)图像色块抽象化并规定色块筛选规则(ii)色块边缘点和图像轮廓点提取,轮廓提取结果和色块边缘点提取结果相互校正(iii)提取色块分布特征、色块子对象分布特征、临界点、轮廓分布特征,将边缘点连接成线,所述具体步骤如下:
(A-2-i)图像色块抽象化并规定色块筛选规则
图像色块抽象化:人眼视觉RGB空间图像转换为机器视觉HSV空间,使用四叉树搜索方法定向搜索色块种子生长点,选取搜索框四角以及中心点像素作为颜色标记像素用于对比像素值,在搜索区间尺度大于最小尺度条件下,搜索窗口存在多个相同颜色标记像素时,对对应区间进行定向搜索;当大部分颜色标记像素包括中间颜色标记像素像素值相同时,中心颜色标记像素为种子点进行区域生长,当周围没有未生长过的同颜色的像素点时生长结束,生长区域即为色块标为同一颜色,非色块区域均为黑色。
规定色块筛选规则:根据目标物体放在图像中央的拍摄习惯正常拍摄习惯,属于目标物体的色块其中心点一定在图像中心区域默认为图像中心图像二分之一宽度区域即:
image.cols/4<center.x<3*image.cals/4
image.rows/4<center.y<3*image.rows/4
其中image.cols和image.rows分别代表图像的宽和高,center.x和center.y分别代表色块中心点的横坐标和纵坐标。
并且色块中的元素不应该出现在图像的边缘位置,默认为图像的八分之一的宽度的边缘区域即:
image.cols/8<pixel.x<7*image.cols/8
image.rows/8<pixel.y<7*image.rows/8
pixel.x和pixel.y分别代表图像像素点的横坐标和纵坐标。
(A-2-ii)色块边缘点和图像轮廓点提取,轮廓提取结果和色块边缘点提取结果相互校正
色块边缘点和图像轮廓点提取:sobel算子边缘提取得到图像边缘黑白图像,进行轮廓提取;八邻域存在其他颜色像素的色块像素点为色块的边缘点,遍历所有色块保存各色块边缘点;每个色块的的边缘点集通过闭环判断分成多个点集,其中元素数量最多的点集为色块轮廓点集,其他子闭合点集为子对象轮廓点集,非闭合点集为纹理点集。
轮廓提取结果和色块边缘点提取结果相互校正:由于sobel算子边缘提取存在噪音,色块提取过程中色块边缘存在误差,故使用两个提取结果点集以命中率的形式进行与操作,只保留共有的闭合点集为最终轮廓点集,命中率形式的与操作是指,当与操作为真该像素点在两个点集都存在是该像素点保留,当与操作为假但该像素八邻域内存在其它为真的点,根据点集闭环程度来选择真假。
(A-2-iii)提取色块分布特征、色块子对象分布特征、临界点、轮廓分布特征,将边缘点连接成线
提取色块分布特征:膨胀卷积遍历色块轮廓点集,轮廓点膨胀卷积内出现的其他颜色像素对应到色块,为该色块周围色块,周围色块的颜色及方向为该色块中心点描述子内容,得到色块分布特征,并加入特征集。
提取色块子对象分布特征:各色块子对象轮廓点集计算中间像素点相对于色块的位置,并加入特征集。
提取临界点:膨胀卷积遍历色块轮廓点集。当某个轮廓点膨胀卷积中存在多重颜色像素时该轮廓点为临界候选点,多个相邻的存在同颜色种类候选点取中间点为临界点,临界点周围色块的颜色、方向和相对于其他临界点的方向为其描述子内容,得到色块中心点和临界点,并加入特征集。
提取轮廓分布特征:将线集中线和线的连接点加入特征点集,连接点连段线的属性和level_line作为描述子;曲线的拐点加入特征点集,拐点所在曲线两端连接线的属性作为描述子,所有轮廓分布特征按照顺时针连接顺序加入特征集。
将边缘点连接成线,形成特征直线:根据LSD算法计算轮廓图个像素点梯度,生成level_line。遍历每个像素的level_line,如果相邻像素level_line在阈值内相等则视为同一条线。当像素level_line按照某一角度变换规律变换时,符合变换规律的像素点组成曲线。
x方向和y方向的梯度分别为:
level_line角度为:
A-3)匹配分布特征,形成匹配分布特征集
同类特征按照分布特征向量指向进行搜索匹配,两分布子图的最大公共子图即为匹配结果,所有匹配特征点加入到匹配分布特征集中。
步骤B:通过得到的匹配分布特征集,分割图像,并估计相邻二维平面图像间的旋转角度,构建三维目标物体在360°视角上闭合的粗略三维轮廓模型,步骤B的具体处理过程如下:
B-1)分割图像
对比匹配特征点分布特征向量向量模大小,变化比率不同的匹配点的中间匹配点为棱点,相邻棱点链接成棱;相邻非棱点与相邻棱点围成面。根据相邻二维平面图像在不同视角下统一分布特征的相对变化量筛选平面的轮廓点,连接平面轮廓点分割图像中的二维平面图像;
B-2)估计相邻二维平面图像间的旋转角度
同一二维平面图像在各视角下的图像组成二维平面图像的图像集,二维平面图像在视平面成像的宽度的变化规律可以用余弦函数近似,检测夹角正视图中各平面中水平特征直线,根据直线的角度和长度来计算相邻二维平面图像间的旋转角度θ
B-3)构建三维目标物体在360°视角上闭合的粗略三维轮廓模型
根据匹配分布特征集和相邻二维平面间的旋转角度拼接相邻二维平面图像,构建目标物体在360°视角上闭合的粗略三维轮廓模型。
角度映射模型优化示意图如图3所示,包括步骤的具体处理过程如下:
步骤C:生成插帧二维平面图像,步骤C的具体处理过程如下:
C-1)计算相邻二维平面图像变换角度
通过三维轮廓模型相邻二维平面图像I
α
两张图片所需变换角度默认为α
C-2)计算二维平面图像深度图
将匹配点集替换立体匹配中的匹配点集计算深度图;
C-3)最小二乘法拟合I
以图像色块中心点为起点区域生长遍历深度分布规律并分割,用最小二乘法拟合平面和曲面,拟合的面以图像对应的相机坐标系下三维坐标表示;
平面拟合公式为:
曲面拟合公式为:
C-4)旋转I
I
C-5)生成插帧二维平面图像
采用透视投影矩阵将I′
C-6)生成二维平面图像P
计算I
(C-4)、(C-5),生成与二维平面图像I
C-7)计算插帧二维平面图像误差
根据SSIM(结构相似性)指标,计算二维平面图像I
C-8)判断误差是否符合要求
SSIM(x,y)范围在[-1,1],SSIM(x,y)越接近1,两张图片相似度越高,当SSIM(x,y)>a(一般认为a>0.7时,两张图像相似度高;a>0.9时,人眼难以分辨两张图像)判断生成的二维平面图像I
透视投影矩阵:
步骤D:判断三维轮廓模型精细度是否达到要求,步骤D的具体处理过程如下:
D-1)不断生成新的插帧二维平面图像加入三维轮廓模型,并更新匹配特征集和旋转角度信息
通过步骤C不断生成新的插帧二维平面图像,并根据步骤(A-2)、(A-3)、(B-1)、(B-2)更新匹配特征集和旋转角度信息θ
D-2)判断目标物体三维轮廓模型精细度达到要求
目标物体三维轮廓模型中相邻二维平面图像的最大旋转角度为θ
- 一种清洗车辆表面的清洗方法
- 用于擦拭和清洗车窗的受控系统和装备车辆的方法
- 一种面向大型车辆的自动洗车控制系统及清洗方法
- 大型车辆洗车移动式自动清洗车