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

Track Ultralytics stream=True inference over iterator consumption

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

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
活跃
技术栈
python
领域
observability

调研方向

Read the Ultralytics adapter and the shared SyncStreamWrapper introduced in #82, then compare the eager predict() coverage in #84. Trace how streamed results are consumed and finalized; preserve lazy iteration and keep result interpretation in the adapter. Done means both entry points emit one consumption-aware event on exhaustion, close, or error, with bounded metadata and compatibility tests for supported Ultralytics versions.

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

描述

Current behavior

Ultralytics/YOLO returns a lazy results iterator for model.predict(..., stream=True) and model(..., stream=True). Inference runs as the application consumes it, but the current integration records success and duration when the iterator is returned. This can report success before inference runs, omit detection/classification output metadata, and miss failures during iteration.

PR #84 fixes eager predict() entry-point coverage; it does not address lazy streaming lifecycle tracking.

Possible approach

Reuse the shared SyncStreamWrapper introduced in #82 for iteration timing, exactly-once finalization, closure/error handling, trace correlation, and telemetry failure isolation. Keep YOLO result interpretation in the Ultralytics adapter through integration-specific callbacks.

A proposed starting contract is one inference event per streamed prediction call, finalized when the iterator is exhausted or explicitly closed, with bounded aggregation of available detection/classification metadata. Do not retain every result or consume the iterator ahead of the application. Per-frame events would be a separate design decision.

Verification when implemented

  • Creating a lazy iterator emits no premature successful inference event.
  • Exhaustion records one event with consumption-aware duration and available result metadata.
  • Early closure and iteration errors finalize once without changing application behavior.
  • Both entry points behave consistently, with no duplicate events.
  • Real supported Ultralytics versions are covered by compatibility tests.

This is a known coverage gap to track for future demand; no user has requested streaming support yet. It is not a prerequisite for the eager-call fix in #84.

主要语言
Python
星标
17
派生
1
平均合并
17 小时 5 分钟
30 天内合并 PR
34

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

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

wild-edge/wildedge-python 的其他 Issue

查看 wild-edge/wildedge-python 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

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