来了解下计算机视觉的八大应用
2019 第 40 篇,總第 64 篇文章
本文大約7000字,建議收藏閱讀
之前通過三篇文章簡單介紹了機器學習常用的幾種經典算法,當然也包括了目前很火的 CNNs 算法了:
常用機器學習算法匯總比較(上)
常用機器學習算法匯總比較(中)
常用機器學習算法匯總比較(完)
這些算法各有各的優缺點和適用的領域,了解熟悉它們是很有必要的,但如何應用它們還需要具體問題具體分析,而機器學習常見的應用方向,包括以下幾個:
計算機視覺(CV)
自然語言處理(NLP)
語音識別
推薦系統
廣告
等等
更詳細的可以參考之前推薦過的一個網站:
https://paperswithcode.com/sota
這個網站非常詳細劃分了 16 個大方向,包括總共 1081 個子方向。如果想進入機器學習領域,首先還是選擇一個方向領域,然后了解和熟悉該方向領域內所需要的算法,特定的解決技巧等。
當然,這篇文章主要介紹的是計算機視覺的應用,計算機視覺也算是這 16 個方向里面最熱門也是發展最成熟的其中一個方向了。
計算機視覺可以分為以下幾大方向:
圖像分類
目標檢測
圖像分割
風格遷移
圖像重構
超分辨率
圖像生成
人臉
其他
雖然這里說的都是圖像,但其實視頻也屬于計算機視覺的研究對象,所以還有視頻分類、檢測、生成,以及追蹤,但篇幅的關系,以及目前研究工作方向也集中于圖像,暫時就不介紹視頻方面應用的內容。
每個方向會簡單介紹該方向需要解決的問題,以及推薦一些 Github 項目、論文或者是綜述文章。
因為公眾號不支持外鏈,所以文中部分鏈接無法直接點開,可以點擊文末“閱讀原文”,查看原文來直接跳轉鏈接。
1. 圖像分類(Image Classification)
圖像分類,也可以稱為圖像識別,顧名思義,就是辨別圖像是什么,或者說圖像中的物體屬于什么類別。
圖像分類根據不同分類標準可以劃分為很多種子方向。
比如根據類別標簽,可以劃分為:
二分類問題,比如判斷圖片中是否包含人臉;
多分類問題,比如鳥類識別;
多標簽分類,每個類別都包含多種屬性的標簽,比如對于服飾分類,可以加上衣服顏色、紋理、袖長等標簽,輸出的不只是單一的類別,還可以包括多個屬性。
根據分類對象,可以劃分為:
通用分類,比如簡單劃分為鳥類、車、貓、狗等類別;
細粒度分類,目前圖像分類比較熱門的領域,比如鳥類、花卉、貓狗等類別,它們的一些更精細的類別之間非常相似,而同個類別則可能由于遮擋、角度、光照等原因就不易分辨。
根據類別數量,還可以分為:
Few-shot learning:即小樣本學習,訓練集中每個類別數量很少,包括 one-shot?和?zero-shot ;
large-scale learning:大規模樣本學習,也是現在主流的分類方法,這也是由于深度學習對數據集的要求。
推薦的 Github 項目如下:
Awesome Image Classification
awesome-few-shot-learning
awesome-zero-shot-learning
論文:
ImageNet Classification With Deep Convolutional Neural Networks, 2012
Very Deep Convolutional Networks for Large-Scale Image Recognition, 2014.
Going Deeper with Convolutions, 2015.
Deep Residual Learning for Image Recognition, 2015.
Inceptionv4 && Inception-ResNetv2,2016
RexNext,2016
NasNet,2017
ShuffleNetV2,2018
SKNet,2019
文章:
入門 | 從VGG到NASNet,一文概覽圖像分類網絡
CNN網絡架構演進:從LeNet到DenseNet
曠視南京研究院魏秀參:細粒度圖像分析綜述
小樣本學習年度進展|VALSE2018
常用的圖像分類數據集:
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 項目:
awesome-object-detection
https://github.com/facebookresearch/Detectron
https://github.com/jwyang/faster-rcnn.pytorch
論文:
R-CNN,2013
Fast R-CNN,2015
Faster R-CNN,2015
Mask R-CNN,2017
YOLO,2015
YOLOv2,2016
YOLOv3,2018
SSD,2015
FPN,2016
文章:
一文讀懂目標檢測:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD
教程 | 單級式目標檢測方法概述:YOLO 與 SSD
從 RCNN 到 SSD,這應該是最全的一份目標檢測算法盤點
從 R-CNN 到 RFBNet,目標檢測架構 5 年演進全盤點
常用的數據集:
VOC 2012
MS COCO
3. 圖像分割(Object Segmentation)
圖像分割是基于圖像檢測的,它需要檢測到目標物體,然后把物體分割出來。
圖像分割可以分為三種:
普通分割:將不同分屬于不同物體的像素區域分開,比如前景區域和后景區域的分割;
語義分割:普通分割的基礎上,在像素級別上的分類,屬于同一類的像素都要被歸為一類,比如分割出不同類別的物體;
實例分割:語義分割的基礎上,分割出每個實例物體,比如對圖片中的多只狗都分割出來,識別出來它們是不同的個體,不僅僅是屬于哪個類別。
一個圖形分割的例子如下所示,下圖就是一個實例分割的例子,用不同的顏色表示不同的實例。
Github:
awesome-semantic-segmentation
論文:
U-Net,2015
DeepLab,2016
FCN,2016
文章:
深度 | 用于圖像分割的卷積神經網絡:從R-CNN到Mark R-CNN
綜述----圖像分割綜述
圖像語義分割綜述
4. 風格遷移(Style Transfer)
風格遷移是指將一個領域或者幾張圖片的風格應用到其他領域或者圖片上。比如將抽象派的風格應用到寫實派的圖片上。
一個風格遷移的例子如下, 圖 A 是原圖,后面的 B-F 五幅圖都是根據不同風格得到的結果。
一般數據集采用常用的數據集加一些著名的藝術畫作品,比如梵高、畢加索等。
Github:
A simple, concise tensorflow implementation of style transfer (neural style)
TensorFlow (Python API) implementation of Neural Style
TensorFlow CNN for fast style transfer
論文:
A Neural Algorithm of Artistic Style,2015
Image Style Transfer Using Convolutional Neural Networks, 2016
Deep Photo Style Transfer,2017
文章:
圖像風格遷移(Neural Style)簡史
Style Transfer | 風格遷移綜述
感知損失(Perceptual Losses)
圖像風格轉換(Image style transfer)
風格遷移(Style Transfer)論文閱讀整理(一)
5. 圖像重構(Image Reconstruction)
圖像重構,也稱為圖像修復(Image Inpainting),其目的就是修復圖像中缺失的地方,比如可以用于修復一些老的有損壞的黑白照片和影片。通常會采用常用的數據集,然后人為制造圖片中需要修復的地方。
一個修復的例子如下所示,總共是四張需要修復的圖片,例子來自論文"Image Inpainting for Irregular Holes Using Partial Convolutions"。
論文:
Pixel Recurrent Neural Networks, 2016.
Image Inpainting for Irregular Holes Using Partial Convolutions, 2018.
Highly Scalable Image Reconstruction using Deep Neural Networks with Bandpass Filtering, 2018.
Generative Image Inpainting with Contextual Attention, 2018
Free-Form Image Inpainting with Gated Convolution,2018
EdgeConnect: Generative Image Inpainting with Adversarial Edge Learning,2019
Github:
Awesome-Image-Inpainting
generative_inpainting
edge-connect
文章:
女神被打碼了?一筆一劃腦補回來,效果超越Adobe | 已開源
2018 CVPR image inpainting
6. 超分辨率(Super-Resolution)
超分辨率是指生成一個比原圖分辨率更高、細節更清晰的任務。一個例子如下圖所示,圖例來自論文"Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network"。
通常超分辨率的模型也可以用于解決圖像恢復(image restoration)和修復(inpainting),因為它們都是解決比較關聯的問題。
常用的數據集主要是采用現有的數據集,并生成分辨率較低的圖片用于模型的訓練。
Github:
Image Super-Resolution for Anime-Style Art--用于動漫圖片的超分辨率應用,14k 的 stars
neural-enhance
Image super-resolution through deep learning
論文:
Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network, 2017.
Deep Laplacian Pyramid Networks for Fast and Accurate Super-Resolution, 2017.
Deep Image Prior, 2017.
ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks,2018
文章:
圖像超分辨率重建
超分辨率技術如何發展?這6篇ECCV 18論文帶你一次盡覽
深度學習圖像超分辨率最新綜述:從模型到應用
ESRGAN:基于GAN的增強超分辨率方法(附代碼解析)
7. 圖像生成(Image Synthesis)
圖像生成是根據一張圖片生成修改部分區域的圖片或者是全新的圖片的任務。這個應用最近幾年快速發展,主要原因也是由于 GANs 是最近幾年非常熱門的研究方向,而圖像生成就是 GANs 的一大應用。
一個圖像生成例子如下:
Githubs:
tensorflow-generative-model-collections--集成了多種 GANs 的代碼
The-gan-zoo--收集了當前的所有 GANs 相關的論文
AdversarialNetsPapers
論文:
Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks, 2015.
Conditional Image Generation with PixelCNN Decoders, 2016.
Pix2Pix--Image-to-image translation with conditional adversarial networks,2016
Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks, 2017.
bigGAN--LARGE SCALE GAN TRAINING FOR HIGH FIDELITY NATURAL IMAGE SYNTHESIS,2018
文章:
干貨 | 深入淺出 GAN·原理篇文字版(完整)
深度 | 生成對抗網絡初學入門:一文讀懂GAN的基本原理(附資源)
獨家 | GAN之父NIPS 2016演講現場直擊:全方位解讀生成對抗網絡的原理及未來(附PPT)
英偉達再出GAN神作!多層次特征的風格遷移人臉生成器
8. 人臉
人臉方面的應用,包括人臉識別、人臉檢測、人臉匹配、人臉對齊等等,這應該是計算機視覺方面最熱門也是發展最成熟的應用,而且已經比較廣泛的應用在各種安全、身份認證等,比如人臉支付、人臉解鎖。
這里就直接推薦幾個 Github 項目、論文、文章和數據集
Github:
awesome-Face_Recognition:近十年的人臉相關的所有論文合集
face_recognition:人臉識別庫,可以實現識別、檢測、匹配等等功能。
facenet
論文:
FaceNet: A Unified Embedding for Face Recognition and Clustering,2015
Face Recognition: From Traditional to Deep Learning Methods,2018
MSFD:Multi-Scale Receptive Field Face Detector,2018
DSFD: Dual Shot Face Detector,2018
Neural Architecture Search for Deep Face Recognition,2019
文章:
人臉識別技術全面總結:從傳統方法到深度學習
資源 | 從人臉檢測到語義分割,OpenCV預訓練模型庫
數據集:
LFW
CelebA
MS-Celeb-1M
CASIA-WebFace
FaceScrub
MegaFace
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、視頻、醫學圖像、問答、自動駕駛、追蹤等等方向,具體可以查看下面這個網站:
https://paperswithcode.com/area/computer-vision
而如果認定一個方向,想開始學習這方面的內容,首先推薦可以先查找中文方面的綜述文章或者論文,當然如果英語閱讀能力比較好的,也可以查看英文的綜述文章,通過看綜述來查看下自己需要閱讀的論文,論文推薦先看最近3-5年內的論文,太過久遠的論文,除非需要更加深入了解某個算法,否則都不太需要閱讀。
此外,就是需要結合實際項目來加深對算法的了解,通過跑下代碼,也可以更好了解某個算法具體是如何實現的。
參考
https://machinelearningmastery.com/applications-of-deep-learning-for-computer-vision/
https://paperswithcode.com/sota
小結
本文簡單介紹了幾個計算機視覺方面的應用,包括應用解決的問題以及推薦了幾個 Github 項目和論文、文章,和常用數據集。
歡迎關注我的微信公眾號--機器學習與計算機視覺,或者掃描下方的二維碼,大家一起交流,學習和進步!
往期精彩推薦
機器學習系列
初學者的機器學習入門實戰教程!
模型評估、過擬合欠擬合以及超參數調優方法
常用機器學習算法匯總比較(完)
常用機器學習算法匯總比較(上)
機器學習入門系列(2)--如何構建一個完整的機器學習項目(一)
特征工程之數據預處理(上)
Github項目 & 資源教程推薦
[Github 項目推薦] 一個更好閱讀和查找論文的網站
[資源分享] TensorFlow 官方中文版教程來了
必讀的AI和深度學習博客
[教程]一份簡單易懂的 TensorFlow 教程
[資源]推薦一些Python書籍和教程,入門和進階的都有!
[Github項目推薦] 機器學習& Python 知識點速查表
[Github項目推薦] 推薦三個助你更好利用Github的工具
Github上的各大高校資料以及國外公開課視頻
這些單詞你都念對了嗎?順便推薦三份程序員專屬英語教程!
總結
以上是生活随笔為你收集整理的来了解下计算机视觉的八大应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 制作PPT教程
- 下一篇: VisualRoute for Mac