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新的目标检测方法。以前的目标检测的研究大多是改进分离器来进行检测。我们将 阅读详情

相关推荐

从零开始:用摩尔线程S4000运行开源AI项目的完整流程

本文详细介绍了如何使用摩尔线程S4000 GPU从零开始运行开源AI项目的完整流程,包括硬件选择、驱动安装、容器化环境配置以及典型AI项目的实战部署。通过性能优化技巧,显著提升推理速度,适合开发者快速上手国产GPU的AI应用开发。

weixin_29231725的博客 581

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

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

Jack-Cui 2万+

Fluent 中多相流模型全面解析

3.颗粒或液滴在连续相中的运动:若关注颗粒或液滴在连续相中的运动轨迹、分布规律以及与连续相的相互作用,如喷雾干燥、气力输送等过程,Eulerian-Lagrangian 模型则是最佳选择。Eulerian-Eulerian 模型可以准确模拟气体在固体颗粒中的流动情况,包括颗粒的流化状态、气体与颗粒之间的传热传质过程,为气固流化床的优化设计和操作提供依据。通过该模型,可以了解混合器内不同位置的混合程度、颗粒的运动轨迹以及液固相间的相互作用,从而改进混合器的结构和操作条件,提高混合效率。

khhdp的博客 3085

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

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

夜雨飘零 2万+

VASP实战:从非共线磁矩到自旋轨道耦合磁各向异性能的完整计算流程解析

本文详细解析了VASP中从非共线磁矩计算到自旋轨道耦合磁各向异性能的完整流程。通过实战案例和参数配置技巧,帮助研究者掌握非线性磁矩计算的关键步骤,包括SOC参数设置、文件传递逻辑以及磁各向异性能的精确提取方法,为材料磁性研究提供实用指导。

weixin_31102231的博客 408

华为交换机密码策略配置避坑指南:明文/密文、长度、复杂度,一个命令就出错

本文详细解析华为交换机密码策略配置的关键要点,包括密码长度、复杂度及等保合规要求。通过实战案例揭示常见配置误区,如明文/密文密码格式差异、复杂度检查联动机制等,帮助网络工程师避免安全漏洞。特别针对等保二级和三级要求,提供可直接落地的安全加固方案。

weixin_30879169的博客 368

智能垃圾桶总结2

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

hutuUtu的博客 1883

π_RL:解锁流匹配VLA强化学习后训练的关键技术与实战解析

本文深入解析了π_RL框架如何通过流匹配(flow matching)与强化学习(RL)的结合,解决视觉语言动作模型(VLA)在后训练中的关键挑战。详细介绍了Flow Noise和Flow SDE两大核心技术,以及它们在机器人控制任务中的实战效果,显著提升了模型的性能、数据效率和泛化能力。

weixin_29061531的博客 220

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

SAP 52策略测试简介

我们看下下层物料的需求,可以看到物料的需求已经跑出来了,我们双击计划订单,发现是没有办法将计划订单转换为采购申请的,这里是否还记得我们在前面创建主数据的时候独立集中我们填写的是1,所以物料继承了上层物料的策略,所以不能将计划订单进行转换。我们在前面测试了50策略按单生产,创建完计划独立需求后,通过主数据中的独立集中的字段控制下层物料是否能通过计划订单转成生产订单和采购订单。可以看到下层物料的计划订单就可以转采购申请了,到这里可以看到52策略和50策略的计划独立需求完全是一样的。

我小时候很黑的博客 1270

YOLOv11 改进 - 注意力机制 | Deformable-LKA 可变形大核注意力:自适应采样网格优化特征捕捉,提升不规则目标感知

本文介绍了可变形大核注意力(D-LKA Attention)及其在YOLOv11中的结合。D-LKA Attention是一种简化的注意力机制,采用大卷积核利用体积上下文信息,通过可变形卷积灵活调整采样网格,适应多样数据模式。它有2D和3D版本,3D版本在跨深度数据理解上表现出色,共同构成了D-LKA Net架构。我们将D-LKA Attention集成进YOLOv11,在模型的检测头部分引入deformable_LKA_Attention模块。实验表明,该方法在分割任务上表现优于现有方法,提升了模型的检测

魔改工程师的博客 1170

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

MTK Meta ISP 工具使用技巧与参数读取路径全解析

在联发科(MediaTek, MTK)平台上进行相机图像调试时,Meta ISP 工具是连接 PC 与设备进行参数调整、寄存器读取和图像输出的重要工具。本文以实战角度出发,系统梳理 Meta ISP 的使用流程、关键模块功能、典型调试技巧与参数读取路径,结合最新版平台(如MTK Genio/Dimensity 系列)架构,帮助工程师掌握联发科图像调优的核心流程。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1147

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

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

YOLO v3解读

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

yanzi6969的专栏 2万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

YOLO配置文件理解

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

zhuiqiuk的专栏 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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、付费专栏及课程。

余额充值