1.本技术涉及图像处理领域,特别涉及一种电子设备及其图像识别方法、片上系统和介质。
背景技术:2.随着人工智能(artificial intelligence,ai)的迅速发展,神经网络处理器(neural networkprocessing unit,npu)在智能电子设备中的应用越来越广泛。
3.在包含npu和图像信号处理器(image signal processor,isp)的系统或芯片中,npu会利用神经网络模型对输入的图像进行图像识别处理,例如人脸识别。
4.一般在人脸识别的过程中,npu对从isp获取的图像经过ai一系列算法处理,例如,进行以下4个阶段算法处理:人脸检测(包括提取人脸感兴趣区域roi)、人脸对齐(角度不正的图像转换成角度正确的图像)、人脸特征提取和人脸识别。但是,上述4个阶段算法串行工作,依次处理,耗时长,延迟大。
技术实现要素:5.本技术实施例提供了电子设备及其图像识别方法、片上系统和介质。
6.第一方面,本技术实施例提供了一种图像识别方法,所述方法应用于电子设备,所述电子设备包括第一处理器和第二处理器,所述方法包括:
7.所述电子设备通过第一处理器和第二处理器对待识别视频中的帧图像进行人脸识别,其中,所述电子设备在获取到第m帧图像后的处理方式如下:
8.第一处理器对第m帧图像进行人脸检测和人脸对齐,得到第一框选参数和第一对齐参数,并且第二处理器采用第二框选参数和第二对齐参数对第m帧图像进行人脸感兴趣区域提取和人脸对齐;其中,第二框选参数和第二对齐参数为电子设备在获取到第m
‑
1帧图像后由所述第一处理器对第m
‑
1帧图像进行人脸检测和人脸对齐得到的;
9.第一处理器基于第二处理器对所述第m帧图像的人脸感兴趣区域提取结果和人脸对齐结果,对所述第m帧图像进行人脸特征提取和特征匹配,得到第m帧图像的人脸识别结果。
10.可以理解,人脸感兴趣区域提取结果可以包括下文实施例中的目标人脸框选区域,所述人脸对齐结果可以包括下文实施例中调整到预设角度的目标人脸图像。
11.可以理解,若m是下文实施例中的第n
‑
1帧,那么m
‑
1帧则为下文实施例中的第n
‑
2帧。若m是下文实施例中的第n帧,那么m
‑
1帧则为下文实施例中的第n
‑
1帧。
12.在本技术实施例中,由于相邻两帧人脸图像在高帧率(如30帧)视频流中,人脸的位置和姿态差别不大,因此,可以使用npu104计算出的上一帧(第n
‑
1帧)的框选参数和人脸对齐参数作用于isp103中的下一帧(第n帧),isp103对下一帧(第n帧)的人脸图像进行人脸感兴趣区域提取和人脸对齐,耗时为:第一时间段t1’+第二时间段t2’,由于框选参数和人脸对齐参数是npu104在先计算好,传给isp103的,省去了isp103计算框选参数和人脸对齐
参数的时间,因此,第一时间段t1’+第二时间段t2’小于第一时间段t1+第二时间段t2,本技术实施例的四个阶段总体耗时且耗时:第一时间段t1’+第二时间段t2’+第三时间段t3+第四时间段t4,小于现有技术中的耗时:第一时间段t1+第二时间段t2+第三时间段t3+第四时间段t4。如此,降低了上述4个阶段算法处理串行导致的端到端延迟,在一定程度上缩短端到端的图像处理时间,提高了算法处理的效率。
13.在上述第一方面的一种可能的实现中,所述第一处理器为神经网络处理器,所述第二处理器为图像信号处理器。
14.在上述第一方面的一种可能的实现中,所述人脸感兴趣区域提取结果包括目标人脸框选区域,所述人脸对齐结果包括调整到预设角度的目标人脸图像。
15.可以理解,预设角度的目标人脸图像可以指将侧脸或角度不正的图像转换得到的正脸图像。
16.在上述第一方面的一种可能的实现中,所述框选参数包括目标人脸框选区域边缘的坐标数据;所述对齐参数包括用于将目标人脸调整到预设角度的仿射变化矩阵数据。
17.在上述第一方面的一种可能的实现中,所述目标人脸框选区域为矩形,所述框选参数为所述目标人脸框选区域对角线上的两个顶点坐标数据或者所述目标人脸框选区域四个顶点坐标数据。
18.在上述第一方面的一种可能的实现中,所述待识别视频为大于预设帧率的视频。
19.可以理解的是,在一些实施例中,isp 103可以从图像传感器102获取视频流中的帧图像。图像传感器102也可以将视频流中的帧图像发送到存储器107中存储,isp 103从存储器107中获取视频流中相邻的两帧图像。此外,可以理解的是,视频流可以是高帧率的视频流,高帧率又被称为高帧率格式(high frame rate/hfr),是指以每秒大于等于30帧画面频率拍摄视频。例如,30fps、48fps、60fps。fps是图像领域中的定义,是指画面每秒传输帧数,即指动画或视频的画面数。
20.在高帧率人脸识别系统中,相邻两帧目标人脸图像的位置和姿态差别不大。可以使用上一帧的目标人脸roi和人脸仿射变换作用于下一帧的目标人脸roi。下文将具体介绍如何将上一帧的目标人脸roi和人脸仿射变换作用于下一帧的目标人脸roi。
21.在上述第一方面的一种可能的实现中,所述预设帧率为每秒30帧画面。
22.第二方面,本技术实施例提供了一种可读介质,可读介质上存储有指令,该指令在被图像信号处理器执行时,可以实现第一方面所述的图像识别方法。
23.第三方面,本技术实施例提供了一种电子设备,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令;以及
24.第一处理器和第二处理器,用于支持所述第一处理器或所述第二处理器执行第一方面的任一项所述的图像识别方法。
25.第三方面,本技术实施例提供了一种片上系统,存储器,用于存储由片上系统的一个或多个处理器执行的指令;以及
26.第一处理器和第二处理器,用于支持所述第一处理器或所述第二处理器执行第一方面任一项所述的图像识别方法。
附图说明
27.图1示出了npu对图像进行人脸识别时的示意图;
28.图2a示出了npu104和isp103并行对第n
‑
1帧图像和第n帧图像进行人脸识别时的示意图;
29.图2b根据本技术实施例,对应于图1和图2a,示出了一种本技术实施例提供的并行算法处理,相比于现有技术中的串行算法处理,算法处理效率提高的原理示意图;
30.图2c示出了npu104和isp103并行对第n
‑
2帧图像至第n+1帧图像进行人脸识别时的示意图;
31.图3根据本技术的一些实施例,示出了一种电子设备100的结构示意图;
32.图4根据本技术实施例,示出了图像数据经过isp 103的人脸感兴趣区域提取和人脸对齐处理后使用npu104进行人脸特征提取和人脸识别的交互过程;
33.图5根据本技术的一些实施例,示出了一种isp 103的结构示意图;
34.图6示出了一种通用功能模块对图像数据进行处理的过程示意图;
35.图7根据本技术的一些实施例,示出了一种片上系统的结构示意图。
具体实施方式
36.本技术的说明性实施例包括但不限于电子设备及其图像识别方法和介质。
37.如前所述,背景技术中提到了如下技术问题:
38.人脸检测、人脸对齐、人脸特征提取和人脸识别四个阶段在npu串行工作时耗时长,延迟大。例如,图1示出了npu对图像进行人脸识别时的示意图,如图1所示,npu104对图像进行人脸识别时需要经过以下阶段:第一时间段的人脸检测、第二时间段的人脸对齐、第三时间段的人脸特征提取以及第四时间段的人脸识别。上述4个阶段算法串行工作,需耗时:第一时间段t1+第二时间段t2+第三时间段t3+第四时间段t4。
39.在本技术实施例中,将npu中的部分算法处理交给isp异步处理,例如,isp主要做人脸感兴趣区域提取(根据框选参数直接提取人脸感兴趣区域roi)和人脸对齐(根据仿射变换矩阵直接将角度不正的图像转换成角度正确的图像),npu主要做人脸特征提取和人脸识别,isp和npu并行工作,减少4个阶段算法处理串行导致的端到端延迟,在一定程度上可以缩短图像处理时间,提高了算法处理的效率。例如,图2a示出了npu104和isp103并行对第n
‑
1帧图像和第n帧图像进行人脸识别时的示意图。如图2a所示,由于相邻两帧人脸图像的位置和姿态差别不大,因此,可以使用npu104计算出的上一帧(第n
‑
1帧)的框选参数和人脸对齐参数作用于isp103中的下一帧(第n帧),isp103对下一帧(第n帧)的人脸图像进行人脸感兴趣区域提取和人脸对齐,耗时为:第一时间段t1’+第二时间段t2’,由于框选参数和人脸对齐参数是npu104在先计算好,传给isp103的,省去了isp103计算框选参数和人脸对齐参数的时间,因此,第一时间段t1’+第二时间段t2’小于第一时间段t1+第二时间段t2,本技术实施例的四个阶段总体耗时且耗时:第一时间段t1’+第二时间段t2’+第三时间段t3+第四时间段t4,小于现有技术中的耗时:第一时间段t1+第二时间段t2+第三时间段t3+第四时间段t4。如此,减少上述4个阶段算法处理串行导致的端到端延迟,在一定程度上缩短图像处理时间,提高了算法处理的效率。
40.图2b根据本技术实施例,对应于图1和图2a,示出了一种本技术实施例提供的并行
算法处理,相比于现有技术中的串行算法处理,算法处理效率提高的原理示意图。如图2b所示,a
n
‑1表示npu104对第n
‑
1帧图像进行人脸框选,b
n
‑1表示npu104对第n
‑
1帧图像进行人脸对齐,c
n
‑1表示npu104对第n
‑
1帧图像进行人脸特征提取,d
n
‑1表示npu104对第n
‑
1帧图像进行人脸识别。
41.同理,a
n
表示npu104对第n帧图像进行人脸框选,b
n
表示npu104对第n帧图像进行人脸对齐,c
n
表示npu104对第n帧图像进行人脸特征提取,d
n
表示npu104对第n帧图像进行人脸识别。
42.a
n
‑1"表示isp103从npu104中得到上一帧图像的框选参数,对第n
‑
1帧图像进行人脸框选。a
n
"表示isp103从npu104中得到上一帧图像的框选参数,对第n帧图像进行人脸框选。b
n
‑1"表示isp103从npu104中得到上一帧图像的人脸对齐参数,对第n
‑
1帧图像进行人脸对齐,b
n
‑1"表示isp103从npu104中得到上一帧图像人脸对齐参数,对第n
‑
1帧图像进行人脸对齐。
43.t1’表示isp103从npu104中得到上一帧图像的框选参数,对当前帧(例如第n
‑
1帧和第n帧)图像进行人脸感兴趣区域提取(人脸框选)所耗费的时长,t2’表示isp103从npu104中得到上一帧图像的人脸对齐参数,对当前帧(例如第n
‑
1帧和第n帧)图像进行人脸对齐所耗费的时长,t3表示npu104对当前帧图像进行人脸特征提取所耗费的时长,t4表示npu104对第n帧图像进行人脸识别所耗费的时长。
44.现有技术中,npu104对第n
‑
1帧图像进行人脸检测、人脸对齐、人脸特征提取和人脸识别耗时为:t1+t2+t3+t4,在本技术实施例中,isp103和npu104并行对第n
‑
1帧图像进行人脸感兴趣区域提取、人脸对齐、人脸特征提取和人脸识别耗时为:t1’+t2’+t3+t4。由于框选参数和人脸对齐参数是npu104在先计算好,传给isp103的,省去了isp103计算框选参数和人脸对齐参数的时间,因此,t1’小于t1,t2’小于t2,t1’+t2’+t3+t4小于t1+t2+t3+t4,减少了npu104对第n
‑
1帧图像依次进行人脸检测、人脸对齐、人脸特征提取和人脸识别导致的端到端延迟,在一定程度上缩短图像处理时间,提高了算法处理的效率。
45.同理,在本技术实施例中,isp103和npu104并行对第n
‑
1帧图像进行人脸感兴趣区域提取、人脸对齐、人脸特征提取和人脸识别耗时为:t1’+t2’+t3+t4小于t1+t2+t3+t4,现有技术中,npu104对第n
‑
1帧图像进行人脸检测、人脸对齐、人脸特征提取和人脸识别耗时为:t1+t2+t3+t4,t1’+t2’+t3+t4小于t1+t2+t3+t4,降低了npu104对第n帧图像依次进行人脸检测、人脸对齐、人脸特征提取和人脸识别导致的端到端延迟,在一定程度上缩短端到端的图像处理时间,提高了算法处理的效率。
46.图2c示出了npu104和isp103并行异步处理第n
‑
2帧图像至第n+1帧图像的示意图,如图2c所示,整个系统(npu104和isp103)对第n
‑
2帧图像至第n+1帧图像做人脸识别过程,针对每一帧图像,npu104和isp103并行异步对第n
‑
2帧图像到第n
‑
1帧图像进行人脸感兴趣区域提取、人脸对齐、人脸特征提取和人脸识别,同理对第n
‑
1帧图像到第n帧图像、第n帧图像到第n+1帧图像,npu104和isp103同样是并行异步处理,具体地,npu104对第n
‑
2帧图像至第n+1帧图像做人脸检测和人脸对齐得到框选参数和人脸对齐参数,isp始终从npu104获取上一帧图像的框选参数和人脸对齐参数,作为当前帧的框选参数和人脸对齐参数,在利用上一帧图像的框选参数和人脸对齐参数对当前帧图像进行目标人脸框选和目标人脸对齐后,将目标人脸对齐图像发送至npu104,npu104再对目标人脸对齐图像进行人脸特征提取
和人脸识别。如此,降低npu104对第n
‑
2帧图像至第n+1帧图像中的每帧人脸图像依次进行人脸检测、人脸对齐、人脸特征提取和人脸识别导致的端到端延迟,在一定程度上缩短端到端的图像处理时间,提高了算法处理的效率。
47.本技术的图像识别方法适用于各种图像处理场景,例如,在火车站闸机处拍摄的视频流的人脸识别、银行系统通过视频中的人脸图像进行用户身份认证、手机端通过视频中的人脸图像进行用户身份认证、快捷支付中通过视频中的人脸图像进行用户身份认证、车载人脸系统通过视频中的人脸图像进行用户身份认证等。
48.下面对本技术实施例中所涉及的术语进行解释,以方便理解。
49.(1)感兴趣区域(region ofinterest,roi),在图像处理中,从被处理的图像中以方框、圆、椭圆、不规则多边形等方式框选出需要处理的区域,称为感兴趣区域。本技术实施例中,目标人脸roi即从被处理的图像中框选出包含人脸的区域。
50.(2)人脸检测(face detection),又称人脸框选,是检测出图像中人脸所在位置的,并提取人脸感兴趣区域。人脸检测算法的输入是一张图像,输出是目标人脸roi,或者称为人脸框选区域,例如1个目标人脸roi或多个目标人脸roi。一般情况下,输出的目标人脸roi为一个正朝上的正方形,但也有一些人脸检测技术输出的是正朝上的矩形,或者是带旋转方向的矩形,例如,本技术实施例中,如图2所示,npu104从第n
‑
1帧图像中检测出矩形的目标人脸roi。
51.(3)人脸对齐:将侧脸或角度不正的图像转换得到的正脸图像。人脸对齐技术可以提高人脸识别准确率。本技术实施例中,可以通过人脸对齐侧脸或角度不正的图像转换得到的正脸图像。
52.(4)人脸提特征提取(face feature extraction),是将一张人脸图像转化为一串固定长度的向量数值的过程。这个数值串被称为“人脸特征(face feature)”,具有表征这个人脸特点的能力。例如,眼睛特征、嘴巴特征、眉毛特征、鼻子特征、耳朵特征。
53.(5)人脸识别(face recognition),是识别出输入人脸图像对应身份的算法。它的输入一个人脸特征,通过和注册在库中n个身份对应的特征进行逐个比对,找出“一个”与输入特征相似度最高的特征。将这个最高相似度值和预设的阈值相比较,如果大于阈值,则返回该特征对应的身份,否则返回“不在库中”。
54.下面结合附图进一步阐述本技术实施例的技术方案和有益效果。
55.图3根据本技术的一些实施例,示出了一种电子设备100的结构示意图。其中,电子设备100可以进行图像的获取、人脸检测(包括提取目标人脸roi),人脸对齐(角度不正的图像转换成角度正确的图像),然后人脸特征提取和人脸识别。如图1所示,电子设备100包括:摄像头101、图像传感器102、isp 103、npu 104、中央处理器(central processing unit,cpu)105、显示器106、存储器107和接口模块108。其中,摄像头101和图像传感器102连接,图像传感器702与isp 103连接,isp 103、npu 104、cpu 105、显示器106、存储器107和接口模块108通过总线109耦接。isp 103、npu 104、cpu 105和存储器107可以通过总线109耦接构成片上系统(system on chip,soc)1000,在另一些实施例中,isp 103、npu 104、cpu 105和存储器107也可以是独立的器件。
56.摄像头101用于收集景物反射的光信号并呈现在图像传感器102上,摄像头101可以是定焦镜头、变焦镜头、鱼眼镜头、全景镜头等。
57.图像传感器102用于将通过摄像头101收集的景物反射的光信号转换为电信号,生成原始图像(raw)数据,例如可以生成bayer格式的数据。图像传感器可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal
‑
oxide
‑
semiconductor,cmos)光电晶体管通成。
58.isp 103是用于图像数据处理的专用集成电路(application
‑
specific integrated circuit,asic),用于对图像传感器102形成的图像数据进行进一步处理,以获得更好的图像质量。在一些实施例中,isp 103还用于对图像数据进行人脸感兴趣区域提取和人脸对齐。
59.npu 104是为深度学习设计的asic,在一些实施例中,可以通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理。通过npu可以进行深度学习模型推理,例如:利用神经网络模型进行人脸特征提取和人脸识别等。
60.cpu 105可以包括一个或多个处理单元,例如,可以包括中央处理器cpu(central processing unit)、图像处理器gpu(graphics processing unit)、数字信号处理器dsp(digital signal processor)、微处理器mcu(micro
‑
programmed control unit)、ai(artificial intelligence,人工智能)处理器或可编程逻辑器件fpga(field programmable gatearray)等的处理模块或处理电路。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
61.显示器106的显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light
‑
emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active
‑
matrix organic light
‑
emitting diode的,amoled),柔性发光二极管(flex light
‑
emitting diode,fled),mini led,micro led,micro oled,量子点发光二极管(quantum dot light
‑
emitting diodes,qled)等。显示器106可以用于显示经过isp 103处理的图像数据,还可以用于显示npu 104的运算结果,例如显示人脸图像和人脸识别的结果。
62.存储器107可用于存储数据、软件程序以及模块,可以是易失性存储器(volatile memory),例如随机存取存储器(random
‑
access memory,ram),双倍数据率同步动态随机存取存储器(double data rate synchronous dynamic randomaccess memory,ddr sdram)。
63.接口模块108包括外部存储器接口、通用串行总线(universal serial bus,usb)接口等。其中外部存储器接口可以用于连接外部非易失性存储器(non
‑
volatile memory),例如只读存储器(read
‑
only memory,rom),快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid
‑
state drive,ssd);或者上述种类的存储器的组合,或者也可以是可移动存储介质,例如安全数字(secure digital,sd)存储卡等,用于扩展电子设备100的存储能力。
64.总线109用于耦接isp 103、npu 104、cpu 105、显示器106、存储器107和接口模块108。总线109可以是高级高性能总线(advanced high
‑
performance bus,ahb),也可以是其他类型的数据总线。
65.可以理解,图3所示的电子设备100的结构只是一种示例,可以是包含isp和npu的任意电子设备100,并不构成对电子设备100的具体限定,在另一些实施例中,电子设备100可以包含更多或更少的模块,还可以组合或者拆分部分模块,本技术实施例不作限制。
66.可以理解,电子设备100可以包括但不限于:膝上型计算机、台式计算机、平板、手机、服务器、可穿戴设备、便携式游戏机、电视机等。
67.在一种实施例中,电子设备100可以通过摄像头101、图像传感器102、isp103进行拍摄图像,具体的景物/人物通过摄像头101在图像传感器102上形成光学信号,图像传感器102将光学信号转换为电信号,并传递给isp 103,isp 103对对原始格式图像数据进行一系列处理,包括如人脸感兴趣区域提取和人脸对齐等。
68.对应于图2a,图4根据本技术实施例,示出了图像数据经过isp 103的人脸感兴趣区域提取和人脸对齐处理后使用npu104进行人脸特征提取和人脸识别的交互过程,包括下以步骤。
69.步骤401:isp 103获取视频流中的第n
‑
1帧图像。
70.可以理解的是,在一些实施例中,isp 103可以从图像传感器102获取视频流中的帧图像。图像传感器102也可以将视频流中的帧图像发送到存储器107中存储,isp 103从存储器107中获取视频流中的帧图像。此外,可以理解的是,视频流可以是高帧率的视频流,高帧率又被称为高帧率格式(high frame rate/hfr),是指以每秒大于等于30帧画面频率拍摄视频。例如,30fps、48fps、60fps。fps是图像领域中的定义,是指画面每秒传输帧数,即指动画或视频的画面数。
71.在高帧率人脸识别系统中,相邻两帧目标人脸图像的位置和姿态差别不大。可以使用上一帧的目标人脸roi和人脸仿射变换作用于下一帧的目标人脸。下文将具体介绍如何将上一帧的目标人脸roi和人脸仿射变换作用于下一帧的目标人脸。
72.步骤402:npu104从isp 103读取第n
‑
1帧图像。
73.可以理解,n为大于2的自然数。当n取2时,则npu104从isp 103读取第1帧图像。当n取3时,则npu104从isp 103读取第2帧图像。以此类推。
74.步骤403:npu104对第n
‑
1帧图像进行人脸检测,得到第n
‑
1帧图像的目标人脸roi的框选参数(下文简称第n
‑
1帧的人脸框选参数)。
75.例如,如图2所示,npu104对第n
‑
1帧图像进行人脸检测,得到框选参数:左上角顶点a11的坐标(x1,y1)和右下角顶点a12的坐标(x2,y2)。图2中虽然仅仅示出了一个人脸,但本技术技术方案可以适应于同时处理一张图像中多个人脸的情形。
76.可以理解,常见的人脸检测网络基本是cnn卷积神经网络,多个卷积算子在整个图像上进行卷积运算,形成不同特征表示的特征层,人脸检测网络由多个卷积层构成。常见的典型的检测网络如ssd(single
‑
shot detection),yolo(you only look once),mtccn(multi
‑
task convolutional neural network)等,可修改上述网络结构用于人脸检测领域。
77.本技术实施例中,npu104在运行cnn人脸检测网络后输出目标人脸roi的框选参数,例如,在给定xy坐标系下,目标人脸roi左上角顶点坐标(x1,y1)和右下角顶点坐标(x2,y2)。
78.如此,isp103便可以根据给定xy坐标系下的左上角顶点坐标(x1,y1)和右下角顶点坐标(x2,y2),框选出一个过左上角顶点坐标(x1,y1)且平行于x方向和y方向的两条直线,以及过右下角顶点坐标(x2,y2)且平行于x方向和y方向的两条直线,围成的预设尺寸的目标人脸roi。
79.此外,在其他实施例中,npu104在目标人脸检测过程中,直接确定roi 4个顶点坐标(x,y)。
80.步骤404:isp 103获取视频流中的第n帧图像。
81.可以理解,在其他一些实施例中,步骤404也可以发生在步骤405之后,步骤406之前的任意时段。
82.步骤405:npu104向isp 103发送第n
‑
1帧的人脸框选参数。
83.可以理解,本技术实施例中npu104对第n
‑
1帧图像进行人脸检测,得到第n
‑
1帧图像的目标人脸roi的框选参数后,向isp 103发送第n
‑
1帧的人脸框选参数。
84.步骤406:isp103利用第n
‑
1帧的人脸框选参数对第n帧图像进行人脸感兴趣区域提取,得到第n帧图像的目标人脸roi。
85.例如,如图2所示,isp根据第n
‑
1帧的人脸框选参数:左上角顶点a11的坐标(x1,y1)和右下角顶点a12的坐标(x2,y2),确定第n帧图像的目标人脸roib1的左上角顶点b21的坐标和右下角顶点b22的坐标,从而确定第n帧图像的目标人脸roib1。具体地,isp103可以根据给定xy坐标系下,第n
‑
1帧的人脸框选参数:左上角顶点a11的坐标(x1,y1)和右下角顶点a12的坐标(x2,y2),确定第n帧图像的目标人脸roib1的左上角顶点b21和右下角顶点b22,并框选出一个左上角顶点b21且平行于x方向和y方向的两条直线,以及过右下角顶点b22且平行于x方向和y方向的两条直线,围成的预设尺寸的目标人脸roi。
86.此外,在其他实施例中,isp根据第n
‑
1帧的人脸框选参数:roi 4个顶点坐标(x,y),确定第n帧图像的目标人脸roi的4个顶点坐标(x,y),并根据4个顶点坐标(x,y)围成的预设尺寸的目标人脸roi。
87.步骤407:npu104对第n
‑
1帧图像的目标人脸roi的人脸图像进行人脸对齐,得到第n
‑
1帧图像的目标人脸roi的人脸对齐参数(下文简称第n
‑
1帧人脸对齐参数)。
88.可以理解,npu104运行人脸五官关键点模型,得到人脸关键点坐标。根据人脸五官关键点模型输出的人脸关键点和提供的人脸模板进行仿射变换(warpaffine)求解矩阵得到仿射变换矩阵,该仿射变换矩阵即人脸对齐参数。这样将人脸调整到预定的大小和形态实现人脸对齐,由非正常视角变换到正常视角,实现人脸对齐。其中,仿射变换主要包括平移变换、旋转变换、缩放变换(也叫尺度变换)、倾斜变换(也叫错切变换、剪切变换、偏移变换)、翻转变换,仿射变换矩阵的尺寸一般是3*3的矩阵,包括平移、旋转和缩放系数等。
89.人脸五官关键点模型的输入是目标人脸roi,输出五官关键点的坐标序列。五官关键点的数量是预先设定好的一个固定数值,可以根据不同的语义来定义(常见的有5点、68点、90点等等)。
90.步骤408:npu104向isp 103发送第n
‑
1帧的人脸对齐参数。
91.步骤409:isp 103利用第n
‑
1帧图像的人脸对齐参数对第n帧图像的目标人脸roi中的人脸图像进行人脸对齐,得到第n帧人脸对齐图像。
92.例如,如图2a所示,第n
‑
1帧图像的目标人脸roi中的人脸图像经过人脸对齐计算得到人脸对齐图像a2的人脸对齐参数,isp103根据第n
‑
1帧图像的人脸对齐参数,对第n帧图像的目标人脸roi中的人脸图像进行人脸对齐,得到第n帧人脸对齐图像b2。
93.可以理解,与步骤406的技术方案类似,isp103可以将人脸roi图像通过仿射变化操作,将人脸调整到预定的大小和形态实现人脸对齐。在一些实施例中,isp103将人脸roi
图像的坐标乘以第n
‑
1帧图像的人脸对齐参数(仿射变换矩阵),便得到人脸对齐的图像。
94.步骤410:isp 103向npu104发送第n帧人脸对齐图像。
95.步骤411:npu104对第n帧人脸对齐图像进行人脸特征提取,得到第n帧人脸特征数据。
96.可以理解,在一些实施例中,isp 103可以通过卷积神经网络模型等对第n帧图像中的人脸对齐图像进行人脸特征提取。
97.步骤412:npu104根据第n帧人脸特征数据进行人脸识别。
98.isp 103可以通过卷积神经网络模型等对提取到的第n帧图像的人脸对齐图像的人脸特征进行人脸识别。
99.综上,人脸检测得出roi和人脸对齐得出仿射矩阵参数,传递给isp103,isp103在下一帧直接输出roi和人脸对齐后的图片给npu104做ai处理,包括人脸特征提取和人脸识别,相当于在下一帧端到端的算法处理过程中,npu104主要做人脸特征提取和人脸识别,降低系统延迟。
100.如果npu104支持多模型同时处理,对当前帧的处理,人脸检测和人脸对齐,人脸特征提取和人脸识别能分布到2个或多个npu104推理任务中,这样能最大化利用资源,降低系统延迟。
101.进一步,图5根据本技术的一些实施例,示出了一种isp 103的结构示意图。如图5所示,isp 103包括处理器1031、图像传输接口1032、通用外围设备1033、图像识别模块图像识别模块1034和通用功能模块1035。
102.处理器1031用于isp 103中的逻辑控制和调度。
103.图像传输接口1032用于图像数据的传输。
104.通用外围设备1033包括但不限于:用于耦接isp 103的各个模块的总线及其控制器,用于与其他设备耦接的总线,例如高级高性能总线(advanced high
‑
performance bus,ahb),可以使isp与其他设备(如dsp、cpu等)进行高性能通信;用于监控isp工作状态的看门狗单元(watchdog)。
105.roi模块和仿射变换模块1034,用于根据提取的roi框选参数提起roi区域,根据提供的仿射变换矩阵得到对齐的图像。
106.通用功能模块1035用于对输入isp 103的图像进行处理,包括但不限于:黑电平补偿(black level correction,blc)、坏点矫正(badpixel correction,bpc)、镜头矫正(lens shading correction,lsc)、去马赛克(demosaic)、降噪(denoise)、自动白平衡(automatic white balance,awb)、颜色矫正(color correction)、伽马矫正(gamma correction)、色域转换等。当图像传感器将raw格式的图像数据传递给图像信号处理器1030时,先由通过功能模块进行处理。通用功能模块可以包括raw域处理模块、yuv域处理模块和rgb域处理模块,图6示出了一种通用功能模块对图像数据进行处理的过程示意图,包括以下步骤。
107.raw域处理模块对图像数据进行坏点矫正、黑电平矫正和自动白平衡。
108.经过raw域处理后的图像数据经过rgb插值后得到rgb域的图像数据,再由rgb域处理模块对rgb域的图像数据进行伽马矫正和颜色校正。
109.经过rgb域处理的图像数据经过色域转换得到yuv域的图像数据,再由yuv域处理
模块对yuv域的图像数据进行降噪、边缘增加、亮度/对比度/色度调整。
110.可以理解,图像数据经过通用功能模块处理后即可输出到roi模块和仿射变换模块1034进行图像数据填充。其中,输出到roi模块和仿射变换模块1034的图像数据色域可以是rgb,也可以是yuv,还可以是灰度图像,本技术实施例不做限制。
111.可以理解,图7所示的isp 103的结构只是一种示例,本领域的技术人员应当理解,其可以包含更多或更少的模块,也可以组合或者拆分部分模块,本技术实施例不作限定。
112.本技术实施例还提供一种片上系统,图7根据本技术的一些实施例,示出了一种片上系统的结构示意图,如图7所示,片上系统1000包括isp 103、npu 104、cpu 105和存储器107。isp 103、npu 104、cpu 105和存储器107通过总线109耦接。isp 103可以对图像进行人脸感兴趣区域提取和人脸对齐,输出人脸roi和矫正后的人脸图像,npu 104从isp 103读取人脸感兴趣区域提取和人脸对齐后的图像进行人脸特征提取和人脸匹配,如此缩短图像处理时间,减少4个阶段算法处理串行导致的端到端延迟,提高了实时性。
113.可以理解,图7施例中,可以增加或减小一些部件,例如,增加总线控制单元、中断管理单元、协处理器等,还可以拆分或者组合一些部件,例如,将isp103和npu 104集成在一起,本技术实施例不作限制。
114.本技术公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本技术的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
115.可将程序代码应用于输入指令,以执行本技术描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,处理系统包括具有诸如例如数字信号处理器(digital signal processor,dsp)、微控制器、专用集成电路(application specific integrated circuit,asic)或微处理器之类的处理器的任何系统。
116.程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本技术中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
117.在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(cd
‑
roms)、磁光盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)、电可擦除可编程只读存储器(electrically erasable programmable read
‑
only memory,eeprom)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
118.在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
119.需要说明的是,本技术各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本技术所提出的技术问题的关键。此外,为了突出本技术的创新部分,本技术上述各设备实施例并没有将与解决本技术所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
120.需要说明的是,在本专利的示例和说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
121.虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。