作者: Micahel.W
适配环境:
这个项目的目标是开发一个基于深度学习的烧伤检测模型,将烧伤检测问题转换为物体检测问题。然后利用深度学习算法快速定位图像中的烧伤位置,并根据图像的视觉特征对烧伤深度进行判断。
烧伤检测精度达到88%,mAP_0.5达到72%,能够在日常医疗情况下进行出色的烧伤深度判断和识别。这些改进是通过修改最新的Yolov7模型的网络结构和使用各种广泛使用的目标检测框架而实现的。这是诊断不需要专家协助的烧伤的最简单,省钱的方法。它将在救灾和医疗资源不足的偏远山区县镇发挥重要作用。
两个最简单的方法是直接运行Kaggle和Google Colab上创建的笔记本。这些环境已经设置好了,你可以直接从头开始训练。(一套完整的训练大概需要4-5个小时)你也可以直接在笔记本文件夹中找到这些笔记本。但是,请注意,这些笔记本不能达到论文中或这个repo中提到的准确度,因为数据集是在一个公共数据集上训练的,而不是我自己用于这个项目的数据集。(由于患者隐私问题,我无法公布我自己的数据集,但我将公布我自己数据集上的训练权重)。
kaggle笔记本:
Colab笔记本:
# or just download this entire repo
git clone https://github.com/Michael-OvO/Burn-Detection-Classification.git
cd Burn-Detection-Classification/
pip install -r requirements.txt
下载最新的预训练权重文件并放与本项目放在同一个文件夹下: Skin_burn_2022_8_21.pt
样本图像可以在inference文件夹中找到,每张图像的名称对应于每张图像的真实值(模型在每次运行后应预测这些值)。
下面是文件1st_degree_2.jpg
(这是晒伤,所以模型应该输出一度烧伤)。
视频检测:
python detect.py --weights Skin_burn_2022_8_21.pt --source yourvideo.mp4
图像检测:
python detect.py --weights Skin_burn_2022_8_21.pt --source inference/images/first_degree_2.jpg
Pytorch to CoreML (and inference on MacOS/iOS)
Pytorch to ONNX with NMS (and inference)
python export.py --weights yolov7-tiny.pt --grid --end2end --simplify \
--topk-all 100 --iou-thres 0.65 --conf-thres 0.35 --img-size 640 640 --max-wh 640
Pytorch to TensorRT with NMS (and inference)
wget https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7-tiny.pt
python export.py --weights ./yolov7-tiny.pt --grid --end2end --simplify --topk-all 100 --iou-thres 0.65 --conf-thres 0.35 --img-size 640 640
git clone https://github.com/Linaom1214/tensorrt-python.git
python ./tensorrt-python/export.py -o yolov7-tiny.onnx -e yolov7-tiny-nms.trt -p fp16
Pytorch to TensorRT another way
Expand
wget https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7-tiny.pt
python export.py --weights yolov7-tiny.pt --grid --include-nms
git clone https://github.com/Linaom1214/tensorrt-python.git
python ./tensorrt-python/export.py -o yolov7-tiny.onnx -e yolov7-tiny-nms.trt -p fp16
# Or use trtexec to convert ONNX to TensorRT engine
/usr/src/tensorrt/bin/trtexec --onnx=yolov7-tiny.onnx --saveEngine=yolov7-tiny-nms.trt --fp16
Tested with: Python 3.7.13, Pytorch 1.12.0+cu113
- Finish Colab Notebook [2022.8.18]
- Set up the rest of the code space
- Add Chinese Markdown
- Flask Environment for the trained model (or other kinds of web demo using the finally trained classifier)
- Finish Paper
Please refer to the resources folder
- Pretrained Models and weights
- Datasets
- Burn Guidelines
- Appendix 1
- Appendix 2
- Appendix 3
- Appendix 4
- Appendix 5
- Appendix 6
Expand
- https://github.com/AlexeyAB/darknet
- https://github.com/WongKinYiu/yolor
- https://github.com/WongKinYiu/PyTorch_YOLOv4
- https://github.com/WongKinYiu/ScaledYOLOv4
- https://github.com/Megvii-BaseDetection/YOLOX
- https://github.com/ultralytics/yolov3
- https://github.com/ultralytics/yolov5
- https://github.com/DingXiaoH/RepVGG
- https://github.com/JUGGHM/OREPA_CVPR2022
- https://github.com/TexasInstruments/edgeai-yolov5/tree/yolo-pose