deepstream-yolo项目想要保存添加检测框的图片,make编译后nvdsinfer_custom_impl_Yolo文件夹里的nvdsparsebbox_Yolo.cpp只解析了输出层的数据获取了检测框的位置等信息,项目工程里在哪里渲染最后的输出视频呢?找不到类似nvdsosd类似的,要如何保存检测后的帧为图片呀?感谢!
1条回答 默认 最新
- 恐怖如斯恐怖如斯啊 2024-11-19 20:23关注
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
在DeepStream项目中,YOLO模型的检测结果确实是通过解析输出层数据获取的,但渲染和保存这些检测框到图片中的工作通常不会直接在模型的推理层(如
nvdsparsebbox_Yolo.cpp
)完成。DeepStream主要用于实时视频流的分析和处理,通常会包含视频捕获、预处理、模型推理、后处理等环节。渲染和保存带有检测框的图片通常是后处理阶段的工作。在DeepStream项目中,为了保存带有检测框的图片,你可以按照以下步骤操作:
- 捕获视频帧并存储为图片:
在视频播放和处理的流程中,你需要在视频帧被模型处理之前将其保存为图片。这可能涉及到从视频流中捕获帧并将其写入到磁盘上的图片文件。这部分代码可能位于主应用程序逻辑中,而不是在模型推理部分的代码中。
- 应用检测框到捕获的帧:
一旦你捕获了帧并保存为图片,你可以在后处理阶段将这些检测框应用到这些帧上。这可能涉及到在捕获的帧上绘制边界框(bounding boxes),这可以通过图像处理库(如OpenCV)来完成。你需要使用解析到的检测框的位置信息来绘制这些框。
- 保存带有检测框的图片:
最后一步是保存这些带有检测框的图片。这一步通常是使用相同的图像处理库(如OpenCV)来完成。你需要简单地将这些处理过的帧写入到磁盘上的新图片文件中。
关于DeepStream项目中的具体代码位置,你可能需要查看主应用程序的代码部分,而不是直接查看模型推理的代码(如
nvdsparsebbox_Yolo.cpp
)。特别是在后处理阶段,可能会有专门负责渲染和保存图片的代码部分。如果你使用的是基于DeepStream的示例应用程序,那么这些代码可能已经包含在内了。如果没有,你可能需要自己编写这部分代码来适应你的需求。总的来说,保存带有检测框的图片涉及到视频帧的捕获、检测框的应用以及图片的保存。这需要在主应用程序逻辑中实现,并且可能涉及对图像帧进行手动处理以添加检测框。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1