Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Support for YOLO-style / modern object detection models (2D and 3D)

未关闭
#9,111 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
30/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
活跃
技术栈
python, pytorch

调研方向

先阅读 monai/apps/detection/retinanet_detector.py 和 retinanet_network.py,然后检查支持性的 detection transforms、anchor utilities、metrics 以及现有的 RetinaNet tutorial。将当前的 DetectorNetwork API 和 box 约定与所请求的 YOLO-style 2D 和 3D 范围进行比较。完成内容应包括已达成一致的 detector 范围、API 集成、box-format 处理、测试以及 tutorial。

由索引模型根据 Issue 内容生成。

描述

Is your feature request related to a problem? Please describe.

MONAI currently ships a single object-detection architecture — RetinaNet
under monai/apps/detection/ (retinanet_detector.py, retinanet_network.py),
with supporting anchor utilities, COCO-style mAP metrics, and box transforms. This
is a solid anchor-based, two-stage-style foundation and works in both 2D and 3D.

However, the detector zoo stops there. Users who want fast single-stage or
anchor-free detectors most notably the YOLO family — have no native path.
The existing guidance (see #903) is essentially "use MONAI transforms inside your
own YOLO pipeline," which leaves the detector itself, training loop, box-format
handling, and metrics outside MONAI's guarantees. #292 raised YOLO/COCO/Pascal-VOC
box-format support in transforms years ago but there is no dedicated tracking
issue for native modern detectors, and #8519 lists surgical instrument
localization/detection as a target without naming an architecture.

Describe the solution you'd like

Expand monai/apps/detection beyond RetinaNet to include modern detectors, with
YOLO as the flagship because of its strong fit for 2D medical / endoscopy /
surgical-tool and microscopy use cases (real-time inference, anchor-free variants,
mature ecosystem). Concretely:

  1. A YOLO-style detector network (e.g. an anchor-free YOLO head) integrated into
    the existing DetectorNetwork / detector API so it reuses MONAI's box
    transforms, anchor/anchor-free utilities, ATSS-style matching, and mAP metrics.
  2. Native handling of the YOLO box format (normalized cx, cy, w, h) in the
    detection transforms, alongside the existing corner/CCWH conventions (follow-up
    to #292).
  3. A tutorial mirroring the existing RetinaNet LUNA16 / detection tutorial so the
    new detector is a drop-in alternative.
  4. (Optional / stretch) Room in the API for other modern detectors such as
    DETR-family or FCOS, so this is an extensible "detector zoo" rather than a
    one-off.
Note: interest in YOLO-inspired 3D detection

MONAI's biggest differentiator over general-purpose CV libraries is first-class
3D support — RetinaNet here already runs on volumetric data. If there is
community/maintainer interest, a YOLO-inspired 3D detector (a single-stage /
anchor-free volumetric detection head operating on 3D feature maps, predicting
6-DoF axis-aligned 3D boxes) would be a genuinely novel and high-value addition:
few libraries offer a fast single-stage 3D detector, and use cases like nodule /
lesion / landmark detection in CT and MR volumes would benefit directly. I'd be
happy to help scope and prototype this if the maintainers see value — please
comment if there's appetite for the 3D direction specifically.

Describe alternatives you've considered
  • Continuing to use RetinaNet only (works, but no fast single-stage/anchor-free
    option, and no YOLO ecosystem interop).
  • Running an external YOLO (ultralytics etc.) alongside MONAI purely for transforms
    (the current #903 answer) — loses MONAI's metric/box/3D guarantees and
    reproducibility.
Additional context
  • Existing detection module: monai/apps/detection/ (RetinaNet).
  • Related prior discussions: #292 (box-format transforms), #903 (YOLO usage
    question), #8519 (MICCAI submissions incl. surgical detection/localization).
  • Willing to contribute an implementation and tutorial, and specifically to
    prototype the 3D variant if there's interest.
主要语言
Python
星标
8.7k
派生
1.6k
平均合并
4 天 8 小时
30 天内合并 PR
21

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

Project-MONAI/MONAI 的其他 Issue

查看 Project-MONAI/MONAI 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。