第三十期回顾
《安创“芯”视野》第30期,邀请到亚马逊云科技机器学习高级产品经理李媛,她为大家介绍了如何借助亚马逊云科技的AI/ML服务,在没有机器学习专业团队的情况下轻松打造IPC的AI能力,开启产品及运营创新模式。
回放视频链接:https://aijishu.com/l/1110000000221777
大家好。我是李媛,来自亚马逊云科技,负责机器学习产品方向。很高兴能够有机会和安创加速器生态的各位朋友一起交流,如何在IPC行业里运用一些开箱即用的AI服务为IPC产品增加创新。
在智能摄像头领域,无论是IP Camera或者是Smart Camera,相信大家都并不陌生。在亚马逊电商平台搜索IP Camera或者Smart Camera,就会看到各式各样的摄像头。其中主要有两类形态,一类是我们常说的智能摄像头,另一类是目前非常流行的产品形态—智能门铃,即Smart Doorbell。
一份来自IDC的关于智能硬件的调查数据显示,在2019年到2024年的出货量预测里,智能家居硬件的出货量是呈现逐年递增的趋势。其中,占比最大的是Smart Camera,其次是智能门铃。特别是从每年的年均复合增长率来看,智能门铃的年均出货率增长率是非常高的,年均可以达到35%。所以,这个行业在全球市场有着非常广阔的机会。在全球的IPC产品里,涌现了很多国内出海的品牌以及来自海外的品牌,特别是在中国长三角和珠三角地区,有着非常多的IPC公司。
虽然有着巨大的市场机会,但由于玩家众多、头部品牌逐渐形成、以及硬件产品同质化等原因,这就使得行业里一些现存企业不得不在激烈竞争的市场环境中寻找更多突破:例如,如何从软件端和硬件端去提高产品的竞争力、越来越重视IPC后端的运营能力、如何降低现有成本支出从而控制成本。亚马逊云科技有非常多的IPC客户都在不断地探索新的利润点,以便在一个非常大,同时同质化竞争又非常严重的行业里寻找最容易做出一些差异性的方面去做创新,找寻新的利润增长点。
在IPC行业,常见的云端创新场景大体可以分为两大类:一类是在产品本身的功能点或者是特性上去做一些创新,比如增加一些AI的智能识别功能或者是智能语音。因为在人机交互里,语音是最自然的方式。在AI领域,很多不同企业都做了不同的探索。比如,一些海外的家居安防企业做了人形检测、车辆检测以及快递包裹检测等等。对于这些公司来讲,AI产品就是一个额外的盈利点。在智能语音方面,有很多深圳的智能语音公司生产了大量的智能硬件,并且接入了Alexa这个平台。无论是智能灯还是耳机,人们都可以通过语音去做控制,这也是一个常见的应用。这些都是在产品功能方面做出的创新。
另一类创新是基于数据领域的创新或者是基于数据领域的一些精细化运营和探索。比如,基于IoT的直连数据、云端存储或者是使用行为规律数据;还有,比如在客服领域,针对用户的使用做分析,分析退货率或者差评究竟来自于哪里,或者是一些设备的故障可能出现在哪里。基于这样的前提在设备使用过程中,对其本身的很多数据去构造一个云上即数据湖,从而挖掘数据的价值。这是另外一类做IPC云端创新的场景。就目前来看,这个行业是机遇与挑战并存的,现在越来越多的厂商也都在探索一些创新功能点以及基于数据的精细化运营以使得自己在竞争里获得一些优势。
在IPC行业里,一个叫做Ring的公司的一些产品,就代表了针对To C端当下比较有代表性的创新产品形态。譬如非常极致地利用云带来了一些包括云存、视频回放以及动作捕捉、识别陌生人宠物快递人员、帮助判断是家人来了可以开门等等诸多功能。而这些功能背后其实都离不开云端的AI能力。
对于在AWS上做一整套的IPC端到端的解决方案,大家不要觉得这好像很复杂,其实都是一部分一部分来逐步部署的。这里分了几类,一类是基于KVS(KVS就是Kinesis Video Streams,是AWS平台上一个完全托管的流媒体服务,可以把视频流设入到云端),它包括了基于KVS去实现IPC云端的存储和回放、基于WebRTC来实现一些实时通讯、基于一些语音功能去跟Alexa做交互、基于S3做存储、还有一些数据分析、基于云端的AI方案等等。由此可见,整套方案里确实包含了很多部分,但今天我们就主要讲AI这一部分。
那么具体是如何实现基于云端的AI呢?左边是一个摄像头端侧。端侧的视频流一方面会基于KVS推流到云端,另一方面会在端测做动作识别即motion detection。检测到这个motion之后,会抽取视频流的关键帧,把关键帧的图片或者短视频片段送到云端去做AI分析。而AI分析的部分通常会有两种做法,一种是通过API调用方式直接调用开箱即用的服务Rekognition,另一种是企业自己构建AI模型并托管在机器学习平台 SageMaker上。它们在云端会去做一些AI分析,例如:是否检测到陌生人还是家人,或者是否检测到出现人脸、宠物、包裹、动作等等。
关于AI的实现部分,上图是AWS平台上机器学习服务的一个三层技术堆栈。如果有IPC厂商是刚开始接触AI,或者只是想要在它们的业务场景里给摄像头增加AI功能。那么,位于最上层的这些人工智能服务就适合于那些还没有自己的专业机器学习团队,但却想给产品或者业务增加AI能力的企业;中间的SageMaker是机器学习平台,它是供算法人员或者开发人员使用的,以便提高他们在开发机器学习模型以及部署时的效率;此外,一些公司有着非常专业的庞大AI团队,那他们就可以利用最下层的基础设施层来完成其机器学习的任务。
人工智能服务
这层服务有几个特点。一是完全托管、开箱即用。我们可以看到,这些服务覆盖了视觉、语音、文本等等各种领域。在实际使用过程中,只需要通过一个简单的API 调用就可以使用了。此外,这一层的很多服务,无论Rekognition或是像Comprehend在做自然语言理解服务时,也支持在标准API服务之外进行一些定制开发。还有一类AI服务,是跟应用相关的服务。比如个性化推荐Amazon Personalize,是基于亚马逊电商的技术,这相当于一个自动学习工具,你可以用自己的数据去训练出一个你自己专有的模型,并且它不需要专业机器学习人员来做这个事情。最后,这层的AI服务有些是深入行业的端到端解决方案,比如工业领域的5项AI服务和医疗健康领域的服务。
Amazon Rekognition: 图像及视频服务
Rekognition分为两部分,一个叫Rekognition Image,是图像处理服务;一个叫Rekognition Video,是视频服务。我们来看一下Rekognition有哪些功能。左上角最基本的功能叫对象与场景检测,它可以识别图像里有哪些物体以及是什么样的场景,还能做一些行为检测。第二个功能在很多UGC场景或者很多media场景里使用得非常多。它能够检测图片里可能的存在一些不安全内容比如情色、暴力、烟酒、不当的宗教内容等等,应用于需要对内容进行审核的情况。这在短视频或是图片社交等领域几乎是一个必备的功能。第三个是面孔检测与分析。它会检测一张图片里是否含有人脸,并且给出这张人脸的一些信息,例如他的表情、年龄段以及五官位置等信息。最右边是名人识别功能,Rekognition产品团队本身有一个非常大且不断完善的名人库。如果我们给到一张含有一个名人的图片,它会告诉你这个名人是谁。第二行第一个是面孔比较与查找,即去做一些身份识别以及身份认证工作。其次是识别图片中的文字,比如对一些车牌或者驾照信息或者是对身份证上的文字做提取。接着是个人防护装备检测,即PPE检测,最开始较多应用于一些生产制造场景或者有安全着装需要的场合里。在这种场合下,你可以根据实际需求设置比如佩戴口罩是必须的或者说头盔和手套都是必须的,那它就会去检测工人们是否佩戴了这些必须装备,同时也会告诉你其佩戴是否正确,因为有可能图片里确实有一个头盔,但是头盔不是戴在人的头上,那么这就是一个不安全的着装。这时它会告诉你两个点:一是是否佩戴了,二是是否佩戴到了正确且合适的位置。接着的功能叫Custom Labels,自定义标签。目前Rekognition标准API支持2000多种标签,但是物体那么多,难免存在一些特殊情况。比如,在特定的行业领域或者特定的环境下,需要被识别的标签没有在标准API里面,这时就可以利用自定义标签这个功能去定义需要被识别的标签。最下面3个功能是Rekognition Video特有的。在视频场景里,除了可以检测上面的这些内容,它还有几个在视频方面特有的功能。比如,在视频里我们可能会有一些提示帧用来提示该在哪些地方插入广告,或者在视频里需要做轨迹检测之类的。这时候,在Rekognition video里,它都可以开箱即用,从而去进行分析。
IPC场景会涉及到的功能
第一个是对象与场景检测,这在IPC里用得最多。无论我们去做人形检测还是去做车辆检测都会用到这个功能。它的使用过程其实就是一个简单的API调用。比如,只需要提供一张图片就能拿到一个这张图里关于物品和场景检测结果的信息, 里面包含了检测到的标签以及它的置信度。因为对象检测会出现一些需要自定义的标签,这时就可以用Custom Labels。现在Custom Labels可以支持单标签分类,比如应用在生鲜超市场景里去区分哪些是半成品食品,哪些是生鲜食品;也可以支持给图片打多种标签的分类;同时,通过给不同的对象标出bounding box也能实现对象识别。就在IPC企业里的使用频率而言,对象检测是使用非常多的。
第二类是面孔检测与分析。面孔分析这个API本身会告诉你这是男性还是女性、他的年龄段、他的表情、是否戴了眼镜之类的。对于有图片集的场景来讲,就可以根据这些图片信息去做特定的检索,比如检索微笑场景,然后去制定特定的相册合集或者回忆相册。
还有一类IPC使用比较多的场景是用作身份识别。这会包括两种细分情况,一种是在人像集中进行搜索比较,另一种是人和证件的比对。对于在大型集会等需要对人员进行管控的场景,它的实现手段是在后台把画面里的人脸和一个人脸集做比较。例如,关于预先登记是有一个face collection集合的,那如果要判断是否有进行预先登记,就可以把这张人脸与既有的集合做比对,从而做出身份识别。另外一种使用场景是人证比对。比如,去年疫情导致很多有远程考试的机构需要进行在线身份核验,它使用的是人和证的比较,所以它其实应用的是Rekognition后面的 Compare Faces这个API来实现人和证的比较的。
此外,像前面提到的考试证件识别场景,除了基于人脸的比对信息,可能很多时候还需要去收集这个人的一些证件信息例如驾照信息、身份证信息或者是护照信息。那么,就可以直接识别图片里面的文本信息从而在数据库里进行存储,就不再需要像从前一样做手动输入了。这也是Rekognition文本识别功能可以做到的。
在工业领域的AI服务
除了消费场景下的IPC,在工业领域也有越来越多基于智能摄像头的应用。我们来看下上面的这个工业AI服务领域。左边的Panorama有两个服务,它有一个硬件设备,也提供一个SDK。它与右边的Lookout for Vision都是和计算机视觉相关的。中间两个工业服务Monitron和Lookout for Equipment是对设备传感器数据进行异常发现以及预测性维护的。关于IPC相关的工业领域摄像头,它会涉及到这两个框里的服务,即Panorama和Lookout for Vision。
Lookout for Vision这个服务的名字有点长。其实Lookout是小心的意思,它是用来做工业质检的。也就是说,在工业生产环境或者是在一些制造业、零售业等各种不同的工业场景下,可以通过视觉图片来检测它的一些缺陷。因为其实质检对于比如汽车或者半导体等相关行业来说都是非常重要的一个环节,相较于人工检查,利用机器做检查的好处更明显:一来机器不用下班,二来机器的效率比较高,三来检查结果的一致性也比较强。Lookout for Vision其实是一个AI SaaS服务,它的使用方式与前面的Rekognition的Custom Labels功能非常类似。比如,对于正常的图片,我们会给它一些正常图片的数据集;对于异常的图片,会给一些异常的数据集。那么,基于这个,它就能自己学习出一个模型来。其中的好处是它需要的数据非常少,最少30张就可以开始构建模型进而检测模型的效果。
这是在工业领域通常使用比较多的场景类型的几个例子。一是生产线上的缺陷检测,检测它是否有划痕或者错位之类的;另外一个是零部件缺失的检测,比如说我们在装药品胶囊的时候可能有某个没有装到,或者做一些输液包的时候可能会出现有气泡的情况,这时通过视觉就能检测出它的异常;它还能解决产品一致性的问题,比如说右边的铜缆出现了产品不一致的情况,都可以通过这种 AI服务很方便地来实现。
机器学习服务
那么,除了标准服务外,企业可能会有一些需要自己定制的服务。比如,想要做老人摔倒的检测或者做婴儿快要爬出床的检测,这时候,企业就会需要自己去构建模型。对于需要自己构建模型的企业,亚马逊云也有一个PaaS机器学习平台服务叫SageMaker。SageMaker可以提供非常大的灵活性,一方面它提供给你非常大的构建模型的灵活性,另一方面它又极大地提高了算法科学家构建整个机器学习的效率。SageMaker平台里面的功能组件非常多,也是我们非常重要的一个服务,而且每一年都会不断地更新迭代出更多新的产品功能。
大致来说,它的功能可以分成四个阶段,这与机器学习的项目周期是一致的,即从数据准备,到模型构建,模型训练,超参数调优,再到模型部署与管理。SageMaker在每一步都有相应的功能组件提供给大家使用,以便提高我们在机器学习开发的效率。
几个关键功能
首先介绍的功能是数据标注。如果要企业自己构建模型,非常重要的一步就是要准备数据集,并且给这些数据打标签。无论是做分类、做目标检测还是画bounding box,都需要给数据打标签。只有基于打过标签的数据集做机器学习才能构建出模型。但是,给数据打标签向来是一个非常烦琐且非常花时间的任务,尤其当你的数据集非常大的时候。SageMaker的打标签工具叫做Ground Truth。Ground Truth支持几种不同的使用方式。一方面,它内置了一个打标签的工作流,可以让我们自己内建的私有团队来打标签,无论是公司内部的人还是我们自己指定的人都可以。另一方面,它支持亚马逊Mechanical Turk众包平台。或者你也可以通过AWS Marketplace去寻找这种合作商。这些都是通过人力的方式实现的,但是它还有一个非常好用并且受到我们很多客户喜欢的功能,即自动打标签功能。比如要打10万张甚至上百万张图片的时候,这对于很多头部客户来说是非常常见的。这时候全部靠人力来完成其实挺花时间的,但如果启动这个自动标记功能的话,它会基于前面打标签的部分结果去自己训练出一个模型,然后通过模型用机器的方式去打标签,从而降低数据标记的成本。
这是Ground Truth标记任务的几种类别。对于图片任务,它支持图像分类、边界框语义分割;也支持文本分类、命名实体;另外也可以自定义打标签的任务。像前面提到的基于小量数据集很快进行自动化训练模型的比如Rekognition 的Custom Labels或者 Lookout for Vision,它们都跟Ground Truth有非常好的集成。如果数据本身已经用Ground Truth打好标签了,就能很方便地导入到Custom Labels直接开始自动化训练。所以,这是自己构建模型时非常重要的一个步骤,也是 SageMaker的功能之一。
根据业务需求和团队组成选择不同算法来源
既然是自己训练模型就有算法选择问题。SageMaker它可以支持4种方式。第一种是内置算法。我们在SageMaker里提供了不同种类的内置算法。比如与视觉相关的图像分类或者对象检测、语义分割,都有SageMaker内置的算法,并且都跟SageMaker本身做过优化和适配。第二种是支持把比如在GitHub上找到的一些开源算法直接放在SageMaker上来训练,会利用到它的免运维和全托管的机器学习环境。再有就是也可以自己打一个docker。假设我们不是用常用的TensorFlow和PyTorch这些框架,我们有自己的框架,那也是可以支持的。最后一种是可以把在SageMaker的marketplace应用市场上第三方的算法和模型直接调来在SageMaker上使用。而且,如果我们真的自己开发了一个很有意思或者很有价值的模型,那也可以放在第三方应用市场上进行售卖,也算是增加一个创新性的收入来源。
既然是自己训练模型就有算法选择问题。SageMaker它可以支持4种方式。第一种是内置算法。我们在SageMaker里提供了不同种类的内置算法。比如与视觉相关的图像分类或者对象检测、语义分割,都有SageMaker内置的算法,并且都跟SageMaker本身做过优化和适配。第二种是支持把比如在GitHub上找到的一些开源算法直接放在SageMaker上来训练,仅仅会利用到它的免运维和全托管的机器学习环境。再有就是也可以自己打一个docker。假设我们不是用开源的或者常用的TensorFlow和PyTorch这些框架,我们有自己的框架,那也是可以支持的。最后一种是可以把在SageMaker的marketplace上第三方的算法和模型直接调来在SageMaker上使用。而且,如果我们真的自己开发了一个很有意思或者很有价值的模型,那也可以放在第三方应用市场上进行售卖,也算是增加一个创新性的收入来源。
在算法和模型训练之后,就会存在在线推理集群问题。训练好一个模型,然后用图片来进行分析,这个过程通常叫推理。推理时通常需要考虑的问题就是根据摄像头在全球不同国家出货量非常大的情况和它们波峰波谷的使用情况需要做到集群的弹性伸缩等等。这时候,在SageMaker上去部署这个推理集群就很简单了,只需一键就可以实现弹性伸缩和高可用的部署。并且,还有一个非常重要的功能就是我们在更新模型的时候会去做一些A/B测试,基于SageMaker做A/B测试也非常简单。此外,因为IPC公司的创新性都非常强,所以客户可能会有多个模型,比如他可以支持他的每个终端的C端用户都有一个自己的模型,那对他来讲,最后他就会有成千上万个模型。如果按照常规的部署模型的方式,假设一个模型是一台集群,那成千上万个模型就是成千上万个集群,这个成本是非常高的。但是,在SageMaker的end point即终端节点上,它有一个非常好用的功能就是它在一个终端节点可以支持部署大量的模型实现模型的自动轮替,这就相当于他的多个模型都可以部署在一个节点上,从而极大地降低了他们模型在线推理时的成本。
在边缘端应用的功能组件
可能在工业场景下或者在一些特殊要求的场景下,模型需要部署在边缘端。当我们在边缘端进行部署比如说把模型部署在扫地机器人上或者部署在一些车内的摄像头去做驾驶行为分析的时候,一个很重要的问题是边缘端的算力和内存与云端是不太好相比的。另外,边缘端的硬件设备也是各种各样的,需要去做适配。但是,SageMaker有一个叫做Neo的功能组件,它可以支持我们把云端的模型进行编译从而适配到不同的硬件和边缘设备。它的好处是经过一次编译就可以在多个硬件平台运行;并且在最优的情况下它可以在不影响模型精度的情况下将运行速度提高25倍,同时使用的资源也能优化到原来的1/10大小。如此一来,就可以很好地适配边缘端比较小的内存和算力了。
还有一种场景是说我们在边缘端运行模型的时候,每个模型都需要一个自己的独立运行时。如果单个计算空间只用一个模型,会造成这些空间不太充裕。而且,我们在完成一个任务的时候有可能是需要多个模型组合的,比如一个扫地机器人可能需要先去检测到这是什么环境,然后再去轮转另外一个模型,这是非常正常的。这时候,在每个设备上运行多个模型要怎么做呢?SageMaker有一个叫做Edge Manager的功能组件,它会在边缘端部署一个agent。这个agent占比非常小,但是可以实现对边缘设备的有效管理。此外,我们在机器学习领域非常常见也经常遇到的一个问题就是模型不是一成不变的。不是说部署了这个模型后就永远是这个模型了,很有可能过一段时间后因为外部或者内部环境的变化我们需要更新模型。那怎么对边缘端的模型进行监测以及收集反馈数据重新进行模型的迭代更新呢?那么,Edge Manager同样也可以有效地实现这个需求。SageMaker的Edge Manager其实就是实现对在边缘端运行的大量模型的有效管理。
那么,为了帮助大家快速、零成本起步实践这些云上的AI服务,针对初创企业,我们有一个专门给到初创企业的福利包,叫做云创计划。我们和安创加速器就云创计划的合作也非常顺利。如果您的企业是初创企业,那您可以扫描这个二维码,去注册申请云创计划大礼包。它含有一个最高17.5万人民币的AWS云服务抵扣券。
在今天活动的最后,也跟大家分享一下即将到来的亚马逊云科技中国峰会。今年我们分别会在上海、北京和深圳三地举办,都是线下活动。上海和北京的活动都是万人规模的,同期北京还会有线上活动。如果大家对云计算、AI或者数据分析等领域有兴趣想要深入学习,或者是听取别的企业的成功经验的话,都可以扫描这个二维码注册并查看大家感兴趣的内容。
以上就是我今天的分享内容。