【嵌入式 Linux 音視頻+ AI 實戰項目】瑞芯微 Rockchip 系列 RK3588-基于深度學習的人臉門禁+ IPC 智能安防監控系統

前言

本文主要介紹我最近開發的一個個人實戰項目,“基于深度學習的人臉門禁+ IPC 智能安防監控系統”,全程滿幀流暢運行。這個項目我目前全網搜了一圈,還沒發現有相關類型的開源項目。這個項目只要稍微改進下,就可以變成市面上目前流行的三款產品,人臉識別門禁系統、IPC 安防和 NVR。在最下面會有視頻演示。

本項目適用于瑞芯微 Rockchip 系列的板端,如果本篇文章點贊超過 100,我將整理后開源~

功能

人臉門禁系統

  • 人靠近自動亮屏,人走自動息屏
  • 支持人臉識別
  • 支持錄入人臉,并進行人臉配對(極速配對 < 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,實現實時對話功能

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895092.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895092.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895092.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java: framework from BLL、DAL、IDAL、MODEL、Factory using oracle

oracel 21c sql: -- 創建 School 表 CREATE TABLE School (SchoolId CHAR(5) NOT NULL,SchoolName NVARCHAR2(500) NOT NULL,SchoolTelNo VARCHAR2(8) NULL,PRIMARY KEY (SchoolId) );CREATE OR REPLACE PROCEDURE addschool(p_school_id IN CHAR,p_school_name IN NVARCHAR2,p…

解決錯誤:CondaHTTPError: HTTP 000 CONNECTION FAILED for url

解決錯誤&#xff1a;CondaHTTPError: HTTP 000 CONNECTION FAILED for url 查看channels:vim ~/.condarcshow_channel_urls: true channels:- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/…

Apache APISIX 快速入門

文章目錄 apisix 快速入門什么是apisix有了 NGINX 和 Kong&#xff0c;為什么還需要 Apache APISIX&#xff1f;軟件架構基于 Nginx 開源版本&#xff0c;而 Nginx 并不支持動態配置&#xff0c;為什么 Apache APISIX 聲稱自己可以實現動態配置&#xff1f; 安裝配置 APISIX配置…

2025嵌入式高頻面試題解析

一、概述 到了年初&#xff0c;是求職者最活躍的時間。本文梳理了嵌入式高頻面試題&#xff0c;幫助求職者更好地準備面試&#xff0c;同時也為技術愛好者提供深入學習嵌入式知識的參考。 二、C 語言基礎 2.1 指針與數組 問題 1&#xff1a;指針和數組的區別是什么&#xf…

1.攻防世界 baby_web

題目描述這里有提示&#xff0c;初始頁面 進入題目頁面如下 很簡潔的頁面只有一行HELLO WORLD ctrlu查看了源碼也沒有信息 用burp suite抓包&#xff0c;并發送到重放器 根據提示&#xff08;初始頁面&#xff09;修改訪問index.php文件 index.php index.php 是一種常見的…

什么是三層交換技術?與二層有什么區別?

什么是三層交換技術&#xff1f;讓你的網絡飛起來&#xff01; 一. 什么是三層交換技術&#xff1f;二. 工作原理三. 優點四. 應用場景五. 總結 前言 點個免費的贊和關注&#xff0c;有錯誤的地方請指出&#xff0c;看個人主頁有驚喜。 作者&#xff1a;神的孩子都在歌唱 大家好…

【機器學習】數據預處理之數據歸一化

數據預處理之數據歸一化 一、摘要二、數據歸一化概念三、數據歸一化實現方法3.1 最值歸一化方法3.2 均值方差歸一化方法 一、摘要 本文主要講述了數據歸一化&#xff08;Feature Scaling&#xff09;的重要性及其方法。首先通過腫瘤大小和發現時間的例子&#xff0c;說明了不同…

【AIGC】語言模型的發展歷程:從統計方法到大規模預訓練模型的演化

博客主頁&#xff1a; [小????????] 本文專欄: AIGC | ChatGPT 文章目錄 &#x1f4af;前言&#x1f4af;語言模型的發展歷程&#xff1a;從統計方法到大規模預訓練模型的演化1 統計語言模型&#xff08;Statistical Language Model, SLM&#xff09;&#xff1a;統…

高效知識管理與分類優化指南:從目錄設計到實踐應用

摘要 本文旨在幫助讀者在信息爆炸時代構建高效的知識管理體系&#xff0c;提供了知識收藏目錄、瀏覽器書簽和電腦文件夾的優化分類方案。知識收藏目錄方案包括工作與項目、記錄與日常、知識管理等八大類&#xff0c;具有邊界清晰、擴展靈活、貼合實際場景等優勢。瀏覽器書簽分類…

OpenAI 實戰進階教程 - 第十二節 : 多模態任務開發(文本、圖像、音頻)

適用讀者與目標 適用讀者&#xff1a;已經熟悉基礎的 OpenAI API 調用方式&#xff0c;對文本生成或數據處理有一定經驗的計算機從業人員。目標&#xff1a;在本節中&#xff0c;你將學會如何使用 OpenAI 提供的多模態接口&#xff08;圖像生成、語音轉錄等&#xff09;開發更…

Java面試題2025-JVM

JVM 1.為什么需要JVM&#xff0c;不要JVM可以嗎&#xff1f; 1.JVM可以幫助我們屏蔽底層的操作系統 一次編譯&#xff0c;到處運行 2.JVM可以運行Class文件 2.JDK&#xff0c;JRE以及JVM的關系 3.我們的編譯器到底干了什么事&#xff1f; 僅僅是將我們的 .java 文件轉換成了…

Deepseek的MLA技術原理介紹

DeepSeek的MLA(Multi-head Latent Attention)技術是一種創新的注意力機制,旨在優化Transformer模型的計算效率和內存使用,同時保持模型性能。以下是MLA技術的詳細原理和特點: 1. 核心思想 MLA技術通過低秩聯合壓縮技術,將多個注意力頭的鍵(Key)和值(Value)映射到一…

QML初識

目錄 一、關于QML 二、布局定位和錨點 1.布局定位 2.錨點詳解 三、數據綁定 1.基本概念 2.綁定方法 3.數據模型綁定 四、附加屬性及信號 1.附加屬性 2.信號 一、關于QML QML是Qt框架中的一種聲明式編程語言&#xff0c;用于描述用戶界面的外觀和行為&#xff1b;Qu…

java項目之美妝產品進銷存管理系統的設計與開發源碼(ssm+mysql)

項目簡介 美妝產品進銷存管理系統的設計與開發實現了以下功能&#xff1a; 美妝產品進銷存管理系統的設計與開發的主要使用者分為管理員登錄后修改個人的密碼。產品分類管理中&#xff0c;對公司內的所有產品分類進行錄入&#xff0c;也可以對產品分類進行修改和刪除。產品管…

Python(pymysql包)操作MySQL【增刪改查】

下載pymysql&#xff1a; pip install pymysql 在MySQL中創建數據庫&#xff1a;unicom create database unicom DEFAULT CHARSET utf8 COLLATE utf8_general_ci;use unicom; 在unicom中創建數據表&#xff1a;admin create table admin(id int not null primary key auto_i…

日志2025.2.9

日志2025.2.9 1.增加了敵人揮砍類型 2.增加了敵人的死亡狀態 在敵人身上添加Ragdoll&#xff0c;死后激活布偶模式 public class EnemyRagdoll : MonoBehaviour { private Rigidbody[] rigidbodies; private Collider[] colliders; private void Awake() { rigidbodi…

HTTP無狀態的概念以及對后端服務的設計會產生的影響

HTTP無狀態(Statelessness) 是指每個HTTP請求都是獨立的,服務器不會記住或依賴于前一個請求的任何信息。每次請求的處理都與其他請求沒有直接關系。也就是說,服務器在處理請求時,不會存儲關于客戶端狀態的信息。 一、HTTP無狀態的具體含義 ①每個請求獨立:每個請求包含了…

操作系統—進程與線程

補充知識 PSW程序狀態字寄存器PC程序計數器&#xff1a;存放下一條指令的地址IR指令寄存器&#xff1a;存放當前正在執行的指令通用寄存器&#xff1a;存放其他一些必要信息 進程 進程&#xff1a;進程是進程實體的運行過程&#xff0c;是系統進行資源分配和調度的一個獨立單位…

python:面向對象案例烤雞翅

自助烤雞翅的需求&#xff1a; 1.烤雞翅的時間和對應的狀態&#xff1a; 0-4min :生的 4-7min:半生不熟 7-12min&#xff1a;熟了 12min以上&#xff1a;烤糊了 2.添加調料&#xff1a; 客戶根據自己的需求添加 定義烤雞翅的類、屬性和方法&#xff0c;顯示對象的信息 …

【基于SprintBoot+Mybatis+Mysql】電腦商城項目之上傳頭像和新增收貨地址

&#x1f9f8;安清h&#xff1a;個人主頁 &#x1f3a5;個人專欄&#xff1a;【Spring篇】【計算機網絡】【Mybatis篇】 &#x1f6a6;作者簡介&#xff1a;一個有趣愛睡覺的intp&#xff0c;期待和更多人分享自己所學知識的真誠大學生。 目錄 &#x1f680;1.上傳頭像 -持久…