CN115455798A - 校正坏点的装置、板卡、方法及可读存储介质 - Google Patents
校正坏点的装置、板卡、方法及可读存储介质 Download PDFInfo
- Publication number
- CN115455798A CN115455798A CN202110637696.9A CN202110637696A CN115455798A CN 115455798 A CN115455798 A CN 115455798A CN 202110637696 A CN202110637696 A CN 202110637696A CN 115455798 A CN115455798 A CN 115455798A
- Authority
- CN
- China
- Prior art keywords
- pixel
- dead
- training data
- threshold
- static
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Quality & Reliability (AREA)
- Image Processing (AREA)
Abstract
本发明涉及利用训练数据在神经网络模型中校正坏点的装置、板卡、方法及可读存储介质,其中本发明的计算装置包括在集成电路装置中,该集成电路装置包括通用互联接口和其他处理装置。计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。集成电路装置还可以包括存储装置,存储装置分别与计算装置和其他处理装置连接,用于计算装置和其他处理装置的数据存储。
Description
技术领域
本发明一般地涉及神经网络领域。更具体地,本发明涉及利用训练数据在神经网络模型中校正坏点的装置、板卡、方法及可读存储介质。
背景技术
图像坏点指的是摄像头上的像素点阵列存在工艺上的缺陷,或在光信号转化为电信号的过程中出现错误,导致图像中的像素值不准确。
图像坏点分为以下两种。第一种是静态坏点,又分为静态亮点和静态暗点。静态亮点的亮度值明显大于入射光乘以相应比例,并且随着曝光时间的增加,该点的亮度会一直处于全亮状态;静态坏点则是无论入射光的强度为何,该点的值接近于0,也就是全暗状态。第二种是动态坏点,其在一定像素范围内表现正常,但超过这范围,该点表现会比周围像素要亮或暗,比周围亮的是动态亮点,比周围暗的是动态暗点。
如果图像中存在坏点的话,由于在影像信号处理中进行插值和滤波处理时,坏点会影响周围的像素点值,因此现有技术在插值和滤波之前对坏点进行校正。坏点校正通常在拜耳(Bayer)域进行。
现有技术在进行静态坏点校正时,基于历史静态坏点表,比较当前点的坐标是否与静态坏点表中的某个坐标一致,若一致则判定为坏点,接着对其进行校正。现有技术在进行动态坏点校正时,一般分为两阶段进行:第一阶段为坏点检测,基于梯度变化,找出亮度相对于周围窗口变化巨大的像素值;第二阶段是坏点校正,对检测出的坏点使用插值算法校正。
现有技术的坏点校正难以去除所有的静态坏点,而去除动态坏点又需要额外的计算。再者,拜耳域去噪的对坏点较为敏感,甚至于会放大坏点,使得坏点更难以去除。
因此,一种改良式的坏点校正方案是迫切需要的。
发明内容
为了至少部分地解决背景技术中提到的技术问题,本发明的方案提供了一种利用训练数据在神经网络模型中校正坏点的装置、板卡、方法及可读存储介质。
在一个方面中,本发明揭露一种利用训练数据在神经网络模型中校正坏点的方法,该神经网络模型用以执行图像信号处理的任务。本发明的方法包括:随机在训练数据中仿真多个坏点,以生成仿真数据;基于仿真数据对神经网络模型进行训练;以及将图像数据输入至训练后的神经网络模型以执行任务,以获得校正坏点后的计算结果。
在另一个方面,本发明揭露一种计算机可读存储介质,其上存储有利用训练数据在神经网络模型中校正坏点的计算机程序代码,当计算机程序代码由处理装置运行时,执行前述的方法。
在另一个方面,本发明揭露一种利用训练数据在神经网络模型中校正坏点的集成电路装置,包括处理装置及计算装置。处理装置用以随机在训练数据中仿真多个坏点,以生成仿真数据。计算装置用以基于仿真数据对神经网络模型进行训练;以及将图像数据输入至训练后的神经网络模型以执行任务,以获得校正坏点后的计算结果。
在另一个方面,本发明揭露一种板卡,包括前述的集成电路装置。
本发明提出了一种基于深度学习的坏点校正方案,在具有特定任务的神经网络训练中额外模拟静态和动态坏点。通过添加坏点仿真,神经网络模型在训练过程中一方面可以优化原本任务,另一方面还能对坏点进行去除或者抑制。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
图1是示出本发明实施例的板卡的结构图;
图2是示出本发明实施例的集成电路装置的结构图;
图3是示出本发明实施例的计算装置的内部结构示意图;
图4是示出本发明实施例的处理器核的内部结构示意图;
图5是示出当一个处理器核欲将数据写入至另一个集群的处理器核时的示意图;
图6是示出本发明另一个实施例利用训练数据在神经网络模型中校正坏点的流程图;以及
图7是示出本发明另一个实施例随机在训练数据中仿真多个坏点以生成仿真数据的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,本发明的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本发明的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本发明。如在本发明说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本发明说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
下面结合附图来详细描述本发明的具体实施方式。
本发明提出一种利用训练数据在神经网络模型中校正坏点的方案,此神经网络模型原本用来执行与计算机视觉有关的特定任务,例如图像识别、目标检测、语义分割、视频理解、图像生成、去噪、去马赛克等。在训练此神经网络模型的同时仿真静态和动态坏点,使得此神经网络模型在训练过程中,除了优化原特定任务外,还可以通过参数的更新抑制坏点对图像的影响。
本发明的实施例是一种应用于具有摄像头以实现计算机视觉的网络架构中,该网络架构具有如图1所示的板卡10。如图1所示,板卡10包括芯片101,其是一种系统级芯片(System on Chip,SoC),或称片上系统,集成有一个或多个组合处理装置,组合处理装置是一种人工智能运算单元,用以支持各类深度学习和机器学习算法,满足计算机视觉领域复杂场景下的智能处理需求。特别是深度学习技术大量应用在云端智能领域,云端智能应用的一个显著特点是输入数据量大,对平台的存储能力和计算能力有很高的要求,此实施例的板卡10适用在云端智能应用,具有庞大的片外存储、片上存储和强大的计算能力。
芯片101通过对外接口装置102与外部设备103相连接。在此实施例中,外部设备103为摄像头。待处理的图像数据可以由外部设备103通过对外接口装置102传递至芯片101。根据不同的应用场景,对外接口装置102可以具有不同的接口形式,例如PCIe接口等。
板卡10还包括用于存储数据的存储器件104,其包括一个或多个存储单元105。存储器件104通过总线与控制器件106和芯片101进行连接和数据传输。板卡10中的控制器件106配置用于对芯片101的状态进行调控。为此,在一个应用场景中,控制器件106可以包括单片机(Micro Controller Unit,MCU)。
图2是示出此实施例的芯片101中的组合处理装置的结构图。如图2中所示,组合处理装置20包括计算装置201、接口装置202、处理装置203和DRAM 204。
计算装置201配置成执行用户指定的操作,主要实现为单核智能处理器或者多核智能处理器,用以执行深度学习或机器学习的计算,其可以通过接口装置202与处理装置203进行交互,以共同完成计算机视觉的操作。
接口装置202用于在计算装置201与处理装置203间传输数据和控制指令。例如,计算装置201可以经由接口装置202从处理装置203中获取输入数据,写入计算装置201片上的存储装置。进一步,计算装置201可以经由接口装置202从处理装置203中获取控制指令,写入计算装置201片上的控制缓存中。替代地或可选地,接口装置202也可以读取计算装置201的存储装置中的数据并传输给处理装置203。
处理装置203作为通用的处理装置,执行包括但不限于数据搬运、对计算装置201的开启和/或停止等基本控制。根据实现方式的不同,处理装置203可以是中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)或其他通用和/或专用处理器中的一种或多种类型的处理器,这些处理器包括但不限于数字信号处理器(digital signal processor,DSP)、专用集成电路(application specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本发明的计算装置201而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算装置201和处理装置203整合共同考虑时,二者视为形成异构多核结构。
DRAM 204用以存储待处理的数据,为DDR内存,大小通常为16G或更大,用于保存计算装置201和/或处理装置203的数据,包括训练神经网络模型的训练样本集。
图3示出了计算装置201的内部结构示意图。计算装置201用以处理计算机视觉的输入数据,图中的计算装置201采用多核分层结构设计,计算装置201作为一个片上系统,其包括多个集群(cluster),每个集群又包括多个处理器核,换言之,计算装置201是以片上系统-集群-处理器核的层次所构成的。
以片上系统的层级来看,如图3所示,计算装置201包括外部存储控制器301、外设通信模块302、片上互联模块303、同步模块304以及多个集群305。
外部存储控制器301可以有多个,在图中示例性地展示2个,其用以响应处理器核发出的访问请求,访问外部存储设备,例如图2中的DRAM204,从而自片外读取图像数据或是将数据写入。外设通信模块302用以通过接口装置202接收来自处理装置203的控制信号,启动计算装置201执行任务。片上互联模块303将外部存储控制器301、外设通信模块302及多个集群305连接起来,用以在各个模块间传输数据和控制信号。同步模块304是一种全局同步屏障控制器(global barrier controller,GBC),用以协调各集群的工作进度,确保信息的同步。多个集群305是计算装置201的计算核心,在图中示例性地展示4个,随着硬件的发展,本发明的计算装置201还可以包括8个、16个、64个、甚至更多的集群305。集群305用以高效地执行深度学习算法。
以集群的层级来看,如图3所示,每个集群305包括多个处理器核(IPU core)306及一个存储核(MEM core)307。
处理器核306在图中示例性地展示4个,本发明不限制处理器核306的数量。其内部架构如图4所示。每个处理器核306包括三大模块:控制模块41、运算模块42及存储模块43。
控制模块41用以协调并控制运算模块42和存储模块43的工作,以完成深度学习的任务,其包括取指单元(instruction fetch unit,IFU)411及指令译码单元(instructiondecode unit,IDU)412。取指单元411用以获取来自处理装置203的指令,指令译码单元412则将获取的指令进行译码,并将译码结果作为控制信息发送给运算模块42和存储模块43。
运算模块42包括向量运算单元421及矩阵运算单元422。向量运算单元421用以执行向量运算,可支持向量乘、加、非线性变换等复杂运算;矩阵运算单元422负责深度学习算法的核心计算,即矩阵乘及卷积。
存储模块43用来存储或搬运相关数据,包括神经元存储单元(neuron RAM,NRAM)431、权值存储单元(weight RAM,WRAM)432、输入/输出直接内存访问模块(input/outputdirect memory access,IODMA)433、搬运直接内存访问模块(move direct memoryaccess,MVDMA)434。NRAM431用以存储供处理器核306计算的特征图及计算后的中间结果;WRAM432则用以存储深度学习网络的权值;IODMA 433通过广播总线309控制NRAM 431/WRAM432与DRAM 204的访存;MVDMA 434则用以控制NRAM 431/WRAM 432与SRAM 308的访存。
回到图3,存储核307主要用以存储和通信,即存储处理器核306间的共享数据或中间结果、以及执行集群305与DRAM 204之间的通信、集群305间彼此的通信、处理器核306间彼此的通信等。在其他实施例中,存储核307具有标量运算的能力,用以执行标量运算。
存储核307包括共享存储单元(SRAM)308、广播总线309、集群直接内存访问模块(cluster direct memory access,CDMA)310及全局直接内存访问模块(global directmemory access,GDMA)311。SRAM 308承担高性能数据中转站的角色,在同一个集群305内不同处理器核306之间所复用的数据不需要通过处理器核306各自向DRAM 204获得,而是经SRAM 308在处理器核306间中转,存储核307只需要将复用的数据从SRAM 308迅速分发给多个处理器核306即可,以提高核间通讯效率,亦大大减少片上片外的输入/输出访问。
广播总线309、CDMA 310及GDMA 311则分别用来执行处理器核306间的通信、集群305间的通信和集群305与DRAM 204的数据传输。以下将分别说明。
广播总线309用以完成集群305内各处理器核306间的高速通信,此实施例的广播总线309支持核间通信方式包括单播、多播与广播。单播是指点对点(即单一处理器核至单一处理器核)的数据传输,多播是将一份数据从SRAM 308传输到特定几个处理器核306的通信方式,而广播则是将一份数据从SRAM 308传输到所有处理器核306的通信方式,属于多播的一种特例。
CDMA 310用以控制在同一个计算装置201内不同集群305间的SRAM 308的访存。图5示出当一个处理器核欲将数据写入至另一个集群的处理器核时的示意图,以说明CDMA310的工作原理。在此应用场景中,同一个计算装置包括多个集群,为方便说明,图中仅展示集群0与集群1,集群0与集群1分别包括多个处理器核,同样为了说明方便,图中的集群0仅展示处理器核0,集群1仅展示处理器核1。处理器核0欲将数据写入至处理器核1。
首先,处理器核0发送单播写请求将数据写入本地的SRAM 0中,CDMA 0作为主(master)端,CDMA 1作为从(slave)端,主端向从端推送写请求,即主端发送写地址AW和写数据W,将数据传送到集群1的SRAM 1中,接着从端发送写响应B作为回应,最后集群1的处理器核1发送单播读请求将数据从SRAM 1中读取出来。
回到图3,GDMA 311与外部存储控制器301协同,用以控制集群305的SRAM 308到DRAM 204的访存,或是将数据自DRAM 204读取至SRAM 308中。从前述可知,DRAM 204与NRAM431或WRAM 432间的通信可以经由2个渠道来实现。第一个渠道是通过IODAM 433直接联系DRAM 204与NRAM 431或WRAM 432;第二个渠道是先经由GDMA 311使得数据在DRAM 204与SRAM 308间传输,再经过MVDMA 434使得数据在SRAM 308与NRAM 431或WRAM 432间传输。虽然表面上看来第二个渠道需要更多的元件参与,数据流较长,但实际上在部分实施例中,第二个渠道的带宽远大于第一个渠道,因此DRAM 204与NRAM 431或WRAM 432间的通信通过第二个渠道可能更有效率。本发明的实施例可根据本身硬件条件选择数据传输渠道。
在其他实施例中,GDMA 311的功能和IODMA 433的功能可以整合在同一部件中。本发明为了方便描述,将GDMA 311和IODMA 433视为不同部件,对于本领域技术人员来说,只要其实现的功能以及达到的技术效果与本发明类似,即属于本发明的保护范围。进一步地,GDMA 311的功能、IODMA 433的功能、CDMA 310的功能、MVDMA 434的功能亦可以由同一部件来实现。
如前所述,DRAM 204储存有训练神经网络模型的训练样本集,此训练样本集里的训练数据是用来训练该神经网络模型的,训练数据被输入至神经网络模型中,先正向传播计算得到误差函数,再反向针对模型中各参数求导梯度下降,在得到了偏导数之后,调整各参数值。大量重复上述程序,直到误差函数缩小到一个可接受范围,便完成了该神经网络模型对训练数据的学习。
在训练前,处理装置203自DRAM 204取出训练数据,随机在训练数据中仿真多个坏点,以生成仿真数据,即处理装置203把坏点的信息随机加入训练数据中,使得部分像素成为坏点。此处的坏点可以是静态坏点及/或动态坏点。静态坏点又分为静态亮点和静态暗点,动态坏点也分为动态亮点和动态暗点。当处理装置203把坏点的信息随机加入训练数据中时,可以仅考虑静态坏点,或仅考虑动态坏点,或是两者皆有。
如果仿真数据包括静态坏点,则仿真数据载有静态坏点中的静态亮点及静态暗点的信息,静态亮点及静态暗点出现在训练数据里多帧画面中的固定位置,也就是模拟同一个坏点像素,固定位置由处理装置203随机生成。
如果仿真数据包括动态坏点,则仿真数据载有动态坏点的信息,不同于静态坏点,动态坏点出现在训练数据里多帧画面中的随机位置,随机位置由处理装置203随机生成。
此实施例可以考虑到坏点面积的情况来设定各种坏点的坏点显现率,坏点显现率指的是该种坏点出现的概率。现实中坏点不总是一个像素,在一些情况下,可能是连续好几个坏点形成一个坏点群。此实施例设定各种坏点群的坏点显现率,处理装置203根据坏点显现率决定相对应特定大小的坏点群在训练数据里出现的次数。示例性地,此实施例设定静态暗点的坏点面积与其坏点显现率如下。
例如1*1的静态暗点(即单个像素)的坏点显现率为千分之一,则当处理装置203在模拟1*1的静态暗点时,根据坏点显现率,在一千个像素中随机选择一个目标点,不论该目标点的像素值为何,都将该目标点的像素值调整为0,使其成为静态暗点。本发明并不限制静态亮点与静态暗点的坏点显现率需相同,在其他实施例中,静态亮点的坏点显现率与静态暗点的坏点显现率可以不同。
当处理装置203在模拟静态暗点群时,根据坏点面积为2*1的坏点显现率,在二千个像素中随机选择2*1目标群(即连续2个像素),不论该目标点的像素值为何,都将该目标群各像素的像素值调整为0,使其成为静态暗点群。再根据坏点面积为2*2的坏点显现率,在五千个像素中随机选择2*2目标群(即4个像素形成的坏点方阵),不论该目标群各像素的像素值为何,都将该目标点的像素值调整为0,使其成为静态暗点群。以此类推,不一一阐述。
此实施例还可以进一步考虑到坏点和温度、像素亮度值、增益的关系。一般情况下,摄像头的温度越高,坏点出现的概率也越高;像素亮度越大,成为坏点的概率也越高,例如亮度超过0.5,该像素只能全亮,区分不出0.5至1间的不同亮度值;增益调的越高,坏点的概率就越大,为了能在不同的景物照度条件下输出的标准视频信号,摄像头中放大器的增益在一定的范围内会进行调节,具有这种功能的摄像头,在低照度的灵敏度会提高,但同时噪点也会比较明显,这是由于信号和噪声被同时放大的缘故。
为了反映前述差异,在模拟动态亮点时,处理装置203会设定上阈值及阈值触发率,其中上阈值用以表示上极端情况,阈值触发率用以反映前述各种不同情况下发生坏点的概率。当处理装置203在仿真动态亮点时,会判断阈值触发率是否被满足,如是,继续判断训练数据里的像素的数值是否大于上阈值,如大于上阈值,设定该像素的数值为1,也就是不论像素值为何都是全亮,以模拟动态亮点。
以温度为例,设定当摄像头温度低于0度时,阈值触发率为五千分之一,当摄像头温度介于0度至50度时,阈值触发率为千分之一,当摄像头温度高于50度时,阈值触发率为五百分之一,另设定上阈值为0.8。当处理装置203在仿真动态亮点时,如果模拟摄像头的温度为零下10度,则阈值触发率满足为五千分之一,即五千个像素中出现一个目标点,处理装置203模拟前述情况,当出现目标点时,处理装置继续判断该目标点的数值是否大于上阈值,假设该目标点的像素值为0.9,大于上阈值0.8,处理装置203将该目标点的数值从0.9调整为1,使其变成全亮坏点。如果该目标点的像素值为0.4,不大于上阈值0.8,处理装置203维持原像素值,该目标点为正常像素。
此外,处理装置203还可以设定下阈值。当处理装置203在仿真动态暗点时,会判断相应的阈值触发率是否被满足,如是,继续判断训练数据里的像素的数值是否小于下阈值,如小于下阈值,设定该像素的数值为0,也就是不论像素值为何都是全暗,以模拟动态暗点。
以增益为例,当摄像头的放大器增益低于L1准位时,阈值触发率为千分之一,当摄像头的放大器增益介于L1至L2准位时,阈值触发率为五百分之一,当摄像头的放大器增益高于L2准位时,阈值触发率为三百分之一,另设定下阈值为0.2。当处理装置203在仿真动态暗点时,如果模拟摄像头的放大器增益介于L1至L2准位,则阈值触发率满足为五百分之一,即五百个像素中出现一个目标点,处理装置203模拟前述情况,当出现目标点时,处理装置继续判断该目标点的数值是否小于下阈值,假设该目标点的像素值为0.1,小于下阈值0.2,处理装置203将该目标点的数值从0.1调整为0,使其变成全暗坏点。如果该目标点的像素值为0.5,不小于下阈值0.2,处理装置203维持原像素值,该目标点为正常像素。
以上各种坏点模拟完成后,处理装置203将仿真数据存储至DRAM204中。当训练开始时,计算装置201自DRAM 204取出仿真数据,而非原训练数据,基于仿真数据对神经网络模型进行训练。换言之,训练过程中一方面优化原本任务(如图像识别、目标检测、语义分割、视频理解、图像生成、去噪、去马赛克等),另一方面掩去各种坏点对任务结果的影响。也就是说,无论坏点的形式、大小、数量及位置为何,都可以借由训练神经网络模型的过程同步排除坏点的影响,最终使得损失函数的误差低于一定值,坏点不再实质影响计算结果,便完成了神经网络模型对训练数据的学习。
当计算装置201利用训练好的神经网络模型执行任务时,计算装置201利用该摄像头的图像数据在训练后的神经网络模型中进行运算,便可获得校正坏点后的计算结果。
本发明的另一个实施例为一种利用训练数据在神经网络模型中校正坏点的方法,图6示出该方法的流程图。
在步骤601中,自内存取出训练数据,随机在训练数据中仿真多个坏点,以生成仿真数据,即把坏点的信息随机加入训练数据中,使得部分像素成为坏点。
此实施例的坏点同样可以是静态坏点及/或动态坏点。静态坏点又分为静态亮点和静态暗点,动态坏点又分为动态亮点和动态暗点。当把坏点的信息随机加入训练数据中时,可以仅考虑静态坏点,或仅考虑动态坏点,或是两者皆有。
如果仿真数据包括静态坏点,则仿真数据载有静态坏点中的静态亮点及静态暗点的信息,静态亮点及静态暗点出现在训练数据里多帧画面中的固定位置,也就是模拟同一个坏点像素,固定位置随机生成。如果仿真数据包括动态坏点,则仿真数据载有动态坏点的信息,动态坏点出现在训练数据里多帧画面中的随机位置,随机位置亦随机生成。
步骤601又能细分为多个子步骤,如图7所示。
在步骤701中,设定各种坏点的坏点显现率。此实施例可以考虑到坏点面积的情况来设定各种坏点的坏点显现率,坏点显现率指的是该种坏点出现的概率,示例性地,此实施例的坏点面积与其坏点显现率可以和前一实施例相同。
在步骤702中,根据坏点显现率决定相对应特定大小的坏点在训练数据里出现的次数。
例如1*1的静态暗点(即单个像素)的坏点显现率为千分之一,则当处理装置203在模拟1*1的静态暗点时,根据坏点显现率,在一千个像素中随机选择一个目标点,不论该目标点的像素值为何,都将该目标点的像素值调整为0,使其成为静态暗点。
当处理装置203在模拟静态暗点群时,根据坏点面积为2*1的坏点显现率,在二千个像素中随机选择2*1目标群(即连续2个像素),不论该目标点的像素值为何,都将该目标群各像素的像素值调整为0,使其成为静态暗点群。再根据坏点面积为2*2的坏点显现率,在五千个像素中随机选择2*2目标群(即4个像素形成的坏点方阵),不论该目标群各像素的像素值为何,都将该目标点的像素值调整为0,使其成为静态暗点群。以此类推,不一一阐述。
在步骤703中,设定上阈值及阈值触发率,其中上阈值用以表示上极端情况,阈值触发率用以反映在温度、增益、亮度不同情况下发生坏点的概率。
在步骤704中,判断阈值触发率是否被满足。如是,则执行步骤705,判断训练数据里的像素的数值是否大于上阈值。如大于上阈值,则执行步骤706,设定该像素的数值为1,也就是不论像素值为何都是全亮,以模拟动态亮点。如在步骤704中判断阈值触发率未被满足,或是在步骤705中判断训练数据里的像素的数值未大于上阈值,则执行步骤707,像素值维持不变,该像素不会被调整成为坏点。
更详细来说,此实施例会根据不同的情况设定不同的阈值触发率,以温度为例,设定当摄像头温度低于0度时,阈值触发率为五千分之一,当摄像头温度介于0度至50度时,阈值触发率为千分之一,当摄像头温度高于50度时,阈值触发率为五百分之一,另设定上阈值为0.8。当此实施例在仿真动态亮点时,如果模拟摄像头的温度为60度,则阈值触发率满足为五百分之一,即在步骤704中五百个像素中挑选一个目标点,在步骤705中判断该目标点的数值是否大于上阈值,假设该目标点的像素值为0.9,大于上阈值0.8,在步骤706中将该目标点的数值从0.9调整为1,使其变成全亮坏点。如果该目标点的像素值为0.4,不大于上阈值0.8,则执行步骤707,维持原像素值,该目标点为正常像素。
在步骤708中,设定下阈值及阈值触发率,其中下阈值用以表示下极端情况。此处的阈值触发率可以与步骤703中的阈值触发率相同,或另行设定与下阈值相关的阈值触发率。
在步骤709中,判断相应的阈值触发率是否被满足,如是,则执行步骤710,判断训练数据里的像素的数值是否小于下阈值,如小于下阈值,则执行步骤711,设定该像素的数值为0,也就是不论像素值为何都是全暗,以模拟动态暗点。如在步骤709中判断阈值触发率未被满足,或是在步骤710中判断训练数据里的像素的数值未小于下阈值,则执行步骤712,像素值维持不变,该像素不会被调整成为坏点。
以增益为例,当摄像头的放大器增益低于L1准位时,阈值触发率为千分之一,当摄像头的放大器增益介于L1至L2准位时,阈值触发率为五百分之一,当摄像头的放大器增益高于L2准位时,阈值触发率为三百分之一,另设定下阈值为0.2。在步骤709中,如果模拟摄像头的放大器增益低于L1准位,则阈值触发率满足为千分之一,即一千个像素中选择一个目标点。被选中的目标点执行步骤710,判断该目标点的数值是否小于下阈值,假设该目标点的像素值为0.1,小于下阈值0.2,在步骤711中将该目标点的数值从0.1调整为0,使其变成全暗坏点。如果该目标点的像素值为0.5,不小于下阈值0.2,则执行步骤712,维持原像素值,该目标点为正常像素。
回到图6,以上各种坏点模拟完成后,接着执行步骤602,将仿真数据存储至内存中。
当训练开始时,执行步骤603,自内存取出仿真数据,基于仿真数据对神经网络模型进行训练。换言之,训练过程中一方面优化原本任务(如图像识别、目标检测、语义分割、视频理解、图像生成、去噪、去马赛克等),另一方面掩去各种坏点对任务结果的影响。也就是说,无论坏点的形式、大小、数量及位置为何,都可以借由训练神经网络模型的过程同步排除坏点的影响,最终使得损失函数的误差低于一定值,坏点不再实质影响计算结果,便完成了神经网络模型对训练数据的学习。
在步骤604中,将训练好的模型参数存储至内存中。
在步骤605中,自内存取出训练好的模型参数,利用训练好的神经网络模型执行任务,也就是利用该摄像头的图像数据在训练后的神经网络模型中进行运算,便可获得校正坏点后的计算结果。
本发明另一个实施例为一种计算机可读存储介质,其上存储有利用训练数据在神经网络模型中校正坏点的计算机程序代码,当所述计算机程序代码由处理器运行时,执行如图6及图7的方法。在一些实现场景中,上述集成的单元可以采用软件程序模块的形式来实现。如果以软件程序模块的形式实现并作为独立的产品销售或使用时,所述集成的单元可以存储在计算机可读取存储器中。基于此,当本发明的方案以软件产品(例如计算机可读存储介质)的形式体现时,该软件产品可以存储在存储器中,其可以包括若干指令用以使得计算机设备(例如个人计算机、服务器或者网络设备等)执行本发明实施例所述方法的部分或全部步骤。前述的存储器可以包括但不限于U盘、闪存盘、只读存储器(Read OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本发明可以在任何具有特定任务的神经网络训练中额外模拟静态和动态坏点。通过添加坏点仿真,神经网络模型在训练过程中一方面可以优化原本任务,另一方面还能对坏点进行去除或者抑制,无需事先消耗资源获得历史坏点表,整体效益佳。
根据不同的应用场景,本发明的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。本发明的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本发明的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本发明方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
需要说明的是,为了简明的目的,本发明将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本发明的方案并不受所描述的动作的顺序限制。因此,依据本发明的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本发明所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本发明某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本发明对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本发明某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本发明的公开和教导,本领域技术人员可以理解本发明所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行拆分,而实际实现时也可以有另外的拆分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
在本发明中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本发明实施例所述方案的目的。另外,在一些场景中,本发明实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如中央处理器、GPU、FPGA、DSP和ASIC等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(Resistive Random Access Memory,RRAM)、动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)、增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,EDRAM)、高带宽存储器(High Bandwidth Memory,HBM)、混合存储器立方体(Hybrid Memory Cube,HMC)、ROM和RAM等。
依据以下条款可更好地理解前述内容:
条款A1、一种利用训练数据在神经网络模型中校正坏点的方法,所述神经网络模型用以执行图像信号处理的任务,所述方法包括:随机在所述训练数据中仿真多个坏点,以生成仿真数据;基于所述仿真数据对所述神经网络模型进行训练;以及将图像数据输入至训练后的神经网络模型以执行所述任务,以获得校正坏点后的计算结果。
条款A2、根据条款A1所述的方法,其中所述多个坏点包括静态坏点,所述仿真数据载有所述静态坏点中的静态亮点及静态暗点的信息。
条款A3、根据条款A2所述的方法,其中所述静态亮点及所述静态暗点出现在所述训练数据里多帧画面中的固定位置,所述固定位置随机生成。
条款A4、根据条款A1所述的方法,其中所述多个坏点包括动态坏点,所述仿真数据载有所述动态坏点的信息。
条款A5、根据条款A4所述的方法,其中所述动态坏点出现在所述训练数据里多帧画面中的随机位置。
条款A6、根据条款A4所述的方法,所述仿真步骤还包括:设定上阈值及阈值触发率;判断所述阈值触发率是否被满足;如是,判断所述训练数据里的像素的数值是否大于所述上阈值;以及如大于所述上阈值,设定所述数值为1。
条款A7、根据条款A6所述的方法,其中所述上阈值为0.8。
条款A8、根据条款A4所述的方法,所述仿真步骤还包括:设定下阈值及阈值触发率;判断所述阈值触发率是否被满足;如是,判断所述训练数据里的像素的数值是否小于所述下阈值;以及如小于所述下阈值,设定所述数值为0。
条款A9、根据条款A8所述的方法,其中所述下阈值为0.2。
条款A10、根据条款A1所述的方法,所述仿真步骤还包括:设定多个坏点显现率,每个坏点显现率对应特定大小的像素群;以及根据所述坏点显现率决定相对应特定大小的像素群在所述训练数据里出现的次数。
条款A11、一种计算机可读存储介质,其上存储有利用训练数据在神经网络模型中校正坏点的计算机程序代码,当所述计算机程序代码由处理装置运行时,执行条款A1至10任一项所述的方法。
条款A12、一种利用训练数据在神经网络模型中校正坏点的集成电路装置,包括:处理装置,用以随机在所述训练数据中仿真多个坏点,以生成仿真数据;计算装置,用以:基于所述仿真数据对所述神经网络模型进行训练;以及将图像数据输入至训练后的神经网络模型以执行所述任务,以获得校正坏点后的计算结果。
条款A13、根据条款A12所述的集成电路装置,其中所述多个坏点包括静态坏点,所述仿真数据载有所述静态坏点中的静态亮点及静态暗点的信息。
条款A14、根据条款A13所述的集成电路装置,其中所述静态亮点及所述静态暗点出现在所述训练数据里多帧画面中的固定位置,所述固定位置由所述处理装置随机生成。
条款A15、根据条款A12所述的集成电路装置,其中所述多个坏点包括动态坏点,所述仿真数据载有所述动态坏点的信息。
条款A16、根据条款A15所述的集成电路装置,其中所述动态坏点出现在所述训练数据里多帧画面中的随机位置。
条款A17、根据条款A15所述的集成电路装置,其中所述处理装置还用以:设定上阈值及阈值触发率;以及判断所述阈值触发率是否被满足,如是,判断所述训练数据里的像素的数值是否大于所述上阈值,如大于所述上阈值,设定所述数值为1。
条款A18、根据条款A17所述的集成电路装置,其中所述上阈值为0.8。
条款A19、根据条款A15所述的集成电路装置,其中所述处理装置还用以:设定下阈值及阈值触发率;以及判断所述阈值触发率是否被满足,如是,判断所述训练数据里的像素的数值是否小于所述下阈值,如小于所述下阈值,设定所述数值为0。
条款A20、根据条款A19所述的集成电路装置,其中所述下阈值为0.2。
条款A21、根据条款A12所述的集成电路装置,其中所述处理装置根据坏点显现率决定相对应特定大小的像素群在所述训练数据里出现的次数。
条款A22、一种板卡,包括根据条款A12至21任一项所述的集成电路装置。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (22)
1.一种利用训练数据在神经网络模型中校正坏点的方法,所述神经网络模型用以执行图像信号处理的任务,所述方法包括:
随机在所述训练数据中仿真多个坏点,以生成仿真数据;
基于所述仿真数据对所述神经网络模型进行训练;以及
将图像数据输入至训练后的神经网络模型以执行所述任务,以获得校正坏点后的计算结果。
2.根据权利要求1所述的方法,其中所述多个坏点包括静态坏点,所述仿真数据载有所述静态坏点中的静态亮点及静态暗点的信息。
3.根据权利要求2所述的方法,其中所述静态亮点及所述静态暗点出现在所述训练数据里多帧画面中的固定位置,所述固定位置随机生成。
4.根据权利要求1所述的方法,其中所述多个坏点包括动态坏点,所述仿真数据载有所述动态坏点的信息。
5.根据权利要求4所述的方法,其中所述动态坏点出现在所述训练数据里多帧画面中的随机位置。
6.根据权利要求4所述的方法,所述仿真步骤还包括:
设定上阈值及阈值触发率;
判断所述阈值触发率是否被满足;
如是,判断所述训练数据里的像素的数值是否大于所述上阈值;以及
如大于所述上阈值,设定所述数值为1。
7.根据权利要求6所述的方法,其中所述上阈值为0.8。
8.根据权利要求4所述的方法,所述仿真步骤还包括:
设定下阈值及阈值触发率;
判断所述阈值触发率是否被满足;
如是,判断所述训练数据里的像素的数值是否小于所述下阈值;以及
如小于所述下阈值,设定所述数值为0。
9.根据权利要求8所述的方法,其中所述下阈值为0.2。
10.根据权利要求1所述的方法,所述仿真步骤还包括:
设定多个坏点显现率,每个坏点显现率对应特定大小的像素群;以及
根据所述坏点显现率决定相对应特定大小的像素群在所述训练数据里出现的次数。
11.一种计算机可读存储介质,其上存储有利用训练数据在神经网络模型中校正坏点的计算机程序代码,当所述计算机程序代码由处理装置运行时,执行权利要求1至10任一项所述的方法。
12.一种利用训练数据在神经网络模型中校正坏点的集成电路装置,包括:
处理装置,用以随机在所述训练数据中仿真多个坏点,以生成仿真数据;
计算装置,用以:
基于所述仿真数据对所述神经网络模型进行训练;以及
将图像数据输入至训练后的神经网络模型以执行所述任务,以获得校正坏点后的计算结果。
13.根据权利要求12所述的集成电路装置,其中所述多个坏点包括静态坏点,所述仿真数据载有所述静态坏点中的静态亮点及静态暗点的信息。
14.根据权利要求13所述的集成电路装置,其中所述静态亮点及所述静态暗点出现在所述训练数据里多帧画面中的固定位置,所述固定位置由所述处理装置随机生成。
15.根据权利要求14所述的集成电路装置,其中所述多个坏点包括动态坏点,所述仿真数据载有所述动态坏点的信息。
16.根据权利要求15所述的集成电路装置,其中所述动态坏点出现在所述训练数据里多帧画面中的随机位置。
17.根据权利要求15所述的集成电路装置,其中所述处理装置还用以:
设定上阈值及阈值触发率;以及
判断所述阈值触发率是否被满足,如是,判断所述训练数据里的像素的数值是否大于所述上阈值,如大于所述上阈值,设定所述数值为1。
18.根据权利要求17所述的集成电路装置,其中所述上阈值为0.8。
19.根据权利要求15所述的集成电路装置,其中所述处理装置还用以:
设定下阈值及阈值触发率;以及
判断所述阈值触发率是否被满足,如是,判断所述训练数据里的像素的数值是否小于所述下阈值,如小于所述下阈值,设定所述数值为0。
20.根据权利要求19所述的集成电路装置,其中所述下阈值为0.2。
21.根据权利要求12所述的集成电路装置,其中所述处理装置根据坏点显现率决定相对应特定大小的像素群在所述训练数据里出现的次数。
22.一种板卡,包括根据权利要求12至21任一项所述的集成电路装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110637696.9A CN115455798A (zh) | 2021-06-08 | 2021-06-08 | 校正坏点的装置、板卡、方法及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110637696.9A CN115455798A (zh) | 2021-06-08 | 2021-06-08 | 校正坏点的装置、板卡、方法及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115455798A true CN115455798A (zh) | 2022-12-09 |
Family
ID=84294756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110637696.9A Pending CN115455798A (zh) | 2021-06-08 | 2021-06-08 | 校正坏点的装置、板卡、方法及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115455798A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116228756A (zh) * | 2023-05-08 | 2023-06-06 | 常州星宇车灯股份有限公司 | 一种自动驾驶中相机坏点的检测方法及检测系统 |
-
2021
- 2021-06-08 CN CN202110637696.9A patent/CN115455798A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116228756A (zh) * | 2023-05-08 | 2023-06-06 | 常州星宇车灯股份有限公司 | 一种自动驾驶中相机坏点的检测方法及检测系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11513586B2 (en) | Control device, method and equipment for processor | |
CN112416433B (zh) | 一种数据处理装置、数据处理方法及相关产品 | |
US20210097647A1 (en) | Information processing method and terminal device | |
CN112799599A (zh) | 一种数据存储方法、计算核、芯片和电子设备 | |
CN111193917B (zh) | 运算方法、装置及相关产品 | |
CN115455798A (zh) | 校正坏点的装置、板卡、方法及可读存储介质 | |
CN112084023A (zh) | 数据并行处理的方法、电子设备及计算机可读存储介质 | |
CN109740746B (zh) | 运算方法、装置及相关产品 | |
CN115511774A (zh) | 涉及检测坏点的集成电路装置及板卡 | |
CN115454923A (zh) | 数据计算的装置、板卡、方法以及存储介质 | |
CN112540848A (zh) | 图像解压缩的设备、方法及可读存储介质 | |
CN112801276A (zh) | 数据处理方法、处理器及电子设备 | |
CN111784557A (zh) | 一种处理图像数据的方法、装置、板卡及可读存储介质 | |
US20230305840A1 (en) | Computing apparatus, integrated circuit chip, board card, device and computing method | |
CN113469333B (zh) | 执行神经网络模型的人工智能处理器、方法及相关产品 | |
CN112232498B (zh) | 一种数据处理装置、集成电路芯片、电子设备、板卡和方法 | |
CN114429194A (zh) | 处理神经网络计算的装置、板卡、方法及可读存储介质 | |
CN114444677A (zh) | 进行稀疏化训练的装置、板卡、方法及可读存储介质 | |
CN114648438A (zh) | 处理图像数据的设备、方法及可读存储介质 | |
CN115460359A (zh) | 为摄像头去噪的装置、板卡、方法及可读存储介质 | |
CN114691083A (zh) | 矩阵乘法电路、方法及相关产品 | |
CN115514906A (zh) | 基于前景数据为摄像头去噪的集成电路装置 | |
CN114647442A (zh) | 根据指令集运行的设备 | |
CN116484926A (zh) | 自适应拆分优化的设备及方法 | |
CN113792867A (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 |