出品 | 智东西公开课
讲师 | 小钴科技CTO Richard Li
提醒 | 关注智东西公开课公众号,并回复关键词 嵌入式05,即可获取课件。
导读:
6月22日,小钴科技CTO Richard Li博士在智东西公开课进行了嵌入式AI合辑第五讲的直播讲解,主题为《基于嵌入式AI模组的3D视觉应用开发实践》。
在本次讲解中,Richard老师从3D视觉在嵌入式设备中的应用现状、高精度3D人脸识别算法设计、结合小钴科技嵌入式AI视觉模组及3D人脸识别应用开发等方面带来了系统讲解。
本文为此次课程主讲环节的图文实录:
正文:
大家好,我是小钴科技CTO Richard Li,很高兴在智东西公开课和大家一起分享今天的课题。我今天分享的主题为《基于嵌入式AI模组的3D视觉应用开发实践》,主要分为以下4个部分:
1、3D视觉在嵌入式设备中的应用现状与挑战
2、面向嵌入式设备的高精度3D人脸识别算法设计
3、AlphaLook 嵌入式AI视觉模组详解
4、基于嵌入式AI模组的3D人脸识别应用开发实践
3D视觉在嵌入式设备中的应用现状与挑战
首先,我们先来看下什么是3D视觉?3D视觉是在2D视觉的基础上加入深度信息,突破了2D视觉的技术瓶颈。3D视觉主要是以3D点云数据作为输入,提取出图像的立体特征,从而实现3D视觉的算法,相较于 2D识别算法它的区分度更强、误识率更低,目前比较通用的3D视觉算法包括3D活体防伪、3D人脸识别算法,3D人头检测,3D姿态识别、3D手势识别、3D量体、3D测量、3D场景重建等。
3D视觉使得机器能够像人类一样具备三维感知能力。与2D相比,3D有哪些优势呢?我们可以从6个方面来区分:
1、从平面度,3D可以区分出平面和立体, 2D只能看平面,不能看出图像的立体信息。
2、3D可以测量与形状相关的物体,包括物体表面的深度、平面度、厚度、表面角度、体积等方面。
3、3D可以测量出物体的对比度,因为2D在区分图像时,依赖于光照、颜色、灰度变化。但3D因为有深度信息,它可以在不同的光照、颜色和区分度情况下都不受影响,所以3D的对比度也不会受影响,它是不以光线颜色变化而变化。
4、3D可以轻松区分出接触性的两个物体,比如人头检测算法、人体检测算法,如果在两个很相近的人身上,2D算法的bounding-box基本上会框定成一个框,很难区分出来。不过因为3D有深度信息,可以轻松区分出两个物体之间的边缘,从而区分出两个接触的物体。
5、3D可以区分出相同颜色的物体和背景。
6、精度和可重复性,因为2D识别算法依赖于2D摄像头,它在精度的可复制性方面比较差,同样的算法在不同的摄像头上,可能精度的表现就有所不同。3D算法往往会搭配定制的3D摄像头,实现硬件的摄像头模组和算法的配对,所以它在精度和可重复性方面做的比较好。
下面看下3D视觉在嵌入式设备中的应用的现状,因为得益于3D技术的深度感知和高精度等特点, 3D人脸识别在一些设备终端上的应用占比越来越高,比如17年只占32%,在2020年预计可以达到58%,包括人脸支付,比如支付宝和微信里的人脸支付机都采用了3D人脸识别算法,这足以表现出3D视觉在应用端占比越来越高,越来越受市场的欢迎。
那么小钴的3D技术如何呢?下面我们来对比下,目前市面上的3D技术主要有三种,一种叫双目成像,就是双目立体,第二种叫3D结构光,第三种就是ToF,即Time of Flight。
小钴科技是双目散斑结构光,区分于上面三种3D技术,我们分别从原理、弱光环境、强光环境、深度精确度、分辨率、响应时间、识别距离、成本、功耗等各个方面来做下横向对比。
双目成像的原理是双摄像头仿照人眼的三维立体反射做的双目立体估计,从而呈现出深度信息。3D结构光的原理是将3D结构光进行条纹编码的投射,这个投射带一定的编码光,当编码光打到物体表面时,会呈现出类似于网格的特性,这些网格遇到凹凸不平的物体后,会呈现出高低和宽窄的区分,然后通过接受器来区分出这些编码光达到不同物体上的变化,从而探视出整个物体表面的深度信息。ToF是采用了红外光的反射时间差,光通过反射到物体表面在接收回来时总共的时间差除以2,以此来探视出整个物体表面的深度。
通常双目成像在弱光下表现非常弱,这是双目成像的一个比较大的弱点,但是它在强光环境下表现良好。3D结构光的弱光表现非常好,但是在强光环境下非常弱,特别是室外光线。ToF基本上不会受光源影响,比较稳定。双目成像和3D结构光在深度方面精度性比较高, ToF的精度比较低,这主要是由于ToF整个生产工艺的问题。
在分辨率方面,双目成像和3D结构光的分辨率会比较好,ToF的分辨率相对较低。在响应时间方面,双目成像时间比较一般,最快的是ToF,结构光需要有编码器要进行计算,所以会比较慢。在识别距离方面,双目成像和双目摄像头之间的距离越窄,它的识别距离就越短,结构光的识别距离相对比较短,ToF的距离相对比较远,一般ToF可以识别1-3米甚至5米的距离,结构光一般在1米范围内。在成本方面,双目成像成本比较低,结构光一般,ToF因为器件还没有成熟,没有达到很强的量产条件,所以成本比较高。在功耗方面,双目成像比较低,3D结构光一般, ToF也比较低。
综合来看,双目成像的缺点是在弱光环境下表现非常差,它的精确度相对较好,结构光的缺点就是易受光源影响,特别是室外光线, ToF的最大的缺点是分辨率差,同时成本比较高。
小钴科技是双目散斑结构光技术,结合了双目成像和3D结构光两种技术特性合并而成的一种技术。这个技术采用的是双摄像头,同时加上条纹斑点编码,是散斑结构光,不是编码结构光,所以散斑结构光是给双目成像做的深度补偿以及补偿在室内弱光线情况下的一些性能,它结合了双目成像和结构光的两种技术优势。
目前,3D视觉在嵌入式设备上的应用现状如何呢?以小钴科技在整个业内所做出来的产品为例,我们的3D视觉技术已经应用到各种嵌入式设备中,比如3D家用门锁、3D玻璃锁、3D人脸消费机、3D考勤门禁机、3D智能门、3D智能储物柜以及3D收银机等,这些都是内置了小钴的3D人脸识别和3D活体防伪算法。3D识别已经深入到我们生活的方方面面,涵盖消费、通行、支付等方面。
3D视觉在嵌入式设备中应用有哪些挑战呢?主要有以下几个方面:
-3D的数据很难获取,它不像2D数据那么容易获取;
-3D算法需要配套的3D摄像头模组;
-3D算法需要深度信息,所以芯片必须要支持深度值计算;
-3D模型很难训练;
-3D算法计算量大,需要很强的计算能力的芯片来支撑;
-3D算法对光线、高度、姿态、配饰的鲁棒性也有要求。
那么怎样去解决上面这些问题呢?
面向嵌入式设备的高精度3D人脸识别算法设计
小钴科技采用了高精度的3D采集设备,以及我们自己生产的3D摄像头,并且采集了大量的3D数据,并且这些数据采集时采用不同的角度、距离、光线,配饰,来采集各个角度的3D图像及点云信息,同时包括摄像头上的深度信息,并内置了一些3D模拟器,根据采集的数据来生成数百万张3D图像,以及深度信息和点云信息。
结合这些信息和数据训练3D活体防伪算法,它主要是采用3D点云作为算法输入,通过预处理和特征的提取,实现特征融合。从上图可以看到,上面是红外的,下面是深度的,都进行人脸关节点提取以及预处理,然后进行特征提取,通过一个网络实现特征融合,融合后通过分类网络来区分出真实和虚假人脸,这里采用了大量的数据进行训练,包括已知的假的人脸和真的人脸,这样可以区分出很多种情况。
小钴科技的3D活体算法目前可以防止像打印照片、手机照片,3D打印面具,甚至是硅胶面具的攻击。同时也研发了3D人脸识别算法,采用3D点云数据作为输入,提取立体人脸特征,实现3D人脸识别算法,这个识别算法区分度更高,误识率更低。在做算法时,通常是采用2D和3D结合的方式,首先进行3D人脸录入的建模,计算偏转角度,以角度来旋转投影,然后录入人脸,在人脸录入时再进行特征提取。另外一方面,结合深度信息再进行特征提取、特征融合和计算,最后比较它的相似度。
这与普通2D人脸识别有非常大的区分度,因为2D人脸识别主要是基于一张人脸图像,来进行特征提取。而3D人脸识别在整个过程中加入了点云信息,在点云信息融合过程中,会考虑到不同角度、纹理及特征点的定位,这样使得算法更具鲁棒性和区分度。
目前人脸识别算法可以实现的误识率为1:100万,识别角度在±15度,得益于双目散斑结构光技术, 3D人脸识别算法在室内外都可以使用,不管是各种光线以及各种角度,同时针对眼镜、围巾、帽子等配饰也能够实现无障碍识别。
下面看下3D人脸识别方案对比,小钴科技和友商对比优势在哪里?主要体现在三个方面,第一是姿态鲁棒性,保证识别准确度情况下,可兼容15度的姿态偏转,同时可以兼容像眼镜、墨镜、帽子等装饰物的影响;第二是光线的适应性,光线的适应性得益于双目散斑结构光技术,可以不受光线影响,实现室外光、暗光、强光条件的识别;第三是大人库的精准度,因为在做识别时采用3D人脸识别,所以融合了点云信息特征,加上深度特征,作为识别特征区分度的一部分,这部分精确度会更高,是2D误识率的1%,可以提高识别的精度。
AlphaLook 嵌入式AI视觉模组详解
下面介绍下AlphaLook嵌入式AI视觉模组,首先讲下双目散斑结光3D摄像头,由上图可以看到摄像头主要有三个镜头,还有两个LED灯组成,最左边和最右边是两个红外摄像头,这两个摄像头来完成双目的立体估计,中间 RGB摄像头不作为算法的采集,只是作为图像显示,以及可能的比如在支付里,必须要用2D可见光人脸识别,那这时RGB摄像头就可以用上。红外的LED用来红外的补光,旁边是结构光投射器,这就是散斑结构光的投射器,用来进行结构光的深度补偿,可以在暗光的条件下实现有效的深度补偿。
右边是门锁场景,它要求整个的宽度要足够的窄,所以在定义时,整个宽度是55毫米,高度是12毫米,保证能够放到一把锁里面。
由于摄像头采用双目散斑结光技术,它结合了双目和结构光技术的优势,可以无惧强光、暗光、逆光、侧光、顶光等各种光线影响。因为这个摄像头在定义时是面向门锁行业定义,所以在做门锁时有一个痛点,一家人有高有低,在这种条件下,一把锁能否满足全家老小的身高要求,让他都可以进行轻轻松松的进门。
我们的摄像头可以解决1.2m~1.9m视场角的全身高识别,视野有效垂直视角达到78度,在40~50cm左右可以达到1.2m~1.9m的识别;在50cm的情况下实现0.1毫米的自动校准。门锁在不同的震动情况下,往往精度会受到损失,这时采用自动校准,可以针对深度损失的情况下进行深度补偿。
下面介绍下整个模组方案,模组叫AlphaLook 3D mini,可以看到上图右边的架构图,里面采用了两颗英特尔的VPU,一颗是英特尔RealSence VPU,第二个是英特尔Movidius VPU用于做AI计算。通过RealSence VPU实现双目立体深度以及IR LED、IR project的控制、深度的补偿、开关控制,以及包括像摄像头的部件,摄像头的电流、启动等。Movidius VPU主要是用来做3D算法的移植,包括3D活体识别上检测,3D质量判断以及3D人脸识别特征提取。同时RGB摄像头通过ISP实现图像处理,图像处理之后通过USB2.0接口传输出去,可以作为图像的预览,还可以作为3D支付里面的人脸识别去使用。
通过RealSence和Movidius双芯片,实现人脸识别算法和深度计算。搭载3D人脸识别算法,识别速度在700毫秒左右,同时采用了低功耗设计,整机工作时的功耗,基本在2~3W左右,不使用时,可以直接断电,从断电启动到完成,通常是两秒钟左右。在人脸库方面,云端配备了3D人脸识别算法的云端算法库,可以实现10万人,本地可以支持1000人的本地特征提取,通过云边结合的方式实现更大场景的3D人脸识别方案。硬件接口包括串口和USB2.0,USB2.0用来做RGB图像的预览,串口则主要是用来作为Movidius里3D算法的一个协议接口。
基于AlphaLook 3D mini模块,客户可以快速的开发云边结合的AIoT落地方案,比如在本地做图像抓取\深度计算、人脸防伪、3D特征提取、特征匹配、3D内容录入等工作。同时通过串口和USB2.0实现算法API和视频流的调取。
在主控端可以采用英特尔、ARM或者ATM32的单片机,实现整个网络控制的人脸特征上传和下载。在云端可以实现10万人特征比对,数据库管理、特征的上传和下发,在手机端可以实现用户管理、记录管理、系统配置和固件升级。目前我们的云边结合方案在家用锁、酒店锁和玻璃锁等各个场景都有应用。
小钴科技不仅仅锻造了AlphaLook 3D mini的模块,同时也面向不同场景需求打造了不同的3D模组,比如3D支付摄像头,3D宽动态支付摄像头,同时还做了3D的整体化,做了带屏的方案和带猫眼的方案3D plus;也做了3Dmini2,用来做3D算法更高层次的计算,模型会更大,应用场景会更多,比如3D姿态识别、3D手势识别、3D人头检测等算法;后面是3D mini3,这是一个纯双目的3D方案,相当于用单芯片实现整个3D识别算法。
面向嵌入式AI模组的3D人脸识别应用开发的实践
下面主要围绕两个方面展开,第一方面是3D人脸识别模组的开发过程,梳理为6个步骤:
1、嵌入式硬件驱动调试;
2、数据通路的优化,打通3D数据流的数据通路和缓存处理,后面根据模型硬件的资源选择合适的摄像头输出分辨率、帧率和格式,然后充分发挥硬件计算资源的特点,解决存储墙问题;
3、模型压缩,比如模型裁剪或直接采用轻量化的小模型,也要平衡模型的大小、推理时间和准确度,所以模型需要适合整个场景应用,同时要面向嵌入式的AI芯片去做一个折中,尽量使模型在内存里放得下,推理时间和准确度是实际应用场景可以接受的,需要考虑NPU支持,模型中使用的层、操作需要针对性调整,平衡可实现性和模型准确度等方面;
4、模型转换量化,转换模型后,使用工具对量化后模型进行数值误差评估。对于精度损失严重的层、操作替换,量化后的一些模型替换之后,要落实到场景中实现完整的算法应用流程,在流程通跑完之后,去评估模型的累计误差情况,如果误差累计比较高,就要考虑这个模型是不是要重新训练,如果比较低,可以找一些替代性的层换掉,达到速度、模型体积以及最终准确度的平衡;
5、模型移植,模型全部确定好、压缩好,转化好后,用工具直接进行移植,移植完之后可以直接运行;
6、做好应用接口封装,结合应用功能需求,对算法接口、 应用接口进行详细实现,面向模组的串口或者USB接口实现相应的算法对接协议。
第二部分是3D人脸识别算法的产品开发过程,首先是产品定义,要调研用户需求,做好定义和评审;第二步针对这些定义用户、评审方案进行外观的结构设计,然后做内部的结构设计;第三步根据结构做硬件的设计,包括PCB设计 、生产、贴片等;第四步是驱动调试,包括像摄像头和外围的一些设备,驱动调试之后再进行嵌入式模组的协议对接,把算法调用起来,后面进行软件开发;最后一步是云平台开发,也就是要接入到我们平台里面,比如像和社会连接的PaaS层,和场景所定义的SaaS,这两个层都需要进行对接,同时有一些用户需要进行智能家居、智慧园区的设备应用,它需要有用户的录入口,可能需要在APP或者小程序上工作。
上图是一个产品的开发过程,以一把门锁为例,首先进行3D人脸识别算法和3D算法硬件移植,然后做成ERP模块,然后做类似基于ATM32的主控开发模块,进行协议对接,对接完之后,再加上锁体和外壳,实现整个3D人脸识别智能锁的一个集成,这就是整个锁的开发流程。
以上就是我今天分享内容,谢谢大家。
https://zhidx.com/p/234431.html
Created by Tan KW | Aug 15, 2024
Created by Tan KW | Aug 15, 2024
Created by Tan KW | Aug 15, 2024
Created by Tan KW | Aug 15, 2024