# cvmonitor
**Repository Path**: tommycloud/cvmonitor
## Basic Information
- **Project Name**: cvmonitor
- **Description**: 【Github镜像】基于开源计算机视觉库BoofCV实现摄像头视频内容的变化检测。
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: https://tommyslee.github.io/
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-04-18
- **Last Updated**: 2026-08-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: BoofCV, Java, 视频检测, 计算机视觉
## README
CVMonitor
基于BoofCV实现视频内容的变化检测
**BoofCV** 是一个纯 Java 的全新实时计算机视觉库,其易于使用且具有非常高的性能。功能涵盖一系列Subjects、low-level图像处理、相机校准、特征检测/跟踪、运动结构、基准检测和识别。
https://boofcv.org/
#### 说明
- 通过 FFmpeg Pull 海康摄像头RTSP主码流,每秒取一帧图片落盘;
- 基于BoofCV对帧图片识别,判断图片内容是否发生变化;
- 发生变化的帧图片,经过Base64编码后,通过 REST API 发送给 AI 服务,做进一步处理(如:人员入侵检测、人脸检测与识别等)。
#### 算法
- 将图片转换为灰度图;
- 基于像素级图片对比,采用MSE与NMSE来评价视频画面是否发生变化;
- NMSE采用的算法公式:
$$
NMSE = \frac{MSE}{Var(ytrue)}
$$
#### 名词解释
- MSE:即均方误差
- NMSE:即MSE归一化
- Var(ytrue):真实值方差
#### MediaMTX
[MediaMTX](https://github.com/bluenviron/mediamtx)是一款开箱即用、零依赖的实时媒体服务器和媒体代理,允许发布、读取、代理、录制和播放视频和音频流。它被认为是一个“媒体路由器”,将媒体流从一端路由到另一端。
#### OpenCV JNI
- [OpenCV JNI Linux X86(含FFMepg)类库下载](https://download.csdn.net/download/li277967151/89324112)
- [OpenCV JNI Linux ARM(含FFMepg)类库下载](https://download.csdn.net/download/li277967151/89324117)
#### 其它
> 预览效果,可直接执行类:com.ty.test.Test
>
> 输出如下结果表示成功:
```powershell
ROOT Path: /opt/workspaces/CVMonitor/target/test-classes/
均方误差MSE = 15.620534336419754
真实值均值: 97.89999
真实值方差:3875.7314
NMSE = 0.004030344866982978
图片相似度:99.6%
Process finished with exit code 0
```
> **要求:对比的两张图片必须为同尺寸的。**