# 智能视频监控系统
***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.***
---
本项目是一个基于Quectel Pi M2智能主控板开发的智能视频监控系统。系统集成Frigate NVR(网络视频录像机)平台,依托计算机视觉技术,提供目标检测、人脸识别与事件记录等核心功能。
在设备兼容性方面,系统支持灵活接入多种类型的摄像头:
- USB摄像头:本地直接接入,即插即用。
- IPC(网络摄像头):基于ONVIF协议实现标准化设备控制,并通过RTSP传输低延迟视频流。
系统配备Web可视化管理界面,用户可便捷地进行实时监控与数据管理等操作,适用于家庭安防、商业监控等应用场景。
```{image} images/image_FSyvbNIpQo4J1gxvpuMcmGTrnxe.webp
:width: 1026px
:height: 641px
```
# 开发资源汇总
## 开发配件清单
```{note}
以下开发配件仅供参考,实际配置可能因开发环境而异。例如,通过SSH远程连接进行开发时,无需USB扩展坞;显示屏可根据需要替换,但替换件应满足接口和规格要求。
```
|
配件名称
|
数量
|
规格参数
|
| --- | --- | --- |
| Quectel Pi M2智能主控板 |
1块
| - |
| USB-C电源适配器 |
1个
| [27W USB Type-C接口充电器]();1.2米线长;中规电源PD电源;适用于树莓派5代 |
| HDMI线 |
1根
| 规格:HDMI 2.0;线长:1 m;接口:HDMI-A(公头)-HDMI-D(公头) |
| 网线 |
1根
| 线长:1 m;传输速率:千兆; |
| CPU散热风扇(可选) |
1个
| [树莓派5代官方原装散热器(带导热贴)]() |
| 扩展坞(可选) |
1个
| [绿联USB3.0扩展坞]() |
| 网络摄像头 |
1个
| [腾达室内家用监控摄像头]() |
| USB摄像头模块 |
1个
| [绿联高清USB摄像头带麦克风(2K 400万高清自动对焦)]() |
| HDMI显示器 |
1个
| 24英寸HDMI显示器 |
## 配件实物参考
```{image} images/image_LY1CbaVWGok5QdxuhNicuCp5nif.webp
:width: 908px
:height: 538px
:align: center
```
# 快速上手
## 开发准备
**Quectel Pi M2** 智能主控板出厂时默认预装 **Debian 13** 系统镜像,因此无需重新烧录,按照以下步骤操作即可。
## 硬件连接
按照以下步骤完成所有硬件连接,步骤编号与接口示意图中的标注一致:
```{image} images/image_SboMbAO5ioj84Lx2lSicQU8OnPg.webp
:width: 627px
:height: 463px
:align: center
```
1. **显示连接:** 将Micro HDMI线一端接入智能主控板的Micro HDMI接口,另一端接入显示器的HDMI接口。
2. **网络连接:** 确保路由器已接入互联网。将网线的一端连接到智能主控板的千兆以太网端口,另一端连接到路由器的以太网端口。
3. **输入设备连接:** 将USB键盘、鼠标和USB摄像头模块连接到智能主控板的USB接口;若使用无线输入设备,将无线接收器连接到智能主控板的USB接口即可。
4. **供电连接:** 将USB-A电源线的USB-A端连接到电源适配器的输出端,将USB-C端连接到智能主控板的电源输入接口(通常标注为 **POWER IN**)。
5. **网络摄像头连接:** 使用网络摄像头自带的电源线接通电源,并确保其与主控板处于同一局域网内。
### 连接完成参考图
```{image} images/image_Zd2ebcgp3oEjouxxABzchKdenAh.webp
:width: 932px
:height: 637px
:align: center
```
## 项目实现
### 准备步骤
网络摄像头首次联网需连接Wi-Fi或路由器,同时手机也需连上同一路由器或热点的Wi-Fi,然后通过腾达APP添加摄像头设备。详情请参见网络摄像头 [App配置指南]()。
```{note}
请确保所有智能主控板与网络摄像头处于同一局域网内,否则无法获取摄像头设备的RTSP视频流。
```
### 安装Docker
```bash
#卸载所有冲突的软件包
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-doc podman-docker containerd runc | cut -f1)
#设置Docker apt仓库
sudo apt-get update
sudo apt-get install curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#安装Docker软件包
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```
### 启动Docker服务
```shell
#自动启动Docker服务
sudo systemctl start docker
#验证Docker是否正在运行
sudo systemctl status docker
```
若页面显示“active(running)”,则表示Docker启动成功。
### 部署Frigate系统
```shell
#在根目录下新建frigate文件夹并创建配置文件
mkdir ~/frigate
cd frigate/
mkdir storage config
```
[点击此链接](),下载配置文件。然后使用SCP命令上传文件至 *~/frigate* 目录下(参考 [SCP文件拷贝](<../../../使用指南/设备连接/SCP文件拷贝/SCP文件拷贝.md>)),并执行以下命令安装Frigate。
```{note}
请确保 *docker-compose.yml* 文件位于 *~/frigate* 目录下,否则无法执行以下命令。
```
```shell
sudo docker compose up -d
```
### 安装项目依赖库
在终端运行以下命令安装项目依赖库。Debian 13 的系统 Python 默认启用了受管环境保护,不能直接使用 pip 往系统环境安装第三方包,因此建议在项目目录中创建虚拟环境:
```shell
python3 -m venv ~/frigate/.venv
~/frigate/.venv/bin/pip install --upgrade pip
~/frigate/.venv/bin/pip install onvif-zeep wsdiscovery opencv-python pyyaml
```
### 摄像头设备发现与配置
在 *~/frigate* 目录下为 *camera_discover.py* 文件赋予执行权限;运行该脚本后,它将自动扫描并生成 *config.yml* 文件,用于配置USB摄像头及支持ONVIF协议的网络摄像头。
```shell
chmod +x ~/frigate/camera_discover.py
~/frigate/.venv/bin/python ~/frigate/camera_discover.py
```
```{note}
若无法运行 *camera_discover.py* 文件,请检查文件中的 *CONFIG_PATH* 路径是否正确指向 *~/frigate/config/config.yml*。
```
### 摄像头后台设置
在智能主控板上打开Firefox(火狐)浏览器,输入网络摄像头的IP地址,使用默认用户名admin、密码admin123456登录后台,设置音视频编码参数。
```{image} images/image_NVFpbk65oojXjcxiTV3cQKUKnid.webp
:width: 964px
:height: 533px
```
```{image} images/image_KXXkbpQQooHdvaxCVL7cjP2VnuV.webp
:width: 747px
:height: 539px
```
```{note}
网络摄像头的IP地址可在腾达(Tenda)APP的设备信息中查看。
```
### 启动Frigate服务
在系统终端执行以下启动命令:
```shell
sudo docker compose -f ~/frigate/docker-compose.yml down && sudo docker compose -f ~/frigate/docker-compose.yml up -d
```
启动完成后,在浏览器中输入"**智能主控板IP地址:5000**",即可访问Frigate服务。
# 应用演示
## 实时监控功能演示
在 **Live** 界面中可实时查看系统监控画面,支持多路摄像头同时显示:
```{image} images/image_YZXEbKghFoEcstxkDBkcbGDknKi.webp
:width: 958px
:height: 550px
```
## 审查功能演示
在 **Review** 界面中,可查看不同时间段的安全事件警报,系统会自动检测并录制符合条件的目标(如人、车等):
```{image} images/image_JvKibftACoUz5pxmgkdcNOcvnH2.webp
:width: 955px
:height: 545px
```
## 目标追踪功能演示
**Explore** 界面会显示配置文件中设置的追踪目标(如人、车等),并展示检测框与置信度:
```{image} images/image_OvwwbvYxQoIonvxvVwdcedEYn8b.webp
:width: 955px
:height: 551px
```
## 视频导出功能演示
- 在 **Review** 页面 → 右键单击(电脑端)或长按(移动端)回放条目 → 选择Export;
- 或在摄像头的 **历史** 页面 → 点击导出按钮。
```{image} images/image_BBPDbAhGzoMJ1axjVxjcvOuYnR1.webp
:width: 960px
:height: 550px
```
导出的视频可在主导航栏的 **Export** 页面中进行管理与下载。
```{image} images/image_CVOubvCTfo7TbzxmK6xc0hp6nKc.webp
:width: 958px
:height: 548px
```
## 人脸识别功能演示
人脸识别功能通过将检测到的人脸与预先添加的人脸数据进行匹配来识别已知人员。当识别出已知人员时,其姓名会作为子标签显示。
在 **Face Library** 页面依次点击 **Add Face** → **Enter Face Name** → **Upload Face Image** → **Next** → **Done** 即可添加人脸。当Frigate检测并尝试识别人脸时,该人脸会出现在人脸库的"**训练**"标签页中,并显示相应的识别置信度。
```{image} images/image_R6VPbjLIfo3eCAxn5BscVvOQn2b.webp
:width: 955px
:height: 575px
```
```{note}
更多功能及使用方法请参考 [Frigate官方网站]()。
```
# 技术支持与贡献
如在使用过程中遇到问题,欢迎前往 [移远官方论坛]() 提交技术咨询,我们的技术支持团队将及时为您解答。
项目开源地址:[https://github.com/Quectel-Pi/demo-inkscreen-reader/]()
欢迎提交Issue反馈问题,或提交Pull Request改进代码。