darknet编译较为简单,在github上下载代码后直接make即可。注意更改makefile文件中的相关选项。
GPU=1
CUDNN=1
OPENCV=0
OPENMP=0
DEBUG=1
编译完成后即可开始使用。根据yolov3的训练与测试过程,对darknet进行解析。
darknet使用c语言编写,main函数位于examples/darknet.c文件中。
训练yolov3使用的命令如下
./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74
darknet.c的文件如下:
if (0 == strcmp(argv[1], "average")){
average(argc, argv);
} else if (0 == strcmp(argv[1], "yolo")){
run_yolo(argc, argv);
} else if (0 == strcmp(argv[1], "super")){
run_super(argc, argv);
} else if (0 == strcmp(argv[1], "lsd")){
run_lsd(argc, argv);
} else if (0 == strcmp(argv[1], "detector")){
run_detector(argc, argv);
}
根据detector标签进入detector.c文件中的run_detector函数。