Track Ultralytics stream=True inference over iterator consumption
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 45/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- python
调研方向
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 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
wild-edge/wildedge-python 的其他 Issue
-
难度 4/5 3-5 天 新手友好度 55/100
wild-edge/wildedge-python#78 ·
维护者通常 1 天内回复
-
vLLM integration可能重新可做 @piotrekno1 于 122 天前认领,目前没有进行中的 PR。 未关闭
wild-edge/wildedge-python#38 · 已指派 1 人 ·
维护者通常 1 天内回复
-
enhancement good first issue help wanted
难度 3/5 1-2 天 新手友好度 48/100
wild-edge/wildedge-python#25 ·
维护者通常 1 天内回复
-
enhancement good first issue help wanted
难度 4/5 3-5 天 新手友好度 25/100
wild-edge/wildedge-python#22 · 1 条评论 ·
维护者通常 1 天内回复
-
enhancement good first issue help wanted
难度 3/5 1-2 天 新手友好度 35/100
wild-edge/wildedge-python#20 · 2 条评论 ·
维护者通常 1 天内回复
查看 wild-edge/wildedge-python 的全部 Issue
相似的 Issue
-
good first issue priority: low size: XS testing
难度 1/5 1-3 小时 新手友好度 86/100
cubrid-lab/cubrid-mcp-server#385 ·
维护者通常 1 天内回复
-
good first issue priority: low size: S testing
难度 2/5 1-3 小时 新手友好度 85/100
cubrid-lab/cubrid-cookbook-python#447 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 62/100
ArduCAM/Arducam_tof_camera#125 ·
-
area:curator enhancement
难度 2/5 1-3 小时 新手友好度 74/100
CassioDalla/Scrinalia#150 ·
维护者通常 1 天内回复
-
documentation good first issue
难度 2/5 1-3 小时 新手友好度 72/100