【darknet 学习笔记-02】目标检测test_detector源码分析

本文详细分析了darknet的test_detector命令执行过程,从main()函数的argc和argv参数开始,逐步解析了查找浮点参数、字符参数、判断全屏模式等步骤,重点关注了test_detector函数的源码解析。
摘要由CSDN通过智能技术生成

在01中已经实现了对图片中的物体的检测与识别,本节分析目标检测test_detector的执行过程,对源码进行分析。

终端输入的命令如下,本节即分析该命令的执行过程。

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

darknet的主程序入口在darknet/example/darknet.c 中,在01中我们打印出来main()函数的argc和**argv两个参数,两个参数的传入的值如下:

argc = 5;
argv[0] = "./darknet";
argv[1] = "detector";
argv[2] = "cfg/yolov3.cfg";
argv[3] = "yolov3.weights";
argv[4] = "data/dog.jpg";

 根据传入的argc和**argv参数会发现main()函数,以下语句会被调用:

else if (0 == strcmp(argv[1], "detect")){
        float thresh = find_float_arg(argc, argv, "-thresh", .5);
        char *filename = (argc > 4) ? argv[4]: 0;
        char *outfile = find_char_arg(argc, argv, "-out", 0);
        int fullscreen = find_arg(argc, argv, "-fullscreen");
        test_detector("cfg/coco.data", argv[2], argv[3], filename, thresh, .5, outfile, fullscreen);
}

我们逐语句去分析这5条语句,首先分析第一条语句:

float thresh = find_float_arg(argc, argv, "-thresh", .5);

首先我们看以下find_float_arg()函数的源码,如下:【源码位于:/darknet/src/utils.c 中】

float find_float_arg(int argc, char **argv, char *arg, float def)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值