※このサンプルアプリケーションはActcastOS 3 に対応しています
検出ラインを跨いだ人の年齢や性別を判定するサンプルアプリです。
make
make により、以下のファイルが生成されます。
include/model.h
app/libmodel.so
app/model.py
app/libbilinear.so
actdk に確認用 Raspberry Pi を登録します。
actdk remote add <IDENTIFIER_YOU_LIKE>@<REMOTE>
actdk run
により Actsim 上でアプリケーションの動作確認をすることができます。停止させるには Ctrl + C
を押します。
actdk run -a <IDENTIFIER_YOU_LIKE>
まずActcast に新規アプリケーションを作成します。
.actdk/setting.json
の app_server_id
を、先程作成したアプリケーションの ID に変更します。
アプリケーションをアップロードし、実機にインストールします。
このアプリケーションには多くの設定項目がありますが、初回使用時には変更する必要はありません。
-
[Capture]
カテゴリcapture scale
: キャプチャ画像のサイズ。キャプチャサイズを決定する次の式で使用される (320 *capture scale
) x (240 *capture scale
)
例)capture scale
が4の場合、1280x960@10fps以上で画像をキャプチャしようとします。接続されたカメラに十分な能力がない場合、エラーで終了します。エラー発生時はデバイスログにActSettingsErrorとして記録されます。exposure time
: カメラの露出時間。(0で自動設定)カメラが対応していない場合この設定項目は無視されます。horizontal flip camera
: カメラが対応している場合は画像を反転して撮影します。 対応していない場合この設定項目は無視されます。camera rotation
: カメラが対応している場合はカメラを回転させて撮影します。 (0, 180 のどれか) 対応していない場合この設定項目は無視されます。capture framerate
: カメラのフレームレートを設定します。接続されたカメラに十分な能力がない場合、エラーで終了します。エラー発生時はデバイスログにActSettingsErrorとして記録されます。
-
[Crop]
カテゴリ
このカテゴリ以下の設定は高度なオプションです。 通常の使用では、デフォルト値を変更する必要はありません。detection area ratio
: キャプチャ画像に対する検知領域vの割合(0.0 ~ 1.0の間、0.1は10%を意味します)。
顔検知を行う前に、キャプチャ画像からdetection area ratio
で設定された割合で画像を切り出し、「Detection Area(検知領域)」を作成します。
詳しくは下の画像を参照してください。
注意:detection area ratio
とdetection area offset ratio
の組み合わせによっては「Detection Area」が320x240よりも小さくなり、検出精度が悪くなることがあります。detection area offset ratio
: 「Detection Area」のオフセット(0.0 ~ 1.0の間)。
詳しくは下の画像を参照してください。
-
resizing method
: キャプチャ画像を必要なサイズへリサイズする際の方法。 Note:以下のリサイズを通さない生のキャプチャ画像に対して「Detection Area」を指定することができます。(detection_area_margin
を参照)crop
モードでは、撮影画像中心から必要なサイズ分を切り抜きます。resize
モードでは、撮影画像中心から必要なサイズと同一アスペクトの最大サイズを切り抜いた後に必要なサイズへ縮小を行います。padding
モードでは、撮影画像を必要なサイズと同一アスペクトになるようにパディングした後に必要なサイズへ縮小を行います。resize(maximum)
- カメラで使用可能な最大解像度を選択し、選択した解像度に適切なフレームレート(>=15fpsの制限は無視)で撮影します。
- 撮影した画像のサイズを
resize
と同じように変更します。
padding(maximum)
- カメラで使用可能な最大解像度を選択し、選択した解像度に適切なフレームレート(>=15fpsの制限は無視)で撮影します。
- 撮影した画像のサイズを
padding
と同じように変更します。
-
[Area]
カテゴリ-
notification direction
: この設定項目はentrance line
の向きと、どのような場合に Act Log を送信するかを設定します。top_to_bottom
:entrance line
は水平方向に描画され、face line
がentrance line
を上から下に通過した場合に Act Log を送信します。(推奨設定)left_to_right
:entrance line
は垂直方向に描画され、face line
がentrance line
を左から右に通過した場合に Act Log を送信します。right_to_left
:entrance line
は垂直方向に描画され、face line
がentrance line
を右から左に通過した場合に Act Log を送信します。
-
entrance line
: 検出ラインの位置 (0.0 ~ 2.0で表される比率)。
本アプリはentrance line
を通過したface line
をAct Log 送信対象としています。以下の図も併せてご確認ください。 -
limit ratio of Detection Area
: 指定された範囲内の顔を検出対象としません。領域は比率で指定します。notification direction
がtop_to_bottom
の場合、顔検出範囲をxmin,xmax
の形式で指定することができます。notification direction
がleft_to_right
もしくはright_to_left
の場合、顔検出範囲をymin,ymax
の形式で指定することができます。 各値は 0.0 から 1.0 までの数値でなければなりません。以下の図も併せてご確認ください。
-
-
[Face]
カテゴリ-
detection area margin
: 顔検出領域のマージン。
「Detection Area」の端で見切れた顔画像が検出されるのを防ぐためのパラメータです。
このパラメータは「Detection Area」の端からの距離を「Detection Area」に対する比率で表し、指定された範囲にある顔は検出対象としません。 -
face line
: 訪問者を検出するための「face line(顔検出基準線)」の位置(0.0 ~ 2.0で表される)。
この値が1.0の場合、バウンディングボックスの中央をface line
と見なします。
本アプリはface line
がentrance line
を通過した場合に Act Log を送信します。 本アプリがface line
を描画する向きは、notification direction
によって変わります。以下の説明も併せてご確認ください。notification direction
がtop_to_bottom
の場合、face line
は水平方向に描画されます。face line
の値が0.0の場合、バウンディングボックスの上辺にface line
が描画されます。face line
の値が2.0の場合、バウンディングボックスの下辺にface line
が描画されます。notification direction
がleft_to_right
もしくはright_to_left
の場合、face line
は垂直方向に描画されます。face line
の値が0.0の場合、バウンディングボックスの左辺にface line
が描画されます。face line
の値が2.0の場合、バウンディングボックスの右辺にface line
が描画されます。 -
probability threshold
: 確度の閾値 (0.0 ~ 1.0の間)。 検出された顔の確度がこの閾値を越えた場合にデータがActcastに送信される。 -
gender classification threshold
: 男性/女性の2値分類の閾値(-1.0 ~ 1.0の間)。gender_score
が閾値を超えている場合、その顔は女性として分類されます。 -
Image Brightness Correction
: 撮影した画像を明るくする処理を加えるかどうか。 -
exclude age
: 設定された年齢以下の結果を除外する。
-
-
[Display]
カテゴリdisplay
: アプリケーションの動作を確認するために HDMIディスプレイへ表示させるかどうか。