yolo fastest中get_actual_detections函数作用及thresh的意义

YOLOV3的三个门限值解释以及yolov3详解 YOLOV3 关于yolov3必须了解的三个门限值 ignore_iou_thresh:【IOU门限】标记与真实框有交集的锚框的objectness(框内是否有物体)为1还是-1的分界线 yolov3是对生成的每个锚框进行标记 标记与真实框IOU最大的锚框objectness=1【只有该锚框对应的预测框才参与损失函数计算和类别预测】 标记与真实框的非最大但IOU大于等于ignore_iou_thresh的锚框的objectness=-1表示是真实框对应的锚框(锚框包含真实目标),但其对应的预测框不负责损失 阅读详情

测试YOLO fastest训练模型命令的时候,有个参数是-thresh,所以需要查看适用这个参数的地方

// Creates array of detections with prob > thresh and fills best_class for them
detection_with_class* get_actual_detections(detection *dets, int dets_num, float thresh, int* selected_detections_num, char **names)
{
    int selected_num = 0;
    detection_with_class* result_arr = (detection_with_class*)xcalloc(dets_num, sizeof(detection_with_class));
    int i;
    for (i = 0; i < dets_num; ++i) {//循环遍历检测到的目标 
        int best_class = -1;
        float best_class_prob = thresh;
        int j;
        for (j = 0; j < dets[i].classes; ++j) {//对检测到的目标的类别概率进行判断,提取最大类别概率及索引
            int show = strncmp(names[j], "dont_show", 9);
            if (dets[i].prob[j] > best_class_prob && show) {//提取概率大于thresh并且是最大值的检测目标,此处不太清楚show的用意,因为names中不包含"dont_show",所以show恒不等于0
                best_class = j;
                best_class_prob = dets[i].prob[j];
            }
        }
        if (best_class >= 0) {//如果最大类别概率索引>=0,保存检测目标结构体
            result_arr[selected_num].det = dets[i];
            result_arr[selected_num].best_class = best_class;
            ++selected_num;
        }
    }
    if (selected_detections_num)
        *selected_detections_num = selected_num;
    return result_arr;
}

上层调用的代码:

    int selected_detections_num;
    detection_with_class* selected_detections = get_actual_detections(dets, num, thresh, &selected_detections_num, names);

    // text output
    qsort(selected_detections, selected_detections_num, sizeof(*selected_detections), compare_by_lefts);
    int i;
    for (i = 0; i < selected_detections_num; ++i) {
        const int best_class = selected_detections[i].best_class;
        printf("%s: %.0f%%", names[best_class],    selected_detections[i].det.prob[best_class] * 100);
        if (ext_output) //如果在测试命令中ext_output为真,打印各个目标的位置
            printf("\t(left_x: %4.0f   top_y: %4.0f   width: %4.0f   height: %4.0f)\n",
                round((selected_detections[i].det.bbox.x - selected_detections[i].det.bbox.w / 2)*im.w),
                round((selected_detections[i].det.bbox.y - selected_detections[i].det.bbox.h / 2)*im.h),
                round(selected_detections[i].det.bbox.w*im.w), round(selected_detections[i].det.bbox.h*im.h));
        else
            printf("\n");
        int j;
        for (j = 0; j < classes; ++j) {//如何其他不同类别的概率值也大于给定阈值,打印输出相关信息
            if (selected_detections[i].det.prob[j] > thresh && j != best_class) {
                printf("%s: %.0f%%", names[j], selected_detections[i].det.prob[j] * 100);

                if (ext_output)
                    printf("\t(left_x: %4.0f   top_y: %4.0f   width: %4.0f   height: %4.0f)\n",
                        round((selected_detections[i].det.bbox.x - selected_detections[i].det.bbox.w / 2)*im.w),
                        round((selected_detections[i].det.bbox.y - selected_detections[i].det.bbox.h / 2)*im.h),
                        round(selected_detections[i].det.bbox.w*im.w), round(selected_detections[i].det.bbox.h*im.h));
                else
                    printf("\n");
            }
        }
    }

 

YOLO论文记之概述与实践 由于毕业论文方向选定为视频目标检测与跟踪,经过在paper池中查找,从rbg大神的R-CNN系列一直找到这篇最新的顶级paper,发现这篇论文的思路太棒了,而且该项目还自己写了一个开源的框架,论文的实验也开源了,故而准备以该研究为起点。(该部分属于自己瞎扯淡,大神可以直接忽略) 以下正式进入翻译阶段:概述我们提出一种叫YOLO新的目标检测方法。以前的目标检测的研究大多是改进分离器来进行检测。我们将 阅读详情

相关推荐

产品经理-面试题目--持续更新

答:面试官,你好,我叫XXX,来自于XXXX,我系统的学习过软件开发,也主动的积累了不少产品方面的实战经验,在学习期间,我自己独立的完成了2个深度项目,一个是仿抖音的短视频APP全流程设计,另外一个是电商后台系统的模块,通过这些项目,我不仅熟练使用Axure等工具做出高保真原型图和清晰的产品框架,也形成了数据驱动和用户优先的思维习惯,另外,我也注重拓展自己的能力边界,拿到了CAIE人工智能证书,我希望能把AI能力融入到产品场景,提升体验和效率,我非常喜欢产品工作带来的创造性和逻辑性,希望有机会加入贵公司。

m0_63966958的博客 956

硬核图解,再填猛男,YOLO详解!

目标检测算法,YOLOv1的超详细解析,一文看懂YOLO。

Jack-Cui 2万+

【SOC估算】基于EKF与神经网络融合的锂电池SOC高精度估计及Matlab实现

本文探讨了基于EKF与神经网络融合的锂电池SOC高精度估计方法。通过结合扩展卡尔曼滤波(EKF)的模型驱动优势和神经网络的数据驱动学习能力,实现了对电池荷电状态(SOC)的精准预测。Matlab仿真验证了该混合算法在各种工况下均能显著降低估计误差,提升电池管理系统性能。

play7的博客 694

基于insightface实现的人脸识别和人脸注册

为了方便,写一个类完成所有的识别流程,开始编写人脸识别和人脸注册工具类,使用`insightface.app.FaceAnalysis()`可以获取模型对象,这里包含了三个模型,首先是人脸检测模型,然后是人脸特征提取模型,和最后的性别年龄识别模型。使用`model.prepare()`可以配置`ctx_id`指定使用哪一块GPU,如果是负数则是使用CPU执行预测,`det_thresh`配置的是人脸检测的阈值。`load_faces()`函数是加载人脸库中的人脸,用于之后的人脸识别对比。...

夜雨飘零 2万+

海康VisionMaster图形定位实战:十字形Mark点精准匹配技巧

本文深入解析了海康VisionMaster图形定位模块在工业自动化中实现十字形Mark点精准匹配的实战技巧。文章从ROI设置、核心参数调优(如定位方式、尺度模式、对比度阈值)到工业场景应用与避坑指南,系统性地分享了提升匹配成功率和稳定性的关键步骤,帮助工程师应对复杂现场环境,实现高效、可靠的视觉定位。

weixin_29285605的博客 258

Unity WebGL发布避坑指南:从内存设置到字体打包,一次搞定所有常见问题

本文详细解析Unity WebGL发布的完整流程,从内存设置到字体打包,提供全面的避坑指南。涵盖关键检查清单、内存与性能优化配置、资源处理专项优化及平台适配技巧,帮助开发者高效解决常见问题,确保项目顺利发布。

weixin_28693309的博客 147

智能垃圾桶总结2

K210图像识别K210程序阈值设定串口发送数据投放数量显示 K210程序 阈值设定 K210的程序用的是官方给的五朵花分类的程序,大概流程是摄像头采集图像,与之前在百度飞桨上训练的模型进行对比,当准确率超过设定值时,在屏幕上显示识别的东西。 #define PROB_THRESH (0.85f) PROB_THRESH 为设定阈值,调试识别准确率时可以参照飞桨训练的预测精度,PROB_THRESH 取值比预测精度大。 如果在飞桨上预测精度值比较大(超过0.7),但是在烧到板子中识别准确度并不高,

hutuUtu的博客 1883

PINN驱动的3D不可压缩流场重建——从稀疏2D2C观测到完整物理场反演——含源码实现

多尺度融合策略在此发挥作用:高分辨率的2D2C数据用于约束平面内的精细结构,而低分辨率的3D3C数据提供第三维度的粗尺度信息。迁移学习架构在此发挥关键作用。这种策略在湍流封闭模型构建中尤为有效,其中RANS提供的平均流场与DNS的雷诺应力数据融合,显著提升了分离流的预测精度。在稀疏数据场景下,注意力权重根据观测数据的分布动态调整,强化数据缺失区域的物理约束,同时避免过拟合于观测点。这种机制与自适应采样的结合,实现了计算效率与重建精度的平衡,在仅保留约百分之十关键节点的情况下,仍能保持高物理一致性。

u012133341的博客 136

YOLOv3测试时python接口分析

调用darknet python接口需使用darknet/python/darknet.py,而其中核心为detect()函数,该参数主要参数为: def detect(net, meta, image, thresh=.5, hier_thresh=.5, nms=.45) 而detect()函数中的核心为dets = get_network_boxes(net, im.w, im.h, ...

xunan003的博客 2649

Sigrity SPEED2000 General SI Simulation模式如何进行信号仿真分析操作指导-DDR

本例是几个简单的板载DDR颗粒的结构,本例中使用General SI Simulation模式仿真DDR信号,结构拓扑如下,Addcmd,clk,cke都是T拓扑。Sigrity SPEED2000 General SI Simulation模式可以对信号进行仿真分析,仿真将电源视为理想电源,以下图为例进行说明。DQS的接收端模型设置为DQS_34_ODT60_1333。模式如何进行信号仿真分析操作指导-DDR。附带驱动和接收端的IBIS模型。

weixin_54787054的博客 510

R语言单因素被试内ANOVA检验

在R语言中,我们可以使用多种方法进行被试内ANOVA检验,其中包括使用内建函数或使用外部包。我们随机选择了10个被试,并对每个被试使用了三种不同的药物处理。通过上述代码示例,我们可以使用R语言进行单因素被试内ANOVA检验。假设我们的数据存储在一个名为"data"的数据框中,其中包含两个列:一个列是被试的编号,另一个列是生物指标的测量值。在上述代码中,我们创建了一个名为"data"的数据框,其中"Subject"列包含了被试的编号,"Measurement"列包含了生物指标的测量值。参数指定了数据来源。

PixelNovaO的博客 363

darknet-yolov3中python接口中image传输w和h的过程

首先,python接口darknet.py中detect函数如下: def detect(net, meta, image, thresh=.5, hier_thresh=.5, nms=.45): im = load_image(image, 0, 0) num = c_int(0) pnum = pointer(num) predict_image(net,...

xunan003的博客 2806

AI 智能体(Agent)应用开发工程师 · 进阶面试 (五)

在有多位 Agent 共同参与决策时(如评审委员会、代码审查小组),它们可能提出截然相反的建议。共识机制就是用来在这种冲突中得出唯一行动方案的规则。常用机制:多数投票:每个 Agent 一票,根据投票结果决定。实现简单,但忽略了专业度差异。加权投票:根据 Agent 的角色重要性或历史表现赋予不同权重,例如首席架构师 Agent 的票权重是普通开发者 Agent 的 2 倍。管理者仲裁:由一个权限更高的 Manager Agent 听取各方理由后做出最终裁决。这类似于层级制组织决策。辩论收敛。

篮球界最会写bug的人;程序猿中打球最菜的人。 393

yolov3-darknet中yolov2参数hier_thresh的意义及作用

在yolov3的python接口中的darknet.py中的detect()函数中包含参数hier_thresh,具体函数如下: def detect(net, meta, image, thresh=.5, hier_thresh=.5, nms=.45): im = load_image(image, 0, 0) num = c_int(0) pnum = poin...

xunan003的博客 5665

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

YOLO v3解读

转自:https://xmfbit.github.io/2018/04/01/paper-yolov3/YOLO的作者又放出了V3版本,在之前的版本上做出了一些改进,达到了更好的性能。这篇博客介绍这篇论文:YOLOv3: An Incremental Improvement。下面这张图是YOLO V3与RetinaNet的比较。可以使用搜索功能,在本博客内搜索YOLO前作的论文阅读和代码。YOLO...

yanzi6969的专栏 2万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

YOLO配置文件理解

http://www.infocool.net/kb/WWW/201703/317548.html [net] batch=64 每batch个样本更新一次参数。 subdivisions=8 如果内存不够大,将batch分割为subdivisions个子batch,每个子batch的大小为batch

zhuiqiuk的专栏 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

YOLO V3

原文链接:点击打开链接第一部分:论文以及代码测试论文:https://pjreddie.com/media/files/papers/YOLOv3.pdf翻译:https://zhuanlan.zhihu.com/p/34945787代码:https://github.com/pjreddie/darknet训练与测试:https://pjreddie.com/darknet/yolo/旧版链接:...

xunan003的博客 8817

YOLO源码详解(一)-训练

本系列文章会持续更新,主要会分以下几个部分: 1、darknet下的yolo源代码解读 2、将yolo移植到mxnet下 3、模型压缩与加速

木凌的博客 4万+

yolo 学习系列(三):训练参数与网络参数

yolo 学习系列(三):训练参数与网络参数 1 训练参数 博主在使用 yolov2-tiny-voc 训练 人 这一类目标物体时,训练过程中在终端输出的参数如图所示,了解这些参数的含义有助于了解训练过程中的训练效果。 1.1 训练参数解释 Region Avg IOU: 0.196824:表示在当前subdivision内的图片的平均IOU,代表预测的矩形框和真实目标的交集...

la_fe_的博客 1万+

yolo训练自己的数据实践总结

使用yolo 训练自己的数据并检测结果 yolo2实验总结

burning_keyboard的博客 1万+

YOLOV2参数详解

原博客:http://blog.youkuaiyun.com/fate_fjh/article/details/70598510 前言 You Only Look Once (YOLO) 是一个基于GoogleNet的物体检测深度网络,Real-time(实时)与Efficient(有效)一定是YOLO最大的特点与优势。YOLO与其他物体检测的深度网络思路基本相同,学习物体分类以及Bounding

xiaoye5606的博客 9968

YOLO-V3 图片检测函数流程解读 draw_detection_v3()

YOLO-V2的运行函数路径为:yolo.c中的test_yolo()  --&gt;  image.c中的draw_detections()    YOLO-V3的运行函数路径为:detector.c中的test_detector()  --&gt; image.c中的draw_detections_v3() detector.c中的命令传入接口: box.h中的结构体定义: ...

dspeia的博客 5411

YOLO-V3将检测的目标单独保存

之前写过一篇文章将Yolo-v2检测到的目标单独保存成图像,其实内容差不多少,只是最近总有人问我对于YOLO-V3的怎么改,下面就详细的说一下,在YOLO-V3的源码中修改具有保存子图像的方法。 打开darknet_no_gpu.sln,可以看到很多的代码,其实对我们有用的只有detector.c,image.c,image.h这三个文件。  下面就具体介绍一下怎么改。 在YOLO的源码...

凌空的桨 4975

win10修改darknet(yolov3)源代码令其裁剪出bbox并保存到本地

1.修改image.c中draw_detections_v3函数 首先添加一个函数 IplImage* image_to_iplImage(image p,IplImage* disp){ // 将image结构体中存放的一维数组转换成二维图像。 maybe image copy = copy_image(p); if(p.c == 3) rgbgr_image(copy); in...

ws995339251的博客 3081
上一篇: FPN相关理解
下一篇: 非极大值抑制-NMS
GeneralJing
博客等级 码龄15年 17粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值