【已开源】【嵌入式 Linux 音视频+ AI 实战项目】瑞芯微 Rockchip 系列 RK3588-基于深度学习的人脸门禁+ IPC 智能安防监控系统

【已开源】【嵌入式 Linux 音视频+ AI 实战项目】瑞芯微 Rockchip 系列 RK3588-基于深度学习的人脸门禁+ IPC 智能安防监控系统

前言

本文主要介绍我最近开发的一个个人实战项目,“基于深度学习的人脸门禁+ IPC 智能安防监控系统”,全程满帧流畅运行。这个项目我目前全网搜了一圈,还没发现有相关类型的开源项目。这个项目只要稍微改进下,就可以变成市面上目前流行的三款产品,人脸识别门禁系统、IPC 安防和 NVR。在最下面会有视频演示。

本项目适用于瑞芯微 Rockchip 系列的板端,开源链接在文章最下面。

功能

人脸门禁系统

  • 人靠近自动亮屏,人走自动息屏
  • 支持人脸识别
  • 支持录入人脸,并进行人脸配对(极速配对 < 0.2S)

IPC 智能安防监控系统

  • 支持通过 onvif 实时查看摄像头画面
  • 支持实时目标检测(支持高达80种物体检测)
  • 支持录像
  • 支持检测到人时自动录像
  • 支持检测到人时自动报警

用到的硬件

1738765194618.jpg
  • 野火鲁班猫4 RK3588S2
  • IMX415 800W 4k 摄像头
  • RTL8822CE Wifi+BT
  • mipi LCD RGB 7寸 1024×600 触摸屏
  • 人体红外检测 SR501:通过 GPIO 读取相应数值,用于判断是否有人靠近
  • 128×32 OLED屏:通过 I2C 通信显示画面内容,用于显示人脸检测结果
  • 蓝牙音箱

用到的深度学习模型

  • yolo11:用于实时目标检测
  • retinaFace:用于人脸检测
  • facenet:用于人脸特征提取

模型需要经过转换和量化,并且进行精度评估,如果不知道如何在 Rockchip 平台进行模型转换的同学,可以参考我这篇文章:《瑞芯微 Rockchip 系列 RK3588 主流深度学习框架模型转成 rknn 模型教程》

用到的技术栈

  • C++
  • RKNN:用于在 Rockchip 上进行 NPU 推理
  • FFmpeg:用于音视频编解码,使用了 ffmpeg-rockchip 库进行 MPP 硬件编解码,提高编解码速度
  • Opencv:用于视频帧处理
  • LVGL:流行的 GUI 框架
  • Bluez-Alsa:用于连接蓝牙音箱并播放音频
  • Onvif:一个流行的 IP 摄像头协议标准,支持在电脑端直接查看摄像头画面,操作摄像头云台等等

线程架构图

这个项目涉及的线程较多,其中包含推理线程池、渲染线程、处理线程等待,使用了原子操作、锁、条件变量等解决了线程同步问题。

线程架构如下图所示:

image.png

如果不理解线程池概念的同学,可以参考我这篇文章:《C++ 线程池浅析》

项目演示

项目改进

由于是个人项目且时间有限,因此还存在很多可优化空间。

比如在人脸门禁系统中,可以有如下改进:

  • 加入 IR 摄像头,进行活体检测
  • 为人脸门禁系统加入 NFC 模块,支持通过 NFC 解锁
  • 为人脸门禁系统加入指纹模块,支持通过指纹解锁
  • 添加 mysql 数据库,将姓名、年龄、工号、人脸特征进行存储

而在 IPC 安防摄像头系统中,可以有如下改进:

  • 加入舵机云台,完善 onvif,支持远程控制云台转动
  • 对 yolo11 模型进行微调,加入摔倒识别、火焰识别、打架识别等等
  • 加入 IRCUT 滤光片,添加 IR 灯,实现日夜切换功能
  • 加入 webrtc,实现实时对话功能

https://github.com/qaz624824554/deep_learning_security_system

Read more

Vscode中配置Claude code的git bash链接问题

解决VS Code中Claude Code的Git Bash链接问题 问题描述 在VS Code中使用Claude Code时出现错误提示: Error: Claude Code on Windows requires git-bash (https://git-scm.com/downloads/win). 确定git已经安装成果,且按照官方建议设置环境变量CLAUDE_CODE_GIT_BASH_PATH仍无效。 解决方案 删除特定环境变量 在Windows环境变量的用户变量部分,检查并删除CLAUDE_CODE_GIT_BASH_PATH变量(如果存在)。 将Git CMD添加到PATH 编辑用户变量中的Path,添加Git的cmd文件夹路径: * 用户级安装路径:%USERPROFILE%\AppData\Local\Programs\Git\cmd * 全局安装路径:C:\Program Files\

By Ne0inhk
从零构建可扩展 Flutter 应用:v1.0 → v2.0 全代码详解 -《已适配开源鸿蒙》

从零构建可扩展 Flutter 应用:v1.0 → v2.0 全代码详解 -《已适配开源鸿蒙》

* 个人首页: VON * 鸿蒙系列专栏: 鸿蒙开发小型案例总结 * 综合案例 :鸿蒙综合案例开发 * 鸿蒙6.0:从0开始的开源鸿蒙6.0.0 * 鸿蒙5.0:鸿蒙5.0零基础入门到项目实战 * Electron适配开源鸿蒙专栏:Electron for OpenHarmony * 本文章所属专栏:Flutter for OpenHarmony * 文章AtomGit地址:Template_V2.0 v1.0 → v2.0 全代码详解 * 从零构建可扩展 Flutter 应用:v1.0 → v2.0 全代码详解 * 🧱 第一阶段:v1.0 —— 干净的基础骨架 * ✅ 目标 * 📁 项目结构 * 1. `lib/main.dart`

By Ne0inhk
Flutter for OpenHarmony: Flutter 三方库 github 在鸿蒙应用中深度集成 GitHub API 构建高效的开发者协作工具(出海与工具链开发)

Flutter for OpenHarmony: Flutter 三方库 github 在鸿蒙应用中深度集成 GitHub API 构建高效的开发者协作工具(出海与工具链开发)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 为核心的开发者工具、代码托管助手或出海类社交应用开发时,与 GitHub 的数据打交道是必修课。我们需要实现: 1. 鸿蒙端展示用户的 GitHub 仓库列表和 Stars。 2. 自动化管理 Issues,或是监控 Repo 的 PR 动态。 3. 利用 GitHub 账号直接登录鸿蒙端的开发者社区。 github 软件包是 Flutter 生态中功能最全、维护最稳健的 GitHub REST API 封装库。它提供了 100% 强类型的接口定义,让你的鸿蒙应用能以最轻量化的方式接入全球最大的开源社区数据。 一、API 通讯与对象模型 github 库将繁杂的 JSON

By Ne0inhk
OpenClaw(龙虾)开源AI智能体科普解析:核心原理、功能特性与本地部署教程

OpenClaw(龙虾)开源AI智能体科普解析:核心原理、功能特性与本地部署教程

近期开源AI领域,OpenClaw(俗称“龙虾”)凭借其本地优先、可定制的特性,受到开发者社区的广泛关注,其项目保活程度与社区活跃度可通过GitHub数据直观体现:目前该项目已获得222k stars、1.2k watching、42.3k forks,各项数据均处于开源AI智能体领域前列,足以证明其社区认可度与持续更新能力。作为一款开源AI智能体工具,它在办公自动化、系统辅助等场景具有实用价值,适合开发者了解和落地实践。 OpenClaw是一款开源的个人AI助手编排平台,采用TypeScript开发,目前在GitHub上拥有较高的关注度,其核心价值在于将大模型的推理能力与本地系统操作相结合,打破了传统AI助手“仅能交互、无法执行”的局限。本文将从技术科普角度,围绕OpenClaw的核心定义、功能特性、技术细节及本地部署步骤展开,帮助开发者全面了解这款工具的原理与使用方法。 对于ZEEKLOG的开发者群体而言,了解OpenClaw的技术架构与应用场景,既能拓展AI智能体的认知边界,也能将其应用于日常开发、办公场景,提升工作效率。 本文将从「核心定义、功能特性、技术细节、本地部署」

By Ne0inhk