gpt4 book ai didi

computer-vision - 如何使用Azure自定义视觉服务响应boundingBox绘制形状

转载 作者:行者123 更新时间:2023-12-04 17:15:20 25 4
gpt4 key购买 nike

我正在使用Azure认知服务custom vision service从捕获图像中检测形状。根据他们的文档,我按照他们的格式得到了答复。

但是,要在图像上方绘制形状是我面临的问题。

{
"id": "0fbda4ee-8956-4979-bf57-a252441af98d",
"project": "9ca4032b-beeb-40ad-9396-1c3fcfd9ba89",
"iteration": "27c85265-a158-4fc4-b22a-d535dd758d80",
"created": "2018-06-11T09:34:29.9496528Z",
"predictions": [
{
"probability": 0.0102891214,
"tagId": "677afcf8-bc4a-493f-b588-707663286125",
"tagName": "ball",
"boundingBox": {
"left": 0.2889924,
"top": 0.0169312358,
"width": 0.7007024,
"height": 0.8284572
}
},
{
"probability": 0.012788726,
"tagId": "ca844f08-b6c0-4d9a-9010-73945d442708",
"tagName": "cricket ball",
"boundingBox": {
"left": 0.304018974,
"top": 0.413163722,
"width": 0.299461246,
"height": 0.436399817
}
},
{
"probability": 0.0229086485,
"tagId": "ca844f08-b6c0-4d9a-9010-73945d442708",
"tagName": "cricket ball",
"boundingBox": {
"left": 0.2889924,
"top": 0.0169312358,
"width": 0.7007024,
"height": 0.8284572
}
},
{
"probability": 0.0100123268,
"tagId": "4672144d-5593-446f-be63-5144a35d0e6e",
"tagName": "pipe",
"boundingBox": {
"left": 0.711509764,
"top": 0.377838552,
"width": 0.07217276,
"height": 0.113578767
}
},
{
"probability": 0.0167990718,
"tagId": "4672144d-5593-446f-be63-5144a35d0e6e",
"tagName": "pipe",
"boundingBox": {
"left": 0.9821227,
"top": 0.9500536,
"width": 0.0115685463,
"height": 0.033854425
}
},
{
"probability": 0.923659563,
"tagId": "4672144d-5593-446f-be63-5144a35d0e6e",
"tagName": "pipe",
"boundingBox": {
"left": 0.288039029,
"top": 0.411838,
"width": 0.291451037,
"height": 0.4237842
}
}
]
}

上面是我在自定义视觉API调用中获得的响应。但是问题出在boundingBox上。它总是具有从0开始的小数部分的值。现在,如果我要使用该值并要绘制一个正方形,那是不可能的,因为我不知道从该值绘制正方形/矩形的确切逻辑。

如何使用这些值并使用它绘制一个矩形/正方形?

最佳答案

回复/TL; DR

这些boundingBox值以图像原始大小的百分比表示,因此您可以通过将值乘以图像宽度(对于左侧和宽度值)或图像高度(对于顶部和高度值)来绘制矩形。

请记住,位置是从左上角表示的,因此位置0,0是该角。

sample 详细

我有一个小的自定义视觉检测可乐瓶。

原始图像如下:
original image

我使用Custom Vision门户进行了预测,并得到了以下结果-让我们集中关注此突出结果,得分为87.5%:

portal result

使用API​​(可用的here),我还进行了Predict操作并获得(除其他细节外)此预测:

{
"probability": 0.875464261,
"tagId": "1932c95f-ed4a-4675-bde4-c2457e1389e6",
"tagName": "CocaLight",
"boundingBox": {
"left": 0.453497916,
"top": 0.0,
"width": 0.2523211,
"height": 0.8738168
}
}

考虑到我的图像尺寸是 800 x 652 (所以ImageWidth 800,ImageHeight 652):

矩形画

左上角的位置?
  • x(距左边框的垂直距离)= API的左值x ImageWidth => 0.453497916 x 800 = 362
  • y(与顶部边框的水平距离)= API中的最高值x ImageHeight => 0.0 x 652 = 0

  • 所以我的矩形起始位置是(362,0)。

    尺寸?
  • 矩形宽度= API x ImageWidth的宽度 => 201
  • 矩形高度= API x ImageHeight的高度 => 569

  • 让我们来画吧!

    Draw API Result

    看起来不错!

    关于computer-vision - 如何使用Azure自定义视觉服务响应boundingBox绘制形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50794707/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com