CN110533577A - 鱼眼图像校正方法及装置 - Google Patents
鱼眼图像校正方法及装置 Download PDFInfo
- Publication number
- CN110533577A CN110533577A CN201810515930.9A CN201810515930A CN110533577A CN 110533577 A CN110533577 A CN 110533577A CN 201810515930 A CN201810515930 A CN 201810515930A CN 110533577 A CN110533577 A CN 110533577A
- Authority
- CN
- China
- Prior art keywords
- video frame
- flake video
- flake
- spherical coordinates
- thread
- 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
- 238000000034 method Methods 0.000 title claims abstract description 85
- 241000251468 Actinopterygii Species 0.000 claims abstract description 157
- 238000003384 imaging method Methods 0.000 claims abstract description 42
- 230000005540 biological transmission Effects 0.000 claims abstract description 16
- 238000012937 correction Methods 0.000 claims description 104
- 230000008569 process Effects 0.000 claims description 41
- 238000013507 mapping Methods 0.000 claims description 27
- 230000008859 change Effects 0.000 claims description 17
- 239000011159 matrix material Substances 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 244000062793 Sorghum vulgare Species 0.000 claims 2
- 235000019713 millet Nutrition 0.000 claims 2
- 238000012545 processing Methods 0.000 abstract description 16
- 238000004364 calculation method Methods 0.000 abstract description 13
- 238000012544 monitoring process Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 210000000056 organ Anatomy 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000000151 deposition Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G06T3/047—
Abstract
本发明公开了一种鱼眼图像校正方法及装置,属于图像处理领域。所述方法包括:在接收到第一显示设备发送的第一显示指令后,获取预存的第一球坐标集合,第一球坐标集合包括多个第一球坐标,多个第一球坐标是第一参考鱼眼视频帧中的多个像素点映射至成像半球面上的多个点的坐标值;根据第一球坐标集合对第一目标时段内拍摄的多个第一鱼眼视频帧进行校正,第一目标时段为接收到第一显示指令之后到鱼眼镜头再次改变拍摄角度之前的时段。本发明实施例提供的技术方案能够降低鱼眼图像校正的计算量。
Description
技术领域
本发明涉及图像处理领域,特别涉及一种鱼眼图像校正方法及装置。
背景技术
当前,设置有鱼眼镜头的监控摄像机(以下称为鱼眼摄像机)在人们的日常生活中已经越来越常见了,其中,鱼眼镜头是一种焦距较小,拍摄视角接近或等于180°的广角镜头,其可以实现无死角监控。鱼眼镜头的拍摄视角虽然较大,但是利用鱼眼镜头拍摄的视频图像(也可以称为鱼眼视频)却往往有着较为严重的畸变,不符合人眼的观察习惯,因此通常情况下通常需要对鱼眼摄像机拍摄的鱼眼视频进行校正。
相关技术中,在对鱼眼视频进行校正时,需要对该鱼眼视频中的每一个视频帧(也可以称为鱼眼视频帧)中的每一个像素点进行球坐标映射,并根据球坐标映射结果对该鱼眼视频帧进行校正,其中球坐标映射指的是将该鱼眼视频帧中的像素点映射至成像半球面上,这种校正方式计算量较大。
发明内容
本发明实施例提供了一种鱼眼图像校正方法及装置,能够减小鱼眼图像校正的计算量。所述技术方案如下:
第一方面,提供了一种鱼眼图像校正方法,所述方法包括:
在接收到第一显示设备发送的第一显示指令后,获取预存的第一球坐标集合,所述第一球坐标集合包括多个第一球坐标,所述多个第一球坐标是第一参考鱼眼视频帧中的多个像素点映射至成像半球面上的多个点的坐标值,所述第一参考鱼眼视频帧是在鱼眼镜头最近一次改变拍摄角度后拍摄得到的鱼眼视频帧;
根据所述第一球坐标集合对第一目标时段内拍摄的多个第一鱼眼视频帧进行校正,所述第一目标时段为接收到所述第一显示指令之后到所述鱼眼镜头再次改变拍摄角度之前的时段。
可选的,所述根据所述第一球坐标集合对第一目标时段内拍摄的多个第一鱼眼视频帧进行校正之后,所述方法还包括:
向所述第一显示设备发送校正后的所述多个第一鱼眼视频帧,校正后的所述多个第一鱼眼视频帧用于供所述第一显示设备显示。
可选的,所述第一显示指令携带第一校正范围信息,所述第一校正范围信息所指示的校正区域范围小于所述第一鱼眼视频帧的额定展示区域范围,所述根据所述第一球坐标集合对多个第一鱼眼视频帧进行校正,包括:
根据所述第一校正范围信息,在每个所述第一鱼眼视频帧中确定第一目标校正区域;
根据所述第一球坐标集合对每个所述第一鱼眼视频帧中的所述第一目标校正区域内的图像进行校正。
可选的,所述方法还包括:
在对所述第一目标校正区域内的图像进行校正的过程中,当接收到所述第一显示设备发送的第二显示指令时,停止对所述第一目标校正区域内的图像进行校正,所述第二显示指令携带第二校正范围信息,所述第二校正范围信息所指示的校正区域范围小于所述第一鱼眼视频帧的额定展示区域范围;
根据所述第二校正范围信息,在第二目标时段内拍摄的多个第二鱼眼视频帧中,分别确定每个第二鱼眼视频帧中的第二目标校正区域,所述第二目标时段为接收到所述第二显示指令之后到所述鱼眼镜头再次改变拍摄角度之前的时段;
根据所述第一球坐标集合对每个所述第二鱼眼视频帧中的所述第二目标校正区域内的图像进行校正。
可选的,所述方法还包括:
在对所述多个第一鱼眼视频帧进行校正的过程中,当接收到第二显示设备发送的第三显示指令时,根据所述第一球坐标集合对所述多个第一鱼眼视频帧和第三目标时段内拍摄的多个第三鱼眼视频帧并行地进行校正,所述第三目标时段为接收到所述第三显示指令之后到所述鱼眼镜头再次改变拍摄角度之前的时段。
可选的,获取预存的第一球坐标集合之前,所述方法还包括:
当接收到拍摄角度变化指令后,根据所述拍摄角度变化指令改变所述鱼眼镜头的拍摄角度;
在改变所述鱼眼镜头的拍摄角度后,获取所述第一参考鱼眼视频帧;
将所述第一参考鱼眼视频帧中的多个像素点分别映射至所述成像半球面,得到多个球面点;
获取每个所述球面点的坐标值,得到所述第一球坐标集合。
可选的,所述根据所述第一球坐标集合对多个第一鱼眼视频帧进行校正,包括:
通过图形处理器GPU中的校正进程,根据所述第一球坐标集合对所述多个第一鱼眼视频帧逐一进行校正。
可选的,所述校正进程包括多个线程块,每个所述线程块包括第一线程集合和第二线程集合,所述第一线程集合和所述第二线程集合均包括多个线程,每个所述第一鱼眼视频帧对应的视频数据包括多个数据段,所述通过图形处理器GPU中的校正进程,根据所述第一球坐标集合对所述多个第一鱼眼视频帧逐一进行校正,包括:
对于每个所述第一鱼眼视频帧对应的视频数据中的每个数据段,通过所述GPU中的一个线程块对所述数据段进行校正;
其中,所述一个线程块中的第一线程集合的线程,用于根据所述第一球坐标集合对所述数据段进行矩阵转换运算,所述一个线程块中的第二线程集合的线程,用于对经过矩阵转换运算的所述数据段进行校正运算。
可选的,所述方法还包括:
在所述校正进程中的目标线程块中的第一线程运行时,判断目标共享内存中的第一内存空间是否被完全占用,所述目标共享内存是分配给所述校正进程中的至少一个线程块的共享内存,所述目标线程块属于所述至少一个线程块,所述目标共享内存包括所述第一内存空间和第二内存空间,所述第一内存空间是分配给所述目标线程块的共享内存空间,所述第二内存空间是分配给所述至少一个线程块中除所述目标线程块以外的线程块的共享内存空间,所述第一线程是所述目标线程块中的任一线程;
当所述第一内存空间被完全占用时,基于所述第二内存空间通过所述GPU运行所述第一线程;
当所述第一内存空间未被完全占用时,基于所述第一内存空间通过所述GPU运行所述第一线程。
第二方面,提供了一种鱼眼图像校正装置,所述装置包括:
获取模块,用于在接收到第一显示设备发送的第一显示指令后,获取预存的第一球坐标集合,所述第一球坐标集合包括多个第一球坐标,所述多个第一球坐标是第一参考鱼眼视频帧中的多个像素点映射至成像半球面上的多个点的坐标值,所述第一参考鱼眼视频帧是在鱼眼镜头最近一次改变拍摄角度后拍摄得到的鱼眼视频帧;
校正模块,用于根据所述第一球坐标集合对第一目标时段内拍摄的多个第一鱼眼视频帧进行校正,所述第一目标时段为接收到所述第一显示指令之后到所述鱼眼镜头再次改变拍摄角度之前的时段。
可选的,所述装置还包括:
发送模块,用于向所述第一显示设备发送校正后的所述多个第一鱼眼视频帧,校正后的所述多个第一鱼眼视频帧用于供所述第一显示设备显示。
可选的,所述第一显示指令携带第一校正范围信息,所述第一校正范围信息所指示的校正区域范围小于所述第一鱼眼视频帧的额定展示区域范围,所述校正模块,用于:
根据所述第一校正范围信息,在每个所述第一鱼眼视频帧中确定第一目标校正区域;
根据所述第一球坐标集合对每个所述第一鱼眼视频帧中的所述第一目标校正区域内的图像进行校正。
可选的,所述校正模块还用于:
在对所述第一目标校正区域内的图像进行校正的过程中,当接收到所述第一显示设备发送的第二显示指令时,停止对所述第一目标校正区域内的图像进行校正,所述第二显示指令携带第二校正范围信息,所述第二校正范围信息所指示的校正区域范围小于所述第一鱼眼视频帧的额定展示区域范围;
根据所述第二校正范围信息,在第二目标时段内拍摄的多个第二鱼眼视频帧中,分别确定每个第二鱼眼视频帧中的第二目标校正区域,所述第二目标时段为接收到所述第二显示指令之后到所述鱼眼镜头再次改变拍摄角度之前的时段;
根据所述第一球坐标集合对每个所述第二鱼眼视频帧中的所述第二目标校正区域内的图像进行校正。
可选的,所述校正模块,还用于:
在对所述多个第一鱼眼视频帧进行校正的过程中,当接收到第二显示设备发送的第三显示指令时,根据所述第一球坐标集合对所述多个第一鱼眼视频帧和第三目标时段内拍摄的多个第三鱼眼视频帧并行地进行校正,所述第三目标时段为接收到所述第三显示指令之后到所述鱼眼镜头再次改变拍摄角度之前的时段。
可选的,所述装置还包括映射模块,所述映射模块,用于:
当接收到拍摄角度变化指令后,根据所述拍摄角度变化指令改变所述鱼眼镜头的拍摄角度;
在改变所述鱼眼镜头的拍摄角度后,获取所述第一参考鱼眼视频帧;
将所述第一参考鱼眼视频帧中的多个像素点分别映射至所述成像半球面,得到多个球面点;
获取每个所述球面点的坐标值,得到所述第一球坐标集合。
可选的,所述校正模块,用于:
通过图形处理器GPU中的校正进程,根据所述第一球坐标集合对所述多个第一鱼眼视频帧逐一进行校正。
可选的,所述校正进程包括多个线程块,每个所述线程块包括第一线程集合和第二线程集合,所述第一线程集合和所述第二线程集合均包括多个线程,每个所述第一鱼眼视频帧对应的视频数据包括多个数据段,所述校正模块,用于:
对于每个所述第一鱼眼视频帧对应的视频数据中的每个数据段,通过所述GPU中的一个线程块对所述数据段进行校正;
其中,所述一个线程块中的第一线程集合的线程,用于根据所述第一球坐标集合对所述数据段进行矩阵转换运算,所述一个线程块中的第二线程集合的线程,用于对经过矩阵转换运算的所述数据段进行校正运算。
可选的,所述校正模块,还用于:
在所述校正进程中的目标线程块中的第一线程运行时,判断目标共享内存中的第一内存空间是否被完全占用,所述目标共享内存是分配给所述校正进程中的至少一个线程块的共享内存,所述目标线程块属于所述至少一个线程块,所述目标共享内存包括所述第一内存空间和第二内存空间,所述第一内存空间是分配给所述目标线程块的共享内存空间,所述第二内存空间是分配给所述至少一个线程块中除所述目标线程块以外的线程块的共享内存空间,所述第一线程是所述目标线程块中的任一线程;
当所述第一内存空间被完全占用时,基于所述第二内存空间通过所述GPU运行所述第一线程;
当所述第一内存空间未被完全占用时,基于所述第一内存空间通过所述GPU运行所述第一线程。
第三方面,提供了一种鱼眼图像校正系统,所述系统包括至少一个显示设备和鱼眼摄像机,所述鱼眼摄像机中设置有如上述第二方面任一所述的鱼眼图像校正装置。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理组件执行时能够实现如上述第一方面任一所述的鱼眼图像校正方法。
本发明实施例提供的技术方案带来的有益效果是:
通过在接收到第一显示设备发送的第一显示指令后,获取预存的第一球坐标集合,并根据该第一球坐标集合对第一目标时段内拍摄的多个第一鱼眼视频帧进行校正,其中,第一球坐标集合包括鱼眼摄像机在鱼眼镜头最近一次改变拍摄角度后拍摄得到的第一参考鱼眼视频帧中的多个像素点映射至成像半球面上的多个点的坐标值,该第一目标时段是鱼眼摄像机接收到第一显示指令之后到鱼眼镜头再次改变拍摄角度之前的时段,这样,在鱼眼镜头相邻两次改变拍摄角度之间的时间段内,鱼眼摄像机可以获取预存的第一球坐标集合,并根据该预存的第一球坐标集合对鱼眼视频帧进行校正,也即是,根据该预存的第一球坐标集合对鱼眼视频帧中的像素点进行像素坐标映射,因此,鱼眼摄像机仅需要对每个鱼眼视频帧中的像素点进行一次像素坐标映射就可以完成对鱼眼视频帧的校正,从而减小了校正的计算量。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是一种鱼眼镜头的示意图。
图1B是一种等距投影模型的示意图。
图2是本发明实施例提供的一种实施环境的示意图。
图3是本发明实施例提供的一种鱼眼图像校正方法的流程图。
图4A是本发明实施例提供的一种鱼眼图像校正方法的流程图。
图4B是本发明实施例提供的一种第一目标校正区域的示意图。
图5是本发明实施例提供的一种鱼眼图像校正装置的框图。
图6是本发明实施例提供的一种鱼眼图像校正装置的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
如图1A所示,鱼眼镜头一般由多个透镜L组合而成,在成像的过程中,入射光线R经过该多个透镜L的折射,入射角逐渐减小,最终投射到成像平面C上,从而在该成像平面C上成像,该成像平面可以为实体平面。由于入射光线在经过鱼眼镜头的多个透镜的折射后入射角减小,因此,初始入射角较大的入射光线也能够投射到成像平面上,这使得鱼眼镜头的拍摄视角较大,通常情况下该拍摄视角能够接近或等于180°。
鱼眼镜头的拍摄视角虽然较大,但是利用鱼眼镜头拍摄的视频图像,也即是鱼眼视频,却往往有着较为严重的畸变,不符合人眼的观察习惯,因此实际应用中需要对鱼眼视频中的视频帧(以下称为鱼眼视频帧)进行鱼眼图像校正(以下简称为校正)以消除畸变。
为了对鱼眼视频帧进行校正,通常需要将鱼眼镜头进行抽象化,使其等效为一个几何成像模型,而后基于该几何成像模型中的几何关系对鱼眼视频帧进行校正。其中,等距投影模型是一种较为常见的鱼眼镜头的几何成像模型,如图1B所示,在等距投影模型中,鱼眼镜头可以被抽象为一个成像半球面,该成像半球面的球心O与鱼眼镜头的光学中心重合,该成像半球面的半径等于鱼眼镜头的等效焦距,该成像半球面的底面XOY与成像平面UO1V平行,且与鱼眼镜头的光轴垂直,也即是图1B中的Z轴与鱼眼镜头的光轴重合。基于该等距投影模型,鱼眼镜头的成像过程可以抽象为两个部分:第一部分为三维空间中的点线性地映射到成像半球面上,第二部分为成像半球面上的点非线性地映射到成像平面上。
在一种可能的情况中,可以根据上述鱼眼镜头的两部分成像过程的逆过程对鱼眼视频帧进行校正,也即是,在对鱼眼视频帧进行校正的过程中,可以先将鱼眼视频帧中的像素点映射至成像半球面上(称为球坐标映射),再将映射至成像半球面上的像素点映射至校正后的鱼眼视频帧中(称为像素坐标映射),换句话说,在对鱼眼视频帧进行校正的过程中,需要将鱼眼视频帧中的每一个像素点进行两次映射,因此,校正过程的计算量较大。
本发明实施例提供了一种鱼眼图像校正方法,可以解决上述问题,图2为该鱼眼图像校正方法所涉及到的实施环境的示意图,如图2所示,该实施环境可以包括鱼眼摄像机10和至少一个显示设备20(图2中仅示出了两个显示设备20),其中,鱼眼摄像机10可以为设置有鱼眼镜头的监控摄像机,显示设备20可以为监视器等具有显示功能的设备,每一个显示设备20均可以通过有线或无线的方式与鱼眼摄像机10通信。显示设备20可以向鱼眼摄像机10发送显示指令,鱼眼摄像机10在接收到该显示指令后可以对当前拍摄的鱼眼视频帧进行校正,并将校正后的鱼眼视频帧发送至该显示设备20中,以由该显示设备20基于校正后的鱼眼视频帧显示鱼眼视频。
例如,架设在某十字路口的鱼眼摄像机10可以与公安机关设置的显示设备20及交通部门设置的显示设备20进行通信。其中,在公安机关的技术人员想要查看该鱼眼摄像机10拍摄的鱼眼视频时,该技术人员可以触发公安机关设置的显示设备20向鱼眼摄像机10发送显示指令,鱼眼摄像机10接收到该显示指令后,可以对当前拍摄的鱼眼视频帧进行校正,并将校正后的鱼眼视频帧发送至该公安机关设置的显示设备20中,以由该公安机关设置的显示设备20基于校正后的鱼眼视频帧显示鱼眼视频。
在本发明的一个可选的实施例中,鱼眼摄像机10中可以安装有嵌入式处理芯片和通信模块,该通信模块用于接收显示设备20发送的显示指令,并用于将校正后的鱼眼视频帧发送至显示设备20中,该嵌入式处理芯片可以包括CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)、内存和显存,其中,CPU用于对通信模块接收到的显示指令进行解析以获取该显示指令的内容,同时,CPU还用于根据显示指令的内容控制GPU对鱼眼视频帧进行校正,在本发明的一个实施例中,上述内存和显存可以为同一存储介质,也可以为不同的存储介质,在内存和显存为不同的存储介质的情况下,CPU可以对内存中存储的数据进行处理,GPU可以对显存中存储的数据进行处理,而当CPU需要对显存中存储的数据进行处理时,需要将该显存中存储的数据传输至内存中,同理地,当GPU需要对内存中存储的数据进行处理时,需要将该内存中存储的数据传输至显存中,在内存和显存为同一存储介质的情况下,CPU和GPU均可以对该存储介质中的数据进行处理,而不需要在内存和显存间传输数据,从而可以提高数据处理的效率。在本发明的一个实施例中,上述嵌入式处理芯片可以为Hisi 3536芯片等。
图3是根据一示例性实施例示出的一种鱼眼图像校正方法的流程图,该鱼眼图像校正方法用于图2所示的鱼眼摄像机10中,如图3所示,该鱼眼图像校正方法包括以下步骤:
步骤301、在接收到第一显示设备发送的第一显示指令后,鱼眼摄像机获取预存的第一球坐标集合,该第一球坐标集合包括多个第一球坐标,该多个第一球坐标是第一参考鱼眼视频帧中的多个像素点映射至成像半球面上的多个点的坐标值,该第一参考鱼眼视频帧是鱼眼摄像机在鱼眼镜头最近一次改变拍摄角度后拍摄得到的鱼眼视频帧。
步骤302、鱼眼摄像机根据第一球坐标集合对第一目标时段内拍摄的多个第一鱼眼视频帧进行校正。
其中,第一目标时段为鱼眼摄像机接收到第一显示指令之后到鱼眼镜头再次改变拍摄角度之前的时段。
综上所述,本发明实施例提供的鱼眼图像校正方法,通过在接收到第一显示设备发送的第一显示指令后,获取预存的第一球坐标集合,并根据该第一球坐标集合对第一目标时段内拍摄的多个第一鱼眼视频帧进行校正,其中,该第一球坐标集合包括鱼眼摄像机在鱼眼镜头最近一次改变拍摄角度后拍摄得到的第一参考鱼眼视频帧中的多个像素点映射至成像半球面上的多个点的坐标值,该第一目标时段是鱼眼摄像机接收到第一显示指令之后到鱼眼镜头再次改变拍摄角度之前的时段,这样,在鱼眼镜头相邻两次改变拍摄角度之间的时间段内,鱼眼摄像机可以获取预存的第一球坐标集合,并根据该预存的第一球坐标集合对鱼眼视频帧进行校正,也即是,根据该预存的第一球坐标集合对鱼眼视频帧中的像素点进行像素坐标映射,因此,鱼眼摄像机仅需要对每个鱼眼视频帧中的像素点进行一次像素坐标映射就可以完成对鱼眼视频帧的校正,从而减小了校正的计算量。
图4A是根据一示例性实施例示出的一种鱼眼图像校正方法的流程图,该鱼眼图像校正方法用于图2所示的实施环境中,如图4A所示,该鱼眼图像校正方法包括以下步骤:
步骤401、鱼眼摄像机接收拍摄角度变化指令。
如上所述,鱼眼摄像机可以与至少一个显示设备进行通信,其中,该至少一个显示设备中的任一个显示设备均可以向鱼眼摄像机发送拍摄角度变化指令,该拍摄角度变化指令可以指示鱼眼摄像机改变鱼眼镜头的拍摄角度。
需要指出的是,如上所述,鱼眼摄像机中可以设置有通信模块,步骤401中鱼眼摄像机可以通过该通信模块接收拍摄角度变化指令。
步骤402、鱼眼摄像机根据该拍摄角度变化指令改变鱼眼镜头的拍摄角度。
鱼眼摄像机在接收到该拍摄角度变化指令后,可以通过自身设置的嵌入式处理芯片中的CPU对该拍摄角度变化指令进行解析,而后,鱼眼摄像机可以通过该CPU根据解析结果改变鱼眼镜头的拍摄角度。
步骤403、鱼眼摄像机获取第一参考鱼眼视频帧。
在鱼眼镜头的拍摄角度改变后,鱼眼摄像机可以通过自身设置的嵌入式处理芯片中的GPU对拍摄得到的视频流进行硬解码,以得到第一参考鱼眼视频帧,可选的,该第一参考鱼眼视频帧可以是鱼眼镜头的拍摄角度改变后,鱼眼摄像机拍摄得到的第一个鱼眼视频帧。
步骤404、鱼眼摄像机将第一参考鱼眼视频帧中的多个像素点分别映射至成像半球面,得到多个球面点,并获取该多个球面点的球坐标值。
如上所述,鱼眼摄像机在对鱼眼视频帧进行校正时,需要对鱼眼视频帧中的每一个像素点进行两次映射,该两次映射分别为球坐标映射和像素坐标映射。在步骤404中,鱼眼摄像机可以通过自身设置的嵌入式处理芯片中的GPU对第一参考鱼眼视频帧中的多个像素点中的每个像素点进行球坐标映射,以得到与该多个像素点一一对应的多个球面点,并获取每个球面点的球坐标值,为了方便叙述,下文将第一参考鱼眼视频帧中的像素点映射至成像半球面上的球面点的球坐标值简称为第一球坐标。
可选的,对于第一参考鱼眼视频帧中的任一像素点P(m,n)而言,其中,(m,n)为P点在第一参考鱼眼视频帧的图像坐标系中的坐标值,其对应的第一球坐标可以由鱼眼摄像机通过GPU根据下述公式计算得到:
θ=π-arctan[(d-m)/(e-n)]。
其中,r为第一参考鱼眼视频帧的半径,(d,e)为第一参考鱼眼视频帧的中心点在第一参考鱼眼视频帧的图像坐标系中的坐标值。
需要说明的是,通常情况下,第一参考鱼眼视频帧的分辨率通常较高,例如,该分辨率可以为1200W,换句话说,第一参考鱼眼视频帧中的像素点个数较多,为了减小球坐标映射的计算量,在对第一参考鱼眼视频帧中的像素点进行球坐标映射之前,鱼眼摄像机可以通过GPU基于预设算法对该第一参考鱼眼视频帧进行缩小处理,可选的,该预设算法可以为双线性插值法、三线性插值法、区域累加计算法或近邻取样插值法等,而后,鱼眼摄像机可以通过GPU将经过缩小处理后的第一参考鱼眼视频帧中的每个像素点分别映射至成像半球面上,从而得到多个第一球坐标。
步骤405、鱼眼摄像机获取并存储第一球坐标集合,该第一球坐标集合包括多个第一球坐标。
鱼眼摄像机可以将步骤404中获取的多个第一球坐标以集合的形式存储起来,换句话说,鱼眼摄像机可以将第一球坐标集合存储起来。
当鱼眼摄像机中的鱼眼镜头拍摄角度不变时,鱼眼摄像机拍摄得到的每个鱼眼视频帧中的坐标值相同的像素点映射至成像半球面上的球面点的球坐标也相同,也即是,在鱼眼摄像机中的鱼眼镜头拍摄角度不变时,对于鱼眼摄像机拍摄得到的任意两个鱼眼视频帧Y1和Y2而言,鱼眼视频帧Y1中的像素点P1(m1,n1)和鱼眼视频帧Y2中的像素点P2(m1,n1)映射至成像半球面上的球面点的球坐标相同。因此,在后续步骤中,鱼眼摄像机可以利用该第一球坐标集合对鱼眼摄像机在下一次鱼眼镜头的拍摄角度改变之前拍摄得到的鱼眼视频帧进行校正,也即是,鱼眼摄像机可以利用该第一球坐标集合对鱼眼摄像机在下一次鱼眼镜头的拍摄角度改变之前拍摄得到的鱼眼视频帧中的像素点进行像素坐标映射,这样,鱼眼摄像机在对下一次鱼眼镜头的拍摄角度改变之前拍摄得到的鱼眼视频帧进行校正的过程中,仅需要对鱼眼视频帧中的像素点进行一次映射(像素坐标映射),从而减小了对鱼眼视频帧进行校正的计算量。
步骤406、第一显示设备向鱼眼摄像机发送第一显示指令。
如上所述,鱼眼摄像机可以与至少一个显示设备进行通信,其中,上述第一显示设备即为该至少一个显示设备中的一个显示设备。在鱼眼摄像机获取第一球坐标集合之后到鱼眼镜头下一次改变拍摄角度之前的时间段内,第一显示设备可以在技术人员的触发下向鱼眼摄像机发送第一显示指令,以由鱼眼摄像机在后续步骤中根据该第一显示指令对当前拍摄的多个鱼眼视频帧进行校正,并将校正后的鱼眼视频帧发送至第一显示设备,以使第一显示设备根据该校正后的鱼眼视频帧显示鱼眼视频。其中,所谓当前拍摄的多个鱼眼视频帧指的是鱼眼摄像机接收到该第一显示指令之后到鱼眼镜头下一次改变拍摄角度之前的第一目标时段内鱼眼摄像机拍摄到的多个鱼眼视频帧,下文将该当前拍摄的鱼眼视频帧简称为第一鱼眼视频帧。
通常情况下,由于鱼眼镜头的拍摄视角较大,因此,鱼眼摄像机的监控区域也较大,在一些可能的情况中,技术人员可能只希望查看鱼眼摄像机的部分监控区域内的监控图像。在这种情况下,技术人员在触发第一显示设备向鱼眼摄像机发送第一显示指令的过程中还可以选中该部分监控区域,此时,第一显示设备向鱼眼摄像机发送的第一显示指令可以携带第一校正范围信息。在后续步骤中,鱼眼摄像机可以根据该第一校正范围信息,在每个第一鱼眼视频帧中确定第一目标校正区域,并仅对该第一目标校正区域内的图像进行校正,由于鱼眼摄像机不需要对整幅第一鱼眼视频帧进行校正,因此大大减少了校正的计算量。其中,第一目标校正区域即为技术人员选中的该部分监控区域在第一鱼眼视频帧中对应的区域,且该第一目标校正区域通常小于第一鱼眼视频帧的额定展示区域范围,第一鱼眼视频帧的额定展示区域范围为整幅第一鱼眼视频帧的范围。
例如,鱼眼摄像机的监控区域可以包括十字路口和三条道路,而技术人员只希望查看十字路口的监控图像,在这种情况下,技术人员可以通过触发第一显示设备的用户界面上显示的矩形选择框等方式,选中该十字路口对应的监控区域,而后,技术人员可以通过第一显示设备进行相应的触发操作(如点击触发按钮),以向鱼眼摄像机发送第一显示指令,该第一显示指令可以携带第一校正范围信息,如图4B所示,在后续步骤中,鱼眼摄像机可以基于该第一校正范围信息在第一鱼眼视频帧D1中确定第一目标校正区域A,并仅对该第一目标校正区域A内的图像进行校正,其中,该第一目标校正区域A即为十字路口对应的监控区域在第一鱼眼视频帧D1中对应的区域。
当然,第一显示指令也可以不携带该第一校正范围信息,在这种情况下,后续步骤中,鱼眼摄像机可以对整幅第一鱼眼视频帧进行校正,下文中,本发明实施例仅以第一显示指令携带第一校正范围信息为例进行说明,第一显示指令不携带该第一校正范围信息的情况与第一显示指令携带第一校正范围信息的情况同理,本发明实施例将不再赘述。
步骤407、鱼眼摄像机在接收到该第一显示指令后,获取预存的第一球坐标集合。
鱼眼摄像机可以通过自身设置的通信模块接收该第一显示指令,并通过自身设置的嵌入式处理芯片中的CPU对该第一显示指令进行解析,以得到该第一显示指令携带的第一校正范围信息。
鱼眼摄像机在通过CPU对该第一显示指令进行解析后,可以通过CPU根据第一显示指令的指示控制嵌入式处理芯片中的GPU对每一个第一鱼眼视频帧中的第一目标校正区域内的图像进行校正,步骤407和步骤408即为鱼眼摄像机通过GPU对每一个第一鱼眼视频帧中的第一目标校正区域内的图像进行校正的技术过程。其中,在步骤407中,鱼眼摄像机可以通过GPU获取预存的第一球坐标集合。
步骤408、鱼眼摄像机根据所述第一球坐标集合对多个第一鱼眼视频帧进行校正。
鱼眼摄像机在获取到预存的第一球坐标集合后,可以通过GPU根据该第一球坐标集合对每一个第一鱼眼视频帧中的第一目标校正区域内的图像的像素点进行像素坐标映射,从而完成对多个第一鱼眼视频帧的校正。
可选的,对于任意一个第一鱼眼视频帧(以下称为目标第一鱼眼视频帧)中的第一目标校正区域内的任意一个像素点M而言,鱼眼摄像机可以通过GPU从第一球坐标集合中获取该像素点M映射至成像半球面上的球面点的球坐标值而后,鱼眼摄像机可以通过GPU根据该球坐标值计算与校正后的鱼眼视频帧中的像素点N对应的目标第一鱼眼视频帧中的像素点N1在目标第一鱼眼视频帧的图像坐标系中的坐标值(x1,y1),并利用该坐标值(x1,y1)在目标第一鱼眼视频帧中确定该像素点N1,而后将该N1像素点的像素值获取为像素点N的像素值,从而完成对像素点M的像素坐标映射,其中,像素点N在校正后的鱼眼视频帧的图像坐标系中的坐标值与像素点M在目标第一鱼眼视频帧的图像坐标系中的坐标值相同,均为(x,y)。
鱼眼摄像机可以通过GPU基于下述公式计算与像素点N对应的像素点N1的坐标值(x1,y1):
其中,r1为目标第一鱼眼视频帧的半径。
可选的,上述计算像素点N对应的像素点N1的坐标值(x1,y1)的技术过程可以由鱼眼摄像机设置的嵌入式处理芯片的GPU中的校正进程执行,该校正进程可以依次对多个第一鱼眼视频帧中的第一目标校正区域内的像素点执行上述技术过程。
可选的,上述校正进程可以包括多个线程块,每个线程块可以包括第一线程集合和第二线程集合,且,第一线程集合和第二线程集合均包括多个线程,在本发明的一个实施例中,该第一线程集合可以包括128个线程,该第二线程集合也可以包括128个线程。此外,每个第一鱼眼视频帧中的第一目标校正区域对应的视频数据可以包括多个数据段,在这种情况下,校正进程计算与像素点N对应的像素点N1的坐标值(x1,y1)的技术过程可以为:对于每个第一鱼眼视频帧中的第一目标校正区域对应的视频数据中的每个数据段而言,校正进程中的一个线程块(为了方便说明,下文统一称为目标线程块)中的第一线程集合的线程可以将该数据段加载至目标共享内存中,而后该第一线程集合的线程可以根据第一球坐标集合对该数据段进行矩阵转换运算,该矩阵转换运算为上述公式(1)和公式(2)的运算,该目标线程块中的第二线程集合的线程可以对经过矩阵转换运算的数据段进行校正运算,该校正运算为上述公式(3)和公式(4)的运算,其中,目标共享内存是分配给校正进程中的至少一个线程块的共享内存,且目标线程块属于该至少一个线程块。
目标共享内存的大小是有限的,为了充分利用该目标共享内存,上述至少一个线程块中的线程可以动态地使用该目标共享内存,该动态使用该目标共享内存的技术过程可以为:
在上述目标线程块中任一线程(以下称为第一线程)运行时,鱼眼摄像机可以通过GPU判断目标共享内存中的第一内存空间是否被完全占用,其中,目标共享内存包括第一内存空间和第二内存空间,第一内存空间是分配给目标线程块的共享内存空间,第二内存空间是分配给上述至少一个线程块中除目标线程块以外的线程块的共享内存空间,当第一内存空间被完全占用时,鱼眼摄像机可以基于第二内存空间通过GPU运行第一线程,当第一内存空间未被完全占用时,鱼眼摄像机可以基于第一内存空间通过GPU运行第一线程。这样,该目标线程块中的线程可以在第一内存空间被完全占用,而第二内存空间未被完全占用时,占用该第二内存空间,从而实现对目标共享内存的动态使用,提高了目标共享内存的使用效率。
例如,校正进程可以包括5个线程块,该5个线程块分别为线程块A、线程块B、线程块C、线程块D和线程块E,目标共享内存是分配给线程块A、线程块B和线程块C的共享内存,目标共享内存包括第一内存空间和第二内存空间,其中,第一内存空间是分配给线程块A的共享内存空间,第二内存空间是分配给线程块B和线程块C的共享内存空间,在线程块A中的任一线程(称为第一线程)运行时,鱼眼摄像机可以通过GPU判断第一内存空间是否被完全占用,当第一内存空间被完全占用时,鱼眼摄像机可以基于第二内存空间通过GPU运行第一线程,当第一内存空间未被完全占用时,鱼眼摄像机可以基于第一内存空间通过GPU运行第一线程。
在本发明的一个实施例中,在鱼眼摄像机对第一目标校正区域内的图像进行校正的过程中,鱼眼摄像机可能会接收到第一显示设备发送的第二显示指令,该第二显示指令可以携带第二校正范围信息,且,该第二校正范围信息所指示的校正区域范围小于第一鱼眼视频帧的额定展示区域范围,在这种情况下,鱼眼摄像机可以停止对第一目标校正区域内的图像进行校正,并根据第二校正范围信息,在第二目标时段内拍摄的多个第二鱼眼视频帧中,分别确定每个第二鱼眼视频帧中的第二目标校正区域,其中,第二目标时段是接收到第二显示指令之后到鱼眼镜头再次改变拍摄角度之前的时段,而后鱼眼摄像机可以根据第一球坐标集合对每个第二鱼眼视频帧中的第二目标校正区域内的图像进行校正,其校正的技术过程与鱼眼摄像机对第一目标校正区域内的图像进行校正的技术过程同理,本发明实施例在此不再赘述。
在本发明的一个实施例中,在鱼眼摄像机对第一目标校正区域内的图像进行校正的过程中,鱼眼摄像机还可能接收到第二显示设备发送的第三显示指令时,其中,第二显示设备为能够与鱼眼摄像机通信的至少一个显示设备中不同于第一显示设备的一个显示设备,在这种情况下,鱼眼摄像机可以通过自身设置的嵌入式处理芯片中的CPU控制GPU根据第一球坐标集合对多个第一鱼眼视频帧中的第一目标校正区域和第三目标时段内拍摄的多个第三鱼眼视频帧并行地进行校正,其中,第三目标时段是接收到第三显示指令之后到鱼眼镜头再次改变拍摄角度之前的时段。由于鱼眼摄像机对多个第一鱼眼视频帧和多个第三鱼眼视频帧并行地进行校正,因此,可以降低对第三鱼眼视频帧的校正时延,继而降低第二显示设备对校正后的鱼眼视频帧的显示时延。
步骤409、鱼眼摄像机向第一显示设备发送校正后的多个第一鱼眼视频帧。
鱼眼摄像机可以通过自身设置的通信模块将校正后的多个第一鱼眼视频帧发送至第一显示设备。
步骤410、第一显示设备根据校正后的多个第一鱼眼视频帧显示鱼眼视频。
需要指出的是,在本发明实施例中,鱼眼摄像机中可以设置有其他类型的处理器或者处理芯片以实现上文所述的嵌入式处理芯片的功能,本发明实施例在此就不一一列举了。
综上所述,本发明实施例提供的鱼眼图像校正方法,通过在接收到第一显示设备发送的第一显示指令后,获取预存的第一球坐标集合,并根据该第一球坐标集合对第一目标时段内拍摄的多个第一鱼眼视频帧进行校正,其中,该第一球坐标集合包括鱼眼摄像机在鱼眼镜头最近一次改变拍摄角度后拍摄得到的第一参考鱼眼视频帧中的多个像素点映射至成像半球面上的多个点的坐标值,该第一目标时段是鱼眼摄像机接收到第一显示指令之后到鱼眼镜头再次改变拍摄角度之前的时段,这样,在鱼眼镜头相邻两次改变拍摄角度之间的时间段内,鱼眼摄像机可以获取预存的第一球坐标集合,并根据该预存的第一球坐标集合对鱼眼视频帧进行校正,也即是,根据该预存的第一球坐标集合对鱼眼视频帧中的像素点进行像素坐标映射,因此,鱼眼摄像机仅需要对每个鱼眼视频帧中的像素点进行一次像素坐标映射就可以完成对鱼眼视频帧的校正,从而减小了校正的计算量,这样,对于硬件资源一定的鱼眼摄像机而言可以提高校正计算的吞吐量。
图5是根据一示例性实施例示出的一种鱼眼图像校正装置500的框图,该鱼眼图像校正装置500包括:获取模块501和校正模块502。
该获取模块501,用于在接收到第一显示设备发送的第一显示指令后,获取预存的第一球坐标集合,该第一球坐标集合包括多个第一球坐标,该多个第一球坐标是第一参考鱼眼视频帧中的多个像素点映射至成像半球面上的多个点的坐标值,该第一参考鱼眼视频帧是在鱼眼镜头最近一次改变拍摄角度后拍摄得到的鱼眼视频帧。
该校正模块502,用于根据该第一球坐标集合对第一目标时段内拍摄的多个第一鱼眼视频帧进行校正,该第一目标时段为接收到该第一显示指令之后到该鱼眼镜头再次改变拍摄角度之前的时段。
在本发明的一个实施例中,该第一显示指令携带第一校正范围信息,该第一校正范围信息所指示的校正区域范围小于该第一鱼眼视频帧的额定展示区域范围,该校正模块502,用于:根据该第一校正范围信息,在每个该第一鱼眼视频帧中确定第一目标校正区域;根据该第一球坐标集合对每个该第一鱼眼视频帧中的该第一目标校正区域内的图像进行校正。
在本发明的一个实施例中,该校正模块52还用于:在对该第一目标校正区域内的图像进行校正的过程中,当接收到该第一显示设备发送的第二显示指令时,停止对该第一目标校正区域内的图像进行校正,该第二显示指令携带第二校正范围信息,该第二校正范围信息所指示的校正区域范围小于该第一鱼眼视频帧的额定展示区域范围;根据该第二校正范围信息,在第二目标时段内拍摄的多个第二鱼眼视频帧中,分别确定每个第二鱼眼视频帧中的第二目标校正区域,该第二目标时段为接收到该第二显示指令之后到该鱼眼镜头再次改变拍摄角度之前的时段;根据该第一球坐标集合对每个该第二鱼眼视频帧中的该第二目标校正区域内的图像进行校正。
在本发明的一个实施例中,该校正模块502,还用于:在对该多个第一鱼眼视频帧进行校正的过程中,当接收到第二显示设备发送的第三显示指令时,根据该第一球坐标集合对该多个第一鱼眼视频帧和第三目标时段内拍摄的多个第三鱼眼视频帧并行地进行校正,该第三目标时段为接收到该第三显示指令之后到该鱼眼镜头再次改变拍摄角度之前的时段。
在本发明的一个实施例中,该校正模块502,用于:通过图形处理器GPU中的校正进程,根据该第一球坐标集合对该多个第一鱼眼视频帧逐一进行校正。
在本发明的一个实施例中,该校正进程包括多个线程块,每个该线程块包括第一线程集合和第二线程集合,该第一线程集合和该第二线程集合均包括多个线程,每个该第一鱼眼视频帧对应的视频数据包括多个数据段,该校正模块502,用于:对于每个该第一鱼眼视频帧对应的视频数据中的每个数据段,通过该GPU中的一个线程块对该数据段进行校正;其中,该一个线程块中的第一线程集合的线程,用于根据该第一球坐标集合对该数据段进行矩阵转换运算,该一个线程块中的第二线程集合的线程,用于对经过矩阵转换运算的该数据段进行校正运算。
在本发明的一个实施例中,该校正模块502,还用于:在该校正进程中的目标线程块中的第一线程运行时,判断目标共享内存中的第一内存空间是否被完全占用,该目标共享内存是分配给该校正进程中的至少一个线程块的共享内存,该目标线程块属于该至少一个线程块,该目标共享内存包括该第一内存空间和第二内存空间,该第一内存空间是分配给该目标线程块的共享内存空间,该第二内存空间是分配给该至少一个线程块中除该目标线程块以外的线程块的共享内存空间,该第一线程是该目标线程块中的任一线程;当该第一内存空间被完全占用时,基于该第二内存空间通过该GPU运行该第一线程;当该第一内存空间未被完全占用时,基于该第一内存空间通过该GPU运行该第一线程。
本发明实施例还提供了另一种鱼眼图像校正装置600,该鱼眼图像校正装置600除了包括鱼眼图像校正装置500包括的各个模块外,还包括发送模块503和映射模块504。
其中,该发送模块503,用于向该第一显示设备发送校正后的该多个第一鱼眼视频帧,校正后的该多个第一鱼眼视频帧用于供该第一显示设备显示。
该映射模块504,用于:当接收到拍摄角度变化指令后,根据拍摄角度变化指令改变鱼眼镜头的拍摄角度;在改变鱼眼镜头的拍摄角度后,获取第一参考鱼眼视频帧;将第一参考鱼眼视频帧中的多个像素点分别映射至成像半球面,得到多个球面点;获取每个球面点的坐标值,得到第一球坐标集合。
综上所述,本发明实施例提供的鱼眼图像校正装置,通过在接收到第一显示设备发送的第一显示指令后,获取预存的第一球坐标集合,并根据该第一球坐标集合对第一目标时段内拍摄的多个第一鱼眼视频帧进行校正,其中,该第一球坐标集合包括鱼眼摄像机在鱼眼镜头最近一次改变拍摄角度后拍摄得到的第一参考鱼眼视频帧中的多个像素点映射至成像半球面上的多个点的坐标值,该第一目标时段是鱼眼摄像机接收到第一显示指令之后到鱼眼镜头再次改变拍摄角度之前的时段,这样,在鱼眼镜头相邻两次改变拍摄角度之间的时间段内,鱼眼摄像机可以获取预存的第一球坐标集合,并根据该预存的第一球坐标集合对鱼眼视频帧进行校正,也即是,根据该预存的第一球坐标集合对鱼眼视频帧中的像素点进行像素坐标映射,因此,鱼眼摄像机仅需要对每个鱼眼视频帧中的像素点进行一次像素坐标映射就可以完成对鱼眼视频帧的校正,从而减小了校正的计算量。
需要说明的是:上述实施例提供的鱼眼图像校正装置在进行鱼眼图像校正时,仅以上述各功能模块的划分进行举例说明,可选的,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的鱼眼图像校正装置与鱼眼图像校正方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,存储的计算机程序被处理器执行时能够实现上述图3或图4A所示实施例提供的鱼眼图像校正方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (19)
1.一种鱼眼图像校正方法,其特征在于,所述方法包括:
在接收到第一显示设备发送的第一显示指令后,获取预存的第一球坐标集合,所述第一球坐标集合包括多个第一球坐标,所述多个第一球坐标是第一参考鱼眼视频帧中的多个像素点映射至成像半球面上的多个点的坐标值,所述第一参考鱼眼视频帧是在鱼眼镜头最近一次改变拍摄角度后拍摄得到的鱼眼视频帧;
根据所述第一球坐标集合对第一目标时段内拍摄的多个第一鱼眼视频帧进行校正,所述第一目标时段为接收到所述第一显示指令之后到所述鱼眼镜头再次改变拍摄角度之前的时段。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一球坐标集合对第一目标时段内拍摄的多个第一鱼眼视频帧进行校正之后,所述方法还包括:
向所述第一显示设备发送校正后的所述多个第一鱼眼视频帧,校正后的所述多个第一鱼眼视频帧用于供所述第一显示设备显示。
3.根据权利要求1所述的方法,其特征在于,所述第一显示指令携带第一校正范围信息,所述第一校正范围信息所指示的校正区域范围小于所述第一鱼眼视频帧的额定展示区域范围,所述根据所述第一球坐标集合对多个第一鱼眼视频帧进行校正,包括:
根据所述第一校正范围信息,在每个所述第一鱼眼视频帧中确定第一目标校正区域;
根据所述第一球坐标集合对每个所述第一鱼眼视频帧中的所述第一目标校正区域内的图像进行校正。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在对所述第一目标校正区域内的图像进行校正的过程中,当接收到所述第一显示设备发送的第二显示指令时,停止对所述第一目标校正区域内的图像进行校正,所述第二显示指令携带第二校正范围信息,所述第二校正范围信息所指示的校正区域范围小于所述第一鱼眼视频帧的额定展示区域范围;
根据所述第二校正范围信息,在第二目标时段内拍摄的多个第二鱼眼视频帧中,分别确定每个第二鱼眼视频帧中的第二目标校正区域,所述第二目标时段为接收到所述第二显示指令之后到所述鱼眼镜头再次改变拍摄角度之前的时段;
根据所述第一球坐标集合对每个所述第二鱼眼视频帧中的所述第二目标校正区域内的图像进行校正。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在对所述多个第一鱼眼视频帧进行校正的过程中,当接收到第二显示设备发送的第三显示指令时,根据所述第一球坐标集合对所述多个第一鱼眼视频帧和第三目标时段内拍摄的多个第三鱼眼视频帧并行地进行校正,所述第三目标时段为接收到所述第三显示指令之后到所述鱼眼镜头再次改变拍摄角度之前的时段。
6.根据权利要求1所述的方法,其特征在于,所述获取预存的第一球坐标集合之前,所述方法还包括:
当接收到拍摄角度变化指令后,根据所述拍摄角度变化指令改变所述鱼眼镜头的拍摄角度;
在改变所述鱼眼镜头的拍摄角度后,获取所述第一参考鱼眼视频帧;
将所述第一参考鱼眼视频帧中的多个像素点分别映射至所述成像半球面,得到多个球面点;
获取每个所述球面点的坐标值,得到所述第一球坐标集合。
7.根据权利要求1所述的方法,其特征在于,所述根据所述第一球坐标集合对多个第一鱼眼视频帧进行校正,包括:
通过图形处理器GPU中的校正进程,根据所述第一球坐标集合对所述多个第一鱼眼视频帧逐一进行校正。
8.根据权利要求7所述的方法,其特征在于,所述校正进程包括多个线程块,每个所述线程块包括第一线程集合和第二线程集合,所述第一线程集合和所述第二线程集合均包括多个线程,每个所述第一鱼眼视频帧对应的视频数据包括多个数据段,所述通过图形处理器GPU中的校正进程,根据所述第一球坐标集合对所述多个第一鱼眼视频帧逐一进行校正,包括:
对于每个所述第一鱼眼视频帧对应的视频数据中的每个数据段,通过所述GPU中的一个线程块对所述数据段进行校正;
其中,所述一个线程块中的第一线程集合的线程,用于根据所述第一球坐标集合对所述数据段进行矩阵转换运算,所述一个线程块中的第二线程集合的线程,用于对经过矩阵转换运算的所述数据段进行校正运算。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在所述校正进程中的目标线程块中的第一线程运行时,判断目标共享内存中的第一内存空间是否被完全占用,所述目标共享内存是分配给所述校正进程中的至少一个线程块的共享内存,所述目标线程块属于所述至少一个线程块,所述目标共享内存包括所述第一内存空间和第二内存空间,所述第一内存空间是分配给所述目标线程块的共享内存空间,所述第二内存空间是分配给所述至少一个线程块中除所述目标线程块以外的线程块的共享内存空间,所述第一线程是所述目标线程块中的任一线程;
当所述第一内存空间被完全占用时,基于所述第二内存空间通过所述GPU运行所述第一线程;
当所述第一内存空间未被完全占用时,基于所述第一内存空间通过所述GPU运行所述第一线程。
10.一种鱼眼图像校正装置,其特征在于,所述方法包括:
获取模块,用于在接收到第一显示设备发送的第一显示指令后,获取预存的第一球坐标集合,所述第一球坐标集合包括多个第一球坐标,所述多个第一球坐标是第一参考鱼眼视频帧中的多个像素点映射至成像半球面上的多个点的坐标值,所述第一参考鱼眼视频帧是在鱼眼镜头最近一次改变拍摄角度后拍摄得到的鱼眼视频帧;
校正模块,用于根据所述第一球坐标集合对第一目标时段内拍摄的多个第一鱼眼视频帧进行校正,所述第一目标时段为接收到所述第一显示指令之后到所述鱼眼镜头再次改变拍摄角度之前的时段。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
发送模块,用于向所述第一显示设备发送校正后的所述多个第一鱼眼视频帧,校正后的所述多个第一鱼眼视频帧用于供所述第一显示设备显示。
12.根据权利要求10所述的装置,其特征在于,所述第一显示指令携带第一校正范围信息,所述第一校正范围信息所指示的校正区域范围小于所述第一鱼眼视频帧的额定展示区域范围,所述校正模块,用于:
根据所述第一校正范围信息,在每个所述第一鱼眼视频帧中确定第一目标校正区域;
根据所述第一球坐标集合对每个所述第一鱼眼视频帧中的所述第一目标校正区域内的图像进行校正。
13.根据权利要求12所述的装置,其特征在于,所述校正模块还用于:
在对所述第一目标校正区域内的图像进行校正的过程中,当接收到所述第一显示设备发送的第二显示指令时,停止对所述第一目标校正区域内的图像进行校正,所述第二显示指令携带第二校正范围信息,所述第二校正范围信息所指示的校正区域范围小于所述第一鱼眼视频帧的额定展示区域范围;
根据所述第二校正范围信息,在第二目标时段内拍摄的多个第二鱼眼视频帧中,分别确定每个第二鱼眼视频帧中的第二目标校正区域,所述第二目标时段为接收到所述第二显示指令之后到所述鱼眼镜头再次改变拍摄角度之前的时段;
根据所述第一球坐标集合对每个所述第二鱼眼视频帧中的所述第二目标校正区域内的图像进行校正。
14.根据权利要求10所述的装置,其特征在于,所述校正模块,还用于:
在对所述多个第一鱼眼视频帧进行校正的过程中,当接收到第二显示设备发送的第三显示指令时,根据所述第一球坐标集合对所述多个第一鱼眼视频帧和第三目标时段内拍摄的多个第三鱼眼视频帧并行地进行校正,所述第三目标时段为接收到所述第三显示指令之后到所述鱼眼镜头再次改变拍摄角度之前的时段。
15.根据权利要求10所述的装置,其特征在于,所述装置还包括映射模块,所述映射模块,用于:
当接收到拍摄角度变化指令后,根据所述拍摄角度变化指令改变所述鱼眼镜头的拍摄角度;
在改变所述鱼眼镜头的拍摄角度后,获取所述第一参考鱼眼视频帧;
将所述第一参考鱼眼视频帧中的多个像素点分别映射至所述成像半球面,得到多个球面点;
获取每个所述球面点的坐标值,得到所述第一球坐标集合。
16.根据权利要求10所述的装置,其特征在于,所述校正模块,用于:
通过图形处理器GPU中的校正进程,根据所述第一球坐标集合对所述多个第一鱼眼视频帧逐一进行校正。
17.根据权利要求16所述的装置,其特征在于,所述校正进程包括多个线程块,每个所述线程块包括第一线程集合和第二线程集合,所述第一线程集合和所述第二线程集合均包括多个线程,每个所述第一鱼眼视频帧对应的视频数据包括多个数据段,所述校正模块,用于:
对于每个所述第一鱼眼视频帧对应的视频数据中的每个数据段,通过所述GPU中的一个线程块对所述数据段进行校正;
其中,所述一个线程块中的第一线程集合的线程,用于根据所述第一球坐标集合对所述数据段进行矩阵转换运算,所述一个线程块中的第二线程集合的线程,用于对经过矩阵转换运算的所述数据段进行校正运算。
18.根据权利要求17所述的装置,其特征在于,所述校正模块,还用于:
在所述校正进程中的目标线程块中的第一线程运行时,判断目标共享内存中的第一内存空间是否被完全占用,所述目标共享内存是分配给所述校正进程中的至少一个线程块的共享内存,所述目标线程块属于所述至少一个线程块,所述目标共享内存包括所述第一内存空间和第二内存空间,所述第一内存空间是分配给所述目标线程块的共享内存空间,所述第二内存空间是分配给所述至少一个线程块中除所述目标线程块以外的线程块的共享内存空间,所述第一线程是所述目标线程块中的任一线程;
当所述第一内存空间被完全占用时,基于所述第二内存空间通过所述GPU运行所述第一线程;
当所述第一内存空间未被完全占用时,基于所述第一内存空间通过所述GPU运行所述第一线程。
19.一种鱼眼图像校正系统,其特征在于,所述系统包括至少一个显示设备和鱼眼摄像机,所述鱼眼摄像机中设置有如权利要求10至18任一所述的鱼眼图像校正装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810515930.9A CN110533577B (zh) | 2018-05-25 | 2018-05-25 | 鱼眼图像校正方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810515930.9A CN110533577B (zh) | 2018-05-25 | 2018-05-25 | 鱼眼图像校正方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110533577A true CN110533577A (zh) | 2019-12-03 |
CN110533577B CN110533577B (zh) | 2023-08-04 |
Family
ID=68657007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810515930.9A Active CN110533577B (zh) | 2018-05-25 | 2018-05-25 | 鱼眼图像校正方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110533577B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111294580A (zh) * | 2020-03-12 | 2020-06-16 | 佳都新太科技股份有限公司 | 基于gpu的摄像头视频投影方法、装置、设备及存储介质 |
CN112995646A (zh) * | 2021-02-09 | 2021-06-18 | 聚好看科技股份有限公司 | 一种鱼眼视频的显示方法及显示设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120242784A1 (en) * | 2011-03-23 | 2012-09-27 | Kabushiki Kaisha Toshiba | Image processing method, camera module, and photographing method |
CN106920210A (zh) * | 2017-02-27 | 2017-07-04 | 武汉大学 | 一种基于球面展开模型的鱼眼视频实时全景校正方法 |
CN107767422A (zh) * | 2017-09-18 | 2018-03-06 | 深圳开阳电子股份有限公司 | 一种鱼眼镜头的校正方法、装置及便携式终端 |
-
2018
- 2018-05-25 CN CN201810515930.9A patent/CN110533577B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120242784A1 (en) * | 2011-03-23 | 2012-09-27 | Kabushiki Kaisha Toshiba | Image processing method, camera module, and photographing method |
CN106920210A (zh) * | 2017-02-27 | 2017-07-04 | 武汉大学 | 一种基于球面展开模型的鱼眼视频实时全景校正方法 |
CN107767422A (zh) * | 2017-09-18 | 2018-03-06 | 深圳开阳电子股份有限公司 | 一种鱼眼镜头的校正方法、装置及便携式终端 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111294580A (zh) * | 2020-03-12 | 2020-06-16 | 佳都新太科技股份有限公司 | 基于gpu的摄像头视频投影方法、装置、设备及存储介质 |
WO2021179605A1 (zh) * | 2020-03-12 | 2021-09-16 | 佳都新太科技股份有限公司 | 基于gpu的摄像头视频投影方法、装置、设备及存储介质 |
CN112995646A (zh) * | 2021-02-09 | 2021-06-18 | 聚好看科技股份有限公司 | 一种鱼眼视频的显示方法及显示设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110533577B (zh) | 2023-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105872354B (zh) | 图像处理系统和方法、摄像系统、图像生成装置和方法 | |
US11055901B2 (en) | Method, apparatus, medium, and server for generating multi-angle free-perspective video data | |
CN102510474B (zh) | 一种360度全景监控系统 | |
CN106797460B (zh) | 三维视频的重建 | |
CN108564617A (zh) | 多目相机的三维重建方法、装置、vr相机和全景相机 | |
CN106570938A (zh) | 基于opengl 的全景监控方法及系统 | |
JP2020515937A (ja) | 没入型ビデオフォーマットのための方法、装置、及びストリーム | |
KR20170141081A (ko) | 영상 처리 장치 및 그 영상 처리 방법 | |
CN104778656B (zh) | 基于球面透视投影的鱼眼图像校正方法 | |
WO2020063547A1 (zh) | 球面图像处理方法、装置及服务器 | |
TW200917825A (en) | Image processing device and camera system | |
KR20180042627A (ko) | 영상 처리 장치 및 그 영상 처리 방법 | |
JP2019534500A (ja) | 没入型ビデオフォーマットのための方法、機器、及びシステム | |
WO2020048485A1 (zh) | Vr全景摄影系统 | |
RU2698479C2 (ru) | Система, способ и применения съемки | |
CN105809729B (zh) | 一种虚拟场景的球形全景渲染方法 | |
CN107710728A (zh) | 全球面视频成像系统和计算机可读记录介质 | |
CN106453913A (zh) | 预览全景内容的方法及装置 | |
CN111866523B (zh) | 全景视频合成方法、装置、电子设备和计算机存储介质 | |
CN110533577A (zh) | 鱼眼图像校正方法及装置 | |
CN113286138A (zh) | 一种全景视频显示方法及显示设备 | |
CN107197135A (zh) | 一种视频生成方法、播放方法及视频生成装置、播放装置 | |
Afshari et al. | Real-time FPGA implementation of linear blending vision reconstruction algorithm using a spherical light field camera | |
CN106990668A (zh) | 一种全景立体影像的成像方法、装置及系统 | |
US20210074023A1 (en) | Free-viewpoint method and system |
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 |