1. 程式人生 > >基於Tensorflow的視訊目標檢測API實現

基於Tensorflow的視訊目標檢測API實現

最近在看如何實現視訊中道路目標的檢測的相關博文,過程遇坑,簡單總結。原文在此

測試環境:Win10、TF-CPU、Opencv、Anaconda

一、Anaconda下Tensorflow安裝

由於僅做測試,不用訓練,簡裝CPU版本,Anaconda官網下載即可,開啟cmd:

pip install --opgrade tensorflow

等待片刻後,開啟spyder編輯器,新建檔案下複製以下內容

import tensorflow as tf
hello = tf.constant("Hello, Tensorflow")
sess = tf.Session()
print(sess.run(hello))

彈出 “Hello, Tensorflow”則安裝成功。

二、Protoc安裝

什麼是Protoc?Protoc是用來編譯.Proto檔案,Protocol Buffers (ProtocolBuffer/ protobuf )是Google公司開發的一種資料描述語言,類似於XML能夠將結構化資料序列化,可用於資料儲存、通訊協議等方面。現階段支援C++、JAVA、Python等三種程式語言
原作者推薦的網址中包含了最新版的壓縮包和老版本的壓縮包,我使用了最新的壓縮包報錯,返回老版本就可以了


三、Git安裝

git +網址是目前主流的線上下載指令,在官網找到Windows下載安裝

四、安裝其他

pip install pillow

pip install lxml
原博主還增加了別的安裝,我覺得沒必要,好像結果也沒有影響

五、下載模型並編譯

開cmd輸入

git clone http://github/tensorflow/models.git

下載好後會放在使用者下的models資料夾內,然後再是編譯

protoc object_detection/protos/*.proto --python_out=. #*.proto表示一次編譯該資料夾下所有的.porto檔案 

開啟ipynb檔案,可以看到瀏覽器下的python程式碼。先轉到絕對路徑到object_detection資料夾,再cmd執行:

jupyter-notebook

開啟object_detection_tutorial.ipynb,可以直接Run all cell執行測試。

結果略,原博主寫的很詳細,這裡主要講

1.若是要測試自己的圖片記得在資料夾路徑指明

2.測試圖片數量也可以做相應修改,在路徑下一行

3.有多種模型可以供選擇,可以自己選擇一種,供修改名稱如下

MODEL_NAME = 'ssd_inception_v2_coco_11_06_2017'

MODEL_NAME = 'rfcn_resnet101_coco_11_06_2017'

MODEL_NAME = 'faster_rcnn_resnet101_coco_11_06_2017'

MODEL_NAME = 'faster_rcnn_inception_resnet_v2_atrous_coco_11_06_2017'

六、執行視訊目標檢測

終於講到了最關鍵的一步了

1.現在準備視訊檢測下的環境配置,安裝opencv,我的上篇部落格裡提到過,這裡略。

2.新增視訊識別程式碼,此處由於原博主寫的很詳細,我不在贅述,這是網址

注意:程式碼有些地方值得優化,例如

imageio.plugins.ffmpeg.download()

          此處表示下載ffmpeg.exe視訊處理軟體,下載一次就夠,所以執行成功一次後可遮蔽此處

from moviepy.editor import *
clip1 = VideoFileClip("video1_out.mp4")
clip1.write_gif("final.gif")

           最後一段程式碼是指將輸出檢測結果的mp4檔案轉化為gif,沒有必要,可以刪除

clip1 = VideoFileClip("video1.mp4").subclip(25,30)

           代表指定的檔案,以及裁剪該檔案中第xx秒到xx秒的視訊影象來處理

演示就講到這,接下來討論下實現原博主部落格中遇到的bug

七、BUG分析

執行

protoc object_detection/protos/*.proto --python_out=. #*.proto表示一次編譯該資料夾下所有的.porto檔案 

出現No such file or directory的報錯,但資料夾下有該目錄,查閱資料後發現protoc3.5不穩定,改換3.4即可

執行視訊檢測時出現

ImportError: No module named 'moviepy'

好像moviepy庫並沒有在Anaconda中,但是作者並沒有提到這一點,感覺比較奇怪,還是默默掏出了

pip install moviepy

結果竟然報錯,且好像還跟Anaconda有關,我頓時無語凝噎,後來我找到了這個部落格的解決方案,主要就是我的Anaconda下有很多包需要更新,pip也要更新到新版本,我按照提示將能更的都更新了一遍,然後在安裝的時候就沒有報錯了。

3  最後一個問題出現在重複執行程式碼時會有這個

OSError: [WinError 6] 控制代碼無效。

由於對python的問題還不夠了解,我的解決方法是關閉jupyter-notebook後重新在cmd中開啟,就可以再次運行了,問了下師兄好像是因為這個程式碼沒有設定返回值,以後慢慢摸索吧,然後小問題就沒有po上來了,暫時就這樣,圖片的檢測結果如下

視訊的檢測結果可供下載參考  https://download.csdn.net/download/along1617188/10325180

謝謝指點!

八、相關參考

1、https://blog.csdn.net/xiaoxiao123jun/article/details/76605928(轉自此文)









相關推薦

基於Tensorflow視訊目標檢測API實現

最近在看如何實現視訊中道路目標的檢測的相關博文,過程遇坑,簡單總結。原文在此測試環境:Win10、TF-CPU、Opencv、Anaconda一、Anaconda下Tensorflow安裝由於僅做測試,不用訓練,簡裝CPU版本,Anaconda官網下載即可,開啟cmd:pip

基於Tensorflow目標檢測(Detection)的程式碼案例詳解

這篇博文我主要闡述了基於Tensorflow的Faster RCNN在Windows上的一個Demo程式,其中,分為兩個部分,一個是訓練資料匯入部分,一個是網路架構部分開始。源程式git地址我會放在文章最後,下載後可以參考對應看一下。 一、程式執行環境說明 首先,我想闡述一堆巨坑,下面只要有

基於tensorflow目標檢測fine-tuning(使用自己標註的影象)

目標檢測fine-tuning(男女檢測) 資料集 在資料庫中下載了2000張標籤為肖像畫的畫作,選擇1000張作為訓練集和驗證集,1000張作為測試集。 資料標註 採用labelImg軟體來標記自己的資料集,選擇存放圖片的資料夾,選擇影象,然後手動框出影象上的物體,

==2==Ubuntu 16.04下安裝TensorFlow 目標檢測 API(物件檢測API)

由於最近剛看了rcnn,faster_rcnn,mask_rcnn的原文,想著做一下實驗,所以就如題,在ubuntu下安裝TensorFlow的目標識別API!!!!在此之前很少用Ubuntu,所以犯的錯很齊全 環境配置參考部落格連結 物件檢測API參考的部落格 主要參照上面的兩個部落格

Ubuntu 16.04下安裝TensorFlow 目標檢測 API(物件檢測API)

由於最近剛看了rcnn,faster_rcnn,mask_rcnn的原文,想著做一下實驗,所以就如題,在ubuntu下安裝TensorFlow的目標識別API!!!!宣告本人在此之前很少用Ubuntu,所以犯的錯很齊全~~哭 環境配置參考部落格連結 物件檢測AP

基於改進的LCM的紅外小目標檢測演算法實現

//改進LCM演算法 Mat ImproveLCM(const Mat& SrcImg, int ksize) { if (SrcImg.channels() != 1) cvtColor(SrcImg, SrcImg, CV_RGB2GRAY); Mat r

基於阿裏雲 DNS API 實現的 DDNS 工具

count 程序打包 打包 Coding 說明 str sha1 .get 右鍵 0.使用說明 AliDDNSNet 是基於 .NET Core 開發的動態 DNS 解析工具,借助於阿裏雲的 DNS API 來實現域名與動態 IP 的綁定功能。 使用時請更改同目錄下的 se

Faster R-CNN:詳解目標檢測實現過程

最大的 中心 width 小數據 等等 eat tar 優先 博文 本文詳細解釋了 Faster R-CNN 的網絡架構和工作流,一步步帶領讀者理解目標檢測的工作原理,作者本人也提供了 Luminoth 實現,供大家參考。 Luminoth 實現:h

Tensorflow實戰目標檢測

name html com ring coord mage category 技術 sin 首先到github下載相應的Tensorflow模型,以及配置好環境。具體的可參考這篇博客 或者參考Github上,TensorFlow models/research/object

基於DL的目標檢測技術:R-CNN、Fast R-CNN、Faster R-CNN

目標檢測:在給定的圖片中精確找到物體所在位置,並標註出物體的類別。 目標檢測=影象識別(CNN)+定位(迴歸問題/取影象視窗) 遇到多物體識別+定位多個物體? 用選擇性搜尋找出可能含有物體的框(候選框)判定得分。這些框之間是可以互相重疊互相包含的,從而避免暴力列舉的所有框了。 1.R

視訊目標檢測識別

之前文章目標檢測API 已經介紹過API的基本使用,這裡就不贅述了,直接上本次內容的程式碼了,新增的內容並不多。將測試的test.mp4原檔案放到models-master\research\object_detection路徑下,並建立一個detect_vid

論文 | 基於CNN的目標檢測演算法

近十年來,多目標檢測的進展主要的是基於SIFT和HOG。但當在觀察PASCAL VOC object detection的比賽結果時發現,比賽結果在2010-2012年之間進展緩慢。隨著CNN(卷積神經網路)在ImageNet(影象識別比賽)上大獲成功,本文作者考慮是否能將CNN在影象識別比賽中的結果應用到目

YOLO——基於迴歸的目標檢測演算法

YOLO: You Only Look Once:Unified, Real-Time Object Detection     這篇論文的內容並不多,核心思想也比較簡單,下面相當於是對論文的翻譯!     YOLO是一個可以一次性預測多個Box位置和類別的卷積神經網

動態視訊目標檢測和跟蹤技術(入門)

動態視訊目標檢測和跟蹤技術 http://m.qingqingsk.com/ztnews/lvvozlzrztkzrqwqqlnrluqk.html 傳統電視監控技術只能達到“千里眼”的作用,把遠端的目標影象(原始資料)傳送到監控中心,由監控人員根據目視到的視訊影象對

呼叫百度人臉檢測API實現簡單的顏值檢測

    通過百度人工智慧平臺中的人臉檢測模組,實現簡單的人臉檢測,百度人工智慧平臺免費註冊,人臉檢測模組免費使用。相關API文件在:http://ai.baidu.com/docs#/Face-Detect-V3/top,依照API文件就可以寫出一個簡單的檢測工具。程式碼如下

目標檢測基於SVM+HoG目標檢測

最近正在做一個基於目標檢測的專案,裡面涉及到行人檢測、跟蹤,這裡記錄專案歷程,以備後期研習。 【00】前言        巴拉巴拉---在做這個之前,看的論文也比較少,主要是百度、必應一些關鍵詞 行

視訊目標檢測中關於對檢測出的目標進行”安全處理“問題

最近做視訊的目標識別和追蹤計數,編譯連線均沒有問題,但是在測試時出現了問題,只要標出的box與視訊的邊界接觸就會出現程式崩潰,並提示出opencv的斷言提示:OpenCV Error: Assertion failed (0 <= roi.x && 0

基於區域的目標檢測

目標檢測,即在一幅圖裡框出某個目標位置.有2個任務. 定位出目標的邊界框 識別出邊界框內的物體的類別 Sliding-window detectors 一種暴力的目標檢測方法就是使用滑動視窗,從左到右,從上到下掃描圖片,然後用分類器識別視窗中的目標.為了檢測出不同的目標,或者同一目標但大小不同,必須使用不

基於谷歌開源的TensorFlow Object Detection API視訊物體識別系統實現教程

安裝Python 進入Python3.6.2下載頁,選擇 Files 中Windows平臺的Python安裝包,下載並安裝(本人安裝的是3.6.2版本的python,可根據實際情況下載不同版本的python) 安裝TensorFlow 進入TensorFlow

基於win10,GPU的Tensorflow Object Detection API部署及USB攝像頭目標檢測

1.TensorFlow安裝 安裝教程在CSDN上有很多文章,但最好依據官方教程,因為TensorFlow不斷更新,需要的CUDA、cudnn等版本也在變化。官方地址在GITHUB裡TensorFlow專案下可以找到安裝指南,https://www.