1. 程式人生 > 實用技巧 >5個步驟實現目標檢測

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/