視覺工具包torchvision重大更新:支持分割模型、檢測模型

2020-12-25 量子位

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

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

終於來到torchvision 0.3了。

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

也增加了許多數據集,比如ImageNet,CelebA,Caltech 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腳本模式了。

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

哪些模型是新來的?

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

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

分割模型

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

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

檢測模型

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

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

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

速度如下,都是毫秒級:

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

import torchvisionmodel = torchvision.models.detection.maskrcnn_resnet50_fpn(pretrained=True)# set it to evaluation mode, as the model behaves differently# during training and during evaluationmodel.eval()image = PIL.Image.open('/path/to/an/image.jpg')image_tensor = torchvision.transforms.functional.to_tensor(image)# pass a list of (potentially different sized) tensors# to the model, in 0-1 range. The model will take care of# batching them together and normalizingoutput = model([image_tensor])# output is a list of dict, containing the postprocessed predictions

分類模型

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

· 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

相關焦點

  • PyTorch專欄(八):微調基於torchvision 0.3的目標檢測模型
    0.3的目標檢測模型。微調基於torchvision 0.3的目標檢測模型使用Sequence2Sequence網絡和注意力進行翻譯在這篇文章中,我們將微調在 Penn-Fudan 資料庫中對行人檢測和分割的已預先訓練的 Mask R-CNN 模型。它包含170個圖像和345個行人實例,我們 將用它來說明如何在 torchvision 中使用新功能,以便在自定義數據集上訓練實例分割模型。
  • 小白學PyTorch | 5 torchvision預訓練模型與數據集全覽
    文章目錄:1 torchvision.datssets2 torchvision.models模型比較本文建議複製代碼去跑跑看,增加一下手感。公眾號回復【torchvision】獲取代碼和數據。翻譯過來就是:torchvision包由流行的數據集、模型體系結構和通用的計算機視覺圖像轉換組成。
  • 【小白學PyTorch】5.torchvision預訓練模型與數據集全覽
    文章目錄:1 torchvision.datssets2 torchvision.models模型比較本文建議複製代碼去跑跑看,增加一下手感。如果有些數據需要科學上網,公眾號回復【torchvision】獲取代碼和數據。
  • 史上最全解讀|飛槳模型庫重大升級,主流算法模型全覆蓋
    飛槳全景圖,本文主要針對基礎模型庫部分進行深度解讀。第一部分,首先看一下最新版本模型庫的主要更新點。本次主要更新點1.1.▲ 官方支持100多個算法,200多個預訓練模型飛槳的模型庫已經比較完備地支持了自然語言處理,計算機視覺、推薦和語音四大領域。官方支持的模型從 60 個擴充到了 100 多個,新增了對於語音算法的支持。截至目前,飛槳已經可以支持人工智慧領域應用主流算法模型的。開發者在工業應用項目落地中,可以利用飛槳模型庫中快速實現。
  • 一行代碼即可調用18款主流模型!PyTorch Hub輕鬆解決論文可復現性
    近日,Facebook新推出了一個深度學習工具包:PyTorch Hub,這是一個簡單的API和工作流,提供基本的構建模塊從而可以改善機器學習研究的可重現性。PyTorch Hub包含了一系列與圖像分類、圖像分割、生成以及轉換相關的預訓練模型庫,例如ResNet、BERT、GPT、VGG、PGAN、MobileNet等經典模型,PyTorch Hub試圖以最傻瓜的方式,提高研究工作的復現性。有多簡單呢?
  • 兩行代碼統計模型參數量與FLOPs,這個PyTorch小工具值得一試
    機器之心報導參與:思源你的模型到底有多少參數,每秒的浮點運算到底有多少,這些你都知道嗎?近日,GitHub 開源了一個小工具,它可以統計 PyTorch 模型的參數量與每秒浮點運算數(FLOPs)。因此,PyTorch-OpCounter 這種能直接統計 FLOPs 的工具還是非常有吸引力的。
  • 在PyTorch中使用DeepLabv3進行語義分割的遷移學習
    當我在使用深度學習進行圖像語義分割並想使用PyTorch在DeepLabv3[1]上運行一些實驗時,我找不到任何在線教程。並且torchvision不僅沒有提供分割數據集,而且也沒有關於DeepLabv3類內部結構的詳細解釋。然而,我是通過自己的研究進行了現有模型的遷移學習,我想分享這個過程,這樣可能會對你們有幫助。
  • OCR模型訓練
    基於深度學習的文本檢測算法大致分為兩類:基於候選框回歸的算法和基於分割的算法。基於候選框回歸的文本檢測,是源於目標檢測算法,然後結合文本框的特點改造而成的,包括 CTPN、EAST 和 Seglink 算法等。
  • 詳解計算機視覺五大技術:圖像分類、對象檢測、目標跟蹤、語義分割和實例分割
    智能汽車:計算機視覺仍然是檢測交通標誌、燈光和其他視覺特徵的主要信息來源。視覺識別是計算機視覺的關鍵組成部分,如圖像分類、定位和檢測。神經網絡和深度學習的最新進展極大地推動了這些最先進的視覺識別系統的發展。在本文中,我將分享 5 種主要的計算機視覺技術,並介紹幾種基於計算機視覺技術的深度學習模型與應用。
  • PyTorch模型訓練特徵圖可視化(TensorboardX)
    0、前言本文所有代碼解讀均基於PyTorch 1.0,Python3;本文為原創文章,初次完成於2019.03,最後更新於2019.09;最近復現的一篇論文一直都難以work,上了特徵圖可視化後一下子就找到了問題所在,所以今天想梳理一下PyTorch裡面的特徵圖可視化。
  • 60分鐘入門深度學習工具-PyTorch
    net.zero_grad()out.backward(torch.randn(1, 10))torch.nn 只支持小批量輸入,整個torch.nn包都只支持小批量樣本,而不支持單個樣本如果你有單個樣本,只需使用input.unsqueeze(0)來添加其它的維數.
  • 紐勱科技詳解視覺感知:視覺模型上線是一個閉環迭代過程
    雷鋒網旗下會員組織「AI投研邦」「大咖Live」第50講,紐勱科技計算機視覺研發總監成二康帶來關於《自動駕駛系統研發:詳解視覺感知模塊》的主題分享,圍繞自動駕駛的視覺感知、基於深度學習的目標檢測和圖像分割任務、紐勱科技如何以數據助力自動駕駛感知模塊研發三方面進行了介紹。
  • 【小白學PyTorch】7 最新版本torchvision.transforms常用API翻譯與講解
    後面的是關於圖像分割任務了的介紹,因為入門PyTorch主要是圖像分類,所以後面先不提了。之前的課程提到了,在torchvision官方的數據集中,提供的數據是PIL格式的數據,然後我們需要轉成FloatTensor形式的數據。因此這裡圖像增強的處理也分成在PIL圖片上操作的和在FloatTensor張量上操作的兩種。
  • 60分鐘入門深度學習工具PyTorch
    你已知道autograd包,nn包依賴autograd包來定義模型並求導.一個nn.Module包含各個層和一個forward(input)方法,該方法返回output.例如,我們來看一下下面這個分類數字圖像的網絡.
  • 競賽比完,代碼、模型怎麼處理?Kaggle大神:別刪,這都是寶藏
    公開代碼是心理防線的一次重大突破,公開不完美的代碼更是一個自信、大膽的舉動。所有後續步驟也都在這一步的基礎上展開。花 20 分鐘提升代碼可讀性你可以通過添加語法格式化工具和檢查工具來提升 python 代碼的可讀性。這並不困難,也並不費時。
  • 百度飛槳PaddleCV全景圖曝光 視覺技術能力三方面重磅更新
    【來源:中國青年網】2020年,「新基建」正給中國科技發展帶來新的重大機遇,人工智慧基礎設施面臨全面升級。深度學習框架正是推動產業智能化進階的重要基礎設施。近日,國內唯一開源開放、功能完備的深度學習開源平臺——百度飛槳,在智能視覺領域實現重大升級。 此次,PaddleCV最新全景圖首度曝光。
  • 遷移學習 Transfer Learning—通俗易懂地介紹(常見網絡模型pytorch實現)
    題外話:不知不覺已經更新了二十篇微推,大家可能會發現怎麼可能更新那麼平凡,那是我之前在其他平臺有發布過的博客,經過簡單修改,順便當作複習一遍了。之後的話肯定會持續更新,但肯定不會像之前那樣日更啦。ResNet詳細講解在這篇博文裡:ResNet——CNN經典網絡模型詳解(pytorch實現)#train.pyimport torchimport torch.nn as nnfrom torchvision import
  • 使用PyTorch實現鳥類音頻檢測卷積網絡模型
    事實上,鳥音頻檢測是我做深度學習和計算機科學的第一個項目。我參與了一個研究項目,在北阿拉斯加的郊區用純粹的聲音來探測鳥類的存在。跳入其中,鳥的音頻檢測出現了這樣一個利基(有利可圖的形式),在本文中,我將向您展示如何在BirdVox-70k數據集上使用一個簡單的卷積神經網絡(CNN)來實現這一點。為什麼鳥類的聲音檢測很重要呢?
  • TensorFlow 模型優化工具包:模型大小減半,精度幾乎不變!
    Float16 Quantization我們非常高興能夠將訓練後的 float16 quantization 作為模型優化工具包(Model Optimization Toolkit其中,MobileNet v1 和 v2 的結果基於 ImageNet 圖像識別任務測得,而 MobileNet SSD 模型則在 COCO 目標檢測任務上評估而得。
  • CondInst:性能和速度均超越Mask RCNN的實例分割模型
    對於實例分割來說,主流的做法還是基於先檢測後分割的流程,比如最流行的Mask RCNN模型就是構建在Faster RCNN基礎上。目前基於one-stage的物體檢測模型已經在速度和性能上超越two-stage模型,同樣地,大家也希望能找到one-stage的實例分割模型來替換Mask RCNN。