2016-07-15 9 views
0

私は顔を検出するとすぐに画像をキャプチャする出席システム用のアンドロイドアプリを1つ作成しています。私はこれを達成することができますが、ただ1つの問題だけで、このシステムは現時点で生存確認がないため従業員の写真で偽装することができます。アンドロイドの顔検出で顔検出の有効性を確認する方法

mCamera.setFaceDetectionListener(new Camera.FaceDetectionListener(){ 
    @Override 
    public void onFaceDetection(final Camera.Face[]faces,Camera camera){ 
     if(faces!=null&&faces.length>0){ 
      try{ 
       if(lastCaptureTiume+10000<=System.currentTimeMillis()){ 

        mCamera.takePicture(null,null,jpegCallback); 
        lastCaptureTiume=System.currentTimeMillis(); 
       } 
      } 
      catch(Exception e) 
      { 
      } 
     } 
    }); 
} 

jpegCallbackでは、顔を確認し、それ以降の処理のためにトリミングします。

私は生き物のサンプルを探しましたが運がありません。どうすれば生き生きさを実現できるのか分かっていれば助けてください。

答えて

0

複数の写真を順番に撮影し、それらが明白でないかどうかを確認することができます(翻訳や回転など)。

問題は、あなたがシステムゲーミング心配している、そしてがシステムに絵を提示することが可能であるならば、何もタブレットや電子ブックリーダーを提示するために他の誰かを停止しないだろうということです短いアニメーションをシステムに表示するのに十分なほどスマートです。

可能であれば、おそらく別のPOVから全身の画像を撮る方がより効果的かもしれません。それはアンドロイドアプリの実行場所(自動バッジブースなど)によって異なります。それが出席者の電話で実行されていて、あなたが自分の身元を確かめたいのであれば、私は恐れることはできません。

Android version 5では、顔のzスキャンを試してみることができます。錐台の5cm離れた複数の面に急速に焦点を当てる。顔が3Dの頭蓋骨に取り付けられている場合、鼻から同心円状に動いているフォーカスされた領域を「見る」でしょう。本当に平らな顔をした出席者がいない限り。ランダム距離に焦点を合わせて2〜3回焦点を合わせる必要があるため、人物がカメラから離れて補正することはできません。フォーカシングを推定するには、画像のローカル分散を試してみてください。

もちろん、これはあなたのアプリが互換性のあるモデルを制限します。