# Tongue_backend **Repository Path**: dhamma/tongue_backend ## Basic Information - **Project Name**: Tongue_backend - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-05-06 - **Last Updated**: 2025-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 使用efficentNetV2-M进行舌象检测 #### 模型性能 经过训练,EfficientNetV2-M模型在测试集上达到了以下性能: - 准确率(Accuracy): 79.02% - 精确率(Precision): 59.22% - 召回率(Recall): 68.15% - 损失值(Loss): 0.103 训练过程中的性能曲线可在`output/`目录下查看。 #### 介绍 本项目基于深度学习技术,使用EfficientNetV2-M模型实现中医舌象的自动检测与分类,可用于辅助中医诊断。系统能够从舌头图像中识别色泽、形态、质地和厚薄四个维度的特征,为中医诊断提供客观依据。 ###### 数据集 ​ 此数据集中训练集包含7929张图片,验证集973张图片和测试集973张图片。存在4个维度一共15个标签。 $$ \begin{matrix} 色泽 & \text{colorResult\_grey} & \text{colorResult\_white} & \text{colorResult\_yellow} & \\ 形态 & \text{shapeResult\_ToothMarks} & \text{shapeResult\_fat} & \text{shapeResult\_normal} & \text{shapeResult\_thin}\\ 质地 & \text{textureResult\_dark} & \text{textureResult\_normal} & \text{textureResult\_tender} & \text{textureResult\_water}\\ 厚薄 & \text{thicknessResult\_Stripping} & \text{thicknessResult\_ecchymosis} & \text{thicknessResult\_greasy} & \text{thicknessResult\_thin}\\ \end{matrix} $$ ​ [数据集下载(提取码:effi)](https://pan.baidu.com/s/1Fw4uYfugtkevePHa_9pkIw) #### 安装教程 1. 克隆项目到本地 ``` git clone git@gitee.com:dhamma/tongue_backend.git ``` 2. 下载项目依赖 ``` pip install -r requirements.txt ``` 3. 下载权重文件 [下载训练之后的权重文件(提取密码effi)](https://pan.baidu.com/s/1ZpprwfKB7BdgDsP69vzS8Q) [下载官方的权重文件(提取密码effi)](https://pan.baidu.com/s/1ZpprwfKB7BdgDsP69vzS8Q) #### 模型训练 1. 下载数据集到本地 2. 下载官方预训练权重到项目根目录下(仅efficientNetV2模型需要下载,ResNet可以无视) 3. 选择network/目录下你想训练的网络模型 4. 修改train_dir、val_dir、test_dir参数为当前数据集所在路径 #### 模型推理 1. 下载或使用自己训练的模型权重 2. 运行pred.py文件,需要保证模型加载的权重路径存在 #### 模型推理后端接口(Flask) 1. 下载或使用自己训练的模型权重 2. 运行app.py文件,需要保证模型加载的权重路径存在 # 使用efficentNetV2-M进行舌象检测 #### 项目结构详解 ```bash . ├── README.md # 项目说明文档 ├── app.py # Flask API服务器,提供舌象检测接口 ├── pred.py # 模型推理脚本,用于批量测试 ├── requirements.txt # 项目依赖列表 ├── bin/ # 服务器管理脚本目录 │ ├── start_server.sh # 启动服务器脚本 │ ├── status_server.sh # 查看服务器状态脚本 │ ├── stop_server.sh # 停止服务器脚本 │ └── watch.sh # 监控服务器脚本 ├── log/ # 日志目录 │ └── efficientNetV2_generate2_train.csv # 训练日志 ├── loss/ # 损失函数模块 │ ├── __init__.py │ └── loss_function.py # 包含FocalLoss和AsymmetricLoss实现 ├── model/ # 模型定义目录 │ ├── __init__.py │ ├── model.py # EfficientNetV2模型实现 │ └── model_CBAM.py # 带注意力机制的模型实现 ├── network/ # 网络训练脚本目录 │ ├── ResNet_only.py # ResNet152训练脚本 │ └── efficientNetV2_generate2.py # EfficientNetV2训练脚本 ├── optimizer/ # 优化器目录 │ ├── __init__.py │ └── CosineWarmupDecay.py # 余弦退火学习率调度器 ├── output/ # 输出目录 │ └── efficientNetV2_pre-training.png # 训练曲线图 ├── toolbox/ # 工具箱目录 │ ├── __init__.py │ ├── image_generator.py # 图像增强工具 │ ├── save_model.py # 模型保存工具 │ └── visualization.py # 可视化工具 └── valid/ # 验证图像目录 ├── 1.png # 测试图像样例 ├── 2.png # 测试图像样例 └── 3.png # 测试图像样例 ```