商汤playground的学习记录

此项目估计在github最早更新时间是3月前,那时候chatgpt刚火,国外也有类似的playground,商汤也进行开发。此项目挺好,将openmmlab的各个框架进行联通,开发出更有意思的项目,这样也许能更好的满足客户需求。下表列出此项目的应用:

提供了和 MMDet 相关的结合 SAM 的应用。具体特性包括:

  • 支持 MMDet 中包括的所有检测模型 (Closed-Set),典型的如 Faster R-CNN 和 DINO 等串联 SAM 模型进行自动检测和实例分割标注
  • 支持 Open-Vocabulary 检测模型,典型的如 Detic 串联 SAM 模型进行自动检测和实例分割标注
  • 支持 Grounding Object Detection 模型,典型的如 Grounding DINO 和 GLIP 串联 SAM 模型进行自动检测和实例分割标注
  • 所有模型均支持分布式检测和分割评估和自动 COCO JSON 导出,方便用户对自定义数据进行评估
  • 详情见 README

    ✨ Det-GPT

    基于 DetGPT 原理,提供了一个无需训练的仿真版本:

  • 提供了 DetGPT 原理说明
  • 基于 MiniGPT-4 简单探索了使用无需专门微调的多模态算法进行推理式目标检测的可能性
  • 基于 ChatGPT3 实现了推理式目标检测,Grounding 检测算法支持 Grounding DINO 和 GLIP
  • 详情见 README

    ✨ MMRotate-SAM

    提供了和 MMRotate 相关的结合 SAM 的应用。具体特性包括:

  • 支持 SAM 的 Zero-shot Oriented Object Detection
  • 对单张图片进行 SAM 的 Zero-shot Oriented Object Detection 推理
  • 详情见 README

    ✨ Open-Pose-Detection

    提供了和 MMPose 相关的结合开放检测的应用。具体特性包括:

  • 支持单张图片或者文件夹的开放检测和姿态估计模型推理
  • 即将支持输入不同的 text prompt 实现对图片中不同类别物体的姿态检测
  • 详情见 README

    ✨ Open-Tracking

    提供了基于开放目标检测,并利用运动信息(卡尔曼滤波器)来进行多目标跟踪。

    详情见 README

    ✨ MMOCR-SAM

    该仓库搬运自 OCR-SAM 。我们将 MMOCR 与 SAM 结合,并提供了以下功能。

  • 支持端到端的文字检测识别,并可以将每一个文本字符都进行分割。
  • 提供基于 diffusion 模型以及 Gradio 的 Web UI,可以探索有趣的 OCR 下游任务,包括文本擦除、文本编辑等。
  • 详情见 README

    ✨ MMEditing-SAM

    提供了和 MMEditing 相关的结合 SAM 的应用。具体特性包括:

  • 使用 MMEDiting 的接口生成图片。
  • 结合 SAM 生成的 mask 与 MMEditing 的图像编辑能力创造新的图片。
  • 详情见 README

    ✨ Label-Studio-SAM

    提供了和 Label Studio 相关的结合 SAM 的应用。具体特性包括:

  • Point2Label:支持在 Label-Studio 通过点击物体区域的一点来触发 SAM 生成物体的掩码和水平边界框标注生成。
  • Bbox2Label:支持在 Label-Studio 通过标注物体的边界框来触发 SAM 生成物体掩码和水平边界框标注生成。
  • Refine: 支持在 Label-Studio 上对 SAM 生成的标注进行修正。
  • 详情见 README

    项目实践(只有本章自己的东西)

    自己在知识技术学习中,以商汤的OpenMMlab社区学习为主,看看人家更新了什么最新的算法,并要掌握落地的算法有哪些,指标怎样等等,为此项目目录如下:

    然后进入到playground文件夹中,在此项目中因为需要安装其他的项目,但又不属于OpenMMlab,在OpenMMlab文件夹并列建立了

    在ground-segment中,则是相关的开源项目

    自己根据所需,自兴安装即可。

    在项目实践中比较耗时主要是模型下载,毕竟各个项目的模型加起来估计有10个,为此将模型统一放在了models文件夹中。

    之后熟悉项目,记得更改配置文件。一般配置文件在configs中,修改文件路径即可。

    当然在代码中修改基础模型,比如在detector_sam_demo.py:

    整体做实验还是比较简单,工程代码具有测试程序的借鉴意义,自己学习还是看网络实现代码。