AWS重新认知x,y公式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS重新认知x,y公式相关的知识,希望对你有一定的参考价值。

我正在尝试使用AWS重新认知找到照片中某人的鼻子的x,y坐标,我正在使用javascript SDK,并将值作为图片大小的比例返回。这在文档中明确说明,我没有问题。

我所追求的是一个公式,从整个图像的角度找到鼻子“地标”的确切x,y,而不是边界框。以下是我的rekognition输出。

{ FaceDetails: 
   [ { BoundingBox: 
        { Width: 0.6399999856948853,
          Height: 0.47999998927116394,
          Left: 0.1644444465637207,
          Top: 0.17666666209697723 },
       Landmarks: 
        [ { Type: 'eyeLeft',
            X: 0.36238425970077515,
            Y: 0.3900916874408722 },
          { Type: 'eyeRight', X: 0.5580493807792664, Y: 0.362303763628006 },
          { Type: 'nose', X: 0.4164798855781555, Y: 0.4511926472187042 },
          { Type: 'mouthLeft',
            X: 0.42259901762008667,
            Y: 0.5591621994972229 },
          { Type: 'mouthRight',
            X: 0.5580134391784668,
            Y: 0.5394133925437927 } ],
       Pose: 
        { Roll: -9.781778335571289,
          Yaw: -20.029239654541016,
          Pitch: 10.893087387084961 },
       Quality: { Brightness: 59.32780456542969, Sharpness: 99.9980239868164 },
       Confidence: 99.99403381347656 } ] }

我有一个2576x1932的图像是否有一些公式可以在这里应用,只是给我在图片中的鼻子的x,y。目前它从边界框内给出了鼻子的x,y(我认为)。我的数学技能并不完全取决于这个。

从文档:

BoundingBox的:

返回的顶部和左侧值是整个图像大小的比率。例如,如果输入图像为700x200像素,并且边界框的左上角坐标为350x50像素,则API返回左值0.5(350/700)和最高值0.25(50/200)。

里程碑:

从地标左上角开始的x坐标表示为图像宽度的比例。例如,如果图像是700x200并且地标的x坐标是350像素,则该值是0.5。

答案

Rekognition返回的X / Y值只是图像宽度/高度的百分比。根据Rekognition API文档,地标位置相对于整个图像,而不是边界框。

因此,您所要做的就是将图像的宽度乘以地标的X值以获得该地标的X位置(然后将图像的高度乘以地标的Y位置以获得Y位置像素中的地标)。

Rekognition这样做的原因是,无论图像的像素大小如何,鼻子的位置(例如)都是相同的。在上面的示例中,鼻子位于:

 { Type: 'nose', X: 0.4164798855781555, Y: 0.4511926472187042 }, 

这意味着从左边框开始,图像宽度为41.6%,图像高度的45.1%从顶部边框开始向下。将这些百分比乘以您的实际宽度和高度,以获得像素坐标。

见:http://docs.aws.amazon.com/rekognition/latest/dg/API_Landmark.html

另一答案

使用识别数据中的边界框来索引或标记。我为面孔做过

#python
widtho = 717 #width of the given image
heighto = 562 #height of the given image
width = faceDetail['BoundingBox'].get('Width')
height = faceDetail['BoundingBox'].get('Height')
left = faceDetail['BoundingBox'].get('Left')
top = faceDetail['BoundingBox'].get('Top')
w = int(width * widtho)
h = int(height * heighto)
x = int(left * widtho)
y = int(top * heighto)
cv2.rectangle(imagere, (x, y), (x + w, y + h), (255, 0, 0), 2)

这将得到边界框..希望我给出一些关于公式的线索

以上是关于AWS重新认知x,y公式的主要内容,如果未能解决你的问题,请参考以下文章

机器学习基础:朴素贝叶斯小结

使用Typora添加数学公式

机器学习笔记一元线性回归原理公式及代码实现

canvas抛物线运动轨迹

LATEX公式编号问题

Microsoft 认知服务 SST 支持哪些音频格式?为啥 16 位 PCM x.wav 成功而 32 位 PCM y.wav 不成功?