基于伽马变换自适应修正的全景首尾融合算法

简介: 基于伽马变换自适应修正的全景首尾融合算法

前言

      360度全景摄像机可无盲点监测覆盖所处场景 ,通过一个鱼眼镜头或者一个反射镜面(如抛物线,双曲线镜面等),或者多个朝向不同方向的普通镜头拼接而成,拥有360度全景视场(Field of View, FOV)。一台全景摄像机可以取代多台普通的监控摄像机监控摄像机,做到了无缝监控,实现了监控新应用,应用于各个领域,其中包括监狱、政府机关、银行、社会安全、公共场所、文化场所等。

一、场景痛点

      对全景相机而言,通过镜头的旋转可获取多张不同方向的图像,对其进行多图像拼接,最终可形成完整的全景图像。

图1 全景子图拼接

      但是在拼接过程中,很容易受到背景光不一致等外在因素的干扰,而使得拼接的图像中光场分布不均匀,这很容易导致图像之间出现间隙或双亮接缝,两者都非常令人反感,尤其是对于相机正在平移或物体在接缝上移动的内容。


      解决方案是将两个图像大量重叠并修改重叠区域中的像素,以使重叠尽可能不可见。这样做的原因是,现在任何轻微的投影仪未对准或镜头像差都只会显示为图像的轻微模糊,而不是尖锐的接缝或间隙。融合结果如图2所示。

图2 全景平铺拼接图

      虽然上述解决方案可以将平铺全景图像尽可能地融合,但无法保证图像两侧也能有效融合。要知道平铺全景图像最终是要呈现为360度立体环视效果的,左右两侧不融合将使得全景场景出现亮度突变缝,这会让观看者感到极度不适。如图3所示。

图3 亮度突变缝

       综上所述,在此类图像拼接场景下,亮度突变缝的消除是一大难题。难点主要有三:


  1. 全景图像往往是高分辨率的,即图像尺寸很大,这对算法复杂度的要求极高,过于繁琐的处理过程不利于工程开发和应用。
  2. 全景图像中物体特征是随机且差异极大的,这很考验算法对各类场景的普适度。
  3. 全景图像中,上中下三部分的亮度对比往往差很多,这与相机获取图像时的外在光源影响有关,也与相机本身的硬件和参数有关。

       如何将全景平铺图像的左右两侧也进行有效的融合,进而使360度全景环视效果更佳,是一个非常有挑战的课题。

二、需求说明

      第一部分讲解了全景图像拼接过程中存在的一大难点,即平铺图像左右侧的有效融合问题。针对该问题,提出需求:全景图像左右侧进行有效融合,使得左侧连接右侧后,不存在肉眼可见的明显亮缝。图4处理至图5状态。

图4 拼接亮缝示意图

图5 拼接融合

      为了满足该需求,本文提出了一种基于伽马变换自适应修正的全景首尾融合算法。

三、算法原理和流程

      之所以存在亮缝,归根结底是两部分的图像背景光不一致,我们可以将左侧和右侧分别进行一个伽马变化,伽马变化的终点修正为一致,再反变化回去,就可以使得中心部分较好融合,且图像像素渐变。

图6 伽马掩膜

       左右两侧是从1到k,k是中心接壤的比例因子,因此有公式如下,其中G是伽马变化的因子,G为1时,是线性变化,改变G,曲线变化示意图如图6所示。x是归一化的值,中心为0,边缘为1。

      不难发现,边缘处即x为1时,f(x)也为1,这样的目的是使得这部分图像拼接完成后,在回归到原图后,依然是融合态;只让其拼接部分是渐变融合的。

图7 伽马变换

      伽马自适应校准就是k值的校准,校准完成后进行反伽马变换,即可实现图像的恢复和融合。

      综上,该算法的流程图可简化为:

图8 流程图

四、拼接效果图

图9 拼接效果图1

图10 拼接效果图2

图11 拼接效果图3

五、代码分享

      C++代码不免费分享,有意获取者可以私我。算法不是魔法,不能解决一切问题。该算法的核心逻辑可用于工程开发,但仍有许多需要结合实际完善的地方,不建议直接拷贝使用。

PS:感谢陈先生提供的全景图像。

相关文章
|
2月前
|
数据采集 监控 安全
厂区地图导航制作:GIS技术与路径导航算法融合
在智能化、数字化时代,GIS技术为厂区的运营管理带来了革命性变化。本文探讨了如何利用GIS技术,通过数据采集、地图绘制、路径规划、位置定位和信息查询等功能,打造高效、精准的智能厂区地图导航系统,提升企业的竞争力和管理水平。
64 0
厂区地图导航制作:GIS技术与路径导航算法融合
|
4月前
|
存储 负载均衡 监控
自适应负载均衡算法原理和实现
自适应负载均衡算法原理和实现
|
4月前
|
存储 监控 算法
自适应微服务治理背后的算法
自适应微服务治理背后的算法
|
4月前
|
算法
基于小波变换的图像自适应增强算法
基于小波变换的图像自适应增强算法
18 0
|
5月前
|
机器学习/深度学习 数据采集 算法
Python实现ISSA融合反向学习与Levy飞行策略的改进麻雀优化算法优化支持向量机回归模型(SVR算法)项目实战
Python实现ISSA融合反向学习与Levy飞行策略的改进麻雀优化算法优化支持向量机回归模型(SVR算法)项目实战
189 9
|
5月前
|
机器学习/深度学习 数据采集 算法
Python实现ISSA融合反向学习与Levy飞行策略的改进麻雀优化算法优化支持向量机分类模型(SVC算法)项目实战
Python实现ISSA融合反向学习与Levy飞行策略的改进麻雀优化算法优化支持向量机分类模型(SVC算法)项目实战
|
5月前
|
算法 vr&ar
基于自适应波束成形算法的matlab性能仿真,对比SG和RLS两种方法
```markdown - MATLAB2022a中比较SG与RLS自适应波束成形算法。核心程序实现阵列信号处理,强化期望信号,抑制干扰。RLS以其高效计算权重,而SG则以简单和低计算复杂度著称。[12345] [6666666666] [777777] ```
|
6月前
|
机器学习/深度学习 算法
基于BP神经网络和小波变换特征提取的烟草香型分类算法matlab仿真,分为浓香型,清香型和中间香型
```markdown 探索烟草香型分类:使用Matlab2022a中的BP神经网络结合小波变换。小波分析揭示香气成分的局部特征,降低维度,PCA等用于特征选择。BP网络随后处理这些特征,以区分浓香、清香和中间香型。 ```
|
6月前
|
算法 调度 决策智能
基于自适应遗传算法的车间调度matlab仿真,可以任意调整工件数和机器数,输出甘特图
这是一个使用MATLAB2022a实现的自适应遗传算法解决车间调度问题的程序,能调整工件数和机器数,输出甘特图和适应度收敛曲线。程序通过编码初始化、适应度函数、遗传操作(选择、交叉、变异)及自适应机制进行优化,目标如最小化完工时间。算法在迭代过程中动态调整参数,以提升搜索效率和全局优化。
|
6月前
|
算法
基于ADM自适应增量调制算法的matlab性能仿真
该文主要探讨基于MATLAB的ADM自适应增量调制算法仿真,对比ADM与DM算法。通过图表展示调制与解调效果,核心程序包括输入输出比较及SNR分析。ADM算法根据信号斜率动态调整量化步长,以适应信号变化。在MATLAB中实现ADM涉及定义输入信号、初始化参数、执行算法逻辑及性能评估。