发布成功
竞标中
基于STM32N6570-DK开发板,利用其内置NPU加速,开发一套完整的多线程人脸检测与面部RGB分析系统。系统需实现实时人脸检测、特征点提取、面部RGB均值计算,并确保摄像头30fps稳定输出,如果性能无法满足30fps,可适当降低帧率,15或者10帧。采用多线程架构设计,保证系统的实时性和稳定性。 检测部分stm32官方已有现成模型可供利用,直接使用即可。
主线程(Main Thread) ├── 相机采集线程(Camera Capture Thread) - 优先级: High ├── 人脸检测线程(Face Detection Thread) - 优先级: Normal ├── 特征点分析线程(Landmark Analysis Thread) - 优先级: Normal ├── RGB计算线程(RGB Calculation Thread) - 优先级: Normal ├── 结果显示线程(Display Thread) - 优先级: Low └── 数据输出线程(Data Output Thread) - 优先级: Low
消息队列: 采用FreeRTOS消息队列进行线程间数据传输
信号量: 使用二值信号量和计数信号量实现线程同步
事件标志组: 实现线程间事件通知机制
功能: 负责摄像头数据采集和预处理
性能要求: 稳定30fps采集,无丢帧
数据格式: RGB888或YUV422,最好RGB888,因为最终需要计算每帧的rgb均值
分辨率: 640x480@30fps,分辨率根据性能更大一点
缓冲区管理: 实现双缓冲机制
错误处理: 摄像头故障检测与恢复
模型: 推荐STM32官方类似轻量级模型
NPU加速: 利用STM32N6内置NPU进行推理
检测能力: 最好可以支持多人脸检测(最多10人)
输出: 人脸边界框坐标和置信度
性能: 单帧检测时间<20ms
后处理: NMS非极大值抑制算法
特征点模型: 68点或更少的面部特征点检测
输入: 人脸检测线程输出的边界框
处理: 对每个检测到的人脸进行特征点提取
输出: 特征点坐标数组
精度: 特征点位置误差<3像素
优化: 利用NPU加速特征点推理
计算区域: 基于特征点的面部包围框
计算方法: 对包围框内所有像素RGB分量分别求平均
输出格式:
typedef struct {
uint8_t R, G, B;
uint32_t timestamp;
uint16_t face_id;
float confidence;
} FaceRGBData;频率: 每帧每人脸计算一次
精度: RGB各分量精度±1
显示内容:
实时视频流
人脸边界框(不同颜色区分)
特征点标注
RGB数值显示
帧率信息
显示格式: LCD显示屏或HDMI输出
更新频率: 30fps同步显示
UI设计: 简洁直观的用户界面
输出接口:
USB CDC串口输出
可选以太网UDP输出
SD卡数据记录
输出频率: 每帧输出或按设定间隔
数据格式: JSON格式,包含所有检测和计算结果
实时性: 数据输出不影响主流程性能
| 指标 | 要求值 | 备注 |
|---|---|---|
| 系统帧率 | 30fps | 稳定运行,性能不足可适当降低到15 帧或者10帧 ,最主要的需要帧率稳定 |
| 最大人脸数 | 2人 | 同时检测,性能不足可以降低至1人 |
| CPU占用 | <70% | 整体CPU使用率 |
| 内存占用 | <4MB | 总内存使用 |
| 线程 | 最大处理时间 | 备注说明 |
|---|---|---|
| 相机采集 | 33ms~ 100ms | 30帧33ms, 10帧100ms |
| 人脸检测 | 6ms | 根据相机帧率不同而不同 |
| 特征点分析 | 10ms | 根据相机帧率不同而不同 |
| RGB计算 | 60ms | 根据相机帧率不同而不同 |
| 结果显示 | 10ms | 根据相机帧率不同而不同 |
| 数据输出 | 5ms | 根据相机帧率不同而不同 |
重要提示: 如果30fps性能无法满足,可适当降低帧率至15fps或10fps,但需保证系统稳定运行。
最好可以集成图像处理库。
几何变换: 缩放、裁剪、旋转、仿射变换
NPU加速: 支持NPU加速的图像处理操作
内存池管理: 避免动态内存分配
缓存优化: 充分利用CPU缓存
IDE: STM32CubeIDE 1.19.0或更新版本
固件包: STM32CubeN6 V1.1.0或更新版本
AI工具: STM32Cube.AI V10.0.0或更新版本
Edge AI: ST Edge AI Core V2.0.0或更新版本
RTOS: FreeRTOS V10.5.0或更新版本
编译器: ARM GCC 12.2或更新版本
project/ ├── Core/ │ ├── Src/ │ │ ├── main.c │ │ ├── camera_thread.c │ │ ├── face_detection_thread.c │ │ ├── landmark_thread.c │ │ ├── rgb_calc_thread.c │ │ ├── display_thread.c │ │ ├── output_thread.c │ │ ├── image_processing.c │ │ ├── thread_communication.c │ │ └── system_config.c │ └── Inc/ ├── AI/ │ ├── face_detection_model.h5 │ ├── face_landmarks_model.h5 │ ├── model_config.h │ └── ai_inference.c ├── Middlewares/ │ ├── FreeRTOS/ │ ├── STM32_Cube_AI/ │ └── Image_Processing_Lib/ ├── Drivers/ ├── Utilities/ ├── Docs/ ├── Tests/ ├── scripts/ └── Tools/
人脸检测模型(Int8量化)
特征点检测模型(Int8量化)
模型配置文件
模型性能评估报告
系统架构设计文档: 多线程架构详细设计
API参考手册: 所有函数接口说明
性能优化指南: 性能调优建议
测试报告: 功能测试和性能测试结果
故障排除指南: 常见问题解决方案
集成测试: 多线程协作测试
性能测试: 帧率、延迟、资源占用测试
稳定性测试: 长时间运行测试(>24小时)
1、我爱方案网是会员制服务,服务商通过竞标后即可联系雇主;
2、项目预算与报价不代表最终成交价格,成交价以双方协商为准;
3、平台提供设计项目对接服务,希望促成高效合作,对交易双方不收取佣金,谢谢留意!