1. 程式人生 > >基於背景建模的紅外運動目標檢測(二)

基於背景建模的紅外運動目標檢測(二)

前邊講到前景檢測後形態學處理,濾除大部分孤立噪點,並且能夠將距離相近,屬於同一目標的區域連線在一起。
在進行形態學處理後,二值圖上分佈著為數不多的亮點連通區域。在我們的思維裡,每個連通區域隸屬於同一個目標,但是計算機並不知道,在計算機眼裡,它依然是一幅影象,是一個規則的二維矩陣,是分佈著黑點亮點的二維矩陣。

連通區域的標記

將每團亮點標記為一個目標,暫時有兩種方式可以考慮:

opencv查詢輪廓函式

void findContours( InputOutputArray image, OutputArrayOfArrays contours,
                              OutputArray hierarchy, int mode,
                              int method, Point offset=Point());

連通域標記

連通域標記指的是將符合某種空間關係的畫素,歸屬在同一個目標。常見連通域關係有四鄰和八鄰連通區域標記。具體空間關係如下,連通區域識別程式碼網上很多,不再列舉。
這裡寫圖片描述

連通區域合併

筆者採用opencv的查詢輪廓函式,畢竟一些成熟的演算法,必然有它恆久存在的原因。
在進行連通域標記之後,會存在這樣的情形:一個目標被標記為多個連通區域。
試著分析一下原因:前景檢測直接得到離散點的二值影象,目標只是分佈比較密集的區域,但並不是徹底的連線成為一體。
形態學操作腐蝕、膨脹,也會影響這些離散點的連通關係。一味的增大膨脹核大小可以減少這個問題,但是會存在目標區域不精確、噪點被多重放大的風險。因此,在進行區域標記後,增加區域合併功能。

合併區域思考兩個問題:

  1. 哪種情況需要合併?
  2. 怎樣合併?

第一個問題,在區域標記後,我們所具有的資訊只是單純的二值點,和目標的特徵分離。因此合併條件只需考慮這些被標記的連通區域的空間關係:距離相近、相交、包含(包含是特殊的相交關係)。
關於矩形相交關係,筆者分享一種判斷方式:

bool CPOS::isRectOverlap(cv::Rect& rec1, cv::Rect& rec2)
{
	int rec1_left, rec1_right, rec1_top, rec1_bottom;
	int rec2_left, rec2_right, rec2_top, rec2_bottom;
	rec1_left = rec1.x;
	rec1_right = rec1.x + rec1.width;
	rec1_top = rec1.y;
	rec1_bottom = rec1.y + rec1.height;
	rec2_left = rec2.x;
	rec2_right = rec2.x + rec2.width;
	rec2_top = rec2.y;
	rec2_bottom = rec2.y + rec2.height;
	return !(rec1_left > rec2_right || rec1_top > rec2_bottom || rec2_left > rec1_right || rec2_top > rec1_bottom);
}

至於如何合併,兩個矩形求並集就可以。具體程式碼暫時不上傳,因為在工程中用。如果有需要可以小視窗我。

相關推薦

基於背景建模紅外運動目標檢測

前邊講到前景檢測後形態學處理,濾除大部分孤立噪點,並且能夠將距離相近,屬於同一目標的區域連線在一起。 在進行形態學處理後,二值圖上分佈著為數不多的亮點連通區域。在我們的思維裡,每個連通區域隸屬於同一個目標,但是計算機並不知道,在計算機眼裡,它依然是一幅影象,是一

C++利用幀差法背景差分實現運動目標檢測opencv

幀差法、光流法、背景減除法 運動目標檢測是指在序列影象中檢測出變化區域並將運動目標從背景影象中提取出來。通常情況下,目標分類、跟蹤和行為理解等後處理過程僅僅考慮影象中對應於運動目標的畫素區域,因此運動目標的正確檢測與分割對於後期處理非常重要然而,由於場景的動態

tensorflow利用預訓練模型進行目標檢測:將檢測結果存入mysql資料庫

mysql版本:5.7 ; 資料庫:rdshare;表captain_america3_sd用來記錄某幀是否被檢測。表captain_america3_d用來記錄檢測到的資料。 python模組,包部分內容參考http://www.runoob.com/python/python-modules.html&

目標檢測——Fast R-CNN

學習Fast R-CNN之前我們先了解一下SPP-Net網路 SPP-net SPP-net(Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition, He et a

CNN目標檢測:YOLO

↑↑↑↑目錄在這裡↑↑↑↑ 縮排YOLO全稱You Only Look Once: Unified, Real-Time Object Detection,是在CVPR2016提出的一種目標檢測演算法,核心思想是將目標檢測轉化為迴歸問題求解,並基於一個單獨的end-to-e

手把手教你如何用objection detection API實現實時目標檢測

上文我們介紹如何配置用objection detection API實現實時目標檢測的環境(原文連結),在這裡,我們將給大家介紹如何如何自己動手做一個目標檢測系統來實現對影象的識別。 一、準備圖片 在這裡博主想要實現的是使用API來對手機進行檢測,因此我們首先需要從網上

目標檢測——SPP-Net

上一篇R-CNN中提到過, R-CNN是先提取region,每個region都過這五個卷積。這樣做計算量非常龐大。針對這個問題,SPP-Net做了改進,它是整個圖過一次卷積(五個卷積操作),然後取對應得region。同樣的,卷積可使用Alex和VGG。 一、

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

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

運動背景下的運動目標檢測

各種目標檢測方法介紹(懶人可以直接略過)   目標檢測是一個老話題了,在很多演算法當中都有它的身影。目標檢測要做的就兩件事:檢測當前圖片中有沒有目標?如果有的話,在哪?按照先驗知識和背景運動來劃分的話,目標檢測方法大概可以分為兩大類:   第一,已知目標的先驗知識。在這種情況下檢測目標有兩類方法,第一類方法

目標跟蹤---簡單的實現運動物體檢測python1

#基本的運動物體檢測 #計算幀之間的差異,或考慮“背景”幀與其他幀之間的差異 import cv2 import numpy as np ##設定為預設攝像頭 camera = cv2.VideoCapture(0) #getStructuringElement是獲取常用

吳恩達【深度學習工程師】 04.卷積神經網絡 第三周目標檢測 1基本的對象檢測算法

元素 需要 有關 卷積 訓練 特定 步長 來看 選擇 該筆記介紹的是《卷積神經網絡》系列第三周:目標檢測(1)基本的對象檢測算法 主要內容有: 1.目標定位 2.特征點檢測 3.目標檢測 目標定位 使用算法判斷圖片中是不是目標物體,如果是還要再圖片中標出其位置並

目標檢測 — one-stage檢測

vol 最大 由於 直接 nta -c loss 機制 階段   one-stage檢測算法,其不需要region proposal階段,直接產生物體的類別概率和位置坐標值,經過單次檢測即可直接得到最終的檢測結果,因此有著更快的檢測速度,比較典型的算法如YOLO,SSD

tensorflow利用預訓練模型進行目標檢測:預訓練模型的使用

err sync numpy sna sta porting trac git int32 一、運行樣例 官網鏈接:https://github.com/tensorflow/models/blob/master/research/object_detection/obje

一文帶你學會使用YOLO及Opencv完成影象及視訊流目標檢測|附原始碼

計算機視覺領域中,目標檢測一直是工業應用上比較熱門且成熟的應用領域,比如人臉識別、行人檢測等,國內的曠視科技、商湯科技等公司在該領域佔據行業領先地位。相對於影象分類任務而言,目標檢測會更加複雜一些,不僅需要知道這是哪一類影象,而且要知道影象中所包含的內容有什麼及其在影象中的位置,因此,其工業應用比較廣泛。那麼

一文帶你學會使用YOLO及Opencv完成圖像及視頻流目標檢測|附源碼

目錄 aliyun sele 分數 connected 出了 man 領域 turn 計算機視覺領域中,目標檢測一直是工業應用上比較熱門且成熟的應用領域,比如人臉識別、行人檢測等,國內的曠視科技、商湯科技等公司在該領域占據行業領先地位。相對於圖像分類任務而言,目標檢測會更加

10分鐘學會使用YOLO及Opencv實現目標檢測|附原始碼

   將YOLO應用於視訊流物件檢測 首先開啟 yolo_video.py檔案並插入以下程式碼: # import the necessary packages import numpy as np import argparse import imutils import time impo

tensorflow利用預訓練模型進行目標檢測檢測中的精度問題以及evaluation

一、tensorflow提供的evaluation Inference and evaluation on the Open Images dataset:https://github.com/tensorflow/models/blob/master/research/object_detection/g

目標檢測——R-CNN

一 R-CNN R-CNN(R. Girshick et al., 2014)是基於region proposal方法的目標檢測算法系列開山之作,其先進行區域搜尋,然後再對候選區域進行分類。在R-CNN中,選用Selective search方法(J.R.R. Uijli

目標檢測--YOLO v1,v2,v3

YOLO v1 這是繼RCNN,fast-RCNN和faster-RCNN之後,rbg(RossGirshick)針對DL目標檢測速度問題提出的另外一種框架。YOLO V1其增強版本GPU中能跑45fps,簡化版本155fps。 1. YOLO的核心思想 YOL

手把手教你如何用objection detection API實現實時目標檢測

本文是這一系列文章的最後一篇,由於之前兩篇文章已經對專案的環境配置和引數修改做了較為詳細的介紹。因此,在本文中我們不再贅述上述部分,讀者可以看一下之前的兩篇文章。《手把手教你如何用objection detection API實現實時目標檢測(一)》、《手把手教你如何用objecti