2016-07-15 26 views
0

Ich erstelle eine Android-App für Anwesenheitssystem, in dem ich das Bild erfassen werde, sobald ich das Gesicht erkennen. Ich bin in der Lage dies zu erreichen, aber mit nur einem Problem kann dieses System mit dem Foto des Angestellten gefälscht werden, da es momentan keinen Live-Check gibt.So überprüfen Sie die Lebendigkeit in Gesichtserkennung in Android Gesichtserkennung

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) 
      { 
      } 
     } 
    }); 
} 

Auf jpegCallback überprüfe ich das Gesicht und beschneide es für den weiteren Prozess.

Ich suchte nach einigen Beispielen für Lebhaftigkeit aber kein Glück, Wenn jemand weiß, wie ich Lebendigkeit implementieren kann, bitte helfen.

Antwort

0

Sie könnten mehr als ein Bild der Reihe nach aufnehmen und sehen, ob sie sich auf nicht naheliegende Weise ändern (z. B. nicht übersetzen oder drehen).

Das Problem ist, dass, wenn das System über Gaming besorgt sind, und es ist machbar jetzt ein Bild auf das System zu präsentieren, jemand nichts anderes aufhören würde eine Tablette oder E-Book-Reader zu präsentieren, intelligent genug, um eine kurze Animation zum System anzuzeigen.

Es könnte vielleicht fruchtbarer sein, wenn möglich ein Ganzkörperbild von einem anderen POV zu machen. Alles hängt davon ab, wo die Android-App läuft (z. B. eine automatische Badge). Wenn es auf dem Telefon des Teilnehmers läuft und Sie sich seiner Identität sicher sein wollen, können Sie leider nicht.

Mit Android version 5 können Sie versuchen, einen z-Scan des Gesichts zu verwenden. Konzentriere dich schnell auf mehrere Ebenen, die 5 cm voneinander entfernt im Kegelstumpf liegen. Wenn das Gesicht an einem 3D-Schädel befestigt ist, "sehen" Sie einen fokussierten Bereich, der sich konzentrisch von der Nase nach außen bewegt. Es sei denn, Sie haben einen Teilnehmer mit einem wirklich flachen Gesicht. Sie müssen es zwei- oder dreimal tun, indem Sie auf zufällige Entfernungen fokussieren, so dass sich die Person nicht von der Kamera weg bewegen kann, um sie zu kompensieren. Um die Fokussierung zu schätzen, können Sie versuchen, die lokale Varianz im Bild zu verwenden.

Dies schränkt natürlich die Modelle ein, mit denen Ihre App kompatibel sein wird.