-1

Je prépare une application Android dans laquelle je dois détecter le mouvement des yeux. D'une manière ou d'une autre, je suis capable de réaliser la chose ci-dessus sur les images, mais je veux cela sur les yeux vivants.Android: Détecter le mouvement des yeux en utilisant le capteur en temps réel

Je ne suis pas en mesure de comprendre que si nous pouvons utiliser le capteur de proximité pour détecter les yeux. Tout comme la fonction smartStay.

Veuillez suggérer les idées pour réaliser la même chose.

+0

vous ne serez pas utiliser la proximité pour cela, vous utiliserez votre cam ... J'espère que cela aide –

+0

Merci @OmarElDon ​​la suggestion. Donc, la caméra frontale n'apparaîtra pas sur l'écran en arrière-plan, elle détectera les yeux. S'il vous plaît confirmer si ma compréhension est correcte. – PuneetGupta

+0

pas exactement, c'est juste la proximité ne peut pas fonctionner comme un détecteur de mouvement au moins pour l'objet lointain –

Répondre

0

Nous pouvons utiliser la caméra frontale pour détecter les yeux et les yeux clignotent. Utilisez l'api Vision pour détecter les yeux.

code pour le suivi des yeux:

public class FaceTracker extends Tracker<Face> { 

private static final float PROB_THRESHOLD = 0.7f; 
private static final String TAG = FaceTracker.class.getSimpleName(); 
private boolean leftClosed; 
private boolean rightClosed; 

@Override 
public void onUpdate(Detector.Detections<Face> detections, Face face) { 
    if (leftClosed && face.getIsLeftEyeOpenProbability() > PROB_THRESHOLD) { 
     leftClosed = false; 
    } else if (!leftClosed && face.getIsLeftEyeOpenProbability() < PROB_THRESHOLD){ 
     leftClosed = true; 
    } 
    if (rightClosed && face.getIsRightEyeOpenProbability() > PROB_THRESHOLD) { 
     rightClosed = false; 
    } else if (!rightClosed && face.getIsRightEyeOpenProbability() < PROB_THRESHOLD) { 
     rightClosed = true; 
    } 

    if (leftClosed && !rightClosed) { 
     EventBus.getDefault().post(new LeftEyeClosedEvent()); 
    } else if (rightClosed && !leftClosed) { 
     EventBus.getDefault().post(new RightEyeClosedEvent()); 
    } else if (!leftClosed && !rightClosed) { 
     EventBus.getDefault().post(new NeutralFaceEvent()); 
    } 
} 
} 


//method to call the FaceTracker 
private void createCameraResources() { 
    Context context = getApplicationContext(); 

    // create and setup the face detector 
    mFaceDetector = new FaceDetector.Builder(context) 
      .setProminentFaceOnly(true) // optimize for single, relatively large face 
      .setTrackingEnabled(true) // enable face tracking 
      .setClassificationType(/* eyes open and smile */ FaceDetector.ALL_CLASSIFICATIONS) 
      .setMode(FaceDetector.FAST_MODE) // for one face this is OK 
      .build(); 

    // now that we've got a detector, create a processor pipeline to receive the detection 
    // results 
    mFaceDetector.setProcessor(new LargestFaceFocusingProcessor(mFaceDetector, new FaceTracker())); 

    // operational...? 
    if (!mFaceDetector.isOperational()) { 
     Log.w(TAG, "createCameraResources: detector NOT operational"); 
    } else { 
     Log.d(TAG, "createCameraResources: detector operational"); 
    } 

    // Create camera source that will capture video frames 
    // Use the front camera 
    mCameraSource = new CameraSource.Builder(this, mFaceDetector) 
      .setRequestedPreviewSize(640, 480) 
      .setFacing(CameraSource.CAMERA_FACING_FRONT) 
      .setRequestedFps(30f) 
      .build(); 
} 
0

Non, vous ne pouvez pas utiliser de capteur de proximité pour la détection ou le suivi des yeux. Donnez un coup de feu à OpenCV.
Lien: OpenCv github: OpenCv github

+0

pouvons-nous utiliser la caméra frontale pour la détection des yeux? La caméra avant peut fonctionner en arrière-plan et est capable de détecter les yeux. – PuneetGupta

+0

Oui c'est possible. –

+0

avez-vous un exemple de fonctionnement pour cela sur android sans openCv (ne sais rien sur openCv). – PuneetGupta