CVaaS計算機視覺即服務 ——從演算法,應用到服務的技術演變
本文是大數據雜談5月4日社群分享內容整理。
我先自我介紹一下,我叫羅韻,是深圳極視角科技有限公司聯合創始人,我們公司是一家做人工智慧和計算機視覺應用的創業公司,我們平台目前服務各個細分領域,其中包括零售行業、工業、智能家居、餐飲、安防等,提供圖像處理和視頻分析的服務。作為一家創業公司,極視角榮登"2016 中國人工智慧創業公司 Top50"以及入選"2017 國內最值得關注的 AI 視覺創業項目 Top20"。當前我們正在做的事情就是希望讓計算機視覺變成一種可以服務於各行各業的服務平台——極市平台 cvmart.net。
今天給大家介紹內容包括四個部分(如上圖),其中是一環扣一環步步遞進的,從兩個演算法 (並非原創演算法) 切入,我們看一個演算法如何被應用,然後基於各種應用的需求,演算法又如何轉化成為一個服務去服務更多的社會需要。
我的分享總體來說會更偏應用性,因為我們主要就是做 CV 應用。
1. 計算機視覺的演算法應用案例 1.1 圖片內容識別首先,給大家介紹一個很常見而非常有應用前景的演算法應用案例:識別一個圖片或者畫面、視頻裡面可能有什麼東西?例如如圖:
要實現這樣識別演算法,當前我們可以結合深度學習的目標檢測演算法,例如有 R-CNN,SPP-Net,Fast R-CNN,Faster R-CNN,以及在 PASCAL VOC、MS COCO、ILSVRC 數據集上取得領先的基於 Faster R-CNN 的 ResNet 等。
以上的方法都可以歸納為一個基本都流程:proposal 候選框 + 分類器,只是有的候選框從原圖就定位了,而有的 bounding box 候選框則是通過 feature map 來定位。而這樣的流程在運行速度上會存在著比較大的局限。當然,大家也在不斷的往更快的速度去優化。
而我們今天先不討論上述的方法,而是討論兩個運行速度更快的目標檢測模型。
第一個是,YOLO(You Only Look Once),YOLO 是一個可以一次性預測多個 Box 位置和類別的卷積神經網路,能夠實現端到端的目標檢測和識別,其最大的優勢就是速度快。目標檢測的本質其實也是回歸,因此一個實現回歸功能的 CNN 並不需要複雜的設計過程。
YOLO 沒有選擇滑窗或提取 proposal 的方式訓練網路,而是直接選用整圖訓練模型。這樣做的好處在於可以更好的區分目標和背景區域,相比之下,採用 proposal(選定候選集) 訓練方式的 Fast-R-CNN 常常把背景區域誤檢為特定目標。
YOLO 的設計理念遵循端到端訓練和實時檢測。YOLO 將輸入圖像劃分為 S*S 個網路,如果一個物體的中心落在某網格 (cell) 內,則相應網格負責檢測該物體。
在訓練和測試時,每個網路預測 B 個候選區域,每個候選區域對應 5 個預測參數,分別是候選區域 (bounding box) 的中心點坐標 (x,y), 寬高 (w,h) 和置信度評分。
這裡的置信度評分:
(Pr(Object)*IOU(pred|truth))
綜合反映基於當前模型候選區域內存在目標的可能性 Pr(Object) 和候選區域 (bounding box) 預測目標位置的準確性 IOU(pred|truth)。
如果候選區域內不存在物體,則 Pr(Object)=0。如果存在物體,則根據預測的候選區域 (bounding box) 和真實的區域 (bounding box) 計算 IOU,同時會預測存在物體的情況下該物體屬於某一類的後驗概率 Pr(Class_i|Object)。
假定一共有 C 類物體,那麼每一個網格只預測一次 C 類物體的條件類概率 Pr(Class_i|Object), i=1,2,...,C; 每一個網格預測 B 個候選區域 (bounding box) 的位置。即這 B 個候選區域 (bounding box) 共享一套條件類概率 Pr(Class_i|Object), i=1,2,…,C。
基於計算得到的 Pr(Class_i|Object),在測試時可以計算某個候選區域 (bounding box) 類相關置信度:
如果將輸入圖像劃分為 7*7 網格(S=7),每個網格預測 2 個 bounding box (B=2),有 20 類待檢測的目標(C=20),則相當於最終預測一個長度為 S*S*(B*5+C)=7*7*30 的向量,從而完成檢測和識別任務。
第二個同樣是目標檢測的演算法,SSD(Single Shot MultiBox Dectector)。這是另一個基於深度學習的物體檢測模型,他的特點主要是檢測的速度在能保證精度下保持非常快的速度,除此之外,該物體檢測演算法在大目標的檢測下有比較好的效果。
而我們發現,往往我們的照片中,大目標比比皆是。SSD 比原先最快的 YOLO: You Only Look Once 方法,還要快,還要精確。保證速度的同時,其結果的 mAP 可與使用 region proposals 技術的方法(如 Faster R-CNN)相媲美。
SSD 方法的核心就是預測物體,以及其歸屬類別的得分;同時,在 feature map 上使用小的卷積核,去預測一系列候選區域的位置。
SSD 為了得到高精度的檢測結果,在不同層次的 feature maps 上去 預測物體類別和物體位置。
SSD 這些改進設計,能夠在當輸入解析度較低的圖像時,保證檢測的精度。同時,這個整體端到端的設計,訓練也變得簡單。在檢測速度、檢測精度之間取得較好的平衡。
1.2. 電子相冊然而,以上的僅僅是一個照片內容識別的演算法,還沒有真正的成為到了一個解決實際問題的應用,接下來,我們將講解的就是利用這樣的識別技術,我們進一步可以解決的問題就是:
在印刷行業或者快照行業,會陸續推出一項產品——電子相冊。
而電子相冊從技術層面主要是要解決兩個問題,1. 照片裁剪,2. 相框的匹配。
而當前,這些工作都是人工去完成,隨著日益增長的電子圖片的需求量,製作電子相冊的人力成本越來越大,而這個時候,利用之前所述的內容識別演算法,我們可以幫助電腦自動實現圖片的裁剪,因為自動裁剪最大的擔憂可能是擔心把照片內的人裁剪掉了。
另一方面,我們進而可以結合圖片場景分類和人臉識別等演算法技術,使用標籤匹配方法去自動匹配與照片本身更搭配的相框。
2. 利用計算機視覺技術實現行業升級如上,我們就以快照印刷行業的電子相冊作為一個行業應用的例子,但其實還有很多行業內容其他的應用例子不勝枚舉。
演算法本身我們可以做出很多技術,例如使用物體檢測我們可以實現內容識別、除此之外我們還實現場景分類、人臉的識別、顏色的分類、人物表情等等。
而技術項目的組合,可以幫助我們是去實現更多行業內的目前人工完成的工作,例如實現自動裁剪、通過根據圖片的內容、場景的分類、人臉信息等,匹配出合適的相框作為推薦,根據不同顏色的印刷材料做不同的印刷批次排序等等。
於是,一個簡單的印刷快照行業的升級,我們可以歸納為如圖:
而由圖中,我們可以看到,技術和應用本質上是完全可以分開做橫向拓展的,於是我們可以看到同樣的技術可以用在不同的行業,也可以有很多不同行業特定的演算法技術,如圖:
3. CVaaS 計算機視覺即服務的理念介紹
CVaaS 是我概括出來的一個詞語,第一次介紹給大家,意思就是計算機視覺演算法即服務的意思,在過往,我們可能聽說過,IaaS(Infrastructure as a Service),PaaS(Platform as a Service),SaaS(Software as a Service), 大家都把不同層次的標準化模塊變成一種服務在提供。
而 CVaaS 就是 Computer Vision as a Service, 我們把 CV 的部分標準化成為了一種服務,而每一個行業可以在這裡找到自己行業需要的和圖像處理、視頻處理、計算機視覺相關的演算法服務,然後他們可以整合這些演算法服務成為他們需要的應用。
而 CV 演算法更接近於一種平台運行的服務,提供運算性能的橫向拓展,提供運算的底層開發環境,甚至乎直接提供可開發測試的 sandbox, 所以,CVaaS 也是 PaaS 的一種。
各行各業都有他需要的和 AI 取代的工作,從而提升行業的效率,正如李開復老師說的,50% 的工作會被 AI 取代,而評判的標準就是「五秒鐘準則」。
「五秒鐘準則」:一項本來由人從事的工作,如果人可以在 5 秒鐘以內對工作中需要思考和決策的問題做出相應的決定,那麼這項工作就非常大的可能被人工智慧技術全部或部分取代。
而 CVaaS 的目的,就是讓各行各業可以以最快的形式和方式完成這要的一些工作的轉變。
例如,在零售行業,我們選擇可以選擇人臉識別做 VIP 識別,選擇行人識別做客流統計,選擇性別、年齡識別做顧客分類或者顧客肖像。
在安防行業,我們選擇動作 (打架) 識別、行人跟蹤、姿態識別等做安全的防範和預警。
再例如,在房地產領域做場景圖片的分類 (例如哪些圖片是卧室,客廳,廚房),優質 (封面) 圖片的挑選;印刷行業根據圖片的內容做自動裁剪;等等。
4. CVaaS 平台的設計
極市 CVaaS 平台主要面向三個群體,具有演算法服務開發能力的開發者,需要使用演算法服務的行業用戶以及海量和我們對接的硬體廠商。對於開發者,平台設計基於 Gitlab 的代碼 (SDK) 管理,版本管理,Gitlab 是目前比較流行的開源類 Github 代碼管理平台。
開發者可以提交自己認為滿意的版本,對於不想提供源碼的,可以提供 SDK 即可。對自己的演算法的數據輸入端,使用平台提供的輸入 SDK 對接,可以對自己的演算法進行場景使用和介紹做詳細的描述,就想我們去 APP Store 提交一個 APP 一樣。
此外,開發者擁有自己的管理後台,每天可以查詢到自己的演算法被使用和應用的情況,以及最新的收入。
我們也知道,對於 CV 或者 AI 類演算法,最重要的莫過於數據集,所以,在平台設計中,我們增加了海量測試數據的模塊,可以提供給不同應用的開發者測試集。
而每一個演算法服務的運行,則基於 docker 的隔離運行,docker 用來隔離應用還是很方便的,一來本身的操作較為簡單,二來資源佔用也比虛擬機要小得多,三來也較為安全,因為像資料庫這樣的應用不會再全局暴露埠,同時應用間的通信通過加密和埠轉發,更加安全。
基於海量硬體與我們系統的無縫鏈接,每一個在平台上的演算法應用,即可面向近百萬攝像機用戶的使用可能。
5. 總結與展望所有平台的設計最終都是為了服務社會和個人,而 AI 作為當前的與社會緊密相同的技術,我們希望使得更多不同的行業用更輕鬆簡單的方法與技術相結合,而我們這些懂技術的人,也可以有更多的方式去貢獻我們的能力,這個就是我們極視角和我們的產品「極市」的初衷。
答疑環節 Q1: 「我是一位機器學習愛好者,對機器學習平台比較感興趣,也希望能夠參與開源社區,看到您是 Tensorflow Contributor 感覺很厲害,請問我應該如何努力才能也成為 Tensorflow Contributor。」羅韻:開源社區其實有非常多非常優秀的項目,一開始如果能力不夠,可以從看別人的代碼開始,如果漸漸能讀懂別人的代碼,一般成熟的開源項目都有開發計劃的,而且是公開的,有些功能是專門公開給社區去實現的,那就可以自己去實現,還有一種情況就是你發現了項目本身存在的問題或者 bug,然後你去完善好。
Q2: 「請師從港科大哪位大牛呀?是楊強教授嗎?」羅韻:是的。
Q3:「對工作一段時間的軟體工程專碩來說,如何申請名校深度學習的 PHD?沒有論文,本碩名校,BAT 工作背景。」羅韻:首先先確定你是有耐心和恆心愿意去讀 PhD,畢竟也是好幾年光陰,其次就是我覺得還是個人需要有自己的一點點小成果或者做出一點可以打動導師的東西,最後就是,工作中的積累也是很有用的,個人愚見,這個問題因人而異的。
Q4: 「如何在嵌入式平台,比如 ARM Cortex A73 四核平台上部署機器視覺,應用到圖像識別分類?」羅韻:這個問題有點太泛了,具體還要看圖像識別分類,做的是什麼分類,分多少類,整體的項目程序的複雜度等,一般如果部署成功了,很多時候也要看具體場景的要求,例如場景要求實時,但是速度上就是無法支持,這個也是其中一些難點所在。
Q5:「對美女講師提到的 CVaas 蠻好奇的~ 請問這個有什麼優勢嗎」羅韻:優勢有幾個方面,第一,作為一個 CVaaS 其實就是一個連接技術與需求的橋樑,所以,我們首先已經擁有了大量的場景的硬體(攝像頭)作為用戶,所以,在這裡的所有 Service 都不基本不用擔心是否有人使用的問題,只要是好的 CV Service,都有對應的潛在用戶。
第二,你的運算能力方面和運維都有我們整個平台作為支持,開發者可以更加關注演算法的研發。
第三,我們目前應該是擁有著最大量的一線數據可以做演算法測試。
Q6:「想知道你們新零售的解決方案」羅韻:這個,今天沒有說到,但是這個確實是我們公司的其中一個產品,新零售的解決方案,主要解決三個核心問題,全自動採集數據 + 構建數據分析框架 + 業務驅動的數據分析。
Q7:「請問什麼樣的演算法可以放到你們平台呢?你們平台的模式是什麼樣的」羅韻:作為開發者,不用太擔心什麼演算法可以放到我們平台,我們底層會對演算法做自動測試與審核,審核通過了,自然就是被使用的。
Q9:「對於成為 contributor 一題,請羅老師給女生,特別是零基礎卻要半路轉行到此領域的不年輕的女生一點指導建議或者鼓勵。謝謝。」羅韻:嗯!加油!可以從寫項目文檔開始其實,很多入門的開源社區的新手都是先從幫項目寫文檔開始的,當然,寫之前就意味著你要先慢慢理解每一個 sample/demo。
Q10:「您公司開發的產品,智能客流系統,有沒有已經成功的運營實例,效果怎麼樣」羅韻:我們官網上展示出來的客戶名單,國內外的知名零售連鎖品牌都有是我們客戶,太多,我這裡就不一一羅列,運營效果,我覺得還是市場說的算,目前我們的客戶增長率就是最好的證明。
Q11:「在終端相冊應用中,您怎麼看待圖像語義理解 Vs. 物體檢測 & 分類給用戶搜索帶來的體驗的差異化?」羅韻:兩個技術沒有衝突,其實都是可以應用的,物體檢測主要是用於對圖像做自動裁剪比較多,圖像語義理解更多的是為了還要做搜索或者推薦,如果是以搜索為主要任務的話,做檢測後加上語義理解會更好。
作者介紹
羅韻,極視角科技聯合創始人,香港科技大學人工智慧 PhD candidate,TensorFlow contributor。實現過基於雲端的計算機視覺分析系統和企業早期計算機視覺的演算法研發。接觸過接近百種人工智慧演算法的應用,覆蓋行業包括零售、交通、安防、公共資源、環境、金融、醫療、娛樂等,對 AI 演算法的應用化場景了解豐富,目標是讓未來的 AI 產品可以和 APP Store 裡面的應用一樣豐富。著有知乎專欄人工智慧應用系列(https://zhuanlan.zhihu.com/ai4application)。
達觀數據技術分享主題月:從「想你所想」之個性化推薦,到「搜你所想」之用戶搜索意圖識別
推薦閱讀:
※男人女人都是視覺動物
※38張電視背景牆效果圖 給你絕對的視覺享受(組圖)
※夢境異象:靈魂視覺化的探索
※我來聊聊視覺化魔術
※為什麼男人都是「視覺動物」?