有两种方式:拉取hub.docker上的镜像和自己在本地生成镜像。
$ sudo docker pull gouchicao/darknet:latest-gpu
$ sudo docker run --runtime=nvidia --rm gouchicao/darknet:latest-gpu ./darknet
usage: ./darknet <function>
$ sudo docker pull gouchicao/darknet:latest
$ sudo docker run --rm gouchicao/darknet:latest ./darknet
usage: ./darknet <function>
训练前的数据准备
project/ # 工程根目录
├── cfg # 配置目录
│ └── voc.names # 标签名
├── images # 样本
│ ├── ...
│ └── ...
├── labels # YOLO标注格式
│ ├── ...
│ └── ...
└── test # 训练完后用于测试(非必须)
├── ...
└── ...
platen-switch/
├── cfg
│ └── voc.names
├── images
│ ├── IMG_9255.JPG
│ ├── IMG_9263.JPG
│ ├── IMG_9266.JPG
│ └── IMG_9280.JPG
├── labels
│ ├── IMG_9255.txt
│ ├── IMG_9263.txt
│ ├── IMG_9266.txt
│ └── IMG_9280.txt
└── test
├── IMG_9256.JPG
└── IMG_9271.JPG
运行darknet容器
运行CPU版本不需要加 --runtime=nvidia,镜像使用 gouchicao/darknet:latest
# 使用您的工程绝对路径设置变量 project_dir
$ project_dir='/home/wjunjian/github/gouchicao/darknet/model-zoo/platen-switch'
$ sudo docker run --runtime=nvidia -it --name=darknet \
--volume=$project_dir:/darknet/project \
gouchicao/darknet:latest-gpu
创建工程,用于模型训练
$ python3 create_project.py
platen-switch/
├── backup # 存储模型训练时权重值
├── cfg
│ ├── train.txt # 存储用于训练的图像路径
│ ├── valid.txt # 存储用于验证的图像路径
│ ├── voc.data # 配置文件
│ ├── voc.names
│ └── yolov3.cfg # YOLOv3神经网络文件
├── data
│ └── labels # 预测时,用来绘制标签名
│ ├── 100_0.png
│ ├── ...
│ ├── 99_7.png
│ └── make_labels.py
├── images
│ ├── IMG_9255.JPG
│ ├── IMG_9263.JPG
│ ├── IMG_9266.JPG
│ └── IMG_9280.JPG
├── labels
│ ├── IMG_9255.txt
│ ├── IMG_9263.txt
│ ├── IMG_9266.txt
│ └── IMG_9280.txt
├── predict # 用来保存预测的图片
└── test
├── IMG_9256.JPG
└── IMG_9271.JPG
配置超参数
20行:max_batches = 2000 # 训练的轮数
603行:filters=21 # (classes + 5)*3 classes指cfg/voc.data中的值
610行:classes=2
689行:filters=21 # (classes + 5)*3
696行:classes=2
776行:filters=21 # (classes + 5)*3
783行:classes=2
训练模型
$ cd /darknet/project/
$ ../darknet detector train cfg/voc.data cfg/yolov3.cfg ../darknet53.conv.74
# 使用多GPU训练
$ ../darknet detector train cfg/voc.data cfg/yolov3.cfg ../darknet53.conv.74 -gpus 0,1,2,3
测试模型
$ ../darknet detector test cfg/voc.data cfg/yolov3.cfg backup/yolov3_final.weights test.jpg
模型部署详见darknet-serving
$ cd /darknet/
$ python3 generate_model_deploy_data.py
platen-switch/
└── model
├── voc.data
├── voc.names
├── yolov3.cfg
└── yolov3_final.weights
Content type
Image
Digest
Size
324.8 MB
Last updated
about 7 years ago
docker pull gouchicao/darknet