視覺工具包torchvision重大更新:支持分割模型、檢測模型,還有許多數據集

2021-02-19 量子位
慄子 發自 凹非寺
量子位 出品 | 公眾號 QbitAI

PyTorch宣布了視覺工具包torchvision的重大更新。

終於來到torchvision 0.3了。

這次,工具包裡增加了許多新模型:做語義分割的,做目標檢測的,做實例分割的……

也增加了許多數據集,比如ImageNetCelebACaltech 101等等等等。

另外,torchvision還有了不少視覺專用的C++/Cuda算子

消息一出,小夥伴們紛紛奔走相告。

現在,來仔細觀察一下,新的torchvision都有哪裡變強了。

哪些功能是新來的?訓練/評估腳本

現在,reference/文件夾地下,提供了訓練和評估用的腳本,支持許多任務:

分類、語義分割、目標檢測、實例分割,以及人物關鍵點檢測。

這些腳本可以當做log:寫著某一個特定的模型要怎樣訓練,並且提供了基線。有了這份快速指引,便於順利展開研究。

torchvision算子

就像開頭提到的那樣,torchvision這次有了定製的C++/CUDA算子,計算機視覺專用。

有了這些算子,搭建目標檢測模型就更加輕鬆了:

· roi_pool (以及模塊版本RoIPool)
· roi_align (以及模塊版本RoIAlign)
· nms,給邊界框做非極大抑制 (Non-Maximum Suppression用的)
· box_iou,用來計算兩組邊界框之間的交集
· box_area, 用來計算一組邊界框的面積

等到下次更新,這些算子就會支持PyTorch腳本模式了。

至於這些算子怎麼用,官方給出了一些例子:

1import torch
2import torchvision
3
4
5boxes = torch.rand(10, 4) * 100
6
7boxes[:, 2:] += boxes[:, :2]
8
9image = torch.rand(1, 3, 200, 200)
10
11
12pooled_regions = torchvision.ops.roi_align(image, [boxes], output_size=(3, 3))
13
14print(pooled_regions.shape)
15
16
17
18
19print(torchvision.ops.box_iou(boxes, boxes).shape)
20

哪些模型是新來的?

既然,目標檢測、實例分割,以及人物關鍵點檢測模型的支持,全部是最新加入的。

那麼,就來看看增加了哪些模型吧:

分割模型

官方博客寫到,torchvision 0.3新加入了FCNDeepLabV3分割模型,用了ResNet50和ResNet101骨架。

ResNet101有預訓練的權重可用,是在COCO train2017數據集的一個子集上訓練的,20個類別和Pascal VOC一致:

檢測模型

torchvision 0.3新包含了預訓練的Faster R-CNNMask R-CNN以及Keypoint R-CNN

官方還提到,各種模型的實現都很快,尤其是訓練過程很快

(團隊用了8個V100 GPU,帶有CUDA 10.0和CUDNN 7.4的那種。訓練中每個GPU的批尺寸是2,測試中的批尺寸是1。)

速度如下,都是毫秒級

而且,只要寫幾行代碼,就可以直接加載、運行那些預訓練的檢測模型與分割模型了:

1import torchvision
2
3model = torchvision.models.detection.maskrcnn_resnet50_fpn(pretrained=True)
4
5
6model.eval()
7
8image = PIL.Image.open('/path/to/an/image.jpg')
9image_tensor = torchvision.transforms.functional.to_tensor(image)
10
11
12
13
14output = model([image_tensor])
15

分類模型

新加入的分類模型有這些:

· GoogLeNet (Inception v1)
· MobiliNet V2
· ShuffleNet v2
· ResNeXt-50 32x4d,以及ResNeXt-101 32x8d

哪些數據集是新來的?

先看人臉數據集,加入了這些:

Caltech101,Caltech256,以及CelebA

然後,ImageNet也加入了。

還有,Semantic Boundaries Dataset (語義邊界數據集) 。

以及,VisionDataset,作為各種數據集的基類 (base class) 。

快去用一下

如果你還有什麼疑問,可以觀察更詳細的發布說明

如果你不知道怎麼用,可以服用Colab教程

如果你已經準備好了,就開始用新的torchvision去做項目吧。

torchvision 0.3.0
https://pypi.org/project/torchvision/

Colab教程:
https://colab.research.google.com/github/pytorch/vision/blob/temp-tutorial/tutorials/torchvision_finetuning_instance_segmentation.ipynb

詳細的發布說明:
https://github.com/pytorch/vision/releases

作者系網易新聞·網易號「各有態度」籤約作者

量子位AI社群開始招募啦,社群矩陣:AI討論群AI+行業群AI技術群

目前已有4萬AI行業從業者、愛好者加入,AI技術群更有來自海內外各大高校實驗室大牛各明星AI公司工程師等。自由互相交流AI發展現狀及趨勢。

歡迎對AI感興趣的同學,在量子位公眾號(QbitAI)對話界面回復關鍵字「微信群」,獲取入群方式。(技術群與AI+行業群需經過審核,審核較嚴,敬請諒解)

相關焦點

  • 在PyTorch中使用DeepLabv3進行語義分割的遷移學習
    當我在使用深度學習進行圖像語義分割並想使用PyTorch在DeepLabv3[1]上運行一些實驗時,我找不到任何在線教程。並且torchvision不僅沒有提供分割數據集,而且也沒有關於DeepLabv3類內部結構的詳細解釋。然而,我是通過自己的研究進行了現有模型的遷移學習,我想分享這個過程,這樣可能會對你們有幫助。
  • 紐勱科技詳解視覺感知:視覺模型上線是一個閉環迭代過程
    雷鋒網旗下會員組織「AI投研邦」「大咖Live」第50講,紐勱科技計算機視覺研發總監成二康帶來關於《自動駕駛系統研發:詳解視覺感知模塊》的主題分享,圍繞自動駕駛的視覺感知、基於深度學習的目標檢測和圖像分割任務、紐勱科技如何以數據助力自動駕駛感知模塊研發三方面進行了介紹。
  • YOLOv3比原作高10個點,飛槳更新至73個視覺算法、203個預訓練模型
    PaddleCV 是就是其中包含視覺算法、模型和工具的開源項目。在這一次的 PaddleCV 更新中,PaddleCV 新增產業實踐中廣泛應用的 15 個算法、35 個高精度預訓練模型,以及 3D 視覺、PLSC 超大規模分類模型這兩項全新能力。
  • 數據科學工具包:手把手用YOLO做目標檢測
    作為目前機器學習領域最火熱的研究方向之一,計算機視覺相關的技術一直備受關注。其中,目標檢測是計算機視覺領域常見的問題之一,如何平衡檢測的質量和算法的速度很重要。對於這個問題,計算機視覺工程師、VirtusLab 創始人 Piotr Skalski 發表了自己的心得,分享了關於他最喜歡的計算機視覺算法 YOLO 的實踐資料。以下便是他的全文。
  • Pytorch筆記:02 torchvision.transforms數據增強
    中心裁剪:transforms.CenterCroptorchvision.transforms.CenterCrop(size=256)(image)白化轉換:假設X是列向量零中心數據。然後torch.mm計算數據協方差矩陣[D x D],對該矩陣執行SVD並將其作為transformation_matrix傳遞。
  • 計算機視覺八大任務全概述:PaddlePaddle工程師詳解熱門視覺模型
    計算機視覺技術作為人工智慧的重要核心技術之一,已廣泛應用於安防、金融、硬體、營銷、駕駛、醫療等領域。本文上篇中,我們將介紹基於PaddlePaddle的四種計算機視覺技術及其相關的深度學習模型。一、圖像分類圖像分類是根據圖像的語義信息對不同類別圖像進行區分,是計算機視覺中重要的基礎問題,是物體檢測、圖像分割、物體跟蹤、行為分析、人臉識別等其他高層視覺任務的基礎。
  • 基於UNet網絡實現的人像分割 | 附數據集
    重複這個過程,直到獲得輸出388x388x2的feature map,最後經過softmax獲得output segment map。總體來說與FCN思路非常類似。U-Net採用了與FCN完全不同的特徵融合方式:拼接!
  • 史上最全VisionPro和Halcon 的詳細對比
    2.5  ImageClassifier ToolsHalcon支持相當多的識別以及檢測應用的預定義的分類器工具,halcon支持多層感知神經網絡分類器,支持向量機分類器,高斯混合模型分類器,N維盒子以及非正態分布數據集領域的聚類。K-最近鄰分類器,自動特徵選擇。
  • 15個產業級算法、35個預訓練模型上線!最強國產開源AI框架再進化
    >並上線了用於3D點雲分類、分割和檢測的PointNet++和PointRCNN模型,使其成為國內首家支持3D圖像深度學習的開源平臺;相應地,這些模型的開發、壓縮、部署的「一條龍服務」也升級到全新版本,比如目標檢測模型,使用蒸餾+裁剪模型壓縮方案,基於COCO數據集進行測試,可以加速2.3倍。
  • 計算機視覺:圖像檢測和圖像分割有什麼區別?
    :計算機視覺:圖像檢測和圖像分割有什麼區別?來自開放圖像數據集的注釋圖像。家庭堆雪人,來自 mwvchamber。在CC BY 2.0 許可下使用的圖像。當前,YOLO模型(You Only Look Once)是解決此問題的偉大發明。 YOLO模型的開發人員已經構建了一個神經網絡,該神經網絡能夠立即執行整個邊界框方法!當前用於目標檢測的最佳模型  圖像分割-預測掩模一步一步地掃描圖像的邏輯替代方法是遠離畫框,而是逐像素地注釋圖像。
  • 車道線檢測算法TensorRT加速
    Xavier車道線檢測算法小試牛刀上次的模型經過tensorRT加速之後,速度提升非常明顯,然後再將python實現的功能轉為C++實現,又進一步提升幀率。後臺有同學問我實現細節,所以這裡我簡單介紹一下這個車道線檢測模型的開發過程。
  • TensorRT 加速 PyTorch 模型基本方法
    但是TensorRT坑爹的地方在於,有些模型操作是不支持的、又或者就算支持但是支持並不完善,對於這些難題,要麼自己寫插件,要麼就只能等待官方的更新了。現在我們訓練深度學習模型主流的框架有tensorflow,pytorch,mxnet,caffe等。
  • 從數據到模型:輕舟智航自動駕駛高效感知技術解讀
    全景分割的任務是為圖像中每個像素點賦予類別標籤和實例索引,生成全局的、統一的分割圖像。全景分割任務可以分解為兩個模塊,即語義分割和實例分割。由於需要逐像素的標籤,標註難度和成本非常大。利用半監督學習可以結合部分的標註數據和大量的無標註數據來訓練模型,是解決全景分割數據利用效率的一個可行的方案。具體來說,可以從三個方面入手解決。
  • 比Keras更好用的機器學習「模型包」:無需預處理,0代碼上手做模型
    也就是說,用戶只需要知道各種機器學習模型的原理,但不需要再自己動手寫代碼。相比於Keras,這個項目進一步簡化了預處理、輸入輸出的工作,就像「模型包」一樣簡便。作者用了兩周的時間,做出了項目的1.0版本,一天以內已有842Star,目前還在快速上漲中。由於只是1.0版本,作者表示,這個項目仍然有很大的完善空間。
  • 六種人體姿態估計的深度學習模型和代碼總結
    姿態估計同樣包含許多基於3D物體的辨認。在這篇文章中,Model Zoo的作者匯總了幾種開源的深度學習模型以及針對姿態估計的代碼,論智對其進行了編譯,如有遺漏請在評論中補充。創作這篇文章的初衷就來源於Facebook研究所的DensePose,上周,Facebook公布了這一框架的代碼、模型和數據集,同時發布了DensePose-COCO,這是一個為了估計人類姿態的大型真實數據集,其中包括了對5
  • AI醫療數據資源少、模型難解釋怎麼辦?AI頂會秀五大破局心法
    另外,一些護士也擔憂AI模型的安全性問題。這說明通過實驗室檢驗並不完全意味著AI工具可以順利落地應用。二、數據資源少?讓醫生臨床經驗來幫忙許多疾病難治療都是因為相關數據太少。比如,罕見病的患者記錄就很少,相應的醫學知識也很缺乏;對於心衰等慢性病來說,及早治療是關鍵,但醫學界很難提前甄別出有患病風險的患者。
  • 阿德萊德大學在讀博士陳昊:高質高效的實例分割模型BlendMask:公開...
    在計算機視覺的任務中,由於實例分割是像素級識別輪廓任務,因此與其他類似的視覺任務相比,實例分割屬於最困難的視覺任務之一。實例分割兼具目標檢測和語義分割的特點,因此逐漸演化出基於語義分割的down-top apporach與基於目標檢測的top-down apporach兩種方法。
  • 元數據管理成熟度模型分析
    當企業內外部的數據越來越多時,元數據管理就會成為許多公司的一個關鍵問題。不對元數據進行管理或管理不得當,信息將被丟失或處於隱匿狀態而難以被用戶使用,數據集成將十分昂貴,不能對業務進行有效支撐。終端用戶要識別相關的信息將十分困難,最終用戶將失去對數據的信任。以下從用戶、處理和技術的角度,分別描述企業元數據管理的不同成熟度模型和企業沿著成熟度階梯向上提升的步驟。
  • 如何用pyTorch改造基於Keras的MIT情感理解模型
    torchMoji/DeepMoji模型DeepMoji有一個很不錯的特點:Bjarke Felbo及其協作者能夠在一個擁有16億條記錄的海量數據集上訓練該模型。因此,預先訓練的模型在此訓練集中具有非常豐富的情感和情緒表徵,我們可以很方便地使用這個訓練過的模型。該模型是使用針對LSTM的回歸內核的Theano/Keras默認激活函數hard sigmoid訓練的,而pyTorch是基於NVIDIA的cuDNN庫建模的,這樣,可獲得原生支持LSTM的GPU加速與標準的sigmoid回歸激活函數: