码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Detectron2】代码库学习-1. 概览


    Detectron2

    目录

    • Detectron2
      • 1. 简介
      • 2. 模块化和可扩展性
      • 3. 配置文件系统 Lazy Configs
      • 4. 工程部署
      • 5. 基于Detectron2的部分项目
      • 6. 资源链接

    1. 简介

    Detectron2是Facebook AI Research(FAIR)推出的基于Pytorch的视觉算法开源框架,主要聚焦于目标检测和分割任务等视觉算法,此外还支持全景分割,关键点检测,旋转框检测等任务。Detectron2继承自Detectron 和mask-rcnn。
    Detectron2具有较强的灵活性和可扩展性,支持快速的单GPU训练,多GPU并行训练和多节点分布式训练。


    2. 模块化和可扩展性

    模块化
    Detectron2 将常见的算法组件模块化,通过更换不同的组件可实现不同算法组合和算法任务,如不同的backbone:Resnet,Vit,Swin,再通过可选的Proposals得到图像特征,最后接上不同任务的Head,以支持特定的任务。如图中所示的BBox检测,实例分割,关键点检测,Densepose,语义分割,全景分割。

    3. 配置文件系统 Lazy Configs

    更新的Detectron2采用了非侵入式的配置文件系统,使用起来更为灵活。Config类为key-value形式的字典,可通过python脚本直接得到,该方案相比于传统Yaml配置文件的优点包括:

    • 方便通过python操作
    • 可以写简单的语法,调用简单的函数
    • 使用更多的数据类型
    • 通过python import机制方便导入/导出其他的配置文件

    示例

    # config.py:   配置文件
    a = dict(x=1, y=2, z=dict(xx=1)) # 配置文件字典
    b = dict(x=3, y=4)
    # code.py
    from detectron2.config import LazyConfig
    cfg = LazyConfig.load("path/to/config.py")  # 配置文件加载
    assert cfg.a.z.xx == 1 # 配置获取
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    LazyConfig 通过递归实例化(recursive instantiation)特性将函数和类的调用以字典的形式描述,避免大的配置文件出现在不同位置。

    4. 工程部署

    基于python训练的模型可以通过导出操作成为一个可部署件,在其他的语言(如C++)程序中应用部署。
    Detectron2支持的模型导出方法包括:

    • tracing
    • scripting
    • caffe2_tracing

    导出的模型可以序列化成中间件(intermediate representation)被其他运行时(Runtime)加载和执行。
    Detectron2可以将模型导出为TorchScript格式,通过python和C++运行(依赖Pytorch运行时),此外还可以导出为ONNX模型通过ONNX-runtime运行,同时支持python和C++。

    5. 基于Detectron2的部分项目

    • DensePose: Dense Human Pose Estimation In The Wild
    • Scale-Aware Trident Networks for Object Detection
    • TensorMask: A Foundation for Dense Object Segmentation
    • Mesh R-CNN
    • PointRend: Image Segmentation as Rendering
    • Momentum Contrast for Unsupervised Visual Representation Learning
    • DETR: End-to-End Object Detection with Transformers
    • Panoptic-DeepLab: A Simple, Strong, and Fast Baseline for Bottom-Up Panoptic Segmentation
    • D2Go (Detectron2Go),an end-to-end production system for training and deployment for mobile platforms.,
    • Pointly-Supervised Instance Segmentation
    • Unbiased Teacher for Semi-Supervised Object Detection
    • Rethinking “Batch” in BatchNorm
    • Per-Pixel Classification is Not All You Need for Semantic Segmentation
    • Exploring Plain Vision Transformer Backbones for Object Detection
    • MViTv2: Improved Multiscale Vision Transformers for Classification and Detection
    • AdelaiDet,a detection toolbox including FCOS, BlendMask, etc.,
    • CenterMask
    • Res2Net backbones
    • VoVNet backbones
    • FsDet,Few-Shot Object Detection.
    • Sparse R-CNN
    • BCNet,a bilayer decoupling instance segmentation method.,
    • DD3D,A fully convolutional 3D detector.,
    • detrex,a detection toolbox for transformer-based detection algorithms including Deformable-DETR, DAB-DETR, DN-DETR, DINO, etc.,

    6. 资源链接

    代码链接-https://github.com/facebookresearch/detectron2
    官方文档-https://detectron2.readthedocs.io/en/latest/tutorials/getting_started.html
    官方教程-colab
    官方博客
    视频资源1
    视频-资源2

  • 相关阅读:
    【Python 千题 —— 基础篇】菜品的价格
    从NLP视角看电视剧《狂飙》,会有什么发现?
    LiveNVR监控流媒体Onvif/RTSP功能-视频广场点击在线或离线时展示状态记录快速查看通道离线原因
    三维地图(3D地图)离线地图开发
    IDEA复制代码到MD笔记格式还手动调,赶紧试试这个功能,一步到位
    量子计算新突破!来源于150年前的思想实验
    定时任务管理系统详细设计说明书
    大厂秋招真题【贪心】美团20230826秋招T2-小美的数组重排
    Java中锁的分类
    Spring 6 资源Resources 相关操作
  • 原文地址:https://blog.csdn.net/u014515463/article/details/127771928
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号