久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

基于OpenCV實戰(zhàn):動態(tài)物體檢測

 小白學視覺 2021-04-25

重磅干貨,,第一時間送達

最近,,閉路電視安全系統(tǒng)運行著多種算法來確保安全,,例如面部識別,,物體檢測,,盜竊檢測,,火災警報等,。我們在運動檢測的基礎上實現(xiàn)了許多算法,因為在空閑幀上運行所有這些進程沒有任何意義,。在本文中,,我們將討論實現(xiàn)基于運動檢測的視頻保存,。

安裝依賴庫
OpenCV:pip install opencv-python


基本動作檢測

在這里,,我們將討論代碼和對如何在后臺工作的基本理解。在計算機視覺中,我們把運動看作是環(huán)境的變化,。為了計算轉換,,我們必須有一個背景圖像來比較。所以,,我們在程序的開頭保存第一個圖像,。

# Converting the image to GrayScalegray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)gray = cv2.GaussianBlur(gray,(21,21),0)# Saving the First Frameif first_frame is None: first_frame = gray continue

然后,我們將后續(xù)幀與保存的第一幀進行比較,,以觀察差異,。計算完差異后,我們可以應用閾值將其轉換為黑白圖像,。

#Calculates difference to detect motiondelta_frame = cv2.absdiff(first_frame, gray)#Applies Threshold and converts it to black & white imagethresh_delta = cv2.threshold(delta_frame, 30, 255, cv2.THRESH_BINARY)[1]thresh_delta = cv2.dilate(thresh_delta, None, iterations=0)#finding contours on the white portion(made by the threshold)cnts,_ = cv2.findContours(thresh_delta.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

最后一個命令在該黑白圖像中查找輪廓,,并給出用于創(chuàng)建邊界框的坐標,如上面的視頻所示,。使用運動檢測的好處:

  1. 它不會保存無用的空閑鏡頭,。因此,減少了其他算法的工作量,,因為不會保存空閑幀進行處理,。

  2. 它需要較少的計算,并且適合實時實施,。


阻礙與解決方案

給定的因素導致輪廓檢測不理想,,運動檢測的幼稚方法會在執(zhí)行開始時為所有比較保存第一幀。不好有幾個原因:

  • 白天的照明條件可能會改變,。

  • 天氣變化,。

  • 執(zhí)行時相機被遮擋。

解決方案:在沒有運動的情況下,,可以通過定期定期更新保存的幀來輕松解決此問題,。

# Number of idle frames to pass before changing the saved frame # for further comparisionsFRAMES_TO_PERSIST = 1000

然后將其放在while循環(huán)中:

#increment delay counter for every idle framedelay_counter += 1#Update the saved first frameif delay_counter > FRAMES_TO_PERSIST: delay_counter = 0 first_frame = next_frame

當檢測到運動時,將delay_counter設置為零,,微小的物體(例如蜜蜂和昆蟲)和通常不必要的輕微不必要的運動被存儲起來,。解決方案:如片段所示,我們應該在該區(qū)域設置一個閾值,。

# Minimum boxed area(in pixels) for a detected motion to count as actual motion# Use to filter out noise or small objectsMIN_SIZE_FOR_MOVEMENT = 2000

然后在while循環(huán)中放置一個if語句:

#Checks if the area is big enough to be considered as motion.if cv2.contourArea(c) > MIN_SIZE_FOR_MOVEMENT: #Your code


各種平臺上的基準:

所有這些都是針對同一視頻(30-fps,,1280x720)計算的。

Raspberry Pi 2:

  • 規(guī)格
  • 1.5 GHz處理器
  • 1 GB內存
  • 沒有GPU
  • FPS:每秒8.08幀

Jetson Nano:

  • 規(guī)格
  • 四核ARM處理器1.43Ghz
  • 2 Gb內存
  • GPU:128核心Nvidia Maxwell
  • FPS:每秒33幀

個人電腦 :

  • 規(guī)格
  • i7第八代處理器
  • 16 GB內存
  • GTX 1060 6 GB GPU
  • FPS:每秒37幀


潛在應用:

智能鈴:

如果有人站在您家門口,,它將自動觸發(fā)鈴聲,,并向您發(fā)送提示。

潛在威脅警報:

如果有人站在您家門前的時間長于正常時間,,它將提醒您,。


結論

在本文中,,我們實現(xiàn)了一個非常基本但重要的算法,,可用于有效運行所有其他算法,。可以對該運動檢測算法進行更多修改,,以使其更加健壯,。

下載1:OpenCV-Contrib擴展模塊中文版教程

    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多