Work Monitor 视频监控工具

💡 原文中文,约8300字,阅读约需20分钟。
📝

内容提要

这篇文章介绍了一个用Python编写的视频监控工具,通过延时摄影的方式拍摄照片并组合成视频。作者开发这个工具是为了监控自己的电脑在不在时是否被他人使用。文章还介绍了工具的安装和使用方法,以及代码的结构和功能。作者表示工具还有改进的空间,并提到了自己在其他领域的学习和了解。

🔎

延伸解读

工具定位与适用场景

该工具面向需要监控电脑是否被他人使用的场景,通过定时拍照并合成视频来记录一段时间内的变化。它适合电脑不便锁屏但希望留痕的用户,例如在办公室或共享空间。工具目前处于可用状态,但作者指出后续可能加入人脸检测以提高频率或视频压缩以减少静态帧,说明当前版本功能基础,适合对实时性要求不高的监控需求。

配置与运行机制

工具通过配置文件管理摄像头ID、保存目录、帧率等参数,并支持客户端动态更新配置。服务端在主线程启动,子线程监听客户端命令,视频生成在子线程中进行且限制同时只有一个任务,避免内存不足。拍照间隔和视频长度由策略模块控制,默认每10秒拍一张,每1000帧合成一个视频。这种设计平衡了资源占用与监控连续性。

已知限制与改进方向

作者明确提到几个待改进点:当frames_save为True且按帧数触发视频保存时,会频繁触发并保存相同帧;服务端异常时可能无法发送停止命令;图片中插入时间信息导致帧间差异,不利于相似度判断。此外,工具目前仅支持一种策略,人脸检测和视频压缩尚未实现。这些限制意味着工具在稳定性和智能化方面仍有提升空间。

❓

Q&A

Work Monitor 这个工具是做什么用的?

Work Monitor 是一个用 Python 编写的视频监控工具,通过延时摄影的方式每隔一段时间拍摄一张照片,然后组合成视频,用于监控电脑在无人时是否被他人使用。

如何安装 Work Monitor?

可以通过 pip 安装:pip3 install work-monitor,依赖包有 opencv-python 和 numpy。也可以从源码使用:git clone git@github.com:caibingcheng/work-monitor.git,然后进入目录运行 python3 -m monitor。

Work Monitor 的基本使用步骤是什么?

首先启动监控服务:work-monitor server。然后可以通过客户端命令查看或设置服务端状态,例如 work-monitor get_config 查看配置,work-monitor set_config <keys...> <value> 设置配置。使用 help 命令可以查看所有支持的命令。

Work Monitor 的配置项有哪些?

配置项包括:camera_id(摄像头ID)、video_dir(视频保存目录)、frames_dir(帧图片保存目录)、config_dir(配置文件目录)、log_dir(日志目录)、fps(视频帧率)、quality(图片质量0-100)、frames_save(是否保存帧图片)、policy(策略,目前只有easy_policy)、easy_policy(包含frames_interval和frames_per_video)、server(端口号)。

Work Monitor 的代码结构是怎样的?

代码分为多个模块:app.py(入口)、command.py(命令行)、config.py(配置)、server.py(服务端与通信)、log.py(日志)、capture.py(拍照)、video.py(视频生成)、policy.py(策略)。各模块负责不同功能,协同工作。

Work Monitor 如何避免生成视频时内存不足?

在生成视频时,不会一次性将所有图片读入内存,而是先获取图片地址列表,然后在子线程中一张张读入图片并组合成视频。同时,只允许一个视频生成线程运行,避免并发导致内存问题。

Work Monitor 目前有哪些已知问题或改进方向?

已知问题包括:frames_save 设置为 True 时可能频繁触发保存相同帧;服务端异常时可能无法发送停止命令。改进方向包括:检测到非本人人脸时提高检测频率、视频压缩以减少重复静态帧等。

🏷️

标签

➡️

继续阅读