《安創“芯”視野》第30期,邀請到亞馬遜云科技機器學習高級產品經理李媛,她為大家介紹了如何借助亞馬遜云科技的AI/ML服務,在沒有機器學習專業團隊的情況下輕松打造IPC的AI能力,開啟產品及運營創新模式。
(以下是分享內容整理)
大家好。我是李媛,來自亞馬遜云科技,負責機器學習產品方向。很高興能夠有機會和安創加速器生態的各位朋友一起交流,如何在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或者數據分析等領域有興趣想要深入學習,或者是聽取別的企業的成功經驗的話,都可以掃描這個二維碼注冊并查看大家感興趣的內容。
以上就是我今天的分享內容。
? ? ? ?責任編輯:tzh
評論