《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > MEMS|傳感技術(shù) > 業(yè)界動(dòng)態(tài) > 專欄 | 有趣!用計(jì)算機(jī)視覺技術(shù)與PaddlePaddle打造AI控?zé)燀?xiàng)目

專欄 | 有趣!用計(jì)算機(jī)視覺技術(shù)與PaddlePaddle打造AI控?zé)燀?xiàng)目

2018-06-13

每年 5 月 31 日是世界控?zé)熑?,百度使用了目?biāo)檢測(cè)、動(dòng)作識(shí)別人臉檢測(cè)AI 技術(shù),基于 PaddlePaddle 做了一個(gè)「AI 控?zé)煛鬼?xiàng)目。

微信圖片_20180613210315.jpg

百度工程師用 PaddlePaddle 訓(xùn)練出一套模型,能夠?qū)ξ鼰熑巳哼M(jìn)行識(shí)別和適當(dāng)提示。當(dāng)攝像頭捕捉到正在吸煙的同學(xué),就會(huì)投射到大屏幕上。圖為李彥宏和某個(gè)員工的對(duì)話,對(duì)話員工的頭像正是周圍某個(gè)吸煙員工的「吸煙照」,而且其面部用表情包替換了。


這是一個(gè)基于 AI 技術(shù)完成的項(xiàng)目,使用了目標(biāo)檢測(cè)、動(dòng)作識(shí)別、人臉檢測(cè)等 AI 技術(shù)。其大致流程可以這樣描述:

微信圖片_20180613210339.jpg

項(xiàng)目流程示意圖


訓(xùn)練與預(yù)測(cè)


我們可以借這個(gè)項(xiàng)目來了解一個(gè) AI 控?zé)熯@樣的應(yīng)用是如何完成的。項(xiàng)目的實(shí)現(xiàn)可以分為訓(xùn)練階段、預(yù)測(cè)階段兩部分。


我們先來看訓(xùn)練,主要是對(duì)吸煙動(dòng)作識(shí)別的訓(xùn)練。這里用到的是動(dòng)作識(shí)別技術(shù),也叫做人體動(dòng)作識(shí)別,是圖像分類技術(shù)的一個(gè)細(xì)分領(lǐng)域,通過對(duì)圖像中的人物動(dòng)作來判斷其行為,主要可以分為視頻識(shí)別和靜態(tài)圖像識(shí)別。兩種技術(shù)都會(huì)有自己的應(yīng)用場(chǎng)景,其中視頻識(shí)別會(huì)對(duì)計(jì)算資源的要求比較高,更多使用在一些對(duì)實(shí)時(shí)性要求比較高的場(chǎng)景,比如安防領(lǐng)域會(huì)基于實(shí)時(shí)監(jiān)控中是否出現(xiàn)搶劫或求救行為來自動(dòng)完成報(bào)警。而基于靜態(tài)圖像的動(dòng)作識(shí)別則可以面向一些實(shí)時(shí)性不那么高的場(chǎng)景,可以用較低的計(jì)算成本來完成。


本文的控?zé)燀?xiàng)目根據(jù)其采集圖片數(shù)據(jù)的行為來看,應(yīng)該是基于靜態(tài)圖像的動(dòng)作識(shí)別。具體到訓(xùn)練過程,首先是樣本數(shù)據(jù)的獲取,這也是所有深度學(xué)習(xí)問題的起點(diǎn)。在這個(gè)項(xiàng)目中需要搜集的是戶外情況下用戶的吸煙圖片,并將每張圖像中的吸煙者標(biāo)注出來。第二步是訓(xùn)練吸煙動(dòng)作識(shí)別的模型,即通過標(biāo)注好的數(shù)據(jù)來讓機(jī)器學(xué)習(xí)到什么樣的動(dòng)作可能是吸煙,從而在有新的圖像出現(xiàn)時(shí)能夠判斷其是吸煙行為的可能性,模型訓(xùn)練過程是一系列復(fù)雜的工作。


最后是模型的評(píng)估工作,需要讓模型去判斷新的圖像是否是存在吸煙行為,并記錄其表現(xiàn),在滿足一定評(píng)估指標(biāo)后,才能停止優(yōu)化。經(jīng)過這樣一系列流程,我們會(huì)得到一個(gè)符合業(yè)務(wù)目標(biāo)的吸煙動(dòng)作識(shí)別模型。


得到動(dòng)作識(shí)別模型之后,我們就可以進(jìn)行預(yù)測(cè)環(huán)節(jié)了。預(yù)測(cè)的具體的流程是這樣:首先我們需要將吸煙動(dòng)作識(shí)別模型部署在服務(wù)器上,讓其具備能夠在生產(chǎn)環(huán)境中接收數(shù)據(jù)以及輸出結(jié)果的能力,有了這個(gè)基礎(chǔ),我們就能夠?qū)z像頭采集的圖像數(shù)據(jù)輸入模型,經(jīng)過模型的判斷后再向大屏幕輸出吸煙者的圖像。


但是事實(shí)上,項(xiàng)目中輸出的內(nèi)容并不僅僅是吸煙動(dòng)作,其實(shí)是一個(gè)整體圖像中抽取出的吸煙者所在的圖像部分,還要依賴于目標(biāo)檢測(cè)技術(shù)。目標(biāo)檢測(cè)是計(jì)算機(jī)視覺領(lǐng)域三大任務(wù)之一(另外兩個(gè)是圖像分類、和圖像分割),該技術(shù)可以識(shí)別一張圖片的多個(gè)物體,并可以定位出不同物體(給出邊界框)。這種技術(shù)的應(yīng)用場(chǎng)景非常廣泛,比如無人駕駛、安防等領(lǐng)域都很依賴這種技術(shù)。在此項(xiàng)目中,通過目標(biāo)檢測(cè),機(jī)器會(huì)先將攝像頭采集的數(shù)據(jù)進(jìn)行人體目標(biāo)識(shí)別并將有人的圖像區(qū)域裁剪出來并傳輸給吸煙動(dòng)作識(shí)別模型,如果這部分圖像被判斷為吸煙,就會(huì)輸出到展示端。


參與者被上傳到大屏幕的圖像中,人物的面部是被表情包替換的,這又是如何實(shí)現(xiàn)的呢?這個(gè)操作涉及的是人臉檢測(cè)技術(shù),它其實(shí)是圖像檢測(cè)的一個(gè)細(xì)分垂類,簡單來說就是能夠知道一個(gè)圖像中是否存在人臉,以及如果存在那么其所在圖像區(qū)域是什么。人臉檢測(cè)技術(shù)是人臉識(shí)別技術(shù)方向的關(guān)鍵環(huán)節(jié),也是人臉識(shí)別流程的第一步,除了能檢測(cè)圖像區(qū)域內(nèi)是否存在人臉外,人臉圖像中展示的特定信息(比如是否帶眼鏡、是否有胡須)、以及面部表情(比如是否微笑、是否悲傷)都屬于人臉檢測(cè)技術(shù)的范疇。


人臉檢測(cè)技術(shù)是一個(gè)應(yīng)用場(chǎng)景非常廣泛的技術(shù),在我們的日常生活中非常普遍,比如手機(jī)拍照時(shí)我們會(huì)發(fā)現(xiàn)系統(tǒng)會(huì)定位每個(gè)人臉并將其框出來,比如女生最愛的一些修圖軟件,可以自動(dòng)完成瘦臉或是其他一些特效,都是在人臉檢測(cè)技術(shù)的基礎(chǔ)上進(jìn)行加工的。該技術(shù)在本文介紹的控?zé)燀?xiàng)目中也是一樣的使用場(chǎng)景:如果一個(gè)用戶被判斷為吸煙,那么系統(tǒng)就會(huì)檢測(cè)圖像中是否存在人臉,如果有就在其所在的區(qū)域用一個(gè)表情包來替換,這樣就達(dá)到了我們看到的效果。


以上三項(xiàng)技術(shù)都涉及到深度學(xué)習(xí)的開發(fā)工作,他們背后都是由百度的深度學(xué)習(xí)引擎進(jìn)行支持的,這個(gè)我們會(huì)在文章的下一個(gè)部分進(jìn)行說明。


從活動(dòng)對(duì)外視頻上看,被投放到屏幕的上吸煙員工(雖然面部被處理,但是現(xiàn)場(chǎng)通過體型服飾等特征還是容易被認(rèn)出來)絕大多數(shù)會(huì)快速終止其吸煙行為,出現(xiàn)這樣的結(jié)果在社會(huì)學(xué)中是有理論依據(jù)的,曾有學(xué)者做過實(shí)驗(yàn),對(duì)于阻止那些需要道德約束的不良行為,有交互的提示會(huì)比靜態(tài)的提示有效很多,比如飯店中禁止吸煙的標(biāo)識(shí)即使擺在吸煙者的面前,對(duì)其的約束力也遠(yuǎn)遠(yuǎn)比不上服務(wù)員親自出面提示,真正的問題在于并不是所有場(chǎng)合都能有這樣一個(gè)勇敢的「服務(wù)員」來充當(dāng)這個(gè)「有交互的提示者」,而這個(gè)項(xiàng)目讓我們看見了通過 AI 技術(shù)來打造這樣一個(gè)無處不在、任何時(shí)間都可以發(fā)出警告的提示者的可能。

 

「幕后玩家」-深度學(xué)習(xí)引擎


深度學(xué)習(xí)引擎被認(rèn)為是 AI 時(shí)代的操作系統(tǒng),就好比 PC 時(shí)代的 windows 或者移動(dòng)時(shí)代的 Android。深度學(xué)習(xí)引擎大致可以表述為這樣:深度學(xué)習(xí)引擎是一套幫助開發(fā)者完成各種深度學(xué)習(xí)模型訓(xùn)練任務(wù)的解決方案。通過這樣的解決方案,可以讓深度學(xué)習(xí)的研發(fā)工作者把更多的精力放在解決業(yè)務(wù)問題而非一些復(fù)雜、工作量巨大的基礎(chǔ)編程工作。此外,一個(gè)良好的深度學(xué)習(xí)引擎可以讓模型的訓(xùn)練工作更加快速高效,節(jié)省更多的時(shí)間和計(jì)算資源成本,這對(duì)于有大規(guī)模業(yè)務(wù)需求的企業(yè)級(jí)用戶來說,就顯得非常重要。這項(xiàng)技術(shù)會(huì)連接 AI 產(chǎn)業(yè)鏈底層的硬件計(jì)算資源以及上層的各種應(yīng)用層面的 AI 技術(shù),處在一個(gè)非常關(guān)鍵的位置,是科技巨頭的必爭之地。


還是拿剛才提到的 AI 控?zé)燀?xiàng)目舉例子,這里面依賴了三種 AI 技術(shù)能力,而這三項(xiàng)技術(shù)能力有著共同的源頭—百度的自研深度學(xué)習(xí)引擎 PaddlePaddle。其中吸煙動(dòng)作的識(shí)別是通過采集、標(biāo)注圖像中的吸煙行為后,基于 PaddlePaddle 框架直接訓(xùn)練出來的,據(jù)官方說法,大概使用了數(shù)萬張樣本數(shù)據(jù),經(jīng)過 40 多輪模型訓(xùn)練得到了一個(gè)準(zhǔn)確率在 80% 左右的模型;圖像中人物檢測(cè)和提取使用的是 PaddlePaddle 中開源的 SSD 目標(biāo)檢測(cè)算法;確定人臉位置使用的人臉檢測(cè)的技術(shù)接口,但接口背后的人臉檢測(cè)模型也是基于 PaddlePaddle 框架訓(xùn)練得到的。


SSD 目標(biāo)檢測(cè):https://github.com/PaddlePaddle/models/blob/develop/ssd/README.cn.md

人臉檢測(cè):http://ai.baidu.com/tech/face/detect


這個(gè)項(xiàng)目主要采用的 SSD 模型是目標(biāo)檢測(cè)領(lǐng)域效果最好的算法之一,有著檢測(cè)速度快且檢測(cè)精度高的特點(diǎn)。如下展示了 SSD 網(wǎng)絡(luò)的整體結(jié)構(gòu):

微信圖片_20180613210721.jpg

圖中每個(gè)矩形框代表一個(gè)卷積層,最后兩個(gè)矩形框分別表示匯總各卷積層輸出結(jié)果和后處理階段。在預(yù)測(cè)階段,網(wǎng)絡(luò)會(huì)輸出一組候選矩形框,每個(gè)矩形包含:位置和類別得分。圖中倒數(shù)第二個(gè)矩形框即表示網(wǎng)絡(luò)的檢測(cè)結(jié)果的匯總處理。由于候選矩形框數(shù)量較多且很多矩形框重疊嚴(yán)重,這時(shí)需要經(jīng)過后處理來篩選出質(zhì)量較高的少數(shù)矩形框,主要方法有非極大值抑制(Non-maximum Suppression)。


從 SSD 的網(wǎng)絡(luò)結(jié)構(gòu)可以看出,候選矩形框在多個(gè)特征圖上生成,不同的特征圖具有的感受野不同,這樣可以在不同尺度掃描圖像,相對(duì)于其他檢測(cè)方法可以生成更豐富的候選框,從而提高檢測(cè)精度;另一方面 SSD 對(duì) VGG16 的擴(kuò)展部分以較小的代價(jià)實(shí)現(xiàn)對(duì)候選框的位置和類別得分的計(jì)算,整個(gè)過程只需要一個(gè)卷積神經(jīng)網(wǎng)絡(luò)完成,所以速度較快。


目前主流的深度學(xué)習(xí)引擎有十余種,其背后是各個(gè)科技巨頭(如 TensorFlow-谷歌、CNTK-微軟、MXNET-亞馬遜、Pytorch-臉書等)的支持,而 PaddlePaddle 是目前唯一一個(gè)由中國企業(yè),即百度,研發(fā)和支持的項(xiàng)目,目前正處于快速發(fā)展中。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。