CN115735226B - 一种图像处理方法及芯片 - Google Patents
一种图像处理方法及芯片 Download PDFInfo
- Publication number
- CN115735226B CN115735226B CN202080102287.2A CN202080102287A CN115735226B CN 115735226 B CN115735226 B CN 115735226B CN 202080102287 A CN202080102287 A CN 202080102287A CN 115735226 B CN115735226 B CN 115735226B
- Authority
- CN
- China
- Prior art keywords
- slice
- output
- neural network
- image data
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 215
- 238000013528 artificial neural network Methods 0.000 claims abstract description 115
- 238000000034 method Methods 0.000 claims abstract description 101
- 239000012634 fragment Substances 0.000 claims abstract description 83
- 230000008569 process Effects 0.000 claims abstract description 57
- 238000003062 neural network model Methods 0.000 claims abstract 10
- 238000004364 calculation method Methods 0.000 claims description 51
- 238000007781 pre-processing Methods 0.000 claims description 24
- 238000010586 diagram Methods 0.000 description 25
- 238000013527 convolutional neural network Methods 0.000 description 24
- 238000004891 communication Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 238000010295 mobile communication Methods 0.000 description 11
- 238000012937 correction Methods 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 5
- 229920001621 AMOLED Polymers 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- 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
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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
- G06N3/048—Activation functions
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20132—Image cropping
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Neurology (AREA)
- Image Processing (AREA)
Abstract
本申请实施例提供一图像处理方法。该方法包括:芯片中的图像信号处理器处理从摄像头接收的数据,生成目标图像;所述图像信号处理器将所述目标图像中的第一分片写入所述芯片中的系统缓存中;所述芯片的神经网络处理器从所述系统缓存读取所述第一分片;所述神经网络处理器基于神经网络模型对所述第一分片进行处理,以获取第一输出分片;所述神经网络处理器将所述第一输出分片写入所述系统缓存中;其中,所述神经网络模型包括多个卷积层,所述系统缓存进一步用于存储所述多个卷积层中第一卷积层输出的中间图像数据。本申请提供的技术方案节省了图像处理的耗时,节省了系统功耗。
Description
技术领域
本申请涉及图像处理技术领域,具体涉及一种图像处理方法及芯片。
背景技术
目前,在例如移动终端、平板电脑等具有拍照和视频录制功能的终端中,由终端中的图像信号处理器(Image signal processor,ISP)和神经网络处理器(Neural networkProcessing Unit,NPU)对拍摄的照片进行像素级图像处理,显著提升了图像的质量。然而,由于目前的照片分辨率越来越高,所述像素级图像处理的处理数据量较大,并且NPU从内存中读取图像进行处理,从而使得NPU处理耗时较大。例如,在移动终端中通过NPU处理拍摄的照片需要耗时2s-3s,如果通过NPU对视频中的每帧图像进行同样的处理,将可能导致丢帧或者花图,即,所述像素级图像处理功能在视频场景中效果差。
发明内容
本申请实施例提供一种图像处理方法和设备,使得可以使用系统缓存存储图像处理过程中的数据,节省了图像处理的耗时和系统功耗。
本申请第一方面提供一种图像处理方法,包括:图像处理设备中的第一处理器将目标图像中的第一分片写入系统缓存中;所述图像处理设备的神经网络处理器从系统缓存读取目标图像中的第一分片;所述神经网络处理器对所述第一分片进行处理,以获取第一输出分片;所述神经网络处理器将所述第一输出分片写入所述系统缓存中。
在该图像处理方法中,通过将较大的目标图像切分为较小的分片分别进行处理,使得可以使用系统缓存存储图像处理过程中的数据,从而节省了图像处理的耗时和系统功耗,提高了图像处理的效率。
在本申请第一方面的一种实施方式中,所述方法还包括,在图像处理设备的神经网络处理器从系统缓存读取目标图像中的第一分片之前,所述第一处理器生成所述目标图像。
在本申请第一方面的一种实施方式中,所述方法还包括,在所述神经网络处理器将所述第一输出分片写入所述系统缓存中之后,所述第一处理器从所述系统缓存读取所述第一输出分片并基于所述第一输出分片获得输出图像。
在本申请第一方面的一种实施方式中,所述第一处理器包括图像信号处理器。本申请通过使得图像信号处理器和神经网络处理器执行所述图像处理方法,使得提高了图像处理的效率,改善了图像或视频的质量。可选地,所述图像处理设备是芯片或芯片组。可选地,所述图像处理设备包括所述系统缓存。
在本申请第一方面的一种实施方式中,所述系统缓存包括输入区和输出区,其中,所述第一处理器将目标图像中的第一分片写入系统缓存中包括,所述第一处理器将目标图像中的第一分片写入所述输入区中;所述神经网络处理器将所述第一输出分片写入所述系统缓存中包括,所述神经网络处理器将所述第一输出分片写入所述输出区中。本申请通过在系统缓存中设置输入区和输出区,使得可以同时进行对输入分片和输出分片的处理,进一步提高了图像处理的效率。
在本申请第一方面的一种实施方式中,所述输入区中包括第一缓存区和第二缓存区,所述第一处理器将目标图像中的第一分片写入系统缓存中的输入区中包括,所述第一处理器将所述第一分片写入所述第一缓存区中,所述方法还包括,在所述神经网络处理器从所述输入区读取所述第一分片的同时,所述第一处理器将第二分片写入所述第二缓存区中,其中,所述第二分片不同于所述第一分片。本申请通过在输入区中设置第一缓存区和第二缓存区,使得可以同时进行第一处理器对一个分片的写入和神经网络处理器对另一个分片的读取,进一步提高了图像处理的效率。
在本申请第一方面的一种实施方式中,所述输出区中包括第三缓存区和第四缓存区,所述神经网络处理器将所述第一输出分片写入系统缓存的输出区中包括,所述神经网络处理器将所述第一输出分片写入所述第三缓存区中,所述方法还包括,在所述神经网络处理器将所述第一输出分片写入所述第三缓存区中的同时,所述第一处理器从所述第四缓存区中读取与第三分片对应的第三输出分片,其中,所述第三分片不同于所述第一分片。所述第三分片例如为目标图像中的与所述第一分片相邻并在所述第一分片之前处理的分片。本申请通过在输出区中设置第三缓存区和第四缓存区,使得可以同时进行神经网络处理器对输出分片的写入和第一处理器对输出分片的读取,进一步提高了图像处理的效率。
在本申请第一方面的一种实施方式中,神经网络处理器对所述第一分片进行处理包括,神经网络处理器对所述第一分片进行预处理以获取第一中间图像数据,所述神经网络处理器读取预存的第二中间图像数据,所述第二中间图像数据通过对所述目标图像中的第三分片的部分进行所述预处理而获取,所述神经网络处理器对所述第二中间图像数据与所述第一中间图像数据的拼接数据进行卷积计算。本申请在分片处理过程中通过使得神经网络处理器预存上一个分片的部分的中间处理数据,节省了计算消耗,进一步提高了图像处理效率。
在本申请第一方面的一种实施方式中,所述方法还包括,所述神经网络处理器从所述第二缓存区读取所述目标图像中的第三分片的部分,所述神经网络处理器对所述第一分片进行处理包括,所述神经网络处理器对所述第三分片的部分与所述第一分片的拼接数据进行包括卷积计算的处理以获取中间图像数据,所述神经网络处理器对所述中间图像数据进行裁剪。本申请在分片处理过程中通过有损重叠行计算,节省了计算消耗,在保证图像质量的同时进一步提高了图像处理效率。
在本申请第一方面的一种实施方式中,所述方法还包括,在所述第一处理器将目标图像中的第一分片写入系统缓存中之后,所述第一处理器通知所述神经网络处理器从系统缓存读取分片;在所述神经网络处理器将所述第一输出分片写入所述系统缓存中之后,所述神经网络处理器通知所述第一处理器从所述系统缓存读取输出分片。本申请通过使得第一处理器与神经网络处理器协同执行图像处理方法,进一步提高了图像处理效率。
本申请第二方面提供一种图像处理设备,包括第一处理器和神经网络处理器,所述第一处理器用于将目标图像中的第一分片写入系统缓存中;所述神经网络处理器用于从所述系统缓存读取目标图像中的第一分片,对所述第一分片进行处理,以获取第一输出分片,及将所述第一输出分片写入所述系统缓存中。
在本申请第二方面的一种实施方式中,所述第一处理器还用于在将目标图像中的第一分片写入系统缓存中之前生成所述目标图像。
在本申请第二方面的一种实施方式中,所述第一处理器还用于从所述系统缓存读取所述第一输出分片,并基于所述第一输出分片获得输出图像。
在本申请第二方面的一种实施方式中,所述第一处理器包括图像信号处理器。
在本申请第二方面的一种实施方式中,所述图像处理设备还包括系统缓存。
在本申请第二方面的一种实施方式中,所述系统缓存还包括输入区和输出区,所述第一处理器还用于将所述第一分片写入所述输入区中;所述神经网络处理器还用于将所述第一输出分片写入所述输出区中。
在本申请第二方面的一种实施方式中,所述输入区中包括第一缓存区和第二缓存区;所述第一处理器还用于:将所述第一分片写入所述第一缓存区中,在所述神经网络处理器从所述输入区读取所述第一分片的同时,将所述目标图像中第二分片写入所述第二缓存区中,其中,所述第二分片不同于所述第一分片。
在本申请第二方面的一种实施方式中,所述输出区中包括第三缓存区和第四缓存区;所述神经网络处理器还用于将所述第一输出分片写入所述第三缓存区中;所述第一处理器还用于:在所述神经网络处理器将所述第一输出分片写入所述第三缓存区中的同时,从所述第四缓存区中读取与所述目标图像中第三分片对应的第三输出分片,其中,所述第三分片不同于所述第一分片。
在本申请第二方面的一种实施方式中,所述神经网络处理器还用于:对所述第一分片进行预处理以获取第一中间图像数据,读取预存的第二中间图像数据,所述第二中间图像数据通过对所述目标图像中的第三分片的一部分进行所述预处理而获取,对所述第二中间图像数据与所述第一中间图像数据的拼接数据进行卷积计算。
在本申请第二方面的一种实施方式中,所述神经网络处理器还用于:从所述第二缓存区读取所述目标图像中的第三分片的一部分,对所述第三分片的一部分与所述第一分片的拼接数据进行包括卷积计算的处理以获取中间图像数据,对所述中间图像数据进行裁剪。
本申请第三方面提供一种图像处理设备,包括部署于图像处理设备的第一处理器中的第一写入单元,用于将目标图像中的第一分片写入系统缓存中;及部署于图像处理设备的神经网络处理器中的以下单元:第一读取单元,用于从系统缓存读取目标图像中的第一分片;处理单元,用于对所述第一分片进行处理,以获取第一输出分片;第二写入单元,用于将所述第一输出分片写入所述系统缓存中。
在本申请第三方面的一种实施方式中,所述第一写入单元还用于在将目标图像中的第一分片写入系统缓存中之前生成所述目标图像。
在本申请第三方面的一种实施方式中,所述图像处理设备还包括,部署于所述图像处理设备的第一处理器中的第二读取单元,用于在所述神经网络处理器将所述第一输出分片写入所述系统缓存中之后,从所述系统缓存读取所述第一输出分片并基于所述第一输出分片获得输出图像。
在本申请第三方面的一种实施方式中,所述第一处理器包括图像信号处理器。
在本申请第三方面的一种实施方式中,所述系统缓存包括输入区和输出区,其中,所述第一写入单元还用于,将目标图像中的第一分片写入所述输入区中;所述第二写入单元还用于,将所述第一输出分片写入所述输出区中。
在本申请第三方面的一种实施方式中,所述输入区中包括第一缓存区和第二缓存区,所述第一写入单元还用于,将所述第一分片写入所述第一缓存区中,所述图像处理设备还包括,部署于所述第一处理器的第三写入单元,用于在所述神经网络处理器从所述输入区读取所述第一分片的同时,将所述目标图像中的第二分片写入所述第二缓存区中,其中,所述第二分片不同于所述第一分片。
在本申请第三方面的一种实施方式中,所述输出区中包括第三缓存区和第四缓存区,所述第二写入单元还用于,将所述第一输出分片写入所述第三缓存区中,所述图像处理设备还包括,部署于所述第一处理器中的第三读取单元,用于在所述神经网络处理器将所述第一输出分片写入所述第三缓存区中的同时,从所述第四缓存区中读取与所述目标图像中的第三分片对应的第三输出分片,其中,所述第三分片不同于所述第一分片。
在本申请第三方面的一种实施方式中,所述处理单元包括,计算子单元,用于对所述第一分片进行预处理以获取第一中间图像数据,读取子单元,用于读取预存的第二中间图像数据,所述第二中间图像数据通过对所述第三分片的部分进行所述预处理而获取,卷积计算子单元,用于对所述第二中间图像数据与所述第一中间图像数据的拼接数据进行卷积计算。
在本申请第三方面的一种实施方式中,所述图像处理设备还包括,部署于所述神经网络处理器中的第四读取单元,用于在所述神经网络处理器从所述第一缓存区读取所述第一分片之前,从所述第二缓存区读取所述第三分片的部分,所述处理单元包括,处理子单元,用于对所述第三分片的部分与所述第一分片的拼接数据进行处理以获取中间图像数据,裁剪子单元,用于对所述中间图像数据进行裁剪。
在本申请第三方面的一种实施方式中,所述图像处理设备还包括,部署于所述第一处理器的第一通知单元,用于在所述第一处理器将目标图像中的第一分片写入系统缓存中之后,通知所述神经网络处理器从系统缓存读取分片;部署于所述神经网络处理器的第二通知单元,用于在所述神经网络处理器将所述第一输出分片写入所述系统缓存中之后,通知所述第一处理器从所述系统缓存读取输出分片。
本申请第四方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在图像处理设备中执行时,令所述图像处理设备执行如本申请第一方面所述的方法。
本申请第五方面提供一种图像处理设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现如本申请第一方面所述的方法。
本申请第六方面提供一种计算机程序产品,当所述计算机程序产品在图像处理设备中运行时,使得所述图像处理设备执行如本申请第一方面所述的方法。
在本申请实施例中,通过对图像数据分成多个分片分别处理,从而使得可以使用系统缓存存储人工智能(Artificial Intelligence,AI)处理过程中的中间数据,大大节省了AI处理的耗时,节省了系统功耗,在视频场景中可保证视频实时性,提升了图像质量。在对图像数据进行切分之后,本申请实施例还提供了重叠数据预存方法和有损重叠处理方法来对图像分片进行重叠处理,从而减少因对图像数据的切分导致的NPU的额外的计算消耗,保障了NPU的性能。另外,通过使得ISP与NPU协同工作,进一步提高了AI处理的效率,节省了系统功耗。
附图说明
图1为移动终端的结构示意图;
图2为CNN的结构示意图;
图3为使用卷积核对图像数据进行卷积的过程示意图;
图4为对图像进行AI处理的过程示意图;
图5为本申请实施例中对图像进行AI处理的过程示意图;
图6为本申请实施例提供的一种图像处理方法的流程图;
图7为对图像51进行切分的示意图;
图8为本申请实施例提供的SC的结构示意图;
图9为NPU对分片511进行处理的过程示意图;
图10为ISP和NPU顺序处理分片511、512和513的过程示意图;
图11为本申请实施例提供的一种对分片进行处理的方法流程图;
图12为NPU对分片512进行处理的过程示意图;
图13为NPU对分片513进行处理的过程示意图;
图14为本申请实施例提供的另一种对图像分片进行处理的方法流程图;
图15为NPU对分片512进行处理的过程示意图;
图16为本申请实施例提供的一种对分片进行有损处理的方法示意图;
图17为本申请实施例提供的一种图像处理设备的示意图。
具体实施方式
本申请实施例提供的图像信号处理方法及装置,可应用于电子设备,该电子设备可以是移动终端(mobile terminal)、移动台(mobile station,MS)、用户设备(userequipment,UE)等移动设备,也可以是固定设备,如固定电话、台式电脑等,还可以是视频监控设备等。该电子设备具有图像信号采集与处理功能的图像采集与处理设备,该电子设备还可以选择性地具有无线连接功能,以向用户提供语音和/或数据连通性的手持式设备、或连接到无线调制解调器的其他处理设备,比如:该电子设备可以是移动电话(或称为“蜂窝”电话)、具有移动终端的计算机等,还可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,当然也可以是可穿戴设备(如智能手表、智能手环等)、平板电脑、个人电脑(personal computer,PC)、个人数字助理(personal digital assistant,PDA)、销售终端(Point of Sales,POS)等。本申请实施例中以下以电子设备为移动终端为例进行说明。
图1为移动终端100的结构示意图。移动终端100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(Universal Serial Bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块151,无线通信模块152,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及SIM卡接口195等。其中传感器模块180可以包括陀螺仪传感器180A,加速度传感器180B,接近光传感器180G、指纹传感器180H,触摸传感器180K。当然,移动终端100还可以包括其它传感器,比如温度传感器,压力传感器、距离传感器、磁传感器、环境光传感器、气压传感器、骨传导传感器等,图1中未示出。
可以理解的是,本发明实施例示意的结构并不构成对移动终端100的具体限定。在本申请另一些实施例中,移动终端100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),中央处理器(Centralprocessing unit,CPU),视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(Neural-network Processing Unit,NPU)等中的至少一个。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。例如,处理器110可以是一个芯片或芯片组。例如,所述应用处理器可以是所述CPU。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为系统缓存(System cache,SC),该系统缓存是处理器110内部缓存,如片上缓存,该系统缓存具有高带宽低延时的特点。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复到处理器110外部的存储器存取,减少了处理器110的等待时间,因而提高了系统的效率。图1中在处理器110中示意示出CPU、ISP、NPU和SC,其可通过总线连接。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,移动终端100可以包括1个或N个显示屏194,N为大于1的正整数。显示屏194可用于显示由用户输入的信息或提供给用户的信息以及各种图形用户界面(graphical user interface,GUI)。例如,显示器194可以显示照片、视频、网页、或者文件等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展移动终端100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将照片,视频等文件保存在外部存储卡中。
内部存储器121,也叫主存储器,可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行移动终端100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,应用程序(比如相机应用,微信应用等)的代码等。存储数据区可存储移动终端100使用过程中所创建的数据(比如相机应用采集的图像、视频等)等。
此外,内部存储器121可以包括随机存取存储器(Random Access Memory,RAM),例如双倍速率同步动态随机存储器(Double Data RateSynchronous Dynamic RandomAccess Memory,DDR Memory),还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
下面介绍传感器模块180的功能。
陀螺仪传感器180A,可以用于确定移动终端100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180A确定移动终端100围绕三个轴(即,x,y和z轴)的角速度。即陀螺仪传感器180A可以用于检测移动终端100当前的运动状态,比如抖动还是静止。
加速度传感器180B可检测移动终端100在各个方向上(一般为三轴)加速度的大小。即陀螺仪传感器180A可以用于检测移动终端100当前的运动状态,比如抖动还是静止。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。移动终端通过发光二极管向外发射红外光。移动终端使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定移动终端附近有物体。当检测到不充分的反射光时,移动终端可以确定移动终端附近没有物体。
陀螺仪传感器180A(或加速度传感器180B)可以将检测到的运动状态信息(比如角速度)发送给处理器110。处理器110基于运动状态信息确定当前是手持状态还是脚架状态(比如,角速度不为0时,说明移动终端100处于手持状态)。
指纹传感器180H用于采集指纹。移动终端100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。
示例性的,移动终端100的显示屏194显示主界面,主界面中包括多个应用(比如相机应用、微信应用等)的图标。用户通过触摸传感器180K点击主界面中相机应用的图标,触发处理器110启动相机应用,打开摄像头193。显示屏194显示相机应用的界面,例如取景界面。
移动终端100的无线通信功能可以通过天线1,天线2,移动通信模块151,无线通信模块152,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。移动终端100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块151可以提供应用在移动终端100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块151可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块151可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块151还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块151的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块151的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。在本申请实施例中,移动通信模块151还可以用于与其它终端设备进行信息交互,即向其它终端设备发送音频输出请求,或者移动通信模块151可用于接收音频输出请求,并将接收的音频输出请求封装成指定格式的消息。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块151或其他功能模块设置在同一个器件中。
无线通信模块152可以提供应用在移动终端100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块152可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块152经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块152还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
另外,移动终端100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。移动终端100可以接收按键190输入,产生与移动终端100的用户设置以及功能控制有关的键信号输入。移动终端100可以利用马达191产生振动提示(比如来电振动提示)。移动终端100中的指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。移动终端100中的SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和移动终端100的接触和分离。
移动终端100通过GPU,显示屏194,以及处理器110等实现显示功能。GPU为图像处理的微处理器,其连接显示屏394和应用处理器,用于执行数学和几何计算,以用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。可选地,GPU可位于处理器110中或者是一个独立在处理器110之外的器件。
移动终端100可以通过ISP,NPU,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。摄像头193可以包括镜头组和感光元件。例如,移动终端100在拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,感光元件将光信号转换为电信号,并将所述电信号传递给ISP处理。ISP处理从摄像头193接收的数据,其中包括通过借助于NPU对所述数据进行处理,从而将所述数据转化为数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB、YUV等格式的图像信号,该图像信号通过GPU、应用处理器的处理可在显示屏194上进行显示。在一些实施例中,移动终端100可以包括1个或N个摄像头393,N为大于1的正整数。视频编解码器用于对数字视频压缩或解压缩。移动终端100可以支持一种或多种视频编解码器。这样,移动终端100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
具体的,ISP对图像信号进行的处理可以包括如下几方面:
1、校正及补偿:缺陷像素校正(defective pixel correction,DPC),黑电平补偿(black level compensation,BLC),镜头畸变校正(Lens distortion correction,LSC),针对扭曲、拉伸、偏移等进行的几何校正,伽马校正、与透视原理相关的校正等;
2、去噪及图像增强:时域、空域滤波、分级补偿滤波,各种噪声去除,锐化,抑制振铃效应和带状伪影,边缘增强,亮度增强,对比度增强;
3、颜色及格式转换:颜色插值Demosaic(raw->RGB),颜色空间转换RGB->YUV或YCbCr或YPbPr,色调映射,色度调整,颜色校正、饱和度调整、缩放,旋转等;
4、自适应处理:自动白平衡,自动曝光,自动聚焦,频闪检测等;
5、视觉识别(人脸、姿势识别)及极端环境下的图像处理,其中,极端环境包括震动、快速移动、较暗、过亮等,涉及的处理一般包括去模糊、点扩散函数估计,亮度补偿,运动检测,动态捕捉,图像稳定,高动态范围图像(High-Dynamic Range,HDR)处理等。
可以理解的是,本申请实施例中涉及的ISP可以包括一个或一组芯片,即可以是集成的,也可以是独立的。例如,图1中的ISP位于处理器110中。又例如,移动终端100中包括的ISP可以是集成在其他运算处理器中的集成ISP芯片。
所述NPU适于基于神经网络(neural network,NN)对拍摄的图像进行AI处理。在本实施例中,所述NPU例如可对图像信号进行颜色插补(Demosasic)、或高清渲染(HighDefinition Render,HDR)等图像处理,从而可大幅度提供图像质量。所述NPU可以独立于图1中示出的处理器110而设置,也可以是集成在图1中所示的处理器110中。所述NPU也可以是一种区别于图1中所示的CPU或应用处理器的特殊运算处理器。例如,该NPU可以是运行操作系统的CPU,也可以是其他类型的计算设备,如专用硬件加速处理器。本申请实施例中以NPU独立于CPU或应用处理器为例进行说明。
其中,所述神经网络是一种模仿动物神经网络行为特征进行信息处理的网络结构,也简称为人工神经网络(artificial neural networks,ANN)。所述神经网络可以包括卷积神经网络(Convolutional neural network,CNN)、深度神经网络(Deep NeuralNetworks,DNN)、循环神经网络(recurrent neural network,RNN)等多种神经网络中的至少一种。神经网络结构由大量的节点(或称神经元)相互联接构成,基于特定运算模型通过对输入信息进行学习和训练达到处理信息的目的。一个神经网络包括输入层、隐藏层及输出层,输入层负责接收输入信号,输出层负责输出神经网络的计算结果,隐藏层负责学习、训练等计算过程,是网络的记忆单元,隐藏层的记忆功能由权重矩阵来表征,通常每个神经元对应一个权重系数。
其中,由于CNN更适用于处理图像信号,本申请实施例中将以CNN为例描述NPU对图像的处理。图2为CNN的结构示意图。如图2所示,CNN中包括输入层21、至少一个卷积层22和输出层23。输入层21用于对原始图像数据进行预处理,所述预处理例如包括去均值处理、或归一化处理等处理。每个卷积层22中包括至少一个卷积核(kernel),其又称为特征提取滤波器(filter),该卷积核相当于是神经网络中的神经元,其与图像的特定特征相对应(如边缘特征、或浮雕特征等),在使用该卷积核对图像进行卷积计算之后可输出图像的特定特征的特征图像。
图3为使用卷积核对图像数据进行卷积的过程示意图。如图3中所示,所述输入图像31为左侧矩形框中的白色框示出的矩阵数据,即为输入图2中从输入层21输入卷积层22的图像数据,其中,该矩阵数据中的每个元素表示对应图像的一个像素。所述卷积核33是卷积层22中的任一卷积核,所述特征图像34为从卷积层22输出的图像数据。所述卷积核33为行与列相等的二维矩阵(图中示出为3×3矩阵),在进行卷积的过程中,该卷积核33在图像的二维数据(即像素值)上进行滑动并对图像中的与其重叠的局部数据进行内积计算,其中,所述卷积核一次滑动的长度称为步长(stride),例如,所述卷积核一次滑动一个像素,则步长为1。
在一些情况中,例如为了使得卷积层输出的特征图像的大小与输入图像的大小相同,需要对卷积层的输入图像进行填充之后再进行卷积计算,通常对输入图像的四边进行填充(padding)。需要填充的总行数和总列数都为卷积核的边长减去1,例如,在图3中,卷积核的边长为3(即像素个数),也就是说需要共填充3-1=2行和2列,即在图像的四边各填充1行,该填充的行或列中的元素的值例如为0。例如,如图3所示,为了使得在使用图中的卷积核对6行×8列的输入图像31进行卷积之后仍输出6行×8列的特征图像34,首先根据卷积核33的大小对输入图像31的四边各填充一行填充像素32(如图3中灰色方格所示),并使用卷积核对填充后的数据进行卷积计算。具体是,如图3中所示,卷积核33首先与图3中左侧的填充后的图像的左上角的9个像素进行内积,从而获取特征图像34的左上角的像素的值,在完成该计算之后,卷积核33在填充后图像中向右水平移动一个像素,以计算特征图像34中第1行的第2个像素的值。所述卷积核33在所述填充后图像中依次滑动直至计算出特征图像34中的每个像素的值。下文中将以对卷积层的输入图像进行填充为例进行描述。可以理解,本申请实施例的技术方案在对图像进行处理的过程中,不限于在对图像进行填充之后进行卷积计算,例如,在不要求输出图像与输入图像的大小相等的情况中,则不需要对图像进行填充。
CNN中在相邻的卷积层之间通常还包括激活层和池化层(图2中未示出),所述激活层例如使用修正线性单元(Rectified linear unit,ReLU)对卷积层的输出结果进行非线性映射,所述池化层用于压缩数据和参数的量。所述输出层23例如为全连接层,以将基于最近的卷积层中包括的至少一个卷积核生成的特征图像进行加权融合并输出。
图4为相关技术中对图像进行AI处理的过程示意图。如图4所示,ISP在从感光元件接收到由摄像头拍摄的照片的图像数据40之后,对图像数据40进行处理之后获取图像数据41。之后,ISP将图像数据41存储到主存储器中,后续以DDR存储器为例介绍。NPU读取DDR存储器从而读取图像数据41,然后,NPU基于神经网络(例如CNN)模型对图像数据41进行AI处理,生成图像数据42,并将图像数据42存储到DDR存储器中。从而,ISP或者DSP通过读取DDR存储器而从DDR存储器中读取所述图像数据42。在该相关技术中,为了通过NPU对图像数据进行AI处理,ISP和NPU都需要频繁访问(读取或写入)DDR存储器,使得AI处理的耗时较长,系统功耗较大,因此,下面的实施例提出了一种改进的技术方案,以减少耗时和功耗。
图5为本申请实施例中对图像进行AI处理的过程示意图。在本申请实施例中,由于SC通常位于芯片内,其用于存储的空间通常较小无法存储照片或视频的一帧图像的全部图像数据,为了在对图像数据进行AI处理过程中使用SC进行ISP与NPU之间的数据交互,将图像数据分割为较小的分片数据,以分别进行AI处理,从而避免频繁访问主存储器,如DDR存储器。具体是,如图5所示,图像数据50例如为由摄像头拍摄的照片的图像数据,或者可为由摄像头拍摄的视频中的一帧图像的图像数据。ISP在从感光元件接收到图像数据50之后,对图像数据50进行处理获取图像数据51。之后,ISP基于预定的分片规则,顺序从图像数据51读取预定数目的行并存入SC中,从而顺序向SC存入图像数据51的例如三个分片511、512和513。ISP在向SC中存入分片511之后,可通知NPU进行对分片数据的读取,从而NPU可从SC读取分片511,并对分片511进行AI处理,从而生成与分片511对应的输出分片521,并将输出分片521存入SC中。NPU在将输出分片521存入SC中之后可通知ISP读取经AI处理后的分片,从而ISP可从SC中读取输出分片521。通过同样地方法顺序对分片512和513进行处理,ISP最终可获取输出分片521、522和523。之后,ISP通过对输出分片521、522和523进行拼接从而可获取与图像数据51对应的完整的经AI处理的图像数据52。以上实施例的一个分片对应图像数据中的一个或多个行,实际上也可以对应图像数据中的一个或多个列或任一个部分,本实施例仅以图像数据的一个或多个行做例子来介绍,但不用于限定。
在本申请实施例中,通过对图像数据分成多个分片分别处理,从而使得可以使用SC存储AI处理过程中的数据,大大节省了AI处理的耗时,节省了系统功耗,在视频场景中可保证视频实时性,提升了图像质量。在对图像数据进行切分之后,为了保证输出的正确性,NPU通常需要考虑分片之间的重叠(Overlap)处理,本申请实施例还提供了重叠数据预存方法和有损重叠处理方法来进行重叠处理,从而减少因对图像数据的切分导致的NPU的额外的计算消耗,保障NPU的性能。另外,通过使得ISP与NPU协同工作,进一步提高了AI处理的效率,节省了系统功耗。下文将详细描述本申请实施例提供的图像处理方法。
图6为本申请实施例提供的一种图像处理方法的流程图。图6中示出由ISP和NPU共同执行图6所示方法。可以理解,本申请实施例提供的方法不限于由ISP和NPU执行,例如,图6所示方法可由图像处理设备中的NPU和其它处理器共同执行,该其它处理器例如也可以为CPU或者DSP等处理器。图6仅以ISP和NPU协作处理为例作介绍。
首先,在步骤S602,ISP将从图像切分的分片写入SC。参考图5,所述图像例如为图5中的图像数据51,ISP可从图像数据51的第一行像素开始顺序读取图像数据51的每行像素,并在读取该行像素之后,将该行像素写入到SC中,ISP在读取并向SC写入了预定数目行的像素之后,停止继续从图像数据51读取像素。即,所述预定数目行的像素构成了从图像数据51首次切分的分片511。所述预定数目可以为根据系统设计而定的预设数目,也可以为ISP和NPU相对于当前图像或视频进行协商而确定的结果。通常,所述预定数目基于SC的可用空间和NPU的网络处理结构需求确定,例如,可将所述预定数目设置为大于等于CNN的卷积核的大小,并且该预定数目被设置为使得分片的大小小于SC的可用空间。图7为对图像51进行切分的示意图。如图7中所示,假设图像51包括17行×20列像素,ISP可首先读取图7中的前6行像素写入SC中作为分片511,在后续的处理中,ISP可顺序读取图7中的中间6行像素写入SC中作为分片512、读取末尾5行像素写入SC中作为分片513。
在一种实施方式中,所述SC中包括输入区和输出区,所述输入区用于存储待由NPU处理的分片,所述输出区用于存储经NPU处理之后的输出分片。从而,ISP将所述分片写入SC的输入区。通过在SC中设置输入区和输出区,ISP在写入一个分片之后,在NPU基于该分片生成输出分片之后,ISP即可以在输入区中写入下一个分片,而不需要等待NPU将输出分片写入SC并且ISP从SC读取了该输出分片之后再写入下一个分片,进一步节省了AI处理时间。
在一种实施方式中,在如图8所示的本申请实施例提供的SC的结构示意图中,所述SC中包括输入区81和输出区82,输入区81中包括缓存区(Buffer)1和缓存区2,输出区82中包括缓存区3和缓存区4。通过这样设置SC,可通过PingPone缓存的方式实现对SC的使用。具体是,例如,ISP将从图像51切分的分片511写入图8中的缓存区1中,在进行该写入之后,ISP可连续地将从图像51切分的第二个分片(即分片512)写入缓存区2中,而不需要在NPU对分片511的处理结束之后再进行对分片512的写入,在ISP对缓存区2进行写入512的同时,NPU可同时并行地从缓存区1读取分片511进行处理。类似地,在NPU对缓存区4写入输出分片(例如图5中的输出分片522)的同时,ISP可同时并行地从缓存区3读取由NPU在写入输出分片522之前在缓存区3写入的输出分片521。从而,图8所示的SC的结构进一步节省了AI的处理耗时。
在步骤S604,ISP通知NPU从SC读取分片。如图6所示,该步骤以虚线箭头示意示出,用于指示该步骤为可选的步骤。除了由ISP通知NPU的方式之外,任何其它使得NPU获知ISP写入完成的实施方式都在本申请实施例的保护范围之内。例如,ISP在对SC进行写入时可对写入的缓存区进行锁定,NPU可通过轮询该缓存区是否解锁而确定ISP是否写入完成。
通过ISP在将分片写入SC之后通知NPU,使得可提高系统处理效率,节省系统功耗。ISP例如可通过核间业务通信方式来通知NPU从SC读取分片,当ISP例如将分片511写入如图8所示的缓存区1时,ISP可通知NPU从缓存区1中读取分片。或者ISP可通过修改SC中存储的变量值来指示其已将分片写入SC,NPU在确定该变量值被修改之后可确定ISP已写入分片,从而执行后续的步骤S606。
在步骤S606,NPU从SC读取分片。例如,如图5和图8所示,ISP将分片511写入缓存区1中,从而,NPU可从缓存区1中读取分片511。在一种实施方式中,NPU可基于ISP的通知从缓存区1中读取分片511。
在步骤S608,NPU对分片进行处理,获取输出分片。NPU对图像的分片进行的处理与NPU对整个图像的处理基本相同。图9为NPU对分片511进行处理的过程示意图。假设NPU基于图2所示的CNN模型对分片进行处理,假设CNN模型中仅包括一层卷积层。如图9所示,NPU在从SC中读取分片511之后,首先执行操作①,使用图2中的输入层21对分片511进行预处理,然后执行操作②,对经预处理的分片511的上部和两侧增加填充像素(图9中以灰色小框示出),以使得最终的处理结果与处理整个图像51的结果一致。之后,NPU执行操作③,使用3×3的卷积核对上述填充后的数据进行卷积计算。在进行卷积计算之后,NPU将卷积层的计算结果输入图2中的输出层23,从而可输出5×20的输出分片521。
在进行上述操作①~操作③的过程中,NPU可以根据卷积核在分片511中滑动的顺序从缓存区1中读取分片511的部分数据,对该部分数据执行操作①~操作③,通过顺序对分片511中的每部分数据执行操作①~操作③,从而最终获取输出分片521。即,NPU在读取分片的同时进行对分片的处理。可选地,NPU在对分片511处理完成之后,可通知ISP,ISP基于该通知获知缓存区1当前可写入,从而,ISP完成在缓存区2中对分片512的写入之后,即可在缓存区1中继续写入分片513。
在NPU处理从图像切分的第二个分片开始的每个分片时,为了保证最终的处理结果与处理整个图像51的结果一致或基本一致,除了对本分片进行卷积计算之外,还需要对上一个分片的底部的若干行的像素对应的数据一起进行卷积计算,即进行分片之间的重叠处理。下文中将参考图11~16图详细描述包括重叠处理的NPU对分片的处理过程。
在步骤S610,NPU将输出分片写入SC。参考图5,NPU在生成输出分片521之后,可将该输出分片521写入SC中。在图6所示的SC的情况下,NPU可将输出分片写入例如缓存区3中。
在步骤S612,NPU通知ISP从SC读取输出分片。与步骤S604类似地,该步骤为可选步骤,通过NPU在将输出分片写入SC之后通知ISP,使得可提高系统处理效率,节省系统功耗。
在步骤S614,ISP从SC读取输出分片。参考图5,在NPU将输出分片521写入SC之后,ISP可从SC读取输出分片521。由于ISP和NPU顺序对分片512和513进行处理,因此,ISP可顺序从SC中读取输出分片522和523。之后,ISP通过拼接输出分片521、522和523可获取经处理的输出图像52,并可将该输出图像52例如发送给DSP以用于进行后续的处理。或者,ISP可自己做所述后续处理,本实施例对此不限定。
图10为ISP和NPU顺序处理分片511、512和513的过程示意图。在图10中,每个横行与一个缓存区相对应,在该横行内的操作表示对该横行对应的缓存区进行操作,所述操作包括写操作和读操作,每个竖列与一个时段相对应,在该竖列内的操作表示在该时段内发生的操作,图10中虽然以正方形示出各个操作,但是并不表示各个时段是严格相等的,各个时段的长短基于ISP和NPU的协商确定。图10中的白色框用于指示ISP的写操作,灰度框用于指示NPU的读操作,浅色阴影框用于指示NPU的写操作,深色阴影框用于指示ISP的读操作。各个方框中的数字用于指示图5中的各个分片。
如图10所示,首先在t1时段,ISP从图像51读取预定数目的行并分别在读取后写入缓存区1中,从而在缓存区1中写入分片511。ISP在完成该写入之后,通知NPU从缓存区1中读取分片,从而t1时段结束,进入t2时段。
在t2时段,NPU基于ISP的通知从缓存区1顺序读取部分数据(例如与卷积核大小对应的数据),并在读取每部分数据之后,对该部分数据进行处理以获取该部分数据的输出数据,并将该输出数据顺序写入缓存区3中,直至读取了分片511的全部数据,并在缓存区3中写入全部输出数据,即,在缓存区3中写入输出分片521。NPU在写入输出分片521之后,可通知ISP读取缓存区3。在NPU进行上述操作的同时,ISP从图像51中继续读取预定数目的行,并在读取每行之后将该行数据写入缓存区2中,从而在缓存区2中写入分片512。ISP在写入分片512之后可通知NPU读取缓存区2。在NPU通知ISP读取缓存区3、且ISP通知NPU读取缓存区2之后,进入t3时段。
在t3时段,为了进行重叠处理,NPU首先从缓存区1读取分片511末尾的若干行数据作为重叠数据进行重叠处理,并将处理后的数据写入缓存区4中,在处理完所述若干行像素之后,再从缓存区2读取分片512继续进行处理,并最终在缓存区4中写入输出分片522。可以理解,这里为了进行重叠处理不一定需要从缓存区1中读取分片511的部分数据,也可以例如读取NPU在处理分片511之后另外预存的部分中间图像数据,这将在下文参考图14和图15详细描述。NPU在写入输出分片522之后通知ISP读取缓存区4。在NPU写入输出分片522的过程中,NPU在处理完分片511中的若干行数据之后通知ISP写入缓存区1,从而ISP从图像51中继续读取预定数目的行并分别写入缓存区1中,以写入分片513,之后,ISP从缓存区4读取输出分片521。ISP在读取输出分片521之后,通知NPU写入缓存区3,从而进入t4时段。
在t4时段,类似地,NPU首先读取缓存区2中的分片512的部分数据,以进行重叠处理,之后再读取缓存区1,并将最终生成的输出分片523写入缓存区3中。同时,ISP从缓存区4读取输出分片522。NPU在写入分片523之后通知ISP读取缓存区3,从而进入t5时段。在t5时段,ISP从缓存区3读取输出分片523。ISP在分别读取了输出分片521、522和523,可基于该三个输出分片合成输出图像52。
下面将通过多种实施方式描述本申请实施例提供的对图像分片的重叠处理方法。图11为本申请实施例提供的一种对分片进行处理的方法流程图,该方法由NPU执行。图12为NPU对分片512进行处理的过程示意图,图13为NPU对分片513进行处理的过程示意图,下文将结合图11~图13进行描述。
如图11所示,首先在步骤S111,获取上一个分片对应的重叠行图像数据和当前分片对应的图像数据。所述图像数据为包括像素值的矩阵数据。
假设NPU基于图2所示的CNN模型对分片进行处理,并且假设该CNN模型包括一个卷积层。如图12左侧部分所示,NPU在如图9所示处理完分片511之后,为了保证最终的输出图像与处理整个图像51的输出图像一致,需要首先读取分片511的底部的两行数据(图12中以阴影小框示出)作为用于进行重叠处理的重叠行,然后再读取分片512中的数据。其中,所述重叠行的行数H等于卷积核的边长与步长之差,例如,在该实例中,卷积核的边长为3,步长为1,则重叠的行数H=3-1=2。
在CNN模型中包括不止一个卷积层的情况中,例如,CNN模型中依次包括输入层、第一卷积层、激活层、第二卷积层和输出层,NPU在如图9所示处理分片511的过程中可在SC或DDR存储器中预存第一卷积层输出的中间图像数据中的重叠行数据,在第一层卷积层对分片512的处理完成并输出中间图像数据之后,NPU可读取所述预存的重叠行数据,并将所述重叠行数据和分片512对应的中间图像数据作为输入激活层的数据。
在步骤S112,对获取的图像数据进行预处理。仍然参考图12左侧部分所示,NPU在读取分片511的重叠行和分片512之后,将其输入图2中的输入层21,以使得通过输入层21对所述读取的数据进行预处理。在上述第一卷积层处理结束之后执行图11所示方法的情况中,由所述激活层对输入的数据进行预处理。
可以理解,根据CNN网络结构的设置,有可能在CNN模型中不设置用于对图像数据进行预处理的层,因此,该步骤如图11中的虚线所示,为可选的步骤,即在通过CNN模型处理图像数据的过程中,不一定包括对图像数据的预处理过程。
在步骤S113,对经预处理的图像数据增加填充像素。同样为了使得最终的处理结果与处理整个图像51的结果相同,如图12中的中间部分所示,NPU对经预处理的数据的两侧增加填充像素。如上文所示,根据对输出图像的要求不同,不一定需要对图像数据增加填充像素,因此,该步骤为可选的步骤。
在步骤S114,对图像数据进行卷积计算。NPU在进行上述填充之后,将经填充的数据输入卷积层,从而使得卷积层中以3×3的卷积核对所述经填充的数据进行卷积计算。如图12中右侧部分所示,在进行卷积计算之后,NPU将卷积层的计算结果输入图2中的输出层23,并从输出层23输出6×20的输出分片522。
在上述由第二卷积层对分片522的中间图像数据进行卷积计算的情况中,NPU将填充后的数据输入第二卷积层进行卷积计算,并最终输出6×20的输出分片522。
参考图13,当NPU处理分片513时,处理过程与图12所示过程基本相同,不同之处在于,如图13的中间部分所示,由于分片513包括图像51的底部的数据,因此,NPU对两行重叠行和分片513的预处理数据的两侧和底部增加填充像素。NPU在进行如图13所示的处理之后,最终输出6×20的输出分片523。
所述输出分片521、522和523拼接起来获取的图像与将图像51直接输入相同的CNN模型进行处理输出的图像是一致的。在图12和图13所示的分片处理方法中,相比于处理完整的图像51,NPU需要从SC中多读取4行重叠行的数据,并且输入层21对所述重叠行进行了两次重复计算,带来的计算损耗较大。
图14为本申请实施例提供的另一种对图像分片进行处理的方法流程图。该方法由NPU执行。图15为NPU对分片512进行处理的过程示意图。下面将结合图14和图15进行描述。
如图14所示,首先在步骤S141,获取当前分片对应的图像数据。假设NPU基于图2所示的CNN模型对分片进行处理,并且假设该CNN模型包括一个卷积层。参考图15左侧部分,当NPU开始处理分片512之后,从SC中读取分片512。
在步骤S142,对获取的图像数据进行预处理。参考图15左侧部分,NPU通过图2中的输入层21对分片512中的数据进行预处理。
在步骤S143,读取预存的上一个分片对应的重叠行数据。在该实施方式中,NPU在处理分片511的过程中,在将分片511输入输入层21以进行预处理之后,将该输入层21输出的数据中的底部两行数据作为分片511对应的重叠行数据预存起来,其中,NPU可将该重叠行数据预存到SC中或DDR存储器中。当NPU处理分片512时,可从相应的地址读取所述预存的重叠行数据。
在步骤S144,对所述重叠行数据和当前分片的经预处理的数据增加填充像素。参考图15中间部分,与图12所示类似地,为了保证计算结果的一致性,对重叠行数据与经预处理数据拼接的数据的两侧增加填充像素。与图11所示方法类似地,该步骤为可选步骤。
在步骤S145,对填充后的数据进行卷积计算。该步骤可参考上文对图11的步骤S114的描述,在此不再赘述。
在图14所示的重叠处理方法中,由NPU在对上一个分片进行预处理之后预存经预处理的数据中的重叠行数据,从而NPU不需要从SC中重复读取上一个分片的重叠行,并且也不需要重复对分片中的重叠行进行预处理,减少了用于进行重叠处理造成的计算损耗,提高了系统效率。
上文参考图11~图15描述的分片重叠处理都是处理结果与对完整图像进行处理的结果一致的无损处理,然而,在实际应用中需要处理的重叠行较多(例如为92行),从而使得相比于对完整图像进行处理,卷积层需要额外对重叠行进行卷积计算,使得NPU的计算消耗较大。为此,本申请实施例提供一种有损重叠处理,该有损重叠处理使得可以以相比于准确重叠行数较少的指定数目的重叠行进行重叠处理,从而在保证图像质量的同时减少NPU的计算消耗。
图16为本申请实施例提供的一种对分片进行有损处理的方法示意图。如图16所示,同样以对分片511、分片512和分片513进行处理为例进行描述,其中,各个矩形框中的数字表示该矩形框对应的图像数据中的像素行数。假设在该实施方式中卷积核的边长为5个像素,步长为1,从而,根据上文所述,为了使得在卷积计算之后输出的图像的大小相同,需要填充共5-1=4行像素和4列像素,并且用于保证无损计算的重叠行的行数应为5-1=4行。在该实施方式中的有损计算中,可将重叠行数例如指定为2。
具体是,参考图16,NPU对分片511、分片512和分片513分别进行了操作④、⑤和⑥,并最终获取输出分片521、输出分片522和输出分片523,下面将分别描述对分片511、分片512和分片513的处理。
ISP在将分片511写入SC之后,NPU执行操作④,即从SC中读取分片511,通过图2所示的CNN模型的输入层21对分片511进行预处理,并对经预处理的图像数据的四边各填充两行像素,由于分片511是从图像511切分的第一个分片,因此不需要对该分片进行重叠处理。之后,NPU执行操作⑤,通过图2所示的卷积层以例如5×5的卷积核(图16中以标注5的正方形示出)对上述经填充的图像数据进行卷积计算。如图16中所示,分片511对应的经填充的图像数据共有6+4=10行,因此,在以5×5的卷积核对其进行卷积计算之后,将输出包括10-(5-1)=6行像素的图像数据。在进行上述卷积计算之后,NPU执行操作⑥,对从卷积层输出的图像数据裁剪下边缘的一行像素(在图16中以带阴影的虚线框示出),并通过图2中的输出层23对裁剪之后剩下的5行图像数据进行处理,最后得到输出分片521,其中,该输出分片521包括5行像素。其中,所述裁剪的行的数目基于重叠行的数目确定,例如,裁剪的行的数目为重叠行的数目的一半,由于在该实例中,指定的重叠行的数目为2,因此,裁剪的行的数目为2/2=1。通常可将指定的重叠行数目设定为偶数,在所述指定的重叠行数目不为偶数的情况中,可另外设置对输出图像进行裁剪的规则以使得输出图像的大小与输入图像的大小相同,本申请实施例对此不作限定。
ISP在将分片512写入SC之后,NPU执行操作④,与上文中图11所示方法类似地,NPU从SC中首先读取分片511的2行重叠行(图中以带阴影的实线框示出),然后读取分片512,在对重叠行和分片512都进行预处理之后对经预处理的图像数据的四边各增加两行重叠像素。之后,NPU执行操作⑤,通过5×5的卷积核对6+2+4=12行的图像数据进行卷积计算,从而输出8行的图像数据。在进行卷积计算之后,NPU执行操作⑥,对所述输出的8行图像数据的上边缘和下边缘各裁剪一行像素,并对裁剪之后的6行图像数据进行输出层的处理,最后获取包括6行像素的输出分片522。
ISP在将分片513写入SC之后,NPU相对于分片513进行的处理与相对于分片512的处理基本相同,不同在于,在操作⑥中,由于,分片513是从图像51切分的最后一个分片,因此,对从卷积层输出的7行图像数据只裁剪上边缘的一行像素,从而获取包括6行像素的输出分片523。
将通过图16所示的方法获取的输出分片521、522和523拼接到一起从而可获取输出图像52,经过数据验证,该输出图像52的图像质量相比于上述无损计算获取的与图像51对应的输出图像并没有显著的降低,而NPU的计算消耗大幅度降低。例如,在实际中,对于图像的每个分片需要多读取92行重叠行并对其进行额外的计算处理(包括预处理、卷积计算处理等),通过使用图16所示的处理方法,可将重叠行的数目指定为32行,NPU对于每个分片只需要多读取32行重叠行并进行处理,有效减少了由于重叠行引起的NPU额外的计算消耗。
图17为本申请实施例提供的一种图像处理设备1700,所述图像处理设备1700用于实现上文参考图5~图16所述的图像处理方法,包括部署于图像处理设备的第一处理器中的第一写入单元171,用于将目标图像中的第一分片写入系统缓存中;及部署于图像处理设备的神经网络处理器中的以下单元:第一读取单元172,用于从系统缓存读取目标图像中的第一分片;处理单元173,用于对所述第一分片进行处理,以获取第一输出分片;第二写入单元174,用于将所述第一输出分片写入所述系统缓存中。
在本申请的一种实施方式中,所述第一写入单元171还用于在将目标图像中的第一分片写入系统缓存中之前生成所述目标图像。
在本申请的一种实施方式中,所述图像处理设备1700还包括,部署于所述图像处理设备的第一处理器中的第二读取单元175,用于在所述神经网络处理器将所述第一输出分片写入所述系统缓存中之后,从所述系统缓存读取所述第一输出分片并基于所述第一输出分片获得输出图像。
在本申请的一种实施方式中,所述第一处理器包括图像信号处理器。
在本申请的一种实施方式中,所述系统缓存包括输入区和输出区,其中,所述第一写入单元171还用于,将目标图像中的第一分片写入所述输入区中;所述第二写入单元174还用于,将所述第一输出分片写入所述输出区中。
在本申请的一种实施方式中,所述输入区中包括第一缓存区和第二缓存区,所述第一写入单元171还用于,将所述第一分片写入所述第一缓存区中,所述图像处理设备还包括,部署于所述第一处理器的第三写入单元176,用于在所述神经网络处理器从所述输入区读取所述第一分片的同时,将第二分片写入所述第二缓存区中,其中,所述第二分片不同于所述第一分片。
在本申请的一种实施方式中,所述输出区中包括第三缓存区和第四缓存区,所述第二写入单元174还用于,将所述第一输出分片写入所述第三缓存区中,所述图像处理设备还包括,部署于所述第一处理器中的第三读取单元177,用于在所述神经网络处理器将所述第一输出分片写入所述第三缓存区中的同时,从所述第四缓存区中读取与所述目标图像中的第三分片对应的第三输出分片,其中,所述第三分片不同于所述第一分片。
在一种实施方式中,所述处理单元173包括,计算子单元1731,用于对所述第一分片进行预处理以获取第一中间图像数据,读取子单元1732,用于读取预存的第二中间图像数据,所述第二中间图像数据通过对所述目标图像中的第三分片的部分进行所述预处理而获取,卷积计算子单元1733,用于对所述第二中间图像数据与所述第一中间图像数据的拼接数据进行卷积计算。
在一种实施方式中,所述图像处理设备1700还包括,部署于所述神经网络处理器中的第四读取单元178,用于在所述神经网络处理器从所述第一缓存区读取所述第一分片之前,从所述第二缓存区读取所述第三分片的部分,所述处理单元173包括,处理子单元1734,用于对所述第三分片的部分与所述第一分片的拼接数据进行处理以获取中间图像数据,裁剪子单元1735,用于对所述中间图像数据进行裁剪。
所述图像处理设备1700中的各个单元可通过软件、硬件、固件或者其任意组合来实现,其例如部署于图1中的处理器110(例如ISP或者NPU)中。
本申请另一方面提供一种图像处理设备,用于实现上文参考图5~图16所述的图像处理方法,包括第一处理器和神经网络处理器,所述第一处理器用于将目标图像中的第一分片写入系统缓存中;所述神经网络处理器用于从所述系统缓存读取目标图像中的第一分片,对所述第一分片进行处理,以获取第一输出分片,及将所述第一输出分片写入所述系统缓存中。
在一种实施方式中,所述第一处理器还用于在将目标图像中的第一分片写入系统缓存中之前生成所述目标图像。所述第一处理器例如为图1中的处理器110中的CPU或者ISP。
在一种实施方式中,所述第一处理器还用于从所述系统缓存读取所述第一输出分片,并基于所述第一输出分片获得输出图像。
在一种实施方式中,所述第一处理器包括图像信号处理器。
在一种实施方式中,所述图像处理设备还包括系统缓存。
在一种实施方式中,所述系统缓存还包括输入区和输出区,所述第一处理器还用于将所述第一分片写入所述输入区中;所述神经网络处理器还用于将所述第一输出分片写入所述输出区中。
在一种实施方式中,所述输入区中包括第一缓存区和第二缓存区;所述第一处理器还用于:将所述第一分片写入所述第一缓存区中,在所述神经网络处理器从所述输入区读取所述第一分片的同时,将所述目标图像中第二分片写入所述第二缓存区中,其中,所述第二分片不同于所述第一分片。
在一种实施方式中,所述输出区中包括第三缓存区和第四缓存区;所述神经网络处理器还用于将所述第一输出分片写入所述第三缓存区中;所述第一处理器还用于:在所述神经网络处理器将所述第一输出分片写入所述第三缓存区中的同时,从所述第四缓存区中读取与所述目标图像中第三分片对应的第三输出分片,其中,所述第三分片不同于所述第一分片。
在一种实施方式中,所述神经网络处理器还用于:对所述第一分片进行预处理以获取第一中间图像数据,读取预存的第二中间图像数据,所述第二中间图像数据通过对所述第三分片的一部分进行所述预处理而获取,对所述第二中间图像数据与所述第一中间图像数据的拼接数据进行卷积计算。
在一种实施方式中,所述神经网络处理器还用于:从所述第二缓存区读取所述第三分片的一部分,对所述第三分片的一部分与所述第一分片的拼接数据进行包括卷积计算的处理以获取中间图像数据,对所述中间图像数据进行裁剪。
本申请另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在图像处理设备中执行时,令所述图像处理设备执行上文参考图5~图16所述的图像处理方法。
本申请另一方面提供一种图像处理设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述存储器可以是之前所述的主存储器,所述处理器可以参考之前的处理器110,包括ISP和NPU,用于执行所述可执行代码时,实现上文参考图5~图16所述的图像处理方法。
本申请另一方面提供一种计算机程序产品,当所述计算机程序产品在图像处理设备中运行时,使得所述图像处理设备执行上文参考图5~图16所述的图像处理方法。
在本申请实施例中,通过对图像数据分成多个分片分别处理,从而使得可以使用SC存储AI处理过程中的中间数据,大大节省了AI处理的耗时,节省了系统功耗,在视频场景中可保证视频实时性,提升了图像质量。在对图像数据进行切分之后,为了保证输出的正确性,NPU通常需要考虑分片之间的重叠(Overlap)处理,本申请实施例还提供了重叠数据预存方法和有损重叠处理方法来进行重叠处理,从而减少因对图像数据的切分导致的NPU的额外的计算消耗,保障NPU的性能。另外,通过使得ISP与NPU协同工作,进一步提高了AI处理的效率,节省了系统功耗。
需要理解,本文中的“第一”,“第二”等描述,仅仅为了描述的简单而对相似概念进行区分,并不具有其他限定作用。
本领域的技术人员可以清楚地了解到,本申请提供的各实施例的描述可以相互参照,为描述的方便和简洁,例如关于本申请实施例提供的各装置、设备的功能以及执行的步骤可以参照本申请方法实施例的相关描述,各方法实施例之间、各装置实施例之间也可以互相参照。
本领域技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的全部或部分步骤;而前述的存储介质包括:只读存储器(read-only memory,ROM)、随机存取存储器(random-access memory,RAM)、磁盘或者光盘等各种可以存储程序代码的介质。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质、或者半导体介质(例如固态硬盘(Solid StateDisk,SSD)等。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,在没有超过本申请的范围内,可以通过其他的方式实现。例如,以上所描述的实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (22)
1.一种图像处理方法,其特征在于,所述方法包括:
芯片中的图像信号处理器处理从摄像头接收的数据,生成目标图像;
所述图像信号处理器将所述目标图像中的第一分片写入所述芯片中的系统缓存中;
所述芯片的神经网络处理器从所述系统缓存读取所述第一分片;
所述神经网络处理器基于神经网络模型对所述第一分片进行处理,以获取第一输出分片;
所述神经网络处理器将所述第一输出分片写入所述系统缓存中;
其中,所述神经网络模型包括多个卷积层,所述系统缓存进一步用于存储所述多个卷积层中第一卷积层输出的中间图像数据。
2.根据权利要求1所述的方法,其特征在于,还包括:在所述神经网络处理器将所述第一输出分片写入所述系统缓存中之后,所述图像信号处理器从所述系统缓存读取所述第一输出分片,并基于所述第一输出分片获得输出图像。
3.根据权利要求1所述的方法,其特征在于,所述系统缓存包括输入区和输出区;其中,
所述图像信号处理器将所述目标图像中的第一分片写入系统缓存中包括:所述图像信号处理器将所述第一分片写入所述输入区中;
所述神经网络处理器将所述第一输出分片写入所述系统缓存中包括:所述神经网络处理器将所述第一输出分片写入所述输出区中。
4.根据权利要求3所述的方法,其特征在于,所述输入区中包括第一缓存区和第二缓存区;
所述图像信号处理器将所述第一分片写入所述输入区中包括:所述图像信号处理器将所述第一分片写入所述第一缓存区中;
所述方法还包括:在所述神经网络处理器从所述输入区读取所述第一分片的同时,所述图像信号处理器将所述目标图像中的第二分片写入所述第二缓存区中,其中,所述第二分片不同于所述第一分片。
5.根据权利要求3或4所述的方法,其特征在于,所述输出区中包括第三缓存区和第四缓存区;
所述神经网络处理器将所述第一输出分片写入所述输出区中包括:所述神经网络处理器将所述第一输出分片写入所述第三缓存区中;
所述方法还包括:在所述神经网络处理器将所述第一输出分片写入所述第三缓存区中的同时,所述图像信号处理器从所述第四缓存区中读取与所述目标图像中第三分片对应的第三输出分片,其中,所述第三分片不同于所述第一分片。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述神经网络处理器基于神经网络模型对所述第一分片进行处理包括:所述神经网络处理器对所述第一分片进行预处理以获取第一中间图像数据,所述神经网络处理器读取预存的第二中间图像数据,所述第二中间图像数据通过对所述目标图像中的第三分片的一部分进行所述预处理而获取,所述神经网络处理器对所述第二中间图像数据与所述第一中间图像数据的拼接数据进行卷积计算。
7.根据权利要求1-4任一项所述的方法,其特征在于,所述神经网络处理器基于神经网络模型对所述第一分片进行处理包括:所述神经网络处理器对所述目标图像中的第三分片的一部分与所述第一分片的拼接数据进行包括卷积计算的处理以获取中间图像数据,所述神经网络处理器对所述中间图像数据进行裁剪,得到所述第一输出分片。
8.根据权利要求5所述的方法,其特征在于,所述神经网络处理器基于神经网络模型对所述第一分片进行处理包括:所述神经网络处理器对所述第一分片进行预处理以获取第一中间图像数据,所述神经网络处理器读取预存的第二中间图像数据,所述第二中间图像数据通过对所述目标图像中的第三分片的一部分进行所述预处理而获取,所述神经网络处理器对所述第二中间图像数据与所述第一中间图像数据的拼接数据进行卷积计算。
9.根据权利要求5所述的方法,其特征在于,所述神经网络处理器基于神经网络模型对所述第一分片进行处理包括:所述神经网络处理器对所述目标图像中的第三分片的一部分与所述第一分片的拼接数据进行包括卷积计算的处理以获取中间图像数据,所述神经网络处理器对所述中间图像数据进行裁剪,得到所述第一输出分片。
10.一种芯片,其特征在于,包括:系统缓存、图像信号处理器和神经网络处理器;
所述图像信号处理器,用于处理从摄像头接收的数据,生成目标图像,将所述目标图像中的第一分片写入所述系统缓存中;
所述神经网络处理器,用于从所述系统缓存读取目标图像中的第一分片,基于神经网络模型对所述第一分片进行处理,以获取第一输出分片,及将所述第一输出分片写入所述系统缓存中;
其中,所述神经网络模型包括多个卷积层,所述系统缓存进一步用于存储所述多个卷积层中第一卷积层输出的中间图像数据。
11.根据权利要求10所述的芯片,所述图像信号处理器,还用于:在所述神经网络处理器将所述第一输出分片写入所述系统缓存中之后,从所述系统缓存读取所述第一输出分片,并基于所述第一输出分片获得输出图像。
12.根据权利要求10所述的芯片,其特征在于,所述系统缓存包括输入区和输出区,所述图像信号处理器还用于将所述第一分片写入所述输入区中;所述神经网络处理器还用于将所述第一输出分片写入所述输出区中。
13.根据权利要求12所述的芯片,其特征在于,所述输入区中包括第一缓存区和第二缓存区;所述图像信号处理器还用于:将所述第一分片写入所述第一缓存区中,在所述神经网络处理器从所述输入区读取所述第一分片的同时,将所述目标图像中第二分片写入所述第二缓存区中,其中,所述第二分片不同于所述第一分片。
14.根据权利要求12或13所述的芯片,其特征在于,所述输出区中包括第三缓存区和第四缓存区;所述神经网络处理器还用于将所述第一输出分片写入所述第三缓存区中;所述图像信号处理器还用于:在所述神经网络处理器将所述第一输出分片写入所述第三缓存区中的同时,从所述第四缓存区中读取与所述目标图像中第三分片对应的第三输出分片,其中,所述第三分片不同于所述第一分片。
15.根据权利要求10-13任一项所述的芯片,其特征在于,所述神经网络处理器还用于:对所述第一分片进行预处理以获取第一中间图像数据,读取预存的第二中间图像数据,所述第二中间图像数据通过对所述目标图像中的第三分片的一部分进行所述预处理而获取,对所述第二中间图像数据与所述第一中间图像数据的拼接数据进行卷积计算。
16.根据权利要求10-13任一项所述的芯片,其特征在于,所述神经网络处理器还用于:从所述系统缓存的第二缓存区读取所述目标图像中的第三分片的一部分,对所述第三分片的一部分与所述第一分片的拼接数据进行包括卷积计算的处理以获取中间图像数据,对所述中间图像数据进行裁剪,得到所述第一输出分片。
17.根据权利要求14所述的芯片,其特征在于,所述神经网络处理器还用于:对所述第一分片进行预处理以获取第一中间图像数据,读取预存的第二中间图像数据,所述第二中间图像数据通过对所述目标图像中的第三分片的一部分进行所述预处理而获取,对所述第二中间图像数据与所述第一中间图像数据的拼接数据进行卷积计算。
18.根据权利要求14所述的芯片,其特征在于,所述神经网络处理器还用于:从所述系统缓存的第二缓存区读取所述目标图像中的第三分片的一部分,对所述第三分片的一部分与所述第一分片的拼接数据进行包括卷积计算的处理以获取中间图像数据,对所述中间图像数据进行裁剪,得到所述第一输出分片。
19.根据权利要求10-13、17、18任一项所述的芯片,其特征在于,还包括:中央处理器CPU、图形处理器GPU、基带处理器和视频编解码器。
20.根据权利要求14所述的芯片,其特征在于,还包括:中央处理器CPU、图形处理器GPU、基带处理器和视频编解码器。
21.根据权利要求15所述的芯片,其特征在于,还包括:中央处理器CPU、图形处理器GPU、基带处理器和视频编解码器。
22.根据权利要求16所述的芯片,其特征在于,还包括:中央处理器CPU、图形处理器GPU、基带处理器和视频编解码器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310972718.6A CN117036149A (zh) | 2020-12-01 | 2020-12-01 | 一种图像处理方法及芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/133109 WO2022115996A1 (zh) | 2020-12-01 | 2020-12-01 | 图像处理方法及设备 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310972718.6A Division CN117036149A (zh) | 2020-12-01 | 2020-12-01 | 一种图像处理方法及芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115735226A CN115735226A (zh) | 2023-03-03 |
CN115735226B true CN115735226B (zh) | 2023-08-22 |
Family
ID=81852833
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310972718.6A Pending CN117036149A (zh) | 2020-12-01 | 2020-12-01 | 一种图像处理方法及芯片 |
CN202080102287.2A Active CN115735226B (zh) | 2020-12-01 | 2020-12-01 | 一种图像处理方法及芯片 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310972718.6A Pending CN117036149A (zh) | 2020-12-01 | 2020-12-01 | 一种图像处理方法及芯片 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN117036149A (zh) |
WO (1) | WO2022115996A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115660971B (zh) * | 2022-10-08 | 2024-02-23 | 镕铭微电子(济南)有限公司 | 一种基于深度学习硬件加速器实现usm锐化的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218174A (zh) * | 2013-03-29 | 2013-07-24 | 航天恒星科技有限公司 | 一种用于遥感图像的io双缓存交互多核处理方法 |
WO2020042126A1 (zh) * | 2018-08-30 | 2020-03-05 | 华为技术有限公司 | 一种对焦装置、方法及相关设备 |
CN111028360A (zh) * | 2018-10-10 | 2020-04-17 | 芯原微电子(上海)股份有限公司 | 一种3d图像处理中数据读写方法及系统、存储介质及终端 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10497089B2 (en) * | 2016-01-29 | 2019-12-03 | Fotonation Limited | Convolutional neural network |
CN107292256B (zh) * | 2017-06-14 | 2019-12-24 | 西安电子科技大学 | 基于辅任务的深度卷积小波神经网络表情识别方法 |
CN108475416A (zh) * | 2017-06-30 | 2018-08-31 | 深圳市大疆创新科技有限公司 | 处理图像的方法和装置 |
US11340936B2 (en) * | 2018-05-04 | 2022-05-24 | Apple Inc. | Compiling and scheduling transactions in neural network processor |
US11676371B2 (en) * | 2018-08-17 | 2023-06-13 | Fotonation Limited | Apparatus for processing a neural network |
US11176427B2 (en) * | 2018-09-26 | 2021-11-16 | International Business Machines Corporation | Overlapping CNN cache reuse in high resolution and streaming-based deep learning inference engines |
US11861484B2 (en) * | 2018-09-28 | 2024-01-02 | Qualcomm Incorporated | Neural processing unit (NPU) direct memory access (NDMA) hardware pre-processing and post-processing |
CN110400250B (zh) * | 2019-07-29 | 2023-10-13 | 杭州凝眸智能科技有限公司 | 基于ai的智能图像预处理方法及系统 |
-
2020
- 2020-12-01 CN CN202310972718.6A patent/CN117036149A/zh active Pending
- 2020-12-01 CN CN202080102287.2A patent/CN115735226B/zh active Active
- 2020-12-01 WO PCT/CN2020/133109 patent/WO2022115996A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218174A (zh) * | 2013-03-29 | 2013-07-24 | 航天恒星科技有限公司 | 一种用于遥感图像的io双缓存交互多核处理方法 |
WO2020042126A1 (zh) * | 2018-08-30 | 2020-03-05 | 华为技术有限公司 | 一种对焦装置、方法及相关设备 |
CN111028360A (zh) * | 2018-10-10 | 2020-04-17 | 芯原微电子(上海)股份有限公司 | 一种3d图像处理中数据读写方法及系统、存储介质及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN115735226A (zh) | 2023-03-03 |
CN117036149A (zh) | 2023-11-10 |
WO2022115996A1 (zh) | 2022-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3707671B1 (en) | Electronic device and method for correcting image corrected in first image processing scheme in external electronic device in second image processing scheme | |
CN111598776A (zh) | 图像处理方法、图像处理装置、存储介质与电子设备 | |
CN115601244B (zh) | 图像处理方法、装置和电子设备 | |
CN113538273A (zh) | 图像处理方法及图像处理装置 | |
US20240119566A1 (en) | Image processing method and apparatus, and electronic device | |
CN113706414A (zh) | 视频优化模型的训练方法和电子设备 | |
US11393078B2 (en) | Electronic device and method for correcting image on basis of image transmission state | |
CN118103809A (zh) | 页面显示方法、电子设备及计算机可读存储介质 | |
CN113538227A (zh) | 一种基于语义分割的图像处理方法及相关设备 | |
CN115735226B (zh) | 一种图像处理方法及芯片 | |
CN115150542B (zh) | 一种视频防抖方法及相关设备 | |
US20230410268A1 (en) | Method for providing image, and electronic device supporting same | |
CN116916151A (zh) | 拍摄方法、电子设备和存储介质 | |
CN115358937B (zh) | 图像去反光方法、介质及电子设备 | |
WO2022170866A1 (zh) | 数据传输方法、装置及存储介质 | |
CN114827442B (zh) | 生成图像的方法和电子设备 | |
CN115516494A (zh) | 用于生成图像的方法及其电子装置 | |
CN114630152A (zh) | 用于图像处理器的参数传输方法、装置及存储介质 | |
CN113364964A (zh) | 图像处理方法、图像处理装置、存储介质与终端设备 | |
CN116723416B (zh) | 图像处理方法及电子设备 | |
CN115460343B (zh) | 图像处理方法、设备及存储介质 | |
CN116453131B (zh) | 文档图像矫正方法、电子设备及存储介质 | |
CN115802144B (zh) | 视频拍摄方法及相关设备 | |
CN114630153B (zh) | 用于应用处理器的参数传输方法、装置及存储介质 | |
CN116228554A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |