CN114240769A - 一种图像处理方法以及装置 - Google Patents

一种图像处理方法以及装置 Download PDF

Info

Publication number
CN114240769A
CN114240769A CN202111369299.4A CN202111369299A CN114240769A CN 114240769 A CN114240769 A CN 114240769A CN 202111369299 A CN202111369299 A CN 202111369299A CN 114240769 A CN114240769 A CN 114240769A
Authority
CN
China
Prior art keywords
coordinate system
image
frame
radii
input image
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
Application number
CN202111369299.4A
Other languages
English (en)
Inventor
李晓东
袁鹏
冯柏岚
张帅宾
赵强
代锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202111369299.4A priority Critical patent/CN114240769A/zh
Publication of CN114240769A publication Critical patent/CN114240769A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Processing (AREA)

Abstract

本申请提供一种图像处理方法以及装置,用于基于球面来对图像进行拼接,从而减少图像的畸变,得到效果更好的全景图像。该方法包括:首先获取待拼接的多帧输入图像;然后确定多帧输入图像中的每帧输入图像在第一坐标系中的位置,第一坐标系包括球形空间中的坐标系,相当于建立了一个统一的世界坐标系,并确定每帧输入图像在世界坐标系中的位置;随后根据每帧输入图像在第一坐标系中的位置对多帧输入图像进行拼接,得到全景图像。

Description

一种图像处理方法以及装置
技术领域
本申请涉及人工智能领域,尤其涉及一种图像处理方法以及装置。
背景技术
通常,在一些需要使用图像的场景中,如自动驾驶、辅助驾驶或者监测场景等,通常可以使用多个摄像头对不同方位的场景进行拍摄。例如,在自动驾驶和辅助驾驶相关业务中,为了感知车辆全方向的视野,往往将多个摄像头架设在车辆的不同位置并将拍摄的多幅图像进行拼接展示。为了尽可能减小摄像头的使用个数,并确保相邻相机有足够的重叠区域,自动驾驶和辅助驾驶业务中往往会使用更大视野的鱼眼相机。而鱼眼相机有严重的畸变,因此拼接得到的全景图像可能存在畸变。因此,如何得到更准确的全景图像,成为亟待解决的问题。
发明内容
本申请提供一种图像处理方法以及装置,用于基于球面来对图像进行拼接,从而减少图像的畸变,得到效果更好的全景图像。
有鉴于此,第一方面,本申请提供一种图像处理方法,包括:首先获取待拼接的多帧输入图像;然后确定多帧输入图像中的每帧输入图像在第一坐标系中的位置,第一坐标系包括球形空间中的坐标系,相当于建立了一个统一的世界坐标系,并确定每帧输入图像在世界坐标系中的位置;随后根据每帧输入图像在第一坐标系中的位置对多帧输入图像进行拼接,得到全景图像。
因此,本申请实施方式中,相当于将多帧输入图像平移至同一个球形空间中,将每帧输入图像作为球面贴图进行拼接,从而减少输入图像的畸变,得到更准确的全景图像。如当输入图像为鱼眼图像时,通过球面来展开鱼眼图像,可以减少鱼眼图像的畸变,从而使拼接得到的全景图像的畸变也更少,得到准确清晰的全景图像,使后续的相应操作可以基于更准确的全景图像。
在一种可能的实施方式中,前述的根据每帧输入图像在第一坐标系中的位置对多帧输入图像进行拼接,得到全景图像,可以包括:根据每帧输入图像中对应的拼接半径,将每帧输入图像中的像素点的像素值映射至第一坐标系中对应的球面,得到全景图像,其中,该拼接半径为根据该每帧输入图像在该第一坐标系中的位置确定。
因此,本申请实施方式中,因第一坐标系为球形坐标系,可以是圆球也可以是椭圆球等,因此可以将输入图像作为第一坐标系中的球面上的贴图进行展开,不同输入图像的拍摄距离或者角度可能不相同,因此可以确定每帧输入图像分别对应的拼接半径,从而使最终拼接的全景图像中各个对象的视觉效果更好,所包括的信息更准确。
在一种可能的实施方式中,前述在根据每帧输入图像中对应的拼接半径,将每帧输入图像中的像素点的像素值映射至第一坐标系中对应的球面,得到全景图像之前,上述方法还可以包括:根据每帧输入图像在第一坐标系中的位置,按照至少两种步长确定每帧输入图像对应的拼接半径,可选的该至少两种步长不相同,该至少两种步长可以理解为搜索拼接半径时使用的搜索粒度。
因此,本申请实施方式中,在确定每帧输入图像的拼接半径时,可以按照不同步长来进行半径搜索,从而可以更高效地搜索得到最优的拼接半径。
在一种可能的实施方式中,前述的根据每帧输入图像在第一坐标系中的位置,按照至少两种步长确定每帧输入图像对应的拼接半径,可以包括:以第一图像为例,第一图像是多帧输入图像中的任意一帧,根据第一图像在第一坐标系中的位置,按照第一步长得到多个粗粒度半径,即粗粒度地搜索出一些拼接半径;计算多个粗粒度半径对应的第一重投影误差,该第一重投影误差为第一图像在第一坐标系中的观测位置和按照粗粒度半径投影至第一坐标系后的预测位置之间的误差;随后根据多个半径对应的重投影误差从多个半径中筛选出第一半径;按照第二步长得到多个细粒度半径,其中,第二步长小于第一步长;计算多个细粒度半径对应的第二重投影误差,该第二重投影误差为第一图像在第一坐标系中的观测位置和按照细粒度半径投影至第一坐标系后的位置之间的误差;根据多个细粒度半径对应的第二重投影误差得到每帧输入图像中的像素点在第一坐标系的半径。
因此,本申请实施方式中,首先以较大步长粗粒度搜索出最优的粗粒度半径,随后在最优的粗粒度半径临近的一定范围内以更新粒度搜索出最优的细粒度半径,从而高效的确定出与每帧输入图像匹配的拼接半径。
在一种可能的实施方式中,确定多帧输入图像中的每帧输入图像在第一坐标系中的位置,包括:确定第二图像在对应的第二坐标系中的位置,第二坐标系为拍摄第二图像的相机对应的坐标系,第二图像为多帧输入图像中的任意一帧;根据第二坐标系与第一坐标系之间的相对位置关系,确定第二图像在第一坐标系中的位置。
本申请实施方式中,在确定每帧输入图像在第一坐标系中的位置时,可以确定拍摄输入图像的相机对应的坐标系,并且确定每帧输入图像中的各个像素点在相机坐标系中的位置,并根据相机坐标系和第一坐标系之间的相对位置关系,准确地确定输入图像在第一坐标系中的位置。
在一种可能的实施方式中,多帧输入图像为通过鱼眼摄像头采集到的图像。通常,鱼眼相机的视场角较大,若仅仅按照矩阵展开,则输出的图像容易产生畸变,因此通过本申请提供的方式,在球面上展开鱼眼图像并进行拼接,可以减少鱼眼图像的畸变,得到更完整的全景图像。
在一种可能的实施方式中,前述的多帧输入图像可以是车辆中设置的摄像头拍摄到的图像,拼接得到的全景图像可以用于在车辆进行自动驾驶时为车辆规划行车路径。因此,本申请实施方式中,可以使用更准确、畸变更少的全景图像来为车辆规划行车路径,可以为车辆规划得到更准确更有效的路径,提高车辆的行车效率和行车安全性。
在一种可能的实施方式中,还可以在车辆的显示屏中展示该全景图像,从而使用户驾驶车辆时可以全方位观测到车辆周边环境,减少车辆盲区,提高车辆行车安全性。
第二方面,本申请提供一种图像处理装置,包括:
获取模块,用于获取多帧输入图像;
定位模块,用于确定多帧输入图像中的每帧输入图像在第一坐标系中的位置,第一坐标系包括球形空间中的坐标系;
拼接模块,用于根据每帧输入图像在第一坐标系中的位置对多帧输入图像进行拼接,得到全景图像。
在一种可能的实施方式中,拼接模块,具体用于:根据每帧输入图像中对应的拼接半径,将每帧输入图像中的像素点的像素值映射至第一坐标系中对应的球面,得到全景图像,其中,该拼接半径为根据该每帧输入图像在该第一坐标系中的位置确定。
在一种可能的实施方式中,拼接模块,具体用于根据每帧输入图像在第一坐标系中的位置,按照至少两种步长确定每帧输入图像对应的拼接半径通其中,该至少两种步长可以理解为搜索拼接半径时使用的搜索粒度。
在一种可能的实施方式中,拼接模块,具体用于:根据第一图像在第一坐标系中的位置,按照第一步长得到多个粗粒度半径,第一图像是多帧输入图像中的任意一帧;计算多个粗粒度半径对应的第一重投影误差,该第一重投影误差为第一图像在第一坐标系中的观测位置和按照粗粒度半径投影至第一坐标系后的位置之间的误差;根据多个半径对应的重投影误差从多个半径中筛选出第一半径;按照第二步长得到多个细粒度半径,第二步长小于第一步长;计算多个细粒度半径对应的第二重投影误差,重投影误差为第一图像在第一坐标系中的观测位置和按照细粒度半径投影至第一坐标系后的位置之间的误差;根据多个细粒度半径对应的重投影误差得到每帧输入图像中的像素点在第一坐标系的半径。
在一种可能的实施方式中,定位模块,具体用于:确定第二图像在对应的第二坐标系中的位置,第二坐标系为拍摄第二图像的相机对应的坐标系,第二图像为多帧输入图像中的任意一帧;根据第二坐标系与第一坐标系之间的相对位置关系,确定第二图像在第一坐标系中的位置。
在一种可能的实施方式中,前述的多帧输入图像为通过鱼眼摄像头采集到的图像。
在一种可能的实施方式中,前述的多帧输入图像为车辆种设置的摄像头拍摄得到,全景图像用于在车辆进行自动驾驶时为车辆规划行车路径。
第三方面,本申请实施例提供一种图像处理装置,包括:处理器和存储器,其中,处理器和存储器通过线路互联,处理器调用存储器中的程序代码用于执行上述第一方面任一项所示的图像处理方法中与处理相关的功能。可选地,该图像处理装置可以是芯片。
第四方面,本申请实施例提供了一种数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行如上述第一方面中任一可选实施方式中与处理相关的功能。
第五方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面中任一可选实施方式中的方法。
第六方面,本申请实施例提供了一种包含计算机程序/指令的计算机程序产品,当其被处理器执行时,使得处理器执行上述第一方面或第一方面中的任一可选实施方式中的方法。
附图说明
图1为本申请提供的一种车辆示意图;
图2为本申请提供的一种图像处理系统的架构示意图;
图3为本申请提供的一种图像处理的应用场景示意图;
图4为本申请提供的另一种图像处理的应用场景示意图;
图5为本申请提供的另一种图像处理的应用场景示意图;
图6为本申请提供的另一种图像处理的应用场景示意图;
图7为本申请提供的另一种图像处理的应用场景示意图;
图8为本申请提供的另一种图像处理的应用场景示意图;
图9为本申请提供的一种图像处理的流程示意图;
图10为本申请提供的另一种图像处理方法的流程意图;
图11为本申请提供的另一种图像处理方法的流程意图;
图12为本申请提供的另一种图像处理的应用场景意图;
图13为本申请提供的另一种图像处理的应用场景意图;
图14为本申请提供的另一种图像处理的应用场景意图;
图15为本申请提供的另一种图像处理方法的流程示意图;
图16为本申请提供的另一种图像处理的应用场景示意图;
图17为本申请提供的一种图像处理装置的结构示意图;
图18为本申请提供的另一种图像处理装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供的图像处理方法可以应用于涉及到图像的场景,如拍照、自动驾驶、场景监测、自动驾驶、无人机拍摄等场景。本申请提供的图像处理的方法可以由图像处理装置执行,该图像处理装置可以是具有拍摄功能或者连接了拍摄设备的电子设备。
例如,本申请提供的方法可以由车辆或者与车辆连接的处理设备来执行,该车辆的结构可以如图1所示,图1为本申请实施例提供的车辆的一种结构示意图,车辆100可以配置为自动驾驶模式。例如,车辆100可以在处于自动驾驶模式中的同时控制自身,并且可通过人为操作来确定车辆及其周边环境的当前状态,确定周边环境中的是否存在障碍物,基于障碍物的信息来控制车辆100。在车辆100处于自动驾驶模式中时,也可以将车辆100置为在没有和人交互的情况下操作。
车辆100可包括各种子系统,例如行进系统102、传感器系统104、控制系统106、一个或多个外围设备108以及电源110、计算机系统112和用户接口116。可选地,车辆100可包括更多或更少的子系统,并且每个子系统可包括多个部件。另外,车辆100的每个子系统和部件可以通过有线或者无线互连。
行进系统102可包括为车辆100提供动力运动的组件。在一个实施例中,行进系统102可包括引擎118、能量源119、传动装置120和车轮/轮胎121。
其中,引擎118可以是内燃引擎、电动机、空气压缩引擎或其他类型的引擎组合,例如,汽油发动机和电动机组成的混动引擎,内燃引擎和空气压缩引擎组成的混动引擎。引擎118将能量源119转换成机械能量。能量源119的示例包括汽油、柴油、其他基于石油的燃料、丙烷、其他基于压缩气体的燃料、乙醇、太阳能电池板、电池和其他电力来源。能量源119也可以为车辆100的其他系统提供能量。传动装置120可以将来自引擎118的机械动力传送到车轮121。传动装置120可包括变速箱、差速器和驱动轴。在一个实施例中,传动装置120还可以包括其他器件,比如离合器。其中,驱动轴可包括可耦合到一个或多个车轮121的一个或多个轴。
传感器系统104可包括感测关于车辆100周边的环境的信息的若干个传感器。例如,传感器系统104可包括定位系统122(定位系统可以是全球定位GPS系统,也可以是北斗系统或者其他定位系统)、惯性测量单元(inertial measurement unit,IMU)124、雷达126、激光测距仪128以及相机130。传感器系统104还可包括被监视车辆100的内部系统的传感器(例如,车内空气质量监测器、燃油量表、机油温度表等)。来自这些传感器中的一个或多个的传感数据可用于检测对象及其相应特性(位置、形状、方向、速度等)。这种检测和识别是自主车辆100的安全操作的关键功能。在本申请以下实施方式中提及的传感器,即可以是雷达126、激光测距仪128或者相机130等。
其中,定位系统122可用于估计车辆100的地理位置。IMU 124用于基于惯性加速度来感知车辆100的位置和朝向变化。在一个实施例中,IMU 124可以是加速度计和陀螺仪的组合。雷达126可利用无线电信号来感知车辆100的周边环境内的物体,具体可以表现为毫米波雷达或激光雷达。在一些实施例中,除了感知物体以外,雷达126还可用于感知物体的速度和/或前进方向。激光测距仪128可利用激光来感知车辆100所位于的环境中的物体。在一些实施例中,激光测距仪128可包括一个或多个激光源、激光扫描器以及一个或多个检测器,以及其他系统组件。相机130可用于捕捉车辆100的周边环境的多个图像。相机130可以是静态相机或视频相机。
控制系统106为控制车辆100及其组件的操作。控制系统106可包括各种部件,其中包括转向系统132、油门134、制动单元136、计算机视觉系统140、线路控制系统142以及障碍避免系统144。
其中,转向系统132可操作来调整车辆100的前进方向。例如在一个实施例中可以为方向盘系统。油门134用于控制引擎118的操作速度并进而控制车辆100的速度。制动单元136用于控制车辆100减速。制动单元136可使用摩擦力来减慢车轮121。在其他实施例中,制动单元136可将车轮121的动能转换为电流。制动单元136也可采取其他形式来减慢车轮121转速从而控制车辆100的速度。计算机视觉系统140可以操作来处理和分析由相机130捕捉的图像以便识别车辆100周边环境中的物体和/或特征。所述物体和/或特征可包括交通信号、道路边界和障碍体。计算机视觉系统140可使用物体识别算法、运动中恢复结构(structure from motion,SFM)算法、视频跟踪和其他计算机视觉技术。在一些实施例中,计算机视觉系统140可以用于为环境绘制地图、跟踪物体、估计物体的速度等等。线路控制系统142用于确定车辆100的行驶路线以及行驶速度。在一些实施例中,线路控制系统142可以包括横向规划模块1421和纵向规划模块1422,横向规划模块1421和纵向规划模块1422分别用于结合来自障碍避免系统144、GPS 122和一个或多个预定地图的数据为车辆100确定行驶路线和行驶速度。障碍避免系统144用于识别、评估和避免或者以其他方式越过车辆100的环境中的障碍体,前述障碍体具体可以表现为实际障碍体和可能与车辆100发生碰撞的虚拟移动体。在一个实例中,控制系统106可以增加或替换地包括除了所示出和描述的那些以外的组件。或者也可以减少一部分上述示出的组件。
车辆100通过外围设备108与外部传感器、其他车辆、其他计算机系统或用户之间进行交互。外围设备108可包括无线数据传输系统146、车载电脑148、麦克风150和/或扬声器152。在一些实施例中,外围设备108为车辆100的用户提供与用户接口116交互的手段。例如,车载电脑148可向车辆100的用户提供信息。用户接口116还可操作车载电脑148来接收用户的输入。车载电脑148可以通过触摸屏进行操作。在其他情况中,外围设备108可提供用于车辆100与位于车内的其它设备通信的手段。例如,麦克风150可从车辆100的用户接收音频(例如,语音命令或其他音频输入)。类似地,扬声器152可向车辆100的用户输出音频。无线数据传输系统146可以直接地或者经由通信网络来与一个或多个设备无线通信。例如,无线数据传输系统146可使用3G蜂窝通信,例如CDMA、EVD0、GSM/GPRS,或者4G蜂窝通信,例如LTE。或者5G蜂窝通信。无线数据传输系统146可利用无线局域网(wireless local areanetwork,WLAN)通信。在一些实施例中,无线数据传输系统146可利用红外链路、蓝牙或ZigBee与设备直接通信。其他无线协议,例如各种车辆数据传输系统,例如,无线数据传输系统146可包括一个或多个专用短程通信(dedicated short range communications,DSRC)设备,这些设备可包括车辆和/或路边台站之间的公共和/或私有数据通信。
电源110可向车辆100的各种组件提供电力。在一个实施例中,电源110可以为可再充电锂离子或铅酸电池。这种电池的一个或多个电池组可被配置为电源为车辆100的各种组件提供电力。在一些实施例中,电源110和能量源119可一起实现,例如一些全电动车中那样。
车辆100的部分或所有功能受计算机系统112控制。计算机系统112可包括至少一个处理器113,处理器113执行存储在例如存储器114这样的非暂态计算机可读介质中的指令115。计算机系统112还可以是采用分布式方式控制车辆100的个体组件或子系统的多个计算设备。处理器113可以是任何常规的处理器,诸如商业可获得的中央处理器(centralprocessing unit,CPU)。可选地,处理器113可以是诸如专用集成电路(applicationspecific integrated circuit,ASIC)或其它基于硬件的处理器的专用设备。尽管图1功能性地图示了处理器、存储器、和在相同块中的计算机系统112的其它部件,但是本领域的普通技术人员应该理解该处理器、或存储器实际上可以包括不存储在相同的物理外壳内的多个处理器、或存储器。例如,存储器114可以是硬盘驱动器或位于不同于计算机系统112的外壳内的其它存储介质。因此,对处理器113或存储器114的引用将被理解为包括可以并行操作或者可以不并行操作的处理器或存储器的集合的引用。不同于使用单一的处理器来执行此处所描述的步骤,诸如转向组件和减速组件的一些组件每个都可以具有其自己的处理器,所述处理器只执行与特定于组件的功能相关的计算。
在此处所描述的各个方面中,处理器113可以位于远离车辆100并且与车辆100进行无线通信。在其它方面中,此处所描述的过程中的一些在布置于车辆100内的处理器113上执行而其它则由远程处理器113执行,包括采取执行单一操纵的必要步骤。
在一些实施例中,存储器114可包含指令115(例如,程序逻辑),指令115可被处理器113执行来执行车辆100的各种功能,包括以上描述的那些功能。存储器114也可包含额外的指令,包括向行进系统102、传感器系统104、控制系统106和外围设备108中的一个或多个发送数据、从其接收数据、与其交互和/或对其进行控制的指令。除了指令115以外,存储器114还可存储数据,例如道路地图、路线信息,车辆的位置、方向、速度以及其它这样的车辆数据,以及其他信息。这种信息可在车辆100在自主、半自主和/或手动模式中操作期间被车辆100和计算机系统112使用。用户接口116,用于向车辆100的用户提供信息或从其接收信息。可选地,用户接口116可包括在外围设备108的集合内的一个或多个输入/输出设备,例如无线数据传输系统146、车载电脑148、麦克风150或扬声器152等。
计算机系统112可基于从各种子系统(例如,行进系统102、传感器系统104和控制系统106)以及从用户接口116接收的输入来控制车辆100的功能。例如,计算机系统112可以用个can总线和车辆100内的其他系统或者部件进行通信,如计算机系统112可利用来自控制系统106的输入以便控制转向系统132来避免由传感器系统104和障碍避免系统144检测到的障碍体。在一些实施例中,计算机系统112可操作来对车辆100及其子系统的许多方面提供控制。
可选地,上述这些组件中的一个或多个可与车辆100分开安装或关联。例如,存储器114可以部分或完全地与车辆100分开存在。上述组件可以按有线和/或无线方式来通信地耦合在一起。
可选地,上述组件只是一个示例,实际应用中,上述各个模块中的组件有可能根据实际需要增添或者删除,图1不应理解为对本申请实施例的限制。本申请提供的数据传输方法,可以由计算机系统112、雷达126、激光测距仪130或者外围设备,如车载电脑148或者其他车载终端等来执行。例如,本申请提供的数据传输方法可以由车载电脑148来执行,车载电脑148可以为车辆规划行车路径以及对应的速度曲线,并根据行车路径生成控制指令,将控制指令发送至计算机系统112,由计算机系统112控制车辆的控制系统106中的转向系统132、油门134、制动单元136、计算机视觉系统140、线路控制系统142或者障碍避免系统144等,从而实现车辆的自动驾驶。
上述车辆100可以为轿车、卡车、摩托车、公共汽车、船、飞机、直升飞机、割草机、娱乐车、游乐场车辆、施工设备、电车、高尔夫球车、火车、和手推车等,本申请实施例不做特别的限定。
在一些涉及到图像的场景中,如拍摄、辅助驾驶、自动驾驶或者自动泊车等场景中,可能需要使用多个摄像头或者相机来进行拍摄,然后对多个摄像头或者相机拍摄到的图像进行拼接,从而得到包括了更多信息的图像。例如,在自动驾驶和辅助驾驶相关业务中,为了感知车辆全方向的视野,往往将多个摄像头架设在车辆的不同位置并将拍摄的多幅图像进行拼接展示。为了尽可能减小摄像头的使用个数,并确保相邻相机有足够的重叠区域,自动驾驶和辅助驾驶业务中往往会使用更大视野的鱼眼相机。而通常,鱼眼相机有严重的畸变,传统算法拼接前需要对其进行矫正。由于鱼眼相机的视角很大,甚至超过了180度,这就导致直接使用基于平面的鱼眼畸变矫正方法会带来严重的拉伸和视角的损失。另外由于鱼眼相机位于车辆的不同位置,其光心不重合,因此不能直接用单应性矩阵进行配准。
一些常用的拼接方式可以借助于鸟瞰图的形式完成多路鱼眼的拼接。如首先对采集到对多路鱼眼图像进行畸变矫正,然后利用直接线性变换算法或基于视角参数的逆投影变换算法将鱼眼图像从当前视角转换到俯视视角,但在转换过程中会导致图像视角的损失。最后将转化后俯视图像用传统图像拼接的算法思路得到拼接后的全方向的鸟瞰图。如当存在周围场景高于车身的情况,经过俯视变换后图像的畸变较大,且观测距离近,将出现视角损失和图像内容丢失,无法全面观察周围的环境。
又或者,可以根据经纬度坐标将每张鱼眼图像进行柱面展开,进而在柱面展开图进行特征点提取和特征匹配,根据特征匹配对的三维坐标计算相邻相机的姿态矩阵,并完成全景图像的拼接。然而,若使用柱面投影,无法高效的展示鱼眼相机俯仰角的变换,并且在柱面上下两端会带来拉伸导致的畸变,且鱼眼的柱面展开图中存在畸变,利用其提取的特征点计算出的相机位姿不够准确。
因此,本申请提供一种图像处理方法,可以对多路图像基于球面进行贴图,减少图像畸变,得到更清晰准确的全景图像。
首先,本申请提供的图像处理方法可以应用于多种场景,如车载环视系统、自动驾驶、自动泊车或者辅助驾驶等场景中。
示例性地,本申请应用的框架可以如图2所示。
首先,可以在车辆上设置多个鱼眼相机,用于采集车辆周围环境的图像,可以通过该多路鱼眼相机采集周围环境的图像,得到多帧鱼眼图像。
然后通过本申请提供的图像处理方法得到拼接后的全景图像,具体可以通过本申请提供的图像处理方法来进行拼接,如在获取到多帧输入图像之后,确定每帧输入图像在第一坐标系中的位置,根据每帧输入图像在第一坐标系中的位置,将每帧输入图像作为球形空间的球面进行拼接,得到全景图像。
参阅以下图9-图16的介绍,此处不再赘述。
在得到全景图像之后,可以应用于多种场景中,如可以通过用户可视化界面来进行展示,使用户可以通过可视化界面获知车辆周围的环境;或者进行障碍物检测,基于检测结果来控制车辆,如规划车辆的自动驾驶路径或者控制车辆制动以规避障碍物等,从而提高车辆的行车安全性。
为便于理解,下面示例性地对本申请提供的方法的应用场景进行介绍。
场景一、车载全景影像
以车载四路鱼眼相机采集图像为例,通过车载的四路鱼眼相机来采集车辆周围场景的图像,然后可以通过本申请提供的图像处理方法对多路鱼眼图像进行拼接,得到包括了车辆周围环境的全景图像,如图3所示,车辆的中控部分设置了了显示界面,可以在该显示界面中展示该全景图像。如当用户在驾驶车辆行驶时,可以通过车载显示界面观察车辆周围的环境,如在变道时可以冲分观察车辆周围的环境,从而减少视野盲区,提高车辆的行车安全性。或者,在泊车场景中,用户可以通过车载显示界面观察车辆周围的环境,从而可以规避行人或者障碍物,更安全地完成泊车。
当然,除了再车辆的中控部分的显示界面上显示全景图像,也可以在车辆的后视镜、仪表盘或者通过抬头显示(head up display,HUD)等设置了显示界面的部件中显示全景图像,以使用户可以直观地观察到车辆周围的环境,此处不再一一赘述,具体可以根据实际应用场景来确定展示全景图像的部件。
场景二、辅助驾驶障碍物检测
以车载四路鱼眼相机采集图像为例,若对四路鱼眼相机采集到的图像分别进行障碍物检测,需要对四路鱼眼相机采集到的图像进行去重,计算量较大。因此可以将四路鱼眼相机采集到的图像进行拼接得到全景图像,并在全景图像中进行检测,如图4所示,对检测到的目标通过标记框来突出表示,从而降低计算量,且简化了检测操作,可以降低检测时延。
场景三、手机拍摄
其中,用户的手机中可以设置广角摄像头,在用户启用摄像功能进行拍摄时,可以移动手机,从而拍摄多个角度的图像。可以通过本申请提供的方法将拍摄得到的多个角度的图像进行拼接,得到全景图像,并在手机显示屏中展示。
例如,如图5所示,用户可以使用手机的广角摄像头进行拍摄,在拍摄过程中移动手机,实现对当前场景的多角度拍摄,然后通过本申请提供的方法对多张图像进行拼接,如图6所示,可以在手机中显示拼接后的图像中的视口区域的部分,用户可以通过移动手机来切换视口区域。
场景四、增强现实(augmented reality,AR)
当用户启动了AR应用时,AR设备对摄像头采集到的实时图像进行处理,也可以从实时图像缓存区中获取实时图像,并对该获取到的实时图像进行AR处理。具体的处理过程可以是通过本申请提供的方法,对多个摄像头采集到的图像进行拼接,得到拼接后的全景图像,然后可以在全景图像中添加用户需求的三维对象,用户可以通过AR设备,如图7所示的头戴设备,来查看全景图像以及添加的三维对象。
场景五、无人机拍摄
其中,可以在无人机中设置多个摄像头,可以为无人机规划行程完成自动飞行,也可以由用户来控制无人机飞行。可以通过多个摄像头采集无人机的不同方位的图像,并通过本申请提供的方法进行拼接,得到全景图像,从而可以使无人机在飞行时可以360度感知障碍物,从而对障碍物进行躲避。或者,可以通过无人机中设置的多个摄像头来采集多个方位的图像,并通过拼接得到的全景图像来获取无人机附近360度的深度信息,从而构建无人机的飞行区域的三维地图。例如,如图8所示,可以通过飞行在空中的无人机来采集附近的环境信息,然后通过本申请提供的方法来对多帧图像进行拼接,得到最终的全景图像,从而可以从全景图像中来使用户可以远程获知周围的环境信息。
此外,还可以应用于更多场景,如相机拍照场景、目标检测场景等需要对多帧图像进行拼接的场景,本申请对此不再一一赘述。
参阅图9,本申请提供的一种图像处理方法的流程示意图,如下所述。
901、获取多帧输入图像。
其中,该多帧输入图像可以是一个或多个摄像设备采集到的图像。该摄像设备可以包括各种具有摄像功能的终端,如相机、手机、监测设备、行车记录仪或者智能机器人等,该相机具体可以包括鱼眼相机、深度相机、长焦相机或者其他具有图像传感器的设备等。
当具备多个摄像设备时,该多个摄像设备可以采集到不同场景或者相同场景中不同方位的图像;当具备一个摄像设备时,可以由该一个设备通过调整自身位姿来采集到不同方位的图像等,具体可以根据实际应用场景进行调整。
例如,可以在车辆的各个位置分别设置一个或者多个摄像头,然后通过摄像头采集车辆周围的环境信息,即可得到多帧输入图像。
902、确定每帧输入图像在第一坐标系中的位置。
其中,在得到多帧输入图像之后,可以将多帧输入图像的各个像素点的位置映射至同一个坐标系,即第一坐标系中,从而实现将多帧输入图像平移至相同的空间中,以使后续的图像拼接可以更准确。
具体地,在确定每帧输入图像在第一坐标系中的位置时,以其中任意一帧输入图像为例,为便于区分称为第二图像,确定第二图像在第二坐标系中的位置,该第二坐标系即拍摄该第二图像的相机对应的坐标系,确定第二坐标系与第一坐标系之间的相对位置关系,并根据该相对位置关系确定第二图像在第一坐标系中的位置。
可以理解为,可以首先确定图像中各个像素点在相机坐标系中的位置,将相机坐标系平移至建立的世界坐标系(即第一坐标系)中,得到相机坐标系和世界坐标系之间的相对位置关系,即可根据该相对位置关系将每帧输入图像中的各个像素点在相机坐标系中的位置映射至世界坐标系中,得到每帧输入图像在世界坐标系中的位置。
其中,在将多帧输入图像的各个像素点的位置映射至同一个坐标系时,可以以一个像素点为单位,从而得到更高清的图像,也可以以多个像素点为单位进行映射,提高映射效率,具体可以根据实际应用场景进行调整,本申请对此不作限定。
903、根据每帧输入图像在第一坐标系中的位置对多帧输入图像进行拼接得到全景图像。
其中,在得到每帧输入图像在第一坐标系中的位置之后,可以将每帧输入图像作为球形空间的球面上的贴图进行拼接,得到全景图像。
该全景图像后续可以用于显示或者进行检测或者分割等任务。例如,在自动驾驶场景中,可以将该全景图像用于规划车辆的行车路径中,从而规划出更准确行车效率更高的行车路径,规避障碍物,或者,可以在车载显示屏中显示该全景图像,从而使用户驾驶时可以从显示的全景图像中获知车辆的周围环境,减少驾驶盲区,提高行车安全性。又例如,在拍摄场景中,可以使用多个摄像头进行拍摄,从而可以采集到更完整的图像,提高用户体验。
因此,本申请实施方式中,相当于将多帧输入图像平移至同一个球形空间中,将每帧输入图像作为球面贴图进行拼接,使图像可以充分展开,从而减少输入图像的畸变,得到更准确的全景图像。如当输入图像为鱼眼图像时,通过球面来展开鱼眼图像,可以减少鱼眼图像的畸变,从而使拼接得到的全景图像的畸变也更少,得到准确清晰的全景图像,使后续的相应操作可以基于更准确的全景图像。
具体地,对多帧输入图像进行拼接的具体过程可以包括:根据每帧输入图像的位置在第一坐标系中的位置确定每帧输入图像对应的拼接半径,拼接半径为每帧输入图像和相邻的输入图像之间进行拼接时在第一坐标系中的半径;然后根据每帧输入图像中对应的拼接半径,将每帧输入图像中的像素点的像素值映射至第一坐标系中对应的球面,得到全景图像。因此,本申请实施方式中,在计算出拼接半径后,即可按照拼接半径进行拼接,得到完整的全景图像。
可选地,在获取每帧输入图像对应的拼接半径时,可以按照至少两种步长,从一定范围内确定每帧输入图像的拼接半径。
具体地,以多帧输入图像中的任意一帧图像(为便于区分称为第一图像)为例,可以根据第一图像在第一坐标系中的位置,按照第一步长得到多个粗粒度半径;计算多个粗粒度半径对应的第一重投影误差,该第一重投影误差即为第一图像在第一坐标系中的观测位置和按照粗粒度半径投影至第一坐标系后的位置之间的误差;根据多个半径对应的重投影误差从多个半径中筛选出第一半径;按照第二步长得到多个细粒度半径,第二步长小于第一步长;计算多个细粒度半径对应的第二重投影误差,该第二重投影误差为第一图像在第一坐标系中的观测位置和按照细粒度半径投影至第一坐标系后的位置之间的误差;根据多个细粒度半径对应的第二重投影误差得到每帧输入图像中的像素点在第一坐标系的半径。
因此,本申请实施方式中,可以按照粗粒度步长和细粒度步长来搜索与输入图像匹配的拼接半径,从而可以高效率地搜索出合适的拼接半径,从而可以对输入图像进行更有效的拼接,避免拼接图像时的畸变,拼接得到的全景图像更准确。
前述对本申请提供的图像处理方法的流程进行了介绍,为便于理解,下面结合具体的应用场景对本申请提供的图像处理方法进行更详细的介绍。
示例性地,以输入图像为设置与车辆上的鱼眼相机采集到的鱼眼图像为例进行示例性说明。参阅图10,示例性地,本申请提供的图像处理方法可以包括多个步骤,如图6中所示出的:图像预处理、鱼眼图像全景展开、全景图像拼接以及拼缝处理等,下面分别进行介绍。
图像预处理:即对鱼眼相机采集到的鱼眼图像进行预处理,如通过增加掩膜(mask)的方式,处理鱼眼图像中包括的自车的部分,保留鱼眼图像中采集到的环境信息。其中,图像预处理步骤为可选步骤,例如,若鱼眼图像中不包括自车的部分,则可以无需进行图像预处理。
鱼眼图像全景展开:通常鱼眼图像为一定尺寸的二维图像,可以将每帧鱼眼图像分别展开为全景图像。
全景图像拼接:即将多帧鱼眼图像展开后的全景图像进行拼接,得到最终的全景图像。
拼缝处理:对拼接得到的全景图像的拼缝进行优化处理,从而降低拼缝处的视差,提高用户的观感体验。其中,拼缝处理为可选步骤,例如若各个全景图像处理相同拼接半径,则可以无需进行拼缝处理,也可以得到准确的全景图像。
更具体地,本申请提供的图像处理方法的流程可以参阅图11。首先可以将鱼眼图像展开得到二维全景图坐标,然后将二维全景图坐标映射至单位球坐标中,并将单位球坐标平直至统一的世界坐标系中,结合相机的内参或者外参得到鱼眼图像在统一的世界坐标系中的坐标,然后将鱼眼图像中各个像素点的像素值映射至世界坐标系中,得到最终的全景图像。
下面以在车辆中设置四个鱼眼相机为例,对上述步骤进行更详细的示例性介绍。
步骤一、图像预处理
通常鱼眼相机被固定于车身,相对于车身的位置不会改变,因此可以分别预先设定每个鱼眼相机对应的mask,如图12所示,对自车部分和图像边缘部分进行过滤,从而使过来后得到的鱼眼图像不包括自车部分,且可以减少无效的畸变部分。可以理解为,可以融合鱼眼图像和mask,在融合时鱼眼图像中包括的车身部分或者边缘部分的权重设置较低或者为0,从而减少鱼眼图像中包括的车身部分或者边缘部分。
需要说明的是,图像预处理为可选步骤,在以下步骤中所提及的鱼眼图像,可以是预处理后得到的鱼眼图像,也可以是未进行预处理的图像,具体可以根据实际应用场景调整,本申请对此不作限定。
步骤二、鱼眼图像展开
可以以一个初始的半径将预处理后的四路鱼眼图像分别展开,获得四张全景图像,鱼眼图像内容只占全景图像的一部分。
通常,为了减少眼图像畸变矫正后不会有视角损失,可以看通过全景图的方式对鱼眼图形进行展开,具体步骤包括:
将二维的鱼眼图像中的各个像素点坐标(x,y)映射至球面经纬坐标,表示为:
longitude=xπ
latitude=yπ/2
随后将经纬度坐标平移至单位球中得到(Px,Py,Pz),表示为:
Px=cos(latitude)cos(longitude)
Py=cos(latitude)sin(longitude)
Pz=sin(latitude)
针对不同维度可以设置不同半径,得到新的三维坐标(Px,Py,Pz),如表示为:
Px=r*Px
Py=r*Py
Pz=r*Pz
随后可以将得到三维坐标(Px,Py,Pz)投影至二维鱼眼图像的坐标中,或者可以理解为确定鱼眼图像中的各个坐标在单位球中的坐标。在成像的过程中引入鱼眼图像畸变系数,表示为:
Figure BDA0003361818280000111
θd=(k0θ+k1θ3+k2θ5+k3θ7+k4θ9+…)
φ=atan2(Pz,Px)
x=fθ×cos(φ)
y=fθ×sin(φ)
其中,θ代表入射角,θd代表畸变之后的夹角,φ代表的与二维平面坐标轴的夹角。
示例性地,如图13所示,将鱼眼图像进行预处理后,将预处理后得到的图像在全景中展开,得到每帧鱼眼图像在全景中的位置。
步骤三、全景图像拼接
示例性地,如图14所示,可以在车辆的不同位置分别设置四个鱼眼相机,如图10中所示出的鱼眼相机1、鱼眼相机2、鱼眼相机3和鱼眼相机4,不同鱼眼相机可以对相对于车辆的不同视野范围内的场景进行采集,分别得到鱼眼图像。为了将多帧鱼眼图像拼接到一张全景图中,需要建立一个统一的世界坐标系。因此可以将每个相机对应的单位球都平移到统一的预设球的球心,如球心0,并通过最终展开的全景图半径进行多张鱼眼图像的拼接。通过将单位球坐标到世界坐标和相机坐标的变换,获得每个鱼眼相机的图像在最终全景图的位置。
具体地,在确定拼接半径时,为了提高拼接效果,本申请提供了由粗到细自适应的计算相邻鱼眼图像的拼接半径方式,示例性地,以任意两帧待拼接的图像I1、I2为例,计算拼接半径的流程可以如图15所示。I1
首先在一定范围内按照粗粒度搜索不同半径下,待拼接图像在世界坐标系中的不同位置,计算计算重投影误差,选择重投影误差最小的R作为粗粒度半径。
随后按照细粒度搜索不同半径下,待拼接图像在世界坐标系中的不同位置,计算计算重投影误差,选择重投影误差最小的R作为粗粒度半径。
其中,粗粒度搜索和细粒度搜索的区别在于以不同的步长进行搜索,粗粒度搜素的步长大于细粒度搜索的步长。因此,本申请实施方式中,通过不同的粒度来搜索最优的拼接半径,从而可以拼接得到更优的全景图像。
具体地,计算重投影误差的过程可以包括:
首先,根据统一坐标系的球心O(x,y)和全景图半径R,将单位球都平移到球心0处,并计算在大球处的三维坐标:
Px=R×Px+Cx
Py=R×Py+Cy
Pz=R×Pz+Cz
随后,根据预先标定好的鱼眼相机外参,包括相机的旋转矩阵r和平移矩阵T,将四个相机所在的三维坐标转换到相机坐标系进行成像:
_x=r11Px+r12Py+r13Pz+T1
_y=r21Px+r22Py+r23Pz+T2
_z=r31Px+r32Py+r33Pz+T3
随后参考前述鱼眼图像展开的方式,在全景图中投影鱼眼图像中各个像素点对应的坐标,并利用重映射得到拼接结果。
然后计算重投影误差,如假设第一幅图拼接到全景图为I1,第二幅图拼接到全景图为I2,那么误差为E=(I1-I2)/M,M代表重叠区域的像素个数。
当重投影误差或者重投影误差的变化值大于一定值时,可以迭代执行前述步骤二,直到重投影误差小于预先设定的值或者重投影的误差小于预先设定的值等,从而得到最终的全景图像。
示例性地,如图16所示,将四帧鱼眼图像分别展开为全景图像并进行拼接之后,得到最终的更准确的全景图像。
因此,本申请提供的方法,可以适应性地确定拼接半径,基于拼接半径来拼接多帧鱼眼图像,有效的解决了基于平面图像畸变校正会带来视角失真的问题,并且即使鱼眼相机的视野超过180度,也可以基于匹配的拼接半径进行拼接,可以适应更多的应用场景。并且,本申请提出了从粗粒度到细粒度的网格搜索方法为相邻相机确定最优拼接半径方法,有效的缓解了非同心鱼眼拼接的视差问题,有效的消除了非同心鱼眼拼接的重影或者错位问题。此外,通过多路相机图像拼接获得全景图像的应用场景广泛,如可以应用在车载全景影像、自动驾驶、辅助驾驶等应用场景,泛化能力强。
前述对本申请提供的图像处理方法的流程进行了详细介绍,下面结合前述的方法流程,对执行该方法流程的装置进行介绍。
首先,参阅图17,本申请提供的一种图像处理装置的结构示意图,该图像处理装置可以包括:
获取模块1701,用于获取多帧输入图像;
定位模块1702,用于确定多帧输入图像中的每帧输入图像在第一坐标系中的位置,第一坐标系包括球形空间中的坐标系;
拼接模块1703,用于根据每帧输入图像在第一坐标系中的位置对多帧输入图像进行拼接,得到全景图像。
在一种可能的实施方式中,拼接模块1703,具体用于:根据每帧输入图像中对应的拼接半径,将每帧输入图像中的像素点的像素值映射至第一坐标系中对应的球面,得到全景图像,其中,该拼接半径为根据该每帧输入图像在该第一坐标系中的位置确定。
在一种可能的实施方式中,拼接模块1703,具体用于根据每帧输入图像在第一坐标系中的位置,按照至少两种步长确定每帧输入图像对应的拼接半径其中,该至少两种步长可以理解为搜索拼接半径时使用的搜索粒度。
在一种可能的实施方式中,拼接模块1703,具体用于:根据第一图像在第一坐标系中的位置,按照第一步长得到多个粗粒度半径,第一图像是多帧输入图像中的任意一帧;计算多个粗粒度半径对应的第一重投影误差,重投影误差为第一图像在第一坐标系中的观测位置和按照粗粒度半径投影至第一坐标系后的位置之间的误差;根据多个半径对应的重投影误差从多个半径中筛选出第一半径;按照第二步长得到出多个细粒度半径,第二步长小于第一步长;计算多个细粒度半径对应的第二重投影误差,重投影误差为第一图像在第一坐标系中的观测位置和按照细粒度半径投影至第一坐标系后的位置之间的误差;根据多个细粒度半径对应的重投影误差筛选出每帧输入图像中的像素点在第一坐标系的半径。
在一种可能的实施方式中,定位模块1702,具体用于:确定第二图像在对应的第二坐标系中的位置,第二坐标系为拍摄第二图像的相机对应的坐标系,第二图像为多帧输入图像中的任意一帧;根据第二坐标系与第一坐标系之间的相对位置关系,确定第二图像在第一坐标系中的位置。
在一种可能的实施方式中,前述的多帧输入图像为通过鱼眼摄像头采集到的图像。
在一种可能的实施方式中,前述的多帧输入图像为车辆种设置的摄像头拍摄得到,全景图像用于在车辆进行自动驾驶时为车辆规划行车路径。
请参阅图18,本申请提供的另一种图像处理装置的结构示意图,如下所述。
该图像处理装置可以包括处理器1801和存储器1802。该处理器1801和存储器1802通过线路互联。其中,存储器1802中存储有程序指令和数据。
存储器1802中存储了前述图9-图16中的步骤对应的程序指令以及数据。
处理器1801用于执行前述图9-图16中任一实施例所示的图像处理装置执行的方法步骤。
可选地,该图像处理装置还可以包括收发器1803,用于接收或者发送数据。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于生成车辆行驶速度的程序,当其在计算机上行驶时,使得计算机执行如前述图9-图16所示实施例描述的方法中的步骤。
可选地,前述的图18中所示的图像处理装置为芯片。
本申请实施例还提供了一种图像处理装置,该图像处理装置也可以称为数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行前述图9-图16中任一实施例所示的图像处理装置执行的方法步骤。
本申请实施例还提供一种数字处理芯片。该数字处理芯片中集成了用于实现上述处理器1801,或者处理器1801的功能的电路和一个或者多个接口。当该数字处理芯片中集成了存储器时,该数字处理芯片可以完成前述实施例中的任一个或多个实施例的方法步骤。当该数字处理芯片中未集成存储器时,可以通过通信接口与外置的存储器连接。该数字处理芯片根据外置的存储器中存储的程序代码来实现上述实施例中图像处理装置执行的动作。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上行驶时,使得计算机执行如前述图9-图16所示实施例描述的方法中图像处理装置所执行的步骤。
本申请实施例提供的图像处理装置可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使服务器内的芯片执行上述图9-图16所示实施例描述的神经网络训练方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
具体地,前述的处理单元或者处理器可以是中央处理器(central processingunit,CPU)、网络处理器(neural-network processing unit,NPU)、图形处理器(graphicsprocessing unit,GPU)、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)或现场可编程逻辑门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器等。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
最后应说明的是:以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (20)

1.一种图像处理方法,其特征在于,包括:
获取多帧输入图像;
确定所述多帧输入图像中的每帧输入图像在第一坐标系中的位置,所述第一坐标系包括球形空间中的坐标系;
根据所述每帧输入图像在第一坐标系中的位置对所述多帧输入图像进行拼接,得到全景图像。
2.根据权利要求1所述的方法,其特征在于,所述根据所述每帧输入图像在第一坐标系中的位置对所述多帧输入图像进行拼接,得到全景图像,包括:
根据所述每帧输入图像中对应的拼接半径,将所述每帧输入图像中的像素点的像素值映射至所述第一坐标系中对应的球面,得到所述全景图像,其中所述拼接半径为根据所述每帧输入图像在所述第一坐标系中的位置确定。
3.根据权利要求2所述的方法,其特征在于,在所述根据所述每帧输入图像中对应的拼接半径,将所述每帧输入图像中的像素点的像素值映射至所述第一坐标系中对应的球面,得到所述全景图像之前,所述方法还包括:
根据所述每帧输入图像在所述第一坐标系中的位置,按照至少两种步长确定所述每帧输入图像对应的拼接半径,其中所述至少两种步长为搜索所述拼接半径时使用的搜索粒度。
4.根据权利要求3所述的方法,其特征在于,所述根据所述每帧输入图像在所述第一坐标系中的位置,按照至少两种步长确定所述每帧输入图像对应的拼接半径,包括:
根据第一图像在所述第一坐标系中的位置,按照第一步长搜索得到多个粗粒度半径,所述第一图像是所述多帧输入图像中的任意一帧;
计算所述多个粗粒度半径对应的第一重投影误差,所述第一重投影误差为所述第一图像在所述第一坐标系中的观测位置和按照所述粗粒度半径投影至所述第一坐标系后的位置之间的误差;
根据所述多个半径对应的重投影误差从所述多个半径中筛选出第一半径;
按照第二步长得到出多个细粒度半径,所述第二步长小于所述第一步长;
计算所述多个细粒度半径对应的第二重投影误差,所述第二重投影误差为所述第一图像在所述第一坐标系中的观测位置和按照所述细粒度半径投影至所述第一坐标系后的位置之间的误差;
根据所述多个细粒度半径对应的所述第二重投影误差得到所述每帧输入图像中的像素点在所述第一坐标系的半径。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述确定所述多帧输入图像中的每帧输入图像在第一坐标系中的位置,包括:
确定第二图像在对应的第二坐标系中的位置,所述第二坐标系为拍摄所述第二图像的相机对应的坐标系,所述第二图像为所述多帧输入图像中的任意一帧;
根据所述第二坐标系与所述第一坐标系之间的相对位置关系,确定所述第二图像在所述第一坐标系中的位置。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述第一坐标系包括椭球形状的球形空间中的坐标系。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述多帧输入图像为通过鱼眼摄像头采集到的图像。
8.根据权利要求1-7中任一项所述的方法,其特征在于,
所述多帧输入图像为车辆中设置的摄像头拍摄得到,所述全景图像用于进行所述车辆的自动驾驶。
9.一种图像处理装置,其特征在于,包括:
获取模块,用于获取多帧输入图像;
定位模块,用于确定所述多帧输入图像中的每帧输入图像在第一坐标系中的位置,所述第一坐标系包括球形空间中的坐标系;
拼接模块,用于根据所述每帧输入图像在第一坐标系中的位置对所述多帧输入图像进行拼接,得到全景图像。
10.根据权利要求9所述的装置,其特征在于,所述拼接模块,具体用于:
根据所述每帧输入图像中对应的拼接半径,将所述每帧输入图像中的像素点的像素值映射至所述第一坐标系中对应的球面,得到所述全景图像,其中,所述拼接半径为根据所述每帧输入图像在所述第一坐标系中的位置确定。
11.根据权利要求10所述的装置,其特征在于,
所述拼接模块,具体用于根据所述每帧输入图像在所述第一坐标系中的位置,按照至少两种步长确定所述每帧输入图像对应的拼接半径,其中,所述至少两种步长为搜索所述拼接半径时使用的搜索粒度。
12.根据权利要求11所述的装置,其特征在于,所述拼接模块,具体用于:
根据第一图像在所述第一坐标系中的位置,按照第一步长搜索得到多个粗粒度半径,所述第一图像是所述多帧输入图像中的任意一帧;
计算所述多个粗粒度半径对应的第一重投影误差,所述第一重投影误差为所述第一图像在所述第一坐标系中的观测位置和按照所述粗粒度半径投影至所述第一坐标系后的位置之间的误差;
根据所述多个半径对应的重投影误差从所述多个半径中筛选出第一半径;
按照第二步长得到多个细粒度半径,所述第二步长小于所述第一步长;
计算所述多个细粒度半径对应的所述第二重投影误差,所述第二重投影误差为所述第一图像在所述第一坐标系中的观测位置和按照所述细粒度半径投影至所述第一坐标系后的位置之间的误差;
根据所述多个细粒度半径对应的所述第二重投影误差得到所述每帧输入图像中的像素点在所述第一坐标系的半径。
13.根据权利要求9-12中任一项所述的装置,其特征在于,所述定位模块,具体用于:
确定第二图像在对应的第二坐标系中的位置,所述第二坐标系为拍摄所述第二图像的相机对应的坐标系,所述第二图像为所述多帧输入图像中的任意一帧;
根据所述第二坐标系与所述第一坐标系之间的相对位置关系,确定所述第二图像在所述第一坐标系中的位置。
14.根据权利要求9-13中任一项所述的装置,其特征在于,所述第一坐标系包括椭球形状的球形空间中的坐标系。
15.根据权利要求9-14中任一项所述的装置,其特征在于,所述多帧输入图像为通过鱼眼摄像头采集到的图像。
16.根据权利要求9-15中任一项所述的装置,其特征在于,
所述多帧输入图像为车辆种设置的摄像头拍摄得到,所述全景图像用于进行所述车辆的自动驾驶。
17.一种图像处理装置,其特征在于,包括一个或多个处理器,所述一个或多个处理器和存储器耦合,所述存储器存储有程序,当所述存储器存储的程序指令被所述一个或多个处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
18.一种计算机可读存储介质,其特征在于,包括程序,当其被处理单元所执行时,执行如权利要求1至8中任一项所述的方法。
19.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现如权利要求1至8中任一项所述方法的步骤。
20.一种芯片,其特征在于,所述芯片包括处理单元和通信接口,所述处理单元通过所述通信接口获取程序指令,程序指令被所述处理单元执行,所述处理单元用于执行如权利要求1至8中任一项所述方法的步骤。
CN202111369299.4A 2021-11-18 2021-11-18 一种图像处理方法以及装置 Pending CN114240769A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111369299.4A CN114240769A (zh) 2021-11-18 2021-11-18 一种图像处理方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111369299.4A CN114240769A (zh) 2021-11-18 2021-11-18 一种图像处理方法以及装置

Publications (1)

Publication Number Publication Date
CN114240769A true CN114240769A (zh) 2022-03-25

Family

ID=80749923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111369299.4A Pending CN114240769A (zh) 2021-11-18 2021-11-18 一种图像处理方法以及装置

Country Status (1)

Country Link
CN (1) CN114240769A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114821544A (zh) * 2022-06-29 2022-07-29 小米汽车科技有限公司 感知信息生成方法、装置、车辆、电子设备及存储介质
CN114820660A (zh) * 2022-05-12 2022-07-29 湖南亚信软件有限公司 图像处理方法、装置、电子设备、存储介质及程序产品
CN115345775A (zh) * 2022-10-18 2022-11-15 北京科技大学 一种面向椭圆状管件外形检测的图像展开方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105635551A (zh) * 2014-10-29 2016-06-01 浙江大华技术股份有限公司 一种球型摄像机生成全景图像的方法及球型摄像机
CN109388455A (zh) * 2018-09-14 2019-02-26 浩云科技股份有限公司 一种基于Opengl es支持多平台的鱼眼图像展开监控方法
CN110728619A (zh) * 2018-07-17 2020-01-24 中科创达软件股份有限公司 一种全景图像拼接渲染方法及装置
US20200104977A1 (en) * 2018-09-30 2020-04-02 Augentix Inc. Method of Adaptive Image Stitching and Image Processing Device
CN113454980A (zh) * 2020-08-24 2021-09-28 深圳市大疆创新科技有限公司 全景拍摄方法、电子设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105635551A (zh) * 2014-10-29 2016-06-01 浙江大华技术股份有限公司 一种球型摄像机生成全景图像的方法及球型摄像机
CN110728619A (zh) * 2018-07-17 2020-01-24 中科创达软件股份有限公司 一种全景图像拼接渲染方法及装置
CN109388455A (zh) * 2018-09-14 2019-02-26 浩云科技股份有限公司 一种基于Opengl es支持多平台的鱼眼图像展开监控方法
US20200104977A1 (en) * 2018-09-30 2020-04-02 Augentix Inc. Method of Adaptive Image Stitching and Image Processing Device
CN113454980A (zh) * 2020-08-24 2021-09-28 深圳市大疆创新科技有限公司 全景拍摄方法、电子设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114820660A (zh) * 2022-05-12 2022-07-29 湖南亚信软件有限公司 图像处理方法、装置、电子设备、存储介质及程序产品
CN114821544A (zh) * 2022-06-29 2022-07-29 小米汽车科技有限公司 感知信息生成方法、装置、车辆、电子设备及存储介质
CN115345775A (zh) * 2022-10-18 2022-11-15 北京科技大学 一种面向椭圆状管件外形检测的图像展开方法及装置

Similar Documents

Publication Publication Date Title
US11657604B2 (en) Systems and methods for estimating future paths
US10475209B2 (en) Camera calibration
JP6944136B2 (ja) 画像処理装置および画像処理方法
WO2022204855A1 (zh) 一种图像处理方法及相关终端装置
US11644839B2 (en) Systems and methods for generating a real-time map using a movable object
CN114240769A (zh) 一种图像处理方法以及装置
US11120280B2 (en) Geometry-aware instance segmentation in stereo image capture processes
CN112740268B (zh) 目标检测方法和装置
CN106444837A (zh) 一种无人机避障方法及系统
CN106799993A (zh) 街景采集方法和系统、车辆
CN112639882A (zh) 定位方法、装置及系统
JP7024737B2 (ja) 情報処理装置と情報処理方法とプログラムおよび撮像装置
WO2022089577A1 (zh) 一种位姿确定方法及其相关设备
CN115205311B (zh) 图像处理方法、装置、车辆、介质及芯片
CN113591518A (zh) 一种图像的处理方法、网络的训练方法以及相关设备
CN112810603B (zh) 定位方法和相关产品
CN115164910B (zh) 行驶路径生成方法、装置、车辆、存储介质及芯片
CN115205461B (zh) 场景重建方法、装置、可读存储介质及车辆
CN115100630B (zh) 障碍物检测方法、装置、车辆、介质及芯片
JP6977725B2 (ja) 画像処理装置および画像処理方法
WO2022266854A1 (zh) 一种车位检测方法及装置
CN114549610A (zh) 一种点云数据的处理方法及相关装置
CN115082886B (zh) 目标检测的方法、装置、存储介质、芯片及车辆
CN114822216B (zh) 生成车位地图的方法、装置、车辆、存储介质及芯片
CN112208438B (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