0

我試圖找到一個人的鼻子的x,y座標與AWS rekognition的照片,即時通訊使用JavaScript SDK和我得到的返回值的大小的比例圖片。這在文檔中有明確說明,我對此沒有任何問題。AWS rekognition x,y公式

我所追求的是一個公式,從整個圖像的角度而不是邊界框中找到鼻子「地標」的確切x,y。以下是我的重新認知輸出。

{ 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,畫面中的鼻子年。目前它給出了邊界框內的鼻子的x,y(我認爲)。我的數學技能不是真的取決於這個。

從文檔:

的BoundingBox:

返回的頂部和左側的值是總的圖像尺寸的比率。 例如,如果輸入圖像是700x200像素,並且邊界框的左上角 座標爲350x50像素,則API返回左邊的值爲0.5(350/700)的 ,頂部的值爲0.25(50/200)。

地標:從界標的左上角

x座標表示爲圖像的寬度的比值 。例如,如果圖像是700x200和 ,則地標的x座標爲350像素,則此值爲0.5。

回答

1

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

相關問題