如何从图像中的对象获取标准化坐标

我正在使用微软的CustomVision.ai构建一个自定义视觉应用程序。

我正在使用这个教程:https://learn.microsoft.com/en-us/azure/cognitive-services/custom-vision-service/csharp-tutorial-od

在某一时刻,我需要做到以下几点:

当你在目标检测项目中标记图像时,你需要使用标准化坐标来指定每个标记对象的区域

为此,我需要编写以下代码:

Dictionary<string, double[]> fileToRegionMap = new Dictionary<string, double[]>() {// FileName, Left, Top, Width, Height{"scissors_1", new double[] { 0.4007353, 0.194068655, 0.259803921, 0.6617647 } },{"scissors_2", new double[] { 0.426470578, 0.185898721, 0.172794119, 0.5539216 } },{"scissors_3", new double[] { 0.289215684, 0.259428144, 0.403186262, 0.421568632 } }...

其中,double值是图像中对象的标准化坐标。

我如何从图像中获取这些坐标?有没有可以使用的软件来创建这些坐标并将它们添加到代码中?


回答:

标准化坐标是范围从0.0到1.0(不包括1.0)的坐标。

如果你有一张图像,其坐标范围为

(X = 0..Width, Y = 0..Height)

使用以下公式转换坐标:

double x_normalized = X / Width;double y_normalized = Y / Height;

这假设坐标XYWidthHeight是以doublefloat形式给出的。如果它们是以int形式给出的,请使用

double x_normalized = (double)X / Width;double y_normalized = (double)Y / Height;

对于图像中对象的宽度或高度也适用同样的方法

double object_width_normalized = object_width / Width;double object_height_normalized = object_height / Height;

注意,如果坐标是以int形式给出的,通常它们在范围[0..Width - 1, 0..Height - 1内,因此除法结果将是0.0 <= value < 1.0

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注