葉聰:朋友圈背後的計算機視覺技術與應用

歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~前端

本文由 雲加社區技術沙龍 發表於 雲+社區專欄

演講嘉賓:葉聰,騰訊雲AI和大數據中心高級研發工程師。在多年的雲計算系統研發經歷中,負責領導了多個百萬級用戶及產品的架構設計和開發。算法

img

AI要走進千家萬戶,融入整個社會,而不只僅是曲高和寡的模型。因此如今很是講究AI場景化,使它成爲與產業相關的部分。數據庫

1、朋友圈爆款活動背後的技術

img

今天我會從朋友圈的一些爆款的互動活動做爲切入點,帶你們過一遍一些計算及視覺技術與應用,或者把AI技術產業化。咱們常常在朋友圈會看到一些比較有趣的互動的活動,好比像軍裝照、武士青年這類活動視覺比較流行的應用,也是目前探索出來的計算機視覺可以最快來到你們身邊的方式。以過去的五四青年節的活動爲例,這個有趣的活動就應用了人臉檢測與人臉檢索的技術相結合。服務器

上傳一張照片最匹配民國時候有爲青年的照片,作成這種頁面供你們分享。這種模式最開始就是由騰訊開啓,現已成爲了整個行業應用的參考。除了這個活動,H5這類應用每每會出現用戶訪問爆發性的增加,爲了應對這種突如其來的流量暴增,使用一整套雲架構部署,而不是傳統機房裏面用幾臺服務器處理。好比像五四青年的活動,5萬KPS的架構就有這樣的承載能力。從我的角度想要作這樣的應用,須要瞭解如下的基礎知識。微信

2、計算機視覺定義

img

首先從計算機視覺的基本定義開始,學術角度來說是研究如何讓計算機從圖像和視頻中獲取高級抽象的信息的一種方法。但我比較喜歡後面這種工程角度的解釋,計算機視覺是可使機器來模仿人類自動化。如今咱們利用計算機視覺讓整個流程更自動化,機器能夠部分的代替人力去理解圖片中的一些信息。計算機視覺還包含一些子分支,如今這個分支還會慢慢擴張,這個分類也在慢慢的擴大。主要包括物體識別、對象檢測、語義分割、3D的重建,動做識別等等。網絡

img

底下有幾個比較常見的視覺應用,第一個是人臉識別;第二個是無人駕駛;第三個是語義分割。語義分割在人工智能這個領域仍是比較常見的。通常指詞性的分割,或者詞的分割。圖像分割裏面的語義分割通常指的是把圖像裏面的不一樣類型的對象進行標註和區分。右邊這張圖就是個例子。這張圖上基本上把人、路、車都用了不一樣的顏色標註。架構

提到機器視覺,首先就要知道機器是怎麼去理解圖片的?這裏就要帶入RGB-alpha 的一個算法。負載均衡

顧名思義,就是紅綠藍三色,而後,alpha 是什麼?若是你們在早期的時候玩過一些電腦硬件,你可能會發現,最先期的顯卡是 24 位彩色,後來出現一個叫 32 位真彩色,都是彩色的,有什麼不一樣嗎?由於在計算機領域,咱們用 8 位的二進制去表示一種顏色,紅綠藍加在一塊兒就是 24 位,基本上咱們把全部顏色都表示出來了。機器學習

3、曾經的圖像處理——傳統方法

img

首先聊一下一些傳統的圖像處理的方法。上面這幾個濾波器若是有學圖像相關的同窗都會常常用到,包括空間濾波器、小波濾波器。若是對圖像進行分類,咱們確定要提取圖像中的一些特徵,而後根據這些圖像提取出的特徵用算法進行一些分類,因此是兩步走。性能

img

關於如何提取圖像的特徵,如今已經有不少比較成熟的方法。最容易想到的就是圖像裏面對象會有邊緣。邊緣就表明了圖像的特色。除了邊緣檢測的方法還會有其餘的特徵,好比Haar特徵。對象具備邊緣、對角線、中心均可以利用這種黑白的對比圖,標註出它灰度的變化,把剛纔說的三種維度的信息組成一個集合,這樣就能夠提取圖片的特徵。

img

還有一個比較新的特徵提取方法,就是2012年的時候康奈爾提出來的,利用一個圖片裏面對象的局部對稱性來提取特徵。左邊這個圖有不一樣形狀的對象,右邊這個圖就把它的對稱性理解爲重心提取出來,圖上越白色的地方表明對稱性越強。這種算法優勢是整個圖形提取出的特徵是比較有對稱性。這樣就容易把這個東西從背景裏面提出來。

img

另外還有一些特徵提法,好比SIFT,尺度不變特徵。我先解釋一下什麼是尺度,咱們看待一個東西,從遠到近,越遠它尺度越大,就說明這個東西相對咱們越模糊,能觀測到的特徵點就少。隨着靠近,看到的越多就能愈加現一些特色。有些特色是無論遠近都能辨識出來的,就認爲是尺度不變的特徵。

img

還有一種跟灰度有關的方法叫HOG方向梯度直方圖,它也是利用灰度的原理,把整個圖形分紅不少塊,描述裏面灰度變化最小的或者最大的。通常選用最小的方向。好處是它計算起來的成本比較靠譜的,好比這張圖上,人穿黑色的衣服,因此在黑色衣服上它的灰度變化最小必定是垂直的。到了旁邊白色背景可能就是水平的。利用它這個HOG的梯度圖的方向,很容易把這我的從背景中間區分出來。

img

聊了不少的Feature Design的方法,並不存在最優的。在圖像分割和對象檢測這個領域也有一些其餘算法,例如很是有意思的分水嶺算法,顧名思義是利用圖像的灰度特性把圖像整個灰度的曲線顯示出來。假設往裏面灌水,隨着水愈來愈多,確定會有兩個相鄰的山谷聯通,在那裏建一道壩,這些壩在圖上來看就是紫色的曲線,這樣就能夠把對象裏灰度不一樣的部分給分割出來。

img

ASM,中文名叫可變模板匹配,或者叫主觀形狀模型。對象檢測的經常使用算法主觀形狀模型以人臉爲標準,提取人臉上68個點,對這些點進行變換,而後去匹配目標。剛纔聊了一些傳統方法,隨着近幾年硬件性能的提高以及大數據的普遍的應用,讓原本已經沉寂許久的深度學習算法變成了可行。深度學習這個名字是比較抽象,其實能夠理解爲深度比較高的神經網絡,多重神經網絡。這樣會比較貼切。簡單介紹一下神經網絡,左邊和右邊兩張圖就是神經網絡。通常談及神經網絡的,是不說輸入層的,因此左邊是兩層神經網絡,右邊是三層。

4、圖像處理的爆發——深度學習方法

img

下面有兩個深度學習的網絡,所謂的深度學習實際就是深度神經網絡,叫深度神經網絡你們更容易理解。左邊那個是一個兩層的神經網絡,這裏要解釋一下,咱們通常說神經網絡的層數是不算輸入層的。

輸入層就是你輸入信號的地方,將中間過程的結果進行彙總,若作分類它會把它進行歸類的一層。這其中學過統計或者相關的同窗都會用的邏輯迴歸頗有意思傳統的機器學習算法和深度學習算法頗有關係。底下寫了一行字(英文),這二者其實都是很特殊的單層神經網絡,因此深度學習並非高不可攀的,它的由來是頗有邏輯性的,是從深度算法中間慢慢剝離出來的。說完簡單的神經網絡再來談談複雜的。在實際使用的時候,不必定是簡單的一兩層,頗有多是多層的。好比這個圖上面至少有三層,實際上咱們使用的神經網絡是很複雜的。不是像上面這張圖那麼簡單。除了剛纔看到的哪些三角形或者金字塔形的神經網絡,神經網絡是有很是多種的,好比感知器,FF,RBF,使用的場景都不太同樣。因此神經網絡研究者每每會根據場景選不一樣的網絡,對網絡進行一些比較,有的時候也能夠解決類似的問題。深度學習研究的方向跟傳統學習的區別,可能在網絡上會更加的鑄磨,包括怎麼調整中間多加一層,少加一層,在這個方向作一些測試。

img

在圖像識別領域應用比較廣的神經網絡是CNN,即卷積神經網絡。這個圖上是一個很是標準的,或者說很是初級的CNN的網絡,包括好比像卷積層,卷積層通常是用來作圖像的特徵學習的。最後會有一個全連接層,把全部前一層的數據進行全連接。自動作分類。這個想法其實來源於傳統的機器學習,最後會有一個層去作分類。

img

在CNN以後很是聰明的科學家們就發現了不少能夠更加優化的點,因此已經不多有人單純用這個CNN作訓練了。目前比較流行的作圖像分割的還有不少基於 CNN 的新網絡。好比在 CNN 基礎上你們又加入了一個叫 Region Proposal Network 的東西,利用它們能夠去優化傳統 CNN 中間的一些數據的走向。Faster-RCNN 不是一蹴而就的,它是從RCNN中借鑑了 SPPNET 的一些特性,而後發明了 Fast-RCNN,又在 Fast-RCNN 的基礎上進一步的優化變成了 Faster-RCNN。

img

即使到了Faster R-CNN這個領域也遠遠沒有走到盡頭。咱們一直作對象檢測的時候都是採用,要儘可能的縮小範圍的思路。每個上面提到的算法都能找到一兩篇很是好的論文,你們能夠了解一下這個算法是怎麼演變過來的。咱們的目的是用分類的方法一次性把一個圖片裏面的信息所有理解,就出現了右邊的算法。

img

接下來談一下在有了一個模型算法之後,應如何作一些應用。講幾個騰訊雲這邊支持過的AI應用的例子。首先是五四青年的活動,它是解決圖像匹配的一個活動。首先咱們將民國時候的老照片做爲訓練數據,對它進行提取,和標註數據,對每一個照片都進行標註,生成一個模型。你們在玩這個遊戲的時候會傳一張照片測試數據,等特徵提取完,模型會返回一個它的分類,這個分數不是執行度,不能夠徹底參考。而是會選擇一個分數最大的值返回到前端,生成一個頁面,這就是整個流程。

img

第二個應用也比較流行:人臉融合的一個應用。相似軍裝照這類,原理上跟剛纔的PPT有點相似,首先會對圖像的人臉部分進行關鍵點的定位,將特徵提取出來。由於角度也是會影響不少的匹配效果,因此要對圖片進行必定程度的旋轉,把它與模版圖進行統一化。下一步將上傳圖片的人臉部分根據特徵值摳出來。跟咱們的模版圖進行融合。因爲上傳的照片各類光線角度不徹底同樣,還要對圖片進行一些優化,將光影、曲線調得比較平緩,這樣就能夠呈現一個很是好的效果。

img

這是我以前在斯坦福的時候作的一個項目,對圖片的內容進行描述生成一個故事。咱們作了一個模型是能夠任意的幫助用戶根據圖片生成不一樣類型的故事。好比能夠是浪漫小說,能夠是科幻小說,不一樣的訓練集能夠根據狀況調整你們想作一些本身項目的時候也能夠像咱們同樣採用開源數據庫。資源不少,不會成爲你們研究的瓶頸。

5、解析雲端AI能力支撐

img

聊過剛纔的這些部分,背後是什麼樣的?若是我寫了一個模型作了一個有趣的應用,是否是我就能夠把它放到網上你們就能夠玩了?其實不是這麼簡單。若是隻是簡單的讓咱們把它放到一個網站託管,爲了支撐這麼龐大的一個系統咱們須要作些什麼?應該採用雲服務,儘可能不在咱們的物理集上部署。好比採用這個圖裏面提出的靜態應用加速,虛擬機,對象儲存,以及GPU雲服務器加速咱們出結果的速度。

img

整個系統裏面用到了跨地域的負載均衡,彈性降級。上面提到的應用通常都會有短期達到特別高的訪問峯值,持續一段時間會有很快的回落。負載均衡會把一些機器釋放掉下降成本。這是一整套的商業化的體系的運做。再介紹一下騰訊雲人工智能目前的提供的服務領域,包括各類人臉合成,身份證識別,智能監控,人臉軋機還有智能語音方面上的:關鍵詞搜索,語音合成等等。同時還有一些機器學習的平臺能夠幫助你們快速的去實現一些模型。同時還有大數據,能夠作海量數據的數據挖掘。還有其餘一些底層的服務,包括CPU等等。至關於像物理機,可是徹底能夠交給物理雲去託管。

img

介紹一下人臉識別的例子。人臉識比較常見的幾個應用,好比微信,人臉合成只需知道你的身份。可靠性高達99.5%。人臉檢測又分靜態與活體的檢測,靜態檢測只是比對你的特徵與庫裏面是否一致。但假設有人用一些視頻或照片來攻擊這個系統,能夠採起包括如下幾種模式的一整套活體檢測的方法:一是讓你讀一段文字或者作一些動做,或者是屏幕用不一樣的光線去照射臉部,利用反射光的一些特色來對臉部作區分,3D建模,從而判斷是視頻仍是真人。除此以外還可採用具備3D建模能力的攝像頭,打一道光到人臉上,再將反射光收集起來。目前這些技術咱們的這些技術都已比較成熟。

img

剛纔講的是1比1的人臉合成,除此以外還有用於大型場所管理的1:N的。你們若是有機會,若是去深圳能夠去騰訊的濱海大廈參觀一下,整套系統都是用這個搭建的。另外咱們提供針對場景的雲智智能視頻管理平臺。同時提供設備管理以及視頻監控、對外接口等一整套服務。

img

再來講下文字OCR,後面冀博士會詳細的介紹這部分。目前咱們能使用的領域也很是普遍,包括名片識別,傳單識別,快遞單識別等等。到了技能進階這個部分,不少人以爲作AI並不須要作算法,其實否則。首先從有想法到落地分很是多的環節。算法是很是重要的,只是相關性沒有那麼強。從AI算法的角度來說,首先要打好數學基礎,若想繼續發展還須要積累必定的算法知識。同時鍛鍊本身對最新算法學術成果吸取能力,讀論文實現算法,整套技能的提升。

這就要求在對算法必定要有了解的同時,要對算法有比較強的封裝能力。有了一個算法怎樣去封裝,讓它根據場景達到最優的效果。除此以外還能夠作AI產品開發和應用,但這就要求對目標的AI應用場景比較瞭解。用戶什麼樣,他們對於AI產品的需求是怎麼樣的,怎樣打磨產品讓他們能夠簡單的使用複雜的這些技術。這一整套其實都須要不少的思考。

6、技能進階建議

img

若是咱們在 AI 這個方向上想有所進步的話,咱們應該怎麼作?右邊有一個金字塔,並非說AI算法是它們的最高級。只是想表達若是想要作成這件事,須要的整個團隊的大小,首先要有AI算法的專家,同時要有更多工程實踐的人,而後還要有更多的產品開發人員把它打磨成產品。這點上來說像亞馬遜的公司作得就很是好,每次都會尋找一個場景而後去營造場景作AI,而不是單純從技術角度出發。

算法研究方面咱們要作什麼?首先是要打比如較強的數學基礎。由於機器學習中間大量的用到了比大學高等數學更復雜的數學知識,這些知識須要你們早作研究打好基礎,這就須要讀不少論文。同時還要鍛鍊本身對新的學術成果的理解和吸取能力,像剛纔提到了一個神經網絡圖像的分類問題,實際上,短短的十年時間實現了那麼多不一樣網絡的進化,每個新的網絡提出了,甚至尚未發表,只是在預發表庫裏面,你們就要很快的去吸取理解它,想把它轉化成能夠運行的模型,這個是要反覆鍛鍊的。

第二塊是工程實現方面,若是想從事這方面首先要增強本身邏輯算法封裝的能力,儘可能鍛鍊本身對模型的訓練和優化能力,這塊會須要你們把一個設計好的算法給落實到代碼上,不斷的去調整優化實現最好的結果,這個過程也是須要反覆磨鍊的。

最後一個方向是產品應用,這個首先你們要有必定的開發能力,無論是移動開發仍是 Web 開發,同時要提高本身 AI 產品場景的理解和應用。實際上不少AI產品跟傳統的產品是有很大的理解上的區別,你們可能要更新本身的這種想法,多去看一些 AI 產品目前是怎麼作的,有沒有好的點子,多去試用體會。同時若是咱們想把一個 AI 的模型變成百萬級、千萬級用戶使用的流行產品,咱們還須要有系統構建能力和優化能力。

img

因此在這三個領域均可以思考。關於怎麼去學習計算機視覺的一些知識,這裏有一些資料。首先斯坦福大學的一些課程是很是好的,能夠利用這個做爲切入點,把關鍵的知識點搞懂。若是不喜歡看電腦的話也能夠看其餘的幾本書。都是我以爲不錯的不一樣的做者寫的書。右邊是一些比較常見的,天天都會用到。底層還有一些打包好的更高級的書。

Q&A

Q:在視覺這塊的話前期講過焦躁問題。若是是人爲的加入噪音的話,處理的話是否是特別麻煩?它的效果和原對比有什麼區別?

A:降噪實際上是一個很複雜的問題,就像你說的這種狀況,若是噪音不是天然噪音,是手動添加噪音,你要找它的模式才能去比較有針對性的調整,我沒有對這塊有特別深的研究。個人感受是你能夠用一些深度學習比較發達,利用深度學習的模型去作。好比去馬賽克這塊,打造馬賽克的一些照片,利用深度學習算法就能恢復到原照片,或者把一些第一分辨率的照片變成高分辨率的。

Q:我想請問的問題是,PPT中關於多模態識別那一塊,如今不管是無人駕駛仍是多模態識別都是有(英文)融入到圖片當中,我就想問一下這塊有那些工做是能夠作的?好比說一個圖片裏面一個男的和女的,男的拿着戒指,這是個求婚的場景。從圖片中的內容裏面它是體現不了特徵信息的,就是關於這塊的。

A:因爲這個圖片它可能主要的內容不是那麼明顯,其實這難點是在於語義識別這塊。你要能提取戒指這個關鍵詞可能跟什麼有關。這就變成天然語言識別這塊的事了,應該有一個詞庫,可能去作搜索。因此這塊我以爲難點不在於圖像而在於後續。

問答

AI開發的語言要求是什麼?

相關閱讀

冀永楠:OCR的應用錦集及背後技術

吳琛:智慧工地——履約考勤系統的應用實踐

江鋮:乳腺癌識別By AI

此文已由做者受權騰訊雲+社區發佈,原文連接:https://cloud.tencent.com/dev...

搜索關注公衆號「雲加社區」,第一時間獲取技術乾貨,關注後回覆1024 送你一份技術課程大禮包!

海量技術實踐經驗,盡在雲加社區

相關文章
相關標籤/搜索