我正在使用Microsoft的CustomVision.ai构建自定义视觉应用程序。
我正在使用this tutorial。
在对象检测项目中标记图像时,需要使用归一化坐标指定每个标记对象的区域。
我有一个XML文件,其中包含有关图片的注释,例如名为sample_1.jpg
:
<annotation>
<filename>sample_1.jpg</filename>
<size>
<width>410</width>
<height>400</height>
<depth>3</depth>
</size>
<object>
<bndbox>
<xmin>159</xmin>
<ymin>15</ymin>
<xmax>396</xmax>
<ymax>302</ymax>
</bndbox>
</object>
</annotation>
我必须将边界框坐标从xmin,xmax,ymin,ymax转换为根据提供的教程标准化的x,y,w,h坐标。
有人可以给我提供转换功能吗?
答案 0 :(得分:1)
假设x / ymin和x / ymax是您的边界角,分别为左上和右下。然后:
x = xmin
y = ymin
w = xmax - xmin
h = ymax - ymin
然后您需要对它们进行归一化,这意味着将它们作为整个图像的一部分,因此可以简单地将每个值除以其各自的大小,然后从上面的值中除掉
x = xmin / width
y = ymin / height
w = (xmax - xmin) / width
h = (ymax - ymin) / height
这是假设左上角的原点,如果不是这种情况,则必须应用移位因子。