detectron

Detectron:Pytorch-Caffe2-Detectron的一些跟进

牧云@^-^@ 提交于 2021-02-15 02:26:52
pytorch官网: http://pytorch.org/ 上只有PyTroch的ubuntu和Mac版本,赤裸裸地歧视了一把Windows低端用户。 1. Caffe源码: Caffe源码理解之存 储 Caffe2存储 Caffe2中的存储结构层次从上到下依次是Workspace, Blob, Tensor。Workspace存储了运行时所有的Blob和实例化的Net。Blob可以视为对任意类型的一个封装的类,比如封装Tensor, float, string等等。Tensor就是一个多维数组,这个Tensor就类似于Caffe1中的Blob。Caffe2中真正涉及到分配存储空间的调用则在Context中,分为CPUContext和CUDAContext。下面按照从下到上的顺序分析一下Caffe2的存储分配过程。 Context Tensor Blob Workspace 总结 总结 下面是Operator中从创建Blob到实际分配空间的流程,这个图是怎么画出来的呢 : 2.Caffe2 Detectron的使用 初步 关于InferImage: 在 NVIDIA Tesla P100 GPU 上,单张图片的推断时间大概是 130-140ms.当然这与输入图像的参数设置size有关。 2. Detectron 训练 简单介绍在 COCO Dataset 上训练模型. 采用

Detectron2(AdelaiDet)加载COCO格式自定义数据集

喜欢而已 提交于 2020-12-24 09:20:51
测试环境: OS: Win10 CUDA: 11.0 pytorch: 1.7.1 GPU: 3060Ti python:3.8 Detectron: 0.3(笔者可以在win环境成功编译安装detectron2 Detectron2模型数量虽然比mmdetection少,不过有些论文还是用Detectron2做的,因此有必要了解一下如何用Detectron2训练自定义数据集。 关于mmdetection下训练coco格式的自定义数据请移步笔者另一篇博文: mmdetection-v2.3安装配置及训练自定义数据集 以笔者目前的经验来看,要想对自己领域内的图像做目标检测任务,最好的方法是制作成COCO格式数据集,个人习惯用labelimg先制作成voc格式,然后用脚本转换为coco格式,转换脚本可见笔者的github库: https://github.com/ouening/OD_dataset_conversion_scripts 。制作成COCO格式的好处是目前大部分OD框架都支持该数据格式,直接调用API或者简单修改就可以用,当然VOC格式也是基本都支持的,但是COCO在指标评价上更加丰富,VOC只有传统的mAP,COCO指标有AP,AP0.5,AP0.75,APs,APm,APl,AR1,AR10,AR100等。 下面以AdelaiDet(基于Detectron2

Detectron2源码阅读笔记-(三)Dataset pipeline

故事扮演 提交于 2020-11-21 11:17:04
构建data_loader原理步骤 # engine/default.py from detectron2.data import ( MetadataCatalog, build_detection_test_loader, build_detection_train_loader, ) class DefaultTrainer(SimpleTrainer): def __init__(self, cfg): # Assume these objects must be constructed in this order. data_loader = self.build_train_loader(cfg) ... @classmethod def build_train_loader(cls, cfg): """ Returns: iterable """ return build_detection_train_loader(cfg) 函数调用关系如下图: 结合前面两篇文章的内容可以看到detectron2在构建model,optimizer和data_loader的时候都是在对应的 build.py 文件里实现的。我们看一下 build_detection_train_loader 是如何定义的(对应上图中 紫色方框内 的部分( 自下往上 的顺序)): def build

torchline:让Pytorch使用的更加顺滑

生来就可爱ヽ(ⅴ<●) 提交于 2020-11-21 04:17:51
torchline地址: https://github.com/marsggbo/torchline 相信大家平时在使用Pytorch搭建网络时,多少还是会觉得繁琐,因为我们需要搭建数据读取,模型,训练,checkpoints保存等等一系列模块。每当切换到新的任务后很多情况下之前的代码不能复用,或者说要复用就需要做很多地方的修改,到最后还不如重新写一遍。所幸,pytorch_lightning让这一过程简化了很多,相信如果你用过这个库你也会体验到它的方便性。但是torchline的存在是让你使用Pytorch更加的顺滑舒畅。 torchline基于 pytorch_lightning (PL) 开发,整个库的结构设计借鉴了 detectron2 ,具体可以阅读下面几篇文章进行了解: Detectron2源码阅读笔记-(一)Config&Trainer Detectron2源码阅读笔记-(二)Registry&build_*方法 Detectron2源码阅读笔记-(三)Dataset pipeline 如下图所示,灰色部分 PL 可以自动完成。我们需要做的,差不多也就加载数据、定义模型、确定训练和验证过程 torchline 则进一步简化,而且可以让你的模型复用性更高。 以构建模型为例进行大致的介绍(细节可以去github查看),假如你之前创建了一个 MyModel 的模型

Docker 安装 detectron2

孤街浪徒 提交于 2020-11-18 20:29:23
系统环境:Ubuntu 16.04.4 安装流程 从 Docker 容器官网 pull 容器镜像文件: nvidia/cuda:10.1-cudnn7-devel $ docker pull nvidia/cuda:10.1-cudnn7-devel 10.1-cudnn7-devel: Pulling from nvidia/cuda 7ddbc47eeb70: Already exists c1bbdc448b72: Already exists 8c3b70e39044: Already exists 45d437916d57: Already exists d8f1569ddae6: Pull complete 85386706b020: Pull complete ee9b457b77d0: Pull complete be4f3343ecd3: Pull complete 30b4effda4fd: Pull complete b398e882f414: Pull complete Digest: sha256:557de4ba2cb674029ffb602bed8f748d44d59bb7db9daa746ea72a102406d3ec Status: Downloaded newer image for nvidia/cuda:10.1-cudnn7-devel

无限想象空间,用Python玩转3D人体姿态估计

别说谁变了你拦得住时间么 提交于 2020-10-17 07:53:24
前言 姿态估计,一直是近几年的 研究热点 。 它就是根据画面,捕捉人体的运动姿态,比如 2D 姿态估计: 再比如 3D 姿态估计: 看着好玩, 那这玩应有啥用呢 ? 自动驾驶 ,大家应该都不陌生,很多公司研究这个方向。 自动驾驶里,就用到了 人体行为识别 。 通过摄像头捕捉追踪人体的动作变化,根据肢体动作或变化角度判断人体动作行为,可用于无人车、机器人、视频监控等行为分析需求场景。 而这些的基础,就是人体的姿态估计。 再比如, 虚拟形象 。 通过 真人驱动 ,让虚拟形象具备类比真人的肢体动作,并支持与3D人脸特效、手势识别等功能结合应用,让虚拟形象更加灵活生动,可用于虚拟IP驱动、肢体驱动类游戏、远程授课或播报等场景。 姿态估计,无疑有着巨大的 应用价值 。 但今天,咱们说的这个算法,比上文提到的,还要酷炫一些! 它就是 FrankMocap。 FrankMocap FrankMocap 是港中文联合 Facebook AI 研究院提出的 3D 人体姿态和形状估计 算法 。 不仅仅是估计人体的运动姿态,甚至连 身体的形状 , 手部的动作 都可以一起计算出来。 算法很强大,能够从 单目视频 同时估计出 3D 人体和手部运动,在一块 GeForce RTX 2080 GPU 上能够达到 9.5 FPS。 缺点就是,速度有点慢,计算量较大,达到实时性有一定难度。 不过随着硬件的快速发展

Detectron2 开始训练 | 八

你离开我真会死。 提交于 2020-08-20 07:05:17
作者|facebookresearch 编译|Flin 来源|Github 训练 从前面的教程中,你现在可能已经有了一个自定义模型和数据加载器。 你可以自由创建自己的优化器,并编写训练逻辑:使用PyTorch通常很容易,并且使研究人员可以看到整个训练逻辑更清晰并具有完全控制权。 tools/plain_train_net.py中提供了一个这样的示例。 (tools/plain_train_net.py: https://github.com/facebookresearch/detectron2/blob/master/tools/plain_train_net.py ) 我们还提供了标准化的"trainer"抽象,最小hook系统( https://detectron2.readthedocs.io/modules/engine.html#detectron2.engine.HookBase ) ,这有助于简化标准的训练类型。 你可以使用 SimpleTrainer().train() ,它为单次成本单优化器单数据源训练提供了最小的抽象。内置 train_net.py 脚本使用 DefaultTrainer().train(),它包含一个人们可能希望选择的更多标准默认行为。这也意味着它不太可能支持你在研究过程中可能想要的一些非标准行为。 SimpleTrainer().train

Detectron2 API 之 checkpoint | 十四

不打扰是莪最后的温柔 提交于 2020-08-17 13:41:43
作者|facebookresearch 编译|Flin 来源|Github detectron2.checkpoint软件包 class detectron2.checkpoint.Checkpointer(model: torch.nn.modules.module.Module, save_dir: str = '', *, save_to_disk: bool = True, **checkpointables) 源代码: https://detectron2.readthedocs.io/_modules/fvcore/common/checkpoint.html#Checkpointer 基类: object 可以保存/加载模型以及其他可检查点对象的检查点。 __init__(model:torch.nn.modules.module.Module,save_dir:str ='',*,save_to_disk:bool = True,** checkpointables ) 参数: model(nn.Module):模型。 save_dir(str):保存和查找检查点的目录。 save_to_disk(bool):如果为True,则将检查点保存到磁盘,否则禁用此检查点的保存。 checkpointables(object):任何可检查点的对象,即具有state_dict

Detectron2 入门 | 二

雨燕双飞 提交于 2020-08-15 04:20:41
作者|facebookresearch 编译|Flin 来源|Github Detectron2入门 本文档简要介绍了detectron2中内置命令行工具的用法。 有关涉及使用API​​进行实际编码的教程,请参阅我们的Colab Notebook( https://colab.research.google.com/drive/16jcaJoc6bCFAQ96jDe2HwtXj7BMD_-m5 ) ,其中涵盖了如何对现有模型进行推断,以及如何在自定义数据集上训练内置模型。 有关更高级的教程,请参阅我们的文档( https://detectron2.readthedocs.io/tutorials/extend.html )。 预训练模型的推理演示 从模型Zoo( https://github.com/facebookresearch/detectron2/blob/master/MODEL_ZOO.md ) 中选择一个模型及其配置文件 ,例如 mask_rcnn_R_50_FPN_3x.yaml 。 我们提供 demo.py 能够运行内置标准模型的工具。使用以下命令运行它: python demo/demo.py --config-file configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml \ --input

Detectron2 API 之 checkpoint | 十四

穿精又带淫゛_ 提交于 2020-08-12 18:36:34
作者|facebookresearch 编译|Flin 来源|Github detectron2.checkpoint软件包 class detectron2.checkpoint.Checkpointer(model: torch.nn.modules.module.Module, save_dir: str = '', *, save_to_disk: bool = True, **checkpointables) 源代码: https://detectron2.readthedocs.io/_modules/fvcore/common/checkpoint.html#Checkpointer 基类: object 可以保存/加载模型以及其他可检查点对象的检查点。 __init__(model:torch.nn.modules.module.Module,save_dir:str ='',*,save_to_disk:bool = True,** checkpointables ) 参数: model(nn.Module):模型。 save_dir(str):保存和查找检查点的目录。 save_to_disk(bool):如果为True,则将检查点保存到磁盘,否则禁用此检查点的保存。 checkpointables(object):任何可检查点的对象,即具有state_dict