CN112116530B - 鱼眼图像畸变矫正方法、装置和虚拟显示系统 - Google Patents
鱼眼图像畸变矫正方法、装置和虚拟显示系统 Download PDFInfo
- Publication number
- CN112116530B CN112116530B CN201910533932.5A CN201910533932A CN112116530B CN 112116530 B CN112116530 B CN 112116530B CN 201910533932 A CN201910533932 A CN 201910533932A CN 112116530 B CN112116530 B CN 112116530B
- Authority
- CN
- China
- Prior art keywords
- image
- virtual viewpoint
- pixel
- pixel position
- cameras
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 99
- 238000012937 correction Methods 0.000 title claims abstract description 24
- 238000013507 mapping Methods 0.000 claims abstract description 210
- 238000003384 imaging method Methods 0.000 claims abstract description 36
- 238000003702 image correction Methods 0.000 claims abstract description 7
- 239000011159 matrix material Substances 0.000 claims description 54
- 238000012545 processing Methods 0.000 claims description 18
- 230000002829 reductive effect Effects 0.000 abstract description 3
- 239000000284 extract Substances 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000000717 retained effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 238000000605 extraction Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 241000251468 Actinopterygii Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/80—Geometric correction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Studio Devices (AREA)
Abstract
本公开提供了一种鱼眼图像畸变矫正方法、装置和虚拟显示系统,涉及计算机视觉技术领域。包括:当对图像进行矫正时,获取第一鱼眼相机拍摄的第一图像;根据第一投影映射关系,将该第一图像中的像素点投影到多个第一虚拟视点相机的成像平面上,得到多个第一虚拟视点图像;将该多个第一虚拟视点图像拼接成该第一图像矫正后的第二图像。通过该多个第一虚拟视点相机可以得到该第一图像矫正后的第二图像。由于该多个第一虚拟视点相机的视域范围覆盖该第一鱼眼相机的视域范围,因此,通过该多个第一虚拟视点相机得到第一图像的矫正图像时,无需截取第一图像中的部分图像,不会减小可利用视域,得到的矫正后的第二图像中,保留的信息更加完整。
Description
技术领域
本公开涉及计算机视觉技术领域,特别涉及一种鱼眼图像畸变矫正方法、装置和虚拟显示系统。
背景技术
随着计算机视觉技术的发展,用户对相机能采集到的画面的广度要求越来越高,而普通相机的视场角范围较小,所拍摄的图像不能尽可能有效地反应所拍摄场景的全部信息。因此,拥有超大视场角的鱼眼相机应运而生。鱼眼相机是一种有超广角的特殊镜头的相机,其在任一方向上的视场角均可以达到120°以上,拍摄范围更加广阔。然而,由于鱼眼相机的视场角过大,使其在成像过程中,对光线的折射角度较大,因而生成的鱼眼图像会产生畸变。因此,需要对鱼眼图像上产生的畸变进行矫正。
相关技术中,在对第一鱼眼相机拍摄的第一图像进行矫正时,常通过对第一鱼眼相机进行标定进而对第一图像进行矫正。首先通过对第一鱼眼相机进行标定,估算出该第一鱼眼相机标定后的内部参数和外部参数;根据该标定后的内部参数和外部参数建立第一鱼眼相机的成像模型;截取第一图像中的部分图像,通过该成像模型对该部分图像进行矫正,得到满足人眼视觉效果的第二图像,其中该截取的第一图像中的部分图像为第一图像中去除边缘部分的图像。
上述相关技术中,只对第一图像中的部分图像进行矫正,而舍弃第一图像中边缘部分的图像,使得第一鱼眼相机的可利用视域减小,矫正后的鱼眼图像中的图像信息不完整。
发明内容
为了克服相关技术中存在的第一鱼眼相机的可利用视域减小,矫正后的鱼眼图像中的图像信息不完整的问题,本公开提供了一种鱼眼图像畸变矫正方法、装置和虚拟显示系统。
根据本公开实施例的第一方面,提供了一种鱼眼图像畸变矫正方法,所述方法包括:
当对图像进行矫正时,获取第一鱼眼相机拍摄的第一图像;
根据第一投影映射关系,将所述第一图像中的像素点投影到多个第一虚拟视点相机的成像平面上,得到多个第一虚拟视点图像,所述第一投影映射关系用于存储所述第一鱼眼相机的像素位置与每个第一虚拟视点相机的像素位置之间的映射关系,所述多个第一虚拟视点相机组成的视域范围覆盖所述第一鱼眼相机的视域范围;
将所述多个第一虚拟视点图像拼接成所述第一图像矫正后的第二图像。
在一种可能的实现方式中,所述根据第一投影映射关系,将所述第一图像中的像素点投影到多个第一虚拟视点相机的成像平面上,得到多个第一虚拟视点图像,包括:
对于每个第一虚拟视点相机的成像平面中的第一像素点位置,根据所述第一像素点位置和所述第一投影映射关系,确定与所述第一像素点位置对应的第二像素点位置;
从所述第一图像中获取所述第二像素点位置对应的像素值,将所述像素值赋予所述第一像素点位置,得到第一虚拟视点图像。
在另一种可能的实现方式中,所述方法还包括:
获取所述第一鱼眼相机拍摄的第三图像,以及获取所述多个第一虚拟视点相机拍摄的多个第二虚拟视点图像;
根据所述第一鱼眼相机的第一投影参数和畸变参数,将所述第三图像映射到所述第一鱼眼相机的三维坐标系中,得到所述第三图像中的每个第一像素位置与所述三维坐标系中的每个第二像素位置之间的第一映射关系;
根据所述每个第一虚拟视点相机的第二投影参数,将所述多个第二虚拟视点图像分别映射到所述第一鱼眼相机的三维坐标系中,得到所述每个第二像素位置与每个第二虚拟视点图像中的每个第三像素位置之间的第二映射关系;
根据所述第一映射关系和所述第二映射关系,建立所述第一投影映射关系。
在另一种可能的实现方式中,所述根据所述第一鱼眼相机的第一投影参数和畸变参数,将所述第三图像映射到所述第一鱼眼相机的三维坐标系中,得到所述第三图像中的每个第一像素位置与所述三维坐标系中的每个第二像素位置之间的第一映射关系,包括:
对于第三图像中的任一像素点,确定所述像素点的第四像素位置;
根据所述畸变参数,对所述第四像素位置进行去畸变处理,得到第五像素位置;
根据所述第一投影参数,对所述第五像素位置进行平移,得到所述第四像素位置在所述三维坐标系中对应的第六像素位置;
将所述第四像素位置处的像素点投影到所述第六像素位置处,得到所述第一映射关系。
在另一种可能的实现方式中,所述根据所述每个第一虚拟视点相机的第二投影参数,将所述多个第二虚拟视点图像分别映射到所述第一鱼眼相机的三维坐标系中,得到所述每个第二像素位置与每个第二虚拟视点图像中的每个第三像素位置之间的第二映射关系,包括:
确定多个第一虚拟视点相机的旋转矩阵的逆矩阵,得到多个第一逆矩阵,以及根据所述第二投影参数,确定所述多个第二第一虚拟视点相机的投影模型矩阵的逆矩阵,得到多个第二逆矩阵;
对于任一第二虚拟视点图像中的任一像素点,确定所述像素点的第七像素位置;
将所述第七像素位置乘以所述第二虚拟视点图像对应的第一虚拟视点相机的第一逆矩阵和第二逆矩阵,得到所述第七像素位置在所述三维坐标系中对应的第八像素位置;
将所述第七像素位置处的像素点投影到所述第八像素位置处,得到所述第二映射关系。
在另一种可能的实现方式中,所述根据所述第一映射关系和所述第二映射关系,建立所述第一投影映射关系,包括:
根据所述第一映射关系和所述第二映射关系,确定所述三维坐标中,同一像素位置对应的第三图像中的第九像素位置和第二虚拟视点图像中的第十像素位置;
建立所述第九像素位置与所述第十像素位置的映射关系,得到所述第一投影映射关系。
在另一种可能的实现方式中,对图像进行矫正之前,所述方法还包括:
获取所述多个第一虚拟视点相机配置参数;
根据所述多个第一虚拟视点相机的配置参数,设置所述多个第一虚拟视点相机,所述多个第一虚拟视点相机在横向方向上组成的视域范围覆盖所述第一鱼眼相机在横向方向上的视域范围,且所述多个第一虚拟视点相机纵向方向上组成的视域范围覆盖所述第一鱼眼相机在纵向方向上的视域范围。
在另一种可能的实现方式中,所述方法还包括:
提取所述第二图像中的第一特征点,得到第一特征点集合;
分别确定所述第一特征点集合中的每个第一特征点的第一描述子,得到第一描述子集合;
根据所述第一投影映射关系,在所述第一图像中确定与所述第一特征点集合中的每个第一特征点对应的第二特征点,得到第二特征点集合;
将所述第二特征点集合和所述第一描述子集合确定为所述第二图像的特征点集合和第一描述子集合。
在另一种可能的实现方式中,所述提取所述第二图像中的第一特征点,得到第一特征点集合,包括:
在所述第二图像中确定所述第一图像所占的第一视场角覆盖范围内的图像区域;
提取所述图像区域中的第一特征点,得到所述第一特征点集合。
在另一种可能的实现方式中,所述方法还包括:
当对所述第一图像和第四图像进行匹配时,确定所述第四图像中的第三特征点集合以及所述第三特征点集合对应的第二描述子集合;
根据所述第二特征点集合和所述第一描述子集合,以及所述第三特征点集合和所述第二描述子集合,对所述第一图像和所述第四图像进行匹配。
在另一种可能的实现方式中,所述确定所述第四图像中的第三特征点集合以及所述第三特征点集合对应的第二描述子集合,包括:
根据第二鱼眼相机的第二映射投影关系,对所述第四图像进行矫正,得到校正后的第五图像,所述第二投影映射关系用于存储所述第二鱼眼相机的像素位置与多个第二虚拟视点相机的像素位置之间的映射关系,所述多个第二虚拟视点相机组成的视域范围覆盖所述第二鱼眼相机的视域范围;
提取所述第五图像中的第四特征点,得到第四特征点集合;
分别确定所述第四特征点集合中的每一个特征点的第二描述子,得到第二描述子集合;
根据所述第二投影映射关系,在所述第四图像中确定与所述第四特征点集合中的每一个特征点对应的第三特征点,得到第三特征点集合。
在另一种可能的实现方式中,所述根据所述第二特征点集合和所述第一描述子集合,以及所述第三特征点集合和所述第二描述子集合,对所述第二图像和所述第四图像进行匹配,包括:
对于所述第二特征点集合中的任一第二特征点,根据所述第二特征点在所述第二图像中的第十一像素位置,从所述第三特征点集合中选择第三特征点,所述第三特征点为所述第四图像中的第十一像素位置对应的特征点;
从所述第一描述子集合中选择与所述第二特征点对应的第一描述子,以及从所述第二描述子集合中选择与所述第三特征点对应的第二描述子;
当所述第一描述子和所述第二描述子匹配时,确定所述第二特征点和所述第三特征点匹配;
统计所述第二图像和所述第四图像匹配的特征点的第一数量;
当所述第一数量超过预设数量时,确定所述第二图像和所述第四图像匹配。
在另一种可能的实现方式中,所述第二图像所占的第二视场角与所述第一图像所占的第一视场角的比值不小于预设数值;所述第二图像的边缘分辨率不低于所述第二图像的中心分辨率。
在另一种可能的实现方式中,所述获取第一鱼眼相机拍摄的第一图像,包括:
获取所述第一鱼眼相机拍摄的多个第六图像;
将所述多个第六图像,组成所述第一图像。
根据本公开实施例的第二方面,提供了一种鱼眼图像畸变矫正装置,所述装置包括:
第一获取模块,用于当对图像进行矫正时,获取第一鱼眼相机拍摄的第一图像;
投影模块,用于根据第一投影映射关系,将所述第一图像中的像素点投影到多个第一虚拟视点相机的成像平面上,得到多个第一虚拟视点图像,所述第一投影映射关系用于存储所述第一鱼眼相机的像素位置与每个第一虚拟视点相机的像素位置之间的映射关系,所述多个第一虚拟视点相机组成的视域范围覆盖所述第一鱼眼相机的视域范围;
拼接模块,用于将所述多个第一虚拟视点图像拼接成所述第一图像矫正后的第二图像。
在一种可能的实现方式中,所述投影模块,还用于对于每个第一虚拟视点相机的成像平面中的第一像素点位置,根据所述第一像素点位置和所述第一投影映射关系,确定与所述第一像素点位置对应的第二像素点位置;从所述第一图像中获取所述第二像素点位置对应的像素值,将所述像素值赋予所述第一像素点位置,得到第一虚拟视点图像。
在另一种可能的实现方式中,所述装置还包括:
第二获取模块,用于获取所述第一鱼眼相机拍摄的第三图像,以及获取所述多个第一虚拟视点相机拍摄的多个第二虚拟视点图像;
第一映射模块,用于根据所述第一鱼眼相机的第一投影参数和畸变参数,将所述第三图像映射到所述第一鱼眼相机的三维坐标系中,得到所述第三图像中的每个第一像素位置与所述三维坐标系中的每个第二像素位置之间的第一映射关系;
第二映射模块,用于根据所述每个第一虚拟视点相机的第二投影参数,将所述多个第二虚拟视点图像分别映射到所述第一鱼眼相机的三维坐标系中,得到所述每个第二像素位置与每个第二虚拟视点图像中的每个第三像素位置之间的第二映射关系;
建立模块,用于根据所述第一映射关系和所述第二映射关系,建立所述第一投影映射关系。
在另一种可能的实现方式中,所述第一映射模块,还用于对于第三图像中的任一像素点,确定所述像素点的第四像素位置;根据所述畸变参数,对所述第四像素位置进行去畸变处理,得到第五像素位置;根据所述第一投影参数,对所述第五像素位置进行平移,得到所述第四像素位置在所述三维坐标系中对应的第六像素位置;将所述第四像素位置处的像素点投影到所述第六像素位置处,得到所述第一映射关系。
在另一种可能的实现方式中,所述第二映射模块,还用于确定多个第一虚拟视点相机的旋转矩阵的逆矩阵,得到多个第一逆矩阵,以及根据所述第二投影参数,确定所述多个第二第一虚拟视点相机的投影模型矩阵的逆矩阵,得到多个第二逆矩阵;对于任一第二虚拟视点图像中的任一像素点,确定所述像素点的第七像素位置;将所述第七像素位置乘以所述第二虚拟视点图像对应的第一虚拟视点相机的第一逆矩阵和第二逆矩阵,得到所述第七像素位置在所述三维坐标系中对应的第八像素位置;将所述第七像素位置处的像素点投影到所述第八像素位置处,得到所述第二映射关系。
在另一种可能的实现方式中,所述建立模块,还用于根据所述第一映射关系和所述第二映射关系,确定所述三维坐标中,同一像素位置对应的第三图像中的第九像素位置和第二虚拟视点图像中的第十像素位置;建立所述第九像素位置与所述第十像素位置的映射关系,得到所述第一投影映射关系。
在另一种可能的实现方式中,所述装置还包括:
第三获取模块,用于获取所述多个第一虚拟视点相机配置参数;
设置模块,用于根据所述多个第一虚拟视点相机的配置参数,设置所述多个第一虚拟视点相机,所述多个第一虚拟视点相机在横向方向上组成的视域范围覆盖所述第一鱼眼相机在横向方向上的视域范围,且所述多个第一虚拟视点相机纵向方向上组成的视域范围覆盖所述第一鱼眼相机在纵向方向上的视域范围。
在另一种可能的实现方式中,所述装置还包括:
第一提取模块,用于提取所述第二图像中的第一特征点,得到第一特征点集合;
第一确定模块,用于分别确定所述第一特征点集合中的每个第一特征点的第一描述子,得到第一描述子集合;
第二确定模块,用于根据所述第一投影映射关系,在所述第一图像中确定与所述第一特征点集合中的每个第一特征点对应的第二特征点,得到第二特征点集合;
第三确定模块,用于将所述第二特征点集合和所述第一描述子集合确定为所述第二图像的特征点集合和第一描述子集合。
在另一种可能的实现方式中,所述提取模块,还用于在所述第二图像中确定所述第一图像所占的第一视场角覆盖范围内的图像区域;提取所述图像区域中的第一特征点,得到所述第一特征点集合。
在另一种可能的实现方式中,所述装置还包括:
第四确定模块,用于当对所述第一图像和第四图像进行匹配时,确定所述第四图像中的第三特征点集合以及所述第三特征点集合对应的第二描述子集合;
匹配模块,用于根据所述第二特征点集合和所述第一描述子集合,以及所述第三特征点集合和所述第二描述子集合,对所述第一图像和所述第四图像进行匹配。
在另一种可能的实现方式中,所述第四确定模块,还用于根据第二鱼眼相机的第二映射投影关系,对所述第四图像进行矫正,得到校正后的第五图像,所述第二投影映射关系用于存储所述第二鱼眼相机的像素位置与多个第二虚拟视点相机的像素位置之间的映射关系,所述多个第二虚拟视点相机组成的视域范围覆盖所述第二鱼眼相机的视域范围;提取所述第五图像中的第四特征点,得到第四特征点集合;分别确定所述第四特征点集合中的每一个特征点的第二描述子,得到第二描述子集合;根据所述第二投影映射关系,在所述第四图像中确定与所述第四特征点集合中的每一个特征点对应的第三特征点,得到第三特征点集合。
在另一种可能的实现方式中,所述匹配模块,还用于对于所述第二特征点集合中的任一第二特征点,根据所述第二特征点在所述第二图像中的第十一像素位置,从所述第三特征点集合中选择第三特征点,所述第三特征点为所述第四图像中的第十一像素位置对应的特征点;从所述第一描述子集合中选择与所述第二特征点对应的第一描述子,以及从所述第二描述子集合中选择与所述第三特征点对应的第二描述子;当所述第一描述子和所述第二描述子匹配时,确定所述第二特征点和所述第三特征点匹配;统计所述第二图像和所述第四图像匹配的特征点的第一数量;当所述第一数量超过预设数量时,确定所述第二图像和所述第四图像匹配。
在另一种可能的实现方式中,所述第二图像所占的第二视场角与所述第一图像所占的第一视场角的比值不小于预设数值;所述第二图像的边缘分辨率不低于所述第二图像的中心分辨率。
在另一种可能的实现方式中,所述第一获取模块,还用于获取所述第一鱼眼相机拍摄的多个第六图像;将所述多个第六图像,组成所述第一图像。
根据本公开实施例的第三方面,提供了一种虚拟显示系统,该虚拟显示系统包括:显示装置和多个第一虚拟视点相机;
该多个第一虚拟视点相机,用于根据该第一鱼眼相机的第一投影参数,确定该多个第一虚拟视点相机的第二投影参数;根据该第二投影参数确定第一鱼眼图像对应的多个第一虚拟视点图像;将该多个第一虚拟视点图像发送给该显示装置;
该显示装置,用于接收该多个第一虚拟视点相机发送的多个第一虚拟视点图像;将该多个第一虚拟视点图像拼接为第二图像,显示该第二图像。
根据本公开实施例的第四方面,提供了一种终端,所述终端包括:
至少一个处理器;和
至少一个存储器;
所述至少一个存储器存储有一个或多个程序,所述一个或多个程序被配置成由所述至少一个处理器执行,所述一个或多个程序包含用于进行本公开实施例中第一方面所述鱼眼图像畸变矫正方法的指令。
根据本公开实施例的第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质应用于终端,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由处理器加载并执行以实现本公开实施例中第一方面所述鱼眼图像畸变矫正方法中的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:
在本公开实施例中,通过第一投影映射关系,将第一图像中的像素点投影到多个第一虚拟视点相机的成像平面上,得到多个第一虚拟视点图像,根据多个第一虚拟视点图像得到第一图像校正后的第二图像,由于第一投影映射关系为第一鱼眼相机的像素位置与每个第一虚拟视点相机的像素点之间的对应关系,因此,得到的多个第一虚拟视点图像为第一图像的无畸变图像,因此,通过该多个第一虚拟视点相机可以得到该第一图像矫正后的第二图像。并且,由于该多个第一虚拟视点相机的视域范围覆盖该第一鱼眼相机的视域范围,因此,通过该多个第一虚拟视点相机得到第一图像的矫正图像时,无需截取第一图像中的部分图像,不会减小可利用视域,得到的矫正后的第二图像中,保留的信息更加完整。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并于说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种鱼眼图像畸变矫正方法流程图;
图2是根据一示例性实施例示出的一种鱼眼图像畸变矫正方法流程图;
图3是根据一示例性实施例示出的一种虚拟视点相机的位置示意图;
图4是根据一示例性实施例示出的一种第一图像的示意图;
图5是根据一示例性实施例示出的一种第二图像的示意图;
图6是根据一示例性实施例示出的一种鱼眼图像畸变矫正方法流程图;
图7是根据一示例性实施例示出的一种鱼眼图像畸变矫正方法流程图;
图8是根据一示例性实施例示出的一种鱼眼图像畸变矫正装置框图;
图9是本公开实施例提供的一种终端的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种鱼眼图像畸变矫正方法流程图,如图1所示,该鱼眼图像畸变矫正方法包括如下步骤。
步骤101:当对图像进行矫正时,获取第一鱼眼相机拍摄的第一图像;
步骤102:根据第一投影映射关系,将该第一图像中的像素点投影到多个第一虚拟视点相机的成像平面上,得到多个第一虚拟视点图像,该第一投影映射关系用于存储该第一鱼眼相机的像素位置与每个第一虚拟视点相机的像素位置之间的映射关系,该多个第一虚拟视点相机组成的视域范围覆盖该第一鱼眼相机的视域范围。
步骤103:将该多个第一虚拟视点图像拼接成该第一图像矫正后的第二图像。
在一种可能的实现方式中,该根据第一投影映射关系,将该第一图像中的像素点投影到多个第一虚拟视点相机的成像平面上,得到多个第一虚拟视点图像,包括:
对于每个第一虚拟视点相机的成像平面中的第一像素点位置,根据该第一像素点位置和该第一投影映射关系,确定与该第一像素点位置对应的第二像素点位置;
从该第一图像中获取该第二像素点位置对应的像素值,将该像素值赋予该第一像素点位置,得到第一虚拟视点图像。
在另一种可能的实现方式中,该方法还包括:
获取该第一鱼眼相机拍摄的第三图像,以及获取该多个第一虚拟视点相机拍摄的多个第二虚拟视点图像;
根据该第一鱼眼相机的第一投影参数和畸变参数,将该第三图像映射到该第一鱼眼相机的三维坐标系中,得到该第三图像中的每个第一像素位置与该三维坐标系中的每个第二像素位置之间的第一映射关系;
根据该每个第一虚拟视点相机的第二投影参数,将该多个第二虚拟视点图像分别映射到该第一鱼眼相机的三维坐标系中,得到该每个第二像素位置与每个第二虚拟视点图像中的每个第三像素位置之间的第二映射关系;
根据该第一映射关系和该第二映射关系,建立该第一投影映射关系。
在另一种可能的实现方式中,该根据该第一鱼眼相机的第一投影参数和畸变参数,将该第三图像映射到该第一鱼眼相机的三维坐标系中,得到该第三图像中的每个第一像素位置与该三维坐标系中的每个第二像素位置之间的第一映射关系,包括:
对于第三图像中的任一像素点,确定该像素点的第四像素位置;
根据该畸变参数,对该第四像素位置进行去畸变处理,得到第五像素位置;
根据该第一投影参数,对该第五像素位置进行平移,得到该第四像素位置在该三维坐标系中对应的第六像素位置;
将该第四像素位置处的像素点投影到该第六像素位置处,得到该第一映射关系。
在另一种可能的实现方式中,该根据该每个第一虚拟视点相机的第二投影参数,将该多个第二虚拟视点图像分别映射到该第一鱼眼相机的三维坐标系中,得到该每个第二像素位置与每个第二虚拟视点图像中的每个第三像素位置之间的第二映射关系,包括:
确定多个第一虚拟视点相机的旋转矩阵的逆矩阵,得到多个第一逆矩阵,以及根据该第二投影参数,确定该多个第二第一虚拟视点相机的投影模型矩阵的逆矩阵,得到多个第二逆矩阵;
对于任一第二虚拟视点图像中的任一像素点,确定该像素点的第七像素位置;
将该第七像素位置乘以该第二虚拟视点图像对应的第一虚拟视点相机的第一逆矩阵和第二逆矩阵,得到该第七像素位置在该三维坐标系中对应的第八像素位置;
将该第七像素位置处的像素点投影到该第八像素位置处,得到该第二映射关系。
在另一种可能的实现方式中,该根据该第一映射关系和该第二映射关系,建立该第一投影映射关系,包括:
根据该第一映射关系和该第二映射关系,确定该三维坐标中,同一像素位置对应的第三图像中的第九像素位置和第二虚拟视点图像中的第十像素位置;
建立该第九像素位置与该第十像素位置的映射关系,得到该第一投影映射关系。
在另一种可能的实现方式中,对图像进行矫正之前,该方法还包括:
获取该多个第一虚拟视点相机配置参数;
根据该多个第一虚拟视点相机的配置参数,设置该多个第一虚拟视点相机,该多个第一虚拟视点相机在横向方向上组成的视域范围覆盖该第一鱼眼相机在横向方向上的视域范围,且该多个第一虚拟视点相机纵向方向上组成的视域范围覆盖该第一鱼眼相机在纵向方向上的视域范围。
在另一种可能的实现方式中,该方法还包括:
提取该第二图像中的第一特征点,得到第一特征点集合;
分别确定该第一特征点集合中的每个第一特征点的第一描述子,得到第一描述子集合;
根据该第一投影映射关系,在该第一图像中确定与该第一特征点集合中的每个第一特征点对应的第二特征点,得到第二特征点集合;
将该第二特征点集合和该第一描述子集合确定为该第二图像的特征点集合和第一描述子集合。
在另一种可能的实现方式中,该提取该第二图像中的第一特征点,得到第一特征点集合,包括:
在该第二图像中确定该第一图像所占的第一视场角覆盖范围内的图像区域;
提取该图像区域中的第一特征点,得到该第一特征点集合。
在另一种可能的实现方式中,该方法还包括:
当对该第一图像和第四图像进行匹配时,确定该第四图像中的第三特征点集合以及该第三特征点集合对应的第二描述子集合;
根据该第二特征点集合和该第一描述子集合,以及该第三特征点集合和该第二描述子集合,对该第一图像和该第四图像进行匹配。
在另一种可能的实现方式中,该确定该第四图像中的第三特征点集合以及该第三特征点集合对应的第二描述子集合,包括:
根据第二鱼眼相机的第二映射投影关系,对该第四图像进行矫正,得到校正后的第五图像,该第二投影映射关系用于存储该第二鱼眼相机的像素位置与多个第二虚拟视点相机的像素位置之间的映射关系,该多个第二虚拟视点相机组成的视域范围覆盖该第二鱼眼相机的视域范围;
提取该第五图像中的第四特征点,得到第四特征点集合;
分别确定该第四特征点集合中的每一个特征点的第二描述子,得到第二描述子集合;
根据该第二投影映射关系,在该第四图像中确定与该第四特征点集合中的每一个特征点对应的第三特征点,得到第三特征点集合。
在另一种可能的实现方式中,该根据该第二特征点集合和该第一描述子集合,以及该第三特征点集合和该第二描述子集合,对该第二图像和该第四图像进行匹配,包括:
对于该第二特征点集合中的任一第二特征点,根据该第二特征点在该第二图像中的第十一像素位置,从该第三特征点集合中选择第三特征点,该第三特征点为该第四图像中的第十一像素位置对应的特征点;
从该第一描述子集合中选择与该第二特征点对应的第一描述子,以及从该第二描述子集合中选择与该第三特征点对应的第二描述子;
当该第一描述子和该第二描述子匹配时,确定该第二特征点和该第三特征点匹配;
统计该第二图像和该第四图像匹配的特征点的第一数量;
当该第一数量超过预设数量时,确定该第二图像和该第四图像匹配。
在另一种可能的实现方式中,该第二图像所占的第二视场角与该第一图像所占的第一视场角的比值不小于预设数值;该第二图像的边缘分辨率不低于该第二图像的中心分辨率。
在另一种可能的实现方式中,该获取第一鱼眼相机拍摄的第一图像,包括:
获取该第一鱼眼相机拍摄的多个第六图像;
将该多个第六图像,组成该第一图像。
在本公开实施例中,通过第一投影映射关系,将第一图像中的像素点投影到多个第一虚拟视点相机的成像平面上,得到多个第一虚拟视点图像,根据多个第一虚拟视点图像得到第一图像校正后的第二图像,由于第一投影映射关系为第一鱼眼相机的像素位置与每个第一虚拟视点相机的像素点之间的对应关系,因此,得到的多个第一虚拟视点图像为第一图像的无畸变图像,因此,通过该多个第一虚拟视点相机可以得到该第一图像矫正后的第二图像。并且,由于该多个第一虚拟视点相机的视域范围覆盖该第一鱼眼相机的视域范围,因此,通过该多个第一虚拟视点相机得到第一图像的矫正图像时,无需截取第一图像中的部分图像,不会减小可利用视域,得到的矫正后的第二图像中,保留的信息更加完整。
图2是根据一示例性实施例示出的一种鱼眼图像畸变矫正方法的流程图,如图2所示,该鱼眼图像畸变矫正方法包括如下步骤。
步骤201:当对图像进行矫正时,终端获取第一鱼眼相机拍摄的第一图像。
其中,第一鱼眼相机为安装有鱼眼镜头的相机,该第一鱼眼相机拍摄的画面为圆形的鱼眼图像。该终端可以为任一具有图像处理功能的终端,例如,该终端可以为具有图像处理功能的计算机、手机、电脑等,还可以为具有图像处理功能的鱼眼相机等。相应的,终端获取该第一图像的方式可以根据终端的不同进行调整,以下给出了以下两种实现方式。
第一种可能的实现方式,该终端为具有图像处理功能的鱼眼相机,则该终端包括第一鱼眼相机。当该终端还包括第一鱼眼相机时,该获取第一图像的过程可以为:该第一鱼眼相机拍摄当前场景,获取该第一鱼眼相机拍摄的第一图像。该获取第一图像的过程还可以为:第一鱼眼相机将拍摄到的第一图像存储在本地,第一鱼眼相机直接调用本地存储的第一图像。
第二种可能的实现方式中,当终端不包括第一鱼眼相机时,该终端获取该第一鱼眼图像的过程可以为:该第一鱼眼相机将拍摄到的第一图像存储在本地,终端当对该第一图像进行处理时,第一鱼眼相机将该第一图像传输给终端。第一鱼眼相机可以通过数据接口将该第一图像传输给终端,终端通过该数据接口获取该第一图像;第一鱼眼相机还可以将该第一图像发送给服务器,由服务器将该第一图像转发给终端,终端接收服务器发送的第一图像。
需要说明的一点是,该第一图像可以为第一鱼眼相机拍摄的一幅鱼眼图像。该第一图像还可以为第一鱼眼相机拍摄的多幅图像组成的第一鱼眼图像,相应的,当该第一鱼眼图像为第一鱼眼相机拍摄的多幅图像组成的第一鱼眼图像时,本步骤可以为:终端获取该第一鱼眼相机拍摄的多个第六图像;终端将该多个第六图像,组成该第一图像。例如,该第一图像可以为N幅第六图像组成的图像,其中,N为大于2的整数,N可以为2、3、5或等,在本公开实施例中,对N的值不作具体限定。
在本公开实施例中,是通过多个虚拟视点相机生成第一图像矫正后的第二图像,因此,在处理第一图像之前,终端还需要生成一组虚拟视点相机,生成虚拟视点相机的步骤可以为:
(1)终端获取多个第一虚拟视点相机配置参数。
在本步骤中,终端可以先获取多个第一虚拟视点相机的配置参数,该终端获取该多个第一虚拟视点相机的配置参数的过程可以为:在一种可能的实现方式中,用户根据需要向终端中输入第一鱼眼相机的配置参数,终端接收该第一鱼眼相机的配置参数。当终端通过服务器获取第一虚拟视点相机的第二投影参数时,终端向服务器发送第一获取请求,该第一获取请求包括终端的终端标识、第一鱼眼相机的第一投影参数和第一虚拟视点相机的数量。服务器接收该第一获取请求,根据该第一获取请求向该终端发送第二投影参数。在另一种可能的实现方式中,终端根据第一鱼眼相机的配置参数确定多个虚拟视点相机的配置参数。在另一种可能的实现方式中,在另一种可能的实现方式中,终端接收用户输入多个第一虚拟视点相机的部分配置参数,根据该部分配置参数和第一鱼眼相机投影参数,确定该多个第一虚拟视点相机的配置参数。
该多个第一虚拟视点相机的配置参数可以包括:多个第一虚拟视点相机的数量、每个第一虚拟视点相机的分辨率、视场角、偏航角和俯仰角等。其中,分辨率为该第一虚拟视点相机的成像面上的X轴方向上和Y轴方向上像素点的个数;视场角为该第一虚拟视点相机在X轴方向和Y轴方向上的视域范围;偏航角表示该第一虚拟视点相机绕Y周旋转的角度,旋转角度的正值与负值表示旋转的方向;俯仰角表示该第一虚拟视点相机绕X轴旋转的角度,旋转角度的正值与负值表示旋转方向。并且,第一虚拟视点相机的数量可以根据需要进行设置并更改,在本公开实施例中,对第一虚拟视点相机的数量不作具体限定,例如,该第一虚拟视点相机的数量可以为4、6或8等。
需要说明的一点是,在本公开实施例中,角度的正值与负值所表示的方向不作具体限定。以偏航角为例进行说明,以正前方的偏航角为0°,该正前方向左的方向为负方向,该正前方向右的方向为正方向,则当该第一虚拟视点相机的视域范围为-60°时,该第一虚拟视点相机的视域范围为-90°到-30°。
例如,该虚拟视点相机的数量为6个,每个虚拟视点相机的配置参数如表1所示。V_1~V_6分别代表6个单独的第一虚拟视点相机,这6个第一虚拟视点相机的分辨率相同,都是240*240;这6个第一虚拟视点相机的视场角也相同,都为60°*60°;该6个第一虚拟视点相机的偏航角分别为-60°、0°、60°、-60°、0°和60°;该6个第一虚拟视点相机的俯仰角分别为30°、30°、30°、-30°、-30°和-30°。
表1
分辨率 | 视场角 | 偏航角 | 俯仰角 | |
V_1 | 240*240 | 60°*60° | -60° | 30° |
V_2 | 240*240 | 60°*60° | 0° | 30° |
V_3 | 240*240 | 60°*60° | 60° | 30° |
V_4 | 240*240 | 60°*60° | -60° | -30° |
V_5 | 240*240 | 60°*60° | 0° | -30° |
V_6 | 240*240 | 60°*60° | 60° | -30° |
以第一虚拟视点相机V_1为例进行说明,该第一虚拟视点相机V_1的分辨率为240*240,视场角为60°*60°,偏航角为-60°,俯仰角为30°。则该第一虚拟视点相机V_1所拍摄画面分辨率为240*240,横向方向上拍摄到的画面的范围为-90°到-30°的画面,纵向方向上拍摄到的画面的范围为60°到0°。
(2)终端根据多个第一虚拟视点相机的配置参数,设置多个第一虚拟视点相机,多个第一虚拟视点相机在横向方向上组成的视域范围覆盖鱼眼相机在横向方向上的视域范围,且多个虚拟视点相机纵向方向上组成的视域范围覆盖鱼眼相机在纵向方向上的视域范围。
终端根据多个第一虚拟视点相机的视场角、偏航角和俯仰角对该多个第一虚拟视点相机进行排序,使得多个第一虚拟视点相机的视场角组成的视域范围可以覆盖该第一鱼眼相机的视场角覆盖的范围。
例如,当该第一鱼眼相机的视场角为180°*120°,即该第一鱼眼相机在X轴方向上可以拍摄到180°以内的场景,在Y轴方向上可以拍摄到120°以内的场景。步骤(1)中的6个第一虚拟视点相机组成的视域范围需要在横向方向上覆盖180°的范围,在纵向方向上覆盖120°的范围。如图3所示,由于上述6个第一虚拟视点相机的视场角相同都为60°*60°,则该6个第一虚拟视角相机在横向方向上有3个第一虚拟视点相机进行拍摄,这3个第一虚拟视点相机的拍摄角度分别为-90°到-30°,-30°到30°,30°到90°。在纵向方向上有2个第一虚拟视点相机进行拍摄,这2个第一虚拟视点相机的拍摄角度分别为-60°到0°,0°到60°。因此,这6个第一虚拟视点相机的相对位置,参见表2。
表2
V_1 | V_2 | V_3 |
V_4 | V_5 | V_6 |
由表2和图3可以看出,这6个第一虚拟视点相机的被分为两行三列的方式排列,其中,第一行第一虚拟视点相机的俯仰角为30°,第二行第一虚拟视点相机的俯仰角为-30°;第一列第一虚拟视点相机的偏航角为-60°,第二列第一虚拟视点图像的偏航角为0°,第三列第一虚拟视点相机的偏航角为60°。
以上述排列方式将该6个第一虚拟视点相机进行排序后,这6个虚拟视点相机的视域范围可以覆盖该第一鱼眼相机的视域范围,且,每个第一虚拟视点相机的视域范围并没有重叠的部分。需要说明的一点是,当该多个虚拟视点相机之间的视域范围之间有重叠时,可以通过将重叠部分重新分割的方式对该多个第一虚拟视点相机的视域范围进行重新组合,得到没有重叠的多个第一虚拟视点相机,该将重叠部分进行分割得到重新组合的多个虚拟视点相机的过程可以为:在一种可能的实现方式中,对于相邻且有视域范围重叠的两个第一虚拟视点相机,将重叠的视域范围分为不重叠的两部分,每个第一虚拟视点相机的视域范围包括该两部分视域范围的一部分;在另一种可能的实现方式中,对于相邻且有视域范围重叠的两个第一虚拟视点相机,将该重叠的视域范围全部分配给相邻的两个第一虚拟视点相机中的一个第一虚拟视点相机。
需要说明的一点是,该多个第一虚拟视点相机中,第一虚拟视点相机的分辨率可以相同也可以不同。但是,该多个第一虚拟视点相机中每个第一虚拟视点相机的分辨率与第一鱼眼相机的中心区域的分辨率相似,即第一虚拟视点相机的分辨率与视场角的比值,近似与第一鱼眼相机中心区域的分辨率与视场角的比值近似相等,以保证第一虚拟视点相机生成的虚拟视点图像不会相对于第一鱼眼相机生成的图像产生拉伸或挤压。
需要说明的另一点是,在本公开实施例中,对终端获取第一图像和设置多个第一虚拟视点相机的顺序不作具体限定。终端可以先获取第一图像,再设置多个第一虚拟视点相机,终端也可以先设置多个第一虚拟视点相机再获取第一图像。并且,终端可以仅设置一次该多个虚拟视点相机,在下一次获取到第一图像时,直接根据本次设置的多个虚拟视点相机进行鱼眼图像畸变矫正。
步骤202:对于每个第一虚拟视点相机的成像平面中的第一像素点位置,终端根据第一像素点位置和第一投影映射关系,确定与第一像素点位置对应的第二像素点位置。
其中,第一像素点位置为第一虚拟相机的成像平面中的第一像素点位置,第二像素点位置,是根据第一投影映射关系确定的第一像素点位置对应的第二像素点位置。
在本步骤之前,终端需要先建立多个第一虚拟视点图像与第一图像之间的映射关系,该过程可以通过分别建立第一图像与三维坐标系的第一映射关系和多个第一虚拟视点图像与三维坐标系的第二映射关系,再通过该第一映射关系和第二映射关系确定该投影映射关系。该过程可以通过以下步骤(A)-(D)实现。
(A)终端获取该第一鱼眼相机拍摄的第三图像,以及获取该多个第一虚拟视点相机拍摄的多个第二虚拟视点图像。
其中,该第一鱼眼相机为拍摄该第一图像的鱼眼相机。终端可以直接调用本地存储的第一鱼眼相机拍摄的第三图像,此时,终端将获取与该第三图像对应多个第二虚拟视点图像。终端也可以通过数据接口获取存储在第一鱼眼相机中的第三图像。终端获取多个第二虚拟视点图像的方式与终端获取第三图像的方式相似,在此不再赘述。
需要说明的一点是,终端可以先获取该第三图像再获取该多个第二虚拟视点图像;终端也可以先获取该多个虚拟视点图像,再获取该第三图像;终端还可以同时获取该第三图像和多个第二虚拟视点图像,在本公开实施例中,对获取第三图像和多个第二虚拟视点图像的顺序不作具体限定。
(B)终端根据第一鱼眼相机的第一投影参数和畸变参数,将第三图像映射到第一鱼眼相机的三维坐标系中,得到第三图像中的每个第一像素位置与三维坐标系中的每个第二像素位置之间的第一映射关系。
终端将第三图像中的像素点反向投影到三维坐标系中,根据三维坐标系中的该像素点的第二像素位置和第三图像中该像素点的第一像素位置,确定第一像素位置与第二像素位置的对应关系,从而确定该第三图像中每一个像素点的像素位置与三维坐标系中每个像素点的像素位置之间的第一映射关系,该过程可以通过以下步骤实现,包括:
(B1)对于第三图像中的任一像素点,终端确定该像素点的第四像素位置。
终端在第三图像中建立坐标系,确定该坐标系下该第三图像中任一像素点的第四像素位置。例如,该第三图像中,任一像素点的第四像素位置可以为(u,v)。
(B2)终端根据畸变参数,对第四像素位置进行去畸变处理,得到第五像素位置。
在本步骤中,将第三图像中的第四像素点进行去畸变处理,该去畸变的过程中根据第一鱼眼相机的投影模型和第一投影参数对第三图像中的像素点进行反向投影,得到去畸变后第五像素点,该过程与第一相机的成像过程为相反过程。该第一鱼眼相机的成像过程中,第一鱼眼相机基于该第一鱼眼相机的第一投影模型,根据该第一鱼眼相机的畸变参数和第一投影参数生成图像。需要说明的一点是,该生成图像的过程中,该第一鱼眼相机的第一投影模型与对该第一鱼眼相机进行标定时所使用的投影模型相同。并且,该第一投影模型可以为应用于鱼眼相机的任一类型的第一投影模型,在本公开实施例中,对该第一鱼眼相机所使用的第一投影模型不作具体限定。例如,该第一投影模型可以为OpenCV(OpenSource Computer Vision Library,开源计算机视觉库)中的通用投影模型ReprojF()。
图像坐标系中的坐标(u,v)是在该第一鱼眼相机的第一投影模型下,终端根据该第一鱼眼相机的第一投影参数和畸变参数确定的,以上述ReprojF()投影模型为例进行说明,该图像中的像素点的坐标的生成过程可以通过以下步骤实现。确定第一鱼眼相机坐标系下像素点集Q中的一个三维物点q,该三维物点q的坐标为q=(x,y,z=1),通过该第一鱼眼相机的第一投影模型映射后,与该三维物点q对应的图像坐标系下的点集P中的二维像素点的坐标为p=(u,v)。根据小孔成像和三角形相似定理可知,若成像过程中未发生畸变,则该三维物点q,在二维像素点中的坐标位置可以通过公式一表示:
公式一:
其中,a和b为中间参量,并且,(a,b)为该第五像素位置,分别表示未发生畸变时,该三维物点q,在二维像素点中的横坐标和纵坐标;x表示三维物点q在相机坐标系下对应的X轴的坐标;y表示三维物点q在相机坐标系下对应的Y轴的坐标;z表示三维物点坐标中成像面与中心点的距离,即深度。
该二维像素点p的极坐标可以通过公式二表示:
公式二:θ=tan-1(r)
其中,r表示二维像素点p在极坐标系下的模长;a和b为中间参量,并且,(a,b)为该第五像素位置;θ表示极坐标系中二维像素点p与极轴之间的角度。
由于第一鱼眼相机在成像过程中的畸变,则根据该第一投影模型、第一投影参数和畸变参数,畸变后该二维像素点p的极坐标中的角度可以通过公式三表示:
公式三:θd=θ·(1+k1θ2+k2θ4+k3θ6+k4θ8)
其中,θd表示发生畸变后二维像素点p的极坐标中与极轴之间的角度;θ表示发生畸变前p的极坐标中与极轴之间的角度;k1、k2、k3、k4分别为畸变参数。
则畸变后,该二维像素点p的坐标可以通过公式四表示:
公式四:
u为考虑畸变后二维像素点p在图像坐标中的横坐标;v为考虑畸变后二维像素点p在图像坐标中的纵坐标;fx和fy为第一鱼眼相机的焦距,cx和cy为发生畸变后像素点的横纵偏移量;θd表示发生畸变后二维像素点p的极坐标中与极轴之间的角度;a和b为中间参量,并且,(a,b)为该第五像素位置,r表示二维像素点p在极坐标系下的模长。
则该第一鱼眼相机标定完成后,通过该第一鱼眼相机的正向投影过程可以通过以下公式五表示:
公式五:P=ReprojF(Q,KF),即
其中,P表示图像坐标系中二维像素点,Q表示三维坐标系中的三维像素点,U,V分别为P点在图像坐标系中的像素位置,X,Y,Z分别为P点在图像坐系中的位置,KF为鱼眼相机的参数,即fx、fy、cx和cy,fx和fy为第一鱼眼相机的焦距,cx和cy为发生畸变后像素点的横纵偏移量。
由此可知,第三图像中第四像素点的位置是发生过畸变之后的位置,因此,在步骤(B2)中,将第三图像中的像素点投影到三维坐标系时,需要先对第三图像中的像素点进行去畸变处理,该过程通过该第一鱼眼图像的第一投影模型和畸变参数,对该第三图像中的像素点进行反向运算,通过公式四和公式三对该过程第二像素点进行反向运算,得到未发生畸变时,根据上述公式二和公式三进行反向预算得到第五像素位置(a,b)。
(B3)终端根据第一投影参数,对该第五像素位置进行平移,得到第四像素位置在三维坐标系中对应的第六像素位置。
得到第五像素位置(a,b)后,终端根通过公式四进行反向预算,根据第一投影参数将第五像素点进行平移,得到平移后的第六像素位置(x,y,z)。
(B4)终端将第四像素位置处的像素点投影到第六像素位置处,得到第一映射关系。
终端根据同一像素点在三维坐标系中第六像素位置(x,y,z)和二维图像坐标系中第四像素位置(u,v)之间的对应关系,确定该第一映射关系,该第一映射关系与该第一鱼眼相机的正向投影关系为相反的对应关系,该对应关系可以通过公式六表示:
公式六:即
其中,Q表示三维物点坐标系中的像素点,KF为鱼眼相机的参数,即fx、fy、cx和cy,fx和fy为第一鱼眼相机的焦距,cx和cy为发生畸变后像素点的横纵偏移量。
终端通过该公式六,将第三图像中的像素点反向投影到三维坐标系中。
(C)终端根据每个虚拟视点相机的第二投影参数,将多个第二虚拟视点图像分别映射到鱼眼相机的三维坐标系中,得到每个第二像素位置与每个第二虚拟视点图像中的每个第三像素位置之间的第二映射关系。
终端将多个第二虚拟视点图像中的像素点反向投影到三维坐标系中,根据三维坐标系中的该像素点的第二像素位置和每个第二虚拟视点图像中的每个第三像素位置,确定第三像素点与第二像素点的对应关系,从而确定该多个第二虚拟视点图像中每个像素点的像素位置与三维坐标系中每个像素点的像素位置之间的第二映射关系,该过程可以通过以下步骤(C1)-(C5)实现,包括:
(C1)终端确定多个第一虚拟视点相机的旋转矩阵的逆矩阵,得到多个第一逆矩阵;
对于每个第一虚拟视点相机,终端通过该第一虚拟视点相机的第二投影参数确定该第一虚拟视点相机的偏航角和俯仰角,根据欧拉定理与旋转矩阵的对应关系确定该第一虚拟视点相机的旋转矩阵,再通过该旋转矩阵求得该旋转矩阵的逆矩阵。
若该第一虚拟视点相机的偏航角θ和俯仰角根据该第一虚拟视点相机的偏航角和俯仰角以及欧拉定理与该旋转矩阵的对应关系可知:
其中R表示该第一虚拟视点相机的旋转矩阵,RYaw表示该第一虚拟视点相机的偏航角θ的旋转矩阵,RPitc表示该第一虚拟视点相机的俯仰角的旋转矩阵。以上述第一虚拟视点相机中的V_1为例进行说明,该第一虚拟视点相机的偏航角θ=-60°,俯仰角为则带入上述公式可得,该第一虚拟视点相机V_1对应的旋转矩阵为
对该旋转矩阵求逆矩阵得到该第一虚拟视点相机的第一逆矩阵。
(C2)终端根据第二投影参数,确定多个第二虚拟视点相机的投影模型矩阵的逆矩阵,得到多个第二逆矩阵。
终端确定该第一虚拟视点相机的第二投影参数,该第二投影参数包括第一虚拟视点相机的焦距和以及该第一虚拟视点相机成像过程中像素点的平移量和确定该第一虚拟视点相机的投影模型矩阵,如下:
对该投影模型矩阵KV求逆矩阵,得到第二逆矩阵。
需要说明的一点是,在本公开实施例中,对步骤(C1)和步骤(C2)的先后顺序不作具体限定,终端可以先确定第一逆矩阵在确定第二逆矩阵;也可以先确定第二逆矩阵再确定第一逆矩阵,即可以先执行步骤(C1)再执行步骤(C2),也可以先执行步骤(C3)再执行步骤(C2)。
(C3)终端对于任一第二虚拟视点图像中的任一像素点,确定该任一第二虚拟视点图像中的任一像素点的第七像素位置。
(C4)终端将该第七像素位置乘以该第二虚拟视点图像对应的虚拟视点相机的第一逆矩阵和第二逆矩阵,得到第七像素位置在三维坐标系中对应的第八像素位置。
终端根据第二虚拟视点图像的第二投影模型ReprojA(·,KV,R),则其反向第二投影模为ReprojA -1(·,KV,R),根据上述参数确定该第二虚拟视点图像正向投影的过程可以由公式七表示:
公式七:S=ReprojA(Q,KV,R),即
则当S=KV·R·Q时,则
则第八像素位置为同理,的逆向投影关系则可以表示为:Q=R-1·KV -1·S。
其中,其中R表示该第一虚拟视点相机的旋转矩阵,Q表示三维坐标系中的三维像素点,KV为投影模型矩阵,S为第一虚拟视点图像中的像素点,KF为鱼眼相机的参数,即fx、fy、cx和cy,fx和fy为第一鱼眼相机的焦距,cx和cy为发生畸变后像素点的横纵偏移量,U,V分别为P点在图像坐标系中的像素位置,X,Y,Z分别为P点在图像坐系中的位置。
(C5)终端将第七像素位置处的像素点投影到第八像素位置处,得到第二映射关系。
终端根据第七像素位置和第八像素位置确定第二映射关系:Q=R-1·KV -1·S。
需要说明的一点是,终端可以先获取第一映射关系再获取第二映射关系,也可以先获取第二映射关系再获取第一映射关系,终端还可以同时获取该第一映射关系和人第二映射关系。即终端可以先执行步骤(B)再执行步骤(C),终端也可以先执行步骤(C)再执行步骤(B),终端还可以同时执行步骤(B)和步骤(C)。在本公开实施例中,对步骤(B)和步骤(C)的执行顺序不作具体限定。
(D)终端根据第一映射关系和第二映射关系,建立投影映射关系。
终端根据第一映射关系将第三图像中的像素点反投影到三维坐标系中,得到坐标集合,根据第二映射关系将第二虚拟视点图像中的像素点投影到三维坐标系中,得到坐标集合。根据三维坐标系中同一像素点的像素位置相同,对第三图像和第二虚拟视点图像中的像素点建立相等关系,得到投影映射关系。该过程可以通过以下步骤(D1)-(D2)实现,包括:
(D1)终端根据该第一映射关系和该第二映射关系,确定该三维坐标中,同一像素位置对应的第三图像中的第九像素位置和第二虚拟视点图像中的第十像素位置。
根据第一映射关系将第三图像中的像素点投影到三维坐标系中,根据第二映射关系将第二虚拟视点图像中的像素点投影到三维坐标系中,在三维坐标系中确定一像素点,分别确定其在第三图像中的第九像素位置和在第二虚拟视点图像中的第十像素点。
例如,三维坐标系中,像素点的坐标为(X,Y,Z),则根据第一映射关系可以确定,该像素点在第三图像中的表示形式可以为上述公式六:
即
根据第二映射关系可以确定,该像素点在第二虚拟视点图像中的表示形式可以为:
即Q=R-1·KV -1·S
其中,其中R表示该第一虚拟视点相机的旋转矩阵,Q表示三维坐标系中的三维像素点,KV为投影模型矩阵,S为第一虚拟视点图像中的像素点,KF为鱼眼相机的参数,即fx、fy、cx和cy,fx和fy为第一鱼眼相机的焦距,cx和cy为发生畸变后像素点的横纵偏移量,U,V分别为P点在图像坐标系中的像素位置,X,Y,Z分别为P点在图像坐系中的位置。
(D2)终端建立该第九像素位置与该第十像素位置的映射关系,得到该第一投影映射关系。
其中,S为第一虚拟视点图像中的像素点,R表示该第一虚拟视点相机的旋转矩阵,KV为投影模型矩阵,Q表示三维坐标系中的三维像素点,X,Y,Z分别为P点在图像坐系中的位置,为S的像素点位置。
根据Q为三维坐标系中相同的值,可以确定第一投影映射关系为:
其中,R表示该第一虚拟视点相机的旋转矩阵,KV为投影模型矩阵,S为第一虚拟视点图像中的像素点,KF为鱼眼相机的参数,即fx、fy、cx和cy,fx和fy为第一鱼眼相机的焦距,cx和cy为发生畸变后像素点的横纵偏移量,U,V分别为P点在图像坐标系中的像素位置。
即将第一虚拟视点图像中的像素点投影到第一图像中时,像素点之间的对应关系可以通过公式八表示:
公式八:
其中,P为第一图像中的像素点,S为第一虚拟视点图像中的像素点,R表示该第一虚拟视点相机的旋转矩阵,KV为投影模型矩阵,KF为鱼眼相机的参数,即fx、fy、cx和cy,fx和fy为第一鱼眼相机的焦距,cx和cy为发生畸变后像素点的横纵偏移量。
将第一图像中的像素点投影到第一虚拟视点图像中时,像素点之间的对应关系可以通过公式九表示:
公式九:
其中,P为第一图像中的像素点,S为第一虚拟视点图像中的像素点,R表示该第一虚拟视点相机的旋转矩阵,KV为投影模型矩阵,KF为鱼眼相机的参数,即fx、fy、cx和cy,fx和fy为第一鱼眼相机的焦距,cx和cy为发生畸变后像素点的横纵偏移量。
步骤203:终端从第一图像中获取第二像素点位置对应的像素值,将像素值赋予第一像素点位置,得到第一虚拟视点图像。
根据步骤202中第一图像与第一虚拟视点图像中的像素点之间的对应关系,将第一图像中的像素点根据公式九投影到第一虚拟视点图像中,得到该像素点在第一虚拟视点图像中的位置,对于每个第一虚拟视点图像中的每个像素点,根据该像素点的第二像素点位置,将该像素点的值赋予该第一虚拟视点图像中相应位置的像素点,得到第一虚拟视点图像。
步骤204:终端将该多个第一虚拟视点图像拼接成该第一图像矫正后的第二图像。
根据步骤201中多个第一虚拟视点相机的位置,对多个第一虚拟视点相机得到的多个第一虚拟视点图形进行排序,将完成排序的多个第一虚拟视点图像拼接为第二图像。
需要说明的一点是,该多个第一虚拟视点图像拼接为第二图像时,可以将该多个第一虚拟视点图像拼接到一幅图像中,得到一个第二图像,也可以仅根据虚拟视点相机的位置,通过该多个第一虚拟视点相机分别表示第一图像中不同的部分,得到多个第二图像,在本公开实施例中,对此不作具体限定。
其中,该第二图像所占的第二视场角与该第一图像所占的第一视场角的比值不小于预设数值;该第二图像的边缘分辨率不低于该第二图像的中心分辨率。
需要说明的一点是,该预设数值可以根据需要进行设置并更改,在本公开实施例中,对该预设数值的大小不作具体限定。例如该预设数值可以为90%、92%或95%等。例如,如图4和图5所示,当该预设数值为90%,该第二图像由6个虚拟视点图像组成的图像时,可以通过本公开实施例中提供的方法,将图4中第一图像中的大于90%的图像区域,转化为如图5所示的第二图像,该第二图像中的清晰度相同,边缘分辨率不低于该第二图像的中心分辨率。
在本公开实施例中,通过第一投影映射关系,将第一图像中的像素点投影到多个第一虚拟视点相机的成像平面上,得到多个第一虚拟视点图像,根据多个第一虚拟视点图像得到第一图像校正后的第二图像,由于第一投影映射关系为第一鱼眼相机的像素位置与每个第一虚拟视点相机的像素点之间的对应关系,因此,得到的多个第一虚拟视点图像为第一图像的无畸变图像,因此,通过该多个第一虚拟视点相机可以得到该第一图像矫正后的第二图像。并且,由于该多个第一虚拟视点相机的视域范围覆盖该第一鱼眼相机的视域范围,因此,通过该多个第一虚拟视点相机得到第一图像的矫正图像时,无需截取第一图像中的部分图像,不会减小可利用视域,得到的矫正后的第二图像中,保留的信息更加完整。
通过上述步骤201-204得到由多个第一虚拟视点图像拼接的第二图像后,可以根据该第二图像中无畸变的第一描述子和第一图像中的第二特征点与其他图像进行匹配,在本公开实施例中,以通过第二图像对第一图像中的特征点进行匹配为例进行说明。图6是根据一示例性实施例示出的一种图像匹配方法的流程图,如图6所示,该图像方法包括如下步骤。
在步骤601中,终端提取第二图像中的第一特征点,得到第一特征点集合。
其中,第一特征点为第二图像的特征点,终端可以通过任一种特征提取方法提取第二图像中的第一特征点,在本公开实施例中,对终端提取第二图像的特征点的方法不作具体限定,例如,终端可以通过SIFT(Scale-invariant feature transform,尺度不变特征转换)算法或FAST(features from accelerated segment test,角点检测方法)算法等特征提取算法提取每个第一虚拟视点图像中的第一特征点。
需要说明的一点是,该终端在提取第一特征点时,可以分别提取组成第二图像的第一虚拟视点图像中的第一特征点,也可以直接提取第二图像中的特征点,在本公开实施例中,对此不作具体限定。
需要说明的另一点是,终端在提取第二图像的第一特征点时,可以在第二图像的整个图像区域中提取第一特征点。终端也可以在第一图像的第一视场角范围覆盖的图像区域中提取第一特征点,相应的,当终端在第一图像的第一视场角范围覆盖的图像区域中提取第一特征点时,本步骤可以为:终端在该第二图像中确定该第一图像所占的第一视场角覆盖范围内的图像区域;终端提取该图像区域中的第一特征点,得到该第一特征点集合。
在步骤602中,终端分别确定该第一特征点集合中的每个第一特征点的第一描述子,得到第一描述子集合。
终端根据获取到的第一特征点集合确定该第一特征点集合的第一描述子集合,该过程中,终端可以自己根据第一特征点集合确定该第一特征点集合的中第一特征点的第一描述子,得到第一描述子集合。终端也可以将该第一特征点集合发送给其他终端或服务器,由其他终端或服务器制作该第一特征点集合中第一特征点的第一描述子,得到第一描述子集合后,将该第一描述子集合返回给终端,终端接收其他终端或服务器发送的该第一特征点集合的第一描述子集合。
在步骤603中,终端根据该第一投影映射关系,在该第一图像中确定与该第一特征点集合中的每个第一特征点对应的第二特征点,得到第二特征点集合。
终端提取第二图像的第一特征点后,确定该第一特征点的像素位置,根据上述公式八,确定该第一特征点对应的第一图像中的第二特征点,得到第二特征点集合。
在步骤604中,终端将该第二特征点集合和该第一描述子集合确定为该第一图像的特征点集合和第一描述子集合。
根据第一特征点与第二特征点的对应关系以及第二特征点和第一描述子的对应关系,确定第二特征点与第一描述子的对应关系,无需再生成第二特征点的描述子,直接根据第一描述子对第二特征点进行描述,得到可以描述第二特征点集合的第一描述子集合。
需要说明的一点是,上述步骤601-604在进行图像匹配的过程中,只需要执行一次,当对第一图像进行匹配时,可以根据获取到的第一图像的第二特征点集合和第一描述子集合直接进行特征匹配,该特征匹配的过程可以通过以下步骤605-606实现,包括:
在步骤605中,当对该第一图像和第四图像进行匹配时,确定该第四图像中的第三特征点集合以及该第三特征点集合对应的第二描述子集合。
其中,该第四图像可以为无畸变图像,也可以为畸变图像,当该第四图像为无畸变图像时,可以直接提取该第四图像的第三特征点,确定第三特征点集合,根据该第三特征点集合中的第三特征点制作该第三特征点的第二描述子,得到该第三特征点的第二描述子集合。需要说明的一点是,该提取第三特征点和制作第二描述子的方法与提取第一特征点制作第一描述子集合的方法相似,在此不再赘述。
当该第四图像也为畸变图像时,可以先确定该第四图像的矫正后的第五图像,再提取该第五图像中的第四特征点集合,确定第四特征点集合中的第四特征点的第二描述子集合,再根据该第二描述子集合与第一描述子集合进行匹配,相应的,本步骤可以替换为以下步骤(1)-(4)该过程可以通过以下步骤实现,包括:
(1)终端根据第二鱼眼相机的第二映射投影关系,对该第四图像进行矫正,得到校正后的第五图像,该第二投影映射关系用于存储该第二鱼眼相机的像素位置与多个第二虚拟视点相机的像素位置之间的映射关系,该多个第二虚拟视点相机组成的视域范围覆盖该第二鱼眼相机的视域范围。
本步骤与上述实施例中获取第二图像的过程相似,即本步骤与步骤201-204相似,在此不再赘述。
(2)终端提取该第五图像中的第四特征点,得到第四特征点集合。
本步骤与步骤601相似,在此不再赘述。
(3)终端分别确定该第四特征点集合中的每一个特征点的第二描述子,得到第二描述子集合。
本步骤与步骤602相似,在此不再赘述。
(4)终端根据该第二投影映射关系,在该第四图像中确定与该第四特征点集合中的每一个特征点对应的第三特征点,得到第三特征点集合。
本步骤与步骤603相似,在此不再赘述。
在步骤606中:根据该第二特征点集合和该第一描述子集合,以及该第三特征点集合和该第二描述子集合,对该第一图像和该第四图像进行匹配。
对图像进行匹配时,想确定两个图像中对应位置的像素点,分别根据这两个像素点的描述子对这两个像素点进行匹配,该过程可以通过以下步骤(1)-(5)实现,包括:
(1)对于该第二特征点集合中的任一第二特征点,终端根据该第二特征点在该第二图像中的第十一像素位置,从该第三特征点集合中选择第三特征点,该第三特征点为该第四图像中的第十一像素位置对应的特征点。
(2)终端从该第一描述子集合中选择与该第二特征点对应的第一描述子,以及从该第二描述子集合中选择与该第三特征点对应的第二描述子。
需要说明的一点是,终端可以先获取第一描述子再获取第二描述子也可以先获取第二描述子再获取第一描述子,和可以同时获取第一描述子和第二描述子,在本公开实施例中,对确定第一描述子和第二描述子的顺序不作具体限定。
(3)当该第一描述子和该第二描述子匹配时,终端确定该第二特征点和该第三特征点匹配。
在本公开实施例中,描述子可以为特征点的向量,当第一描述子的向量方向和向量值与第二描述子的向量方向和向量值相同时,确定该第一描述子和第二描述子匹配,进而确定该第一描述子对应的第二特征点和第二描述子对应的第三特征点匹配。
(4)终端统计该第二图像和该第四图像匹配的特征点的第一数量。
对于第二特征点集合中的每个第二特征点,确定该特征点是否有匹配的第三特征点,统计该第二特征点集合中第二特征点与第三特征点集合中第三特征点匹配的特征点的第一数量。
(5)当该第一数量超过预设数量时,终端确定该第二图像和该第四图像匹配。
该预设数量可以根据需要进行设置并更改,在本公开实施例中,对该预设数量的值不作具体限定,例如,该预设数量可以为500或600等。
在本公开实施例中,通过第一投影映射关系,将第一图像中的像素点投影到多个第一虚拟视点相机的成像平面上,得到多个第一虚拟视点图像,根据多个第一虚拟视点图像得到第一图像校正后的第二图像,由于第一投影映射关系为第一鱼眼相机的像素位置与每个第一虚拟视点相机的像素点之间的对应关系,因此,得到的多个第一虚拟视点图像为第一图像的无畸变图像,因此,通过该多个第一虚拟视点相机可以得到该第一图像矫正后的第二图像。并且,由于该多个第一虚拟视点相机的视域范围覆盖该第一鱼眼相机的视域范围,因此,通过该多个第一虚拟视点相机得到第一图像的矫正图像时,无需截取第一图像中的部分图像,不会减小可利用视域,得到的矫正后的第二图像中,保留的信息更加完整。
并且,在图像匹配的过程中,通过第二图像中的第一描述子对第一图像中的特征点进行匹配,由于第二图像中的第一描述子为无畸变的第一特征点的描述子,因此,对图像进行匹配时,不受畸变的影响,提高了图像匹配的准确率。
本公开实施例提供一种虚拟显示系统,该虚拟显示系统包括:显示装置和多个第一虚拟视点相机;其中,该多个第一虚拟视点相机,用于根据该第一鱼眼相机的第一投影参数,确定该多个第一虚拟视点相机的第二投影参数;根据该第二投影参数确定第一鱼眼图像对应的多个第一虚拟视点图像;将该多个第一虚拟视点图像发送给该显示装置;该显示装置,用于接收该多个第一虚拟视点相机发送的多个第一虚拟视点图像;将该多个第一虚拟视点图像拼接为第二图像,显示该第二图像。
在本公开实施例中,如图7所示,图7是根据一示例性实施例示出的一种虚拟显示系统进行鱼眼图像畸变矫正的方法流程图,如图7所示,该鱼眼图像畸变矫正方法包括如下步骤:
在步骤701中,多个第一虚拟视点相机根据第一鱼眼相机的第一投影参数,确定该多个第一虚拟视点相机的第二投影参数。
本步骤与步骤201相似,在此不再赘述。
在步骤702中,多个第一虚拟视点相机根据该第二投影参数确定第一鱼眼图像对应的多个第一虚拟视点图像。
本步骤与步骤203相似,在此不再赘述。
在步骤703中,多个第一虚拟视点相机将该多个第一虚拟视点图像发送给该显示装置。
该多个第一虚拟视点相机与该显示装置通过网络或数据接口连接,相应的,在本步骤中,多个第一虚拟视点相机可以通过网络或数据接口将多个第二虚拟视点相机发送给该显示装置。
在步骤704中,显示装置接收该多个第一虚拟视点相机发送的多个第一虚拟视点图像。
在本步骤中,显示装置可以通过网络或数据接口接收该多个第一虚拟视点相机发送的多个第一虚拟视点图像。
在步骤705中,显示装置将该多个第一虚拟视点图像拼接为第二图像,显示该第二图像。
本步骤与步骤204相似,在此不再赘述。
在本公开实施例中,通过第一投影映射关系,将第一图像中的像素点投影到多个第一虚拟视点相机的成像平面上,得到多个第一虚拟视点图像,根据多个第一虚拟视点图像得到第一图像校正后的第二图像,由于第一投影映射关系为第一鱼眼相机的像素位置与每个第一虚拟视点相机的像素点之间的对应关系,因此,得到的多个第一虚拟视点图像为第一图像的无畸变图像,因此,通过该多个第一虚拟视点相机可以得到该第一图像矫正后的第二图像。并且,由于该多个第一虚拟视点相机的视域范围覆盖该第一鱼眼相机的视域范围,因此,通过该多个第一虚拟视点相机得到第一图像的矫正图像时,无需截取第一图像中的部分图像,不会减小可利用视域,得到的矫正后的第二图像中,保留的信息更加完整。
图8是根据一示例性实施例示出的一种鱼眼图像畸变矫正装置的框图。该装置用于执行上述鱼眼图像畸变矫正方法时执行的步骤,参见图8,装置包括:
第一获取模块801,用于当对图像进行矫正时,获取第一鱼眼相机拍摄的第一图像;
投影模块802,用于根据第一投影映射关系,将该第一图像中的像素点投影到多个第一虚拟视点相机的成像平面上,得到多个第一虚拟视点图像,该第一投影映射关系用于存储该第一鱼眼相机的像素位置与每个第一虚拟视点相机的像素位置之间的映射关系,该多个第一虚拟视点相机组成的视域范围覆盖该第一鱼眼相机的视域范围;
拼接模块803,用于将该多个第一虚拟视点图像拼接成该第一图像矫正后的第二图像。
在一种可能的实现方式中,该投影模块802,还用于对于每个第一虚拟视点相机的成像平面中的第一像素点位置,根据该第一像素点位置和该第一投影映射关系,确定与该第一像素点位置对应的第二像素点位置;从该第一图像中获取该第二像素点位置对应的像素值,将该像素值赋予该第一像素点位置,得到第一虚拟视点图像。
在另一种可能的实现方式中,该装置还包括:
第二获取模块,用于获取该第一鱼眼相机拍摄的第三图像,以及获取该多个第一虚拟视点相机拍摄的多个第二虚拟视点图像;
第一映射模块,用于根据该第一鱼眼相机的第一投影参数和畸变参数,将该第三图像映射到该第一鱼眼相机的三维坐标系中,得到该第三图像中的每个第一像素位置与该三维坐标系中的每个第二像素位置之间的第一映射关系;
第二映射模块,用于根据该每个第一虚拟视点相机的第二投影参数,将该多个第二虚拟视点图像分别映射到该第一鱼眼相机的三维坐标系中,得到该每个第二像素位置与每个第二虚拟视点图像中的每个第三像素位置之间的第二映射关系;
建立模块,用于根据该第一映射关系和该第二映射关系,建立该第一投影映射关系。
在另一种可能的实现方式中,该第一映射模块,还用于对于第三图像中的任一像素点,确定该像素点的第四像素位置;根据该畸变参数,对该第四像素位置进行去畸变处理,得到第五像素位置;根据该第一投影参数,对该第五像素位置进行平移,得到该第四像素位置在该三维坐标系中对应的第六像素位置;将该第四像素位置处的像素点投影到该第六像素位置处,得到该第一映射关系。
在另一种可能的实现方式中,该第二映射模块,还用于确定多个第一虚拟视点相机的旋转矩阵的逆矩阵,得到多个第一逆矩阵,以及根据该第二投影参数,确定该多个第二第一虚拟视点相机的投影模型矩阵的逆矩阵,得到多个第二逆矩阵;对于任一第二虚拟视点图像中的任一像素点,确定该像素点的第七像素位置;将该第七像素位置乘以该第二虚拟视点图像对应的第一虚拟视点相机的第一逆矩阵和第二逆矩阵,得到该第七像素位置在该三维坐标系中对应的第八像素位置;将该第七像素位置处的像素点投影到该第八像素位置处,得到该第二映射关系。
在另一种可能的实现方式中,该建立模块,还用于根据该第一映射关系和该第二映射关系,确定该三维坐标中,同一像素位置对应的第三图像中的第九像素位置和第二虚拟视点图像中的第十像素位置;建立该第九像素位置与该第十像素位置的映射关系,得到该第一投影映射关系。
在另一种可能的实现方式中,该装置还包括:
第三获取模块,用于获取该多个第一虚拟视点相机配置参数;
设置模块,用于根据该多个第一虚拟视点相机的配置参数,设置该多个第一虚拟视点相机,该多个第一虚拟视点相机在横向方向上组成的视域范围覆盖该第一鱼眼相机在横向方向上的视域范围,且该多个第一虚拟视点相机纵向方向上组成的视域范围覆盖该第一鱼眼相机在纵向方向上的视域范围。
在另一种可能的实现方式中,该装置还包括:
第一提取模块,用于提取该第二图像中的第一特征点,得到第一特征点集合;
第一确定模块,用于分别确定该第一特征点集合中的每个第一特征点的第一描述子,得到第一描述子集合;
第二确定模块,用于根据该第一投影映射关系,在该第一图像中确定与该第一特征点集合中的每个第一特征点对应的第二特征点,得到第二特征点集合;
第三确定模块,用于将该第二特征点集合和该第一描述子集合确定为该第二图像的特征点集合和第一描述子集合。
在另一种可能的实现方式中,该提取模块,还用于在该第二图像中确定该第一图像所占的第一视场角覆盖范围内的图像区域;提取该图像区域中的第一特征点,得到该第一特征点集合。
在另一种可能的实现方式中,该装置还包括:
第四确定模块,用于当对该第一图像和第四图像进行匹配时,确定该第四图像中的第三特征点集合以及该第三特征点集合对应的第二描述子集合;
匹配模块,用于根据该第二特征点集合和该第一描述子集合,以及该第三特征点集合和该第二描述子集合,对该第一图像和该第四图像进行匹配。
在另一种可能的实现方式中,该第四确定模块,还用于根据第二鱼眼相机的第二映射投影关系,对该第四图像进行矫正,得到校正后的第五图像,该第二投影映射关系用于存储该第二鱼眼相机的像素位置与多个第二虚拟视点相机的像素位置之间的映射关系,该多个第二虚拟视点相机组成的视域范围覆盖该第二鱼眼相机的视域范围;提取该第五图像中的第四特征点,得到第四特征点集合;分别确定该第四特征点集合中的每一个特征点的第二描述子,得到第二描述子集合;根据该第二投影映射关系,在该第四图像中确定与该第四特征点集合中的每一个特征点对应的第三特征点,得到第三特征点集合。
在另一种可能的实现方式中,该匹配模块,还用于对于该第二特征点集合中的任一第二特征点,根据该第二特征点在该第二图像中的第十一像素位置,从该第三特征点集合中选择第三特征点,该第三特征点为该第四图像中的第十一像素位置对应的特征点;从该第一描述子集合中选择与该第二特征点对应的第一描述子,以及从该第二描述子集合中选择与该第三特征点对应的第二描述子;当该第一描述子和该第二描述子匹配时,确定该第二特征点和该第三特征点匹配;统计该第二图像和该第四图像匹配的特征点的第一数量;当该第一数量超过预设数量时,确定该第二图像和该第四图像匹配。
在另一种可能的实现方式中,该第二图像所占的第二视场角与该第一图像所占的第一视场角的比值不小于预设数值;该第二图像的边缘分辨率不低于该第二图像的中心分辨率。
在另一种可能的实现方式中,该第一获取模块,还用于获取该第一鱼眼相机拍摄的多个第六图像;将该多个第六图像,组成该第一图像。
在本公开实施例中,通过第一投影映射关系,将第一图像中的像素点投影到多个第一虚拟视点相机的成像平面上,得到多个第一虚拟视点图像,根据多个第一虚拟视点图像得到第一图像校正后的第二图像,由于第一投影映射关系为第一鱼眼相机的像素位置与每个第一虚拟视点相机的像素点之间的对应关系,因此,得到的多个第一虚拟视点图像为第一图像的无畸变图像,因此,通过该多个第一虚拟视点相机可以得到该第一图像矫正后的第二图像。并且,由于该多个第一虚拟视点相机的视域范围覆盖该第一鱼眼相机的视域范围,因此,通过该多个第一虚拟视点相机得到第一图像的矫正图像时,无需截取第一图像中的部分图像,不会减小可利用视域,得到的矫正后的第二图像中,保留的信息更加完整。
需要说明的是:上述实施例提供的鱼眼图像畸变矫正装置在鱼眼图像畸变矫正时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的鱼眼图像畸变矫正装置与鱼眼图像畸变矫正方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图9示出了本公开一个示例性实施例提供的终端900的结构框图。该终端900可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio LayerIV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端900包括有:处理器901和存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器901所执行以实现本申请中方法实施例提供的鱼眼图像畸变矫正方法。
在一些实施例中,终端900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、显示屏905、摄像头906、音频电路907、定位组件908和电源909中的至少一种。
外围设备接口903可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏905用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置终端900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在终端900的不同表面或呈折叠设计;在再一些实施例中,显示屏905可以是柔性显示屏,设置在终端900的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
定位组件908用于定位终端900的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件908可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源909用于为终端900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。当电源909包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端900还包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、指纹传感器914、光学传感器915以及接近传感器916。
加速度传感器911可以检测以终端900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器911可以用于检测重力加速度在三个坐标轴上的分量。处理器901可以根据加速度传感器911采集的重力加速度信号,控制显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器911还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器912可以检测终端900的机体方向及转动角度,陀螺仪传感器912可以与加速度传感器911协同采集用户对终端900的3D动作。处理器901根据陀螺仪传感器912采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器913可以设置在终端900的侧边框和/或显示屏905的下层。当压力传感器913设置在终端900的侧边框时,可以检测用户对终端900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在显示屏905的下层时,由处理器901根据用户对显示屏905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器914用于采集用户的指纹,由处理器901根据指纹传感器914采集到的指纹识别用户的身份,或者,由指纹传感器914根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器901授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器914可以被设置终端900的正面、背面或侧面。当终端900上设置有物理按键或厂商Logo时,指纹传感器914可以与物理按键或厂商Logo集成在一起。
光学传感器915用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器915采集的环境光强度,控制显示屏905的显示亮度。具体地,当环境光强度较高时,调高显示屏905的显示亮度;当环境光强度较低时,调低显示屏905的显示亮度。在另一个实施例中,处理器901还可以根据光学传感器915采集的环境光强度,动态调整摄像头组件906的拍摄参数。
接近传感器916,也称距离传感器,通常设置在终端900的前面板。接近传感器916用于采集用户与终端900的正面之间的距离。在一个实施例中,当接近传感器916检测到用户与终端900的正面之间的距离逐渐变小时,由处理器901控制显示屏905从亮屏状态切换为息屏状态;当接近传感器916检测到用户与终端900的正面之间的距离逐渐变大时,由处理器901控制显示屏905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图9中示出的结构并不构成对终端900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质应用于终端,该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该指令、该程序、该代码集或该指令集由处理器加载并执行以实现上述实施例鱼眼图像畸变矫正方法中终端所执行的操作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中执行了详细描述,此处将不做详细阐述说明。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (17)
1.一种鱼眼图像畸变矫正方法,其特征在于,所述方法包括:
当对图像进行矫正时,获取第一鱼眼相机拍摄的第一图像;
根据第一投影映射关系,将所述第一图像中的像素点投影到多个第一虚拟视点相机的成像平面上,得到多个第一虚拟视点图像,所述第一投影映射关系用于存储所述第一鱼眼相机的像素位置与每个第一虚拟视点相机的像素位置之间的映射关系,所述多个第一虚拟视点相机组成的视域范围覆盖所述第一鱼眼相机的视域范围;
将所述多个第一虚拟视点图像拼接成所述第一图像矫正后的第二图像;
其中,确定所述第一投影映射关系的过程,包括:
获取所述第一鱼眼相机拍摄的第三图像,以及获取所述多个第一虚拟视点相机拍摄的多个第二虚拟视点图像;
根据所述第一鱼眼相机的第一投影参数和畸变参数,将所述第三图像映射到所述第一鱼眼相机的三维坐标系中,得到所述第三图像中的每个第一像素位置与所述三维坐标系中的每个第二像素位置之间的第一映射关系;
确定所述多个第一虚拟视点相机的旋转矩阵的逆矩阵,得到多个第一逆矩阵,以及根据第二投影参数,确定所述多个第一虚拟视点相机的投影模型矩阵的逆矩阵,得到多个第二逆矩阵;
对于任一第二虚拟视点图像中的任一像素点,确定所述任一第二虚拟视点图像中的任一像素点的第七像素位置;
将所述第七像素位置乘以所述第二虚拟视点图像对应的第一虚拟视点相机的第一逆矩阵和第二逆矩阵,得到所述第七像素位置在所述三维坐标系中对应的第八像素位置;
将所述第七像素位置处的像素点投影到所述第八像素位置处,得到所述每个第二像素位置与每个第二虚拟视点图像中的每个第三像素位置之间的第二映射关系;
根据所述第一映射关系和所述第二映射关系,建立所述第一投影映射关系。
2.根据权利要求1所述的方法,其特征在于,所述根据第一投影映射关系,将所述第一图像中的像素点投影到多个第一虚拟视点相机的成像平面上,得到多个第一虚拟视点图像,包括:
对于每个第一虚拟视点相机的成像平面中的第一像素点位置,根据所述第一像素点位置和所述第一投影映射关系,确定与所述第一像素点位置对应的第二像素点位置;
从所述第一图像中获取所述第二像素点位置对应的像素值,将所述像素值赋予所述第一像素点位置,得到第一虚拟视点图像。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一鱼眼相机的第一投影参数和畸变参数,将所述第三图像映射到所述第一鱼眼相机的三维坐标系中,得到所述第三图像中的每个第一像素位置与所述三维坐标系中的每个第二像素位置之间的第一映射关系,包括:
对于所述第三图像中的任一像素点,确定所述像素点的第四像素位置;
根据所述畸变参数,对所述第四像素位置进行去畸变处理,得到第五像素位置;
根据所述第一投影参数,对所述第五像素位置进行平移,得到所述第四像素位置在所述三维坐标系中对应的第六像素位置;
将所述第四像素位置处的像素点投影到所述第六像素位置处,得到所述第一映射关系。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一映射关系和所述第二映射关系,建立所述第一投影映射关系,包括:
根据所述第一映射关系和所述第二映射关系,确定所述三维坐标中,同一像素位置对应的第三图像中的第九像素位置和第二虚拟视点图像中的第十像素位置;
建立所述第九像素位置与所述第十像素位置的映射关系,得到所述第一投影映射关系。
5.根据权利要求1所述的方法,其特征在于,对图像进行矫正之前,所述方法还包括:
获取所述多个第一虚拟视点相机配置参数;
根据所述多个第一虚拟视点相机的配置参数,设置所述多个第一虚拟视点相机,所述多个第一虚拟视点相机在横向方向上组成的视域范围覆盖所述第一鱼眼相机在横向方向上的视域范围,且所述多个第一虚拟视点相机纵向方向上组成的视域范围覆盖所述第一鱼眼相机在纵向方向上的视域范围。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
提取所述第二图像中的第一特征点,得到第一特征点集合;
分别确定所述第一特征点集合中的每个第一特征点的第一描述子,得到第一描述子集合;
根据所述第一投影映射关系,在所述第一图像中确定与所述第一特征点集合中的每个第一特征点对应的第二特征点,得到第二特征点集合;
将所述第二特征点集合和所述第一描述子集合确定为所述第一图像的特征点集合和第一描述子集合。
7.根据权利要求6所述的方法,其特征在于,所述提取所述第二图像中的第一特征点,得到第一特征点集合,包括:
在所述第二图像中确定所述第一图像所占的第一视场角覆盖范围内的图像区域;
提取所述图像区域中的第一特征点,得到所述第一特征点集合。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当对所述第一图像和第四图像进行匹配时,确定所述第四图像中的第三特征点集合以及所述第三特征点集合对应的第二描述子集合;
根据所述第二特征点集合和所述第一描述子集合,以及所述第三特征点集合和所述第二描述子集合,对所述第一图像和所述第四图像进行匹配。
9.根据权利要求8所述的方法,其特征在于,所述确定所述第四图像中的第三特征点集合以及所述第三特征点集合对应的第二描述子集合,包括:
根据第二鱼眼相机的第二投影映射关系,对所述第四图像进行矫正,得到校正后的第五图像,所述第二投影映射关系用于存储所述第二鱼眼相机的像素位置与多个第二虚拟视点相机的像素位置之间的映射关系,所述多个第二虚拟视点相机组成的视域范围覆盖所述第二鱼眼相机的视域范围;
提取所述第五图像中的第四特征点,得到第四特征点集合;
分别确定所述第四特征点集合中的每一个特征点的第二描述子,得到第二描述子集合;
根据所述第二投影映射关系,在所述第四图像中确定与所述第四特征点集合中的每一个特征点对应的第三特征点,得到第三特征点集合。
10.根据权利要求8所述的方法,其特征在于,所述根据所述第二特征点集合和所述第一描述子集合,以及所述第三特征点集合和所述第二描述子集合,对所述第一图像和所述第四图像进行匹配,包括:
对于所述第二特征点集合中的任一第二特征点,根据所述第二特征点在所述第一图像中的第十一像素位置,从所述第三特征点集合中选择第三特征点,所述第三特征点为所述第四图像中的第十一像素位置对应的特征点;
从所述第一描述子集合中选择与所述第二特征点对应的第一描述子,以及从所述第二描述子集合中选择与所述第三特征点对应的第二描述子;
当所述第一描述子和所述第二描述子匹配时,确定所述第二特征点和所述第三特征点匹配;
统计所述第一图像和所述第四图像匹配的特征点的第一数量;
当所述第一数量超过预设数量时,确定所述第一图像和所述第四图像匹配。
11.根据权利要求1-10任一项所述的方法,其特征在于,所述第二图像所占的第二视场角与所述第一图像所占的第一视场角的比值不小于预设数值;所述第二图像的边缘分辨率不低于所述第二图像的中心分辨率。
12.根据权利要求1所述的方法,其特征在于,所述获取第一鱼眼相机拍摄的第一图像,包括:
获取所述第一鱼眼相机拍摄的多个第六图像;
将所述多个第六图像,组成所述第一图像。
13.一种鱼眼图像畸变矫正装置,其特征在于,所述装置包括:
第一获取模块,用于当对图像进行矫正时,获取第一鱼眼相机拍摄的第一图像;
投影模块,用于根据第一投影映射关系,将所述第一图像中的像素点投影到多个第一虚拟视点相机的成像平面上,得到多个第一虚拟视点图像,所述第一投影映射关系用于存储所述第一鱼眼相机的像素位置与每个第一虚拟视点相机的像素位置之间的映射关系,所述多个第一虚拟视点相机组成的视域范围覆盖所述第一鱼眼相机的视域范围;
拼接模块,用于将所述多个第一虚拟视点图像拼接成所述第一图像矫正后的第二图像;
第二获取模块,用于获取所述第一鱼眼相机拍摄的第三图像,以及获取所述多个第一虚拟视点相机拍摄的多个第二虚拟视点图像;
第一映射模块,用于根据所述第一鱼眼相机的第一投影参数和畸变参数,将所述第三图像映射到所述第一鱼眼相机的三维坐标系中,得到所述第三图像中的每个第一像素位置与所述三维坐标系中的每个第二像素位置之间的第一映射关系;
第二映射模块,用于确定所述多个第一虚拟视点相机的旋转矩阵的逆矩阵,得到多个第一逆矩阵,以及根据第二投影参数,确定所述多个第一虚拟视点相机的投影模型矩阵的逆矩阵,得到多个第二逆矩阵;对于任一第二虚拟视点图像中的任一像素点,确定所述任一第二虚拟视点图像中的任一像素点的第七像素位置;将所述第七像素位置乘以所述第二虚拟视点图像对应的第一虚拟视点相机的第一逆矩阵和第二逆矩阵,得到所述第七像素位置在所述三维坐标系中对应的第八像素位置;将所述第七像素位置处的像素点投影到所述第八像素位置处,得到所述每个第二像素位置与每个第二虚拟视点图像中的每个第三像素位置之间的第二映射关系;
建立模块,用于根据所述第一映射关系和所述第二映射关系,建立所述第一投影映射关系。
14.根据权利要求13所述的装置,其特征在于,
所述投影模块,还用于对于每个第一虚拟视点相机的成像平面中的第一像素点位置,根据所述第一像素点位置和所述第一投影映射关系,确定与所述第一像素点位置对应的第二像素点位置;从所述第一图像中获取所述第二像素点位置对应的像素值,将所述像素值赋予所述第一像素点位置,得到第一虚拟视点图像。
15.根据权利要求13-14任一项所述的装置,其特征在于,所述第二图像所占的第二视场角与所述第一图像所占的第一视场角的比值不小于预设数值;所述第二图像的边缘分辨率不低于所述第二图像的中心分辨率。
16.根据权利要求13所述的装置,其特征在于,
所述第一获取模块,还用于获取所述第一鱼眼相机拍摄的多个第六图像;将所述多个第六图像,组成所述第一图像。
17.一种虚拟显示系统,其特征在于,所述虚拟显示系统包括:显示装置和多个第一虚拟视点相机;
所述多个第一虚拟视点相机,用于根据第一投影映射关系,将第一图像中的像素点投影到多个第一虚拟视点相机的成像平面上,得到多个第一虚拟视点图像;将所述多个第一虚拟视点图像发送给所述显示装置;
所述显示装置,用于接收所述多个第一虚拟视点相机发送的多个第一虚拟视点图像;将所述多个第一虚拟视点图像拼接为第二图像,显示所述第二图像;
所述多个第一虚拟视点相机,还用于获取第一鱼眼相机拍摄的第三图像,以及获取所述多个第一虚拟视点相机拍摄的多个第二虚拟视点图像;根据所述第一鱼眼相机的第一投影参数和畸变参数,将所述第三图像映射到所述第一鱼眼相机的三维坐标系中,得到所述第三图像中的每个第一像素位置与所述三维坐标系中的每个第二像素位置之间的第一映射关系;确定所述多个第一虚拟视点相机的旋转矩阵的逆矩阵,得到多个第一逆矩阵,以及根据第二投影参数,确定所述多个第一虚拟视点相机的投影模型矩阵的逆矩阵,得到多个第二逆矩阵;对于任一第二虚拟视点图像中的任一像素点,确定所述任一第二虚拟视点图像中的任一像素点的第七像素位置;将所述第七像素位置乘以所述第二虚拟视点图像对应的第一虚拟视点相机的第一逆矩阵和第二逆矩阵,得到所述第七像素位置在所述三维坐标系中对应的第八像素位置;将所述第七像素位置处的像素点投影到所述第八像素位置处,得到所述每个第二像素位置与每个第二虚拟视点图像中的每个第三像素位置之间的第二映射关系;根据所述第一映射关系和所述第二映射关系,建立所述第一投影映射关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910533932.5A CN112116530B (zh) | 2019-06-19 | 2019-06-19 | 鱼眼图像畸变矫正方法、装置和虚拟显示系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910533932.5A CN112116530B (zh) | 2019-06-19 | 2019-06-19 | 鱼眼图像畸变矫正方法、装置和虚拟显示系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112116530A CN112116530A (zh) | 2020-12-22 |
CN112116530B true CN112116530B (zh) | 2023-08-18 |
Family
ID=73795121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910533932.5A Active CN112116530B (zh) | 2019-06-19 | 2019-06-19 | 鱼眼图像畸变矫正方法、装置和虚拟显示系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112116530B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113888645A (zh) * | 2021-09-29 | 2022-01-04 | 上海商汤临港智能科技有限公司 | 一种行驶设备、计算机视觉处理方法、装置和电子设备 |
CN117011446B (zh) * | 2023-08-23 | 2024-03-08 | 苏州深捷信息科技有限公司 | 一种动态环境光照的实时渲染方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012053602A (ja) * | 2010-08-31 | 2012-03-15 | Hitachi Information & Communication Engineering Ltd | 画像補正装置、補正画像生成方法、補正テーブル生成装置、補正テーブル生成方法、補正テーブル生成プログラムおよび補正画像生成プログラム |
KR20140090775A (ko) * | 2013-01-10 | 2014-07-18 | 염철희 | 어안 렌즈를 사용하여 얻은 왜곡영상에 대한 보정방법 및 이를 구현하기 위한 영상 디스플레이 시스템 |
CN106464847A (zh) * | 2014-06-20 | 2017-02-22 | 歌乐株式会社 | 影像合成系统和用于其的影像合成装置与影像合成方法 |
CN106651808A (zh) * | 2016-12-29 | 2017-05-10 | 北京爱奇艺科技有限公司 | 一种鱼眼图转换方法及装置 |
CN106846410A (zh) * | 2016-12-20 | 2017-06-13 | 北京鑫洋泉电子科技有限公司 | 基于三维的行车环境成像方法及装置 |
CN107248178A (zh) * | 2017-06-08 | 2017-10-13 | 上海赫千电子科技有限公司 | 一种基于畸变参数的鱼眼相机标定方法 |
CN107341787A (zh) * | 2017-07-26 | 2017-11-10 | 珠海研果科技有限公司 | 单目全景泊车的方法、装置、服务器及汽车 |
CN107545537A (zh) * | 2017-08-21 | 2018-01-05 | 嘀拍信息科技南通有限公司 | 一种从稠密点云生成3d全景图片的方法 |
KR101912396B1 (ko) * | 2017-06-13 | 2018-10-26 | 주식회사 아이닉스 | 가상 카메라 기반의 임의 시점 영상 생성 장치 및 방법 |
KR101915729B1 (ko) * | 2017-06-20 | 2018-11-06 | 주식회사 아이닉스 | 360도 전방향 뷰 영상 생성 장치 및 방법 |
KR101916419B1 (ko) * | 2017-08-17 | 2019-01-30 | 주식회사 아이닉스 | 광각 카메라용 다중 뷰 영상 생성 장치 및 영상 생성 방법 |
CN109769109A (zh) * | 2019-03-05 | 2019-05-17 | 东北大学 | 基于虚拟视点合成绘制三维物体的方法和系统 |
CN109816587A (zh) * | 2017-11-20 | 2019-05-28 | 杭州海康威视数字技术股份有限公司 | 一种鱼眼图像处理方法、装置及电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4629131B2 (ja) * | 2008-09-03 | 2011-02-09 | 大日本印刷株式会社 | 画像変換装置 |
KR101265667B1 (ko) * | 2011-06-21 | 2013-05-22 | ㈜베이다스 | 차량 주변 시각화를 위한 3차원 영상 합성장치 및 그 방법 |
JP2013211672A (ja) * | 2012-03-30 | 2013-10-10 | Namco Bandai Games Inc | 曲面投影立体視装置 |
US10523865B2 (en) * | 2016-01-06 | 2019-12-31 | Texas Instruments Incorporated | Three dimensional rendering for surround view using predetermined viewpoint lookup tables |
WO2017217411A1 (ja) * | 2016-06-17 | 2017-12-21 | 日本電気株式会社 | 画像処理装置、画像処理方法、及び記憶媒体 |
US10614606B2 (en) * | 2016-11-30 | 2020-04-07 | Ricoh Company, Ltd. | Information processing apparatus for creating an animation from a spherical image |
-
2019
- 2019-06-19 CN CN201910533932.5A patent/CN112116530B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012053602A (ja) * | 2010-08-31 | 2012-03-15 | Hitachi Information & Communication Engineering Ltd | 画像補正装置、補正画像生成方法、補正テーブル生成装置、補正テーブル生成方法、補正テーブル生成プログラムおよび補正画像生成プログラム |
KR20140090775A (ko) * | 2013-01-10 | 2014-07-18 | 염철희 | 어안 렌즈를 사용하여 얻은 왜곡영상에 대한 보정방법 및 이를 구현하기 위한 영상 디스플레이 시스템 |
CN106464847A (zh) * | 2014-06-20 | 2017-02-22 | 歌乐株式会社 | 影像合成系统和用于其的影像合成装置与影像合成方法 |
CN106846410A (zh) * | 2016-12-20 | 2017-06-13 | 北京鑫洋泉电子科技有限公司 | 基于三维的行车环境成像方法及装置 |
CN106651808A (zh) * | 2016-12-29 | 2017-05-10 | 北京爱奇艺科技有限公司 | 一种鱼眼图转换方法及装置 |
CN107248178A (zh) * | 2017-06-08 | 2017-10-13 | 上海赫千电子科技有限公司 | 一种基于畸变参数的鱼眼相机标定方法 |
KR101912396B1 (ko) * | 2017-06-13 | 2018-10-26 | 주식회사 아이닉스 | 가상 카메라 기반의 임의 시점 영상 생성 장치 및 방법 |
KR101915729B1 (ko) * | 2017-06-20 | 2018-11-06 | 주식회사 아이닉스 | 360도 전방향 뷰 영상 생성 장치 및 방법 |
CN107341787A (zh) * | 2017-07-26 | 2017-11-10 | 珠海研果科技有限公司 | 单目全景泊车的方法、装置、服务器及汽车 |
KR101916419B1 (ko) * | 2017-08-17 | 2019-01-30 | 주식회사 아이닉스 | 광각 카메라용 다중 뷰 영상 생성 장치 및 영상 생성 방법 |
CN107545537A (zh) * | 2017-08-21 | 2018-01-05 | 嘀拍信息科技南通有限公司 | 一种从稠密点云生成3d全景图片的方法 |
CN109816587A (zh) * | 2017-11-20 | 2019-05-28 | 杭州海康威视数字技术股份有限公司 | 一种鱼眼图像处理方法、装置及电子设备 |
CN109769109A (zh) * | 2019-03-05 | 2019-05-17 | 东北大学 | 基于虚拟视点合成绘制三维物体的方法和系统 |
Non-Patent Citations (1)
Title |
---|
基于鱼眼相机的全景显示系统几何校正方法;肖朝等;激光与光电子学进展;第54卷(第02期);第021501-1 - 021501-7页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112116530A (zh) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110992493B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN108305236B (zh) | 图像增强处理方法及装置 | |
CN109302632B (zh) | 获取直播视频画面的方法、装置、终端及存储介质 | |
CN111028144B (zh) | 视频换脸方法及装置、存储介质 | |
CN109558837B (zh) | 人脸关键点检测方法、装置及存储介质 | |
CN111464749A (zh) | 进行图像合成的方法、装置、设备及存储介质 | |
CN111565309B (zh) | 显示设备及其畸变参数确定方法、装置、系统及存储介质 | |
CN110839174A (zh) | 图像处理的方法、装置、计算机设备以及存储介质 | |
CN112565806B (zh) | 虚拟礼物赠送方法、装置、计算机设备及介质 | |
CN108965769B (zh) | 视频显示方法及装置 | |
CN113384880A (zh) | 虚拟场景显示方法、装置、计算机设备及存储介质 | |
CN112396076A (zh) | 车牌图像生成方法、装置及计算机存储介质 | |
CN112116530B (zh) | 鱼眼图像畸变矫正方法、装置和虚拟显示系统 | |
CN110414448B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN112967261B (zh) | 图像融合方法、装置、设备及存储介质 | |
CN110443841B (zh) | 地面深度的测量方法、装置及系统 | |
CN110660031B (zh) | 图像锐化方法及装置、存储介质 | |
CN111127539B (zh) | 视差确定方法、装置、计算机设备及存储介质 | |
CN112243083B (zh) | 抓拍方法、装置及计算机存储介质 | |
CN114549658A (zh) | 摄像头的标定方法、装置及电子设备 | |
CN111757146B (zh) | 视频拼接的方法、系统及存储介质 | |
CN108881739B (zh) | 图像生成方法、装置、终端及存储介质 | |
CN110517188B (zh) | 确定鸟瞰图像的方法和装置 | |
CN112399080A (zh) | 视频处理方法、装置、终端及计算机可读存储介质 | |
CN114093020A (zh) | 动作捕捉方法、装置、电子设备及存储介质 |
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 |