项目简介
本项目基于TensorFlow框架,实现了YOLO V3目标检测模型的训练和测试。YOLO V3是一种高效的目标检测算法,能在实时视频流中快速检测多个目标。
项目的主要特性和功能
- 模型训练:支持在自定义数据集上进行YOLO V3模型的训练,涵盖数据集预处理、模型训练和损失监控。
- 模型测试:可对单张图片或批量图片进行目标检测,并输出检测结果的可视化。
- 模型转换:支持将训练好的模型转换为TensorFlow Lite和TensorFlow Serving格式,方便在移动设备和云端部署。
- 数据集处理:提供工具将PASCAL VOC格式的数据集转换为TFRecord格式,利于模型训练。
- 可视化工具:提供数据集可视化工具,用于检查数据集的标注质量。
安装使用步骤
1. 环境准备
使用Anaconda创建并激活虚拟环境: ```bash conda env create -f conda-cpu.yml conda activate yolov3-tf2-cpu
conda env create -f conda-gpu.yml conda activate yolov3-tf2-gpu ```
2. 下载预训练模型
bash
wget https://pjreddie.com/media/files/yolov3.weights
3. 转换预训练模型
bash
python convert.py --weights ./data/yolov3.weights --output ./checkpoints/yolov3.tf
4. 数据集准备
```bash python tools/voc2012.py \ --data_dir './data/voc2007_raw/VOCdevkit/VOC2007' \ --split train \ --output_file ./data/voc2007_train.tfrecord
python tools/voc2012.py \ --data_dir './data/voc2007_raw/VOCdevkit/VOC2007' \ --split val \ --output_file ./data/voc2007_val.tfrecord ```
5. 模型训练
bash
python train.py \
--dataset ./data/voc2007_train.tfrecord \
--val_dataset ./data/voc2007_val.tfrecord \
--classes ./data/voc2012.names \
--num_classes 20 \
--mode fit --transfer darknet \
--batch_size 16 \
--epochs 10 \
--weights ./checkpoints/yolov3.tf \
--weights_num_classes 80
6. 模型测试
bash
python detect.py \
--classes ./data/voc2012.names \
--num_classes 20 \
--weights ./checkpoints/yolov3_train_10.tf \
--image ./data/dog.jpg \
--output ./data/dog_out.jpg
7. 模型转换与部署
转换为TensorFlow Lite格式:
bash
python tools/export_tflite.py --weights ./checkpoints/yolov3_train_10.tf
转换为TensorFlow Serving格式:
bash
python tools/export_tfserving.py --weights ./checkpoints/yolov3_train_10.tf
注意事项
- 确保已安装所有必要的依赖库,如TensorFlow、OpenCV等。
- 根据数据集的特点调整超参数,以获得最佳的模型性能。
- 在运行脚本之前,确保已正确配置命令行参数和路径。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】