feat: YoloPosePostprocess plugin (graphsurgeon insertion)#321
Open
triple-mu wants to merge 4 commits into
Open
feat: YoloPosePostprocess plugin (graphsurgeon insertion)#321triple-mu wants to merge 4 commits into
triple-mu wants to merge 4 commits into
Conversation
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>
Pose plugin attached to the raw ultralytics export via onnx_graphsurgeon (export-pose.py): the transposed head [1,A,C] is fed to YoloPosePostprocess, which does parallel NMS + top-k and gathers 17 keypoints in-engine. pose.cpp auto-detects plugin outputs by binding name. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
triple-mu
force-pushed
the
feat/pose-plugin
branch
from
June 10, 2026 09:15
f0bfc0d to
46fe139
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.
YoloPosePostprocess 插件(graphsurgeon 插桩,并行 NMS,自包含)
pose 走 ultralytics raw 导出(无 in-graph 解码模块),故
export-pose.py用 onnx_graphsurgeon 把插件节点接到已解码的 raw 输出:转置后的[1,A,C]喂给YoloPosePostprocess,在引擎内做并行 NMS + top-k 并 gather 17 个关键点。pose.cpp按 binding 名自动识别。建立了 obb 复用的 graphsurgeon 范式。验证:bus.jpg 同 4 目标、kps_sum 差 <0.02%;TRT 8.6/10.16/11.0 编译。
🤖 Generated with Claude Code