文 / 阿裡淘系 - 白羅
什麼是計算機視覺 (Computer Vision)?與計算機圖形學 (Computer Graphics)以及圖像處理(Image Process)有什麼區别?
用一句話來概括,計算機視覺(CV)是一門讓計算機從圖像中提取有用信息并加以分析的科學。利用CV提取出的信息後續可以用于輔助一些決策或者任務,比如醫學圖像分析、工程測量、自動駕駛、機器人學等等。
兩個時常會被放在一起讨論具有混淆性的概念是計算機圖形學(CG)與圖像處理,它們之間的區别其實也是非常簡單,CV和CG在其實是一個方向相反的過程:CV是計算機從圖像中提煉有用的信息,而CG通過使用數學模型和計算機算法來生成圖像。而圖像處理的輸入和産出都是圖像,隻不過産出的圖像在某些特征上被強化或者提取出來了。(三者的流程圖如下)
從上述定義我們也可以看出來,CV并不是類似谷歌街景, Google Glass, Pokeymon Go (AR), deep fake等一些聽起來與之有所聯系的應用所使用的核心技術(也許某一環節會用到CV,但不是核心技術)。而CV真正高強度應用的場景是無人駕駛, OCR, 安檢時對包裹的智能篩查, 醫學成像分析, 機器人視覺, 軍事上通過圖像對目标的篩查定位等等需要計算機分析圖像以提煉信息的場景。
計算機視覺與人眼的對比人眼的視覺簡單來說是一種對三維世界的二維投影(受到視角變換的影響),可見的波長在400-800納米之間,色域可以被RGB系統概括。而三分之一的人腦都與人眼中的視網膜、視神經相連或間接相關。
計算機視覺的成像儀器并不像人眼那麼單一,相比于人眼的可見光頻域,計算機視覺甚至不局限于電磁波的領域(例如B超成像)。關于成像的維度,傳統相機為二維圖像,雷達等為2.5D圖像(多出的半個維度是距離),核磁共振等為3D圖像(由大量二維圖像在Z軸上疊加形成第三個維度)。
如果我們嘗試對CV的流程分步驟進行一個抽象化的總結,可以得到兩條非常經典的鍊路。在傳統的CV手段中,我們很少會直接将二維圖像(甚至更高維度的圖像)展平到一維,然後直接輸入到傳統的機器學習模型(比如決策樹家族、SVM、KNN、MLP等等)當中,通常我們會對原始圖像做一次特征提取,将一些更數據化的特征作為機器學習的輸入,讓模型更準确高效地運轉。而近年來,深度學習的崛起很大程度上颠覆了人們對這一經驗規律的認知,CNN及其衍生模型(ResNet等)、GAN、已經兩年年火熱的自監督式學習(如對比學習)在很多情景下已經可以取代手工特征提取,一個非常經典的例子,過去的圍棋AI中,工程師會提取每塊棋的氣、雙方所圍空的位置大小等等信息作為模型的輸入,但是随着AlphaGo系列的橫空出世,手工提取特征被證明在這一情景下遠不如讓深度學習模型的卷積及池化層自行提取來得準确高效。
在過去幾年中,很多懷着對深度學習憧憬的工程師在大熱潮投入了這個領域,但可能到現在發現它并沒有如預期般的那樣神乎其技。冷靜下來的人們開始反思,深度學習是否被過度炒作了?要闡述這個問題,可以從Gartner曲線 (Gartner Hype Cycle)談起。縱觀一項技術的生命周期,往往可以被分為五個階段:1. 初創的攀升期 2. 泡沫膨脹的巅峰期 3. 泡沫幻滅的低谷期 4. 邁向成熟的光明期 5. 在生産中落地的高原期。
下面幾張圖為Gartner官方對近期一些比較火熱的前沿技術的統計結果。如圖所示,在近五年内,深度學習(箭頭标出的)正在從2016年的期待值的泡沫巅峰逐步走向幻滅低谷期,可以預期的是,深度學習接下來會伴随着質疑和悲觀預期經曆很長一段時間的蟄伏期,直至邁向成熟。
空間采樣、量化、與連通性策略是将圖像做數字化表達過程中涉及到的重要概念。 空間采樣: 描述單位空間内的樣本數量。
量化: 将每個像素點在色彩通道内的亮度按照區間從連續分布轉化為離散分布的過程。
四連通與八連通: 像素點計算領域的劃分标準。四連通即是像素四條邊相連的區域,八連通比四連通多四個角。
距離: 歐式距離 (Euclidean) - 兩點之間的直線距離 曼哈頓距離 (City Block) - 沿着方格線行走的兩點間距(即僅水平和豎直四個方向移動) 切比雪夫距離距離 (Chess Board) - 沿着方格線及對角行走的兩點間距(即水平、豎直、以及對角八個方向移動)
一張圖片中往往有前景(foreground)和背景(background),在我們判斷圖中哪些像素點連成一個區塊之前,我們需要确定前景和背景的連通性策略:通常有背景四連通、前景八連通與背景八連通、前景四連通這兩種。為什麼不采用背景前景都是四連通或者八連通的策略呢?如下圖所示:
背景如果和前景保持相同的連通性策略會導緻上圖中前景和背景完全連通或者完全破碎的極端局面。
遞歸算法 (Recursive Algorithm)作為一種計算像素連通區域的基礎思路,遞歸法的策略非常簡單:遍曆圖像中所有的像素點,遇到未标記區域編号的點即遞歸用當前的區域編号标記與之相連的所有像素點。
盡管遞歸策略能夠解決問題,但是對資源損耗過大,這裡有一種進階的方法可以運用與像素區域連通性問題:
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!