tjy/demo/apis/st/README.md
2024-07-16 16:28:35 +08:00

35 lines
1.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 基于视觉的皮肤类型检测系统
该项目是一个基于图像的皮肤类型检测系统。它使用MobileViT在皮肤图像数据集上进行训练,然后可以从摄像头输入的视频中检测人脸,并为每个检测到的人脸预测皮肤类型(干性、正常或油性)。
## 核心文件
- `class_indices.json`: 包含皮肤类型标签和对应数值编码的映射。
- `predict_api.py`: 包含图像预测模型的加载、预处理和推理逻辑。
- `video.py`: 视频处理和可视化的主要脚本。
- `best_model_'0.8998410174880763'.pth`: 在皮肤图像数据集上训练的模型权重文件。
## 使用方法
1. 确保已安装所需的Python库,包括`opencv-python``torch``torchvision``Pillow``dlib`
2. 运行`video.py`脚本。
3. 脚本将打开默认摄像头,开始人脸检测和皮肤类型预测。
4. 检测到的人脸周围会用矩形框标注,并显示预测的皮肤类型和置信度分数。
5.`q`键退出程序。
## 模型介绍
该项目使用MobileViT作为基础模型,对皮肤图像数据集进行训练,以预测人脸图像的皮肤类型。模型输出包含3个值,分别对应干性、正常和油性皮肤类型的概率。
### 数据集介绍
该项目使用的皮肤图像数据集来自Kaggle平台数据集包含3152张标注了皮肤类型(干性、正常或油性)的人脸图像。
## 算法流程
1. **人脸检测**: 使用Dlib库中的预训练人脸检测器在视频帧中检测人脸。
2. **预处理**: 对检测到的人脸图像进行缩放、裁剪和标准化等预处理,以满足模型的输入要求。
3. **推理**: 将预处理后的图像输入到预训练的Mobile-ViT模型中,获得不同皮肤类型的概率预测结果。
4. **后处理**: 选取概率最高的类别作为最终预测结果。
5. **可视化**: 在视频帧上绘制人脸矩形框,并显示预测的皮肤类型和置信度分数。