0%

论文链接:https://arxiv.org/abs/1612.03144


FPN 创新点

  • 低层特征信息与高层语义信息的特征融合
  • 有利于小目标的检测

写在前面的话

FPN的全称是Feature Pyramid Networks[特征金字塔网络], 图像金子塔是什么?图像金字塔其实在很早便被提出,像比如SIFT,SURF,HOG等传统的特征提取方法均使用了图像金字塔,想了解传统特征提取方法的参考博文http://wanglichun.tech/algorithm/Sift.html,但是在深度学习中,一直没有被使用,其实主要原因在于深度学习中图像的计算量较大,采用金字塔,多一个scale就相当于多了一倍的计算量,这个时候内存很有可能扛不住了,可是为了达到多尺度的检测该怎么办呢?

阅读全文 »

Mask R-CNN是He Kaiming大神2017年的力作,其在进行目标检测的同时进行实例分割,取得了出色的效果,其在没有任何trick的情况下,取得了COCO 2016比赛的冠军。其网络的设计也比较简单,在Faster R-CNN基础上,在原本的两个分支上(分类+坐标回归)增加了一个分支进行语义分割,如下图所示:

阅读全文 »

论文链接:https://arxiv.org/abs/1708.02002

代码链接:https://github.com/facebookresearch/Detectron


摘要

为什么two stage方法的精度要比one stage算法的精度高?
因为two stage方法使用了rpn网络产生了较好的候选区域,而one stage方法,由于采用了固定的滑框去产生prior,所以较为规律和稠密,因此影响了精度。究其原因,是前景和背景的类别不均衡产生的。

阅读全文 »

知识点总结
  • 首先利用Selective Search方法提取Region Proposal
  • Region Proposal缩放后送入到CNN网络,为什么要缩放,因为fc层要求固定大小的输入。
  • CNN提取特征后,送入到后面的SVM进行分类(这里还涉及到难例挖掘)
  • 回归部分,利用4个线性回归,对proposal的坐标计算。
  • CNN使用预训练模型,然后在VOC上进行finetune
阅读全文 »

简介

笔者也是最近偶然的机会才开始接触TVM,使用过后发现,经过auto-tuning后的TVM模型在速度是竟然超过了TensorRT,并且笔者使用的是MXNet模型,TVM对MXNet绝对的友好,对于Pytorch等模型,可以使用ONNX,操作一样简单,使用起来基本类似一键操作,本篇文章是笔者对TVM的简单整理,也算是对TVM的入门。

阅读全文 »

DPN是在resneXt,denseNet之后,对resnet系列的进一步创新,作者巧妙的将resnet与denseNet相结合,提出了dual path architectures,构造了DPN网络结构。

那么DPN的创新点有哪些呢?如下:

DPN具有更小的模型以及更少的计算量,具有更好的训练速度。作者在论文中的描述为:[
In particular,on the ImageNet-1k dataset, a shallow DPN surpasses the best ResNeXt-101 with 26% smaller model size, 25% less computational cost and 8% lower memory consumption.]

阅读全文 »

创新点:ResNeXt在ResNet的基础上,结合ResNet的block stack策略以及Inception结构分组卷积的思想,设计aggregrated transformations策略,在不增加模型复杂度的情况下,提高了模型识别的准确率,虽然没有提出特别新奇的网络结构,但是ResNeXt利用更简单的拓扑结构在不增加参数的情况下取得更好的效果,值得借鉴与思考。**其实resnext仅仅就是利用了group convolution,降低了网络的参数量,但是同时,增加了channel,发挥channel的效果,使得resnext的效果得到了一定的提升.

阅读全文 »

排序算法总结

详细参考链接,寒小阳CSDN

快速排序

介绍:主要就是partition过程。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
quickSort(int arr[], int left,int right)  
{
if(left < right)
{
int mid = partition(arr,left,right);
quickSort(arr,left,mid-1);
quickSort(arr,mid+1,right);
}
}

int partition(int arr[],int left, int right)
{
if(right <= left)
return left;
int key = arr[left];
while(left < right)
{
while(arr[right] > key) right--;
arr[right] = arr[left];
while(arr[left] < key) left++
arr[left] = arr[right];
}
arr[left] = key;
return left;
}
阅读全文 »