• 语义分割在线标注思路


    语义分割选择使用多边形框标注,相对于物体检测它多了一项计算mask掩膜的需求。
    一个图片,可能会进行多项标注。每项标注里面都会在物体检测的格式基础上增加mask属性,mask解释为图像掩膜,里面存与图像宽高对应大小的二维数组。
    此二维数组可理解为将图片每个像素分成行列,每行为一个子数组。图像上的每个像素点对应二维数组中一个元素。
    使用多边形框对图像进行语义分割类型的标注。
    若像素点位置落在标注框内,框内的像素点位置坐标的值为1,框外的值为0。
    在这里插入图片描述

    安排此项内容由前端直接统一计算得出。

    实现基础思路

    1. 在AILabel标注插件之上,能知道图片本身的宽高,能知道图片标注区域所在的范围
    2. 根据宽高能初始化对应一个二维数组,从左上角起始每个像素对应其中一个元素
    0 0 0
    0 0 0
    0 0 0
    
    • 1
    • 2
    • 3

    可以看到每个像素都是有对应坐标的。没有标注的时候这些像素位置对应的值都是0

    1. 根据标注框,能计算出在标注框范围内的像素点对应哪些坐标。将这些位置的坐标替换为1

    掩膜计算

    上述思路在实现过程中难点在于最后一条,怎么将多边形框起来的区域每个像素的位置在二维数组中置为1。

    在GIS领域,判断点是否在多边形范围内是一个基础方法,这里主要说下实现原理。
    原理比较简单,就是有一个GIS理论,一个点向一个方向发送射线,射线与多边形各个边相交的交点如果是奇数说明点在多边形范围内。

    用工具画框时是有顺序的,先后画的两个点是挨着的,所以确定挨着的两个元素能够构成一条边。

    可能会遇到的问题是:如果多边形的边比较多,图片比较大,那可能会很卡。
    因此针对这个问题可以再考虑一些优化方案。

    基础方案

    作横向射线,如果交点数为0,那么当前行所有像素都不必再判断,可直接断定不会在多边形内。

    优化方案

    根据已有多边形的点,计算出多边形的外矩形框边界,这样判断的范围就更小了。
    这种思路,不需要遍历所有,只要关注这个矩形区域内像素点坐标的判断即可。
    在这里插入图片描述

    1. 以图片宽高初始化二维数组
    2. 以标注区域的外围矩形框的左上角开始遍历、右下角终止,逐一判断每个像素点是否落在矩形框内。如果是则相应位置置为1,否则为0
  • 相关阅读:
    代码随想录二刷第二天(Python)
    地平线GitLab使用指导
    C++算法初级4——排列枚举
    国产高云FPGA开发软件Gowin的下载、安装、Licence共享,按照我的方案保证立马能用,不能用你铲我耳屎
    Spring Cloud Alibaba(二)
    亚商投资顾问 早餐FM/1117我国5G应用开始规模复制
    「中秋来袭」没想到,用OpenCV竟能画出这么漂亮的月饼「附源码」
    04-Redis 持久化AOF你真的了解吗?
    Linux常见操作命令(1)
    Win11怎么关闭系统保护功能?系统保护还原功能怎么关闭?
  • 原文地址:https://blog.csdn.net/weixin_38800446/article/details/128158297