首页 > 其他分享 >anchor base和anchor free的应用场景介绍

anchor base和anchor free的应用场景介绍

时间:2023-07-15 09:22:29浏览次数:31  
标签:based free Anchor base 锚点 方法 anchor

在目标检测领域,能大规模应用在业务领域和工业领域的,很大一部分都是采用yolo来做,我们知道yolo这个系列,除了v1和v2和x以外,都是基于anchor base的。这也从侧面说明,anchor base其实更适用业务,我们知道业务上肯定是追求高召回和高准确率,所以anchor free很显然不能很好满足这两个需求。那anchor free也是有优势所在的,一个是速度快,因为本身不会计算anchor和iou。

看到知乎上的一个说法:

anchor based收敛快,可操作性大,适合业务场景。anchor-based的可操作性大指的是可以通过设置anchor的形状来引入先验

anchor free收敛慢,存在漏检的情况,人工可操作性不大,不太适合业务场景。

 

区别1:定位方式
  Anchor-based方法使用预先设定的锚点来确定候选框位置和大小;Anchor-free方法则不需要预先设置锚点,直接从特征图中推断物体位置和大小。

区别2:锚点数量
  Anchor-based方法需要人工设定一系列锚点来生成候选框;Anchor-free方法不需要设置锚点。

区别3:特征提取
  Anchor-based方法通常使用单独的卷积层来提取特征,而Anchor-free方法通常使用多个卷积层来捕获不同尺度的特征。

区别4:预测模式
  Anchor-based方法中,每个锚点都针对某个特定尺度和长宽比进行分类和回归;Anchor-free方法中,对于每个像素点,都可以进行分类和回归。

区别5:适用场景
  Anchor-based方法通常适用于物体尺寸变化较小和数量较稀少的情况;Anchor-free方法适用于物体尺寸变化较大和数量较密集的情况。

区别6:推理速度
  由于不需要生成大量的候选框,Anchor-free方法在推理速度上通常快于Anchor-based方法。

区别7:模型复杂度
  Anchor-based方法中需要额外的操作(如生成候选框和计算与真实框的IOU值等),导致模型复杂度相对更高。

区别8:难度级别
  Anchor-based方法需要手动设置锚点数量和大小,需要一定的经验和技巧;相比之下,Anchor-free方法更易于实现和优化。

区别9:处理能力
  在目标密集区域,Anchor-free方法的检测结果可能会产生重叠或重复检测的问题,而Anchor-based方法可以通过调整锚点的位置和大小来处理这种情况。

区别10:检测精度
  在某些情况下,Anchor-based方法可以达到更高的检测精度;而Anchor-free方法相对于Anchor-based方法而言,具有更好的物体尺度鲁棒性。

标签:based,free,Anchor,base,锚点,方法,anchor
From: https://www.cnblogs.com/chentiao/p/17555557.html

相关文章

  • baseDao.selectOne 怎么会返回多条数据,如何处理。。。
    名称是selectOne,但有多条数据满足条件的时候,会返回多条数据。解决方法:加上.last("limit1")StringtodayStart=DateUtils.getTodayStartTime();StringtodayEnd=DateUtils.getTodayEndTime();QueryWrapper<OrderEntity>wrapper=newQuer......
  • CAP & BASE 理论
    参考:javaguide: https://javaguide.cn/distributed-system/protocol/cap-and-base-theorem.html凤凰架构:https://icyfenix.cn/distribution/consensus/ CAPCAP定理(CAPtheorem)指出对于一个分布式系统来说,当设计读写操作时,只能同时满足以下三点中的两个:一致性(Consisten......
  • KingbaseES V8R6集群运维案例之---single-pro模式备份
    案例说明:KingbaseESV8R6集群物理备份配置参数_target_db_style,可选single或cluster或single-pro。single对应单机模式的目标数据库实例,cluster对应集群模式的目标数据库实例,single-pro对应集群模式的每个DB节点独立备份。本案例详细描述集群架构在singl-pro模式下的备份。适用......
  • docker安装的metabase存储从h2改成mysql
    1、在mysql创建好数据库和相关用户,并授权CREATEDATABASEmetabase;CREATEUSERmetabase@'172.17.0.0/24'IDENTIFIEDBY'123456';GRANTUSAGEONmetabase.*TO'metabase@'172.17.0.0/24';FLUSHPRIVILEGES; 看一下metabase容器的启动命令,history|grep......
  • freemarker取list前几条数据
    freemarker取list前几条数据 1、取前几条数据<@_categoryListid=4><#assignn=0/>//list外先定义assign<#listpage.listascolumn><#assignn=n+1/>//list里面再定义assign<#ifngt3><#br......
  • 页面图片验证码显示(base64图片显示)
     前端在做登陆的时候经常会遇见输入验证码登陆的问题,一般情况下,后端返回的类似一个流图片,在页面中给图片赋值是不能显示的,想下面这种形式 这样的形式通常需要前端处理一下这个流,转成base64的形式,进行显示,代码如下:asyncgetInterfaceCode(){letres=awaitg......
  • hbase数据模型有几种字段类型
    HBase数据模型中,主要有以下几种字段类型:1.列族(ColumnFamily):列族是HBase数据模型的基本组织单元。它是逻辑上相关的列的集合,通常表示一个实体的属性或者一组相关属性。列族在表创建时定义,所有属于同一列族的列都具有相同的前缀。2.列(Column):列是列族中的成员,由列族......
  • 【Netty】「优化进阶」(二)浅谈 LengthFieldBasedFrameDecoder:如何实现可靠的消息分割?
    前言本篇博文是《从0到1学习Netty》中进阶系列的第二篇博文,主要内容是通过不同的应用案例来了解LengthFieldBasedFrameDecoder是如何处理不同的消息,实现自动分割,往期系列文章请访问博主的Netty专栏,博文中的所有代码全部收集在博主的GitHub仓库中;介绍LengthFieldBasedFrameDe......
  • base
    子类继承父类,重写父类,在子类中调用父类被覆盖的方法。publicclassPerson{publicvirtualvoidGetInfo()//要标明是什么函数;virtual虚函数{Console.WriteLine("qqqqqqqe");}}classEmployee:Person{......
  • 怎么解决java Base64 decode windows和linux不一样 这个问题怎么解决?
    解决JavaBase64解码在Windows和Linux上不一致的问题在Java中,使用Base64进行编码和解码是一种常见的操作。然而,有时候会遇到一个问题,就是在Windows和Linux上进行Base64解码时,结果可能会不一致。这个问题一般是由于操作系统之间的换行符差异引起的。问题描述当我们在Windows上进......