CN114037606A - 图像处理方法、处理器、处理装置、程序产品及存储介质 - Google Patents
图像处理方法、处理器、处理装置、程序产品及存储介质 Download PDFInfo
- Publication number
- CN114037606A CN114037606A CN202111163066.9A CN202111163066A CN114037606A CN 114037606 A CN114037606 A CN 114037606A CN 202111163066 A CN202111163066 A CN 202111163066A CN 114037606 A CN114037606 A CN 114037606A
- Authority
- CN
- China
- Prior art keywords
- image
- pixel
- processed
- target
- interpolation
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformation in the plane of the image
- G06T3/40—Scaling the whole image or part thereof
- G06T3/4015—Demosaicing, e.g. colour filter array [CFA], Bayer pattern
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformation in the plane of the image
- G06T3/40—Scaling the whole image or part thereof
- G06T3/4023—Decimation- or insertion-based scaling, e.g. pixel or line decimation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformation in the plane of the image
- G06T3/40—Scaling the whole image or part thereof
- G06T3/4046—Scaling the whole image or part thereof using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
Abstract
本申请涉及图像处理技术领域,提供一种图像处理方法、处理器、处理装置、程序产品及存储介质。其中,图像处理方法包括:基于待处理图像,利用神经网络模型预测得到待处理图像中的目标像素对应的插值方向信息;待处理图像的全部像素共包含K个类别的颜色值,每个像素仅包含一个类别的颜色值,每个像素的另外K‑1个类别的颜色值待计算,目标像素为待处理图像中待计算目标类别的颜色值的像素;针对待处理图像的每个像素,插值计算该像素的另外K‑1个类别的颜色值,得到结果图像;对于每个目标像素的每个目标类别的颜色值,根据该像素的该目标类别对应的插值方向信息进行插值计算。该图像处理方法可以得到伪彩较少、解析力较高的结果图像。
Description
技术领域
本发明涉及图像处理技术领域,具体而言,涉及一种图像处理方法、处理器、处理装置、程序产品及存储介质。
背景技术
目前,大多数图像传感器都只能感应光的强度而不能感应光的颜色,为了获得彩色的图像,需要在图像传感器的像素上安装彩色的滤镜。例如,为了得到RGB图像,则需要安装R(红色)、G(绿色)、B(蓝色)三种颜色的滤镜。但在同一个像素上安装三种颜色的滤镜成本过高,因此,一种普遍的做法是只在每个像素上安装一种颜色的滤镜,并且使得各种颜色的滤镜在图像传感器的像素上按照固定的模式(pattern)交错地排布。
参照图1,图1上方的子图中,小长方体分成两层,下面一层均为灰色,表示图像传感器的像素,上面一层则有黑、灰、白三种颜色,分别表示R、G、B三种颜色的滤镜,这些滤镜采用了一种称为拜耳阵列(bayer pattern)的排布方式,即每四个一组,每组中一条对角线上是两个G滤镜,另一条对角线上是一个R滤镜和一个B滤镜。
按照上述方式处理后,虽然节约了滤镜数量,但在图像传感器生成的原始图像(称为RAW图像)中,每个像素只包含一种颜色值,直观上看,原始图像中存在大量“马赛克”。继续参照图1,图1中间的子图是RAW图像一个5×5的局部,每个像素只包含R值、G值或B值,颜色值的排布方式为拜耳阵列。
然而,在通常用于显示或其他处理的彩色图像中,每个像素都是包含多种颜色值的,例如,RGB图像的每个像素包含R、G、B三种颜色值。从而,需要借助于某些插值算法将每个像素缺少的颜色值“补全”,消除RAW图像中的“马赛克”,才方便后续对图像的使用,这样的插值算法一般称为去马赛克(demosaic)算法。继续参照图1,图1下方的子图是对RAW图像执行去马赛克算法后得到的RGB图像,其中,左上角的像素本来只包含R值,现在插值计算出了G值和B值,其他位置的像素也是类似。
传统的去马赛克算法,通常基于一些人为制定的规则进行插值计算,然而,这些规则无法有效应对复杂的图像内容,所以经常计算出错误的颜色值,导致得到的彩色图像中出现伪彩、解析力下降等问题,在图像的高频纹理区域表现的尤为明显。
发明内容
本申请实施例的目的在于提供一种图像处理方法、处理器、处理装置、程序产品及存储介质,以改善上述技术问题。
为实现上述目的,本申请提供如下技术方案:
第一方面,本申请实施例提供一种图像处理方法,包括:基于待处理图像,利用神经网络模型预测得到所述待处理图像中的目标像素对应的插值方向信息;其中,所述待处理图像的全部像素共包含K个类别的颜色值,K为大于1的整数,每个像素仅包含一个类别的颜色值,每个像素的另外K-1个类别的颜色值待计算,所述目标像素为所述待处理图像中待计算目标类别的颜色值的像素,所述目标类别为所述K个类别中的至少一个类别,每个目标类别对应一条插值方向信息;针对所述待处理图像的每个像素,根据其邻域内的像素的颜色值,插值计算该像素的另外K-1个类别的颜色值,得到结果图像;其中,对于每个目标像素的每个目标类别的颜色值,根据该像素的该目标类别对应的插值方向信息进行插值计算。
上述图像处理方法中的待处理图像可以是图像传感器生成的RAW图像,结果图像可以是用于设备显示或其他处理的彩色图像,从而该方法可以视为去马赛克算法的一种改进方案。该方法的优势在于:
其一,利用了神经网络模型预测插值方向信息,神经网络模型可视为根据训练数据所确定的一种复杂的插值规则,其表达能力显著强于人工设定的插值规则,并且具有良好的泛化性,从而有利于提高插值精度。
其二,上述神经网络模型预测的是插值方向而非直接预测颜色值,而对于数字图像来说,插值方向是十分有限的(例如,水平、垂直、对角线方向),所以该模型可视为一个分类模型而非回归模型,相对来说,分类模型更容易达到较高的预测精度,也不容易输出预料之外的预测结果。
综合以上两点,上述图像处理方法可以得到伪彩较少、解析力较高的结果图像,自然也有利于改善后续应用对结果图像的处理效果。
在第一方面的一种实现方式中,所述插值方向信息包括每个潜在插值方向对应的概率,所述根据该像素的该目标类别对应的插值方向信息进行插值计算,包括:将对应的概率最大的潜在插值方向确定为实际插值方向,并根据所述实际插值方向进行插值计算,得到该像素的该目标类别的颜色值;和/或,在每个潜在插值方向上均进行插值计算,得到对应的多个初始颜色值,并以每个潜在插值方向对应的概率为权重,对所述多个初始颜色值进行加权求和,得到该像素的该目标类别的颜色值。
上述实现方式给出了两种利用插值方向信息的方式:其一,是从所有可能的插值方向中选择一个最优的(从预测结果上看最优)方向进行插值,此种方式插值效率较高;其二,是在所有可能的插值方向上都进行插值,然后对插值结果取加权平均,此种方式插值精度较高。当然,也可以将这两种方式结合起来使用,赋予插值过程更大的灵活性:例如,有的目标像素的颜色值用方式一插值,有的目标像素的颜色值用方式二插值;又例如,有的目标类别的颜色值用方式一插值,有的目标类别的颜色值用方式二插值。
在第一方面的一种实现方式中,所述基于待处理图像,利用神经网络模型预测得到所述待处理图像中的目标像素对应的插值方向信息,包括:获取所述待处理图像的属性信息,根据所述属性信息从多个备选的神经网络模型中确定所述待处理图像对应的神经网络模型;基于所述待处理图像,利用与其对应的神经网络模型预测得到所述插值方向信息。
可以采用同一个神经网络模型处理所有的待处理图像,此种实现方式逻辑比较简单,但模型难免和某些待处理图像的匹配度不是最佳;而在上述实现方式中,预置多个备选的神经网络模型,根据待处理图像的属性信息为其分配一个最合适的模型用于插值方向信息的预测,从而有利于提高预测精度。
在第一方面的一种实现方式中,所述属性信息包括以下至少一项:所述待处理图像中颜色值的排布方式、所述待处理图像的感光度、所述待处理图像的亮度。
在第一方面的一种实现方式中,所述待处理图像中包含所述目标类别的颜色值的像素数量大于包含任一非目标类别的颜色值的像素数量,且在对所述待处理图像的像素进行插值计算时先计算所述目标像素的所述目标类别的颜色值。
例如,在拜耳阵列的待处理图像中,G像素(仅包含G值的像素)的数量分别是R像素(仅包含R值的像素)和B像素(仅包含B值的像素)的两倍。此时可将G值作为目标类别的颜色值,利用神经网络模型预测R像素和B像素(R像素和B像素都要计算G值)处的插值方向信息,并根据插值方向信息计算要插入的G值,至于对R值和B值的插值计算,则可以不采用神经网络预测插值方向信息。并且,在进行插值计算的过程中,可以先计算G值,然后再计算R值和B值(计算R值和B值时可能会用到G值的计算结果)。
由于人眼对绿色的敏感度超过红色和蓝色,因此在待处理图像中包含了更多G像素(包含真实采集到的G值),并且对G值的插值精度的要求也要超过R值和B值。从而,可以专门利用神经网络模型来提高G值的插值精度,而R值和B值的插值则可以不采用神经网络模型,以兼顾插值效率。另外,根据上面的插值顺序,R值和B值在计算时由于可以利用高精度的G值插值结果,所以其插值精度同样可以保障。
在第一方面的一种实现方式中,所述K个类别的颜色值分别为R值、G值和B值,所述目标类别的颜色值为G值,所述目标像素为所述待处理图像中的包含R值的像素和包含B值的像素,所述待处理图像中的颜色值按照拜耳阵列的方式排布。
拜耳阵列是目前使用最广泛的RGB值排列方式,本申请的图像处理方法可有效处理拜耳阵列的图像,表明其具有较高的实用价值。
第二方面,本申请实施例提供一种图像信号处理器,包括:前置模块,用于对图像传感器生成的第一RAW图像执行RAW图像处理算法,得到第二RAW图像;中间模块,用于利用第一方面或第一方面的任意一种可能的实现方式提供的方法对所述第二RAW图像进行插值计算,得到第一彩色图像;后置模块,用于对所述第一彩色图像执行彩色图像处理算法,得到第二彩色图像。
第三方面,本申请实施例提供一种图像处理装置,包括:神经网络计算模块、插值计算模块、存储模块以及控制模块;其中,所述神经网络计算模块,用于基于待处理图像,利用神经网络模型预测得到所述待处理图像中的目标像素对应的插值方向信息;其中,所述待处理图像的全部像素共包含K个类别的颜色值,K为大于1的整数,每个像素仅包含一个类别的颜色值,每个像素的另外K-1个类别的颜色值待计算,所述目标像素为所述待处理图像中待计算目标类别的颜色值的像素,所述目标类别为所述K个类别中的至少一个类别,每个目标类别对应一条插值方向信息;所述插值计算模块,用于针对所述待处理图像的每个像素,根据其邻域内的像素的颜色值,插值计算该像素的另外K-1个类别的颜色值,得到结果图像;其中,对于每个目标像素的每个目标类别的颜色值,根据该像素的该目标类别对应的插值方向信息进行插值计算;所述存储模块,用于存储所述待处理图像、所述插值方向信息、所述结果图像、所述神经网络模型以及驱动程序;所述控制模块,用于执行所述驱动程序,所述驱动程序在运行时驱动所述神经网络计算模块和所述插值计算模块进行计算。
第四方面,本申请实施例提供一种图像处理装置,包括存储模块以及处理模块,所述存储模块中存储有计算机程序指令,所述计算机程序指令被所述处理模块读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。
第六方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了拜耳阵列以及去马赛克算法的工作原理;
图2示出了本申请实施例提供的图像处理方法的一个应用场景;
图3示出了本申请实施例提供的一种图像处理方法的流程;
图4示出了一种插值计算R像素的G值的方式;
图5示出了一种插值计算G像素的R值和B值的方式;
图6示出了一种插值计算R像素的B值以及B像素的R值的方式;
图7示出了本申请实施例提供的一种图像处理装置的结构;
图8示出了本申请实施例提供的另一种图像处理装置的结构。
具体实施方式
近年来,基于人工智能的计算机视觉、深度学习、机器学习、图像处理、图像识别等技术研究取得了重要进展。人工智能(Artificial Intelligence,简称AI)是研究、开发用于模拟、延伸人的智能的理论、方法、技术及应用系统的新兴科学技术。人工智能学科是一门综合性学科,涉及芯片、大数据、云计算、物联网、分布式存储、深度学习、机器学习、神经网络等诸多技术种类。计算机视觉作为人工智能的一个重要分支,具体是让机器识别世界,计算机视觉技术通常包括人脸识别、活体检测、指纹识别与防伪验证、生物特征识别、人脸检测、行人检测、目标检测、行人识别、图像处理、图像识别、图像语义理解、图像检索、文字识别、视频处理、视频内容识别、行为识别、三维重建、虚拟现实、增强现实、同步定位与地图构建、计算摄影、机器人导航与定位等技术。随着人工智能技术的研究和进步,该项技术在众多领域展开了应用,例如安防、城市管理、交通管理、楼宇管理、园区管理、人脸通行、人脸考勤、物流管理、仓储管理、机器人、智能营销、计算摄影、手机影像、云服务、智能家居、穿戴设备、无人驾驶、自动驾驶、智能医疗、人脸支付、人脸解锁、指纹解锁、人证核验、智慧屏、智能电视、摄像机、移动互联网、网络直播、美颜、美妆、医疗美容、智能测温等领域。
本申请实施例中图像处理方法,从总体上说,属于一种基于神经网络模型,对单通道的RAW图像进行插值以得到多通道的彩色图像的去马赛克方法,利用该方法所得到的彩色图像具有较高的质量,显著优于传统的去马赛克算法对RAW图像的处理结果。
图2示出了本申请实施中的图像处理方法的一个应用场景。参照图2,摄像头的图像传感器输出的图像为RAW格式,不妨称为第一RAW图像,第一RAW图像为单通道图像,每个像素只包含一种颜色值,例如第一RAW图像可以是图1中间的子图。
第一RAW图像质量较差,而且每个像素的颜色值也不完整,因此通常需要先利用图像信号处理器(Image Signal Processor,简称ISP)对其进行处理,然后才能用于显示或执行其他操作。
ISP从功能上可以划分成三个部分:ISP前置模块、ISP中间模块以及ISP后置模块,ISP可以采用专门的芯片实现。
其中,ISP前置模块用于对第一RAW图像执行RAW图像处理算法,得到第二RAW图像,第一RAW图像可能是图像传感器采集的照片或视频帧,这里的RAW图像处理算法可以是降噪、亮度调节、白平衡调节等。
ISP中间模块用于执行本申请实施例提出的图像处理方法(详见后文阐述),对第二RAW图像进行插值计算,得到第一彩色图像,第一彩色图像为多通道图像,每个像素都包含完整的多种颜色值,例如第一彩色图像可以是图1下方的子图。也可以简单概括为,ISP中间模块实现了去马赛克功能。
ISP后置模块用于对第一彩色图像执行彩色图像处理算法,得到第二彩色图像,第二彩色图像可用于显示或者进行进一步处理。这里的彩色图像处理算法可以是降噪、亮度调节、颜色调节等。
对于图2,还需要说明以下问题:
其一,ISP前置模块和ISP后置模块可能会执行某些同类型的操作,例如降噪操作,但这两个模块处理的对象是不同的,因此采用的降噪算法也可能不同。
其二,在图2中,ISP前置模块、ISP中间模块以及ISP后置模块都是硬件模块,特别地,ISP中间模块是将本申请实施例中的图像处理方法硬件化后形成的(硬件化,可以理解为将方法步骤用硬件电路直接进行描述)。但在一些替代方案中,ISP中间模块也可能采用纯软件或者软件与硬件相结合的方式实现。例如,屏蔽掉某ISP中本来的去马赛克算法,在ISP外部用软件方式实现的、本申请实施例中的图像处理方法去马赛克后,再将处理结构回传给ISP后置模块进一步处理。
其三,ISP中间模块虽然属于ISP的一部分,但不代表其在执行本申请实施例中的图像处理方法时该模块将只使用ISP内部的软硬件资源,例如,ISP中间模块可能会使用存储资源,但某些ISP的设计中存储资源是和设备的其他处理芯片(例如,中央处理器,Central Processing Unit,简称CPU)共享的,ISP内部不包含存储资源。
其四,本申请实施例中的图像处理方法并不限于应用在图2示出的场景中,例如,先对已有的RGB图像进行采样,将其还原为单通道的RAW图像,然后对还原得到的RAW图像执行本申请实施例中的图像处理方法,并将得到的结果图像和已有的RGB图像进行对比,以便测试方法的插值效果。该过程可以在计算机上以纯软件的方式执行,而不必像图2一样将方法部署在ISP中。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
术语“第一”、“第二”等仅用于将一个实体或者操作与另一个实体或操作区分开来,而不能理解为指示或暗示相对重要性,也不能理解为要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
图3示出了本申请实施例提供的一种图像处理方法的流程,该方法可能以软件、硬件或者软硬件结合的方式实现,该方法的执行主体也存在多种可能,例如图2中的ISP中间模块,图7中的图像处理装置,图8中图像处理装置,等等。在介绍图3时,不妨暂时忽略不同实现方式在细节上的差异,重点阐述方法步骤所实现的功能。
参照图3,该方法包括:
步骤S110:基于待处理图像,利用神经网络模型预测得到待处理图像中的目标像素对应的插值方向信息。
步骤S120:针对待处理图像的每个像素,根据其邻域内的像素的颜色值,插值计算该像素的另外K-1个类别的颜色值,得到结果图像。其中,对于每个目标像素的每个目标类别的颜色值,根据该像素的该目标类别对应的插值方向信息进行插值计算。
下面对步骤S110和S120进行具体阐述:
步骤S110中的待处理图像是一张单通道图像,每个像素仅包含一个类别的颜色值,而待处理图像的全部像素共包含K个类别(K为大于1的整数)的颜色值,通过执行步骤S110和步骤S120为待处理图像的每个像素计算其本身所不包含的K-1个类别的颜色值,这样待处理图像就转换为一包括K个通道的彩色图像,即步骤S120中的结果图像。
待处理图像中颜色值如何排布并不限定,但为了便于进行插值计算,各种颜色值可采用固定的模式交错地排布,保证包含任一颜色值的像素,在其邻域内都分布有包含同类的颜色值的像素。
例如,待处理图像可以是图2中的第二RAW图像,待处理图像的K个类别的颜色值分别为R值、G值和B值(K=3)。不妨将待处理图像中包含R值、G值和B值的像素分别简称为R像素、G像素以及B像素,则R像素的G值和B值待计算,G像素的R值和B值待计算,B像素的R值和G值待计算,若这些颜色值都利用步骤S110和步骤S120计算完毕,则可以得到包含R、G、B三个通道的结果图像,如图2中的第一RGB图像。
在该例子中,待处理图像中的R值、G值和B值可以按照拜耳阵列(有时也简称RGGB)的方式排布,如图1中间的子图所示,后文有时简称其为拜耳阵列的待处理图像。拜耳阵列是目前RAW图像中使用最广泛的RGB值排列方式,本申请实施例的图像处理方法可有效处理拜耳阵列的待处理图像,从而具有较高的实用价值。
可以理解的,待处理图像中的颜色值也并不一定是RGB值,待处理图像中RGB值的排布方式并非只有拜耳阵列一种方式,例如也有可能是R值、Y值(黄色)和B值(排布方式为RYYB),或者R值、W值(白色)和B值(排布方式为RWWB),等等,即本申请实施例的图像处理方法具有较高的普适性。
可以将待处理图像中的K个颜色值类别分成两类,一类是目标类别,一类是非目标类别,目标类别为K个颜色值类别中的至少一个类别,目标类别可以是预先指定好的。进一步的,可以将待处理图像中的像素也分为两类,一类是目标像素,一类是非目标像素,目标像素为待处理图像中待计算目标类别的颜色值的像素,待处理图像中除目标像素以外的像素都是非目标像素。
例如,对于拜耳阵列的待处理图像,若目标类别是绿色,则非目标类别为红色和蓝色,此时,目标像素为待处理图像中待计算G值的像素,即R像素和B像素,非目标像素为G像素;若目标类别是红色、绿色和蓝色,则没有非目标类别,此时目标像素为待处理图像中的所有像素,没有非目标像素。
对于每个目标像素的每个目标类别的颜色值,步骤S110中的神经网络模型都会为其预测一条插值方向信息,在步骤S120中该条插值方向信息会被用于计算该目标像素的该目标类别的颜色值。其中,插值方向信息泛指与插值计算时采用的插值方向相关的信息,稍后会进一步举例说明。
对于目标像素的非目标类别的颜色值,或者非目标像素的颜色值,则不会利用神经网络模型为其预测插值方向信息。注意,这并不代表这些颜色值在步骤S120中进行计算时一定不使用插值方向信息,只是说即使其要使用插值方向信息,这些信息的来源也并非是通过神经网络模型预测的。
例如,对于拜耳阵列的待处理图像,若目标类别是绿色,则步骤S110中的神经网络模型会为待处理图像中的每个R像素和B像素都预测一条针对G值的插值方向信息;若目标类别是红色、绿色和蓝色,则步骤S110中的神经网络模型会为待处理图像中的每个像素都预测三条针对R值、G值和B值的插值方向信息。
步骤S110中的神经网络模型的输入至少包括待处理图像,输出至少包括插值方向信息。神经网络模型的具体类型不限,例如,可以是卷积神经网络,可以是循环神经网络,可以是人工神经网络或者其组合。神经网络模型的具体结构也不限,以卷积神经网络为例,其内部可以包含若干个卷积层,还可能包含池化层、全连接层等结构。神经网络模型在执行步骤S110之前已经被训练好,其可能的训练方法稍后再阐述。
需要指出,待理处图像在输入神经网络模型之前,可能会进行某些格式上的转换,以便于网络进行处理。例如,对于拜耳阵列的待处理图像,其尺寸为H×W(高×宽),其在输入卷积神经网络之前可能会被转换为一个尺寸为H/2×W/2×4的张量(tensor),即该张量共有4个尺寸为H/2×W/2通道,分别是R通道、两个G通道和B通道,每个通道只包含一种对应的颜色值(拜耳阵列中每4个颜色值组成一个小单元,因此通过对待处理图像采样,很容易实现这样的转换)。
对于某个目标像素的某个目标类别的颜色值,其对应的插值方向信息可以包括每个潜在插值方向对应的概率,这些概率之和为1。例如有S个潜在插值方向(S为大于1的整数),则每条插值方向信息包括S个潜在插值方向对应的概率,且这些概率之和为1。所谓潜在插值方向,可以理解为在步骤S120中对该目标像素的该目标类别的颜色值进行插值计算时可能采用的插值方向,而潜在插值方向对应的概率可以理解为:潜在插值方向作为实际插值方向的概率。当然,在一些替代方案中,插值方向信息也可以包括每个潜在插值方向对应的一个系数,该系数可以在一定程度上代表每个潜在插值方向对应的概率,但这些系数之和未必为1。
例如,对于拜耳阵列的待处理图像,若目标类别为绿色,潜在插值方向共有4个,则卷积神经网络输出的插值方向信息可以是一个H/2×W/2×8的张量,该张量的8个通道中,有4个通道为R像素的潜在插值方向对应的概率(R像素共有H/2×W/2个,每个R像素对应4个潜在插值方向,因此R像素的潜在插值方向的概率共有H/2×W/2×4个),另外4个通道则为B像素的潜在插值方向对应的概率。进一步的,对于待处理图像中坐标为(0,0)的R像素,其在插值方向信息中对应的4个概率值可能是(0.5,0.2,0.2,0.1),之和为1;坐标为(0,2)的R像素,其在插值方向信息中对应的4个概率值可能是(0.5,0.4,0.1,0),之和为1;以此类推。
在步骤S120中,针对待处理图像的每个像素,除了其本身已经包含的颜色值之外,插值计算其另外K-1个类别的颜色值,得到结果图像。例如,对于R像素插值计算G值和B值,对于G像素插值计算R值和B值,对于B像素插值计算R值和G值。
插值计算的具体方式是在当前像素(指当前正在处理的像素,可以是待处理图像中的任一像素)的邻域内,选择部分或全部的像素,对其包含的颜色值进行加权求和。关于插值计算的过程,需注意以下几个问题:
其一,邻域表示以当前像素为中心的一个小区域,其具体的形状和尺寸均不限,后文主要以5×5的正方形邻域为例,例如图1中间的子图就是一个R像素的5×5邻域(R像素位于邻域中心)。
其二,插值计算的顺序不限,可以是逐像素的顺序:对于每个像素,计算完了其所需插入的K-1个类别的颜色值后,再开始针对下一个像素进行计算;可以是逐颜色类别的顺序:对于每个类别的颜色值,在所有需要插入该类别的颜色值的像素处完成计算后,再开始针对下一个类别的颜色值进行计算;当然,还可能采用其他计算顺序,具体见后文的例子。
其三,在进行插值计算时,可以(但不必然)利用之前得到的插值结果。比如,若按照逐颜色类别的顺序进行插值计算,则在插值计算第一个类别的颜色值时,只能利用待处理图像位于当前像素的邻域内的颜色值;在插值计算第二个类别的颜色值时,除了可以利用待处理图像位于当前像素的邻域内的颜色值,还可能利用当前像素的邻域内新算出来的、第一个类别的颜色值;以此类推。例如,对于拜耳阵列的待处理图像,若先计算R像素的G值,此时只能利用待处理图像中位于R像素的5×5邻域内的颜色值,待G值计算完后,若再计算G像素的R值,则除了可以利用待处理图像中位于G像素的5×5邻域内的颜色值之外,还可以利用之前针对R像素算出来的G值。
虽然每个颜色值的计算方式都是类似的(根据邻域内像素的颜色值进行插值计算),但正如之前已经提到的,对于目标像素的目标类别的颜色值,在插值计算时要结合神经网络模型预测的插值方向信息,对于目标像素的非目标类别的颜色值,或者非目标像素的颜色值,由于神经网络模型不会为其预测插值方向信息,因此要采取其他计算方式,例如按照既定的规则选择领域内的颜色值进行计算。
进一步的,若插值方向信息包括每个潜在插值方向对应的概率,则对于任一目标像素的任一目标类别的颜色值,至少存在以下两种插值计算方式:
(1)将对应的概率最大的潜在插值方向确定为实际插值方向,并根据实际插值方向进行插值计算,得到该目标像素的该目标类别的颜色值。
例如,共有4个潜在插值方向,其对应的概率为(0.5,0.2,0.2,0.1),则可将第一个方向(概率0.5)确定为实际插值方向,在当前像素的邻域内,选择第一个方向上的颜色值加权计算得到要插入的颜色值。
(2)在每个潜在插值方向上均进行插值计算,得到对应的多个初始颜色值,并以每个潜在插值方向对应的概率为权重,对多个初始颜色值进行加权求和,得到该像素的该目标类别的颜色值。
例如,共有4个潜在插值方向,其对应的概率为(0.5,0.2,0.2,0.1),则可以在当前像素的邻域内,分别利用这四个方向上的颜色值进行加权计算(权重可以是预先设定好的),得到4个初始颜色值A1、A2、A3、A4,然后计算0.5×A1+0.2×A2+0.2×A3+0.1×A4,得到要插入的颜色值。
简单总结一下:方式(1)是从所有可能的插值方向中选择一个最优的(从预测结果上看最优,并不一定是实际最优)方向进行插值,此种方式插值效率较高;方式(2)是在所有可能的插值方向上都进行插值,然后对插值结果取加权平均,此种方式插值精度较高。当然,也可以将这两种方式结合起来使用,赋予插值过程更大的灵活性:例如,有的目标像素的颜色值用方式一插值,有的目标像素的颜色值用方式二插值;又例如,有的目标类别的颜色值用方式一插值,有的目标类别的颜色值用方式二插值的,等等。
下面,结合一个实际的例子,来说明完整的插值过程:
对于拜耳阵列的待处理图像,若目标类别为绿色,则可以按照以下三个步骤进行插值以获得结果图像:
步骤1:针对待处理图像中的每个R像素或B像素,根据其邻域内的像素的颜色值以及其对应的插值方向信息插值计算该像素的G值,插值后得到的图像称为第一中间图像。
图4示出了一种在待处理图像的5×5邻域内插值计算R像素的G值的方式,图4共包括4个子图,按照从上到下从左到右的顺序,分别对应4个潜在的插值方向:上方、右方、下方、左方,图中的数字表示预设的权重。
例如,假设神经网络模型针对这4个方向预测的概率为(0.5,0.2,0.2,0.1),若按照上面介绍的插值方式(1),可以确定实际插值方向为上方,将中心的R像素坐标记为(0,0),则R像素的G值的计算公式为:
G(0,0)=0.5×R(0,0)+1×G(0,-1)-0.5×R(0,-2)。
若按照上面介绍的插值方式(2),则R像素的G值的计算公式为:
G(0,0)=0.5×(0.5×R(0,0)+1×G(0,-1)-0.5×R(0,-2))//上方
+0.2×(0.5×R(0,0)+1×G(1,0)-0.5×R(2,0))//右方
+0.2×(0.5×R(0,0)+1×G(0,1)-0.5×R(0,2))//下方
+0.1×(0.5×R(0,0)+1×G(-1,0)-0.5×R(-2,0))//左方
对于B像素的G值,计算方式和R像素类似,不再重复说明。
步骤2:针对第一中间图像中的每个G像素,根据其邻域内的像素的颜色值插值计算该像素的R值和B值,得到的图像称为第二中间图像。其中,第一中间图像中的G像素是指:第一中间图像中对应于待处理图像中的G像素的那些像素。
图5示出了一种在第一中间图像的5×5邻域内插值计算G像素的R值和B值的方式。由于红色和蓝色都不是目标类别,因此可以直接根据如下公式进行计算,图中的数字表示像素的序号:
R[1]=G[1]+0.5×(R[0]-G[0])+0.5×(R[2]-G[2])
B[1]=G[1]+0.5×(B[3]-G[3])+0.5×(B[4]-G[4])
其中,G[0]、G[2]、G[3]、G[4]都是在步骤1中算出来的,式子中的0.5为预设系数,颜色值之差表示第一中间图像中的梯度信息。可以理解的,随着G像素位置的不同,该公式可能会稍有变化。
步骤3:针对第二中间图像中的每个R像素,根据其邻域内的像素的颜色值插值计算该像素的B值;以及,针对第二中间图像中的每个B像素,根据其邻域内的像素的颜色值插值计算该像素的R值;其中,第二中间图像中的R像素是指:第二中间图像中对应于待处理图像中的R像素的那些像素,第二中间图像中的B像素是指:第二中间图像中对应于待处理图像中的B像素的那些像素。
图6示包括2个子图,左边的子图示出了一种在第二中间图像的5×5邻域内插值计算R像素的B值的方式,右边的子图示出了一种在第二中间图像的5×5邻域内插值计算B像素的R值的方式。由于红色和蓝色都不是目标类别,因此可以直接根据如下公式进行计算,图中的数字表示像素的序号:
B[0]=G[0]+0.25×(B[1]-G[1])+0.25×(B[2]-G[2])
+0.25×(B[3]-G[3])+0.25×(B[4]-G[4])
R[0]=G[0]+0.25×(R[1]-G[1])+0.25×(R[2]-G[2])
+0.25×(R[3]-G[3])+0.25×(R[4]-G[4])
其中,G[1]、G[2]、G[3]、G[4]都是在步骤1中算出来的,式子中的0.25为预设系数,颜色值之差表示第二中间图像中的梯度信息。
特别地,如果某些像素位于待处理图像的边缘部分,则可以先在待处理图像外围镜像地填充一些颜色值,然后再执行插值过程,以便这些边缘像素也能够取到5×5的邻域。
可以理解,上面例子中的各个公式仅为示例,不应视为对本申请保护范围的限制。
综上所述,上述实施例中的图像处理方法可以视为现有去马赛克算法的一种改进方案。该方法的优势在于:
其一,利用了神经网络模型预测插值方向信息,神经网络模型可视为根据训练数据所确定的一种复杂的插值规则,其表达能力显著强于现有去马赛克算法中人工设定的插值规则,并且具有良好的泛化性,从而有利于提高插值精度。
其二,上述方法中的神经网络模型预测的是插值方向而非直接预测颜色值,而对于数字图像来说,插值方向是十分有限的(例如,水平、垂直、对角线方向),所以该模型可视为一个分类模型而非回归模型,相对来说,分类模型更容易达到较高的预测精度,也不容易输出预料之外的预测结果。
综合以上两点,上述图像处理方法可以得到伪彩较少、解析力较高的结果图像,结果图像中也不容易出现伪像(artifacts),将该结果图像用于后续的显示或者其他处理都能够取得更优的效果。
在一些实现方式中,步骤S110中的神经网络模型可以采用下面的训练方式(以训练出的模型用于处理拜耳阵列的待处理图像为例):
首先,收集一些RGB图像作为训练样本。
然后,对RGB图像按照拜耳阵列的要求进行采样(G值采样率为R值和B值的2倍),将其还原为单通道的RAW图像,将RAW图像输入到神经网络模型中,按照上面的图像处理方法计算出相应的结果图像。
再然后,计算神经网络模型所对应的损失函数的梯度,该损失函数表征结果图像和RGB图像的差异;例如,损失函数可以采用均方误差等函数形式。
最后,基于损失函数的梯度更新神经网络模型的参数,直至模型收敛。
根据上述训练方法中损失函数的设置方式可知,该训练过程以缩小结果图像和RGB图像的差异为导向,从而有利于神经网络模型预测出更精准的插值方向信息。可以理解,在其他的实现方式中,也可能设置额外的损失函数。
下面,在以上实施例的基础上,继续介绍多神经网络模型的情况:
可以采用同一个神经网络模型处理所有的待处理图像,此种实现方式逻辑比较简单,但待处理图像的内容千变万化,其采集环境也大相径庭,单一模型难免和某些待处理图像的匹配度不是最佳。因此,在一些实现方式中,预置多个备选的神经网络模型,根据待处理图像的属性信息为其分配一个最合适的模型用于插值方向信息的预测,从而有利于提高预测精度。其具体做法为:
步骤A:获取待处理图像的属性信息。属性信息可以定义为描述待处理图像的内容或者其采集环境的信息。例如,属性信息包括但不限于以下至少一项:待处理图像中颜色值的排布方式、待处理图像的感光度以及待处理图像的亮度。
其中,对应于某个特定摄像头的待处理图像,其颜色值的排布方式一般是已知的,例如,按照拜耳阵列的方式排布。但即便已知采用了拜耳阵列,不同的待处理图像中颜色值的排布还是可能存在一定的差异,例如,对于图1中间的子图,每4个像素构成的单元按照从上到下从左到右的顺序,颜色值为RGGB,但如果去掉该子图中的第一行和第一列,每个单元中的颜色值则会变成BGGR,即产生了两种不同的颜色值排布方式。这种情况是可能发生的,一些图像传感器会对生成的RAW图像进行裁剪,例如,采用裁剪掉第一行、第一列、最后一行、最后一列等方式中的一种或几种,这些裁剪操作都会导致待处理图像中的颜色值排布发生变化。
待处理图像的感光度,即待处理图像的ISO信息,该信息通常为图像传感器采集图像时设置的一项参数。
待处理图像的亮度反映了待处理图像所处环境的光照情况,通常表现为待处理图像中颜色值的大小,例如,待处理图像中所有颜色值的均值可以定义为待处理图像的亮度。
待处理图像的属性信息可以从图像或图像文件中提取,例如,待处理图像的亮度信息可以直接根据待处理图像中的颜色值进行计算;或者,也可以从图像传感器处获取,例如,在图2中,图像传感器可以向ISP模块传递待处理图像的感光度信息;或者,也可以结合这两种方式来获取待处理图像的属性信息,当然也不排除其他获取方式。
步骤B:根据待处理图像的属性信息从多个备选的神经网络模型中确定待处理图像对应的一个神经网络模型。
不同的神经网络模型对应不同的图像属性信息,但不同的属性信息不一定对应不同的神经网络模型。为阐述简单起见,不妨只考虑感光度这一项属性信息,一种可能的对应关系为:
ISO80~ISO160----模型1;
ISO200~ISO800----模型2;
ISO800以上----模型3
其中,每个模型对应的ISO区间不同,但同一ISO区间内的不同ISO值都对应同一个模型。
每个备选的神经网络模型可以采用具有特定属性信息的图像进行训练,从而训练好后,针对具有该特定属性信息的待处理图像,模型在预测插值方向信息时将具有较好的表现。例如,对于上面的模型1,可以采用ISO80~ISO160的RGB图像进行训练,训练过程可参考前文。
步骤A中获得待处理图像的属性信息后,根据预设的匹配规则便可确定出其对应的神经网络模型。例如,待处理图像的ISO为100,落入了区间80~160,可知其对应的神经网络模型为模型1。
步骤C:基于待处理图像,利用与其对应的神经网络模型预测得到插值方向信息。
步骤C和步骤S110类似,不再重复阐述。
下面在以上实施例的基础上,继续介绍目标类别的选择及相应的插值顺序问题:
在一些实现方式中,待处理图像中包含目标类别的颜色值的像素数量大于包含任一非目标类别的颜色值的像素数量,换句话说,目标类别可选择待处理图像中包含的颜色值数量最多的一个或几个类别。一般而言,在待处理图像中包含某种类别的颜色值越多,表明此种颜色对于图像而言最为重要,这是在生成待处理图像时就予以考虑的问题,例如在设置图像传感器的滤镜时,各种颜色的滤镜的数量就已经根据相应颜色的重要性进行了针对性设置(越重要的颜色滤镜数量越多),既然某种颜色比较重要,那么将其作为目标类别,用神经网络模型对此种颜色值对应的插值方向信息进行精确地预测,以便精确地计算此种颜色值,自然有利于提高结果图像的图像质量。
当然,为提高插值精度,也不必然要将所有类别的颜色都作为目标类别,其原因在于:第一,基于神经网络模型进行插值计算,其运算量一般大于不基于神经网络模型(例如,基于上面给出的一些插值公式)进行插值计算,因此可能影响图像去马赛克的效率;其二,针对不同的颜色类别进行插值方向信息的预测,可能需要使用不同的神经网络模型才能达到较好的效果,这意味这需要训练更多的模型,消耗更多的存储计算资源;其三,如果神经网络模型的运算用某个硬件模块实现,为预测不同颜色类别对应的插值方向信息,可能需要将待处理图像多次输入该硬件模块,这违背了流式处理的原则(同样的数据不会重复进入一个模块,只会向下游流动),可能影响处理效率,如果设置多个硬件模块并行地预测插值方向信息,成本又过高。
例如,在拜耳阵列的待处理图像中,G像素的数量分别是R像素和B像素的2倍,并且对G值的插值精度的要求也要超过R值和B值。这样设计的原因在于,人眼对绿色的敏感度超过红色和蓝色,因此在待处理图像中包含较多的G像素(包含真实采集到的G值),有利于提高去马赛克后图像的质量。
对于这样的待处理图像,可将绿色作为目标类别,利用神经网络模型预测R像素和B像素处的插值方向信息,并根据插值方向信息计算要插入的G值,至于对R值和B值的插值计算,则可以不采用神经网络预测插值方向信息。从而,即保证了G值的插值精度,又兼顾了插值效率。
进一步的,在对待处理图像的像素进行插值计算时可以先计算目标像素的目标类别的颜色值,然后再计算目标像素的其他类别的颜色值以及非目标像素的颜色值。目标像素的目标类别的颜色值是比较重要的,先利用高精度的插值方向信息计算好后,后续其他颜色值的计算也可以利用其计算结果,使得其他颜色值的计算精度也有所保证。
例如,延续上一个例子,在进行插值计算的过程中,可以先计算G值,然后再计算R值和B值;其中,计算R值和B值时可能会用到G值的计算结果,由于G值的计算精度较高,所以R值和B值的计算精度同样可以保障。
图7示出了本申请实施例提供的一种图像处理装置200的结构。参照图7,图像处理装置200包括:控制模块210、存储模块220、IO端口230、神经网络计算模块240以及插值计算模块250,这些组件通过通信总线260和/或其他形式的连接机构(未示出)互连并相互通讯。
神经网络计算模块240用于基于待处理图像,利用神经网络模型预测得到待处理图像中的目标像素对应的插值方向信息;其中,待处理图像的全部像素共包含K个类别的颜色值,K为大于1的整数,每个像素仅包含一个类别的颜色值,每个像素的另外K-1个类别的颜色值待计算,目标像素为待处理图像中待计算目标类别的颜色值的像素,目标类别为K个类别中的至少一个类别,每个目标类别对应一条插值方向信息。
可见,神经网络计算模块240实现了步骤S110(包含其任意可能的实现方式)的功能,或者说,神经网络计算模块240就是步骤S110硬件化的结果。例如,神经网络计算模块240可以是神经网络处理器(Neural-network Processing Unit,简称NPU)或NPU阵列,一些NPU自带了将待处理图像转换为张量的功能。
插值计算模块250,用于针对待处理图像的每个像素,根据其邻域内的像素的颜色值,插值计算该像素的另外K-1个类别的颜色值,得到结果图像;其中,对于每个目标像素的每个目标类别的颜色值,根据该像素的该目标类别对应的插值方向信息进行插值计算。
可见,插值计算模块250实现了步骤S120(包含其任意可能的实现方式)的功能,或者说,插值计算模块250就是步骤S120硬件化的结果。例如,插值计算模块250可以是ISP中专门用于插值计算的单元。
IO端口230包括一个或多个,用于图像处理装置200和外部设备的通信,例如,将ISP前置模块输出的待处理图像输入到图像处理装置200中,将图像处理装置200中计算出的结果图像输出给ISP后置模块。IO端口230可以是Mipi收发器、PCI-e控制器、DDR控制器、调试端口或者其他能够与外部总线通信的组件。
存储模块220用于存储待处理图像、插值方向信息、结果图像、神经网络模型(参数、结构)以及驱动程序的程序指令。存储模块220可以有一个或多个,每个存储模块220可以是随机存取存储器(Random Access Memory,简称RAM)、只读存储器(Read Only Memory,简称ROM)、可编程只读存储器(Programmable Read-Only Memory,简称PROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),电可擦除可编程只读存储器(Electric Erasable Programmable Read-Only Memory,简称EEPROM)等;多个存储模块220可以是以上组件的组合。存储模块220可能是ISP内部的,也可能是ISP和其他模块共享的。
控制模块210用于执行驱动程序的程序指令,驱动程序在运行时驱动神经网络计算模块240和插值计算模块250进行计算。控制模块210可以有一个或多个,每个控制模块210可以是CPU、微控制单元(Micro Controller Unit,简称MCU)等通用处理器,也可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(ApplicationSpecific Integrated Circuits,简称ASIC)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)等专用处理器,或者可以是其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等;多个控制模块210可以是以上组件的组合。
图像处理装置200的一种可能的工作过程为:
图像处理装置200所在的设备上电后,将神经网络模型从其他存储空间加载到存储模块220中(如果神经网络模型本来就在存储模块220中,则无需加载);
ISP前置模块(或者其他模块)输出的待处理图像通过IO端口230输入到图像处理装置200,被保存在存储模块220中。
神经网络计算模块240基于待处理图像,利用神经网络模型预测得到待处理图像中的目标像素对应的插值方向信息,插值方向信息保存在存储模块220中;
插值计算模块250基于待处理图像,并结合插值方向信息进行插值计算,得到结果图像,结果图像保存在存储模块220中;
结果图像通过IO端口230输出给ISP后置模块(或者其他模块)。
对上述工作过程需要说明几点:
其一,整个过程在控制模块210的控制下完成,在上述步骤中为简单起见并未体现这一点。
其二,神经网络模型的加载还存在与上述步骤不同的时机,只要在神经网络计算模块240开始计算之前加载好就可以了。并且,神经网络模型还支持动态加载,例如,根据图像传感器给出的待处理图像的属性信息(该信息可以和待处理图像一起送入图像处理装置200),从备选的神经网络模型中选择一个匹配的模型,将其动态加载到存储模块220中,如果存储模块220已经有其他模型,在存储空间有限的情况下,可以将其替换。
可以理解的,图7所示的结构仅为示意,图像处理装置200还可以包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。图像处理装置200可以单独形成一台电子设备,也可以被集成在其他电子设备中,例如,手机、照相机、摄像机、PC机、平板电脑、笔记本电脑、可穿戴设备、机器人等。
另外还需要指出,图7中的图像处理装置200不同于图2中的ISP中间模块,ISP中间模块是ISP的一部分,即与本申请实施例中的图像处理方法相关的部分,而图像处理装置200中可能包含ISP的组件(例如,插值计算模块250、IO端口230),也可能包含非ISP的组件(例如,神经网络计算模块240、控制模块210),图像处理装置200关注的是实现本申请实施例中的图像处理方法所需要的组件,并不关心该组件是否属于ISP。
图8示出了本申请实施例提供的图像处理装置300的一种可能的结构。参照图8,图像处理装置300包括:处理模块310、存储模块320以及IO端口330,这些组件通过通信总线340和/或其他形式的连接机构(未示出)互连并相互通讯。
其中,处理模块310包括一个或多个,每个处理模块310可以是通用处理器,包括CPU、MCU等,还可以是专用处理器,包括数字信号处理器DSPASICFPGA等,还有可能是其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件;多个处理模块310可以是以上组件的组合。
存储模块320包括一个或多个,每个存储模块220可以是RAM、ROM、PROM、EPROM、EEPROM等;多个存储模块220可以是以上组件的组合。
处理模块310以及其他可能的组件可对存储模块320进行访问,读和/或写其中的数据。特别地,在存储模块320中可以存储一个或多个计算机程序指令,处理模块310可以读取并运行这些计算机程序指令,以实现本申请实施例提供的图像处理方法(包括其任意一种可能的实现方式)。
IO端口330包括一个或多个,用于图像处理装置300和外部设备的通信,例如,将ISP前置模块输出的待处理图像输入到图像处理装置300中,将图像处理装置300中计算出的结果图像输出给ISP后置模块。IO端口330可以是Mipi收发器、PCI-e控制器、DDR控制器、调试端口或者其他能够与外部总线通信的组件。
可以理解,图8所示的结构仅为示意,图像处理装置300还可以包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。图像处理装置300可以单独形成一台电子设备,也可以被集成在其他电子设备中,例如,手机、照相机、摄像机、PC机、平板电脑、笔记本电脑、服务器、可穿戴设备、机器人等。
另外还需要指出,图8中的图像处理装置300不同于图7中的图像处理装置200,图像处理装置200主要是利用硬件化的方式实现本申请实施例中的图像处理方法(例如,用硬件化的神经网络计算模块240进行插值方向信息的预测),虽然图像处理装置200中也涉及驱动程序,但驱动程序仅起到控制和调度作用,方法的核心功能仍由硬件实现。而图像处理装置300则主要是利用软件的方式实现本申请实施例中的图像处理方法,该方法的步骤均为存储模块320中的程序指令,通过处理模块310执行这些指令来实现方法的核心功能。
可以根据不同的处理需求,选择图像处理装置200或图像处理装置300。例如,若对于单张照片的处理,可以采用图像处理装置300或图像处理装置200,对于视频的处理,可以采用图像处理装置200,由于图像处理装置200采用硬件实现去马赛克,因此可以有效保证视频的帧率不受太大影响。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,这些计算机程序指令被处理器读取并运行时,执行本申请实施例提供的图像处理方法。例如,计算机可读存储介质可以实现为图7中图像处理装置200中的存储模块220,或者,图8中图像处理装置300中的存储模块320。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序指令,这些计算机程序指令被处理器读取并运行时,执行本申请实施例提供的图像处理方法。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种图像处理方法,其特征在于,包括:
基于待处理图像,利用神经网络模型预测得到所述待处理图像中的目标像素对应的插值方向信息;其中,所述待处理图像的全部像素共包含K个类别的颜色值,K为大于1的整数,每个像素仅包含一个类别的颜色值,每个像素的另外K-1个类别的颜色值待计算,所述目标像素为所述待处理图像中待计算目标类别的颜色值的像素,所述目标类别为所述K个类别中的至少一个类别,每个目标类别对应一条插值方向信息;
针对所述待处理图像的每个像素,根据其邻域内的像素的颜色值,插值计算该像素的另外K-1个类别的颜色值,得到结果图像;其中,对于每个目标像素的每个目标类别的颜色值,根据该像素的该目标类别对应的插值方向信息进行插值计算。
2.根据权利要求1所述的图像处理方法,其特征在于,所述插值方向信息包括每个潜在插值方向对应的概率,所述根据该像素的该目标类别对应的插值方向信息进行插值计算,包括:
将对应的概率最大的潜在插值方向确定为实际插值方向,并根据所述实际插值方向进行插值计算,得到该像素的该目标类别的颜色值;和/或,
在每个潜在插值方向上均进行插值计算,得到对应的多个初始颜色值,并以每个潜在插值方向对应的概率为权重,对所述多个初始颜色值进行加权,得到该像素的该目标类别的颜色值。
3.根据权利要求1或2所述的图像处理方法,其特征在于,所述基于待处理图像,利用神经网络模型预测得到所述待处理图像中的目标像素对应的插值方向信息,包括:
获取所述待处理图像的属性信息,根据所述属性信息从多个备选的神经网络模型中确定所述待处理图像对应的神经网络模型;
基于所述待处理图像,利用与其对应的神经网络模型预测得到所述插值方向信息。
4.根据权利要求3所述的图像处理方法,其特征在于,所述属性信息包括以下至少一项:所述待处理图像中颜色值的排布方式、所述待处理图像的感光度、所述待处理图像的亮度。
5.根据权利要求1-4中任一项所述的图像处理方法,其特征在于,所述待处理图像中包含所述目标类别的颜色值的像素数量大于包含任一非目标类别的颜色值的像素数量,且在对所述待处理图像的像素进行插值计算时先计算所述目标像素的所述目标类别的颜色值。
6.根据权利要求5所述的图像处理方法,其特征在于,所述K个类别的颜色值分别为R值、G值和B值,所述目标类别的颜色值为G值,所述目标像素为所述待处理图像中的包含R值的像素和包含B值的像素,所述待处理图像中的颜色值按照拜耳阵列的方式排布。
7.一种图像信号处理器,其特征在于,包括:
前置模块,用于对图像传感器生成的第一RAW图像执行RAW图像处理算法,得到第二RAW图像;
中间模块,用于利用如权利要求1-6中任一项所述的方法对所述第二RAW图像进行插值计算,得到第一彩色图像;
后置模块,用于对所述第一彩色图像执行彩色图像处理算法,得到第二彩色图像。
8.一种图像处理装置,其特征在于,包括:神经网络计算模块、插值计算模块、存储模块以及控制模块;
所述神经网络计算模块,用于基于待处理图像,利用神经网络模型预测得到所述待处理图像中的目标像素对应的插值方向信息;其中,所述待处理图像的全部像素共包含K个类别的颜色值,K为大于1的整数,每个像素仅包含一个类别的颜色值,每个像素的另外K-1个类别的颜色值待计算,所述目标像素为所述待处理图像中待计算目标类别的颜色值的像素,所述目标类别为所述K个类别中的至少一个类别,每个目标类别对应一条插值方向信息;
所述插值计算模块,用于针对所述待处理图像的每个像素,根据其邻域内的像素的颜色值,插值计算该像素的另外K-1个类别的颜色值,得到结果图像;其中,对于每个目标像素的每个目标类别的颜色值,根据该像素的该目标类别对应的插值方向信息进行插值计算;
所述存储模块,用于存储所述待处理图像、所述插值方向信息、所述结果图像、所述神经网络模型以及驱动程序;
所述控制模块,用于执行所述驱动程序,所述驱动程序在运行时驱动所述神经网络计算模块和所述插值计算模块进行计算。
9.一种图像处理装置,其特征在于,包括存储模块以及处理模块,所述存储模块中存储有计算机程序指令,所述计算机程序指令被所述处理模块读取并运行时,执行权利要求1-6中任一项所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行如权利要求1-6中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111163066.9A CN114037606A (zh) | 2021-09-30 | 2021-09-30 | 图像处理方法、处理器、处理装置、程序产品及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111163066.9A CN114037606A (zh) | 2021-09-30 | 2021-09-30 | 图像处理方法、处理器、处理装置、程序产品及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114037606A true CN114037606A (zh) | 2022-02-11 |
Family
ID=80134710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111163066.9A Pending CN114037606A (zh) | 2021-09-30 | 2021-09-30 | 图像处理方法、处理器、处理装置、程序产品及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114037606A (zh) |
-
2021
- 2021-09-30 CN CN202111163066.9A patent/CN114037606A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111741211B (zh) | 图像显示方法和设备 | |
CN110717851A (zh) | 图像处理方法及装置、神经网络的训练方法、存储介质 | |
US11232286B2 (en) | Method and apparatus for generating face rotation image | |
CN109902702B (zh) | 目标检测的方法和装置 | |
CN112308200B (zh) | 神经网络的搜索方法及装置 | |
CN111402146B (zh) | 图像处理方法以及图像处理装置 | |
US20210398252A1 (en) | Image denoising method and apparatus | |
CN110276767A (zh) | 图像处理方法和装置、电子设备、计算机可读存储介质 | |
CN111402130B (zh) | 数据处理方法和数据处理装置 | |
US11849226B2 (en) | Image processing device including neural network processor and operating method thereof | |
CN112990211B (zh) | 一种神经网络的训练方法、图像处理方法以及装置 | |
CN111914997B (zh) | 训练神经网络的方法、图像处理方法及装置 | |
CN111931764B (zh) | 一种目标检测方法、目标检测框架及相关设备 | |
CN111832592B (zh) | Rgbd显著性检测方法以及相关装置 | |
CN109313805A (zh) | 图像处理装置、图像处理系统、图像处理方法和程序 | |
AU2020281143B1 (en) | Creating super-resolution images | |
CN114004754B (zh) | 一种基于深度学习的场景深度补全系统及方法 | |
CN114730456A (zh) | 神经网络模型的训练方法、图像处理方法及其装置 | |
CN110532959B (zh) | 基于双通道三维卷积神经网络的实时暴力行为检测系统 | |
CN109313806A (zh) | 图像处理装置、图像处理系统、图像处理方法和程序 | |
WO2022165722A1 (zh) | 单目深度估计方法、装置及设备 | |
CN110222718A (zh) | 图像处理的方法及装置 | |
CN113011562A (zh) | 一种模型训练方法及装置 | |
CN110490196A (zh) | 主体检测方法和装置、电子设备、计算机可读存储介质 | |
CN116012515A (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 |