Xamarin.Android Google Play Services Visionを使ってみた(顔認識)
前回からだいぶ時間が経ってしまいましたが、
今回は顔認識を試してみました。
殆ど、サンプル通りに作っていますが、ソースはGitHubにあります。
XamarinSamples/VisionFacesSample.Android at master · tonkun-no/XamarinSamples · GitHub
インストールや設定等は前回と同じです。
FaceTrackerActivity(抜粋)
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.FaceTracker); _cameraSourcePreview = FindViewById<CameraSourcePreview>(Resource.Id.cameraSourcePreview); _overlay = FindViewById<GraphicOverlay>(Resource.Id.faceOverlay); var detector = new FaceDetector.Builder(Application.Context) //.SetTrackingEnabled(false) .SetLandmarkType(LandmarkDetectionType.All) .SetMode(FaceDetectionMode.Accurate) .Build(); detector.SetProcessor( new MultiProcessor.Builder(new FaceTrackerFactory(_overlay)).Build()); _cameraSource = new CameraSource.Builder(this, detector) .SetAutoFocusEnabled(true) //.SetRequestedPreviewSize(640, 480) .SetFacing(CameraFacing.Front) .SetRequestedFps(30.0f) .Build(); }
今回は顔認識なのでFaceDetectorを使っています。
顔認識したタイミングでバーコードの時と同じようにTrackerクラスのOnNewItemメソッドが実行されています。
後はそのタイミングで、顔部分に表示するためのクラスを生成して、都度描画している感じです。
ビルドして実行すると、無事顔認識ができました。 カメラを横にするとプレビューサイズがおかしくなるのは、どこか間違ってるんだとは思いますが・・・ご容赦を。
本当にやってみたかった事はこの先なんですが、また出来たら書こうと思います。