業界 | 谷歌開源TensorFlow Object Detection API物體識別系統

2022-01-04 機器之心

選自Google Open Source

作者:Jonathan Huang

機器之心編譯

參與:黃小天、李澤南

近日,谷歌在其開源博客上發表了一篇名為《Supercharge your Computer Vision models with the TensorFlow Object Detection API》的文章,通過 TensorFlow Object Detection API 將谷歌內部使用的物體識別系統(2016 年 10 月,該系統在 COCO 識別挑戰中名列第一)開源給更大的社區,幫助打造更好的計算機視覺模型。機器之心對該文進行了編譯,原文連結請見文末。

在谷歌,研究人員開發了最高水平的計算機視覺機器學習系統,不僅可以用於谷歌自身的產品和服務,還可以推廣至整個研究社區。創造能夠在同一張圖片裡定位和識別多種物體的機器學習模型一直是業內的核心挑戰之一,谷歌宣稱自己已投入大量時間訓練和實驗此類系統。

其中一個模型在示例圖片中(來自 COCO 數據集)對象識別的效果

2016 年 10 月,谷歌內部的物體識別系統達到了業內最佳水平,在 COCO 識別挑戰中名列第一。自那時起,該系統為大量文獻提供了結果,並被一些谷歌的產品所採用,如 NestCam,同樣的理念也被識別谷歌街景街道名稱和門牌號的 Image Search 採用。

今天,我們很高興通過 TensorFlow Object Detection API 把該系統開源給更大的研究社區。這個代碼庫是一個建立在 TensorFlow 頂部的開源框架,方便其構建、訓練和部署目標檢測模型。我們設計這一系統的目的是支持當前最佳的模型,同時允許快速探索和研究。我們的第一個版本包含:

帶有 MobileNets 的 SSD(Single Shot Multibox Detector)

帶有 Inception V2 的 SSD

帶有 Resnet 101 的 R-FCN(Region-Based Fully Convolutional Networks)

帶有 Resnet 101 的 Faster RCNN

帶有 Inception Resnet v2 的 Faster RCNN

上述每一個模型的凍結權重(在 COCO 數據集上訓練)可被用於開箱即用推理。

一個 Jupyter notebook 可通過我們的模型之一執行開箱即用的推理

藉助谷歌雲實現便捷的本地訓練腳本以及分布式訓練和評估管道

SSD 模型使用了輕量化的 MobileNet,這意味著它們可以輕而易舉地在行動裝置中實時使用。在贏得 2016 年 COCO 挑戰的研究中,谷歌使用了 Fast RCNN 模型,它需要更多計算資源,但結果更為準確。

如需了解更多細節,請參閱谷歌發表在 CVPR 2017 上的論文:https://arxiv.org/abs/1611.10012

準備好了嗎?

這些代碼在谷歌的計算機視覺應用中非常有用,谷歌希望本次開源能夠將這份便利帶給所有人。谷歌同時也歡迎更多貢獻者參與進來。現在,你可以下載代碼,使用 Jupyter notebook 嘗試在圖片中識別物體,也可以開始在 Cloud ML 引擎中訓練你自己的識別器了。

代碼:https://github.com/tensorflow/models/tree/master/object_detection

Jupyter notebook:https://github.com/tensorflow/models/blob/master/object_detection/object_detection_tutorial.ipynb

Cloud ML:https://cloud.google.com/blog/big-data/2017/06/training-an-object-detector-using-cloud-machine-learning-engine

參考資料

1. Speed/accuracy trade-offs for modern convolutional object detectors (https://arxiv.org/abs/1611.10012), Huang et al., CVPR 2017 (paper describing this framework)

2. Towards Accurate Multi-person Pose Estimation in the Wild (https://arxiv.org/abs/1701.01779), Papandreou et al., CVPR 2017

3. YouTube-BoundingBoxes: A Large High-Precision Human-Annotated Data Set for Object Detection in Video (https://arxiv.org/abs/1702.00824), Real et al., CVPR 2017 (see also our blog post (https://research.googleblog.com/2017/02/advancing-research-on-video.html))*

4. Beyond Skip Connections: Top-Down Modulation for Object Detection (https://arxiv.org/abs/1612.06851), Shrivastava et al., arXiv preprint arXiv:1612.06851, 2016

5. Spatially Adaptive Computation Time for Residual Networks (https://arxiv.org/abs/1612.02297), Figurnov et al., CVPR 2017

6. AVA: A Video Dataset of Spatio-temporally Localized Atomic Visual Actions (https://arxiv.org/abs/1705.08421), Gu et al., arXiv preprint arXiv:1705.08421, 2017

7. MobileNets: Efficient convolutional neural networks for mobile vision applications (https://arxiv.org/abs/1704.04861), Howard et al., arXiv preprint arXiv:1704.04861, 2017

原文地址:http://opensource.googleblog.com/2017/06/supercharge-your-computer-vision-models.html

本文為機器之心編譯,轉載請聯繫本公眾號獲得授權

✄---

加入機器之心(全職記者/實習生):hr@jiqizhixin.com

投稿或尋求報導:editor@jiqizhixin.com

廣告&商務合作:bd@jiqizhixin.com


點擊閱讀原文,查看機器之心官網↓↓↓

相關焦點

  • 教程 | 如何使用TensorFlow API構建視頻物體識別系統
    在谷歌 TensorFlow API 推出後,構建屬於自己的圖像識別系統似乎變成了一件輕鬆的任務。
  • TensorFlow Object Detection API 實踐
    然而構建準確率高的、能定位和識別單張圖片裡多種物體的模型仍然是計算機視覺領域一大挑戰。TF Object Detection API 【1】是一個構建在 TensorFlow 之上的可以簡化構建、訓練、部署目標檢測模型的開源框架。TF Object Detection API 安裝步驟參考【2】。
  • Windows系統如何安裝Tensorflow Object Detection API
    什麼是TensorflowTensorFlow™ 是一個採用數據流圖(data flow graphs),用於數值計算的開源軟體庫
  • Tensorflow Object Detection API介紹和應用(mac版)——(2.預訓練模型應用)
    沒有及時更新tf object detection更多的應用。今天有時間來補上一課,直接應用已訓練好的模型去識別物體。Tensorflow Object Detection API是谷歌TensorFlow下面的物體檢測項目,可以實現圖像內物體檢測,支持視頻和圖片,可以在圖片上框框出實體,標註出實體具體類別(類別是自己打的標籤,或者項目內提供的預訓練模型和標籤數據)。
  • 使用Tensorflow Object Detection API實現對象檢測
    對常見的物體幾乎都可以做到實時準確的檢測,對應用場景相對簡單的視頻分析與對象檢測提供了極大的方便與更多的技術方案選擇。tensorflow object detection提供的預訓練模型都是基於以下三個數據集訓練生成,它們是:COCO數據集Kitti數據集Open Images數據集每個預訓練模型都是以tar文件形式存在,其中包括以下幾個部分:基於COCO數據集訓練的模型名稱、運行速度、mAP指標及輸出列表如下:二:使用模型實現對象檢測
  • 如何在windows系統上安裝Tensorflow Object Detection API?
    所以先說下自己的版本情況:Tensorflow-gpu-1.10.0 cuda9 cuDNN7Python3.6.8Protobuf3.7.1從GitHub下載官方存儲庫官方github網站連結為:https://github.com/tensorflow/models在本地建立文件夾用於存儲
  • Tensorflow Object Detection API 終於支持tensorflow1.x與tensorflow2.x了
    基於tensorflow框架構建的快速對象檢測模型構建、訓練、部署框架,是針對計算機視覺領域對象檢測任務的深度學習框架。之前tensorflow2.x一直不支持該框架,最近Tensorflow Object Detection API框架最近更新了,同時支持tensorflow1.x與tensorflow2.x。
  • 谷歌更新TensorFlow目標檢測API
    通常優化超參數和重新訓練目標檢測模型是極其耗時的,因此在實驗中快速周轉時間至關重要。以上發布的模型屬於SSD類架構,這些架構針對Cloud TPUs的訓練進行了優化。例如,訓練基於ResNet-50的RetinaNet模型,可以在3.5小時內在COCO數據集上實現35%的mAP。
  • 聲網:基於 TensorFlow 在實時音視頻中實現圖像識別
    大家可以利用它將實時音視頻通話與人臉識別、圖像識別、聲紋識別或其它可能用到 Python 庫的應用結合起來,玩出不一樣的花樣。為了方便大家理解如何把它用在自己的項目中,我們還寫了一份 Python demo,與最流行的 TensorFlow 結合,在視頻通話的場景下實現了圖像識別,並已將其開源至 Github。
  • Object Detection API 現已支持 TensorFlow 2
    正如我們在今年早些時候舉辦的 TensorFlow 開發者峰會上所述,我們正在打造更具兼容性的 TF 生態系統,這樣您就能夠將喜愛的庫和模型與 TF 2.x 一起搭配使用。今天,我們很高興地宣布,TF Object Detection API (OD API) 現已正式支持 TensorFlow 2!
  • 如何用Tensorflow object-detection API訓練模型,找到聖誕老爺爺?
    本文將教會你如何通過Tensorflow object-detection API訓練自己的目標檢測模型(object detector),來找到聖誕老人。本文的代碼可見於github:https://github.com/turnerlabs/character-finder代碼產生的模型可被延伸用於抓取其他的動畫或者真實人物。
  • 一個模型庫學習所有:谷歌開源模塊化深度學習系統Tensor2Tensor
    昨天,谷歌發布了一個名為 Tensor2Tensor(T2T)的 TensorFlow 開源系統,希望能夠以此提高機器學習社區的研究和開發速度,其中包含了谷歌近期提出的多個最新模型。此外,T2T 將深度學習所需的各個組件以模塊化呈現,這意味著開發者和研究人員能夠更快地實現自己的新想法。
  • 如何在Windows系統上使用Object Detection API訓練自己的數據?
    前言之前寫了一篇如何在windows系統上安裝Tensorflow Object Detection API?(點擊跳轉)然後就想著把數據集換成自己的數據集進行訓練得到自己的目標檢測模型。動手之前先學習了一波別人是如何實現的,看了大多數教程都有一個小問題:用VOC2012數據集進行訓練當做用自己的數據集。然而,初心想看的是自己的數據集啊!
  • tensorflow使用object detection實現目標檢測超詳細全流程(視頻+圖像集檢測)
    使用tensorflow object detection進行訓練檢測。參考原始代碼:https://github.com/tensorflow/models/tree/master/research本文以mobilenet-ssd-v2為例進行處理,通過換模型即可實現faster RCNN等的訓練檢測。
  • TF Object Detection 終於支持TF2了!
    一直以來,大家最常用的目標檢測庫是港中文的mmdetection和Facebook的detectron2庫,不過這兩個庫都是基於PyTorch的,PyTorch的模型部署方面還是稍差於TensorFlow,如果想用TensorFlow的目標檢測模型,最好的還是選擇還是谷歌官方的
  • 深度學習入門篇——手把手教你用 TensorFlow 訓練模型
    $ protoc object_detection/protos/*.(我是把protoc加到環境變量中,遇到找不到*.proto文件的報錯,後來把protoc.exe放到models/object_detection目錄下,重新執行才可以)然後將models和slim(tf高級框架)加入python環境變量:PYTHONPATH=$PYTHONPATH:/your/path/to/tensorflow/
  • 谷歌工程師的 TensorFlow 成長之路
    自Google開源TensorFlow之後,TensorFlow迅速成為全球最流行的
  • 谷歌開源最大手動注釋視頻數據集和 TensorFlow 模型性能調優工具
    今天,為了促進視頻理解方面的研究,我們發布了 YouTube-BoundingBoxes 數據集(https://research.google.com/youtube-bb/)。這是一個在21萬 YouTube 視頻片段中進行密集的標註,由包含13類物體的共500萬邊界框(bounding boxes)組成的視頻數據集。
  • 使用 Cloud TPU 在 30 分鐘內訓練並部署實時移動物體探測器
    apiid=ml.googleapis.com,compute_component&_ga=2.43515109.-1978295503.1509743045其次,我們將創建一個 Google 雲存儲桶(Google Cloud Storage bucket),用於存儲模型的訓練和測試數據,以及模型檢查點。請注意,本教程中的所有命令都假設您運行在 Ubuntu 系統中。
  • 教程 | 如何使用Docker、TensorFlow目標檢測API和OpenCV實現實時目標檢測和視頻處理
    以下是我安裝 TensorFlow 目標檢測的方法(按照官方安裝指南進行):# Install tensorFlowRUN pip install -U tensorflow# Install tensorflow models object detectionRUN git clone https://github.com/tensorflow/models