來了解下計算機視覺的八大應用

原文連接:mp.weixin.qq.com/s/z9QbjeoLo…html

以前經過三篇文章簡單介紹了機器學習經常使用的幾種經典算法,固然也包括了目前很火的 CNNs 算法了:git

這些算法各有各的優缺點和適用的領域,瞭解熟悉它們是頗有必要的,但如何應用它們還須要具體問題具體分析,而機器學習常見的應用方向,包括如下幾個:程序員

  • 計算機視覺(CV)
  • 天然語言處理(NLP)
  • 語音識別
  • 推薦系統
  • 廣告

等等github

更詳細的能夠參考以前推薦過的一個網站:算法

paperswithcode.com/sota安全

這個網站很是詳細劃分了 16 個大方向,包括總共 1081 個子方向。若是想進入機器學習領域,首先仍是選擇一個方向領域,而後瞭解和熟悉該方向領域內所須要的算法,特定的解決技巧等。微信

固然,這篇文章主要介紹的是計算機視覺的應用,計算機視覺也算是這 16 個方向裏面最熱門也是發展最成熟的其中一個方向了。網絡

計算機視覺能夠分爲如下幾大方向:架構

  1. 圖像分類
  2. 目標檢測
  3. 圖像分割
  4. 風格遷移
  5. 圖像重構
  6. 超分辨率
  7. 圖像生成
  8. 人臉
  9. 其餘

雖然這裏說的都是圖像,但其實視頻也屬於計算機視覺的研究對象,因此還有視頻分類、檢測、生成,以及追蹤,但篇幅的關係,以及目前研究工做方向也集中於圖像,暫時就不介紹視頻方面應用的內容。app

每一個方向會簡單介紹該方向須要解決的問題,以及推薦一些 Github 項目、論文或者是綜述文章。


1. 圖像分類(Image Classification)

圖像分類,也能夠稱爲圖像識別,顧名思義,就是辨別圖像是什麼,或者說圖像中的物體屬於什麼類別。

圖像分類根據不一樣分類標準能夠劃分爲不少種子方向。

好比根據類別標籤,能夠劃分爲:

  • 二分類問題,好比判斷圖片中是否包含人臉;
  • 多分類問題,好比鳥類識別;
  • 多標籤分類,每一個類別都包含多種屬性的標籤,好比對於服飾分類,能夠加上衣服顏色、紋理、袖長等標籤,輸出的不僅是單一的類別,還能夠包括多個屬性。

根據分類對象,能夠劃分爲:

  • 通用分類,好比簡單劃分爲鳥類、車、貓、狗等類別;
  • 細粒度分類,目前圖像分類比較熱門的領域,好比鳥類、花卉、貓狗等類別,它們的一些更精細的類別之間很是類似,而同個類別則可能因爲遮擋、角度、光照等緣由就不易分辨。

根據類別數量,還能夠分爲:

  • Few-shot learning:即小樣本學習,訓練集中每一個類別數量不多,包括 one-shotzero-shot
  • large-scale learning:大規模樣本學習,也是如今主流的分類方法,這也是因爲深度學習對數據集的要求。

推薦的 Github 項目以下:

論文:

文章:

經常使用的圖像分類數據集:

  • Mnist:手寫數字數據集,包含 60000 張訓練集和 10000 張測試集。
  • Cifar:分爲 Cifar10 和 Cifar100。前者包含 60000 張圖片,總共10個類別,每類 6000 張圖片。後者是 100 個類別,每一個類別 600 張圖片。類別包括貓狗鳥等動物、飛機汽車船等交通工具。
  • Imagenet:應該是目前最大的開源圖像數據集,包含 1500 萬張圖片,2.2 萬個類別。

2. 目標檢測(Object Detection)

目標檢測一般包含兩方面的工做,首先是找到目標,而後就是識別目標。

目標檢測能夠分爲單物體檢測和多物體檢測,即圖像中目標的數量,例子以下所示:

以上兩個例子是來自 VOC 2012 數據集的圖片,實際上還有更多更復雜的場景,如 MS COCO 數據集的圖片例子:

目標檢測領域,其實有不少方法,其發展史以下所示:

從上圖能夠知道有幾個方法系列:

  • R-CNN 系列,從 R-CNN 到 Fast R-CNN、Faster R-CNN,Mask R-CNN;
  • YOLO 系列,從 v1 到 2018 年的 v3 版本

Github 項目:

論文:

文章:

經常使用的數據集:

3. 圖像分割(Object Segmentation)

圖像分割是基於圖像檢測的,它須要檢測到目標物體,而後把物體分割出來。

圖像分割能夠分爲三種:

  • 普通分割:將不一樣分屬於不一樣物體的像素區域分開,好比前景區域和後景區域的分割;
  • 語義分割:普通分割的基礎上,在像素級別上的分類,屬於同一類的像素都要被歸爲一類,好比分割出不一樣類別的物體;
  • 實例分割:語義分割的基礎上,分割出每一個實例物體,好比對圖片中的多隻狗都分割出來,識別出來它們是不一樣的個體,不只僅是屬於哪一個類別。

一個圖形分割的例子以下所示,下圖就是一個實例分割的例子,用不一樣的顏色表示不一樣的實例。

Github:

論文:

文章:

4. 風格遷移(Style Transfer)

風格遷移是指將一個領域或者幾張圖片的風格應用到其餘領域或者圖片上。好比將抽象派的風格應用到寫實派的圖片上。

一個風格遷移的例子以下, 圖 A 是原圖,後面的 B-F 五幅圖都是根據不一樣風格獲得的結果。

通常數據集採用經常使用的數據集加一些著名的藝術畫做品,好比梵高、畢加索等。

Github:

論文:

文章:

5. 圖像重構(Image Reconstruction)

圖像重構,也稱爲圖像修復(Image Inpainting),其目的就是修復圖像中缺失的地方,好比能夠用於修復一些老的有損壞的黑白照片和影片。一般會採用經常使用的數據集,而後人爲製造圖片中須要修復的地方。

一個修復的例子以下所示,總共是四張須要修復的圖片,例子來自論文"Image Inpainting for Irregular Holes Using Partial Convolutions"。

論文:

Github:

文章:

6. 超分辨率(Super-Resolution)

超分辨率是指生成一個比原圖分辨率更高、細節更清晰的任務。一個例子以下圖所示,圖例來自論文"Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network"。

一般超分辨率的模型也能夠用於解決圖像恢復(image restoration)和修復(inpainting),由於它們都是解決比較關聯的問題。

經常使用的數據集主要是採用現有的數據集,並生成分辨率較低的圖片用於模型的訓練。

Github:

論文:

文章:

7. 圖像生成(Image Synthesis)

圖像生成是根據一張圖片生成修改部分區域的圖片或者是全新的圖片的任務。這個應用最近幾年快速發展,主要緣由也是因爲 GANs 是最近幾年很是熱門的研究方向,而圖像生成就是 GANs 的一大應用。

一個圖像生成例子以下:

Githubs:

論文:

文章:

8. 人臉

人臉方面的應用,包括人臉識別、人臉檢測、人臉匹配、人臉對齊等等,這應該是計算機視覺方面最熱門也是發展最成熟的應用,並且已經比較普遍的應用在各類安全、身份認證等,好比人臉支付、人臉解鎖。

這裏就直接推薦幾個 Github 項目、論文、文章和數據集

Github:

論文:

文章:

數據集:

10. 其餘

實際上還有其餘不少方向,包括:

  • 圖文生成(Image Captioning):給圖片生成一段描述。

Show and Tell: A Neural Image Caption Generator, 2014.

  • 文本生成圖片(Text to Image):基於文原本生成圖片。

AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Adversarial Networks, 2017.

  • 圖片上色(Image Colorization):將圖片從黑白變爲彩色圖。

Colorful Image Colorization, 2016.

  • 人體姿態估計(human pose estimation):識別人的行爲動做

Cascaded Pyramid Network for Multi-Person Pose Estimation, 2017

還有包括 3D、視頻、醫學圖像、問答、自動駕駛、追蹤等等方向,具體能夠查看下面這個網站:

paperswithcode.com/area/comput…

而若是認定一個方向,想開始學習這方面的內容,首先推薦能夠先查找中文方面的綜述文章或者論文,固然若是英語閱讀能力比較好的,也能夠查看英文的綜述文章,經過看綜述來查看下本身須要閱讀的論文,論文推薦先看最近3-5年內的論文,太太久遠的論文,除非須要更加深刻了解某個算法,不然都不太須要閱讀。

此外,就是須要結合實際項目來加深對算法的瞭解,經過跑下代碼,也能夠更好了解某個算法具體是如何實現的。


參考


小結

本文簡單介紹了幾個計算機視覺方面的應用,包括應用解決的問題以及推薦了幾個 Github 項目和論文、文章,和經常使用數據集。

歡迎關注個人微信公衆號--機器學習與計算機視覺,或者掃描下方的二維碼,你們一塊兒交流,學習和進步!

往期精彩推薦

機器學習系列
Github項目 & 資源教程推薦
相關文章
相關標籤/搜索