笔记
文章平均质量分 62
SealedHeart
这个作者很懒,什么都没留下…
展开
-
Anchor Free系列模型13
2021SC@SDUSCCenterNet训练自己的数据集(接上文)注意这里json文件的命名要通过datasets/pascal.py中第44到48行的内容确定的。self.data_dir = os.path.join(data_dir, 'voc')self.img_dir = os.path.join(self.data_dir, 'images')_ann_name = {'train': 'trainval0712', 'val': 'test2007'}self.annot_pat原创 2021-12-27 23:23:59 · 1052 阅读 · 0 评论 -
Anchor Free系列模型12
2021SC@SDUSCCenterNet训练自己的数据集环境配置环境要求:python>=3.5pytorch==0.4.1or 1.1.0 or 1.0.0(笔者用的1.0.0也可以)tensorboardX(可选)配置:将cudnn的batch norm关闭。打开torch/nn/functional.py文件,找到torch.batch_norm这一行,将torch.backends.cudnn.enabled选项更改为False。克隆项目CenterNet_ROOT=/p原创 2021-12-27 23:16:59 · 404 阅读 · 0 评论 -
Anchor Free系列模型11
2021SC@SDUSCCenterNet之loss计算代码解析(接上文)代码解析来自train.py中第173行开始进行loss计算:# 得到heat map, reg, wh 三个变量hmap, regs, w_h_ = zip(*outputs)regs = [_tranpose_and_gather_feature(r, batch['inds']) for r in regs]w_h_ = [_tranpose_and_gather_feature(r, batch['ind原创 2021-12-27 22:59:14 · 501 阅读 · 0 评论 -
Anchor Free系列模型10
2021SC@SDUSCCenterNet之loss计算代码解析网络输出# heatmap 输出的tensor的通道个数是80,每个通道代表对应类别的heatmap(hm): Sequential((0): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(1): ReLU(inplace)(2): Conv2d(64, 80, kernel_size=(1, 1), stride=(1, 1)))# wh原创 2021-12-27 22:55:38 · 866 阅读 · 0 评论 -
Anchor Free系列模型09
2021SC@SDUSCCenterNet的骨干网络之DLASeg(接上文)DLATree是DLA最重要的模块,Tree搞定之后,DLA就按顺序拼装即可。class DLA(nn.Module): ''' DLA([1, 1, 1, 2, 2, 1], [16, 32, 64, 128, 256, 512], block=BasicBlock, **kwargs) ''' def __init__(self, levels, chan原创 2021-12-27 22:42:08 · 391 阅读 · 0 评论 -
Anchor Free系列模型08
2021SC@SDUSCCenterNet的骨干网络之DLASegDLA全称是Deep Layer Aggregation, 于2018年发表于CVPR。被CenterNet, FairMOT等框架所采用,其效果很不错,准确率和模型复杂度平衡的也比较好。CenterNet中使用的DLASeg是在DLA-34的基础上添加了Deformable Convolution后的分割网络。Aggretation聚合是目前设计网络结构的常用的一种技术。如何将不同深度,将不同stage、block之间的信息进行融合原创 2021-12-27 22:36:55 · 1058 阅读 · 0 评论 -
Anchor Free系列模型07
2021SC@SDUSCFCOS核心实现目前FCOS官方代码已经开源在 AdelaiDet,代码基于detectron2框架。这里主要关注FCOS最核心的部分,就是正负样本的定义策略,代码如下:def compute_targets_for_locations(self, locations, targets, size_ranges, num_loc_list): """ Args: locations: [N, 2], 所有FPN层cat后的位置 t原创 2021-12-09 19:07:38 · 1634 阅读 · 0 评论 -
Anchor Free系列模型06
2021SC@SDUSC相比two-stage方法,one-stage的目标检测算法更受追捧。one-stage的模型目前可以分为两大类:anchor-based和anchor-free方法。基于anchor-based的检测模型包括SSD,YOLOv3,RetinaNet等,这些模型需要在每个位置预先定义一系列anchor来预测边界框,整个训练和测试阶段都依赖anchor。基于anchor-free的模型不需要anchor,主要是通过检测关键点来直接预测边界框,如CornerNet是检测物体的左上角和右原创 2021-12-09 19:02:23 · 921 阅读 · 0 评论 -
Anchor Free系列模型05
2021SC@SDUSCCenterNetCenterNet – 核心思想中心点检测问题转化为关键点问题,去除anchor每个位置仅有一个正样本,不再使用NMS十物体尺寸直接预测目标框大小能够扩展至其他任务CebterNet – 预测目标中心点的位置类比Anchor-Based方法与单阶段anchor-based方法相似,每个中心点可以认为是一个不含shape信息的anchor每个物体仅有一个正样本点,不再需要NMS,仅通过提取heatmap上最大值的位置即可采用更大的分辨率进行原创 2021-12-09 18:45:31 · 224 阅读 · 0 评论 -
Anchor Free系列模型02
Anchor Free系列模型简介目前主流的检测算法大体分为两类: single-stage和two-stage,其中single-stage的经典算法包括SSD, YOLO等,two-stage方法有RCNN系列模型,两大类算法在PaddleDetection Model Zoo中均有给出,它们的共同特点是先定义一系列密集的,大小不等的anchor区域,再基于这些先验区域进行分类和回归,这种方式极大的受限于anchor自身的设计。随着CornerNet的提出,涌现了多种anchor free方法,Pa原创 2021-10-24 23:21:58 · 315 阅读 · 0 评论 -
Anchor Free系列模型01
2021SC@SDUSCCornerNet就是将Box转化为关键点描述,即用box左上角和右下角两个点去确定一个box,将问题转化为对top-left和bottom-right两个点的检测与匹配问题。cornerNet是借鉴了多人姿态估计的bottom Mask的思路,像人体姿态估计,分割这些思维任务来说,底层的逻辑就是要给点来打标签,然后再通过这些点组合起来形成上层的语意。授此启发,作者认为对于目标检测的框就等于检测目标框的左上角和右下角的点,然后将他们组合起来。之所以选择角点,是因为角点相比中心点原创 2021-10-17 23:02:12 · 127 阅读 · 0 评论 -
PaddleDetection环境部署与小组分工
2021SC@SDUSCPaddleDetection简介PaddleDetection是基于PaddlePaddle的端到端对象检测开发工具包,可以帮助开发人员在训练模型的整个开发,优化性能和推理速度以及部署模型方面提供帮助。PaddleDetection在模块化设计中提供了各种对象检测体系结构,并提供了丰富的数据增强方法,网络组件,丢失功能等。PaddleDetection支持实际项目,例如工业质量检查,遥感图像对象检测以及具有模型等实际功能的自动检查。压缩和多平台部署。PaddleDetecti原创 2021-09-30 21:25:27 · 231 阅读 · 0 评论