监控系统模块
监控系统模块(2023-05-19)

每个实验室包括楼道都有监控,考虑到方便管理,开发监控系统模块来对监控的信息进行捕获分析和储存。考虑到图片可能比较多这边使用Minio对象储存。
1、监控快照拍摄预览
使用opencv来对监控进行读取,传入的变量时监控的rtsp链接,调用cv2.VideoCapture()方法来打开链接、图片或者视频,通过.read()方法可以读取一帧的图片并返回给frame同时也会返回一个变量表示是否读取成功,调用cv2.imwrite(filePath, frame)方法来对读取的一帧图片保存到本地,该模块只是对监控的预览,暂时设定为每分钟拍摄一张图片并上传到对象储存仓库。

连接Minio对象仓库使用boto3包,通过url和两个key即可生成一个S3连接。之后调用upload_file()方法即可向相应的桶中上传对象。

考虑到预览的时效性,这边只是每个摄像头保存30张图片用来记录信息。定时调用来对桶中包括Lab系统数据库中的记录进行删除。


2、快照分析事件发现
当对监控拍照之后储存到预览桶中,后续考虑可以接入事件分析模块,对快照进行分析,比如识别人数、识别有无烟雾、识别有无同学在实验室吃东西等,如果发现即将事件描述和该快照储存到事件桶中,并向Lab系统发送信息将图片信息储存到数据库中。

浙公网安备 33010602011771号