一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图像处理方法、可读介质和电子设备与流程

2022-06-01 15:47:49 来源:中国专利 TAG:


1.本技术涉及图像处理技术领域,特别涉及一种图像处理方法、可读介质和电子设备。


背景技术:

2.随着图像处理技术的发展,在物联网、自动驾驶等技术领域,越来越多的涉及到对图像的处理。图像信号处理器(image signal processor,isp)作为一种常用的器件,通常会被部署在涉及到图像处理的电子设备中,从而电子设备可以利用isp对图像进行一些预处理,再由其他处理器利用isp预处理后的图像进行目标检测、人脸识别等后处理。例如由电子设备的摄像头采集原始图像,例如bayer格式的图像(一般后缀名为.raw),经过isp的一系列预处理,例如黑电平补偿(black level compensation)、镜头矫正(lens shading correction)、坏像素矫正(bad pixel correction)、等预处理之后,再传送给电子设备的中央处理器(central processing unit,cpu)进行目标检测。
3.在待处理的原始图像的数据量较大时,例如该图像的分辨率较高时,对于对图像处理的实时性要求较高的应用场景,例如自动驾驶应用场景,如果isp的实时处理能力有限,则有可能导致图像处理的时延较大,用户体验不佳。


技术实现要素:

4.有鉴于此,本技术实施例提供了一种图像处理方法、可读介质和电子设备。
5.本技术的技术方案通过利用待处理图像的上一帧图像的图像特征结合预设规则,确定待处理图像的分割点,实现对待处理图像的动态分割,并且利用多个图像信号处理器对分割得到的多个待处理子图像进行协同处理,不仅能够提升图像处理的准确性,还能提升图像处理的实时性能,减少时延。
6.第一方面,本技术提供了一种图像处理方法,用于具有多个图像信号处理器的电子设备,方法包括:
7.获取待处理图像和待处理图像的上一帧图像的图像特征;
8.根据上一帧图像的图像特征和预设规则,确定待处理图像对应的分割点;
9.利用确定的分割点分割待处理图像,得到多个待处理子图像;
10.利用多个图像信号处理器分别对多个待处理子图像分别进行图像预处理,得到多个预处理子图像。
11.在第一方面的一种可能的实现中,待处理图像为电子设备实时采集到的图像。
12.可选地,待处理图像为电子设备通过摄像头实时采集到的图像。
13.在第一方面的一种可能的实现中,待处理图像和上一帧图像之间的时间间隔小于时间阈值。也就是说处理图像为一段时间内采集到的多帧图像中的非首帧图像。
14.在第一方面的一种可能的实现中,图像特征包括图像的灰度值分布情况,并且根据上一帧图像的图像特征和预设规则,确定待处理图像对应的分割点,包括:
15.对上一帧图像进行预分割,得到上一帧图像对应的多个最小分割单元;
16.统计各最小分割单元中所有像素点的灰度值之和;
17.基于统计出的各最小分割单元对应的灰度值之和,确定出待处理图像对应的分割点。
18.在第一方面的一种可能的实现中,基于统计出的各最小分割单元对应的灰度值之和,确定出待处理图像对应的分割点,包括:
19.比较每相邻的两个最小分割单元对应的灰度值之和的差值;
20.将位于灰度值之和的差值最小的相邻两个最小分割单元的中间像素点,作为待处理图像的部分分割点。
21.在第一方面的一种可能的实现中,对上一帧图像进行预分割,得到上一帧图像对应的多个最小分割单元,包括:
22.将上一帧图像按照像素点的行数分割成设定份数,得到上一帧图像对应的多个最小分割单元,并且多个最小分割单元中各最小分割单元的像素点行数相同,或者多个最小分割单元中的第一最小分割单元的像素点行数小于多个最小分割单元中除了第一最小分割单元以外的其他最小分割单元的像素点行数。
23.在第一方面的一种可能的实现中,多个待处理子图像包括第一待处理子图像和第二待处理子图像,多个图像信号处理器包括第一图像信号处理器和第二图像信号处理器,并且
24.利用多个图像信号处理器分别对多个待处理子图像分别进行图像预处理,得到多个预处理子图像,包括:
25.利用第一图像信号处理器对第一待处理子图像进行预处理,并且在确定出第一图像信号处理器的处理进度满足预设条件的情况下,控制第一图像信号处理器向第二图像信号处理器发送触发信号,以通知第二图像信号处理器接收第二待处理子图像数据;
26.在确定出利用第二图像信号处理器处理第二待处理子图像的情况下,将第二待处理子图像通过第二图像信号处理器进行预处理;
27.在确定出第一图像信号处理器完成对第一待处理子图像的预处理的情况下,控制第一图像信号处理器输出第一预处理子图像,并且在确定出第二图像信号处理器完成对第二待处理子图像的预处理的情况下,控制第二图像信号处理器输出第二预处理子图像。
28.在第一方面的一种可能的实现中,上述方法还包括:
29.利用多个预处理子图像进行目标检测处理,得到目标检测结果,或者
30.利用多个预处理子图像进行人脸识别处理,得到人脸识别结果。
31.在第一方面的一种可能的实现中,上述方法还包括:
32.在待处理图像和电子设备已处理的上一帧图像之间的时间间隔大于或等于时间阈值的情况下,将待处理图像按照像素点行数从上至下平均分割成多份,得到像素点行数相同的多个子图像,并且像素点行数相同的多个子图像的份数和电子设备中的图像信号处理器的个数相同。也就是说待处理图像为一段时间内采集的多帧图像中的首帧图像。
33.在第一方面的一种可能的实现中,电子设备包括中央处理器,并且
34.待处理图像的上一帧图像的图像特征是由多个图像信号处理器中的其中一个获取的,或者
35.待处理图像的上一帧图像的图像特征是由中央处理器获取的。
36.第二方面,本技术提供了一种计算机可读存储介质,计算机可读存储介质上存储有指令,该指令在电子设备上执行时使电子设备执行上述第一方面以及第一方面的任意一种可能的实现中的图像处理方法。
37.第三方面,本技术提供了一种计算机程序产品,计算机程序产品包括指令,指令当被一个或多个处理器执行时用于实现如上述第一方面以及第一方面的任意一种可能的实现中的图像处理方法。
38.第四方面,本技术提供了一种电子设备,包括:
39.存储器,用于存储指令,以及
40.一个或多个处理器,当指令被一个或多个处理器执行时,处理器执行上述第一方面以及第一方面的任意一种可能的实现中的图像处理方法。
附图说明
41.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
42.图1为本技术实施例提供的一种自动驾驶的应用场景示意图;
43.图2为本技术实施例提供的一种图像处理方法的简要信号流向示意图;
44.图3为本技术实施例提供的一种自动驾驶汽车的硬件结构示意图;
45.图4为本技术实施例提供的一种图像处理方法的流程示意图;
46.图5为本技术实施例提供的一种图像的动态分割方法的流程示意图;
47.图6为本技术实施例提供的一种图像分割的简要示意图;
48.图7为本技术实施例提供的一种多个isp协同处理多张子图像的方法流程示意图;
49.图8为本技术实施例提供的一种isp的状态时序示意图;
50.图9为本技术实施例提供的一种isp的硬件结构示意图;
51.图10为本技术实施例提供的一种isp中的通用功能模块对图像数据进行处理的过程示意图;
52.图11为本技术实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
53.本技术的说明性实施例包括但不限于一种图像处理方法、可读介质和电子设备。
54.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
55.下面首先结合图1,介绍本技术技术方案适用的一种自动驾驶的应用场景。
56.如图1所示,其中包括自动驾驶汽车100以及自动驾驶汽车100行驶路径前方的多个路人。自动驾驶汽车100可以通过摄像头采集周围环境图像,利用采集的图像进行图像识别,从而根据识别结果调整行驶状态。
57.例如,在一些实施例中,摄像头可以在自动驾驶汽车100的行驶过程中实时采集自动驾驶汽车100周围的环境图像,该环境图像中可以包括自动驾驶汽车100行驶道路上的车辆信息、人流信息、路况信息(例如路面有积水、结冰),以及道路上的交通标线信息(例如直行、转弯标线)等。然后将采集的原始图像首先进行预处理,例如对采集的原始图像进行黑电平补偿(black level compensation)、镜头矫正(lens shading correction)、坏像素矫正(bad pixel correction)、颜色插值、噪声去除、白平衡矫正、色彩矫正(color correction)、色彩与对比度加强、自动曝光控制等预处理,从而得到yuv(一种以灰度值和色度来表示图片颜色的颜色空间)或者rgb(一种以红、绿、蓝三种颜色来表示图片颜色的颜色空间)格式的图像。然后对预处理得到的图像进行后处理,例如,对预处理得到的yuv格式或者rgb格式的图像通过自动驾驶汽车100内部署的目标检测模型进行目标检测,从而识别出障碍物,以及时避障。其中,目标检测模型可以是服务器利用预设的大量的路况样本图像对神经网络模型进行训练得到的。
58.为了保证自动驾驶汽车100的安全性能,通常自动驾驶汽车100对图像处理的实时性要求较高。如果在自动驾驶汽车100部署单个isp来实现对摄像头采集的原始图像的预处理,在原始图像的分辨率较高时,例如原始图像的分辨率为1亿像素,而单个isp只能支持对3000万像素的实时处理,则显然单个isp无法满足自动驾驶汽车100的功能需求。
59.为了提升自动驾驶汽车100关于图像处理的实时性能,在一些实施例中,可以在自动驾驶汽车100内部署多个isp,采用多个isp对摄像头采集的原始图像进行处理。具体地,假设自动驾驶汽车100将采集的原始图像分割成固定个数的子图像,自动驾驶汽车100内部署的isp的个数和子图像的个数(也即设定个数)相同,每个isp处理对应的一子图像。例如,在图2所示的实施例中,假设自动驾驶汽车100部署有3个isp,分别为isp1、isp2、isp3,可以将摄像头采集的原始图像p0固定分割为3张子图像,例如,子图像p01、子图像p02、子图像p03。则由isp1对子图像p01进行预处理、isp2对子图像p02进行预处理、isp3对子图像p03进行预处理,再将isp1、isp2、isp3各自的处理结果进行汇总,作为原始图像p0的预处理结果,送入自动驾驶汽车100的中央处理器进行目标检测。
60.在图2所示的实施例中,原始图像是被固定分割的,也即无论原始图像为多大,均将原始图像分割成相同的份数,得到固定个数的子图像,然后每个isp分别处理其中一张子图像。然而,针对不同的原始图像,其中的颜色分布情况有可能会不同,假设将原始图像中颜色很丰富的某个区域(通常颜色丰富的区域信息量较大,意味着该区域包含的特征较多)分割在不同的子图像中,然后利用不同的isp对不同的子图像进行处理,会影响最终的图像处理效果,例如,影响处理后得到的图像的曝光效果,用户体验不佳。特别地,对于实时性要求较高的自动驾驶应用场景,如果通过isp预处理后得到的图像的效果较差,会影响后续利用目标检测模型对预处理后得到的图像进行目标检测的准确性,影响自动驾驶的安全性。
61.为此,本技术提供了一种技术方案,可以应用于任意一种对图像处理实时性要求较高的电子设备中。电子设备中部署有多个isp,可以根据与当前待处理的原始图像相邻的上一帧图像的图像特征,确定如何分割当前待处理图像。例如根据与当前待处理的原始图像相邻的上一帧图像的颜色分布情况,来确定如何分割当前待处理图像。实现对当前待处理的原始图像的动态分割,得到动态分割的多张子图像。由电子设备内部署的各isp分别对动态分割得到的其中一张子图像进行预处理,例如对子图像进行镜头矫正、坏像素矫正、颜
色插值、噪声去除、色彩矫正等预处理。再由电子设备的cpu对预处理后的子图像进行后处理。
62.由于本技术技术方案是基于与当前待处理的原始图像相邻的上一帧图像的图像特征,确定如何对当前待处理的原始图像进行分割的。从而可以避免当前待处理的原始图像中颜色信息较为丰富的区域被分割到不同的子图像中,如此可以使得各isp预处理得到的子图像效果较好,进而可以使得利用预处理得到的子图像进行后处理时,得到的图像处理效果较好。有助于提升电子设备关于图像处理的相关功能指标,提升用户体验。
63.需要说明的是,本技术的技术方案可以应用于任意一种具有图像处理功能的电子设备中。包括但不限于自动驾驶汽车、手机、平板计算机、膝上型计算机、台式计算机、可穿戴设备、头戴式显示器、便携式游戏机、便携式音乐播放器、阅读器设备,等等。
64.为了便于说明,下面继续以电子设备为自动驾驶汽车100为例进行说明。
65.图3根据本技术的一些实施例,示意出了本技术技术方案适用的一种自动驾驶汽车100的硬件结构示意图。
66.如图3所示,自动驾驶汽车100可以包括摄像头101、显示屏102、片上系统(system on chip,soc)110、cpu115、存储器114。
67.具体的,摄像头101用于将光信号转换为电信号,生成原始图像数据并将原始图像数据发送至片上系统110。在一些实施例中,摄像头101用于采集自动驾驶汽车100行驶过程中的环境图像。
68.显示屏102用于显示图像,视频等。显示屏102包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),mini-led,micro-led,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,自动驾驶汽车100可以包括1个或多个显示屏102。
69.片上系统110可以包括多个isp(例如图3所示的isp111、isp112、isp113)、存储器114以及中央处理器(central processing unit,cpu)115。其中,多个isp、存储器114以及cpu115可以通过总线106耦接。
70.可以理解,图3中所示的片上系统110只是一种示例性说明,本领域的技术人员应当理解,在另一些实施例中,可以增加或减少一些部件,例如,增加总线控制单元、中断管理单元、协处理器等,还可以拆分或者组合一些部件、增加isp或减少isp等,本技术实施例不作限制。
71.isp是用于图像数据处理的专用集成电路(application-specific integrated circuit,asic),用于对摄像头101采集的原始图像进行预处理,以获得更好的图像质量。例如,原始图像被分割成三张子图像,则isp111、isp112、isp113分别对这三张子图像进行预处理,然后将预处理后的结果汇总后再传送给cpu115处理,从而使得cpu115利用预处理后的结果执行进一步的图像处理时,得到的结果更加准确。
72.cpu115可以包括一个或多个处理单元,例如,可以包括中央处理器cpu(central processing unit)、图像处理器gpu(graphics processing unit)、数字信号处理器dsp
(digital signal processor)、微处理器mcu(micro-programmed control unit)、ai(artificial intelligence,人工智能)处理器或可编程逻辑器件fpga(field programmable gate array)等的处理模块或处理电路。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。在一些实施例中,cpu115可以用于对经过isp111、isp112、isp113预处理后得到的预处理结果执行进一步的图像处理,例如针对预处理后的结果进行目标检测。
73.存储器114可用于存储数据、软件程序以及模块,可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,ram),双倍数据率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,ddr sdram)。在一些实施例中,存储器114可用于存储指令,该指令被cpu115执行时可以实现本技术实施例提供的图像处理方法。在一些实施例中,存储器114还可以用于缓存摄像头101采集的原始图像数据。isp111、isp112、isp113可以从存储器114中读取缓存的原始图像数据。
74.可以理解,图3所示的自动驾驶汽车100的结构只是一种示例,并不构成对自动驾驶汽车100的具体限定,在另一些实施例中,自动驾驶汽车100可以包含更多或更少的模块,还可以组合或者拆分部分模块,本技术实施例不作限制。
75.下面将继续以图1所示的自动驾驶应用场景为例,结合图3所示的自动驾驶汽车100的硬件结构框图,介绍图4所示的实施例提供的一种图像处理方法,图4所示的各个步骤的执行主体可以是自动驾驶汽车100的cpu115,具体地,如图4所示的一种图像处理方法包括以下各步骤:
76.s401:确定当前待处理的原始图像。
77.例如,当前待处理的原始图像是自动驾驶汽车100通过摄像头101实时采集行驶路径周围环境得到的,该图像包括较多的环境信息,例如行驶道路上的车辆信息、人流信息、路况信息,以及道路上的交通标线信息等。
78.s402:判断当前待处理的原始图像是否为首帧图像。
79.如果是,则表明当前待处理的原始图像是首帧图像,则可以按照预设的固定分割方法,来分割首帧图像,进入s403;如果否,则表明当前待处理的原始图像不是首帧图像,则可以根据与当前待处理的原始图像相邻的上一帧图像的图像特征,确定当前待处理的原始图像的分割点,并分割当前待处理的原始图像,进入s404。
80.例如,在自动驾驶汽车100通过摄像头101实时采集行驶路径周围的环境图像的过程中,各isp首次接收到的图像数据一般为首帧图像的数据。
81.s403:将待处理的原始图像按照预设的固定分割方法,分割成多张子图像。
82.由于摄像头101向各isp传输的图像数据是从上至下逐行传输的,各isp接收原始图像的数据时也是逐行接收的,并且在获取一帧图像之前无法预判图像的数据量。因此,为了避免原始图像的数据量,超出单个isp的实时处理能力,则需要将首帧图像固定分割成n份,n的个数和自动驾驶汽车100中部署的isp的个数相同。
83.例如,待处理的原始图像为首帧图像,首帧图像的大小为720*1080,也即首帧图像有1080行像素点,而单个isp能够支持对500行以内的像素点的实时处理。则可以将该首帧图像平均分割成3份,得到3张子图像,一张子图像的大小为720*360,也即一张子图像具有
360行像素点。
84.s404:基于相邻的上一帧图像的图像特征,确定当前待处理的原始图像的分割点,并且根据确定出的分割点将待处理的原始图像分割成多张子图像。
85.需要说明的是,由于图像数据的传输是按照像素点逐行进行传输的,在自动驾驶汽车100通过摄像头101采集到一帧图像之后,各isp接收原始图像的数据时也是逐行接收的,并且由于自动驾驶汽车100对图像处理的实时性要求较高,isp无法在接收完一帧图像的所有行的数据之后再对该图像进行分割。因此,自动驾驶汽车100无法根据当前一帧图像的特征来分割当前一帧图像,由于通常摄像头101连续采集的相邻几张的图像内容较为相似,因此,可以利用上一帧图像的图像特征,来确定当前一帧图像的分割点。相较于图2所示的实施例中,对所有原始图像均进行固定分割的方法,可以避免原始图像中颜色信息较为丰富的区域被分割到不同的子图像中,如此可以使得各isp预处理得到的子图像效果较好,进而可以使得利用预处理得到的子图像进行后处理时,得到的图像处理效果较好。有助于提升电子设备关于图像处理的相关功能指标,提升用户体验。
86.需要说明的是,由于摄像头101向isp传输图像数据时,是逐行传输的,因此isp在接收子图像的数据时也是逐行接收的。并且上述对当前待处理的原始图像进行分割,并且是对原始图像执行裁剪操作,而是在isp接收数据的过程中,只接收或者只处理对应的子图像的数据。
87.其中预设的动态分割方法将在下文中结合图5进行详细介绍,此处先不展开描述。
88.s405:将分割得到的多张子图像通过多个isp进行协同处理,得到与当前待处理的原始图像对应的预处理图像。
89.在一些实施例中,将当前待处理的原始图像分割成3张子图像,然后分别由自动驾驶汽车的3个isp进行协同处理,得到与当前待处理的原始图像对应的预处理图像。
90.其中,多个isp协同处理多张子图像的方法将在下文中结合图7和图8进行详细介绍,此处先不展开描述。
91.s406:对预处理图像进行进一步的图像处理,得到最终的图像处理结果。
92.在一些实施例中,cpu115通过执行目标检测模型的可执行程序,实现将预处理图像数据输入目标检测模型进行目标检测,得到最终的目标检测结果,从而可以使目标检测的结果更加准确。
93.例如,当前待处理的原始图像中包括道路上的交通标线信息(例如直行、转弯信息等),则自动驾驶汽车100将预处理图像输入目标检测模型,检测出交通标线信息,从而可以根据检测出的交通标线信息继续直行、转弯等。
94.在其他实施例中,还可以对预处理图像进行其他处理,例如进行人脸识别等处理,本技术对此不作限定。
95.可以理解,上述步骤s401至步骤s406的执行顺序只是一种示意,在另一些实施例中,也可以采用其他执行顺序,还可以拆分或合并部分步骤,在此不做限定。
96.下面将结合图5所示的流程图,对上述图4中s404涉及的基于相邻的上一帧图像的图像特征确定当前待处理的原始图像的分割点的方法进行详细介绍。图5所示的流程图中各步骤的执行主体可以为自动驾驶汽车100的cpu115,也可以为自动驾驶汽车100部署的多个isp中的其中一个,该isp为主isp,则其他isp为从isp,例如isp111为主isp,isp112、
isp113为从isp。具体地,图5所示的图像分割方法包括以下各步骤:
97.s4041:对当前待处理的原始图像相邻的上一帧图像进行预分割,得到相邻上一帧图像对应的多个最小分割单元。
98.在一些实施例中,可以将当前待处理的原始图像相邻的上一帧图像按照行数固定分成2n份。例如,当前待处理的原始图像相邻的上一帧图像包括1080行像素点,将该图像固定分割成32份,则该图像的最小分割单元的行数m=1080/32,约等于33。
99.s4042:统计上述多个最小分割单元的灰度值。
100.在一些实施例中,统计出上述多个最小分割单元的各自的灰度值总和,然后根据多个最小分割单元的各自的灰度值总和,创建一灰度直方图。其中,横轴为各最小分割单元,纵轴为各最小分割单元对应的灰度值总和。
101.s4043:基于统计出的上述多个最小分割单元的灰度值,确定出当前待处理的原始图像的多个分割点。
102.在一些实施例中,可以通过比较当前待处理的原始图像相邻上一帧图像中,每相邻两个最小分割单元灰度值总和的差值,选择相差最小的两个最小分割单元的中间点作为当前待处理的原始图像的的其中一个分割点。如果有多对相邻的最小分割单元所对应的灰度值差值相等,则可以确定出所有最小分割单元的中间灰度值(例如所有最小分割单元的灰度值的平均值),然后从上述多对相邻的最小分割单元中选取灰度值均值与中间灰度值最相近的一对相邻最小分割单元的中间点作为最终的分割点。
103.例如,对于图6所示的图像h,包括32个最小分割单元,依次为x1至x32,这32个最小分割单元所对应的灰度值总和分别为y1至y32。分别比较这32个最小分割单元每相邻两个最小分割单元的灰度值总和的差值,确定出x4的灰度值总和与x5的灰度值总和的差值最小,则可以将x4和x5中间点作为一个分割点。除此之外,确定出x25的灰度值总和与x26的灰度值总和的差值,与x29的灰度值总和与x30的灰度值总和的差值相同,则可以分别计算出x25的灰度值总和与x26的灰度值总和的平均值,以及x29的灰度值总和与x30的灰度值总和的平均值,然后确定出x29的灰度值总和与x30的灰度值总和的平均值与所有最小分割单元的中间灰度值最接近,则可以将x29和x30的中间点作为另一个分割点。
104.在一些实施例中,利用选取出的分割点对当前待处理的原始图像进行分割之后得到的多张子图像,需要在单个isp的实时处理能力之内。例如,单个isp可以实时处理500行像素点,则分割得到的各子图像的行数需小于500行。如果利用上述确定出的分割点分割得到的子图像的行数超出了单个isp的实时处理能力,则需要舍弃对应的分割点,重新确定分割点,例如在行数超出了单个isp的实时处理能力的子图像中再次选取出灰度值总和相差最小的两个最小分割单元的中间点作为一个新的分割点,对该子图像再次分割。
105.需要说明的是,具体如何确定根据原始图像相邻上一帧图像的图像特征来确定当前待处理的原始图像的多个分割点,可以视实际情况而定,本技术对此不做限定。
106.s4044:并且根据确定出的分割点将当前待处理的原始图像分割成多张子图像。
107.例如,在如图6所示的实施例中,利用当前待处理的原始图像的上一帧图像确定出当前待处理的原始图像的分割点为分割点1、分割点2,则可以利用分割点1、分割点2将当前待处理的原始图像分割成3张子图像h1、h2、h3。
108.可以理解,上述步骤s4041至步骤s4044的执行顺序只是一种示意,在另一些实施
例中,也可以采用其他执行顺序,还可以拆分或合并部分步骤,在此不做限定。
109.下面将以图7所示的流程图和图8所示的状态时序图为例,对上述图4中s405涉及的多个isp对分割得到的多张子图像进行协同处理的过程进行详细介绍。图7所示的流程图中各步骤的执行主体可以为自动驾驶汽车100步骤的多个isp中的主isp,也可以为自动驾驶汽车100的cpu115。参考图7,本技术实施例提供的一种多个isp协同处理多张子图像的方法包括以下各步骤:
110.s4051:从多个空闲的isp中选取一个空闲的isp(ispi)接收子图像pi的数据,并对接收的子图像数据进行预处理。
111.在一些实施例中,自动驾驶汽车100的cpu115可以监测自动驾驶汽车100的各isp的运行状态。在只有一个isp处于空闲状态的情况下,可以控制这一个空闲的isp(ispi)接收子图像pi的数据,并由该空闲的ispi对接收的子图像数据进行预处理。在有两个或两个以上的isp均处于空闲状态的情况下,可以按照一定的规则来从中选取一个isp来接收子图像pi的数据,并对接收的子图像数据进行预处理,例如,上一张子图像是由isp111接收并处理的,则当前的一张子图像则由isp112接收并处理;又如,上一张子图像是由isp112接收并处理的,则当前的一张子图像则由isp113接收并处理;又如,上一张子图像是由isp113接收并处理的,则当前的一张子图像则由isp111接收并处理。也即在有两个或两个以上的isp均处于空闲状态的情况下,控制多个isp轮询处理对应的子图像。
112.示例性地,假设当前待处理的原始图像为图6所示的图像h,图像h对应的切割点为图6所示的切割点1、切割点2,采用切割点1、切割点2可以将图像h分割成子图像h1、子图像h2、子图像h3。在自动驾驶汽车100部署的isp111、isp112、isp113中,只有isp111处于空闲状态,则可以通过isp111接收子图像h1的数据,并对子图像h1进行预处理。
113.s4052:判断当前的处理进度是否满足预设条件。如果是,则表明当前的处理进度满足预设条件,可以触发ispi通知其他空闲的isp开始准备接收子图像pi 1的数据,进入s4053;否则表明当前的处理进度不满足预设条件,继续由ispi处理子图像pi的数据。
114.其中,预设条件可以为ispi当前的处理进度为当前已处理到子图像pi的“冗余行”。例如,子图像pi总共包括430行像素点,当前待处理的原始图像的最小分割单元为20行,则预设条件可以为ispi当前的处理进度为当前已处理到子图像pi的第430-20行,也即已处理到子图像pi的最后一个最小分割单元。
115.s4053:触发ispi通知其他空闲的isp可以开始准备接收子图像pi 1的数据。
116.也即在ispi当前的处理进度满足预设条件的情况下,触发ispi通知其他空闲的isp可以开始准备接收子图像pi 1的数据。例如,cpu115触发ispi产生信号a(触发信号),以通知其他空闲的isp可以开始准备接收子图像pi 1的数据。
117.例如,在isp111处理上述子图像h1的过程中,isp112、isp113已完成相应的数据处理,isp112、isp113均进入空闲状态。则在isp111当前的处理进度满足预设条件的情况下,isp111可以向isp112、isp113发送信号a,以通知isp112、isp113可以开始准备接收子图像h2的数据。
118.其中,各isp的状态时序可以如图8所示,当一个isp处于空闲状态时,则该isp会等待触发信号,一旦接收到触发信号,并且确定出该isp可以接收并处理当前子图像的数据时,则该isp进行预处理状态,对该子图像进行预处理。直至该isp的当前处理进度到达“冗
余行”时,则该isp生成触发信号广播给其他isp,在isp完成对当前子图像的最后一行数据的处理之后,该isp完成对该子图的预处理,生成空闲信号广播给其他isp,该isp再次进入空闲状态。
119.s4054:从除了ispi以外的其他空闲的isp中选取一个开始接收子图像pi 1的数据,并对接收的子图像数据进行预处理。
120.例如,isp112、isp113均处于空闲状态,并且isp112、isp113均接收到了由isp111发送的信号a,则可以按照轮询规则,决策出由isp112来开始接收并且处理子图像h2的数据。
121.需要说明的是,由于摄像头101向isp传输图像数据时,是逐行传输的,因此isp在接收子图像的数据时也是逐行接收的。由于isp的图像数据处理速度有可能低于isp接收图像数据的速度,并且为了保证isp图像数据处理的实时性,因此可以缓存t行像素点对应的图像数据,例如可以缓存2行(先进先出)像素点对应的图像数据,从而isp可以从缓存中读取对应的子图像的数据。
122.可以理解,上述步骤s4051至步骤s4054的执行顺序只是一种示意,在另一些实施例中,也可以采用其他执行顺序,还可以拆分或合并部分步骤,在此不做限定。
123.应理解,通常同一电子设备中部署的isp的结构相同。下面将以图9所示的硬件结构框图为例,详细介绍图3所示的自动驾驶汽车100部署的其中一个isp111的硬件结构。
124.图9根据本技术的一些实施例,示出了一种isp111的结构示意图。如图9所示,isp111是用于图像数据处理的专用集成电路(application-specific integrated circuit,asic),用于对摄像头101形成的图像数据进行进一步处理,以获得更好的图像质量。
125.isp111包括处理器1111、图像传输接口1112、通用外围设备1113和通用功能模块1115。
126.其中,处理器1111用于isp111中的逻辑控制和调度。
127.图像传输接口1112用于子图像数据的传输。
128.通用外围设备1113包括但不限于:用于耦接isp111的各个模块的总线及其控制器,用于与其他设备耦接的总线,例如高级高性能总线(advanced high-performance bus,ahb),可以使isp与其他设备(如dsp、cpu等)进行高性能通信;用于监控isp工作状态的看门狗单元(watchdog)。
129.通用功能模块1115用于对输入isp111的子图像进行处理,包括但不限于:坏点矫正(bad pixel correction,bpc)、黑电平补偿(black level correction,blc)、自动白平衡(automatic white balance,awb)、伽马矫正(gamma correction)、颜色矫正(color correction)、降噪、边缘增强、亮度、对比度、色度调整等。当图像传感器将raw格式的图像数据传递给isp111时,先由通过功能模块进行处理。通用功能模块1115对图像数据进行处理的过程将在下文结合图10进行详细介绍,这里不再展开描述。
130.可以理解,图9所示的isp111的结构只是一种示例,本领域的技术人员应当理解,其可以包含更多或更少的模块,也可以组合或者拆分部分模块,本技术实施例不作限定。
131.图10示出了一种通用功能模块1115对图像数据进行处理的过程示意图,处理过程如下:
132.raw域处理模块1115a对图像数据进行坏点矫正、黑电平补偿和自动白平衡。
133.经过raw域处理后的图像数据经过rgb插值后得到rgb域的图像数据,再由rgb域处理模块1115b对rgb域的图像数据进行伽马矫正和颜色校正。
134.经过rgb域处理的图像数据经过色域转换得到yuv域的图像数据,再由yuv域处理模块1115c对yuv域的图像数据进行降噪、边缘增加、亮度/对比度/色度调整。
135.图11根据本技术的一些实施例,示出了一种电子设备300的硬件结构示意图。电子设备300可以执行本技术提供的例如图4所示的图像处理方法。
136.如图11所示,电子设备300可以包括一个或多个处理器310、系统内存302、非易失性存储器(non-volatile memory,nvm)303、输入/输出(i/o)设备304、通信接口305以及用于耦接处理器310、系统内存302、非易失性存储器303、通信接口304和输入/输出(i/o)设备305的系统控制逻辑306。其中:处理器310可以包括一个或多个单核或多核处理器。在一些实施例中,处理器310可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。在一些实施例中,处理器310可以用于图4所示的实施例提供的图像处理方法。
137.系统内存302是易失性存储器,例如随机存取存储器(random-access memory,ram),双倍数据率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,ddr sdram)等。系统内存用于临时存储数据和/或指令,例如,在一些实施例中,系统内存302可以用于存储上述用于实现图像处理方法的可执行程序。
138.非易失性存储器303可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,非易失性存储器303可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如硬盘驱动器(hard disk drive,hdd)、光盘(compact disc,cd)、数字通用光盘(digital versatile disc,dvd)、固态硬盘(solid-state drive,ssd)等。在一些实施例中,非易失性存储器303也可以是可移动存储介质,例如安全数字(secure digital,sd)存储卡等。
139.特别地,系统内存302和非易失性存储器303可以分别包括:指令307的临时副本和永久副本。指令307可以包括:由处理器310中的至少一个执行时使电子设备300实现本技术各实施例提供的图像处理方法的程序指令。
140.输入/输出(i/o)设备304可以包括用户界面,使得用户能够与电子设备300进行交互。例如,在一些实施例中,输入/输出(i/o)设备304可以包括显示器等输出设备,用于显示电子设备300中的保险管理系统界面,还可以包括键盘、鼠标、触摸屏等输入设备。产品开发人员可以通过用户界面以及键盘、鼠标、触摸屏等输入设备与电子设备300进行交互。
141.通信接口305可以包括收发器,用于为电子设备300提供有线或无线通信接口,进而通过一个或多个网络与任意其他合适的设备进行通信。在一些实施例中,通信接口305可以集成于电子设备300的其他组件,例如通信接口305可以集成于处理器310中。在一些实施例中,电子设备300可以通过通信接口305和其他设备通信。
142.系统控制逻辑306可以包括任意合适的接口控制器,以电子设备300的其他模块提供任意合适的接口。例如在一些实施例中,系统控制逻辑306可以包括一个或多个存储器控制器,以提供连接到系统内存302和非易失性存储器303的接口。
143.在一些实施例中,处理器310中的至少一个可以与用于系统控制逻辑306的一个或
多个控制器的逻辑封装在一起,以形成系统封装(system in package,sip)。在另一些实施例中,处理器310中的至少一个还可以与用于系统控制逻辑306的一个或多个控制器的逻辑集成在同一芯片上,以形成片上系统(system-on-chip,soc)。
144.可以理解,电子设备300可以是能够执行本技术提供的图像处理方法的任意一种电子设备,包括但不限于自动驾驶汽车、手机、平板电脑、手持计算机等,本技术实施例不做限定。
145.可以理解,本技术实施例示出的电子设备300的结构并不构成对电子设备300的具体限定。在本技术另一些实施例中,电子设备300可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
146.本技术公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本技术的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
147.可将程序代码应用于输入指令,以执行本技术描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,处理系统包括具有诸如例如数字信号处理器(dsp)、微控制器、专用集成电路(asic)或微处理器之类的处理器的任何系统。
148.程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。包括但不局限于opencl、c语言、c 、java等。而对于c 、java之类语言,由于其会将存储进行转换,基于对于本技术实施例中的图像处理方法的应用会有些差异,本领域技术人员可以基于具体地高级语言进行变换,均不脱离本技术实施例的范围。
149.在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(cd-roms)、磁光盘、只读存储器(rom)、随机存取存储器(ram)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
150.在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
151.需要说明的是,本技术各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的
一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本技术所提出的技术问题的关键。此外,为了突出本技术的创新部分,本技术上述各设备实施例并没有将与解决本技术所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
152.需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
153.虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献