feat: YoloSegPostprocess plugin + shared parallel NMS helpers - #320
Open
triple-mu wants to merge 3 commits into
Open
feat: YoloSegPostprocess plugin + shared parallel NMS helpers#320triple-mu wants to merge 3 commits into
triple-mu wants to merge 3 commits into
Conversation
This was referenced Jun 10, 2026
Raw uint8 image -> NCHW float input via a CUDA kernel (letterbox + RGB + /255), staged through a pinned host buffer for a fast async H2D. Opt-in, default-off; the CPU path is unchanged. CMake enables CUDA only when nvcc is found. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Opt-in custom plugin (libyolov8_plugins.so, BUILD_PLUGINS=ON) fusing YOLOv8 detection decode + NMS + top-k as an alternative to EfficientNMS_TRT; consumes the decoded boxes+scores and emits num_dets/bboxes/scores/labels. Plugin .so loaded via --plugin-lib / $YOLOV8_PLUGIN_LIB (Python ctypes + C++ dlopen); detect.cpp auto-detects raw vs End2End/plugin engines. export-det.py --plugin. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds the seg plugin (decode+NMS, gathers 32 mask coeffs; proto matmul stays on host) and extracts shared helpers into nms_common.cuh. NMS is parallel (EfficientNMS-style: one thread per candidate marks suppression vs higher-scoring overlaps; single-thread compaction gathers top-k) — det refactored onto the shared parallel suppression too. PostSeg.plugin + export-seg.py --plugin; engine.py finds the NMS node by attribute name anywhere in the graph; segment.cpp auto-detects. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
triple-mu
force-pushed
the
feat/seg-plugin
branch
from
June 10, 2026 09:15
d075242 to
1cfc9c4
Compare
This was referenced Jun 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
YoloSegPostprocess 插件 + 共享 NMS 助手 + 并行 NMS(自包含)
后处理插件家族第二个。新增 seg 插件(decode+NMS,gather 32 维 mask 系数;proto 矩阵乘/拼装仍在 host),并抽取共享
nms_common.cuh。NMS 为并行版(EfficientNMS 式、无依赖):每候选一线程,被任意更高分同类重叠框(>iou_thr)抑制 → flag;再单线程 compact 按分取 topk(无 IoU);保留 cub 排序维持 topk 按分。det 也在本 PR 重构到共享并行 suppress。
suppress_xyxy_kernel(det/seg);workspace 加 flag 数组。PostSeg.plugin+export-seg.py --plugin;engine.py按属性名在全图定位 NMS 节点;segment.cpp按 binding 名自动识别。实测(det 插件引擎):conf 0.25 结果不变、~1.3ms;conf 0.001(数百候选)5.78→1.65ms(3.5×)。分离目标 parallel==greedy(bus.jpg seg 仍 6 目标)。TRT 8.6/10.16/11.0 编译。
🤖 Generated with Claude Code