在谷歌 TensorFlow API 推出後,構建屬於自己的圖像識別系統似乎變成了一件輕鬆的任務。本文作者利用谷歌開源的 API 中 MobileNet 的組件很快開發出了識別圖像和視頻內物體的機器學習系統,讓我們看看她是怎麼做到的。
市面上已有很多種不同的方法來進行圖像識別,谷歌最近開源的 TensorFlow Object Detection API 是其中非常引人注目的一個,任何來自谷歌的產品都是功能強大的。所以,讓我們來看看它能夠做到什麼吧,先看結果:
來自 TensorFlow API 的視頻物體檢測
你可以在 GitHub 上找到這個小項目的全部代碼:https://github.com/priya-dwivedi/Deep-Learning/blob/master/Object_Detection_Tensorflow_API.ipynb
訓練的過程有多複雜?首先讓我們來看看 API 本身。
TensorFlow Object Detection API 的代碼庫是一個建立在 TensorFlow 之上的開源框架,旨在為人們構建、訓練和部署目標檢測模型提供幫助。
該 API 的第一個版本包含:
一個可訓練性檢測模型的集合,包括:
帶有 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。
在 TensorFlow API 的 GitHub 中,已經有經過 COCO 數據集訓練過的可用模型了。COCO 數據集包含 30 萬張圖片,90 中常見事物類別。其中的類別包括:
COCO 數據集的部分類別
如上所述,在 API 中,谷歌提供了 5 種不同的模型,從耗費計算性能最少的 MobileNet 到準確性最高的帶有 Inception Resnet v2 的 Faster RCNN:
在這裡 mAP(平均準確率)是精度和檢測邊界盒的乘積,它是測量網絡對目標物體敏感度的一種優秀標準。mAP 值越高就說明神經網絡的識別精確度越高,但代價是速度變慢。
想要了解這些模型更多的信息,請訪問:https://github.com/tensorflow/models/blob/477ed41e7e4e8a8443bc633846eb01e2182dc68a/object_detection/g3doc/detection_model_zoo.md
使用 API首先,我嘗試使用了其中最輕量級的模型(ssd_mobilenet)。主要步驟如下:
總體而言,這個過程非常簡單。API 文件還提供了一個 Jupyter 筆記本來幫助記錄主要步驟:https://github.com/tensorflow/models/blob/master/object_detection/object_detection_tutorial.ipynb
這個模型在示例圖片中的表現非常不錯(如下圖):
隨後我開始嘗試讓這個 API 來識別視頻中的事物。為了這樣做,我使用了 Python 中的 moviepy 庫(連結:http://zulko.github.io/moviepy/)。主要步驟如下:
這段代碼需要一段時間來運行,3 到 4 秒的剪輯需要約 1 分鐘的處理,但鑑於我們使用的是預製模型內固定的加載內存空間,所有這些都可以在一臺普通電腦上完成,甚至無需 GPU 的幫助。這太棒了!只需要幾行代碼,你就可以檢測並框住視頻中多種不同的事物了,而且準確率很高。
當然,它還有一些可以提高的空間,如下圖所示,它幾乎沒有識別出鴨子的存在。
原文連結:https://medium.com/towards-data-science/is-google-tensorflow-object-detection-api-the-easiest-way-to-implement-image-recognition-a8bd1f500ea0
本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。
✄---
加入機器之心(全職記者/實習生):hr@jiqizhixin.com
投稿或尋求報導:editor@jiqizhixin.com
廣告&商務合作:bd@jiqizhixin.com
點擊閱讀原文,查看機器之心官網↓↓↓