0

私は、AWS認識で写真の人の鼻のx、y座標を見つけようとしています。imは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、Yを与えるためにここに適用することができ、いくつかの式があります。現在、それは境界ボックスの内側から鼻のx、yを与えます(私は思う)。私の数学のスキルはこれまでのところではありません。

バウンディングボックス:ドキュメントから

上部と左側値が返さは、画像全体の大きさの比です。 たとえば、入力イメージが700x200ピクセルで、境界ボックスの左上の 座標が350x50ピクセルの場合、APIは の左値が0.5(350/700)、上限値が0.25(50/200)。

ランドマーク:

画像の幅の比 として表さランドマークの左上からx座標。たとえば、画像が700x200および の場合、ランドマークのx座標は350ピクセルです。この値は0.5です。

答えて

1

認識が返すX/Y値は、画像の幅/高さの単純なパーセンテージです。 Rekognition APIのドキュメントでは、ランドマークの位置は、イメージ全体であり、境界ボックスではありません。

したがって、イメージの幅にランドマークのX値を掛けて、そのランドマークのX位置を取得します(イメージの高さにランドマークのY位置を掛けるだけです)。ランドマークのY位置をピクセルで取得します)。

これを認識する理由は、画像のピクセルサイズに関係なく、鼻の位置(たとえば)が同じになるためです。単にそれは左の境界から始まる全体で画像の幅の41.6パーセントであります意味

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

、およびダウン画像の高さの45.1パーセントから始まる:上記のあなたの例では、鼻に位置しています上の境界。これらのパーセンテージに実際の幅と高さを掛けてピクセル座標を取得します。

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

関連する問題