基于鱼眼图像的目标检测方法及相关设备
技术领域
本发明涉及图像处理技术领域,具体涉及一种基于鱼眼图像的目标检测方法及相关设备。
背景技术
在图像处理领域中,由于鱼眼摄像头为超短焦,其视角范围大,视角一般可达220度或230度。由于鱼眼摄像头的视角范围大,可以呈现更多的信息,所以现在目标检测越来越多的采用鱼眼摄像头拍摄的图像。但是由于鱼眼图像存在较严重的畸变,因此基于鱼眼图像的目标检测多是将鱼眼图像进行畸变矫正,获取矫正后的图像,然后在矫正后的图像中进行目标检测和定位。然而上述的目标检测方法在对鱼眼图像进行矫正后并不能将鱼眼图像完全展开,鱼眼图像的有效范围变小,并且图像边缘处仍然存在畸变和拉伸。这样就导致在进行目标检测时,当目标处于鱼眼图像边缘时不能被检测到。
发明内容
鉴于以上内容,有必要提出一种基于鱼眼图像的目标检测方法、装置、计算机装置及计算机可读存储介质,以在鱼眼图像中进行目标的检测和定位,不需要将鱼眼图像进行畸变矫正和拉伸,减少了鱼眼图像展开与矫正的计算量,并且充分利用鱼眼图像的信息。
本申请的第一方面提供一种基于鱼眼图像的目标检测方法,所述方法包括:
通过鱼眼相机获取鱼眼图像;
利用目标检测算法对所述鱼眼图像进行检测,得到所述鱼眼图像中的目标在像素坐标系中的像素坐标;及
根据所述目标的像素坐标利用公式
计算得到所述目标在世界坐标系中的坐标以对所述鱼眼图像中的目标进行定位,其中,y'根据公式
计算得到,x'根据公式x'=λ×y'计算得到,r根据方程组
计算得到,其中,(u
d,v
d)为所述目标在像素坐标系中的像素坐标,R,t分别为所述鱼眼相机的外部参数,R为世界坐标系和相机坐标系之间的旋转矩阵,t为三维平移向量,f
x、f
y表示以像素为单位的焦距,c
x和c
y是图像坐标系原点在像素坐标系中的坐标,z
c为所述目标所在面到所述鱼眼相机的光心的距离,k
1~k4为所述鱼眼相机的畸变参数,λ根据公式
计算得到。
优选的,所述利用目标检测算法对所述鱼眼图像进行检测,得到所述鱼眼图像中的目标在像素坐标系中的像素坐标包括:
通过角点检测算法检测得到所述鱼眼图像中的角点在所述像素坐标系中的像素坐标作为所述鱼眼图像中的目标的像素坐标。
优选的,所述通过角点检测算法检测得到所述鱼眼图像中的角点在像素坐标系中的像素坐标作为所述鱼眼图像中的目标的像素坐标包括:
建立一系列具有不同角度的角点模板;
将所述鱼眼图像划分成多个子窗口图像,并分别计算每个角点模板与每个子窗口图像的相似度;
当所述子窗口图像与所述角点模板的相似度超过预设阈值时将所述子窗口图像中心的像素确认为角点,并将所确定的角点的像素坐标确定为所述鱼眼图像中的目标的像素坐标。
优选的,所述目标检测算法包括边缘特征的角点检测、基于亮度变化的角点检测、Harris角点检测算法或SUSAN角点检测算法。
本申请的第二方面提供一种基于鱼眼图像的目标检测装置,所述装置包括:
图像获取模块,用于通过鱼眼相机获取鱼眼图像;
坐标检测模块,用于利用目标检测算法对所述鱼眼图像进行检测,得到所述鱼眼图像中的目标在像素坐标系中的像素坐标;及
目标定位模块,用于根据所述目标的像素坐标利用公式
计算得到所述目标在世界坐标系中的坐标以对所述鱼眼图像中的目标进行定位,其中,y'根据公式
计算得到,x'根据公式x'=λ×y'计算得到,r根据方程组
计算得到,其中,(u
d,v
d)为所述目标在像素坐标系中的像素坐标,R,t分别为所述鱼眼相机的外部参数,R为世界坐标系和相机坐标系之间的旋转矩阵,t为三维平移向量,f
x、f
y表示以像素为单位的焦距,c
x和c
y是图像坐标系原点在像素坐标系中的坐标,z
c为所述目标所在面到所述鱼眼相机的光心的距离,k
1~k4为所述鱼眼相机的畸变参数,λ根据公式
计算得到。
优选的,所述坐标检测模块通过角点检测算法检测得到所述鱼眼图像中的角点在所述像素坐标系中的像素坐标作为所述鱼眼图像中的目标的像素坐标。
优选的,所述坐标检测模块通过角点检测算法检测得到所述鱼眼图像中的角点在像素坐标系中的像素坐标作为所述鱼眼图像中的目标的像素坐标包括:
建立一系列具有不同角度的角点模板;
将所述鱼眼图像划分成多个子窗口图像,并分别计算每个角点模板与每个子窗口图像的相似度;
当所述子窗口图像与所述角点模板的相似度超过预设阈值时将所述子窗口图像中心的像素确认为角点,并将所确定的角点的像素坐标确定为所述鱼眼图像中的目标的像素坐标。
优选的,所述目标检测算法包括边缘特征的角点检测、基于亮度变化的角点检测、Harris角点检测算法或SUSAN角点检测算法。
本申请的第三方面提供一种计算机装置,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述基于鱼眼图像的目标检测方法。
本申请的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述基于鱼眼图像的目标检测方法。
本发明中的基于鱼眼图像的目标检测方法可以直接在鱼眼图像中进行目标的检测和定位,不需要将鱼眼图像进行畸变矫正,减少了目标检索的计算量,并且充分利用鱼眼图像的信息。
附图说明
图1是本发明一实施方式中的基于鱼眼图像的目标检测方法的流程图。
图2是本发明一实施方式中基于鱼眼图像的目标检测方法的应用环境示意图。
图3是本发明一实施方式中鱼眼图像的原始图。
图4是将图3经过角点检测算法检测后得到的图像。
图5是本发明一实施方式中基于鱼眼图像的目标检测装置的结构图。
图6是本发明一实施方式中计算机装置的示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
优选地,本发明的基于鱼眼图像的目标检测方法应用在一个或者多个计算机装置中。所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于处理器、外部存储介质、内存等。
所述计算机装置可以是,但不限于,台式计算机、笔记本电脑、云端服务器、智能手机等设备。所述计算机装置可以与用户通过键盘、鼠标、遥控器、触摸板、手势识别设备、声控设备等方式进行人机交互。
实施例一
图1是本发明一实施方式中的基于鱼眼图像的目标检测方法的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。为了便于说明,仅示出了与本发明实施例相关的部分。
如图1所示,所述基于鱼眼图像的目标检测方法具体包括以下步骤:
步骤S11、通过鱼眼相机11获取鱼眼图像。
参阅图2,所示为本发明一实施方式中基于鱼眼图像的目标检测方法的应用环境示意图。所述方法应用在一图像采集装置1中。所述图像采集装置1包括鱼眼相机11,所述图像采集装置1通过鱼眼相机11采集图像采集装置1周围环境的人或物的鱼眼图像。在另一实施方式中,所述图像采集装置1可以从其内部的存储装置中获取鱼眼图像。在其他实施方式中,所述图像采集装置1还可以从与其通信连接的电子装置2中获取图像。其中,所述电子装置2可以是,但不限于服务器、服务器群集、手机、平板电脑等装置。所述图像采集装置1可以通过一网络3与所述电子装置2通信连接并从所述电子装置2中获取鱼眼图像。在一具体实施方式中,用于支持图像采集装置1与电子装置2进行通信的网络3可以是有线网络,也可以是无线网络,例如无线电、无线保真(Wireless Fidelity,WIFI)、蜂窝、卫星、广播等。
步骤S12、利用目标检测算法对所述鱼眼图像进行检测,得到所述鱼眼图像中的目标在像素坐标系中的像素坐标。
本实施方式中,通过角点检测算法检测得到所述鱼眼图像中的角点在像素坐标系中的像素坐标作为鱼眼图像中的目标的像素坐标。在一实施方式中,所述图像采集装置1可以利用基于模板的角点检测算法检测得到所述鱼眼图像中的目标的角点在像素坐标系中的像素坐标。具体的,所述图像采集装置1首先建立一系列具有不同角度的角点模板;然后将所述鱼眼图像划分成多个子窗口图像,并分别计算每个角点模板与每个子窗口图像的相似度;当子窗口图像与所述角点模板的相似度超过预设阈值时将所述子窗口图像中心的像素确认为角点,并将所确定的角点的像素坐标确定为鱼眼图像中的目标的像素坐标。在其他实施方式中,所述图像采集装置1还可以利用基于边缘特征的角点检测、基于亮度变化的角点检测、Harris角点检测算法或SUSAN角点检测算法检测得到所述鱼眼图像中的目标的角点在图像像素坐标系中的像素坐标。
举例而言,以鱼眼图像中的棋盘格为目标为例,所述鱼眼图像中的目标棋盘格在通过角点检测算法检测前的图像如图3所示。图3中的目标为棋盘格,其由黑白两种极端的颜色组成。图4为鱼眼图像中的棋盘格在通过角点检测算法检测后的图像,其中圆圈表示检测到的角点,所述角点的坐标即为述鱼眼图像中的目标在像素坐标系中的像素坐标。
步骤S13、根据所述目标的像素坐标利用公式
计算得到所述目标在世界坐标系中的坐标以对所述鱼眼图像中的目标进行定位。
本实施方式中,无畸变图像像素坐标(u,v)到摄影机坐标(xc,yc,zc)的转换公式为:
其中,
为内参数矩阵,f
x为内参数矩阵的图像水平轴的尺度因子,f
y为内参矩阵的图像垂直轴的尺度因子,其中,f
x、f
y表示以像素为单位的焦距,c
x和c
y是图像坐标系原点在像素坐标系中的坐标,z
c是目标所在面到鱼眼相机11的光心的距离。
如下为坐标(xc,yc,zc)到有畸变点的像素坐标(ud,vd)的转换公式为:
第一步,得到(ud,vd)对应摄影机坐标系归一化后的坐标(x”,y”,),其推导公式为:
x'=xc/zc;y'=yc/zc (1-3)
r2=x'2+y'2 (1-4)
θ=atan(r) (1-5)
θ'=θ×(1+k1θ2+k2θ4+k3θ6+k4θ8) (1-6)
其中,k1~k4为鱼眼相机11的畸变参数。
scale=θ'/r (1-7)
x”=scale×x' (1-8)
y”=scale×y' (1-9)
第二步,根据式1-1得到(ud,vd):
μd=fx×x”+cx (1-10)
vd=fy×y”+cy (1-11)
摄影机坐标(xc,yc,zc)到世界坐标(X,Y,Z)的转换公式为:
其中,R,t分别为鱼眼相机11的外部参数,R为世界坐标系和相机坐标系之间的旋转矩阵,t为三维平移向量
由以上公式可以推导出鱼眼图像有畸变的点的像素坐标(ud,vd)到世界坐标(X,Y,Z)的转换公式,其推导过程为:
已知有畸变的鱼眼图像的像素坐标(ud,vd),由式1-10和式1-11可得:
x”=(ud-cx)/fx (1-13)
y”=(vd-cy)/fy (1-14)
由式1-8和式1-9可得:
将计算得到的x”,y”值代入式1-15可得出λ值。
由式1-4、式1-7和式1-9可得:
r2=x'2+y'2=(1+λ2)y'2 (1-16)
通过将式1-13和式1-14代入式1-18可得出θ'。将求出的θ'代入式1-6求得θ值。
由式1-4和式1-5可得:
r=tanθ (1-19)
将求出的θ值代入式1-19可得r值。
将式1-19代入式1-16可得:
将计算得到的r值代入式1-20可得y'值。
由式1-15可得:
x'=λ×y' (1-21)
由计算出的y'值和λ值代入式1-21可得出x'值。
根据式1-3和式1-12得到世界坐标(X,Y,Z):
将计算出的x'值及y'值代入式1-22得出由畸变的鱼眼图像的像素坐标(ud,vd)转换到世界坐标(X,Y,Z)。
本发明中的基于鱼眼图像的目标检测方法可以直接在鱼眼图像中进行目标的检测和定位,不需要将鱼眼图像进行畸变矫正,减少了鱼眼图像展开的计算量,并且充分利用鱼眼图像的信息。
实施例二
图5为本发明实施例二提供的基于鱼眼图像的目标检测装置的结构图,为了方便说明,仅示出了与本发明实施例相关的部分,详述如下。
参考图5,基于鱼眼图像的目标检测装置100根据其所执行的功能,可以被划分为多个功能模块,所述各个功能模块用于执行图1对应实施例中的各个步骤,以实现对图像增强的功能。本发明实施例中,基于鱼眼图像的目标检测装置100的功能模块可以包括图像获取模块101、坐标检测模块102以及目标定位模块103。各个功能模块的功能将在下面的实施例中进行详述。
所述图像获取模块101用于通过鱼眼相机11获取鱼眼图像。
所述图像获取模块101通过鱼眼相机11采集图像采集装置1周围环境的人或物的鱼眼图像。在另一实施方式中,所述图像获取模块101从所述图像采集装置1内部的存储装置中获取鱼眼图像。在其他实施方式中,所述图像获取模块101还可以从与所述图像采集装置1通信连接的电子装置2中获取图像。其中,所述电子装置2可以是,但不限于服务器、服务器群集、手机、平板电脑等装置。
所述坐标检测模块102用于利用目标检测算法对所述鱼眼图像进行检测,得到所述鱼眼图像中的目标在像素坐标系中的像素坐标。
本实施方式中,所述坐标检测模块102通过角点检测算法检测得到所述鱼眼图像中的角点在像素坐标系中的像素坐标作为鱼眼图像中的目标的像素坐标。在一实施方式中,所述坐标检测模块102利用基于模板的角点检测算法检测得到所述鱼眼图像中的目标的角点在像素坐标系中的像素坐标。具体的,所述坐标检测模块102首先建立一系列具有不同角度的角点模板;然后将所述鱼眼图像划分成多个子窗口图像,并分别计算每个角点模板与每个子窗口图像的相似度;当子窗口图像与所述角点模板的相似度超过预设阈值时将所述子窗口图像中心的像素确认为角点,并将所确定的角点的像素坐标确定为鱼眼图像中的目标的像素坐标。在其他实施方式中,所述坐标检测模块102还可以利用基于边缘特征的角点检测、基于亮度变化的角点检测、Harris角点检测算法或SUSAN角点检测算法检测得到所述鱼眼图像中的目标的角点在图像像素坐标系中的像素坐标。
举例而言,以鱼眼图像中的棋盘格为目标为例,所述鱼眼图像中的目标棋盘格在通过角点检测算法检测前的图像如图3所示。图3中的目标为棋盘格,其由黑白两种极端的颜色组成。图4为鱼眼图像中的棋盘格在通过角点检测算法检测后的图像,其中圆圈表示检测到的角点,所述角点的坐标即为述鱼眼图像中的目标在像素坐标系中的像素坐标。
所述目标定位模块103用于根据所述目标的像素坐标利用公式
计算得到所述目标在世界坐标系中的坐标以对所述鱼眼图像中的目标进行定位。
本实施方式中,y'根据公式
计算得到,x'根据公式x'=λ×y'计算得到,r根据方程组
计算得到,其中,(u
d,v
d)为所述目标在像素坐标系中的像素坐标,R,t分别为所述鱼眼相机的外部参数,R为世界坐标系和相机坐标系之间的旋转矩阵,t为三维平移向量,f
x为内参数矩阵
的图像水平轴的尺度因子,f
y为内参矩阵
的图像垂直轴的尺度因子,其中,f
x、f
y表示以像素为单位的焦距,c
x和c
y是图像坐标系原点在像素坐标系中的坐标,z
c为所述目标所在面到所述眼相机的光心的距离,k
1~k4为所述鱼眼相机的畸变参数,λ根据公式
计算得到。
本发明中的基于鱼眼图像的目标检测装置可以直接在鱼眼图像中进行目标的检测和定位,不需要将鱼眼图像进行畸变矫正,减少了目标检索的计算量,并且充分利用鱼眼图像的信息。
实施例三
图6为本发明实施例三提供的计算机装置的示意图。所述计算机装置10包括存储器20、处理器30以及存储在所述存储器20中并可在所述处理器30上运行的计算机程序40,例如基于鱼眼图像的目标检测程序。所述处理器30执行所述计算机程序40时实现上述基于鱼眼图像的目标检测方法实施例中的步骤,例如图1所示的步骤S11~S13。或者,所述处理器30执行所述计算机程序40时实现上述装置实施例中各模块/单元的功能,例如图5中的模块101~103。
示例性的,所述计算机程序40可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器30执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序40在所述计算机装置10中的执行过程。例如,所述计算机程序40可以被分割成图5中的图像获取模块101、坐标检测模块102以及目标定位模块103,各模块具体功能参见实施例二。
所述计算机装置10与所述图像采集装置1为同一装置。在其他实施方式中,所述计算机装置10可以是台式计算机、笔记本、掌上电脑及云端服务器等计算设备。本领域技术人员可以理解,所述示意图6仅仅是计算机装置10的示例,并不构成对计算机装置10的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置10还可以包括输入输出设备、网络接入设备、总线等。
所称处理器30可以是中央处理单元(Central Processing Unit,CPU),还可以包括其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器30是所述计算机装置10的控制中心,利用各种接口和线路连接整个计算机装置1的各个部分。
所述存储器20可用于存储所述计算机程序40和/或模块/单元,所述处理器30通过运行或执行存储在所述存储器20内的计算机程序和/或模块/单元,以及调用存储在存储器20内的数据,实现所述计算机装置10的各种功能。所述存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机装置10的使用所创建的数据(比如音频数据、电话本等)等。存储器20可以包括外部存储介质,也可以包括内存。此外,存储器20可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述计算机装置10集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例的方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在本发明所提供的几个实施例中,应该理解到,所揭露的计算机装置和方法,可以通过其它的方式实现。例如,以上所描述的计算机装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
另外,在本发明各个实施例中的各功能单元可以集成在相同处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。计算机装置权利要求中陈述的多个单元或计算机装置也可以由同一个单元或计算机装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。