CN112019803A - 图像信号处理器、图像处理装置及神经网络图像处理系统 - Google Patents
图像信号处理器、图像处理装置及神经网络图像处理系统 Download PDFInfo
- Publication number
- CN112019803A CN112019803A CN202010463164.3A CN202010463164A CN112019803A CN 112019803 A CN112019803 A CN 112019803A CN 202010463164 A CN202010463164 A CN 202010463164A CN 112019803 A CN112019803 A CN 112019803A
- Authority
- CN
- China
- Prior art keywords
- unit
- data
- network
- cnn
- signal processor
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
- H04N7/181—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R11/00—Arrangements for holding or mounting articles, not otherwise provided for
- B60R11/04—Mounting of cameras operative during drive; Arrangement of controls thereof relative to the vehicle
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Mechanical Engineering (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种图像信号处理器、图像处理装置及神经网络图像处理系统,可以用于车载ADAS及视频监控,提出用于流媒体实时视频处理与目标识别,结合卷积神经网络(CNN)与图像前后处理多个环节算法与技术实现,完成自动辅助驾驶危险目标识别、减轻安防视频存储开销以及提高视频大数据分析能力。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种图像信号处理器、图像处理装置及神经网络图像处理系统。
背景技术
在现实生活中,图像处理技术被广泛应用在如手机拍照、机器人、计算机视觉、安防监控、自动辅助驾驶、物联网等诸多领域。随着人工智能AI的发展,其核心技术神经网络已被广泛研究,其中神经网络与图像处理相结合的研究已成为近年来最热的技术方向之一。即便如此,其应用落地仍是不理想。
例如,汽车自动辅助驾驶中的危险目标识别、安防视频大数据存储等过程中,存在开销大、分析计算压力高等问题,仍然需要进行解决。
发明内容
本发明提供一种一种图像信号处理器、图像处理装置及神经网络图像处理系统,提高数据分析能力,降低分析计算的压力。
根据本发明的第一方面,提供了一种图像信号处理器,包括:
执行功能单元、数据混洗交叉网络、内部存储单元、寄存器堆;视频输入单元或外部数据存取单元获取数据交到数据混洗交叉网络,数据混洗网络将数据派发或分配到部分功能单元或内部存储单元,经过功能单元处理过的数据会再次交到数据混洗交叉网络,进行下一次数据派发或分配;多个或全部功能单元协同多个或全部存储单元同时处理和存取可完成实时视频流的流水线操作;寄存器堆用于缓存功能单元运行的临时数据或固件参数;所述数据混洗交叉网络为全交叉连接网络。
可选的,对于所述的图像信号处理器,执行功能单元包括通过对CNN算法特性提取,获得的基本运算组成单元,即CNN功能单元;卷积滤波器经过一个或多个时钟节拍完成一个新的神经元计算后,进行激活修正运算,ReLU_out为激活输出,P为输入神经元;获得四类基本运算组成单元:卷积激活单元、池化单元、全连接单元、层间特征图映射单元。
可选的,对于所述的图像信号处理器,卷积激活单元包括第一运算单元和第一存储单元,所述第一运算单元包括多组M×M的第一滤波器与修正运算器,所述第一存储单元包括相同组数的第一存储器,每组第一存储器包括M个行缓存,对应所述第一滤波器的垂直方向M个抽头,通过寄存器流水寄存获得水平方向的M个抽头,从而通过一个或多个时钟节拍实现M×M卷积的乘加算术流水运算,每组第一存储器的控制逻辑同时读取M行数据进入卷积滤波,同时完成行间更替写存储操作;每个行缓存由双口SRAM或单口SRAM实现,读写之间插入数个时钟延时节拍,以避免读写同一存储地址冲突;
所述池化单元包括第二运算单元和第二存储单元,所述第二运算单元包括多组第二滤波器,与卷积激活单元中的滤波激活运算一一对应;所述第二存储单元包括相同组数的第二存储器,每组第二存储器包括M个行缓存;从卷积激活单元输出的特征图第1行写入行缓存1,特征图第2行写入行缓存2,以此类推,特征图第S行写入行缓存S,后续进入循环写,即特征图第S+1行写入行缓存1,……,特征图第S+S行写入行缓存S,每写完S行控制逻辑同时读取S行作垂直方向跨度S下采样,水平方向下采样由寄存器流水移动操作实现。
可选的,对于所述的图像信号处理器,所述数据混洗交叉网络中,涉及:每个运算单元能够访问存储单元中的任意一个,反之,每个存储单元也可应答运算单元中的任意一个。
可选的,对于所述的图像信号处理器,所述图像信号处理器可进行CNN算法特性提取,包括:
输入图像信息,
多层网络特征图提取,上一层网络的特征图组合映射到下一层网络生成新的特征图,
经过CNN算法特性提取,获得CNN正向传播网络的基本构成单元包括卷积、激活、池化、压平、分类、特征图映射中的至少一种。
可选的,对于所述的图像信号处理器,所述基本运算组成单元集成到所述数据混洗交叉网络上;根据不同CNN固件算法将处理器内部缩小后的图像加载到所述CNN功能单元,或从外部主存加载上一层网络特征图至运算单元和/或存储单元;所述CNN功能单元组合可实现一层CNN网络运算,通过将每一层的运算结果存入所述外部主存或从主存读取以完成多层CNN网络迭代运算。
可选的,对于所述的图像信号处理器,还包括:外部数据存取单元、总线接口、视频输入单元以及视频输出单元。
根据本发明的第二方面,提供一种图像处理装置,包括:
算法模块,上位机,图像信号处理器,存储模块;所述图像信号处理器接收传感器的原始数据,送出视频数据至算法模块进行CNN训练,上位机根据训练后的结果设置图像处理及CNN的参数,并由固件或程序存储模块存储,设置后的参数被图像信号处理器调用,并继续送出视频数据至算法模块,直至获得的图像处理及CNN的最优参数,所述图像信号处理器为上所述的图像信号处理器。
可选的,对于所述的图像处理装置,所述算法模块包括CNN训练模块,所述CNN训练模块集成在上位机中,或者,所述CNN训练模块包括FPGA。
根据本发明的第三方面,提供一种图像处理系统,包括摄像组件和主机,所述摄像组件包括如本发明第一方面所述的图像信号处理器,或者包括如本发明第二方面所述的图像处理装置。
本发明中的图像信号处理器,比较容易芯片化,卷积神经网络CNN的训练学习及反向传播网络不通过图像信号处理器芯片实现,而是由软件或FPGA做协同运算,从而能够大大降低芯片的分析计算的压力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中车载ADAS图像处理系统的示意图;
图2是本发明一实施例中安防监控图像处理系统的示意图;
图3是本发明一实施例中图像处理装置的示意图;
图4是本发明一实施例中CNN运行方法的流程图;
图5是本发明一实施例中图像信号处理器的结构示意图一;
图6是本发明一实施例中交叉数据访问的示意图;
图7是本发明一实施例中图像信号处理器的结构的示意图二;
图8是本发明一实施例中CNN正向识别流程示意图;
图9是本发明一实施例中CNN执行功能单元实现的示意图;
图10是本发明一实施例中CNN层间特征图全连接映射示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
实施例1
本发明实施例1提供一种图像处理系统,包括摄像组件和主机,所述摄像组件可以是:至少包括如下的图像信号处理器,或者包括如下的图像处理装置。
其中,图像信号处理器可以包括:
执行功能单元、数据混洗交叉网络、内部存储单元、寄存器堆;视频输入单元或外部数据存取单元获取数据交到数据混洗交叉网络,数据混洗网络将数据派发或分配到部分功能单元或内部存储单元,经过功能单元处理过的数据会再次交到数据混洗交叉网络,进行下一次数据派发或分配;多个或全部功能单元协同多个或全部存储单元同时处理和存取可完成实时视频流的流水线操作;寄存器堆用于缓存功能单元运行的临时数据或固件参数;所述数据混洗交叉网络为全交叉连接网络。
其中,图像处理装置可以包括:
算法模块,上位机,图像信号处理器,存储模块;所述图像信号处理器接收传感器的原始数据,送出视频数据至算法模块进行CNN训练,上位机根据训练后的结果设置图像处理及CNN的参数,并由固件或程序存储模块存储,设置后的参数被图像信号处理器调用,并继续送出视频数据至算法模块,直至获得的图像处理及CNN的最优参数,所述图像信号处理器为如上所述的图像信号处理器。
具体的,如图1所示,示意了本发明在自动辅助驾驶或自动驾驶汽车(车载ADAS)中的应用。
可以在多个不同的角度装有摄像头,通过采集数据、恢复、增强、识别等图像识别等图像处理环节,将视频数据与识别分类结果传到车载主机,以供主控端进行图像存储、显示、以及数据分析,从而完成、提示、或指挥相应的行为动作。每个边缘摄像头主要由镜头、图像传感器、所述图像信号处理器构成,通过同轴或差分等线等视频传输线将视频传到主机,通过CAN总线等传输协议将识别分类结果传给车载主机。
具体的,请参考图2所示,示意了本发明在视频监控中的应用。多个场景的摄像头提供视频数据并将其传到后端录像存储设备DVR/NVR,和/或云计算平台,并且,可以在监视器中实时显示监控信息。由于大多数情况下,监控摄像头的位置是固定的,导致拍摄的场景与角度也是固定不变的,因而产生大量的视频冗余帧。这些冗余帧主要是背景画面或无事故场景,却占用大部分比列的存储资源,及计算资源。为了更好节约存储资源,以及提高数据提取与分析效率,本发明可以在边缘端的摄像头的图像处理器芯片中引入卷积神经网络(CNN)算法,即可以采用为如上所述的图像信号处理器。CNN识别分类各种关心的场景,如有人、宠物、车辆、运动体等进入场景的视频画面,处理器将这些画面的视频传输到后端设备或计算平台,从而节约存储资源并提高数据提取、计算、分析的效率。
实施例2
本发明实施例2提供了一种图像处理装置。下面对本实施例的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
本发明实施例提供一种图像处理装置,包括:
算法模块,上位机,图像信号处理器,存储模块;所述图像信号处理器接收传感器的原始数据,送出视频数据至算法模块进行CNN训练,上位机根据训练后的结果设置图像处理及CNN的参数,并由固件或程序存储模块存储,设置后的参数被图像信号处理器调用,并继续送出视频数据至算法模块,直至获得的图像处理及CNN的最优参数,所述图像信号处理器为如下的图像信号处理器:
包括执行功能单元、数据混洗交叉网络、内部存储单元、寄存器堆;视频输入单元或外部数据存取单元获取数据交到数据混洗交叉网络,数据混洗网络将数据派发或分配到部分功能单元或内部存储单元,经过功能单元处理过的数据会再次交到数据混洗交叉网络,进行下一次数据派发或分配;多个或全部功能单元协同多个或全部存储单元同时处理和存取可完成实时视频流的流水线操作;寄存器堆用于缓存功能单元运行的临时数据或固件参数;所述数据混洗交叉网络为全交叉连接网络。
实施例3
本发明实施例3提供了一种图像处理装置,并且可以是在实施例2的基础上进一步优化,其中,相同或相似的部分省略其描述。下面对本实施例的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
本发明实施例是一种软硬件协同的神经网络图像处理装置,系统架构如图3所示,CNN运行流程如图4所示。
图像信号处理器(ISP)从程序存储空间flash运行固件启动,接收传感器送来的原始(raw)数据,经过处理恢复成图像,送出视频数据。
视频数据送至上位机Host,上位机通过运行与ISP内部正向传播的卷积神经网络相一致的反向训练学习算法部分,实现卷积神经网络深度训练学习。
CNN学习过程是一个不断循坏迭代的闭合负反馈过程,每一次将结果误差经过CNN网络反向回溯传播,以修正初始卷积滤波器矩阵系数,修正后的滤波系数进入下一此训练学习,如此循坏反复,卷积滤波器的矩阵系数逐渐逼近最优化。
获得的最优参数被记录,并通过上位机Host配置更新到图像信号处理器ISP。之后ISP便可与上位机等调试设备脱离,独立在特定应用场景中工作,经采集、恢复、增强、识别等处理环节,送出视频数据与识别分类结果,并可通过芯片中断机制向芯片内部或外界发出提示信号以产生后续行为动作。
本发明实施例的CNN训练由上位机Host的GPU或CPU完成,另外还提出通过FPGA进行CNN训练。FPGA内部可编程逻辑只需实现CNN正向与反向网络,无需考虑图像处理器的其他部分实现,因为训练的视频图像由ISP芯片直接提供。FPGA将训练的结果通过串口UART或USB等接口上传到上位机,上位机Host再通过编译烧录环境将参数下载到ISP的程序存储空间。
实施例4
本发明实施例4提供了一种图像信号处理器。下面对本实施例的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。本实施例的示意图可参考图5,在本实施例中,所述图像信号处理器包括:
执行功能单元、数据混洗交叉网络、内部存储单元、寄存器堆;视频输入单元或外部数据存取单元获取数据交到数据混洗交叉网络,数据混洗网络将数据派发或分配到部分功能单元或内部存储单元,经过功能单元处理过的数据会再次交到数据混洗交叉网络,进行下一次数据派发或分配;多个或全部功能单元协同多个或全部存储单元同时处理和存取可完成实时视频流的流水线操作;寄存器堆用于缓存功能单元运行的临时数据或固件参数;所述数据混洗交叉网络为全交叉连接网络。
本发明实施例提出的图像信号处理器能够非常灵活地解决图像前后处理算法流程步骤不确定性问题,也可以灵活方便适应CNN运算阶段选择,以及配置图像缩放所处阶段,从而满足不同应用的神经网络算法选择。
实施例5
本发明实施例5提供了一种图像信号处理器,并且可以是在实施例4的基础上进一步优化,其中,相同或相似的部分省略其描述。下面对本实施例的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。本实施例的示意图可参考图5-图7。
图像信号处理器ISP包括执行功能单元(Func)、数据混洗交叉网络(Crossbar)、内部存储单元(Mem)、寄存器堆(Registerbank)、外部数据存取单元(Load/Store)、总线接口(BusIF)、主存控制器(DDRCtrl)、视频输入单元(VIU)、视频输出单元(VOU)、数字高清编码器(HEVC/H264/MJPEG)、模拟高清编码器(AHD/TVI/CVI)、微控制器(MCU/CPU)以及多种外设接口等部件组成。
具体的,视频输入单元(VIU)或外部数据存取单元(Load/Store)获取数据交到数据混洗交叉网络(Crossbar),数据混洗交叉网络经行数据派发或分配到部分功能单元(Func)或内部存储单元(Mem)。经过处理过的数据会再次交到数据混洗交叉网络,进行下一次数据派发或分配,多个或全部功能单元协同多个或全部内部存储单元同时处理和存取可完成实时视频流的流水线(pipeline)操作。寄存器堆(Registerbank)可用于缓存功能单元运行的临时数据或固件参数,如卷积神经网络CNN的滤波器矩阵系数等。
数字高清编码器、模拟高清编码器、数据混洗网络(Crossbar)共享外部数据存取单元(Load/Store),Load/Store集成DMA(直接存储访问)功能,可实现大量图像数据突发传输访问,无需经过MCU或CPU。
视频输出可根据应用裁剪选择不同接口,如通过以太网口可用于安防监控领域,通过同轴接口可用于车载ADAS领域,通过BT1120/BT656可用于视频会议等领域。
本发明实施例提出的数据混洗交叉网络(Crossbar)用于ISP内核功能与存储间数据交换。该网络为全交叉连接网络,如图6所示。运算功能单元FuncA、FuncB、FuncC能够访问存储单元MemA、MemB、MemC中任意一个,反之,存储单元MemA、MemB、MemC也可应答运算功能单元FuncA、FuncB、FuncC中的任意一个。在内核实际工作中,往往采用部分连接的网络,这可以通过固件根据图像处理算法运行流程与先后步骤进行合理配置。部分混洗交叉网络只是全连接混洗网络的一个子集,在内核实现时可采用全连接或部分连接交叉网络,以便根据需求灵活配置。
本发明实施例提出的图像信号处理器ISP的数据混洗交叉网络(Crossbar)能够非常灵活地解决图像前后处理算法流程步骤不确定性问题,可以有针对性的配置功能单元。
举例说明,如图7所示,算法A步骤为:先实施空域去噪然后实施图像增强,算法B步骤为:先实施图像增强然后实施空域去噪,该情况下,便可根据上层固件算法选择配置数据混洗网络为算法A结构或是算法B结构。
卷积神经网络CNN的数据运算量往往较大,特别是深度神经网络DNN运算,其运算量往往巨大。这使得算法运算阶段也是可选择的,如原始(RAW)数据阶段、RGB数据阶段、YUV数据阶段。本发明提出的图像信号处理器ISP的数据混洗交叉网络能够非常灵活方便适应CNN运算阶段选择,以及配置图像缩放所处阶段,从而满足不同应用的神经网络算法选择。
实施例6
本发明实施例6提供了一种图像信号处理器,并且可以是在实施例4或实施例5的基础上进一步优化,其中,相同或相似的部分省略其描述。下面对本实施例的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。本实施例的示意图可参考图5-图10。
所述图像信号处理器可进行CNN算法特性提取,包括:
输入图像信息,
多层网络特征图提取,上一层网络的特征图组合映射到下一层网络生成新的特征图,
经过CNN算法特性提取,获得CNN正向传播网络的基本构成单元包括卷积、激活、池化、压平、分类、特征图映射中的至少一种。
如图8所示,以简单的两层CNN正向传播网络为例进行举例说明。
1)输入图像分辨率为28x28,以运算亮度分量图为例,一般情况下为Y、U、V或R、G、B三个通道。
2)第一层网络有4个5x5的特征卷积核,每个卷积核又称滤波器,为5x5的矩阵,共25个系数,若代入偏移量,则为26个系统。经过第一次卷积后,生成4帧特征图,每帧大小为24(28-5+1)x24(28-5+1)个神经元(取滤波器与图像完全重叠部分)。然后对每帧特征图做激活修正,将负值的神经原用0值代替滤除,进入池化层。
3)池化层为2x2的下采样滤波,每2x2个神经元映射成一个新的神经元,算法通常采用2x2平均值或取最大值滤波。经过池化得到4帧12x12的特征图,进入下一层网络。
4)进入第二层网络,需将上一层网络的特征图映射到新的特征图组合。第二层网络有8个特征卷积核,因而需将上一层的4帧特征图组合映射到下一层生成新的8帧特征图,如B1=∑(A1,A2,A3),B2=∑(A2,A3,A4),…,B8=∑(A1,A2,A3,A4),其中A1,A2,A3,A4为上一层输出的特征图,B1,B2,B8为采用线性叠加运算组合产生的新特征图。
5)第二层网络再次经过卷积,激活,池化,输出特征图进入下一层网络。示例中一共两层网络,因此下一层网络为全连接网络。
7)通过以上步骤1)~6),可提取的卷积神经网络正向传播网络的基本构成单元有:卷积、激活、池化、压平、分类、特征图映射等。
本发明中,卷积神经网络CNN的训练学习及反向传播网络不通过图像信号处理器芯片实现,而是由软件或FPGA做协同运算。
执行功能单元包括通过对CNN算法特性提取,获得的基本运算组成单元,即CNN功能单元;卷积滤波器经过一个或多个时钟节拍完成一个新的神经元计算后,进行激活修正运算,ReLU_out为激活输出,P为输入神经元;获得四类基本运算组成单元:卷积激活单元、池化单元、全连接单元、层间特征图映射单元。
请参考图9,卷积激活单元(CNN-ConvReLU)包括第一运算单元和第一存储单元,所述第一运算单元包括多组M×M的第一滤波器与修正运算器,所述第一存储单元包括相同组数的第一存储器,每组第一存储器包括M个行缓存,对应所述第一滤波器的垂直方向M个抽头,通过寄存器流水寄存获得水平方向的M个抽头,从而通过一个或多个时钟节拍实现M×M卷积的乘加算术流水运算,每组第一存储器的控制逻辑同时读取M行数据进入卷积滤波,同时完成行间更替写存储操作;每个行缓存由双口SRAM或单口SRAM实现,读写之间插入数个时钟延时节拍,以避免读写同一存储地址冲突。
滤波器与修正运算器的数目在硬件实现时固定,也即处理器能支持的CNN每层网络最大特征提取数是固定的。卷积激活单元的算法包括:
其中I(i,j)表示每层输入像素或神经元,Conv_filter(i,j),B为卷积滤波矩阵系数,其中Conv_filter(i,j)表示二维卷积滤波矩阵系数,B表示偏移量,P(x,y)表示经过一个或多个时钟节拍乘加运算所得神经元值,ConvReLU_out(x,y)表示卷积激活输出,(x,y)表示所求特征图的神经元坐标。
卷积激活单元的算法还包括:将行缓存1的数据逐点写入行缓存2,缓存2的数据逐点写入缓存3,以此类推,行缓存M-1的数据逐点写入行缓存M,同时将特征图中与卷积窗口下边界相邻的一行写入到行缓存1,从而实现卷积滤波器在特征图垂直方向滑动,寄存器堆中的神经元按每个时钟节拍流水移动操作,则可实现卷积滤波器在特征图水平方向滑动。
所述池化单元包括第二运算单元和第二存储单元,所述第二运算单元包括多组第二滤波器,与卷积激活单元中的滤波激活运算一一对应;所述第二存储单元包括相同组数的第二存储器,每组第二存储器包括M个行缓存;从卷积激活单元输出的特征图第1行写入行缓存1,特征图第2行写入行缓存2,以此类推,特征图第S行写入行缓存S,后续进入循环写,即特征图第S+1行写入行缓存1,……,特征图第S+S行写入行缓存S,每写完S行控制逻辑同时读取S行作垂直方向跨度S下采样,水平方向下采样由寄存器流水移动操作实现。
滤波器为S×S的均值或极大值下采样滤波,S为采样跨度,当S=2,即表示在特征图水平垂直二个方向每跨2个点做一次抽样,池化单元的算法包括:
极大值池化过程:Pool_out(xp,yp)=max(P(x+i,y+j),i≤S-1,j≤S-1),
其中P表示输入特征图神经元,S表示池化下采样每次跨步,Pool_out表示下采样后得出的神经元,x,y表示采样前特征图坐标,xp,yp表示采样后特征图坐标。
在硬件实现时,以上两种算法可同时实现,在运行具体CNN算法时可通过固件配置选择其中一种算法。均值运算中的除法可通过精度归一化的乘法来实现,1/S*S可取的数值有1/4、1/9、1/16、1/25、…,实现时可固化其中一种或几种,使用时做选择配置。若只取1/2n,也可通过移位来简单实现除法运算。
CNN-Pool的存储单元与CNN-ConvReLU存储单元实现类似,也可以由单口或双口SRAM实现,例如可同时进行读写操作,读写之间插入数个时钟延时节拍,从而避免读写同一存储地址冲突。
CNN-Pool输出的特征图将进入下一层网络或全连接层,取决于CNN算法配置的网络层数,若CNN-Pool输出特征图是最后一层网络输出则进入全连接层CNN-FC,否则进入层间特征图映射以产生下一层网络的特征图。层间特征图映射由上一层输出的特征图与下一层卷积滤波再做线性组合,但由于每层卷积滤波器的矩阵系数是固定的,所以将每个滤波器的矩阵系数抽取成共因子,只需将输入特征图做线性组合,为尽可能使得特征多样化,新产生的每个特征图由部分输入特征图做组合,层间特征图映射的算法包括:
其中I为输入特征图,P为产生的特征图,Conv_filter,B为卷积滤波矩阵系数,k为输入特征图中的一个子集,P(x,y)表示经过一个或多个时钟节拍乘加运算所得神经元值。
硬件实现时,需构建一个全连接的组合,以方便根据CNN算法配置不同的部分映射组合,如图10所示。层间特征图映射的最大数目与CNN每层网络最大特征提取数相一致,映射后的特征图经外部数据存取单元(Load/Store)写入外部主存(DDR/SDRAM),或从外部主存读取上一层映射的特征图加载进入下一层网络运算,处理器会根据算法所处循环阶段进入的网络层配置相应网络层的运算参数。
全连接单元将池化单元输出的特征图矩阵做压平操作,即将多维矩阵数组按一定次序排列逐点写入特征缓存,若特征矩阵为
则按照PP={p11 p12 p13 p21 p22 p23 p31 p32 p33}将每个特征值写入缓存,然后按FIFO顺序读取缓存的特征值进入全连接单元,全连接单元按流水线的方式首先进行矩阵乘运算压缩得到矩阵Yk,经过修正激活得Yk',再次做矩阵乘运算压缩得到结果矩阵Yn,Yn经过Softmax运算后得到识别分类结果并写入寄存器,同时触发中断或产生状态进入后续行为。
运算表达式包括:其中Yt为T×1矩阵,Wk为K×T矩阵,Yk,Yk'为K×1矩阵,Wn为N×K矩阵,Yn为N×1矩阵。按时钟节拍从特征缓存中连续读取T个值,同时从寄存器文件或RAM中连续读取T个相应CNN矩阵系数,经过乘累加得到矩阵Yk的第一行第一列的值,以此作K次循环操作,便可算出Yk所有行第一列的值(Yk共一列)。同样的运算操作应用到第二个特征值缓存,便可求得矩阵Yn(Yn共一列)。Softmax可通过比较器流水比较时钟前一拍数据与后一拍数据大小,若后一拍数据较大则寄存保留替换前一拍数据及其对应的索引值,然后作下一次比较,直至数据全部比较完成。特征值缓存可由单口SRAM或寄存器文件实现。
上文举例说明了CNN的执行功能单元的提取实现,将其功能模块化后便可挂接到图像信号处理器的数据混洗交叉网络上。根据不同CNN算法固件将ISP内部缩放后的图像加载到CNN执行功能单元,或从外部主存加载上一层网络特征图至运算单元和/或存储单元;所述CNN功能单元组合可实现一层CNN网络运算,通过将每一层的运算结果存入所述外部主存或从主存读取以完成多层CNN网络迭代运算。CNN算法采用的图像分辨率通常较小(如256x256),因此图像缩放单元可采用多级缩小操作,CNN的行缓存深度也相应设小,从而减少片上存储开销。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种图像信号处理器,包括:
执行功能单元、数据混洗交叉网络、内部存储单元、寄存器堆;视频输入单元或外部数据存取单元获取数据交到数据混洗交叉网络,数据混洗网络将数据派发或分配到部分功能单元或内部存储单元,经过功能单元处理过的数据会再次交到数据混洗交叉网络,进行下一次数据派发或分配;多个或全部功能单元协同多个或全部存储单元同时处理和存取可完成实时视频流的流水线操作;寄存器堆用于缓存功能单元运行的临时数据或固件参数;所述数据混洗交叉网络为全交叉连接网络。
3.根据权利要求2所述的图像信号处理器,其特征在于,卷积激活单元包括第一运算单元和第一存储单元,所述第一运算单元包括多组M×M的第一滤波器与修正运算器,所述第一存储单元包括相同组数的第一存储器,每组第一存储器包括M个行缓存,对应所述第一滤波器的垂直方向M个抽头,通过寄存器流水寄存获得水平方向的M个抽头,从而通过一个或多个时钟节拍实现M×M卷积的乘加算术流水运算,每组第一存储器的控制逻辑同时读取M行数据进入卷积滤波,同时完成行间更替写存储操作;每个行缓存由双口SRAM或单口SRAM实现,读写之间插入数个时钟延时节拍,以避免读写同一存储地址冲突;
所述池化单元包括第二运算单元和第二存储单元,所述第二运算单元包括多组第二滤波器,与卷积激活单元中的滤波激活运算一一对应;所述第二存储单元包括相同组数的第二存储器,每组第二存储器包括M个行缓存;从卷积激活单元输出的特征图第1行写入行缓存1,特征图第2行写入行缓存2,以此类推,特征图第S行写入行缓存S,后续进入循环写,即特征图第S+1行写入行缓存1,……,特征图第S+S行写入行缓存S,每写完S行控制逻辑同时读取S行作垂直方向跨度S下采样,水平方向下采样由寄存器流水移动操作实现。
4.根据权利要求3所述的图像信号处理器,其特征在于,所述数据混洗交叉网络中,涉及:每个运算单元能够访问存储单元中的任意一个,反之,每个存储单元也可应答运算单元中的任意一个。
6.根据权利5所述的图像信号处理器,其特征在于,所述基本运算组成单元集成到所述数据混洗交叉网络上;根据不同CNN固件算法将处理器内部缩小后的图像加载到所述CNN功能单元,或从外部主存加载上一层网络特征图至运算单元和/或存储单元;所述CNN功能单元组合可实现一层CNN网络运算,通过将每一层的运算结果存入所述外部主存或从主存读取以完成多层CNN网络迭代运算。
7.根据权利1-6中任意一项所述的图像信号处理器,其特征在于,还包括:外部数据存取单元、总线接口、视频输入单元以及视频输出单元。
8.一种图像处理装置,包括:
算法模块,上位机,图像信号处理器,存储模块;所述图像信号处理器接收传感器的原始数据,送出视频数据至算法模块进行CNN训练,上位机根据训练后的结果设置图像处理及CNN的参数,并由固件或程序存储模块存储,设置后的参数被图像信号处理器调用,并继续送出视频数据至算法模块,直至获得的图像处理及CNN的最优参数,所述图像信号处理器为如权利要求1~7中任意一项所述的图像信号处理器。
9.根据权利要求1所述的图像处理装置,其特征在于,所述算法模块包括CNN训练模块,所述CNN训练模块集成在上位机中,或者,所述CNN训练模块包括FPGA。
10.一种神经网络图像处理系统,其特征在于,包括摄像组件和主机,所述摄像组件包括如权利要求1~7中任意一项所述的图像信号处理器,或者包括如权利要求8或9所述的图像处理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010463164.3A CN112019803A (zh) | 2020-05-27 | 2020-05-27 | 图像信号处理器、图像处理装置及神经网络图像处理系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010463164.3A CN112019803A (zh) | 2020-05-27 | 2020-05-27 | 图像信号处理器、图像处理装置及神经网络图像处理系统 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN112019803A true CN112019803A (zh) | 2020-12-01 |
Family
ID=73507192
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010463164.3A Pending CN112019803A (zh) | 2020-05-27 | 2020-05-27 | 图像信号处理器、图像处理装置及神经网络图像处理系统 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN112019803A (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114066828A (zh) * | 2021-11-03 | 2022-02-18 | 深圳市创科自动化控制技术有限公司 | 一种基于多功能底层算法的图像处理方法及系统 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102053816A (zh) * | 2010-11-25 | 2011-05-11 | 中国人民解放军国防科学技术大学 | 具有开关矩阵存储器的数据混洗单元及其混洗方法 |
| CN105022609A (zh) * | 2015-08-05 | 2015-11-04 | 浪潮(北京)电子信息产业有限公司 | 一种数据混洗方法和数据混洗单元 |
| CN108701236A (zh) * | 2016-01-29 | 2018-10-23 | 快图有限公司 | 卷积神经网络 |
| KR101935399B1 (ko) * | 2018-07-11 | 2019-01-16 | 주식회사 두원전자통신 | 심층 신경망 알고리즘 기반 광역 다중 객체 감시 시스템 |
| CN110874632A (zh) * | 2018-08-31 | 2020-03-10 | 北京嘉楠捷思信息技术有限公司 | 图像识别处理方法和装置 |
-
2020
- 2020-05-27 CN CN202010463164.3A patent/CN112019803A/zh active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102053816A (zh) * | 2010-11-25 | 2011-05-11 | 中国人民解放军国防科学技术大学 | 具有开关矩阵存储器的数据混洗单元及其混洗方法 |
| CN105022609A (zh) * | 2015-08-05 | 2015-11-04 | 浪潮(北京)电子信息产业有限公司 | 一种数据混洗方法和数据混洗单元 |
| CN108701236A (zh) * | 2016-01-29 | 2018-10-23 | 快图有限公司 | 卷积神经网络 |
| KR101935399B1 (ko) * | 2018-07-11 | 2019-01-16 | 주식회사 두원전자통신 | 심층 신경망 알고리즘 기반 광역 다중 객체 감시 시스템 |
| CN110874632A (zh) * | 2018-08-31 | 2020-03-10 | 北京嘉楠捷思信息技术有限公司 | 图像识别处理方法和装置 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114066828A (zh) * | 2021-11-03 | 2022-02-18 | 深圳市创科自动化控制技术有限公司 | 一种基于多功能底层算法的图像处理方法及系统 |
| CN114066828B (zh) * | 2021-11-03 | 2022-09-02 | 深圳市创科自动化控制技术有限公司 | 一种基于多功能底层算法的图像处理方法及系统 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111402146B (zh) | 图像处理方法以及图像处理装置 | |
| CN109993707B (zh) | 图像去噪方法和装置 | |
| US20210350168A1 (en) | Image segmentation method and image processing apparatus | |
| CN111951195B (zh) | 图像增强方法及装置 | |
| CN112529904B (zh) | 图像语义分割方法、装置、计算机可读存储介质和芯片 | |
| CN119027713A (zh) | 图像分类方法及装置 | |
| WO2022001372A1 (zh) | 训练神经网络的方法、图像处理方法及装置 | |
| US11157764B2 (en) | Semantic image segmentation using gated dense pyramid blocks | |
| JP7123256B2 (ja) | ビデオ画像処理方法及び装置 | |
| WO2022022288A1 (zh) | 一种图像处理方法以及装置 | |
| CN109993712A (zh) | 图像处理模型的训练方法、图像处理方法及相关设备 | |
| WO2021114184A1 (zh) | 神经网络模型的训练方法、图像处理方法及其装置 | |
| WO2019136764A1 (zh) | 卷积器及其所应用的人工智能处理装置 | |
| WO2022179606A1 (zh) | 一种图像处理方法及相关装置 | |
| CN112446835A (zh) | 图像恢复方法、图像恢复网络训练方法、装置和存储介质 | |
| US11941781B2 (en) | Method and apparatus for restoring image | |
| CN113065645A (zh) | 孪生注意力网络、图像处理方法和装置 | |
| US11704894B2 (en) | Semantic image segmentation using gated dense pyramid blocks | |
| JP2011258207A (ja) | 多次元データをデータ競合なしで同時検索するための処理システム、データ構造およびデータ処理方法 | |
| CN114627034A (zh) | 一种图像增强方法、图像增强模型的训练方法及相关设备 | |
| EP4024343A1 (en) | Viewpoint image processing method and related device | |
| US9826237B2 (en) | Analytics assisted encoding | |
| CN111275746A (zh) | 一种基于fpga的稠密光流计算系统及方法 | |
| CN115936992A (zh) | 一种轻量级Transformer的垃圾图像超分辨方法及系统 | |
| CN108073550A (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 | ||
| WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20201201 |
|
| WD01 | Invention patent application deemed withdrawn after publication |