計算機視覺發展歷程及其所面臨的任務

這篇文章主要講述(1)計算機視覺的技術發展歷程、(2)人工智能的幾代革命、(3)計算機視覺所面臨的幾大任務,(4)最後介紹學習或者從事計算機視覺領域所面臨的電腦硬件配置、GPU配置問題。

1.計算機視覺有怎樣的發展歷程?

  • 20世紀50年代,主題針對於二維圖像的分析和識別;
  • 20世紀60年代,開創了三維視覺理解為目的的研究;
  • 20世紀70年代,出現課程和明確理論體系;
  • 20世紀80年代 ,獨立學科形成,理論從實驗室走向應用;
  • 20世紀90年代,特徵對象識別開始成為重點;
  • 21世紀初,圖像特徵工程,出現真正擁有標註的高質量數據集;
  • 2010年-至今 深度學習在視覺中的流行,在應用上百花齊放;

想要詳細瞭解計算機視覺的歷史發展歷程,請訪問原文:

https://zhuanlan.zhihu.com/p/142927311

說到計算機視覺的發展歷程,不得不說華人科學家李飛飛在這個領域做出的貢獻。在2009年,李飛飛教授等在CVPR2009上發表了一篇名為《ImageNet: A Large-Scale Hierarchical Image Database》的論文,發佈了ImageNet數據集,改變了人們對數據集在計算機視覺中的認識,人們真正開始意識到數據集的重要程度,就像算法一樣重要"。

在2012年,深度學習模型應用在ImageNet圖像競賽中以碾壓性奪冠,也就是通過這個競賽以及發表的論文,深度學習這個術語被明確提出來,人們見識到深度學習模型的性能很好,因此深度學習模型(或者說是卷積神經網絡,簡稱CNN)從那之後到現在都是計算機視覺領域經典模型。

2.人工智能歷經哪幾代革命?

人工智能按大體方向來看,已經歷經三代人工智能系統,分別如下:

計算機視覺發展歷程及其所面臨的任務

(1)第一代人工智能

知識 + 算法 + 算力。第一代人工智能是依賴知識體系來構建人工智能系統的,或者通俗一點來理解,就是依賴專業人士、有行業研究經驗來生產推理和構建的專家系統。

(2)第二代人工智能

數據 + 算法 + 算力。第二代人工智能是我們今天廣泛應用的,從第一代依賴專家到第二代依賴數據中的規律來識別事物的各種行為。

(3)第三代人工智能

知識 + 數據 + 算法 + 算力。第三代人工智能是綜合了第一代、第二代人工智能的特點,兼顧了第一代的專家知識推理,以及結合了第二代的數據的信息和規律。強化學習等這些都是第三代人工智能的研究對象。

現在來看,我們很多學生或者從業人員主要還是接觸第二代人工智能比較多,第三代人工智能的技術還在不斷的研究和突破中,相對來說還不夠第二代人工智能成熟和廣泛使用。

3.計算機視覺面臨著哪些任務?

在說這個話題之前,我們不妨來思考一下,我們通過眼睛看到某個事物到做出相對應的目標決策是怎樣的呢?

計算機視覺發展歷程及其所面臨的任務

假如,小明走在路上,突然看到一個水窪坑,小明會避開水窪坑從旁邊走過去,為什麼呢?

這問題看似是個小兒科問題,其實在今天的計算機視覺裡面,這個例子將是一個充滿大學問的問題。

首先,分析小明為什麼會避開?

在小時候或者成長過程中,小明他媽媽可能帶他出去逛街的時候,恰逢最近下雨,路上的水窪坑很多,然後小明的媽媽告訴小明說:明明,這水窪坑很髒,以後碰到就要避開,不要踩上去,以免弄髒你的鞋子。

大學問來了,拆解問題:

  1. 看到水窪坑——>[獲取信息]
  2. 水窪坑——>[實際畫面場景]
  3. 媽媽告訴小明這個水窪坑不能踩——>[這是一個答案]

小明會避開水窪坑,是因為這個場景畫面他見過,並且媽媽告訴他,這是不能踩的。究其原因是小明從媽媽那裡學習到這個不能踩的知識,因此小明做出避開水窪坑的這個決策。

知道問題(特徵),也知道答案(標籤),這在機器學習裡面屬於有監督學習算法,小明的這種能力就是一種在媽媽監督教育下獲取到的答案和經驗,這是典型的有監督學習。

最後引論到計算機視覺的任務:

從上面趣味案例可以知道,計算機視覺也要類似人類先獲取信息、分析和學習場景信息,最後做出決策。

  • 計算機視覺如何獲取信息?
計算機視覺發展歷程及其所面臨的任務

傳感器,更加直觀理解的是攝像頭,通過攝像頭拍攝畫面場景圖像、視頻。

  • 如何讓機器知道某個畫面場景是什麼事物,能不能踩?

這個問題相當於數據標註,針對這個場景,給它打上對應的標籤,比如上面的水窪坑畫面,就給它標註"水窪坑",如果是平地畫面,那麼就給它標註“平地”,如果是“彎道”畫面,那麼就給它標註“彎道”。能不能踩,這個就根據我們標註的畫面與其對應的標籤添加到算法模型中,讓模型學習和訓練,以此來識別到底能不能踩?


計算機視覺任務?

  1. 圖像/視頻處理

(1)因為計算機智能識別0、1這些數字,所以要將非結構化的圖像或者視頻進行結構化,通俗來講就是將圖像進行數字向量化,轉換成0~255之間的像素值矩陣。

(2)常見的圖像/視頻處理模塊有:PIL、OpenCV等

2.圖像標註

(1)這是人工智能必不可少的環節,所謂人工智能就是初步先手工標註和設計標籤,然後才能實現智能。

(2)圖像標註要根據不同細分領域進行針對性的數據標籤,比如對於圖像分類任務,只需要標註對應圖像的類別標籤即可。但是對於目標檢測任務來講,不僅要標籤類別標籤,還需要把需要識別的對象用矩形框給框出座標來。

3.算法模型之類

可以分為傳統算法和深度學習算法。現在計算機視覺領域主要是以卷積神經網絡(CNN)為主要的深度學習模型。這些技術在後續章節中再詳細講述,現在不做展開細講。

4.計算機視覺需要需要哪些硬件環境?

從事這個領域的工程師都知道,這些領域是非常消耗算力的,電腦硬件性能不好或者服務器不給力,你根本跑不動模型。可能在校學生做的項目還是輕量級,可能對這個問題沒有很深的體會,如果你是從事或者準備往這個方向發展的同學或同行,你必須要有一個還說的過去的顯卡,比如GTX1080Ti、GTX1650,或者更高配置的顯卡或服務器。不然你很能學習這個領域的,深一點的模型跑不動,或者能跑的動的模型,又要等個半天一天這樣,這樣學習和成長效率太低了。看個人情況,能有高性能顯卡當然是最好的,現在這些模型非常依賴算力。深度學習的GPU環境配置,到後續再手把手教大家如何安裝和使用。

部分知識參考於網絡,如有侵權請聯繫刪除。

今天是計算機視覺的第2篇文章,後續持續講述整個計算機視覺的項目開發流程及其對應的技術和理論認知,如果你對這個感興趣,歡迎關注 ——> 【數據與算法時代】,覺得不錯,可以點個贊哦!


分享到:


相關文章: