TSINGSEE青犀視訊景區行人檢測分析人流資料程式僅在網頁開啟時生效的優化
阿新 • • 發佈:2021-10-20
我們已經將我們自主開發的行人分析檢測功能與某景區的票務系統進行了對接,並且執行測試了程式。在投入使用之前,我們在內部也對行人檢測功能做了測試,測試時發現分析人流資料程式僅在網頁開啟時生效。
啟動Python程式,將RTSP設定進去,設定一個程式的埠號,使用Python命令工具啟動分析檢查人流量,在網頁開啟如下圖,能夠正常對人流量進行檢測和分析:
但是將網頁關閉就會出現程式行人分析停止,程式控制臺出現“Stopping camera thread due to inactivity.”的報錯,也不會列印統計的資料。
但我們發現程式沒有顯示紅色的錯誤,說明程式不是崩潰導致的停止。然後在專案中搜索停止的關鍵字:“Stopping camera thread due to inactivity.”,搜尋結果在“base_camera.py”檔案中裡面有程式輸出的關鍵字。
此程式判斷的意思是:在沒有任何客戶端請求的時候,在最後10秒鐘停止執行緒的操作。所以此段程式碼是關鍵,將資料返回給客戶端請求,只要沒有客戶端請求程式分析也會終止。
所以在不影響程式問題的前提下,只需要將以下程式碼刪除:
if time.time() - BaseCamera.last_access > 10:
frames_iterator.close()
print('Stopping camera thread due to inactivity.')
break
刪除過後再進行測試。首先開啟一個網頁客戶端,分析的畫面也會正常顯示,再將網頁的客戶端關閉,也就是不請求,此修改過後的程式也會正常分析和列印分析過後的資料。