計算機視覺(computer vision)又稱為機器視覺(machine vision),顧名思義是一門「教」會計算機如何去「看」世界的學科。在機器學習大熱的前景之下,計算機視覺與自然語言處理(natural language process, nlp)及語音識別(speech recognition)並列為機器學習方向的三大熱點方向。而計算機視覺也由諸如梯度方向直方圖(histogram of gradient, hog)以及尺度不變特徵變換(scale-invariant feature transform, sift)等傳統的手辦特徵(hand-crafted feature)與淺層模型的組合逐漸轉向了以卷積神經網路(convolutional neural network, cnn)為代表的深度學習模型。
方法特徵提取
後續決策
傳統方法
sift,hog, raw pixel …
svm,隨機森林, 線性回歸
深度學習
cnn …
cnn傳統方法的處理流程一般為:
影象預處理→特徵提取→建立分類或回歸模型→輸出
深度學習一般採用端到端的方法,常見處理流程為:
→端到端演算法(常用深度學習)→輸出
1. 資料
影象
2.資料獲取裝置
攝像機的分類:
1.無人駕駛計算機視覺在無人駕駛中起到了非常關鍵的作用,比如道路的識別,路標的識別,紅綠燈的識別,行人識別等等平常駕駛過程中需要注意的。另外還包括三維重建及自主導航,通過雷射雷達或者視覺感測器可以重建三維模型,輔助汽車進行自主定位及導航,進行合理的路徑規劃和相關決策。
2.人臉識別
人臉識別技術目前已經研究得相對比較成熟,並在很多地方得到了應用,且人臉識別準確率目前已經高於人眼的識別準確率,很多高鐵站及門禁的地方都用到了人臉識別,很多都有刷臉系統,有些城市甚至在銀行取錢都可以直接刷臉。
3.無人安防
安防一直是我國比較重視的問題,也是人們特別重視的問題,在很多重要地點都安排有巡警巡查,在居民小區以及公司一般也都有保安巡查來確保安全。隨著計算機視覺的發展,計算機視覺技術已經能夠很好的應用到安防領域,目前很多智慧型攝像頭都已經能夠自動識別出異常行為以及可疑危險人物,及時提醒相關安防人員或者報警,加強安全防範。
4.車輛車牌識別
車輛車牌識別目前已經是一種非誠成熟的技術了,高速路上的違章檢測,車流分析,安全帶識別,智慧型紅綠燈,還有停車場的車輛身份識別等都用到了車輛車牌識別,不僅能識別出車牌的號碼,目前車輛識別技術已經能對道路上的車輛車型進行識別,通過識別攝像頭獲取的影象,能獲取到車輛的型號及顏色等特徵。
5.智慧型識圖
智慧型識圖是我們生活中比較常見的計算機視覺的應用了。看到乙個紙質文件,想要把其轉換成電子文件,直接把文件拍下來,用相關軟體進行文字識別,就能把影象中的文字自動轉換成電子文件,甚至還能自動翻譯成其他語言。看到一件衣服或乙個物品,想在網上找他的**等其他相關資訊,直接輸入,以圖搜圖,很快就能找到很多該出現的地方以及很多類似的。甚至還有些能直接告訴你中的物體是個什麼東西,或者大概判斷中的人像的大概年齡等比較好玩的功能。
6.3d重構
3d重構之前在工業領域應用比較多,可以用於對三維物體進行建模,方便測量出物體的各種引數,或者對物體進行簡單複製。最近也慢慢開始應用到民用領域了,比如新出的華為mate20系列手機,就已經可以對玩偶進行三維建模,並能夠設定一些特定的動作,讓玩偶「活」起來,甚至可以與人進行一些互動。當然這裡與人互動還用到ar技術。
7.vr/ar
vr/ar技術相信大家都已經比較熟悉了。vr眼睛在前兩年賣得特別火爆,還有一些9d遊戲機,就是利用vr技術讓人能夠有一種身臨其境的感覺。而ar技術目前比較常見的可能是雙十一時候**的天貓,還有之前比較火爆的寵物捕獲遊戲,可以在現實場景中加入一些其他元素,目前這個領域還在快速發展中。很多方便人們生活的應用也在不斷推出,比如智慧型翻譯,用手機對著需要翻譯的字,在這個介面上就自動顯示出相關的翻譯,或者後面可能實現的虛擬試衣間等,將大大的方便人們的生活。
8.智慧型拍照
這個相信是大家很熟悉的乙個名詞了,基本每個智慧型手機都開始配有這個功能。最基礎的功能包括自動**,自動白平衡,自動對焦等,還有一些去燥演算法,能很好的提高手機拍照的影象質量。隨著計算機視覺技術的進步,一些自動美顏演算法,自動掛件,自動濾鏡,場景切換等越來越多有趣的功能都被開發出來。還有一些影象處理軟體,像專業的photoshop,還有比較民用化的美圖秀秀,美顏相機等,基本也都是利用計算機視覺的技術。
9.醫學影象處理
常見的醫學成像,比如b超,核磁共振,x光拍片等。隨著ai技術的發展,還開始有一些ai診斷的功能,ai根據影象的特徵對相關疾病的可能性進行分析。
10.無人機
隨著無人機技術的發展,計算機視覺技術在無人機上的應用必不可少,軍用無人機中,可以對目標進行自動識別並自主導航,精確制導等,民用的無人機也類似,例如大疆的無人機,能夠跟蹤人進行實時的拍照,還有一些手勢控制等。還有一些特殊場景的應用,例如電力巡檢,農作物分析等。
11.工業檢測
工業領域計算機視覺也得到了充分應用,例如產品缺陷檢測,工業機械人姿態控制,利用立體視覺來獲得工件和機械人之間的相對位置姿態。
1.程式語言
2. 熟練使用linux作業系統
推薦書籍為《鳥哥的linux私房菜》。
3.機器學習和深度學習
計算機視覺中使用的機器學習方法個人感覺不算多,早期的時候會用svm做分類,現在基本都用深度學習選特徵+分類。原因在於統計機器學習這一塊雖然方法不少,但是基本都無法應對影象這麼大的資料量。 不過大家在學習過程中很容易接觸到各種機器學習方法的名字因為現在大資料分析、機器學習、語音識別、計算機視覺等這些其實分得不是很開,然後不自覺地就會去了解和學習。這樣我感覺總體來說是好的。不過在學習一些暫時用不著的演算法時,個人感覺沒必要做的太深:重在理解其思想,抓住問題本質,了解其應用方向。
傳統機器學習方法主要包括決策樹、神經網路、支援向量機、boosting、貝葉斯網等等。方法挺多的,同一類方法不同的變形更多。除了這些監督式學習,還有非監督學習、半監督學習、強化學習。當然還有一些降維演算法(如pca)等。學習資料主要推薦吳恩達的coursera課程《machine learning》,還有李航的《統計學習方法》和周志華的《機器學習》,兩本在國內機器學習界成為經典的書。
深度學習主要是cnn和rnn,近年來gan也逐漸火起來了,增強學習的發展也很快。具體學習路線後續會出專門的博文進行介紹。
4.數學
一切工程問題歸根結底都是數學問題,這裡說說計算機視覺和機器學習所涉及的數學問題。
微積分:比如影象找邊緣即求微分在數字影象裡是做差分(離散化)啦,光流演算法裡用到泰勒級數啦,空間域轉頻域的傅利葉變換啦,還有牛頓法、梯度下降、最小二乘等等這些都用的特別普遍了。
概率論與統計:這個比較高深,是應用在機器學習領域裡最重要的數序分支。應用比如:條件概率、相關係數、最大似然、大數定律、馬爾可夫鏈等等。 浙大的《概率論與數理統計》感覺還行,夠用。
線性代數與矩陣:數字影象本身就是以矩陣的形式呈現的,多個向量組成的樣本也是矩陣這種形式非常常見,大多機器學習演算法裡每個樣本都是以向量的形式存在的,多個矩陣疊加則是以張量(tensor)的形式存在google深度學習庫tensorflow的字面意思之一。具體應用,比如:世界座標系->相機座標系->影象座標系之間的轉換,特徵值、特徵向量,範數等。 推薦國外的上課教材《線性代數》。
凸優化:這個需要單獨拎出來說一下。因為太多問題(尤其機器學習領域)都是優化問題(求最優),凸優化是裡面最簡單的形式,所以大家都在想辦法怎麼把一般的優化問題轉化為凸優化問題。至於單純的凸優化理論,好像已經比較成熟了。在機器學習裡,經常會看到什麼求對偶問題、kkt條件等,潛下心花兩天學一學。
目前,計算機視覺的總體趨勢是偏向於深度學習方法,我會在以後的博文裡面重點介紹計算機視覺裡面的深度學習方法。總之,我認為計算機視覺是一門入門簡單,但是後期學習曲線陡峭的行業,行業的發展需要我們對理論的深入理解與創新,而不能僅僅侷限於復現模型或者把別人的演算法直接拿來用,我們應該深入思考演算法的下一步優化方法,以及不同演算法之間的差異。
(計算機視覺)計算機視覺基礎
opencv cximage cimg freeimage opencv中vc庫的版本與visual studio版本的對應關係 vc8 2005 vc9 2008 vc10 2010 vc11 2012 vc12 2013 vc14 2015 vc15 2017 visual studio中的輔助...
計算機視覺
主講老師 曹洋 課程 視覺 基礎 底 層處理 影象處理 特徵提 取 中 層處理 影象分割 相機標 定 深度 估計 運 動估計 高層處 理 3d 重建 目 標識別 視 覺基 礎 底層 處理 圖 像處理 特徵提取 中層 處理 圖 像分割 相機標定 深度估 計 運動 估計 高層處理 3d重 建 目標 識別...
計算機視覺
眾所周知,計算機不認識影象,只認識數字。為了使計算機能夠 理解 影象,從而具有真正意義上的 視覺 本章我們將研究如何從影象中提取有用的資料或資訊,得到影象的 非影象 的表示或描述,如數值 向量和符號等。這一過程就是特徵提取,而提取出來的這些 非影象 的表示或描述就是特徵。有了這些數值或向量形式的特徵...