深度学习
叫我西瓜超人
计算机幻觉与人工智障。
展开
-
解读《Bridging the Gap Between Anchor-based and Anchor-free Detection》
张士峰大佬近期发了一篇论文解读Anchor-base和Anchor-free方法间的差别,其本质在于正负样本的选取方式不同。论文:《Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection》链接:https://arxiv.org/abs/19...原创 2019-12-18 10:51:35 · 9668 阅读 · 2 评论 -
解读Gaussian YOLOv3:终于有人对bbox的可靠性做文章了
对于目标检测,大家在网络结构上,IOU上,Anchor上做了大量文章,这篇文章优秀的地方在于提出了针对于bbox可靠性的想法,想到了用高斯模型来评估bbox坐标的可靠性,提出了一种新的计算bbox的loss。高斯模型首先回顾一下最原始的YOLOv3:对于输出feature,每个点输出3×((tx, ty, tw, th)+ obj_score + class_score)个信息。其...原创 2019-11-28 18:54:15 · 3414 阅读 · 5 评论 -
一种新的特征融合方式:《Learning Spatial Fusion for Single-Shot Object Detection》解读
本篇文章最大的创新点是提出了一种新的特征融合的方式ASFF,通过学习权重参数的方式将不同层的特征融合到一起,作者证明了这样的方法要优于通过concatenation或者element-wise的方式。代码:https://github.com/ruinmessi/ASFF一个更强的YOLOv3 baseline其实整篇文章能取得如此优秀的效果并不仅仅在于加入了ASFF这种自适应特征...原创 2019-11-27 18:11:28 · 15019 阅读 · 4 评论 -
关于batch normalization究竟做了什么?
昨天同事们突然讨论起了Batch Normalization的问题,大家从internal covariate shift的角度讨论了半天,结果突然间懵逼了,陷入了“道理我都懂,但是为什么会有效的?”的状态,这个问题不弄明白感觉彻夜难眠了。于是下班后赶紧又第N遍的研究了一下bn这个操作,得到了一些有解释性的答案,在这里记录和分享一下。关于Internal Covariate Shift相信...原创 2019-08-02 11:48:54 · 524 阅读 · 0 评论 -
Pytorch torchvision构建Faster-rcnn(二)----基础网络
torchvision中提供了通过Resnet + FPN的方式构建基础网络,这里以resnet50为例实现基础网络的构建。目录BackboneWithFPNIntermediateLayerGetterFeaturePyramidNetworkBackboneWithFPN类BackboneWithFPN的在backbon_utils.py中,功能是给骨干网络加上FPN,...原创 2019-08-19 11:35:28 · 8378 阅读 · 9 评论 -
Pytorch torchvision构建Faster-rcnn(一)----coco数据读取
torchvision在更新到0.3版本后,增添了很多新的功能,其中就包括整个目标检测算法/分割算法模块。这里打算将Faster-rcnn代码从torchvision分离出来,并分组件记录下Pytorch torchvision官方实现的Faster-rcnn代码并做记录和注释。注:各个模块的代码均可以在0.3.0+版本的torchvision中找到torchvision github地址...原创 2019-08-14 18:13:19 · 17631 阅读 · 8 评论 -
Pytorch torchvision构建Faster-rcnn(三)----Region Proposal Network
RPN是two-stage的标志性结构,并且其本身也是一个二分类的目标检测网络,因此在faster-rcnn的整个网络结构中能看到anchor的使用,回归和分类等操作,这里讲具体介绍一下。整个rpn部分代码在torchvison/models/detection/rpn.py中,其中定义了RPNHead,AnchorGenerator,RegionProposalNetwork三个模块。目...原创 2019-08-20 11:42:12 · 6754 阅读 · 5 评论 -
Pytorch torchvision构建Faster-rcnn(四)----ROIHead
经过RPN后,我们得到了Classification/Regression loss和Proposal Region,接下来要对得到的loss和proposals做后续处理,其中包括proposal的细分类和再回归,以及ROI Pooling等操作。目录RoIHeadsselect_training_samplesROIAlign poolingbox_head和box_pre...原创 2019-08-26 17:17:15 · 8334 阅读 · 1 评论 -
利用Pytorch torchvision完成Faster-rcnn目标检测demo及源码详解
Torchvision更新到0.3.0后支持了更多的功能,其中新增模块detection中实现了整个faster-rcnn的功能。本博客主要讲述如何通过torchvision和pytorch使用faster-rcnn,并提供一个demo和对应代码及解析注释。目录如果你不想深入了解原理和训练,只想用Faster-rcnn做目标检测任务的demo,请看这里torchvision中Faste...原创 2019-08-27 11:40:13 · 27837 阅读 · 72 评论 -
Pytorch踩坑记之交叉熵(nn.CrossEntropy,nn.NLLLoss,nn.BCELoss的区别和使用)
目录nn.Softmax和nn.LogSoftmaxnn.NLLLossnn.CrossEntropynn.BCELoss总结在Pytorch中的交叉熵函数的血泪史要从nn.CrossEntropyLoss()这个损失函数开始讲起。从表面意义上看,这个函数好像是普通的交叉熵函数,但是如果你看过一些Pytorch的资料,会告诉你这个函数其实是softmax()和交叉熵的结合体...原创 2019-06-06 15:43:09 · 42590 阅读 · 16 评论 -
《FCOS: Fully Convolutional One-Stage Object Detection》阅读笔记
FCOS是典型的one-stage和anchor free结合,并且思路和cornerNet系列的寻找corner不同,借鉴了FCN的思想,通过单个feature上的点来做检测。FCOS摒弃了anchor带来的一些列缺点:用anchor的框架对于anchor的尺寸非常敏感,anchor的尺寸会影响检测的performance。 anchor尺寸的固定导致了对网络对特殊形状的物体鲁棒性较差...原创 2019-05-10 18:49:37 · 4687 阅读 · 0 评论 -
yolov3模型微调相关
这里记录一下关于yolov3做模型微调的相关命令.首次训练都会加载预训练模型darknet53.conv.74,假如首次训练出了模型1,要在模型1的基础上finetuning模型2,当然前提是模型2与模型1之间网络结构没有发生变化,类别也没有增加.(类别增加的话我暂时还不太清楚)这个时候有两种解决方法:1. 使用-clear命令通过模型1训练出的backup或者fina...原创 2018-10-10 19:29:02 · 4262 阅读 · 0 评论 -
一些关于CV和deeplearning的干货链接(长期更新)
目录yolo系列汇总:关于batch normalization的理解:各类归一化方法的总结及代码:YJango的卷积神经网络介绍:目标检测SSD讲解:关于AP PR曲线计算的理解(内附代码,生肉,英文):解释了yolov3的forward和anchor box相关内容关于数据增强的奇淫技巧:一篇超级全的数据增强博客:yolov3 pytorch教程:...原创 2019-11-25 09:01:51 · 42281 阅读 · 0 评论 -
conda安装Pytorch下载过慢解决办法(11月26日更新ubuntu下pytorch1.3安装方法)
目录添加清华源安装PyTorch3月5日更新ubuntu下pytorch1.0.1安装方法(Ubuntu16.04+CUDA9.0+PyTorch1.0.1)7月23日更新ubuntu下pytorch1.1安装方法(通过pip)11月26日更新ubuntu下pytorch1.3安装(通过conda)pytorch最近已经更新到了稳定版本的1.0.1,从Pytorch官网上可...原创 2019-03-04 16:31:31 · 132984 阅读 · 75 评论 -
RetinaNet阅读笔记
《Focal Loss for Dense Object Detection》是Facebook AI 2017年提出的论文,这篇文章的贡献我觉得主要有两点:提出了one-stage 目标检测模型RetinaNet 探究了one-state目标检测的类别失衡问题,并针对该问题提出了Focal Loss类别失衡为什么two-stage目标检测强于one-stageIn this p...原创 2019-03-25 17:16:37 · 684 阅读 · 0 评论 -
CornerNet训练不完全指南
简介CornerNet是ECCV2018的一篇one-stage目标检测的文章,在coco上达到了42.1的AP,在当时是one-stage目标检测的SOTA,文章比较亮眼的两个点: 抛弃传统的anchor,通过左上角及右下角坐标点来估计目标位置。 全新的Corner Pooling方法 网络结构如下:从左至右:骨干网络Hourglass、左上/右下两个角点预测分支、每...原创 2019-04-09 15:38:53 · 5599 阅读 · 21 评论 -
RefineDet 阅读笔记
RefineDet是CVPR2018的一篇论文,是一种one-stage的目标检测方法。RefineDet借鉴了two-stage中RPN的想法,在精度大幅提升的基础上也有着非常优秀的速度,毕竟速度才是one-stage的优势所在。本篇记录下看过RefineDet论文和相关资料后的一些重要信息,供日后翻阅。原创 2019-04-14 17:12:19 · 435 阅读 · 0 评论 -
解决one-stage目标检测正负样本不均衡的另类方法--Gradient Harmonized
正负样本不均衡问题一直是One-stage目标检测中被大家所诟病的地方,He Keming等人提出了Focal Loss来解决这个问题。而AAAI2019上的一篇论文《Gradient Harmonized Single-stage Detector》则尝试从梯度分部的角度,来解释样本分步不均衡给目one-stage目标检测带来的瓶颈本质,并尝试提出了一种新的损失函数:GHM(Gradient H...原创 2019-04-19 18:21:10 · 7541 阅读 · 0 评论 -
《Region Proposal by Guided Anchoring》阅读笔记
《Region Proposal by Guided Anchoring》来自CVPR2019,非anchor-free时代中anchor在多数目标检测算法中都起到了重要的作用,本篇提出了一种新的anchor生成方法 ,不同于之前的固定 anchor或者根据数据集聚类anchor的方法,通过guided anchoring可以预测anchor的形状和位置得到稀疏的anchor,以及作者提出了Fea...原创 2019-05-06 09:36:23 · 4842 阅读 · 0 评论 -
Yolov3转化Caffe框架详解
前些日子因工程需求,需要将yolov3从基于darknet转化为基于Caffe框架,过程中踩了一些坑,特在此记录一下。1.Yolov3的网络结构想要转化为Caffe框架,就要先了解yolov3的网络结构,如下图。 如果有运行过darknet应该会很熟悉,这是darknet运行成功后打印log信息,这里面包含了yolo网络结构的一些信息。yolov3与v2相比,网络结构...原创 2018-08-26 21:32:17 · 27081 阅读 · 59 评论