You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Uighur-Doc/005-技术选型文档/重点人群项目技术选型文档.md

83 lines
8.8 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 重点人群项目技术选型文档
## 一、简介
本项目是一个在大型公共场所、交通枢纽、企事业单位等地,需要对特定人群进行有效监控,以提高安全性和防范潜在威胁。重点人群识别系统是一种基于人脸识别视觉技术的智能安防解决方案,旨在通过高效的人脸识别和行为分析技术,实现对特定人群的准确识别与监测。
基于百度的FastDeploy框架在NVIDIA Jetson Orin NX 16G边缘设备上进行部署经过测试项目也可以在瑞芯微RK3588上进行部署。
FastDeploy是一款全场景、易用灵活、极致高效的AI推理部署工具 支持云边端部署。提供超过 160+ TextVision Speech和跨模态模型开箱即用的部署体验并实现端到端的推理性能优化。包括 [物体检测](https://github.com/PaddlePaddle/FastDeploy/blob/develop/examples/vision/detection)、[字符识别OCR](https://github.com/PaddlePaddle/FastDeploy/blob/develop/examples/vision/ocr)、[人脸](https://github.com/PaddlePaddle/FastDeploy/blob/develop/examples/vision/facedet)、[人像扣图](https://github.com/PaddlePaddle/FastDeploy/blob/develop/examples/vision/matting)、[多目标跟踪系统](https://github.com/PaddlePaddle/FastDeploy/blob/develop/examples/vision/tracking/pptracking)、[NLP](https://github.com/PaddlePaddle/FastDeploy/blob/develop/examples/text)、[Stable Diffusion文图生成](https://github.com/PaddlePaddle/FastDeploy/blob/develop/examples/multimodal/stable_diffusion)、[TTS](https://github.com/PaddlePaddle/FastDeploy/blob/develop/examples/audio/pp-tts) 等几十种任务场景,满足开发者多场景、多硬件、多平台的产业部署需求。
## 二、架构图
![](.\架构图.png)
## 三、技术选型
#### 1.人脸检测 SCRFD模型
项目通过网络摄像头采集实时的监控数据,对每一帧的图像进行人脸检测,检测到人脸并将其采集下来以供人脸识别算法使用。
在推理速度方面SCRFD通常被认为是一种轻量级的人脸检测器具有较快的推理速度。它能够在图像或视频中快速准确地检测出人脸区域为后续的人脸识别提供准确的输入。
SCRFD是基于Single Shot MultiBox DetectorSSD架构的改进版本。它在传统SSD模型的基础上引入了一些关键的改进以提高人脸检测的性能和精度。以下是SCRFD模型的一些主要特点和改进
1.高分辨率SCRFD模型采用了高分辨率的输入图像通常为640x640或更大的尺寸。这使得模型能够更好地捕捉小尺寸的人脸特征提高检测精度。
2.上下文感知SCRFD通过引入多层级的特征金字塔结构充分利用图像中的上下文信息。这种多尺度特征表示使模型能够更好地处理不同尺寸和尺度的人脸并提高检测的鲁棒性。
3.多任务学习SCRFD模型同时进行人脸检测和关键点定位的任务。这样的多任务学习可以进一步提高人脸检测的准确性和多样性。
4.基于Anchor的检测SCRFD采用了一组称为锚框Anchor的预定义框用于检测和定位人脸。这些锚框具有不同的尺度和长宽比以覆盖各种人脸形状和大小。
SCRFD模型经过大量的人脸数据集训练和优化可以在实时或近实时的速度下进行高效的人脸检测。它在许多人脸识别、人脸表情分析、人脸属性分析等应用中得到广泛应用。
#### 2.人脸识别 insightface
基于insightface的 Partial_FC模型对人脸图片进行embedding提取根据余弦相似度计算人脸间的相似值。
Partial_FC 是一种具有创新性的人脸识别模型通过将人脸图像的特征映射到一个高维嵌入空间并利用角度余弦距离进行分类实现了更加准确和鲁棒的人脸识别。人脸识别网络的FC层所需的空间及计算开销与人脸id的数量呈线性关系当人脸id数量庞大时往往需要使用分布式训练数据并行会有巨大通信开销而模型并行往往受到单块GPU显存掣肘。Partial FC通过近似softmax loss在不损失模型性能的情况下可以通过堆叠GPU的数量来加速训练同时能够解决数据长尾分布与类间冲突的问题。
**Partial_FC **是人脸识别领域中的一个模型或算法其相对于传统的全连接层Fully Connected Layer在人脸识别任务中具有以下优势
1.参数量减少Partial_FC 使用了部分连接Partial Connection的方式即只连接部分神经元而不是全连接所有神经元。这导致了模型的参数量大幅减少减少了训练和推理时的计算负担提高了效率。
2.减轻过拟合风险:部分连接的方式可以减少模型的复杂度,从而减轻了过拟合的风险。在人脸识别等任务中,过拟合是一个常见的问题,而 Partial_FC 的使用可帮助降低这一风险,提高模型的泛化能力。
3.稀疏性:部分连接导致模型中的连接变得更为稀疏,即每个神经元只与一部分其他神经元相连接。这种稀疏性有助于提高模型的可解释性,并且在一定程度上降低了计算成本。
4.加速训练和推理速度由于参数量减少、减轻了过拟合风险以及稀疏性等因素Partial_FC 可以加速模型的训练和推理速度。这对于实时性要求较高的人脸识别应用来说尤为重要。
5 .保持模型性能:尽管 Partial_FC 减少了连接和参数量,但其在人脸识别任务中仍然能够保持较高的识别性能。这意味着可以在不牺牲准确率的情况下获得更高的效率和速度。
综上所述insightface Partial_FC 在人脸识别任务中的优势主要体现在减少参数量、减轻过拟合风险、稀疏性、加速训练和推理速度以及保持模型性能等方面,为人脸识别应用的性能和效率提供了有力支持。
#### 3.人脸分类
**在jetson上基于YOLOv5训练的分类模型**
1. 速度和效率YOLOv5相对于之前的版本如YOLOv3和YOLOv4在速度和效率方面有所提升。YOLOv5采用了一系列优化策略包括网络结构设计、模型精简和推理加速等使得在保持较高检测准确率的前提下提高了检测速度和效率。
2. 模型轻量化YOLOv5相对于之前的版本如YOLOv3和YOLOv4模型参数量更小模型结构更简单这使得在移动端设备上的部署更加轻便和高效适合于一些对模型大小和计算资源有限制的场景。
3. 准确率提升YOLOv5在保持速度和效率的同时通过引入一些新的技术和策略如新的数据增强方法、损失函数的优化等提升了目标检测的准确率特别是在小目标检测和遮挡目标检测等方面有了更好的表现。
4. 易用性YOLOv5具有简单易用的特点通过PyTorch框架实现并提供了开源代码和预训练模型使得用户能够方便地进行模型训练、部署和应用并且具有一定的灵活性和可定制性适用于不同的应用场景和需求。
5. 支持多种应用场景YOLOv5具有较强的通用性不仅可以用于普通的目标检测任务如行人检测、车辆检测等还可以应用于特定领域的检测任务如人脸检测、口罩检测等满足了各种不同应用场景下的需求。
YOLOv5在速度、效率、准确率和易用性等方面都有一定程度的优势适用于各种不同的目标检测应用场景并且在实际应用中取得了较好的效果。
**在RK3588上基于paddlecls训练的分类模型**
1. 高性能PaddleClas基于百度PaddlePaddle深度学习框架构建优化了模型结构和算法具有较高的训练和推理性能。其在多个公开数据集上取得了领先水平的分类性能包括ImageNet、CIFAR等。
2. 丰富的模型库PaddleClas提供了丰富的预训练模型库包括ResNet、MobileNet等经典模型以及一些轻量级模型满足了不同场景下的需求。
3. 灵活性和可定制性PaddleClas提供了易于使用的API和模型训练工具支持用户快速搭建、训练和部署自定义分类模型。用户可以根据实际需求进行模型定制和优化适应不同的应用场景。
4. 多端部署PaddleClas支持多端部署包括移动端、服务器端等多种硬件平台可以灵活应用于移动应用、云端服务等不同场景满足了多样化的部署需求。
5. 持续更新和维护PaddleClas作为PaddlePaddle生态系统的一部分得到了百度团队的持续更新和维护保持了较高的性能和稳定性同时不断地引入新的技术和算法保持了竞争力。
PaddleClas具有高性能、丰富的模型库、灵活性和可定制性、多端部署以及持续更新和维护等优势适用于各种不同规模和要求的图像分类任务。
#### 4.数据库 mysql