码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 基于开源模型的实时人脸识别系统(九):软件说明


    续 人脸识别_CodingInCV的博客-CSDN博客

    文章目录

    • 前言
    • 简介
    • 模型选择的要求
    • 总体流程图
    • 人脸检测
    • 人脸跟踪
    • 人脸质量
    • 人脸关键点
    • 人脸识别
    • 代码结构
    • 人脸识别的逻辑
    • 高阶设置

    前言

    前面的文章我们介绍了整个系统里的关键步骤,基于这些步骤我们就可以搭建出属于自己的人脸识别系统了。下面从软件的角度讲解实现的功能。
    源码:https://mbd.pub/o/bread/ZJyTmZty

    简介

    本软件是基于开源的模型实现的一套动态人脸识别系统,该人脸系统会对人脸进行跟踪,并选择最优帧进行人脸识别,并统计人员出现的次数。人脸检测使用yolov8face, 跟踪使用sort, 数据存储使用sqlite, 人脸识别使用resnet50,人脸比对采用faiss. GUI使用Pyside6. 软件不仅可以识别出在库人员的出现次数,还在非在库人员第一次出现时,自动加入底库,从而实现对非在库人员的出现次数进行统计。
    软件可以在CPU上实现实时,GPU上表现更流畅。
    特点

    • 完全基于开源模型
    • 支持输入视频文件、USB摄像头、rtsp视频流
    • 注册信息和识别记录存储在sqlite,重启后不消失
    • 除了识别人员,还会累计其出现次数
    • 对于非注册人员,也会累计其出现次数
    • CPU可实时

    模型选择的要求

    为了实现CPU的实时,模型选择优先考虑模型的复杂度。

    总体流程图

    a29819dc23edd024bea2a2dd5d27692e_MD5

    人脸检测

    人脸检测即是从图像中定位出人脸的位置,本软件采用yolov8face算法,可参见:derronqi/yolov8-face: yolov8 face detection with landmark (github.com)

    人脸跟踪

    人脸跟踪是为检测出的人脸框分配ID,从而实现对同一个人的持续监控, 采用速度较快的SORT跟踪算法:abewley/sort: Simple, online, and realtime tracking of multiple objects in a video sequence. (github.com)

    人脸质量

    动态人脸容易出现大角度、人脸模糊等质量差的脸,而且每一帧都去做识别也很浪费计算资源,所有本软件引入了人脸质量的计算,主要包括人脸的角度、光照、模糊、大小。具体来源于论文:
    ietresearch.onlinelibrary.wiley.com/doi/full/10.1049/ipr2.12008

    人脸关键点

    人脸关键点是人脸识别前的步骤,主要用于将人脸对齐。aliprf/KD-Loss: Facial Landmark Detection Using Knowledge Distillation-Based Neural Networks (github.com)

    人脸识别

    采用insightface/model_zoo at master · deepinsight/insightface (github.com)

    代码结构

    face_recognition_modules
    —base_model 模型推理基类
    — configs 全局配置
    — database sqlite数据库相关炒作
    — face_alignment 人脸关键点
    — face_detection 人脸检测
    —face_quality 人脸质量
    — face_search 基于faiss的人脸搜索
    — face_recognition 人脸识别,包括识别模型和识别服务
    —tracker 人脸跟踪
    —common 一些通用结构体和功能函数
    models 模型目录
    test_images 测试视频和图片
    ui 窗口界面
    face_detect_task 算法运行的线程
    gui.py 程序入口

    人脸识别的逻辑

    • 人脸最优帧
      每个跟踪对象,最多存储5张质量最好的帧,当触发识别时(达到设定帧数),送入识别队列,最优帧数清空,可以再次接收5张最好的帧。
    • 多次识别
      提取出人脸特征后,若比对分数超过阈值,则该跟踪对象识别成功,她的其他最优帧将不再进行识别;若识别未成功,则在该人员消失前,会继续进行识别,直到消失时,上报未识别成功。
    • 陌生人入库
      对于未识别成功的人员,将其最后一张抓拍照加入陌生人库
    • 识别次数统计
      人员首先与注册人员库进行比对,若失败,则与陌生人库比对。将比对的人员id到识别记录库中搜索,对出现次数+1

    高阶设置

    可以修改configs/global_config.py中的参数,设置识别阈值、最长识别时间、质量阈值、识别记录抠图的比例等

  • 相关阅读:
    人机与元宇宙
    如何在C程序中使用libcurl库下载网页内容
    vue 前端 问题整理
    逻辑漏洞----任意账号注册
    java计算机毕业设计售楼系统源码+mysql数据库+系统+lw文档+部署
    Python 爬虫实战之爬淘宝商品并做数据分析
    FMC子卡设计方案:FMC177-基于AD9361的双收双发射频FMC子卡
    【Linux】reboot,shutdown -r ,init 6失效问题处理分析
    fastdfs-client-java-1.30 maven 打包安装
    TSINGSEE青犀基于AI视频识别技术的平安校园安防视频监控方案
  • 原文地址:https://blog.csdn.net/liuhao3285/article/details/133187504
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号