簡體   English   中英

使用OpenCV對從IP攝像機接收到的流進行有效的運動檢測

[英]Effective motion detection with OpenCV with stream received from IP Camera

我有兩個問題,我一個多星期都在努力尋找答案。

我正在Visual C ++ 2017上編寫Windows服務,該服務連接到我們網絡上的Axis IP攝像機並使用常規套接字查詢MJPEG流。 它成功解析了流並解碼了JPEG圖像。 使用OpenCV進行解碼; frame = cv :: imdecode(data,IMREAD_GRAYSCALE))。

Q1。 盡管OpenCV聲稱使用了性能JPEG庫:build-libjpeg-turbo(版本1.5.3-62),但解碼性能卻比.Net的System.Drawing.Image.FromStream(ms)慢得多。 您對真正快速的JPEG解壓縮有什么建議嗎?

Q2。 我需要對接收的JPEG進行的所有操作就是檢查“感興趣區域”是否存在運動。 這些實際上是工廠的生產線。 該工廠每周工作24天24天,因此照明條件會不斷變化。 有時根本沒有光,因此JPEG上會有很多雜音。 您建議將哪些OpenCV操作和算法應用於框架,以了解ROI是否有運動? 當然,您可以一次又一次地對矩陣進行大量操作,但是我需要最短,最有效的方法來保持較低的資源需求,因為它將同時對大量攝像機和ROI進行此操作。

我的系統裝有NVIDIA顯卡(我可以使用CUDA),Intel i7-7700、16GB Ram。

謝謝!

這並不完全是您問題的答案,但它甚至可能是更好的方法。

長期以來,Axis IP攝像機都具有板載運動檢測引擎,無法通過攝像機Web UI對其進行配置(在舊的攝像機型號/固件版本上,可能需要使用Internet Explorer和使用嵌入式ActiveX控件來進行配置)並通過VAPIX Axis HTTP相機API。

相同的VAPIX HTTP API還具有用於接收攝像機上每個已配置的運動區域/窗口的運動級別和閾值的命令。

如果您沒有支持VAPIX版本3的最新模型,則仍然可以依賴VAPIX版本2,可以嘗試發出HTTP GET請求,例如:

http:///axis-cgi/motion/motiondata.cgi?group = 0,1

獲得運動級別和閾值數據的HTTP多部分流(即運動區域0和1)。

有關更多詳細信息,您可以從Axis網站下載相關的VAPIX PDF文檔(可能需要一個帳戶並登錄)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM