参考博客:https://timebutt.github.io/static/how-to-train-yolov2-to-detect-custom-objects/
YOLO官网:https://pjreddie.com/darknet/yolo/
1.下载数据集到Windows,(此数据集是已经生成好的)
2.Getting Darknet:获得darknet的配置文件
3.生成test.txt以及train.txt(里面存储的是图片路径+名称)
4.创建自己的obj.data,obj.names以及yolo-obj.cfg
5.修改obj.data的数据(更改成自己的train以及test的路径),修改obj.names(检测的目标种类),修改配置文件(batch,subdivisions,classes,filters),下载我们所需要的pre-training的参数,以便于加快收敛速度
6.修改配置文件:GPU,OPENCV,CUDNN以及nvcc
7.进行训练数据:windows:darknet.exe detector train cfg/obj.data cfg/yolo-obj.cfg 预训练的参数文件
ubuntu:./darknet detector train cfg/obj.data cfg/yolo-obj.cfg 预训练的参数文件
8进行测试数据:ubuntu:./darknet detector test cfg/obj.data cfg/yolo-obj.cfg 选择训练好的参数文件
9.本地与服务器使用了scp命令:(windows)将本地文件上传到服务器需要先cd到该文件下,scp 文件 root@。。。:放置的绝对路径 (必须先cd到该文件,否则会出现错误).
将服务器文件下载到本地需要要针对当前的路径后面添加部分路径,scp -r root@...:源文件绝对路径 windows相对于当前路径的部分路径(比如当前路径是C:/users/xiaomi/Desktop 那么部分路径是就是文件的位置(比如是123文件夹)123/)
10.Ctrl+c取消输入路径
11.通常我们跑小程序可以在自己的终端中跑,如果是训练网络这样的大工作量事物,我们应该放在后台跑,这样既不耽误我们做以后的工作又可以防止我们因为电脑卡死等外部因素影响训练。
将程序放置在后台执行:nohup 命令 &即可,会在当前目录生成日志文件,我们可以通过访问日志了解训练信息。
关闭后台执行的程序时,jobs -l查看运行的后台进程,可以查看其进程号,使用kill -9 进程号即可关闭后台执行的程序。