当前位置:   article > 正文

关于yolov8segments的一些使用_yolov8 segment

yolov8 segment

近半个月来,研究yolov8的segments部分,有一些小收获,分享给大家。

在探索这个算法的时候,有一个问题困扰了我很长时间。

前提:在输入图片的过程中,你给的图片格式可能不是统一的,比如说,有的图片是100*100、200*200、300*300,在给到网络计算后,会有一些操作改变图像的格式,给到一个较为统一格式比如640*480.而输出的时候,返回的仍然是你自己的(100*100、200*200、300*300)格式。

问题来了:算法的计算大部分是在统一格式上面计算的。

输出的结果不能直接在原格式上面改,不得不在统一格式上面更改,这就比较麻烦了

当然这个问题不仅在yolov8算法中,在很多视觉算法中都是存在的。

好啦,正题开始:

图一

  1. stone_info = {} # 这里存储所有的信息
  2. w = im0.shape[1] # width
  3. h = im0.shape[0] # height
  4. w1 = im.shape[3]
  5. h1 = im.shape[2]
  6. gain1 = min(w1 / w, h1 / h) # gain = old / new
  7. #segments是掩码的轮廓像素坐标
  8. segments123= result.masks.segments
  9. #cls_num是掩码的class代号
  10. cls_num = result.boxes.cls
  11. #掩码class代号对应的class名
  12. cls_name = result.names
  13. #掩码
  14. masks1 = result.masks.masks
  15. a = centroid(masks1,gain1)

                                                        图二

yolov8是计算是将所有的结果放在result中,可以在编译的过程中查看,当然,这些结果都是在统一格式上的结果。

上面的问题是计算的图像和输出图像格式的不统一,为了让问题更直观点,直接上图:

这张图先被压缩,之后鸭子就跑到那个蓝色的地方,so.....

解决这个问题的关键是什么呢,就是gain,在图二中有计算方法。

你获得的所有像素坐标都可以通过*gain获得在原图中的坐标。

boom!

我这表达能力欠缺.......唉

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/971803
推荐阅读
相关标签
  

闽ICP备14008679号