計算機視覺是使用計算機及相關設備來模擬生物視覺,其核心問題是研究如何對輸入的圖像信息進行組織,對物體和場景進行識別,進而對圖像內容給予解釋。具體說來,是指用攝影機和計算機代替人眼對圖像內容進行解釋,實現目標識別、跟蹤和測量等功能。
代表性技術和開源軟體
馬爾《視覺》的問世,標誌著計算機視覺成為一門獨立的學科。在將近四十年的發展中,該學科經歷了四個主要發展階段:馬爾計算視覺、主動和目的視覺、多視幾何與分層三維重建和以神經網絡為代表的基於學習的視覺。圖1總結了近四十年來計算機視覺發展過程中具有代表性的理論技術和開源軟體。
典型任務和應用
在計算機視覺作為一門學科的發展過程中,開源軟體和數據集提供了良好的推動作用。利用開源軟體,研究人員可以更加快速地更新和迭代算法。開源數據集則為研究人員提供了公平的算法測試的平臺。計算機視覺的典型任務包括圖像理解、三維視覺和動態視覺。
圖像理解主要包括圖像識別、目標檢測、語義分割和實例分割。圖像識別判斷輸入圖像的類別標籤,典型應用有人臉識別和光學字符識別,代表性開源數據有mnist、cifar-10、cifar-100、 Pascal VOC、ImageNet、MS-COCO、CelebA、CASIA-webface、LFW和Youtube Faces DB等,代表性開源軟體有sourceAFIS、OpenBR、AsmLibrary、Insightface、Im2txt和FaceNet等。目標檢測是指用外接矩形將圖像中的某類目標框出來,典型應用有輔助駕駛:泊車輔助、倒車輔助等,代表性開源數據集有Pascal VOC、ImageNet和MS-COCO,代表性開源軟體有TensorFlow Object Detection API和Detectron。語義分割是指像素級別的分類,典型應用有自動駕駛,代表性開源數據集有Pascal VOC、ImageNet、MS-COCO和Kitti,代表性開源軟體有Detectron。實例分割在語義分割的基礎上區別開不同的實例,典型應用有圖片編輯,代表性開源數據集有MS-COCO,代表性開源軟體有Detectron。
三維視覺的目的在於獲取場景的三維幾何信息,典型應用有機器人自主導航,航空及遙感測量和工業自動化系統,代表性開源軟體有Openvis3d和OpenGL。動態視覺即分析視頻或圖像序列,它被廣泛應用在視頻分析(如目標跟蹤)以及人機互動等方面,典型應用有視頻監控,代表性開源數據集有YouTube-8M,代表性開源軟體有OpenVSS和ITU Gaze Tracker。典型任務及典型應用下具有代表性的開源軟體在表1所示。
表1典型任務及典型應用下具有代表性的開源軟體
典型開源軟體
在計算機視覺作為一門學科的發展過程中,開源軟體提供了良好的推動作用。一些從事計算機視覺研究的科研人員在發表文章的同時,也會公開對應的算法實現,它們在開源軟體中佔據很大的比重。隨著該領域的蓬勃發展以及人員數量的快速增加,開源軟體有從獨立的算法實現向平臺和社區化發展的趨勢。本小節對部分典型開源軟體予以介紹。
Open CV
OpenCV於1999年由Intel建立,基於BSD許可,現由Willow Garage提供支持。OpenCV由一系列C函數和少量C++類構成,輕量並且高效,實現了很多圖像處理和計算機視覺方面的通用算法。OpenCV提供Python、Ruby、MATLAB等語言接口,可運行在Linux和Windows等作業系統上,是使用最廣泛的計算機視覺開源軟體庫。
TensorFlow Object Detection
TensorFlow Object Detection API是Google於2017年在TensorFlow平臺上使用python編寫的基於Apache License 2.0協議的開源目標檢測算法庫,包括SSD、Faster RCNN、R-FCN和Mask RCNN等算法,使用它可以輕鬆構建、訓練和部署目標檢測算法模型。
Detectron
Detectron是Facebook AI Research於2018年在Caffe2上使用C++/python編寫的基於Apache License 2.0協議的開源目標檢測與分割算法庫。其包含了一些了最先進的目標檢測與分割算法,如:Fast R-CNN、Faster R-CNN、R-FCN、RPN、Mask R-CNN和RetinaNet等,提供了在不同骨幹網絡(resnet-50、resnet-101、resnet-152、resnetxt-50、resnetxt-101、esnetxt-102、VGG16、FPN)、不同學習率和batch size在多個經典數據集上的實驗結果。利用其提供的預訓練模型,研究人員可以快速試驗和評估新的想法。
InsightFace
InsightFace是DeepInsight於2018年在 Mxnet上使用python編寫的基於MIT協議的人臉識別算法庫,包含人臉識別所用的經典損失函數如Softmax、Sphereface、CosineFace、ArcFace、Combined Margin和TripletLoss,在公開人臉識別數據集擁有較優的性能。
Tesseract
Tesseract是HP在2005年貢獻給開源社區,後來由Google接手維護,持續對其改進和優化,tesseract使用C++編寫的基於Apache License 2.0的開源OCR軟體,Tesseract支持C++、python、Java調用,接口友好。由於其完整的功能,可以訓練的特點,在開源後備受關注,但在近些年來,逐漸被基於深度學習的OCR超越。
小結
平臺化和社區化是計算機視覺領域開源軟體發展的趨勢,使得研究人員更容易推廣新算法,同時溝通效率也更高。好的平臺和社區呈滾雪球之勢,吸引越來越多的研究人員,發揮越來越大的作用,並享有越來越大的話語權。儘管目前中國研究人員在計算機視覺領域的研究十分活躍,但仍缺乏在世界範圍內享有知名度的計算機視覺開放平臺和社區。相信在不久的將來,中國研究人員會回歸基礎和平臺型項目,在計算機視覺開源軟體領域發揮越來越大的作用。
獨家| 人工智慧學習篇3:經典機器學習開源框架
獨家 | 中科院郭愛克院士:人類大腦在整體上是怎樣工作的(下)
獨家 | 中科院郭愛克院士:人類大腦在整體上是怎樣工作的(上)
AIII人工智慧產業研究院
建生態 · 促生活