描画¶
描画について¶
描画には次の 2 つの機能があります。
1 つ目の機能は、キーポントの色や太さ、キーポイント同士を結ぶ線など、キーポイントの描画をカスタマイズする機能です。 詳しくは、キーポイントや骨格を描画するを参照ください。
2 つ目の機能は、キーポイントのみを描画してスケルトン表示する機能です。 詳しくは、キーポイントのみの描画を参照ください。
キーポイントや骨格を描画する¶
描画を行うには、POST /drawingsを用います。
対象のキーポイント IDkeypointId
または比較 IDcomparisonId
と描画ルールフォーマットrule
に従い実施したい描画内容を指定します。
描画ルールを指定すると、必要な箇所のみの描画、点や線の色・太さを自由に変更することができます。 描画ルールを指定しない場合は、以下の図のように全身の骨格点と線を描画します。

描画ルールフォーマット¶
rule
には、Array 形式で複数のルールを記載することができ、1 つのルールには以下のプロパティが利用できます。
また、rule
を指定しない場合は、全身のキーポイントの描画とキーポイントとキーポイントを結んだ線の描画を行います。
プロパティ | タイプ | 説明 | 必須 |
---|---|---|---|
drawingType | String | 描画の種別 | ● |
points | Array | 描画対象となるキーポイント情報 | - |
points[].pointType | String | キーポイントの指定方法(デフォルトは single) | - |
points[].pointName | Array of String | 部位の名前(points を使う場合必須) |
- |
pattern | String | キーポイントグループ情報 | - |
color | String | 点や線の色 (デフォルトは grey) | - |
size | Number | 点や線の大きさ (デフォルトは 1) | - |
comparisons | Array | 比較結果の描画情報 | - |
drawingType¶
drawingType
で指定できる値は次の通りです。描画内容により必要となる部位数が異なります。
描画内容 | drawingType | 必要な部位数 | 説明 |
---|---|---|---|
キーポイント描画機能 | keypoint | 1 | 指定されたpointsを描画する |
骨格描画機能 | stickPicture | 2 | 指定されたpointsを結んだ線を描画する |
水平線描画機能 | horizontalLine | 1 | 指定されたpointsを起点とした水平線を描画する |
垂線描画機能 | verticalLine | 1 | 指定されたpointsを起点とした垂線を描画する |
drawingType
の違いによる描画の違いは、以下の図も参考にしてください。
キーポイント描画機能¶

骨格描画機能¶

水平線描画機能¶

垂直線描画機能¶

points¶
pointType
には次の値が指定できます。
- single
- horizontalRight
- 指定した部位の水平方向の右端を表します。
- horizontalLeft
- 指定した部位の水平方向の左端を表します。
- verticalTop
- 指定した部位の垂直方向の上端を表します。
- verticalDown
- 指定した部位の垂直方向の下端を表します。
- midpoint
- 2 つの部位の中点を表します。
- centroid
- 指定した位置の重心を表します。
指定される箇所については、以下の図も参考にしてください。
pointName
には次の値が指定できます。
Note
pointType
にmidpoint
を指定した場合のみpointName
は配列で 2 つの部位を指定する必要があります。
pointType
がsingle
の場合のみpointType
とpointName
を省略することが出来ます。
1 2 3 |
|
これは以下と同値です。
1 2 3 4 5 6 7 8 |
|
pattern¶
pattern
を使う事で、複数の部位を同時に指定できます。
pattern
には次の値を指定できます。
pattern | 内容 | 対応部位 |
---|---|---|
all | 全てのキーポイント | 全部位 |
upperBody | 上半身の全てのキーポイント | 左肩、右肩、左肘、右肘、左手首、右手首 |
lowerBody | 下半身の全てのキーポイント | 左腰、右腰、左膝、右膝、左足首、右足首 |
leftBody | 左半身の全てのキーポイント | 左肩、左肘、左手首、左腰、左膝、左足首 |
rightBody | 右半身の全てのキーポイント | 右肩、左肘、右手首、右腰、右膝、右足首 |
color¶
color
には次の値が指定できます。
- white
- black
- grey
- yellow
- green
- red
- blue
- cyan
- orange
- pink
- magenta
- purple
- skyBlue
- blueGreen
- limeGreen
サンプルコード¶
以下の例では、鼻の点と左肩と右肩の中点を結んだ線を描画します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
キーポイントのみの描画¶
以下の図のような、キーポイントのみを描画して、スケルトン表示をすることができます。
スケルトン表示をしたい場合は、リクエストボディにbackgroundRule
を指定します。

背景の描画ルールフォーマット¶
backgroundRule
には、Object 形式で以下のプロパティが利用できます。
プロパティ | タイプ | 説明 | 必須 |
---|---|---|---|
skeletonOnly | Boolean | キーポイントのみの描画 | - |
color | String | 背景の色 | - |
skeletonOnly¶
skeletonOnly
に true を指定すると、キーポイントのみの描画が行い、スケルトンのみの表示を行います。
デフォルト値は false です。
color¶
skeletonOnly
が true の場合のみ、利用することができます。
color
はキーポイント以外の部分を何色で表示するか指定します。
デフォルト値は white です。
color
には次の値が指定できます。
- white
- black
- grey
- yellow
- green
- red
- blue
- cyan
- orange
- pink
- magenta
- purple
- skyBlue
- blueGreen
- limeGreen
サンプルコード¶
以下は、こちらのサンプルをスケルトンで表示する例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
比較結果の描画¶
比較 ID comparisonId
を指定することで、比較結果をもとに、
検出する部位に記載されている 17 点の差異を可視化することができます。
比較で指定した source
(比較元)の画像または動画に対して描画します。
以下の図のように、rule
を指定しない場合は通常の描画と同様に、全身のキーポイントの描画とキーポイントとキーポイントを結んだ線の描画を行います。
さらに差異の程度が 0.2 以上である部位は、赤色で表示します。

target

source
rule
を指定することで、描画ルールを従い、キーポイントの色や大きさなどを変更することができます。
比較結果の描画の場合のみ、rule
にcomparisons
が利用でき、差異と判定するしきい値やの比較の詳細設定を行うことができます。
比較結果の描画ルールフォーマット¶
comparisons
は、 Array 形式で 1つの要素は Object 形式で以下のプロパティが利用できます。
プロパティ | タイプ | 説明 | 必須 |
---|---|---|---|
threshold | Number | 差異と判定する差異の程度のしきい値 | - |
color | String | 描画する差異の色 | - |
size | Number | 描画する差異の大きさ | - |
複数の Object を指定することで、差異の程度の値により複数の色に描画することができます。 以下の例では、 0~0.2が grey に、 0.2~0.3 が yellow に、 0.3~1.0 が red に描画します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
threshold¶
threshold
では、差異の程度が指定された値以上の時に差異と判定するか指定できます。
デフォルト値は 0.2 です。
color¶
color
では、差異と判定された部位を何色で描画するか指定できます。
デフォルト値は red です。
color
には次の値が指定できます。
- white
- black
- grey
- yellow
- green
- red
- blue
- cyan
- orange
- pink
- magenta
- purple
- skyBlue
- blueGreen
- limeGreen
size¶
size
では、差異と判定された部位の描画する大きさを指定できます。
デフォルト値は 1 です。
サンプルコード¶
以下のサンプルは、両肩の差異を可視化するコードです。 差異がある場合は橙色で、差異がない場合は、緑色で表示するように指定しています。 両肩を結んだ線の描画灰色で表示するように指定しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
|
描画結果を取得する¶
キーポイントの描画結果を取得するには、GET /drawings/:idを用います。
リクエストには POST /drawingsのレスポンスに含まれる id
を指定します。
描画処理のステータスは、レスポンスの execStatus
で確認することができます。
SUCCESS
の場合、処理が完了しており,描画結果を取得することができます。
Hint
execStatus
が UNPROCESSED
や PROCESSING
の場合はまだ処理が完了していません。
時間をおいてから再度確認してください。
サンプルコード¶
Hint
<アクセストークン>
の取得は、認証方式を参照してください。
1 2 3 |
|