我们已经将我们自主开发的行人分析检测功能与某景区的票务系统进行了对接,并且运行测试了程序。在投入使用之前,我们在内部也对行人检测功能做了测试,测试时发现分析人流数据程序仅在网页开启时生效。
启动Python程序,将RTSP设置进去,设置一个程序的端口号,使用Python命令工具启动分析检查人流量,在网页打开如下图,能够正常对人流量进行检测和分析:
但是将网页关闭就会出现程序行人分析停止,程序控制台出现“Stopping camera thread due to inactivity.”的报错,也不会打印统计的数据。
但我们发现程序没有显示红色的错误,说明程序不是崩溃导致的停止。然后在项目中搜索停止的关键字:“Stopping camera thread due to inactivity.”,搜索结果在“base_camera.py”文件中里面有程序输出的关键字。
此程序判断的意思是:在没有任何客户端请求的时候,在最后10秒钟停止线程的操作。所以此段代码是关键,将数据返回给客户端请求,只要没有客户端请求程序分析也会终止。
所以在不影响程序问题的前提下,只需要将以下代码删除:
iftime.time()-BaseCamera.last_access>10:frames_iterator.close()print('Stoppingcamerathreadduetoinactivity.')break
删除过后再进行测试。首先打开一个网页客户端,分析的画面也会正常显示,再将网页的客户端关闭,也就是不请求,此修改过后的程序也会正常分析和打印分析过后的数据。