
实例分割
文章平均质量分 88
汐梦聆海
過去を捨てなくては 未来の場所がない
展开
-
论文阅读《PointRend: Image Segmentation as Rendering》
CVPR20的实例分割文章,Kaiming老师出品。MotivationMask RCNN一类的实例分割模型得到的mask分辨率太低,因此导致了mask非常粗糙。为了解决这个问题,作者希望在Mask RCNN预测出粗糙的mask以后,对其进行refine。受图形学中rendering的启发,作者提出了PointRend模型。本质上属于一种新型的上采样方法,通过在mask边缘采样一系列hard的点,逐渐对边缘进行优化,最终得到分辨率高的mask。个人感觉与图形学中的渲染结合有点说故事的味道,完全可以抛开r原创 2021-05-15 18:31:57 · 1062 阅读 · 2 评论 -
论文阅读《Look Closer to Segment Better: Boundary Patch Refinement for Instance Segmentation》
论文链接:https://arxiv.org/pdf/2104.05239.pdfMotivationCVPR21上一篇关于实例分割的文章。对于Mask RCNN来说,其最终得到的mask分辨率太低,因此还原到原尺寸的时候,一些boundary信息就显得非常粗糙,导致预测生成的mask效果不尽如人意。而且处于boundary的pixel本身数量相比于整张image来说很少,同时本身难以做分类。现有的一些方法试图提升boundary quality,但预测mask边界这个task本身的复杂度和segmen原创 2021-05-10 15:59:16 · 1872 阅读 · 2 评论 -
论文阅读《STEm-Seg: Spatio-temporal Embeddings for Instance Segmentation in Videos》
论文链接:https://arxiv.org/abs/2003.08429STEmSeg是ECCV20上的一篇文章,做的是Video Instance Segmentation(VIS),提出了一种可以end-to-end的方法,大大简化了VIS的pipeline,同时在很多数据集上达到了SOTA。过去很多经典的方法都遵循top-down模式,即仿照MOT里的tracking-by-detection的范式。这类方法通常会利用多个模型,先做单张image的检测,再做帧之间的association,对于o原创 2021-04-25 16:56:39 · 1230 阅读 · 2 评论 -
SOLO训练代码解析
之前写过对SOLO demo的代码解析,今天来梳理一下training过程。首先是tools/train.py,这个文件是训练的开始,命令行运行的就是该文件:from mmdet.apis import set_random_seed, train_detectordef main(): args = parse_args() cfg = Config.fromfile(args.config) # set cudnn_benchmark if cfg.get('c原创 2021-04-16 01:05:41 · 2104 阅读 · 4 评论 -
「损失函数loss」检测分割跟踪常见的Loss合集
Cross Entropy Loss交叉熵损失函数是分类中非常经典的一种loss,其计算公式如下:LCE=−ylog(y′)−(1−y)log(1−y′)L_{CE}=-y log(y')-(1-y)log(1-y')LCE=−ylog(y′)−(1−y)log(1−y′)其中y表示某个类别上的GT(值为0或1),y‘表示经过神经网络预测得到的对应类别的置信度(因为做过softmax处理,所以值在(0,1)之间)。当y=0时,上式中只有第二项,此时y‘越接近于0,则loss越小;当y=1时,上式只有原创 2021-04-11 17:10:38 · 4211 阅读 · 1 评论 -
论文阅读CondInst《Conditional Convolutions for Instance Segmentation》
论文链接:http://xxx.itp.ac.cn/pdf/2003.05664v3CondInst是ECCV20上的一篇关于实例分割的文章,个人感觉和YOLACT的思路有相似之处(CondInst最后的处理更加直接简洁)。作者将全卷积网络应用在实例分割的task上,通过采用动态生成的conditional convolution,解决了之前全卷积网络在实例分割上不work的问题。涉及的问题作者首先分析了经典的Mask RCNN的问题:(1)由于采用bbox先做框定,所以对于一些不规则的instanc原创 2021-04-10 19:23:16 · 3700 阅读 · 1 评论 -
SOLO代码踩过的各种坑
一、ValueError: numpy.ufunc size changed, may indicate binary incompatibility.解决方案:numpy版本过高,输入如下三行命令:pip uninstall numpypip install numpy==1.14.5pip install --upgrade numpy二、RuntimeError: expected device cuda:0 and dtype Float but got device cuda:0这个原创 2021-04-09 00:20:51 · 1679 阅读 · 1 评论 -
论文阅读《PolarMask: Single Shot Instance Segmentation with Polar Representation》
论文链接:https://arxiv.org/pdf/1909.13226.pdfPolarMask是发表在CVPR20上的一篇文章,基于FCOS,把实例分割统一到了FCN的框架下。与Mask RCNN不同,PolarMask是通过寻找物体的counter进行建模,以得到实例的mask,如下图所示:上图(a)为原图像;(b)为Mask RCNN一类的分割方法,在bbox中对每一个pixel进行分类;(c)为直角坐标系下的counter建模;(d)为极坐标系建模轮廓(即本文PolarMask的建模方式)原创 2021-04-07 21:01:46 · 930 阅读 · 1 评论 -
YOLACT论文阅读笔记
论文:YOLACT Real-time Instance Segmentation链接:https://arxiv.org/abs/1904.02689一篇非常经典的instance segmentation的论文,出自ICCV19。文章提出了一种One Stage实例分割的方法,解决了之前主流的Two Stage实例分割(如Mask RCNN)无法实现real time的缺点。实例分割从Two Stage拓展到One Stage并不像目标检测那样简单,因为实例分割在产生mask时需要进行featur原创 2021-04-02 21:58:39 · 1450 阅读 · 1 评论 -
SOLO代码阅读解析
SOLO是一种直接预测instance mask的范式,摒弃了之前top-down和bottom-up两种主流的实例分割方法,从而pipeline更加简洁直观。这篇文章以官方代码中的demo为例,简单梳理一下SOLO在inference时的流程。整个代码基于mmdetection。首先是demo.inference_demo.pyconfig_file = '../configs/solo/decoupled_solo_r50_fpn_8gpu_3x.py'# download the checkpo原创 2021-04-01 23:34:19 · 4120 阅读 · 14 评论 -
实例分割之SOLOv2
SOLOv2是基于SOLO的改进,SOLO首次提出了直接预测instance mask的范式,但其有如下三个缺点:(1)mask的表示和学习不充分;(2)预测得到的mask分辨率不够高;(3)后处理的NMS太耗时。基于此,作者在SOLO的基础上做出了两点改进:(1)采用dynamic卷积的思想,使得网络能够根据位置信息动态地分割实例;(2)提出了Matrix NMS,大大提高了后处理的速度;下面对这两点分别进行解读:Dynamic Instance Segmentation从上图可以看出原创 2021-03-25 21:12:48 · 2915 阅读 · 1 评论 -
论文解读《SOLO: Segmenting Objects by Locations》
实例分割属于比较challenging的任务,他相当于是object detection和semantic segmentation的结合体。在SOLO出现之前,有两种常用的paradigm:(1)top-down:先进行目标检测,再对检测框做分割,经典的方法有Mask RCNN、PANet、TensorMask等;(2)bottom-up:让每一个像素学习到一个embedding,拉近相同instance像素之间的embedding的距离,推远不同instance像素之间embedding的距离,最后根据原创 2021-03-22 21:24:16 · 2275 阅读 · 6 评论