设置首页收藏本站
开启左侧

[C#] halcon,目标检测获取的结果如何与实际图片坐标对应

[复制链接]
johnny857 发表于 2023-9-12 09:31:20 | 显示全部楼层 |阅读模式
悬赏5视觉币
  1. HOperatorSet.GetDictTuple(hv_DLResult, "bbox_class_id", out hv_DetectedClassIDs);
  2. hv_DetectedConfidences.Dispose();
  3. HOperatorSet.GetDictTuple(hv_DLResult, "bbox_confidence", out hv_DetectedConfidences);
  4. hv_Rows1.Dispose();
  5. HOperatorSet.GetDictTuple(hv_DLResult, "bbox_row1", out hv_Rows1);
  6. hv_Rows2.Dispose();
  7. HOperatorSet.GetDictTuple(hv_DLResult, "bbox_row2", out hv_Rows2);
  8. hv_Cols1.Dispose();
  9. HOperatorSet.GetDictTuple(hv_DLResult, "bbox_col1", out hv_Cols1);
  10. hv_Cols2.Dispose();
  11. HOperatorSet.GetDictTuple(hv_DLResult, "bbox_col2", out hv_Cols2);
复制代码
图像分辨率为1248*720  获取的检测结果:["KMW"],得分:[0.988037347793579],坐标:[(147.559448242188,93.7253265380859,189.980010986328,116.244812011719]检测结果:["KMW"],得分:[0.986033022403717],检测物位于图像中心位置,坐标应该为624*360的附近,但是结果不能准确标准目标位置,请问有没大佬知道这是怎么回事?

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
halcon2016 发表于 2023-9-12 09:44:11 | 显示全部楼层
目标检测的最终图片是经过预处理的,大小和原图可能不一样,可以把结果反变换到原图,自带例程有这种变换的
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

 楼主| johnny857 发表于 2023-9-12 10:09:20 | 显示全部楼层
halcon2016 发表于 2023-9-12 09:44
目标检测的最终图片是经过预处理的,大小和原图可能不一样,可以把结果反变换到原图,自带例程有这种变换的 ...

你好,初学对图像变换不是很了解,麻烦能详细说一下吗?
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

zjjdsg 发表于 2023-9-12 10:31:46 | 显示全部楼层
johnny857 发表于 2023-9-12 10:09
你好,初学对图像变换不是很了解,麻烦能详细说一下吗?

zoom_image_size ()直接把大小拉回去
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

halcon2016 发表于 2023-9-12 15:38:21 | 显示全部楼层
本帖最后由 halcon2016 于 2023-9-12 15:39 编辑

你这个问题太大了,在这里没法详细讲清楚的,提供两种思路自己去摸索一下吧
1、参考preprocess_dl_samples算子中的preprocess_dl_model_bbox_rect1和preprocess_dl_model_bbox_rect2的处理,这两个处理是将原图的标记框处理成可进行推理图的标记框,最终推理完后得到的box框可参考这两个处理进行反变换到原图中
2、直接参考dev_display_dl_data,可直接显示推理结果
我个人在项目中是采用的是第一种方法
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表