5個步驟實現目標檢測
作者|DR. VAIBHAV KUMAR
編譯|VK
來源|Analytics In Diamag
目標檢測技術是當今計算機視覺領域的發展趨勢。在場景影象和視訊中,有許多方法被用來檢測物體。在資源和執行時間方面,每種技術都有自己的優勢和侷限性。檢測視訊中的物體也需要大量的技術知識和資源。
因此,人們一直在尋找一種簡單、快速的目標檢測方法。在本文中,我們將演示如何檢測視訊中看到的物件,只需5個步驟。
我們將在本任務中使用pixellib庫,該庫使用例項分割檢測物件。我們還將使用預訓練Mask R-CNN模型來識別視訊中看到的物體。
在這個實現中,我們將檢測交通視訊中的車輛物件。
例項分割
例項分割是計算機視覺中的一種技術,它利用影象分割的方法進行目標檢測。它在畫素級識別影象或視訊中存在的每個物件例項。
在影象分割中,視覺輸入被分割成若干段,通過形成畫素集合來表示物件或物件的一部分。例項分割識別影象中每個物件的每個例項,而不是像語義分割那樣對每個畫素進行分類。
Mask R-CNN
Mask R-CNN是由Kaiming He等人在Facebook人工智慧研究所提出的深層神經網路的變體。該模型用於解決計算機視覺中的物件例項分割問題。
它檢測影象中的物件,同時為每個例項生成一個高質量的分割掩碼。它是Faster R-CNN的一個擴充套件,它增加了一個預測目標掩碼的分支,與現有的邊界盒識別分支並行。
下面給出了用於例項分割的Mask R-CNN框架。
實現
現在,我們將討論在視訊中檢測物體的步驟。
1.安裝庫和依賴項
在第一步中,我們需要安裝pixellib庫及其依賴項。
!pip install pixellib
2.載入預先訓練的Mask RCNN權重
由於我們將使用Mask R-CNN模型來檢測目標,我們將下載其預訓練的權重。
!wget --quiet https://github.com/matterport/Mask_RCNN/releases/download/v2.0/mask_rcnn_coco.h5
3.匯入庫
現在,我們將匯入已安裝的pixellib庫。我們還將匯入instance_segmentation 類,因為我們將使用例項分割方法檢測物件。
import pixellib from pixellib.instance import instance_segmentation
4.例項化例項分割模型並載入MASK R-CNN權重
在這一步中,我們將例項化pixellib提供的instance_segmentation類,並使用其預訓練的權重載入Mask R-CNN模型。
segment_video = instance_segmentation()
segment_video.load_model("mask_rcnn_coco.h5")
5.檢測物體
在這一步中,我們將通過在視訊中MASK R-CNN來處理目標檢測任務。我們會用隨機使用一段交通視訊
視訊:https://analyticsindiamag.com/wp-content/uploads/2020/07/traffic_vid2.mp4?_=1
在這種方法中,我們設定每秒幀數,即視訊輸出每秒的幀數。
segment_video.process_video("traffic_vid2.mp4", show_bboxes = True, frames_per_second= 15, output_video_name="object_detect.mp4")
最後,我們將在工作目錄中獲得輸出視訊。這個過程的時間取決於視訊的長度和大小。你應該使用GPU來加快處理速度。對於上面的交通視訊,結果為
視訊:https://analyticsindiamag.com/wp-content/uploads/2020/07/Object_Detect.mp4?_=2
你可以定義一個函式來從YouTube獲取視訊並將其直接傳遞給上面的函式。
因此,利用以上步驟,我們可以討論一種非常簡單的方法來實現視訊中的目標檢測任務。剛入門計算機視覺的可以用這種方法檢測物體。
原文連結:https://analyticsindiamag.com/hands-on-guide-to-detect-objects-in-video-in-5-steps/
歡迎關注磐創AI部落格站:
http://panchuang.net/
sklearn機器學習中文官方文件:
http://sklearn123.com/
歡迎關注磐創部落格資源彙總站:
http://docs.panchuang.net/