人工智能原本只是人類一個美好的想象,沒想到,它卻成為了21世紀最熱的話題之一。
隨著近幾年人工智能的發展,已經逐漸滲透到了各個領域,比如:醫療、教育、機械自動化、個性化推薦、信息安全、圖像識別等等......
也正因為如此,很多準備入門 AI 的新手,都會面臨一個共同的問題:AI 應用方向么多,到底該選擇哪個?哪個才是最適合自己的?
在人工智能的眾多細分領域中,有一個入門門檻相對較低、模型成熟但人才缺口大的方向——計算機視覺(Computer Vision)。
1 基于計算機視覺開發的產品
如果你了解計算機視覺,并細心觀察,會發現其實它早已成為人們日常生活的一部分了。計算機視覺的應用已經被越來越多的公司部署在自身的產品中,舉幾個比較前沿的例子:
Facebook “反人臉識別”
扎克伯格提過Facebook將來三大主要發展方向,人工智能就是其中之一,并為此設立了FAIR(Facebook AI Research)。
去年,FAIR針對世界上有關人臉識別技術的濫用事件(AI換臉),開發了一套適用于視頻、現場直播等場景的“去識別化”’技術——反人臉識別。

該技術將一個對抗自編碼器與一個訓練過的面部分類器配對,以使人的面部稍微扭曲,從而在迷惑面部識別系統的同時,又能維持一個人們可以認出來的自然樣貌。
雖然Facebook還不打算在其任何商業產品中使用這項技術,但這項技術在很多場景中是有益的,比如保護個人隱私。
Amazon Go
Amazon Go 是計算機視覺試圖對零售行業進行改革的嘗試。
它所實現的功能是:顧客進入商店,閘機讀取顧客的二維碼,選擇所需商品,離開商店,不用排隊結賬。

其核心技術基于一種無線射頻識別技術的系統——它能識別用戶從貨架上取貨的動作,隨后將數據同步到用戶的手機中。用戶在穿過特別設置的“交易區”(transition area)后,系統會自動識別,算出花銷,然后從亞馬遜賬戶中扣款;另外,這套系統還能利用顧客的購買記錄,來分析用戶偏好,然后調整相應的貨物位置和庫存。
哎,不知道超市收銀員們聽了怎么想?
微軟 InnerEye
醫療行業當然也少不了計算機視覺的應用。
微軟有一款處理醫學圖像的產品——InnerEye,其基于計算機視覺和機器學習技術,幫助放射科醫生、腫瘤專家和外科醫生處理放射圖像。其主要目的是從惡性腫瘤的 3D 圖像中準確識別出腫瘤。

隨著計算機視覺技術的引入,現代醫療系統必將實現突破性的發展,風險低、創傷性小的手術方案在未來也將成為可能。
2 入門計算機視覺必知的技術
“工欲善其事必先利其器”,盡管計算機視覺是人工智能中相對入門門檻較低的方向,但作為CV新人,你至少要掌握以下必備技能:
1.編程基礎
推薦Matlab,Python,C++,最好熟悉其中2種。
2.數學基礎
了解微積分,概率學、矩陣論、線性代數等。
3.專業工具OpenCV
OpenCV(開源計算機視覺庫)是一個非常強大的學習資料庫,為初學者們降低了計算機視覺的學習門檻。
4.圖像處理的基礎知識
圖像處理 (Image Processing)是通過計算機對圖像進行去除噪聲、增強、復原、分割、提取特征等處理的方法和技術。
5.模式識別的基礎知識
模式識別(Pattern Recognition),就是通過計算機用數學技術方法來研究模式的自動處理和判讀。
有了以上基礎,你算是半只腳踏進了計算機視覺的大門,但是離找一份相關的工作還有所差距。企業看重的是技術的落地效益,所以,初學者們還需要在計算機視覺的應用方面花功夫。
根據視覺的應用場景不同,計算機視覺分為了傳統視覺和與深度學習結合的計算機視覺,兩個分支要求你學習的內容也不同。
傳統計算機視覺
傳統計算機視覺的應用主要在制造針對特定對象的檢測器,如邊緣檢測,霍夫變換,斑點檢測,角點檢測。其優勢體現在精準度和計算復雜性等方面。
對此,你需要學習在一些具體的應用層面的知識。
1、ROS
ROS(robotics operating system)機器人操作系統,目前能夠應用的是機器人領域,主要是機器人的建模、感知、導航、規劃等。

而ROS與計算機視覺的交織領域是機器視覺,目前,機器視覺解決方案尚面臨著9大挑戰:照明、變形或鉸接、職位和方向、背景、閉塞、比例、照相機放置、運動、期望。
因此,解決機器人在環境中的視覺,任務設置和工作場所等問題,需要在計算機視覺領域的更多投入。
2、自動駕駛
計算機視覺在無人車上的使用有一些比較直觀的例子,比如交通標志和信號燈的識別(google)、高速公路車道的檢測定位(特斯拉)。現在基于LiDAR信息實現的一些功能模塊,其實也可以用攝像頭基于計算機視覺來實現。
從計算機視覺的角度,無人駕駛可能是一次難得的機遇,數據的極大豐富和算法的迭代提高相輔相成,會推動計算機視覺研究前進,并使之在無人駕駛中起到更加不可或缺的作用。
與深度學習結合的計算機視覺
與深度學習結合,作為傳統計算機視覺的一個補充,它的應用領域主要在一些能允許一定錯誤率的行業,比如圖像搜索、監視、自動化零售等,其最大的優勢就是自動創建特性、具有實時決策功能。
1、深度學習
深度學習(Deep Learning)的概念是Hinton等人于2006年提出的,最早最成功的應用領域就是計算機視覺,經典的卷積神經網絡就是為專門處理圖片數據而生。
目前深度學習已經廣泛應用在計算機視覺、語音識別、自然語言處理、智能推薦等領域。關于深度學習的方法,大致分為三種:
◆ 深度監督學習
監督學習應用在當數據標記、分類器分類或數值預測的情況。
◆ 深度無監督學習
當輸入數據沒有標記時,可應用無監督學習方法從數據中提取特征并對其進行分類或標記。
◆ 深度強化學習
強化學習使用獎懲系統預測學習模型的下一步。這主要用于游戲和機器人,解決平常的決策問題。
2、CNN
計算機視覺里經常使卷積神經網絡,即CNN,是一種對人腦比較精準的模擬。
什么是卷積?卷積就是兩個函數之間的相互關系,然后得出一個新的值,他是在連續空間做積分計算,然后在離散空間內求和的過程。實際上在計算機視覺里面,可以把卷積當做一個抽象的過程,就是把小區域內的信息統計抽象出來。
那為什么時隔20年,卷積神經網絡能卷土重來、占領主流?原因有二:
◆ 深度的卷積神經網絡需要大量數據進行訓練,否則機器學習中的過擬合將不可避免。而2006及2007年開始,正好是互聯網開始大量產生各種各樣的圖片數據的時候。
◆ 隨著GPU計算能力的增長,運算能力的提升,使卷積神經網絡結合大數據的訓練才成為可能。
深度學習已經成為計算機視覺系統的重要組成部分,但是傳統的計算機視覺依然保持著強勢勁頭。
所以,你要做得就是選擇自己感興趣的計算機視覺應用方向,在掌握一定基礎的情況下,深入學習某個領域需要的知識即可。
3 入門計算機視覺的秘籍
目前計算機視覺領域來說有著兩極分化——基礎理論扎實,實踐能力強的人,是真的非常好找工作。相反,只是學會基礎,運行一下網上公開模型,這種人想找份好工作可能就無望了。
對于初學者來說,要想扎實的學習計算機視覺技術,就要先掌握計算機視覺的開發工具——OpenCV,并在實踐中學習。
OpenCV是開源視覺開發庫里的“老人”,很早就開始做 CV 領域的開源。相對于家喻戶曉pytorch 和 tensorflow ,OpenCV 在應用上有以下優勢:
◆ 豐富、高效的傳統算法(視頻分析、3D 重建、光流算法)
◆ 端到端的IO(從攝像頭讀入、顯示屏輸出)
◆ CPU、(GPU)、VPU加速效果好