首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS推理式x,y公式

AWS推理式x,y公式
EN

Stack Overflow用户
提问于 2017-05-28 09:45:37
回答 2查看 666关注 0票数 0

我试图在AWS rekognition的照片中找到一个人鼻子的x,y坐标,使用javascript,并以图片大小的比例返回值。这一点在文件中已清楚说明,我对此没有异议。

我想要的是一个公式,从整个图像的角度找出鼻子“地标”的确切x,y,而不是边框。下面是我从重生中得到的结果。

代码语言:javascript
复制
{ 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像素,而边界框的左上角坐标为350×50像素,则API返回左值0.5 (350/700)和最大值0.25 (50/200)。

地标:

X坐标从地标的左上角表示为图像宽度的比值。例如,如果图像为700x200,地标的x坐标为350像素,则此值为0.5。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-28 23:28:38

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

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

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

代码语言:javascript
复制
 { Type: 'nose', X: 0.4164798855781555, Y: 0.4511926472187042 }, 

这就意味着它是从左边边框开始的图像宽度的41.6%,以及从顶部边框开始的图像高度的45.1%。将这些百分比乘以实际宽度和高度,得到像素同弦。

请参阅:Landmark.html

票数 1
EN

Stack Overflow用户

发布于 2018-09-12 07:53:41

将识别数据中的边界框用于索引或标签。我已经为面孔做过了

代码语言:javascript
复制
#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)

这会得到包围盒..。希望我能给出一些关于公式的线索

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44225909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档