CN110009567A - 用于鱼眼镜头的图像拼接方法和装置 - Google Patents
用于鱼眼镜头的图像拼接方法和装置 Download PDFInfo
- Publication number
- CN110009567A CN110009567A CN201910281197.3A CN201910281197A CN110009567A CN 110009567 A CN110009567 A CN 110009567A CN 201910281197 A CN201910281197 A CN 201910281197A CN 110009567 A CN110009567 A CN 110009567A
- Authority
- CN
- China
- Prior art keywords
- image
- unfolded
- fish
- history
- eye lens
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 241000251468 Actinopterygii Species 0.000 claims abstract description 205
- 239000011159 matrix material Substances 0.000 claims abstract description 139
- 238000013507 mapping Methods 0.000 claims abstract description 37
- 230000000007 visual effect Effects 0.000 claims description 23
- 238000012937 correction Methods 0.000 claims description 16
- 230000004927 fusion Effects 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 230000003247 decreasing effect Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 9
- 239000011521 glass Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 230000006854 communication Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005304 joining Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Classifications
-
- G06T3/047—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformation in the plane of the image
- G06T3/40—Scaling the whole image or part thereof
- G06T3/4038—Scaling the whole image or part thereof for image mosaicing, i.e. plane images composed of plane sub-images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformation in the plane of the image
- G06T3/60—Rotation of a whole image or part thereof
-
- G06T5/80—
-
- G06T5/92—
Abstract
本申请实施例公开了用于鱼眼镜头的图像拼接方法和装置。该方法的一具体实施方式包括:获取第一鱼眼镜头拍摄的第一图像和第二鱼眼镜头拍摄的第二图像,第二鱼眼镜头的拍摄区域与第一鱼眼镜头的拍摄区域存在部分重叠;根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的映射矩阵展开第一图像和第二图像,得到第一展开图像和第二展开图像;根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的旋转矩阵对第二展开图像进行旋转;拼接第一展开图像和旋转后的第二展开图像。该实施方式提高了拼接鱼眼镜头拍摄到的图像的效率。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及用于鱼眼镜头的图像拼接方法和装置。
背景技术
图像拼接作为图像处理领域的一个热门研究方向,引起了国内外学者的深入研究。目前的图像拼接技术虽然取得了一定的成果,但是由于涉及的学科众多,目前该领域仍处于研究和发展阶段,还没有足够成熟的技术以推动各种各样的应用进一步推广。
鱼眼摄像头视角广,利用鱼眼摄像头进行拼接可以减少待拼接图像的数目,增加拼接效率,在机器人导航,航空航天等领域都有广泛的应用,鱼眼镜头可拍摄180度甚至超过180度的景物,拼接只须考虑两幅图像之间的拼接,极大的简化了全景图的构建过程。但由于鱼眼相机的成像模型是非线性的,这给拼接带来了严峻的挑战,基于鱼眼镜头的视频拼接是难度的再一次升级,不仅对拼接的实时性有较高的要求,也对相邻帧之间的连续性提出了较高的要求。
发明内容
本申请实施例提出了用于鱼眼镜头的图像拼接方法和装置。
第一方面,本申请的一些实施例提供了一种用于鱼眼镜头的图像拼接方法,该方法包括:获取第一鱼眼镜头拍摄的第一图像和第二鱼眼镜头拍摄的第二图像,第二鱼眼镜头的拍摄区域与第一鱼眼镜头的拍摄区域存在部分重叠;根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的映射矩阵展开第一图像和第二图像,得到第一展开图像和第二展开图像;根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的旋转矩阵对第二展开图像进行旋转;拼接第一展开图像和旋转后的第二展开图像。
在一些实施例中,根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的映射矩阵将第一图像和第二图像映射到球面并展开至全景图之前,方法还包括:对第一图像和/或第二图像进行颜色校正。
在一些实施例中,对第一图像和/或第二图像进行颜色校正,包括:将第一图像和第二图像从红、绿、蓝颜色空间转换到色调、饱和度、明度颜色空间;分别统计在第一图像和第二图像的重叠区域内,第一图像和第二图像的饱和度和/或明度;根据统计出的饱和度和/或明度调整第一图像和第二图像中像素的饱和度和/或明度。
在一些实施例中,根据统计出的饱和度和/或明度调整第一图像和第二图像中像素的饱和度和/或明度,包括:确定第一图像中第一图像和第二图像的重叠区域内的像素的饱和度之和,与第二图像中第一图像和第二图像的重叠区域内的像素的饱和度之和的比值;将第二图像中像素的饱和度调整为所确定的饱和度之和的比值倍;和/或确定第一图像中第一图像和第二图像的重叠区域内的像素的明度之和,与第二图像中第一图像和第二图像的重叠区域内的像素的明度之和的比值;将第二图像中像素的明度调整为所确定的明度之和的比值倍。
在一些实施例中,拼接第一展开图像和旋转后的第二展开图像,包括:通过动态规划的方法确定第一展开图像和旋转后的第二展开图像的缝合线;对第一展开图像和旋转后的第二展开图像的重叠区域进行多分辨率融合,得到第一拼接图像;将缝合线两侧的图像分别与第一拼接图像进行加权拼接,第一拼接图像的像素点的权重按照像素点到缝合线的距离由近到远递减。
在一些实施例中,映射矩阵包括经由以下步骤建立的矩阵:获取第一鱼眼镜头拍摄的第一历史图像和第二鱼眼镜头拍摄的第二历史图像;根据预先设置的展开图的像素数在球面设置等间隔的经线和纬线;根据第一鱼眼镜头的视角将第一历史图像中的像素点映射到所设置的经线和纬线所形成的交点,并根据第二鱼眼镜头的视角将第二历史图像中的像素点映射到所设置的经线和纬线所形成的交点;根据第一历史图像中的像素点的坐标与映射到的交点在展开图中的坐标建立针对第一鱼眼镜头的映射矩阵,并根据第二历史图像中的像素点的坐标与映射到的交点在展开图中的坐标建立针对第二鱼眼镜头的映射矩阵。
在一些实施例中,旋转矩阵包括经由以下步骤建立的矩阵:获取第一鱼眼镜头拍摄的第三历史图像和第二鱼眼镜头拍摄的第四历史图像,第三历史图像和第四历史图像拍摄于同一时间段;展开第三历史图像和第四历史图像,得到第三展开图像和第四展开图像;确定第三展开图像和第四展开图像中的重叠区域;在第三展开图像和第四展开图像中的重叠区域确定匹配的特征点;将所确定的特征点映射到球面上计算第四历史图像相对于第三历史图像的偏移角度;根据偏移角度建立旋转矩阵。
在一些实施例中,在第三展开图像和第四展开图像中的重叠区域确定匹配的特征点,包括:通过滑窗在第三展开图像和第四展开图像中的重叠区域确定匹配的特征点。
在一些实施例中,第一鱼眼镜头与第二鱼眼镜头相向放置,第一鱼眼镜头与第二鱼眼镜头的视角大于180°。
在一些实施例中,旋转矩阵包括经由以下步骤建立的矩阵:获取第一鱼眼镜头拍摄的第五历史图像和第二鱼眼镜头拍摄的第六历史图像,第五历史图像和第六历史图像拍摄于同一时间段;展开第五历史图像和第六历史图像,得到第五展开图像和第六展开图像;确定第三展开图像和第四展开图像中的第一重叠区域和第二重叠区域;在第一重叠区域和第二重叠区域确定匹配的特征点;将所确定的第一重叠区域的特征点映射到球面上计算第六历史图像相对于第五历史图像的第一偏移角度,并将所确定的第二重叠区域的特征点映射到球面上计算第六历史图像相对于第五历史图像的第二偏移角度;根据第一偏移角度和第二偏移角度建立旋转矩阵。
在一些实施例中,根据第一偏移角度和第二偏移角度建立旋转矩阵,包括:根据第一偏移角度建立第一旋转矩阵,并根据第二偏移角度建立第二旋转矩阵;沿球面上的纬线对第一旋转矩阵和第二旋转矩阵进行平滑操作,得到预定数目的针对球面上的经线建立的旋转矩阵。
第二方面,本申请的一些实施例提供了一种用于鱼眼镜头的图像拼接装置,该装置包括:获取单元,被配置成获取第一鱼眼镜头拍摄的第一图像和第二鱼眼镜头拍摄的第二图像,第二鱼眼镜头的拍摄区域与第一鱼眼镜头的拍摄区域存在部分重叠;展开单元,被配置成根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的映射矩阵展开第一图像和第二图像,得到第一展开图像和第二展开图像;旋转单元,被配置成根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的旋转矩阵对第二展开图像进行旋转;拼接单元,被配置成拼接第一展开图像和旋转后的第二展开图像。
在一些实施例中,装置还包括:校正单元,被配置成对第一图像和/或第二图像进行颜色校正。
在一些实施例中,校正单元,包括转换子单元,被配置成将第一图像和第二图像从红、绿、蓝颜色空间转换到色调、饱和度、明度颜色空间;统计子单元,被配置成分别统计在第一图像和第二图像的重叠区域内,第一图像和第二图像的饱和度和/或明度;调整子单元,被配置成根据统计出的饱和度和/或明度调整第一图像和第二图像中像素的饱和度和/或明度。
在一些实施例中,调整子单元,进一步被配置成:确定第一图像中第一图像和第二图像的重叠区域内的像素的饱和度之和,与第二图像中第一图像和第二图像的重叠区域内的像素的饱和度之和的比值;将第二图像中像素的饱和度调整为所确定的饱和度之和的比值倍;和/或确定第一图像中第一图像和第二图像的重叠区域内的像素的明度之和,与第二图像中第一图像和第二图像的重叠区域内的像素的明度之和的比值;将第二图像中像素的明度调整为所确定的明度之和的比值倍。
在一些实施例中,拼接单元,包括:第一确定子单元,被配置成通过动态规划的方法确定第一展开图像和旋转后的第二展开图像的缝合线;第一拼接子单元,被配置成对第一展开图像和旋转后的第二展开图像的重叠区域进行多分辨率融合,得到第一拼接图像;第二拼接子单元,被配置成将缝合线两侧的图像分别与第一拼接图像进行加权拼接,第一拼接图像的像素点的权重按照像素点到缝合线的距离由近到远递减。
在一些实施例中,装置还包括第一矩阵建立单元,第一矩阵建立单元,包括:第一获取子单元,被配置成获取第一鱼眼镜头拍摄的第一历史图像和第二鱼眼镜头拍摄的第二历史图像;设置子单元,被配置成根据预先设置的展开图的像素数在球面设置等间隔的经线和纬线;映射子单元,被配置成根据第一鱼眼镜头的视角将第一历史图像中的像素点映射到所设置的经线和纬线所形成的交点,并根据第二鱼眼镜头的视角将第二历史图像中的像素点映射到所设置的经线和纬线所形成的交点;第一建立子单元,被配置成根据第一历史图像中的像素点的坐标与映射到的交点在展开图中的坐标建立针对第一鱼眼镜头的映射矩阵,并根据第二历史图像中的像素点的坐标与映射到的交点在展开图中的坐标建立针对第二鱼眼镜头的映射矩阵。
在一些实施例中,装置还包括第二矩阵建立单元,第二矩阵建立单元,包括:第二获取子单元,被配置成获取第一鱼眼镜头拍摄的第三历史图像和第二鱼眼镜头拍摄的第四历史图像,第三历史图像和第四历史图像拍摄于同一时间段;第一展开子单元,被配置成展开第三历史图像和第四历史图像,得到第三展开图像和第四展开图像;第二确定子单元,被配置成确定第三展开图像和第四展开图像中的重叠区域;第三确定子单元,被配置成在第三展开图像和第四展开图像中的重叠区域确定匹配的特征点;第一计算子单元,被配置成将所确定的特征点映射到球面上计算第四历史图像相对于第三历史图像的偏移角度;第二建立子单元,被配置成根据偏移角度建立旋转矩阵。
在一些实施例中,第三确定子单元,进一步被配置成:通过滑窗在第三展开图像和第四展开图像中的重叠区域确定匹配的特征点。
在一些实施例中,第一鱼眼镜头与第二鱼眼镜头相向放置,第一鱼眼镜头与第二鱼眼镜头的视角大于180°。
在一些实施例中,装置还包括第三矩阵建立单元,第三矩阵建立单元,包括:第三获取子单元,被配置成获取第一鱼眼镜头拍摄的第五历史图像和第二鱼眼镜头拍摄的第六历史图像,第五历史图像和第六历史图像拍摄于同一时间段;第二展开子单元,被配置成展开第五历史图像和第六历史图像,得到第五展开图像和第六展开图像;第四确定子单元,被配置成确定第三展开图像和第四展开图像中的第一重叠区域和第二重叠区域;第五确定子单元,被配置成在第一重叠区域和第二重叠区域确定匹配的特征点;第二计算子单元,被配置成将所确定的第一重叠区域的特征点映射到球面上计算第六历史图像相对于第五历史图像的第一偏移角度,并将所确定的第二重叠区域的特征点映射到球面上计算第六历史图像相对于第五历史图像的第二偏移角度;第三建立子单元,被配置成根据第一偏移角度和第二偏移角度建立旋转矩阵。
在一些实施例中,第三建立子单元,进一步被配置成:根据第一偏移角度建立第一旋转矩阵,并根据第二偏移角度建立第二旋转矩阵;沿球面上的纬线对第一旋转矩阵和第二旋转矩阵进行平滑操作,得到预定数目的针对球面上的经线建立的旋转矩阵。
第三方面,本申请的一些实施例提供了一种设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行,使得上述一个或多个处理器实现如第一方面上述的方法。
第四方面,本申请的一些实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面上述的方法。
本申请实施例提供的用于鱼眼镜头的图像拼接方法和装置,通过获取第一鱼眼镜头拍摄的第一图像和第二鱼眼镜头拍摄的第二图像,而后根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的映射矩阵展开第一图像和第二图像,得到第一展开图像和第二展开图像,并根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的旋转矩阵对第二展开图像进行旋转,最后拼接第一展开图像和旋转后的第二展开图像,提高了拼接鱼眼镜头拍摄到的图像的效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请的一些可以应用于其中的示例性系统架构图;
图2是根据本申请的用于鱼眼镜头的图像拼接方法的一个实施例的流程图;
图3是根据本申请的用于鱼眼镜头的图像拼接方法的一个实施例中单球面坐标系的示意图;
图4是根据本申请的用于鱼眼镜头的图像拼接方法的又一个实施例的流程图;
图5是根据本申请的用于鱼眼镜头的图像拼接装置的一个实施例的结构示意图;
图6是适于用来实现本申请的一些实施例的服务器或终端的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于鱼眼镜头的图像拼接方法或用于鱼眼镜头的图像拼接装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括鱼眼镜头101、102,网络103,终端设备104、105和服务器106。网络103用以在鱼眼镜头101、102、终端设备104、105和服务器106之间提供通信链路的介质。网络103可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
鱼眼镜头101、102拍摄的图像可以由本地的处理器进行拼接,也可传输至终端设备104、105进行拼接,还可以直接传输至服务器106或由终端设备104、105传输至服务器106,由服务器106进行拼接。终端设备104、105上可以安装有各种客户端应用,例如图像采集类应用、图像处理类应用、视频监控类应用、搜索类应用等。
终端设备104、105可以是硬件,也可以是软件。当终端设备104、105为硬件时,可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备104、105为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
服务器106可以是提供各种服务的服务器,例如对鱼眼镜头101、102或终端设备104、105上安装的应用提供支持的后台服务器,服务器106可以获取第一鱼眼镜头拍摄的第一图像和第二鱼眼镜头拍摄的第二图像,第二鱼眼镜头的拍摄区域与第一鱼眼镜头的拍摄区域存在部分重叠;根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的映射矩阵展开第一图像和第二图像,得到第一展开图像和第二展开图像;根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的旋转矩阵对第二展开图像进行旋转;拼接第一展开图像和旋转后的第二展开图像。
需要说明的是,本申请实施例所提供的用于鱼眼镜头的图像拼接方法可以由鱼眼镜头101、102本地的处理器执行,也可以由终端设备104、105或服务器106执行,相应地,用于鱼眼镜头的图像拼接装置可以设置于鱼眼镜头101、102本地的处理器中,也可以设置于终端设备104、105或服务器106中。
需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
应该理解,图1中的鱼眼镜头、终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的鱼眼镜头、终端设备、网络和服务器。
继续参考图2,示出了根据本申请的用于鱼眼镜头的图像拼接方法的一个实施例的流程200。该用于鱼眼镜头的图像拼接方法,包括以下步骤:
步骤201,获取第一鱼眼镜头拍摄的第一图像和第二鱼眼镜头拍摄的第二图像。
在本实施例中,用于鱼眼镜头的图像拼接方法执行主体(例如图1所示的服务器或终端)可以首先获取第一鱼眼镜头拍摄的第一图像和第二鱼眼镜头拍摄的第二图像。第一鱼眼镜头与第二鱼眼镜头可以是拍摄角度不同的不同鱼眼镜头,第一鱼眼镜头与第二鱼眼镜头也可以是拍摄角度不同的同一鱼眼镜头,例如,第一鱼眼镜头拍摄完第一图像后旋转一定角度后再作为第二鱼眼镜头拍摄第二图像。为保证拼接效果,第一鱼眼镜头与第二鱼眼镜头的规格可以相同。第二鱼眼镜头的拍摄区域与第一鱼眼镜头的拍摄区域存在部分重叠,可以通过重叠的区域进行图像的拼接。
步骤202,根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的映射矩阵展开第一图像和第二图像,得到第一展开图像和第二展开图像。
在本实施例中,上述执行主体可以根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的映射矩阵展开步骤201中获取的第一图像和第二图像,得到第一展开图像和第二展开图像。鱼眼镜头能够拍摄超大视域场景的代价是严重的形变,其中最主要的是桶形畸变,所以原始的鱼眼图像是无法直接拼接的,需要对鱼眼镜头拍摄到的图像进行展开。球面模型或桶面模型可以用于描述鱼眼的成像模型,所以可以将原始鱼眼图像映射到一个三维的单位球上或桶面上进行展开。此外,按照像素的映射关系可以得到第一展开图像和第二展开图像的重叠区域。
在第一鱼眼镜头和第二鱼眼镜头规格固定的情况下,针对第一鱼眼镜头和第二鱼眼镜头拍摄的图像可以使用固定的映射矩阵。映射矩阵可以是基于本次拍摄的第一图像和第二图像建立,也可以基于第一鱼眼镜头和第二鱼眼镜头历史采集到的图像建立。采用预先建立的映射矩阵可以减少计算量,提高效率。
作为示例,进行展开时可以按照鱼眼镜头视角大小,将拍摄到的图像映射到球面,并按经纬法展开成矩形图像。例如,视角为180°的鱼眼镜头,拍摄到的图像映射到球面为半球,视角超过180°的鱼眼镜头,超过180°的部分可以根据角度大小按比例映射过半球。
在本实施例的一些可选实现方式中,映射矩阵包括经由以下步骤建立的矩阵:获取第一鱼眼镜头拍摄的第一历史图像和第二鱼眼镜头拍摄的第二历史图像;根据预先设置的展开图的像素数在球面设置等间隔的经线和纬线;根据第一鱼眼镜头的视角将第一历史图像中的像素点映射到所设置的经线和纬线所形成的交点,并根据第二鱼眼镜头的视角将第二历史图像中的像素点映射到所设置的经线和纬线所形成的交点;根据第一历史图像中的像素点的坐标与映射到的交点在展开图中的坐标建立针对第一鱼眼镜头的映射矩阵,并根据第二历史图像中的像素点的坐标与映射到的交点在展开图中的坐标建立针对第二鱼眼镜头的映射矩阵。
在本实现方式中,可以采用反向映射的方式,根据预先设置的展开图的像素数,用经纬法将球面上的像素点一一映射到展开图上,即最终的展开图需要多少个像素,可以在球面上选择相同数量的像素点,然后从鱼眼镜头拍摄的图像中取点,以此可以减少填充球面上空白点的计算复杂度。
如图3所示,在单球面坐标系中,预先设置的展开图的像素点的数量是h×w,可以将x轴的正方向作为经度的起点,从-π到+π建立等间隔的w条经线。同样,可以建立h条从-π/2到+π/2的纬线,以此可以得到h×w个交点。例如,对于球面上经度为α纬度为β的一点,可以通过下列公式计算出它的三维坐标(x,y,z):
x=cosα×cosβ
y=sinβ
z=sinα×cosβ;
每一个交点可以被映射到鱼眼图像上的一点。用f表示相机的视域,并假设相机的视域是均匀的。对于球面上一点(x,y,z),可以通过下列公式计算出它与x轴的偏移角度单球面坐标系θ:
θ=arccosx;
可以通过下列公式得到原始图像距离中心的比例因子φ:
其中,r表示鱼眼图像的半径。最终可以得到在原始图像上的对应的点为:(z×φ,y×φ);其中,我们假设中心点的坐标为(0,0)。以此,可以将球面上任意一点映射到原始鱼眼图像上,展开时,球面上相同经线的点在展开图中位于同一列,相同纬线的点在展开图中位于同一行,将球面上所有的像素点在平面上按顺序平铺即可。
在本实施例的一些可选实现方式中,根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的映射矩阵将第一图像和第二图像映射到球面并展开至全景图之前,方法还包括:对第一图像和/或第二图像进行颜色校正。颜色校正可改善双鱼眼镜头的颜色差异,使拼接区域看起来更加连续
在本实施例的一些可选实现方式中,对第一图像和/或第二图像进行颜色校正,包括:将第一图像和第二图像从红、绿、蓝颜色空间转换到色调、饱和度、明度颜色空间;分别统计在第一图像和第二图像的重叠区域内,第一图像和第二图像的饱和度和/或明度;根据统计出的饱和度和/或明度调整第一图像和第二图像中像素的饱和度和/或明度。对原始鱼眼图像在HSV(Hue,Saturation,Value,色调,饱和度,明度)通道进行颜色校正。可以颜色空间变换将RGB空间转换到HSV颜色空间,分别统计在重叠区域内两个鱼眼图像S通道和V通道的值,进而可以调节其中一幅图像或同时调整两幅图像使二者在S通道和V通道上达到平衡,视觉上改善颜色跳变的情况。
在本实施例的一些可选实现方式中,根据统计出的饱和度和/或明度调整第一图像和第二图像中像素的饱和度和/或明度,包括:确定第一图像中第一图像和第二图像的重叠区域内的像素的饱和度之和,与第二图像中第一图像和第二图像的重叠区域内的像素的饱和度之和的比值;将第二图像中像素的饱和度调整为所确定的饱和度之和的比值倍;和/或确定第一图像中第一图像和第二图像的重叠区域内的像素的明度之和,与第二图像中第一图像和第二图像的重叠区域内的像素的明度之和的比值;将第二图像中像素的明度调整为所确定的明度之和的比值倍。
颜色校正由重叠区域内像素的差异判定,重叠区域内的像素近似为相同场景在视角差异很小的条件下拍摄的,所以具有很强的参考意义。对于两幅图像,我们假设重叠区域为A,那么待拼接的两幅图像在A中一定有相同数量的像素点。一般地,这两幅图像在重叠区域内拍摄的相同场景的内容,所以我们可以用该区域的统计信息来衡量颜色的差异。作为示例,可以将图像从RGB通道转换到HSV通道,并分别统计S和V通道的像素累加和,以S通道为例,假设第一图像的累加和为SUM1,第二图像的累加和为SUM2,所以比值r为SUM1/SUM2,对第二图像中的所有像素乘以比值r,就可以将第二图像的S通道调整至和第一图像一致。本实现方式以一种简单的方式完成了颜色校正,该方式效率极高,计算复杂度低,且效果显著。
步骤203,根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的旋转矩阵对第二展开图像进行旋转。
在本实施例中,上述执行主体可以根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的旋转矩阵对步骤202中得到的第二展开图像进行旋转。图像经过展开后,可以知道重叠区域的位置。在最终拼接之前,可以进行对齐处理,使重叠区域内相同的物体的大致位置也相同。在第一鱼眼镜头和第二鱼眼镜头规格、拍摄角度固定的情况下,针对第一鱼眼镜头和第二鱼眼镜头拍摄的图像可以使用固定的旋转矩阵。旋转矩阵可以是基于本次拍摄的第一图像和第二图像建立,也可以基于第一鱼眼镜头和第二鱼眼镜头历史采集到的图像建立。采用预先建立的旋转矩阵可以减少计算量,提高效率。
在本实施例的一些可选实现方式中,旋转矩阵包括经由以下步骤建立的矩阵:获取第一鱼眼镜头拍摄的第三历史图像和第二鱼眼镜头拍摄的第四历史图像,第三历史图像和第四历史图像拍摄于同一时间段;展开第三历史图像和第四历史图像,得到第三展开图像和第四展开图像;确定第三展开图像和第四展开图像中的重叠区域;在第三展开图像和第四展开图像中的重叠区域确定匹配的特征点;将所确定的特征点映射到球面上计算第四历史图像相对于第三历史图像的偏移角度;根据偏移角度建立旋转矩阵。同一时间段的时间长短可以根据实际进行设置,如果拍摄画面中有动态物体,同一时间段应尽可能的短,最好是同一时间拍摄的图像,以便于进行关键点的匹配。特征点的匹配方法包含但不限于尺度不变特征变换(Scale-invariant feature transform,SIFT)、加速稳健特征(Speed UpRobust Features,SURF)、具有局部不变性的特征点快速提取(Oriented FAST andRotated BRIEF,ORB)等。为了保证效率,例如在视频拼接时可以采用ORB。此外,还可以使用随机抽样一致性算法(Random Sample Consensus,RANSCA)选择匹配正确的一些特征点。
在本实施例的一些可选实现方式中,在第三展开图像和第四展开图像中的重叠区域确定匹配的特征点,包括:通过滑窗在第三展开图像和第四展开图像中的重叠区域确定匹配的特征点。由于重叠区域一般较为狭窄,在重叠区域,可以利用滑窗匹配特征点,以进行高效特征点匹配。可以取重叠区域的一部分,例如一个长条形,在该长条形内寻找特征点,在该区域内通过滑窗匹配可以提高匹配的准确度。在得到匹配点对后,可以利用匹配的点对,回归到球面或桶面模型,计算某一边匹配好的点对的角度偏移均值,计算得到其中一幅图像经过旋转和另一幅图像对齐需要的空间角度值,并由此计算出旋转矩阵。
在本实施例的一些可选实现方式中,第一鱼眼镜头与第二鱼眼镜头相向放置,第一鱼眼镜头与第二鱼眼镜头的视角大于180°。第一鱼眼镜头与第二鱼眼镜头可拍摄360×180的全景图,但其不仅具有严重的变形、成像的像素不均匀、镜头边缘亮度弱等缺陷,其重叠区域也一般较小,普通的图像拼接方法难以直接适用。但双鱼眼相机能够极大的简化构建全景图像的物理模型,方便手持,不需要重复拍摄。针对视频内容的拼接也有很广阔的应用前景,如全景直播、安防监控等。
在这里,第一鱼眼镜头与第二鱼眼镜头相向放置可以理解为两个镜头背对背放置,第一鱼眼镜头与第二鱼眼镜头的视角大于180°,可以形成两个重叠区域,基于两个重叠区域可以计算两个旋转矩阵,可以基于其中的一个旋转矩阵对第二展开图像进行旋转,也可以基于两个旋转矩阵对第二展开图像进行旋转,例如可以通过平均综合两个旋转矩阵,也可以使用两个旋转矩阵分别对齐展开图的左右两边,可以分别从鱼眼图像的两边向中心渐变,产生多个矩阵,渐变的方向是原始未经调整的旋转矩阵,并在图像位置的中心点达到平衡,这样就可以做到两边分别对齐而不互相影响。
在本实施例的一些可选实现方式中,旋转矩阵包括经由以下步骤建立的矩阵:获取第一鱼眼镜头拍摄的第五历史图像和第二鱼眼镜头拍摄的第六历史图像,第五历史图像和第六历史图像拍摄于同一时间段;展开第五历史图像和第六历史图像,得到第五展开图像和第六展开图像;确定第三展开图像和第四展开图像中的第一重叠区域和第二重叠区域;在第一重叠区域和第二重叠区域确定匹配的特征点;将所确定的第一重叠区域的特征点映射到球面上计算第六历史图像相对于第五历史图像的第一偏移角度,并将所确定的第二重叠区域的特征点映射到球面上计算第六历史图像相对于第五历史图像的第二偏移角度;根据第一偏移角度和第二偏移角度建立旋转矩阵。
在本实施例的一些可选实现方式中,根据第一偏移角度和第二偏移角度建立旋转矩阵,包括:根据第一偏移角度建立第一旋转矩阵,并根据第二偏移角度建立第二旋转矩阵;沿球面上的纬线对第一旋转矩阵和第二旋转矩阵进行平滑操作,得到预定数目的针对球面上的经线建立的旋转矩阵。基于得到的两个展开图的两个重叠区域,重叠区域内的点理论上应当是同一个场景下的,所以可以在重叠区域内寻找特征点并完成匹配,而双鱼眼图像的展开图有两边需要对齐,可以计算得到两个旋转矩阵,为解决冲突,可以将其沿纬线做一个平滑操作,产生一系列逐渐变换的旋转矩阵,这样球面上的每一条经线的像素点对应一个旋转矩阵,重新旋转就能得到经过对齐的鱼眼展开图。
作为示例,对于一组匹配好的特征点对(x1,y1)和(x2,y2),它们之间的像素差距是(y2-y1),回到球面上,它们的角度差异X可以通过下列公式计算:
X=arcsin(y2-y1);
为了得到更准确的角度差异,可以针对多个匹配点对进行计算得到的角度取均值。有了角度差异,可以将其中一幅图像在球面上旋转(X,Y,Z)角度完成对齐操作。转换到归一化的四元组(a,b,c,d),可以通过下列公式计算得到旋转矩阵R:
然而如果旋转整幅图像,只能完成一边的拼接,而由于存在两个旋转矩阵,必然会产生冲突。为了使其不互相影响,可以假设其中一幅图像的原始旋转矩阵为R’,可以建立w/4个均匀变化的矩阵(R0,R1,R2,...,Rk,...Rn),大小从R到R’,具体的数量也可以是单个鱼眼图像宽度的一半。从边缘渐变到中心,每一列像素都有唯一一个旋转矩阵,从一幅鱼眼图像的两边到中心是互不影响的,都是渐变到中心结束,这样两个旋转矩阵变成了多个旋转矩阵在工作,但本质上还是由最边缘的那个旋转矩阵决定的。将需要旋转的图像旋转后,就完成了对齐的过程。
步骤204,拼接第一展开图像和旋转后的第二展开图像。
在本实施例中,上述执行主体可以拼接步骤202中得到的第一展开图像和步骤203中旋转后的第二展开图像。进行拼接时,可以首先找到缝合线,而后直接进行拼接,或通过一些融合算法,例如取平均值法融合、渐入渐出(基于距离)融合、以及改进的三角函数权重融合,进一步提高拼接效果。第一图像和第二图像可以是鱼眼镜头采集到的视频中的图像帧,即本实施例描述的拼接方法可以用于图像或视频流,针对实时视频流时,可以使用较快的特征点描述子来提升速度,同时,为了减少矩阵运算,可以预先计算出需要的矩阵。由于双鱼眼镜头位置固定,视差通常会有一定固定的范围,划定精度后,范围内所有刻度的旋转矩阵算出,需要时查找即可。
本申请的上述实施例提供的方法通过获取第一鱼眼镜头拍摄的第一图像和第二鱼眼镜头拍摄的第二图像,第二鱼眼镜头的拍摄区域与第一鱼眼镜头的拍摄区域存在部分重叠;根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的映射矩阵展开第一图像和第二图像,得到第一展开图像和第二展开图像;根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的旋转矩阵对第二展开图像进行旋转;拼接第一展开图像和旋转后的第二展开图像,提高了拼接鱼眼镜头拍摄到的图像的效率。
进一步参考图4,其示出了用于鱼眼镜头的图像拼接方法的又一个实施例的流程400。该用于鱼眼镜头的图像拼接方法的流程400,包括以下步骤:
步骤401,获取第一鱼眼镜头拍摄的第一图像和第二鱼眼镜头拍摄的第二图像。
在本实施例中,用于鱼眼镜头的图像拼接方法执行主体(例如图1所示的服务器或终端)可以首先获取第一鱼眼镜头拍摄的第一图像和第二鱼眼镜头拍摄的第二图像,第二鱼眼镜头的拍摄区域与第一鱼眼镜头的拍摄区域存在部分重叠。
步骤402,根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的映射矩阵展开第一图像和第二图像,得到第一展开图像和第二展开图像。
在本实施例中,上述执行主体可以根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的映射矩阵展开步骤401中获取的第一图像和第二图像,得到第一展开图像和第二展开图像。
步骤403,根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的旋转矩阵对第二展开图像进行旋转。
在本实施例中,上述执行主体可以根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的旋转矩阵对步骤402中得到的第二展开图像进行旋转。
步骤404,通过动态规划的方法确定第一展开图像和旋转后的第二展开图像的缝合线。
在本实施例中,上述执行主体可以通过动态规划的方法确定步骤402中得到的第一展开图像和步骤403中旋转后的第二展开图像的最佳缝合线。动态规划(dynamicprogramming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。
步骤405,对第一展开图像和旋转后的第二展开图像的重叠区域进行多分辨率融合,得到第一拼接图像。
在本实施例中,上述执行主体可以对步骤402中得到的第一展开图像和步骤403中旋转后的第二展开图像的重叠区域进行多分辨率融合,得到第一拼接图像。
步骤406,将缝合线两侧的图像分别与第一拼接图像进行加权拼接。
在本实施例中,上述执行主体可以将步骤404中确定的缝合线两侧的图像分别与步骤405中得到的第一拼接图像进行加权拼接,第一拼接图像的像素点的权重按照像素点到缝合线的距离由近到远递减。如果在寻找到最佳缝合线后在缝合线两侧直接进行加权拼接容易产生伪影,而多分辨率融合并不适合鱼眼图像。可以对拼接线附近一定宽度的区域,例如重叠区域进行多分辨率融合,得到一个长条形的临时图像,然后左右两边的图像分别和这个临时图像做加权拼接,进而得到最终的图像,此方法可以直接适用于鱼眼图像。
作为示例,可以通过下列公式计算左侧最终拼接后的点B(r,c):
其中,L(r,c)表示重叠区域内r行c列的像素点,假设缝合线在某行经过的点为S(r,c’),d表示第一拼接图像左侧距离S最远的点的距离,O(r,c)表示第一拼接图像内r行c列的像素点。在时间消耗上,该方法由于缩小了拼接区域,缩短了拼接的时间。
在本实施例中,步骤401、步骤402、步骤403的操作与步骤201、步骤202、步骤203的操作基本相同,在此不再赘述。
从图4中可以看出,与图2对应的实施例相比,本实施例中的用于鱼眼镜头的图像拼接方法的流程400中通过在重叠区域进行多分辨率融合,而后基于多分辨率融合结果进行加权拼接,进一步提高了拼接效率。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于鱼眼镜头的图像拼接装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的用于鱼眼镜头的图像拼接装置500包括:获取单元501、展开单元502、旋转单元503、拼接单元504。其中,获取单元,被配置成获取第一鱼眼镜头拍摄的第一图像和第二鱼眼镜头拍摄的第二图像,第二鱼眼镜头的拍摄区域与第一鱼眼镜头的拍摄区域存在部分重叠;展开单元,被配置成根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的映射矩阵展开第一图像和第二图像,得到第一展开图像和第二展开图像;旋转单元,被配置成根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的旋转矩阵对第二展开图像进行旋转;拼接单元,被配置成拼接第一展开图像和旋转后的第二展开图像。
在本实施例中,用于鱼眼镜头的图像拼接装置500的获取单元501、展开单元502、旋转单元503、拼接单元504的具体处理可以参考图2对应实施例中的步骤201、步骤202、步骤203和步骤204。
在本实施例的一些可选实现方式中,装置还包括:校正单元,被配置成对第一图像和/或第二图像进行颜色校正。
在本实施例的一些可选实现方式中,校正单元,包括转换子单元,被配置成将第一图像和第二图像从红、绿、蓝颜色空间转换到色调、饱和度、明度颜色空间;统计子单元,被配置成分别统计在第一图像和第二图像的重叠区域内,第一图像和第二图像的饱和度和/或明度;调整子单元,被配置成根据统计出的饱和度和/或明度调整第一图像和第二图像中像素的饱和度和/或明度。
在本实施例的一些可选实现方式中,调整子单元,进一步被配置成:确定第一图像中第一图像和第二图像的重叠区域内的像素的饱和度之和,与第二图像中第一图像和第二图像的重叠区域内的像素的饱和度之和的比值;将第二图像中像素的饱和度调整为所确定的饱和度之和的比值倍;和/或确定第一图像中第一图像和第二图像的重叠区域内的像素的明度之和,与第二图像中第一图像和第二图像的重叠区域内的像素的明度之和的比值;将第二图像中像素的明度调整为所确定的明度之和的比值倍。
在本实施例的一些可选实现方式中,拼接单元,包括:第一确定子单元,被配置成通过动态规划的方法确定第一展开图像和旋转后的第二展开图像的缝合线;第一拼接子单元,被配置成对第一展开图像和旋转后的第二展开图像的重叠区域进行多分辨率融合,得到第一拼接图像;第二拼接子单元,被配置成将缝合线两侧的图像分别与第一拼接图像进行加权拼接,第一拼接图像的像素点的权重按照像素点到缝合线的距离由近到远递减。
在本实施例的一些可选实现方式中,装置还包括第一矩阵建立单元,第一矩阵建立单元,包括:第一获取子单元,被配置成获取第一鱼眼镜头拍摄的第一历史图像和第二鱼眼镜头拍摄的第二历史图像;设置子单元,被配置成根据预先设置的展开图的像素数在球面设置等间隔的经线和纬线;映射子单元,被配置成根据第一鱼眼镜头的视角将第一历史图像中的像素点映射到所设置的经线和纬线所形成的交点,并根据第二鱼眼镜头的视角将第二历史图像中的像素点映射到所设置的经线和纬线所形成的交点;第一建立子单元,被配置成根据第一历史图像中的像素点的坐标与映射到的交点在展开图中的坐标建立针对第一鱼眼镜头的映射矩阵,并根据第二历史图像中的像素点的坐标与映射到的交点在展开图中的坐标建立针对第二鱼眼镜头的映射矩阵。
在本实施例的一些可选实现方式中,装置还包括第二矩阵建立单元,第二矩阵建立单元,包括:第二获取子单元,被配置成获取第一鱼眼镜头拍摄的第三历史图像和第二鱼眼镜头拍摄的第四历史图像,第三历史图像和第四历史图像拍摄于同一时间段;第一展开子单元,被配置成展开第三历史图像和第四历史图像,得到第三展开图像和第四展开图像;第二确定子单元,被配置成确定第三展开图像和第四展开图像中的重叠区域;第三确定子单元,被配置成在第三展开图像和第四展开图像中的重叠区域确定匹配的特征点;第一计算子单元,被配置成将所确定的特征点映射到球面上计算第四历史图像相对于第三历史图像的偏移角度;第二建立子单元,被配置成根据偏移角度建立旋转矩阵。
在本实施例的一些可选实现方式中,第三确定子单元,进一步被配置成:通过滑窗在第三展开图像和第四展开图像中的重叠区域确定匹配的特征点。
在本实施例的一些可选实现方式中,第一鱼眼镜头与第二鱼眼镜头相向放置,第一鱼眼镜头与第二鱼眼镜头的视角大于180°。
在本实施例的一些可选实现方式中,装置还包括第三矩阵建立单元,第三矩阵建立单元,包括:第三获取子单元,被配置成获取第一鱼眼镜头拍摄的第五历史图像和第二鱼眼镜头拍摄的第六历史图像,第五历史图像和第六历史图像拍摄于同一时间段;第二展开子单元,被配置成展开第五历史图像和第六历史图像,得到第五展开图像和第六展开图像;第四确定子单元,被配置成确定第三展开图像和第四展开图像中的第一重叠区域和第二重叠区域;第五确定子单元,被配置成在第一重叠区域和第二重叠区域确定匹配的特征点;第二计算子单元,被配置成将所确定的第一重叠区域的特征点映射到球面上计算第六历史图像相对于第五历史图像的第一偏移角度,并将所确定的第二重叠区域的特征点映射到球面上计算第六历史图像相对于第五历史图像的第二偏移角度;第三建立子单元,被配置成根据第一偏移角度和第二偏移角度建立旋转矩阵。
在本实施例的一些可选实现方式中,第三建立子单元,进一步被配置成:根据第一偏移角度建立第一旋转矩阵,并根据第二偏移角度建立第二旋转矩阵;沿球面上的纬线对第一旋转矩阵和第二旋转矩阵进行平滑操作,得到预定数目的针对球面上的经线建立的旋转矩阵。
本申请的上述实施例提供的装置,通过获取第一鱼眼镜头拍摄的第一图像和第二鱼眼镜头拍摄的第二图像,第二鱼眼镜头的拍摄区域与第一鱼眼镜头的拍摄区域存在部分重叠;根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的映射矩阵展开第一图像和第二图像,得到第一展开图像和第二展开图像;根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的旋转矩阵对第二展开图像进行旋转;拼接第一展开图像和旋转后的第二展开图像,提高了拼接鱼眼镜头拍摄到的图像的效率。
下面参考图6,其示出了适于用来实现本申请实施例的服务器或终端的计算机系统600的结构示意图。图6示出的服务器或终端仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件可以连接至I/O接口605:包括诸如键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如C语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、展开单元、旋转单元、拼接单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“被配置成获取第一鱼眼镜头拍摄的第一图像和第二鱼眼镜头拍摄的第二图像的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:获取第一鱼眼镜头拍摄的第一图像和第二鱼眼镜头拍摄的第二图像,第二鱼眼镜头的拍摄区域与第一鱼眼镜头的拍摄区域存在部分重叠;根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的映射矩阵展开第一图像和第二图像,得到第一展开图像和第二展开图像;根据针对第一鱼眼镜头和第二鱼眼镜头预先建立的旋转矩阵对第二展开图像进行旋转;拼接第一展开图像和旋转后的第二展开图像。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (24)
1.一种用于鱼眼镜头的图像拼接方法,包括:
获取第一鱼眼镜头拍摄的第一图像和第二鱼眼镜头拍摄的第二图像,所述第二鱼眼镜头的拍摄区域与所述第一鱼眼镜头的拍摄区域存在部分重叠;
根据针对所述第一鱼眼镜头和所述第二鱼眼镜头预先建立的映射矩阵展开所述第一图像和所述第二图像,得到第一展开图像和第二展开图像;
根据针对所述第一鱼眼镜头和所述第二鱼眼镜头预先建立的旋转矩阵对所述第二展开图像进行旋转;
拼接所述第一展开图像和旋转后的第二展开图像。
2.根据权利要求1所述的方法,其中,所述根据针对所述第一鱼眼镜头和所述第二鱼眼镜头预先建立的映射矩阵将所述第一图像和所述第二图像映射到球面并展开至全景图之前,所述方法还包括:
对所述第一图像和/或所述第二图像进行颜色校正。
3.根据权利要求2所述的方法,其中,所述对所述第一图像和/或所述第二图像进行颜色校正,包括:
将所述第一图像和所述第二图像从红、绿、蓝颜色空间转换到色调、饱和度、明度颜色空间;
分别统计在所述第一图像和所述第二图像的重叠区域内,所述第一图像和所述第二图像的饱和度和/或明度;
根据统计出的饱和度和/或明度调整所述第一图像和所述第二图像中像素的饱和度和/或明度。
4.根据权利要求3所述的方法,其中,所述根据统计出的饱和度和/或明度调整所述第一图像和所述第二图像中像素的饱和度和/或明度,包括:
确定所述第一图像中所述第一图像和所述第二图像的重叠区域内的像素的饱和度之和,与所述第二图像中所述第一图像和所述第二图像的重叠区域内的像素的饱和度之和的比值;
将所述第二图像中像素的饱和度调整为所确定的饱和度之和的比值倍;和/或
确定所述第一图像中所述第一图像和所述第二图像的重叠区域内的像素的明度之和,与所述第二图像中所述第一图像和所述第二图像的重叠区域内的像素的明度之和的比值;
将所述第二图像中像素的明度调整为所确定的明度之和的比值倍。
5.根据权利要求1所述的方法,其中,所述拼接所述第一展开图像和旋转后的第二展开图像,包括:
通过动态规划的方法确定所述第一展开图像和旋转后的第二展开图像的缝合线;
对所述第一展开图像和旋转后的第二展开图像的重叠区域进行多分辨率融合,得到第一拼接图像;
将所述缝合线两侧的图像分别与所述第一拼接图像进行加权拼接,所述第一拼接图像的像素点的权重按照像素点到缝合线的距离由近到远递减。
6.根据权利要求1所述的方法,其中,所述映射矩阵包括经由以下步骤建立的矩阵:
获取第一鱼眼镜头拍摄的第一历史图像和第二鱼眼镜头拍摄的第二历史图像;
根据预先设置的展开图的像素数在球面设置等间隔的经线和纬线;
根据所述第一鱼眼镜头的视角将所述第一历史图像中的像素点映射到所设置的经线和纬线所形成的交点,并根据所述第二鱼眼镜头的视角将所述第二历史图像中的像素点映射到所设置的经线和纬线所形成的交点;
根据所述第一历史图像中的像素点的坐标与映射到的交点在展开图中的坐标建立针对所述第一鱼眼镜头的映射矩阵,并根据所述第二历史图像中的像素点的坐标与映射到的交点在展开图中的坐标建立针对所述第二鱼眼镜头的映射矩阵。
7.根据权利要求1所述的方法,其中,所述旋转矩阵包括经由以下步骤建立的矩阵:
获取第一鱼眼镜头拍摄的第三历史图像和第二鱼眼镜头拍摄的第四历史图像,所述第三历史图像和所述第四历史图像拍摄于同一时间段;
展开所述第三历史图像和所述第四历史图像,得到第三展开图像和第四展开图像;
确定所述第三展开图像和所述第四展开图像中的重叠区域;
在所述第三展开图像和所述第四展开图像中的重叠区域确定匹配的特征点;
将所确定的特征点映射到球面上计算所述第四历史图像相对于所述第三历史图像的偏移角度;
根据所述偏移角度建立旋转矩阵。
8.根据权利要求7所述的方法,其中,所述在所述第三展开图像和所述第四展开图像中的重叠区域确定匹配的特征点,包括:
通过滑窗在所述第三展开图像和所述第四展开图像中的重叠区域确定匹配的特征点。
9.根据权利要求1-8中任一项所述的方法,其中,所述第一鱼眼镜头与所述第二鱼眼镜头相向放置,所述第一鱼眼镜头与所述第二鱼眼镜头的视角大于180°。
10.根据权利要求9所述的方法,其中,所述旋转矩阵包括经由以下步骤建立的矩阵:
获取第一鱼眼镜头拍摄的第五历史图像和第二鱼眼镜头拍摄的第六历史图像,所述第五历史图像和所述第六历史图像拍摄于同一时间段;
展开所述第五历史图像和所述第六历史图像,得到第五展开图像和第六展开图像;
确定所述第三展开图像和所述第四展开图像中的第一重叠区域和第二重叠区域;
在所述第一重叠区域和所述第二重叠区域确定匹配的特征点;
将所确定的所述第一重叠区域的特征点映射到球面上计算所述第六历史图像相对于所述第五历史图像的第一偏移角度,并将所确定的所述第二重叠区域的特征点映射到球面上计算所述第六历史图像相对于所述第五历史图像的第二偏移角度;
根据所述第一偏移角度和所述第二偏移角度建立旋转矩阵。
11.根据权利要求10所述的方法,其中,所述根据所述第一偏移角度和所述第二偏移角度建立旋转矩阵,包括:
根据所述第一偏移角度建立第一旋转矩阵,并根据所述第二偏移角度建立第二旋转矩阵;
沿球面上的纬线对所述第一旋转矩阵和所述第二旋转矩阵进行平滑操作,得到预定数目的针对球面上的经线建立的旋转矩阵。
12.一种用于鱼眼镜头的图像拼接装置,包括:
获取单元,被配置成获取第一鱼眼镜头拍摄的第一图像和第二鱼眼镜头拍摄的第二图像,所述第二鱼眼镜头的拍摄区域与所述第一鱼眼镜头的拍摄区域存在部分重叠;
展开单元,被配置成根据针对所述第一鱼眼镜头和所述第二鱼眼镜头预先建立的映射矩阵展开所述第一图像和所述第二图像,得到第一展开图像和第二展开图像;
旋转单元,被配置成根据针对所述第一鱼眼镜头和所述第二鱼眼镜头预先建立的旋转矩阵对所述第二展开图像进行旋转;
拼接单元,被配置成拼接所述第一展开图像和旋转后的第二展开图像。
13.根据权利要求12所述的装置,其中,所述装置还包括:
校正单元,被配置成对所述第一图像和/或所述第二图像进行颜色校正。
14.根据权利要求13所述的装置,其中,所述校正单元,包括
转换子单元,被配置成将所述第一图像和所述第二图像从红、绿、蓝颜色空间转换到色调、饱和度、明度颜色空间;
统计子单元,被配置成分别统计在所述第一图像和所述第二图像的重叠区域内,所述第一图像和所述第二图像的饱和度和/或明度;
调整子单元,被配置成根据统计出的饱和度和/或明度调整所述第一图像和所述第二图像中像素的饱和度和/或明度。
15.根据权利要求14所述的装置,其中,所述调整子单元,进一步被配置成:
确定所述第一图像中所述第一图像和所述第二图像的重叠区域内的像素的饱和度之和,与所述第二图像中所述第一图像和所述第二图像的重叠区域内的像素的饱和度之和的比值;
将所述第二图像中像素的饱和度调整为所确定的饱和度之和的比值倍;和/或
确定所述第一图像中所述第一图像和所述第二图像的重叠区域内的像素的明度之和,与所述第二图像中所述第一图像和所述第二图像的重叠区域内的像素的明度之和的比值;
将所述第二图像中像素的明度调整为所确定的明度之和的比值倍。
16.根据权利要求12所述的装置,其中,所述拼接单元,包括:
第一确定子单元,被配置成通过动态规划的方法确定所述第一展开图像和旋转后的第二展开图像的缝合线;
第一拼接子单元,被配置成对所述第一展开图像和旋转后的第二展开图像的重叠区域进行多分辨率融合,得到第一拼接图像;
第二拼接子单元,被配置成将所述缝合线两侧的图像分别与所述第一拼接图像进行加权拼接,所述第一拼接图像的像素点的权重按照像素点到缝合线的距离由近到远递减。
17.根据权利要求12所述的装置,其中,所述装置还包括第一矩阵建立单元,所述第一矩阵建立单元,包括:
第一获取子单元,被配置成获取第一鱼眼镜头拍摄的第一历史图像和第二鱼眼镜头拍摄的第二历史图像;
设置子单元,被配置成根据预先设置的展开图的像素数在球面设置等间隔的经线和纬线;
映射子单元,被配置成根据所述第一鱼眼镜头的视角将所述第一历史图像中的像素点映射到所设置的经线和纬线所形成的交点,并根据所述第二鱼眼镜头的视角将所述第二历史图像中的像素点映射到所设置的经线和纬线所形成的交点;
第一建立子单元,被配置成根据所述第一历史图像中的像素点的坐标与映射到的交点在展开图中的坐标建立针对所述第一鱼眼镜头的映射矩阵,并根据所述第二历史图像中的像素点的坐标与映射到的交点在展开图中的坐标建立针对所述第二鱼眼镜头的映射矩阵。
18.根据权利要求12所述的装置,其中,所述装置还包括第二矩阵建立单元,所述第二矩阵建立单元,包括:
第二获取子单元,被配置成获取第一鱼眼镜头拍摄的第三历史图像和第二鱼眼镜头拍摄的第四历史图像,所述第三历史图像和所述第四历史图像拍摄于同一时间段;
第一展开子单元,被配置成展开所述第三历史图像和所述第四历史图像,得到第三展开图像和第四展开图像;
第二确定子单元,被配置成确定所述第三展开图像和所述第四展开图像中的重叠区域;
第三确定子单元,被配置成在所述第三展开图像和所述第四展开图像中的重叠区域确定匹配的特征点;
第一计算子单元,被配置成将所确定的特征点映射到球面上计算所述第四历史图像相对于所述第三历史图像的偏移角度;
第二建立子单元,被配置成根据所述偏移角度建立旋转矩阵。
19.根据权利要求18所述的装置,其中,所述第三确定子单元,进一步被配置成:
通过滑窗在所述第三展开图像和所述第四展开图像中的重叠区域确定匹配的特征点。
20.根据权利要求12-19所述的装置,其中,所述第一鱼眼镜头与所述第二鱼眼镜头相向放置,所述第一鱼眼镜头与所述第二鱼眼镜头的视角大于180°。
21.根据权利要求20所述的装置,其中,所述装置还包括第三矩阵建立单元,所述第三矩阵建立单元,包括:
第三获取子单元,被配置成获取第一鱼眼镜头拍摄的第五历史图像和第二鱼眼镜头拍摄的第六历史图像,所述第五历史图像和所述第六历史图像拍摄于同一时间段;
第二展开子单元,被配置成展开所述第五历史图像和所述第六历史图像,得到第五展开图像和第六展开图像;
第四确定子单元,被配置成确定所述第三展开图像和所述第四展开图像中的第一重叠区域和第二重叠区域;
第五确定子单元,被配置成在所述第一重叠区域和所述第二重叠区域确定匹配的特征点;
第二计算子单元,被配置成将所确定的所述第一重叠区域的特征点映射到球面上计算所述第六历史图像相对于所述第五历史图像的第一偏移角度,并将所确定的所述第二重叠区域的特征点映射到球面上计算所述第六历史图像相对于所述第五历史图像的第二偏移角度;
第三建立子单元,被配置成根据所述第一偏移角度和所述第二偏移角度建立旋转矩阵。
22.根据权利要求21所述的装置,其中,所述第三建立子单元,进一步被配置成:
根据所述第一偏移角度建立第一旋转矩阵,并根据所述第二偏移角度建立第二旋转矩阵;
沿球面上的纬线对所述第一旋转矩阵和所述第二旋转矩阵进行平滑操作,得到预定数目的针对球面上的经线建立的旋转矩阵。
23.一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-11中任一所述的方法。
24.一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-11中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910281197.3A CN110009567A (zh) | 2019-04-09 | 2019-04-09 | 用于鱼眼镜头的图像拼接方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910281197.3A CN110009567A (zh) | 2019-04-09 | 2019-04-09 | 用于鱼眼镜头的图像拼接方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110009567A true CN110009567A (zh) | 2019-07-12 |
Family
ID=67170563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910281197.3A Pending CN110009567A (zh) | 2019-04-09 | 2019-04-09 | 用于鱼眼镜头的图像拼接方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110009567A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111311656A (zh) * | 2020-02-21 | 2020-06-19 | 辽宁石油化工大学 | 一种适用于车载鱼眼相机的运动目标检测方法和装置 |
CN112598594A (zh) * | 2020-12-24 | 2021-04-02 | Oppo(重庆)智能科技有限公司 | 颜色一致性矫正方法及相关装置 |
CN113129211A (zh) * | 2021-06-16 | 2021-07-16 | 贝壳技术有限公司 | 光心对齐检测方法和装置、存储介质、电子设备 |
TWI769782B (zh) * | 2021-04-13 | 2022-07-01 | 中華電信股份有限公司 | 用於影像縫合優化之方法及電腦可讀儲存媒介 |
WO2023011013A1 (zh) * | 2021-08-04 | 2023-02-09 | 北京旷视科技有限公司 | 视频图像的拼缝搜索方法、视频图像的拼接方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107403408A (zh) * | 2016-05-18 | 2017-11-28 | 苏州灵目电子科技有限公司 | 一种双鱼眼图像拼接全景图像接缝融合方法 |
CN107705252A (zh) * | 2017-10-13 | 2018-02-16 | 华东理工大学 | 适用于双目鱼眼图像拼接展开校正的方法及系统 |
CN109102464A (zh) * | 2018-08-14 | 2018-12-28 | 四川易为智行科技有限公司 | 全景图像拼接方法及装置 |
CN109348140A (zh) * | 2018-10-12 | 2019-02-15 | 西安理工大学 | 一种监控场景下实时视频的拼接方法 |
-
2019
- 2019-04-09 CN CN201910281197.3A patent/CN110009567A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107403408A (zh) * | 2016-05-18 | 2017-11-28 | 苏州灵目电子科技有限公司 | 一种双鱼眼图像拼接全景图像接缝融合方法 |
CN107705252A (zh) * | 2017-10-13 | 2018-02-16 | 华东理工大学 | 适用于双目鱼眼图像拼接展开校正的方法及系统 |
CN109102464A (zh) * | 2018-08-14 | 2018-12-28 | 四川易为智行科技有限公司 | 全景图像拼接方法及装置 |
CN109348140A (zh) * | 2018-10-12 | 2019-02-15 | 西安理工大学 | 一种监控场景下实时视频的拼接方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111311656A (zh) * | 2020-02-21 | 2020-06-19 | 辽宁石油化工大学 | 一种适用于车载鱼眼相机的运动目标检测方法和装置 |
CN111311656B (zh) * | 2020-02-21 | 2023-06-27 | 辽宁石油化工大学 | 一种适用于车载鱼眼相机的运动目标检测方法和装置 |
CN112598594A (zh) * | 2020-12-24 | 2021-04-02 | Oppo(重庆)智能科技有限公司 | 颜色一致性矫正方法及相关装置 |
TWI769782B (zh) * | 2021-04-13 | 2022-07-01 | 中華電信股份有限公司 | 用於影像縫合優化之方法及電腦可讀儲存媒介 |
CN113129211A (zh) * | 2021-06-16 | 2021-07-16 | 贝壳技术有限公司 | 光心对齐检测方法和装置、存储介质、电子设备 |
CN113129211B (zh) * | 2021-06-16 | 2021-08-17 | 贝壳技术有限公司 | 光心对齐检测方法和装置、存储介质、电子设备 |
WO2023011013A1 (zh) * | 2021-08-04 | 2023-02-09 | 北京旷视科技有限公司 | 视频图像的拼缝搜索方法、视频图像的拼接方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110009567A (zh) | 用于鱼眼镜头的图像拼接方法和装置 | |
CN107301620B (zh) | 基于相机阵列的全景成像方法 | |
CN110390640B (zh) | 基于模板的泊松融合图像拼接方法、系统、设备及介质 | |
CN111028155B (zh) | 一种基于多对双目相机的视差图像拼接方法 | |
CN106023072B (zh) | 一种用于曲面大屏幕的图像拼接显示方法 | |
CN108805801A (zh) | 一种全景图像校正方法及系统 | |
CN107431796A (zh) | 全景虚拟现实内容的全方位立体式捕捉和渲染 | |
CN108846796B (zh) | 图像拼接方法及电子设备 | |
CN107516294A (zh) | 拼接图像的方法和装置 | |
CN109598673A (zh) | 图像拼接方法、装置、终端及计算机可读存储介质 | |
CN106534670B (zh) | 一种基于固联鱼眼镜头摄像机组的全景视频生成方法 | |
EP1903498B1 (en) | Creating a panoramic image by stitching a plurality of images | |
CN104506828B (zh) | 一种无有效重叠变结构的定点定向视频实时拼接方法 | |
CN104392416A (zh) | 一种运动场景的视频拼接方法 | |
CN107820012A (zh) | 一种鱼眼图像处理方法、装置、服务器及系统 | |
CN109166076B (zh) | 多相机拼接的亮度调整方法、装置及便携式终端 | |
CN108038886A (zh) | 双目摄像系统标定方法、装置及其汽车 | |
CN103260046A (zh) | 一种三维显示方法及系统 | |
CN107527336A (zh) | 镜头相对位置标定方法及装置 | |
TWI615808B (zh) | 全景即時影像處理方法 | |
KR20060056050A (ko) | 자동화된 360°파노라마 이미지 생성 방법 | |
Popovic et al. | Image blending in a high frame rate FPGA-based multi-camera system | |
CN107292822B (zh) | 一种图像的拼接方法和装置 | |
CN108765292A (zh) | 基于空间三角面片拟合的图像拼接方法 | |
JP7192526B2 (ja) | 画像処理装置、画像処理方法及びプログラム |
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 | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20231013 |
|
AD01 | Patent right deemed abandoned |