计算机视觉算法——基于Anchor Free的目标检测网络总结

  • 计算机视觉算法——基于Anchor Free的目标检测网络总结
    • 1. CornerNet
      • 1.1 关键知识点——网络结构及特点
      • 1.2 关键知识点——正负样本匹配
      • 1.3 关键知识点——损失计算
    • 2. CenterNet
      • 2.1 关键知识点——网络结构及特点
      • 2.2 关键知识点——损失计算
    • 3. FCOS
      • 3.1 关键知识点——网络结构及特点
      • 3.2 关键知识点——正负样本匹配
      • 3.3 关键知识点——损失计算
    • 4. YOLOX
      • 4.1 关键知识点——网络结构及特点
      • 4.2 关键知识点——正负样本匹配
      • 4.3 关键知识点——损失计算

计算机视觉算法——基于Anchor Free的目标检测网络总结

在之前我有总结过一些目标检测网络:
计算机视觉算法——目标检测网络总结
这些方法大都是Anchor Based方法,Anchor Based方法的主要问题是:

  1. 检测器的性能和Anchor的Size和Aspect Ratio相关,在RetinaNet中改变Anchor能造成4%的AP的变化;
  2. 一般Anchor的Size和Aspect Ratio是固定的,很难处理形状变化大的目标,当发生任务迁移时,往往需要重新设计Anchor;
  3. 为了达到召回率,一般需要在图片中生成非常密集的Anchor Boxes。在训练时绝大部分的Anchor Boxes都会时负样本,容易造成正负样本不均的情况。
  4. Anchor的引入会使得网络的训练过程变得更加繁琐,想了解这一点大家可以去看看SSD的源码。

1. CornerNet

CornerNet发表于2018年ECCV,原论文名为《CornerNet: Detecting Objects as Paired Keypoints》,该论文将目标检测问题当作关键点检测问题来解决,通过检测目标框的左上角和右下角两个关键点得到预测框。从同期SOTA方法在MS COCO数据集的对比i结果看,相对于One-Stage方法精度有明显提升,但是相对于Two-Stage方法精度接近,但是该方法在推断时间上无优势:

1.1 关键知识点——网络结构及特点

网络结构如下图所示:

如上图所示,ConerNet模型包括三部分,首先是通过堆叠两个Hourglass Network提取图像Feature,然后就是将图像Feature分别通过Top-left Corner和Bottom-right Corner两个Prediction Modules。

Prediction Module的具体结构如下图所示:

可以看出来Prediction Module整体是一个残差结构,其中Top-Left Corner Pooling Module我们稍后介绍,这里先看下Prediction Module的输出包括三部分:Heatmaps,Embeddings,Offsets。

  1. Heatmaps用于预测角点的位置,输出的是CCC个Channel的Feature,CCC指的是分类的类别个数(不包括背景类别)
  2. Embeddings用于对Corner进行分组,Heatmap上检测个角点如何判断是否属于同一个物体呢?就是通过Embeddings输出之间的距离来找到角点之间的对应关系,我看源码这里Embedings输出的是Channel数为1的Feature。
  3. Offsets用于对预测角点位置进行精修。输出的是Channel数为2的Feature,如下公式所示:ok=(xkn−⌊xkn⌋,ykn−⌊ykn⌋)\boldsymbol{o}_k=\left(\frac{x_k}{n}-\left\lfloor\frac{x_k}{n}\right\rfloor, \frac{y_k}{n}-\left\lfloor\frac{y_k}{n}\right\rfloor\right) ok=(nxknxk,nyknyk)我们通过Heatmaps输出的位置还原到原始分辨率后肯定是一个取整后的位置(⌊xn⌋,⌊yn⌋)\left(\left\lfloor\frac{x}{n}\right\rfloor,\left\lfloor\frac{y}{n}\right\rfloor\right)(nx,ny),为了恢复原始分辨率的精度,网络就会输出这样一个修正量ok\boldsymbol{o}_kok

此外,在上图中还有一个Top-left Corner Pooling Module操作,该操作公式如下:
tij={max⁡(ftij,t(i+1)j)if i<HftHjotherwise t_{i j}=\left\{\begin{array}{cc} \max \left(f_{t_{i j}}, t_{(i+1) j}\right) & \text { if } i<H \\ f_{t_{H j}} & \text { otherwise } \end{array}\right. tij={max(ftij,t(i+1)j)ftHjifi<Hotherwiselij={max⁡(flij,li(j+1))if j<WfliWotherwise l_{i j}=\left\{\begin{array}{cc} \max \left(f_{l_{i j}}, l_{i(j+1)}\right) & \text { if } j<W \\ f_{l_{i W}} & \text { otherwise } \end{array}\right. lij={max(flij,li(j+1))fliWifj<Wotherwise其实就是取水平和竖直最大值,最后求和,具体的案例下图所示:

论文认为Corner Pooling之所以有效,是因为(1)目标定位框的中心难以确定,和边界框的四条边相关,但是每个顶点只与边界框的两条边相关,所以Corner跟他容易获取;(2)顶点更有效提供离散边界空间,作者做了Corner Pooling的实验如下:

1.2 关键知识点——正负样本匹配

对于每个角点,只有一个正样本,其余的都是负样本。但是为了保证样本均衡,作者在角点半径范围内区域会加大对负样本的惩罚力度。实际怎么做呢?

在构建Heatmaps Groundtruth时,如果不加任何惩罚,那么正样本处应该就为1,而负样本处为0;而加上惩罚后就是在角点半径范围内构建一个e−x2+y22σ2e^{-\frac{x^2+y^2}{2 \sigma^2}}e2σ2x2+y2的高斯分布,该σ\sigmaσ可以是个固定值,可以与物体大小相关,总而言之是越靠近角点的地方越接近于1,越远离角点的地方越接近于0。如下图所示:

作者做了负样本惩罚的消融实验如下:
注意,这里还是只有角点一个正样本,在计算Lpull L_{\text {pull }}LpullLpush L_{\text {push }}LpushLoffL_{o f f}Loff时还是只在角点处计算。

1.3 关键知识点——损失计算

Corner损失函数定义如下:L=Ldet +αLpull +βLpush +γLoffL=L_{\text {det }}+\alpha L_{\text {pull }}+\beta L_{\text {push }}+\gamma L_{o f f} L=Ldet+αLpull+βLpush+γLoff其中
Ldet L_{\text {det }}Ldet是Heatmaps的Loss,采用的是Focal Loss,准确地说,是针对Heatmaps改进的Focal Loss,公式如下所示:Ldet =−1N∑c=1C∑i=1H∑j=1W{(1−pcij)αlog⁡(pcij)if ycij=1(1−ycij)β(pcij)αlog⁡(1−pcij)otherwise L_{\text {det }}=\frac{-1}{N} \sum_{c=1}^C \sum_{i=1}^H \sum_{j=1}^W\left\{\begin{array}{cc} \left(1-p_{c i j}\right)^\alpha \log \left(p_{c i j}\right) & \text { if } y_{c i j}=1 \\ \left(1-y_{c i j}\right)^\beta\left(p_{c i j}\right)^\alpha \log \left(1-p_{c i j}\right) & \text { otherwise } \end{array}\right. Ldet=N1c=1Ci=1Hj=1W{(1pcij)αlog(pcij)(1ycij)β(pcij)αlog(1pcij)ifycij=1otherwise其中ycijy_{c i j}ycij为真值,pcijp_{c i j}pcij是预测值,我们分两部分来解释该公式:

  1. ycij=1y_{c i j}=1ycij=1时,此时如果pcijp_{c i j}pcij接近于1时,说明该真值是容易预测的,那么我们减少其在样本中的权重,所以在log损失的基础上乘以(1−pcij)α\left(1-p_{c i j}\right)^\alpha(1pcij)α;反之,如果pcijp_{c i j}pcij接近于0,说明该角点还没有学习到,所以会加大其权重。
  2. ycijy_{c i j}ycij不为111时,pcijp_{c i j}pcij应该输出000。在角点附近pcijp_{c i j}pcij输出接近于1的概率时容易造成误检,为了对角点附接近于1的(pcij)α\left(p_{c i j}\right)^\alpha(pcij)α进行抑制,因此在log损失上乘以(pcij)α\left(p_{c i j}\right)^\alpha(pcij)α,这样网络就会更加关注这些误检的点,但是又正由于这个已经接近于角点了,因此输出稍微大一些也是情有可原的,因此用(1−ycij)β\left(1-y_{c i j}\right)^\beta(1ycij)β来抑制一下惩罚。当然,如果在距离角点较远的地方输出接近于111肯定也是不对的,那么此时(1−ycij)β\left(1-y_{c i j}\right)^\beta(1ycij)β(pcij)α\left(p_{c i j}\right)^\alpha(pcij)α都会用来加强惩罚。反之,如果pcijp_{c i j}pcij接近于0,那么(pcij)α\left(p_{c i j}\right)^\alpha(pcij)α就会告诉网络,这个负样本已经学好了,不需要太多关注。

Lpull L_{\text {pull }}LpullLpush L_{\text {push }}Lpush是Embeddings的Loss,Lpull L_{\text {pull }}Lpull使同一函目标的顶点进行分组,Lpush L_{\text {push }}Lpush用与分离不同目标的顶点:Lpull =1N∑k=1N[(etk−ek)2+(ebk−ek)2]L_{\text {pull }}=\frac{1}{N} \sum_{k=1}^N\left[\left(e_{t_k}-e_k\right)^2+\left(e_{b_k}-e_k\right)^2\right] Lpull=N1k=1N[(etkek)2+(ebkek)2]Lpush=1N(N−1)∑k=1N∑j=1j≠kNmax⁡(0,Δ−∣ek−ej∣)L_{p u s h}=\frac{1}{N(N-1)} \sum_{k=1}^N \sum_{\substack{j=1 \\ j \neq k}}^N \max \left(0, \Delta-\left|e_k-e_j\right|\right) Lpush=N(N1)1k=1Nj=1j=kNmax(0,Δekej)其中eke_kek为真值,其他为网络输出结果,Δ\DeltaΔ为在作者实验中设置为1,我们简单分析下就可以看出,同一物体的Lpull L_{\text {pull }}Lpull应该为000,而不同物体的Embeddings结果如果比较越接近LpushL_{p u s h}Lpush就会越大。
LoffL_{o f f}Loff是Offsets的Loss,采用的是Smooth L1 Loss,公式如下:Loff=1N∑k=1NSmoothL1Loss⁡(ok,o^k)L_{o f f}=\frac{1}{N} \sum_{k=1}^N \operatorname{SmoothL1Loss}\left(\boldsymbol{o}_k, \hat{\boldsymbol{o}}_k\right) Loff=N1k=1NSmoothL1Loss(ok,o^k)Ldet L_{\text {det }}Ldet在正负样本处都会计算,而Lpull L_{\text {pull }}LpullLpush L_{\text {push }}LpushLoffL_{o f f}Loff只在正样本处计算

2. CenterNet

CenterNet发表于2019年,原论文名为《Objects as Points》,CenterNet感觉是基于CornerNet进行的该井,使得检测速度和精度相比于One-Stage和Two-Stage的方法都了不小的提高,在和YOLO v3的比较中,相同速度下,CenterNet提高了4个左右的点。同时网络经过少量的扩展,就可以迁移到3D目标检测和人体关键点检测上。

2.1 关键知识点——网络结构及特点

CenterNet的网络结构是非常简单的,其实就是一个Backbone加上3个Head,3个Head分别输出80维的类别、2维的中心点坐标和2维的长宽偏置。Backbone的示意图如下图所示:

从左到右分别是(a)Hourglass-104,(b)ResNet,(c)DLA-34,(4)Modified DLA-34,CornerNet的Head是从1/4下采样率的Feature上接出来的,作者在论文中对比了不同的BackBone的结果,如下图所示,其中Hourglass效果是最好的:

2.2 关键知识点——损失计算

CornreNet的损失由三部分构成,分别是类别损失、目标中心偏置损失和目标大小损失:Ldet =Lk+λsize Lsize +λoff LoffL_{\text {det }}=L_k+\lambda_{\text {size }} L_{\text {size }}+\lambda_{\text {off }} L_{o f f} Ldet=Lk+λsizeLsize+λoffLoff首先,类被采用的是类别损失采用的Focal Loss:
Lk=−1N∑xyc{(1−Y^xyc)αlog⁡(Y^xyc)if Yxyc=1(1−Yxyc)β(Y^xyc)αlog⁡(1−Y^xyc)otherwise L_k=\frac{-1}{N} \sum_{x y c}\left\{\begin{array}{cc} \left(1-\hat{Y}_{x y c}\right)^\alpha \log \left(\hat{Y}_{x y c}\right) & \text { if } Y_{x y c}=1 \\ \left(1-Y_{x y c}\right)^\beta\left(\hat{Y}_{x y c}\right)^\alpha \log \left(1-\hat{Y}_{x y c}\right) & \text { otherwise } \end{array}\right. Lk=N1xyc

(1Y^xyc)αlog(Y^xyc)(1Yxyc)β(Y^xyc)αlog(1Y^xyc)ifYxyc=1otherwise该公式的和CornerNet中的公式没有区别,在此就不再赘述。
目标中心偏置损失采用的是L1 Loss,如下所示:Loff=1N∑p∣O^p~−(pR−p~)∣L_{o f f}=\frac{1}{N} \sum_p\left|\hat{O}_{\tilde{p}}-\left(\frac{p}{R}-\tilde{p}\right)\right| Loff=N1p

O^p~(Rpp~)

其中,O^∈RWR×HR×2\hat{O} \in \mathcal{R}^{\frac{W}{R} \times \frac{H}{R} \times 2}O^RRW×RH×2为网络输出,RRR是特征图下采样倍率,ppp为原始图像中心点坐标,p~\tilde{p}p~为特征图上中心点坐标。
目标大小损失使用的同样是L1损失:Lsize=1N∑k=1N∣S^pk−sk∣L_{s i z e}=\frac{1}{N} \sum_{k=1}^N\left|\hat{S} p_k-s_k\right| Lsize=N1k=1N

S^pksk

其中S^∈RW′R×HR×2\hat{S} \in \mathcal{R}^{\frac{W^{\prime}}{R} \times \frac{H}{R} \times 2}S^RRW×RH×2为预测值,sk=(x2(k)−x1(k),y2(k)−y1(k))s_k=\left(x_2^{(k)}-x_1^{(k)}, y_2^{(k)}-y_1^{(k)}\right)sk=(x2(k)x1(k),y2(k)y1(k))为真值,(x1(k),y1(k),x2(k),y2(k))\left(x_1^{(k)}, y_1^{(k)}, x_2^{(k)}, y_2^{(k)}\right)(x1(k),y1(k),x2(k),y2(k))分别为左上角和右下角坐标。

3. FCOS

FCOS发表于2019年CVPR,原论文名为《Fully Convolutional One-Stage Object Detection》,它与当时的SOTA方法结果对比如下:

3.1 关键知识点——网络结构及特点

网络结构如下图所示:

通过上图网络结构还是一目了然的,需要注意的几点是:

  1. 不同分辨率上的检测头是共享权重的,每个头都是先经过四个Conv+Group Nomalization+ReLU的模块,最后通过Kernel Size为3的卷积输出。
  2. Classification头一共有80个Channel,对应COCO数据集的80个类别,也就是说每一个Grid对应的就只有一个类别输出。
  3. Regression头输出的是四个值,分别是距离边框左侧、上侧、右侧、底侧的距离:xmin⁡=cx−l⋅sx_{\min }=c_x-l \cdot s xmin=cxlsxmin⁡=cx−t⋅sx_{\min }=c_x-t \cdot s xmin=cxtsxmin⁡=cx−r⋅sx_{\min }=c_x-r \cdot s xmin=cxrsxmin⁡=cx−b⋅sx_{\min }=c_x-b \cdot s xmin=cxbs其中l,t,r,bl, t, r, bl,t,r,b为网络的输出值,由于输出值是在特征图的尺度上,因此需要乘以一个尺度参数ssscx,cyc_x, c_ycx,cy是参考点映射到原图的坐标。
  4. Centerness头输出的是一个值,反应的是预测点相对与目标中心点的远近程度:centerness =min⁡(l∗,r∗)max⁡(l∗,r∗)×min⁡(t∗,b∗)max⁡(t∗,b∗)\text { centerness }=\sqrt{\frac{\min \left(l^*, r^*\right)}{\max \left(l^*, r^*\right)} \times \frac{\min \left(t^*, b^*\right)}{\max \left(t^*, b^*\right)}} centerness=max(l,r)min(l,r)×max(t,b)min(t,b) 其中l∗,t∗,r∗,b∗l^*, t^*, r^*, b^*l,t,r,b是当前预测点相对于Ground Truth各个方向边界的距离,该值输出的范围是0-1,当预测点位于Ground Truth的Bounding Box的中心点时,该值为1,当位于Bounding Box的边界时,该值为0。在论文中,作者有做关于Centerness头的消融实验

    我们可以看到,当加入Centerness监督时,AP都有非常大的提升。

3.2 关键知识点——正负样本匹配

关于FCOS的正负样本匹配一共有两个版本,最开始的版本作者将落入Ground Truth的Bounding Box内的Grid都作为正样本,但是后来通过是实验发现,落入Ground Truth的Bounding Box的中心部分区域的Grid的作为正样本。

由于我们每个Grid只会输出一种类别,如果同一个Grid同时落入两个Ground Truth Bounding Box中,就会面临一个Ambiguity问题,在论文中,作者指出这种情况就会默认将该Grid分配面积Area最小的Ground Truth Box。如下图就会分配给球拍:

但是结合FPN结构,将不同大小的GroundTruth分配到不同分辨率输出上,该问题可以得到大大缓解。

3.3 关键知识点——损失计算

FCOS的损失计算函数如下:L({px,y},{tx,y})=1Npos ∑x,yLcls(px,y,cx,y∗)+λNpos∑x,y1{cx,y∗>0}Lreg(tx,y,tx,y∗)+λNpos∑x,y1{cx,y∗>0}Lcenterness(sx,y,sx,y∗)\begin{aligned} L\left(\left\{\boldsymbol{p}_{x, y}\right\},\left\{\boldsymbol{t}_{x, y}\right\}\right) &=\frac{1}{N_{\text {pos }}} \sum_{x, y} L_{\mathrm{cls}}\left(\boldsymbol{p}_{x, y}, c_{x, y}^*\right) \\ &+\frac{\lambda}{N_{\mathrm{pos}}} \sum_{x, y} \mathbb{1}_{\left\{c_{x, y}^*>0\right\}} L_{\mathrm{reg}}\left(\boldsymbol{t}_{x, y}, \boldsymbol{t}_{x, y}^*\right) \\ &+\frac{\lambda}{N_{\mathrm{pos}}} \sum_{x, y} \mathbb{1}_{\left\{c_{x, y}^*>0\right\}} L_{\mathrm{centerness}}\left(\boldsymbol{s}_{x, y}, \boldsymbol{s}_{x, y}^*\right) \end{aligned} L({px,y},{tx,y})=Npos1x,yLcls(px,y,cx,y)+Nposλx,y1{cx,y>0}Lreg(tx,y,tx,y)+Nposλx,y1{cx,y>0}Lcenterness(sx,y,sx,y)其中分类损失LclsL_{\mathrm{cls}}Lcls采用的BECLoss+FocalLoss,回归损失LregL_{\mathrm{reg}}Lreg和中心度损失LcenternessL_{\mathrm{centerness}}Lcenterness损失只计算正样本下的损失。回归损失LregL_{\mathrm{reg}}Lreg为GIoULoss,而LcenternessL_{\mathrm{centerness}}Lcenterness损失为BCELoss。

4. YOLOX

YOLOX发表于2021年,原论文名为《YOLOX: Exceeding YOLO Series in 2021》,YOLOX相对于之前的YOLO版本的一些的亮点在于:Anchor-Free,Decoupeld Detection Head和Advanced Label Assigning Strategy。与SOTA方法对比如下,相对于YOLO v5是有一定的提升:

4.1 关键知识点——网络结构及特点

YOLOX的Backbone的和YOLO v5的Backbone是一摸一样的,对YOLO v5 BackBone不熟悉的同学可以参考计算机视觉算法——目标检测网络总结,该Backbone主要的特点是使用CSP-Darknet53、SPPF和CSP-PAN的模块或者结构。

YOLOX采用的Decoupled Head,这与YOLO v5的Coupled Head的区别如下图所示:

其中Coupled Head和Decoupled Head具体区别是:

  1. Coupled Head通过一个1×11\times11×1的卷积最后输出维度为N×(C+4+1)N\times(C+4+1)N×(C+4+1)的预测结果,并且不同分辨率的检测头参数共享。而Decouple Head是分别通过三个ConvBNSiLU模块和1×11\times11×1的卷积后分别输出C,4,1C, 4, 1C,4,1的预测结果,分别对应类别、位置参数和IoU,其中IoU具体指的在训练过程中是如果该某样本被划分为正样本时,那么IoU的GroundTruth为1,而如果该Head预测为负样本时,那么IoU的GroundTruth为0。
  2. 在Coupled Head中不同分辨率下的参数共享,而Decouple Head在不同分辨率下参数不共享。
  3. Coupled Head中预测的四个位置信息是和对应的Anchor强相关的,而Decoupled Head中使用的Anchor Free的思想,其预测的位置信息计算公式如下所示:xcenter =cx+txx_{\text {center }}=c_x+t_x xcenter=cx+txycenter =cy+tyy_{\text {center }}=c_y+t_y ycenter=cy+tyw=etww=e^{t_w} w=etwh=ethh=e^{t_h} h=eth其中tx,ty,tw,tht_x,t_y,t_w,t_htx,ty,tw,th为网络输出参数,cx,cyc_x,c_ycx,cy对应栅格的左上角坐标

论文中指出使用Decoupled head不但使得收敛速度变快,同时使得AP也有所提升:

4.2 关键知识点——正负样本匹配

YOLOX中使用的正负样本匹配的是SimOTA,SimOTA是OTA(Optimal Transport Assignment)简化得到的,OTA对应的论文名为《Optimal transport assignment for object detection》,目的是将匹配正负样本的过程看成一个最优传输问题,和DETR中的匹配方法区别是,在DETR中预测结果和真值是一对一匹配,而在SimOTA中预测结果和真值是多对一匹配。下面我们来具体看下:

首先为什么要左SimOTA呢,主要是为不同的目标设定不同数量的正样本数,假如我们在一张图中同时检测一个人和一个网球,如果在人和网球设置相同多的正样本,因为人和网球的大小有着明显的区别,因此要么人就只有一两个正样本,要么网球就会很多低质量的正样本,这样肯定是不合理的。在FCOS中,将正样本数量和真值Bounding Box的大小关联在一定程度上解决了该问题,而SimOTA则是将这一解决方案做得更加细致了。

SimOTA步骤如下:

  1. 确定正样本候选区域;
  2. 计算每个正样本对Ground Truth的Regression Loss和Class Loss作为匹配的Cost;
  3. 获取每个Ground Truth分配到的正样本数,具体操作是计算IOU大小前10的的样本,将前10样本的IOU相加取整则得到Dynamic_K,即Ground Truth应该分配到的正样本数。
  4. 为每个Ground Truth取Cost最小的前Dynamic_K个样本作为正样本。
  5. 人工去掉同一个样本被分配到多个Ground Truth的正样本的情况。

这里我们来理解下第3步中的Dynamic_K的原理,其实很好理解,还是以人和网球的例子为例,同样分辨率的特征图上,与人的Ground Truth IOU较大的预测值肯定较多,因此按照第3步计算出来的Dynamic_K肯定就大,人获得的正样本就多。

如下表所示,SimOTA给网络带来了2.3个点的AP提升:

4.3 关键知识点——损失计算

由于在网络检测头中有类别、位置参数和IoU三个分支,因此损失由Lcls、Lreg、LiouL_{cls}、L_{reg}、L_{iou}LclsLregLiou这三部分组成:Loss=Lcls+λLreg+LiouNposL o s s=\frac{L_{c l s}+\lambda L_{r e g}+L_{iou}}{N_{p o s}} Loss=NposLcls+λLreg+Liou其中Lcls、LiouL_{cls}、L_{iou}LclsLiou由BCELoss,而LregL_{reg}Lreg采用的是IoULoss,还需要注意的是,Lcls、LregL_{cls}、L_{reg}LclsLreg只计算正样本损失,而LiouL_{iou}Liou既计算正样本损失有计算负样本损失,其实可以理解为我们先判断这里是否存在物体,然后再看物体的类别和位置。NposN_{pos}Npos指的是被划分为正样本的Anchor Point数。

以上就是我对几篇Anchor Free的方法的总结,有问题欢迎交流~

计算机视觉算法——基于Anchor Free的目标检测网络总结相关推荐

  1. 计算机视觉:基于YOLO-V3林业病虫害目标检测

    计算机视觉:基于YOLO-V3林业病虫害目标检测 卷积神经网络提取特征 根据输出特征图计算预测框位置和类别 建立输出特征图与预测框之间的关联 计算预测框是否包含物体的概率 计算预测框位置坐标 计算物体 ...

  2. 基于体素的3D目标检测网络:VoxelNet

    VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection 简介 本项目基于PaddlePaddle框架复现了基于体 ...

  3. 13篇基于Anchor free的目标检测方法

    内容简介:作者 | 黄浴 本文转载自:http://mp.weixin.qq.com/s?__biz=MzI5MDUyMDIxNA==&mid=2247489025&idx=2& ...

  4. 【Detectron2】使用 Detectron2 训练基于 coco 数据集的目标检测网络

    文章目录 一.安装 Detectron2 二.软连接 coco 数据集 三.训练 四.数据集相关参数 五.输出结果路径 六.COCO 数据集简介 七.模型相关参数 八.可视化结果 一.安装 Detec ...

  5. 计算机视觉算法——基于Transformer的目标检测(DETR / Deformable DETR / DETR 3D)

    计算机视觉算法--基于Transformer的目标检测(DETR / Deformable DETR / DETR 3D) 计算机视觉算法--基于Transformer的目标检测(DETR / Def ...

  6. 病虫害模型算法_基于深度学习的目标检测算法综述

    sigai 基于深度学习的目标检测算法综述 导言 目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是机器视觉领域的核心问题之一.由于各类物体有不同的外观,形状,姿态,加上成像 ...

  7. 综述 | 基于深度学习的目标检测算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:计算机视觉life 导读:目标检测(Object Det ...

  8. 计算机视觉算法——目标检测网络总结

    计算机视觉算法--目标检测网络总结 计算机视觉算法--目标检测网络总结 1. RCNN系列 1.1 RCNN 1.1.1 关键知识点--网络结构及特点 1.1.2 关键知识点--RCNN存在的问题 1 ...

  9. 基于深度学习的目标检测算法综述(一)

    基于深度学习的目标检测算法综述(一) 基于深度学习的目标检测算法综述(二) 基于深度学习的目标检测算法综述(三) 本文内容原创,作者:美图云视觉技术部 检测团队,转载请注明出处 目标检测(Object ...

最新文章

  1. 网页上加在线客服代码QQ,MSN,skype,goolge TALK,雅虎通,贸易通,淘宝旺旺
  2. python四种数值交换方法
  3. source insight和vim同时使用
  4. 六、最通俗易懂的JavaScript进阶教程(二)
  5. 深入浅出设计模式原则之单一原则(SRP)
  6. 开源 免费 java CMS - FreeCMS1.9 移动APP管理 执行配置
  7. [Java]Thinking in Java 练习2.12
  8. [SharePoint]如何防止从代码跳到“拒绝访问”页面
  9. 微信又一期待已久的功能上线:是手残党的福音了
  10. keil5图标变成白色_平面设计:创建万圣节图标
  11. Windows10部署Kubenetes详细步骤
  12. 将文件保存到数据库中
  13. cmd命令打开文本文档_Windows常用CMD网络命令
  14. python3 Excel转txt
  15. 第十一章 卡米洛特的黑暗时代
  16. matlab右上角星号怎么打出来,星号怎么打出来(教你怎么输入特殊符号)
  17. oracle latch等待,latch等待事件汇总
  18. keil5的安装详解(看完必会,不会你打我)
  19. 星河麒麟V10 安装达梦数据库DM8教程
  20. C语言 char 和 signed char的区别

热门文章

  1. c语言intrins函数,【转载】KEIL C 头文件INTRINS.H中的几个函数说明
  2. 北京市中 高英语听说计算机考,北京市教育委员会关于听力及言语障碍考生参加2019年中考英语听说计算机考试有关事项的通知...
  3. cocoscreator数字增长动画
  4. 2019秋招c++个人面经集合(包含cvte,bigo,老虎,网易,拼夕夕等)
  5. macbookpro接口叫什么_Macbook Pro有什么接口
  6. slurm作业调度集群搭建及配置
  7. java总是标点符号报错_[javamail]AUTH LOGIN failed;Invalid username or password报错
  8. Revit开发 - 显示(ShowElements)
  9. 蓝桥杯单片机12届第二场
  10. 评选最牛群主v1.0(哈工大Mooc)