智能视频监控系统

本项目是一款基于 Quectel Pi H1智能主控板开发的智能视频监控系统。系统集成Frigate NVR网络视频录像机平台,依托计算机视觉技术,提供目标检测、人脸识别与事件记录等核心功能。

在设备兼容性上,系统支持多类型摄像头灵活接入:

  • USB 摄像头:本地加载。
  • IPC(网络摄像头):基于 ONVIF 协议实现标准化设备控制,通过 RTSP 流媒体协议完成低延迟视频流传输。

系统配备Web可视化管理界面,用户可便捷实现实时监控与数据管理等操作,适用于家庭安防、商业监控等应用场景。

开发资源汇总

开发配件清单

开发配件只是作为参考,不同的开发环境可能会有所差异,比如通过ssh远程连接进行开发,可以不使用usb拓展板,显示屏也可以根据需要进行替换。

配件名称 数量 规格参数
Quectel Pi H1 智能主控板 1块 Quectel Pi H1 智能主控板
电源适配器 1个 27W USB Type-C接口充电器 1.2米线长中规电源PD电源 适用于树莓派5代
HDMI 线 1根 规格:HDMI 2.0;线长:1m;接口:HDMI-A(公头)-HDMI-D(公头)
网线 1根 线长:1m;传输速率:千兆;
CPU 散热风扇 1个 树莓派5代官方原装散热器带导热贴
扩展坞 1个 绿联 USB3.0扩展器扩展坞
网络摄像头 1个 Tenda腾达室内家用监控摄像头
USB摄像头 1个 OV5693 USB摄像头模块
显示屏 1个 24英寸HDMI显示器

配件实物参考

快速上手

开发准备

Quectel Pi H1智能主控板出厂默认搭载 Debian 13 系统镜像,因此无需再次烧录镜像,仅需按照如下步骤操作即可。

硬件连接

散热风扇安装

先将散热风扇的排线插入单板电脑的FAN插槽中,然后将散热器上的两端固定在单板电脑预留的插孔中,如下:

显示连接

将HDMI线一端接入单板电脑的HDMI接口,另一端接入显示器的HDMI接口。

image-20251017144027933

输入设备连接

将USB 键盘、鼠标接入扩展坞的USB接口,再将扩展坞接入单板电脑的USB接口,若用无线输入设备,将接收器插入扩展坞的USB口即可。

image-20251017144124363

网络连接

将网线一端接入单板电脑的千兆网口,另一端接入路由器的网口(确保路由器已联网)。

跳线帽连接

单板电脑左上角标有AUTO_POWER_ON丝印的排针,确保已经用跳线帽短接。

image-20251017144330473

供电连接

将USB-A 电源线的USB-A 端接入电源适配器,USB-C 端接入单板电脑的电源口(通常标注POWER IN)。

image-20251017172353513

网络摄像头连接

将网络摄像头接入电源即可。

USB摄像头连接

将OV5693摄像头模块接入单板电脑或扩展坞的USB接口。

连接完成参考

项目实现

准备步骤

网络摄像头首次联网需要连接WiFi或路由器,且手机也需要连上路由器/热点的WiFi,然后再通过腾达app添加摄像头设备,详情查看网络摄像头的快速安装指南。

:要保证所有的单板电脑和网络摄像头在同一个局域网下,否则无法获取摄像头设备的RTSP视频流。

安装Docker

#卸载所有冲突的软件包
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-doc podman-docker containerd runc | cut -f1)
#设置Dockerapt仓库
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服务

#自动启动Docker服务
sudo systemctl start docker
#验证Docker是否正在运行
sudo systemctl status docker

如下图所示则Docker启动成功:

image-20260224180131606

部署Frigate系统

#在根目录下新建frigate文件夹并创建配置文件
mkdir ~/frigate
cd frigate/
mkdir storage config 

点击下载配置文件然后使用SCP命令上传文件至~/frigate目录下,参考远程访问SCP文件拷贝章节,执行下面命令安装Frigate。

:确保docker-compose.yml文件在~/frigate目录下,否则无法执行下面命令。

sudo docker compose up -d

安装项目依赖库

在系统终端下运行下面命令安装项目依赖库。

pip install --upgrade pip
pip install onvif-zeep wsdiscovery opencv-python pyyaml

摄像头设备发现与配置

在~/frigate目录下,赋予camera_discover.py文件执行权限,运行后会自动扫描并生成config.yml文件来配置USB摄像头以及支持ONVIF协议的网络摄像头。

chmod +x ~/frigate/camera_discover.py
python3 camera_discover.py

:若无法运行camera_discover.py文件,请检查文件中的CONFIG_PATH路径是否正确指向~/frigate/config/config.yml

摄像头后台设置

在单板电脑系统中打开火狐浏览器输入"网络摄像头的IP地址",使用默认用户名:admin,密码:admin123456,进入后台设置音视频编码参数。

image-20260226201648323 image-20260226203455736

:网络摄像头的IP地址可通过腾达APP查看设备信息获取。

启动Frigate服务

在系统终端下执行启动命令:

sudo docker compose -f  ~/frigate/docker-compose.yml down && sudo docker compose -f ~/frigate/docker-compose.yml up -d

启动完成后打开浏览器输入"智能主控板的ip地址:5000"即可访问frigate服务。

应用演示

实时监控功能演示

Live界面可以实时观看系统的监控画面,支持多路摄像头同时显示:

image-20260227100902976

审查功能演示

Review界面可以查看不同时间段的安全事件警报,系统会自动检测并录制符合条件的对象(人、车等):

image-20260227143238666

目标追踪功能演示

Explore界面会显示配置文件中设置的追踪对象,如:人、车等,并展示检测框和置信度:

image-20260227151721826

视频导出功能演示

  • Review 页面 → 右键(电脑)或长按(手机)回放条目 → Export;
  • 或在摄像头的 历史 页面 → 点击导出按钮.

image-20260227144558806

导出的视频会在主导航栏的 Export 页面管理并可下载。

image-20260227144414851

人脸识别功能演示

人脸识别功能通过将检测到的人脸与预先添加的人脸数据进行匹配,来识别已知的人员。当识别出已知人员时,他们的姓名将作为子标签添加。

Face Library 页面 → Add Face → Enter Face Name → Upload Face Image → Next →Done添加人脸,当 Frigate 检测并尝试识别人脸时,它会出现在人脸库的训练标签页中,同时显示相关的识别置信度。

image-20260227151754662

注:更多功能及玩法请参考Frigate官方网站