• 语义分割在线标注思路


    语义分割选择使用多边形框标注,相对于物体检测它多了一项计算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
  • 相关阅读:
    【数据集NO.3】人脸识别数据集汇总
    【CV】第 9 章:图像分割
    配置zabbix监控nginx状态,监控华为路由器
    十分钟教会你如何使用VitePress搭建及部署个人博客站点
    window c++异常处理与设计原理
    MySQL介绍
    tensorrt部署深度学习模型
    扬帆牧哲—shopee应该具备的运营思维
    【python笔记】第十节 闭包与装饰器
    Dubbo注册中心之Redis原理概述
  • 原文地址:https://blog.csdn.net/weixin_38800446/article/details/128158297