Javascript AWS Rekognion x,y公式

Javascript AWS Rekognion x,y公式,javascript,amazon-web-services,numbers,amazon-rekognition,Javascript,Amazon Web Services,Numbers,Amazon Rekognition,我试图在一张有AWS Rekognion的照片中找到一个人鼻子的x,y坐标,我使用javascript SDK,并且得到返回的值与图片大小的比率。这一点在文件中有明确说明,我对此没有异议 我所追求的是一个公式,从整个图像的角度,而不是从边界框的角度,找到鼻子“地标”的确切x,y。下面是我在rekognition的输出 { FaceDetails: [ { BoundingBox: { Width: 0.6399999856948853, Height

我试图在一张有AWS Rekognion的照片中找到一个人鼻子的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(我认为)。我的数学技能真的达不到这个水平

从文件中:

边界框:

返回的顶部和左侧值是总体图像大小的比率。 例如,如果输入图像为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位置(以像素为单位)

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

 { Type: 'nose', X: 0.4164798855781555, Y: 0.4511926472187042 }, 
这仅仅意味着它位于图像宽度的41.6%,从左边框开始,位于图像高度的45.1%,从上边框开始。将这些百分比乘以实际的宽度和高度,得到像素坐标

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

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

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

 { Type: 'nose', X: 0.4164798855781555, Y: 0.4511926472187042 }, 
这仅仅意味着它位于图像宽度的41.6%,从左边框开始,位于图像高度的45.1%,从上边框开始。将这些百分比乘以实际的宽度和高度,得到像素坐标

见:

使用从识别数据到索引或标签的边界框。我已经做了脸

#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)

这将获得边界框。。希望我能提供一些关于公式的线索

使用从识别数据到索引或标签的边界框。我已经做了脸

#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)
这将获得边界框。。希望我能提供一些关于配方奶粉的线索