-1

눈의 움직임을 감지해야하는 Android 응용 프로그램을 준비 중입니다. 어쨌든 이미지에서 위의 것을 얻을 수 있지만 나는 이것을 라이브 눈에 원합니다.Android : 실시간으로 센서를 사용하여 눈의 움직임을 감지하십시오.

눈을 감지하기 위해 근접 센서를 사용할 수 있다면 이해할 수 없습니다. smartStay 기능과 같습니다.

동일한 아이디어를 제안하십시오.

+0

당신이 근접 식을 사용하지거야, 당신은 당신의 캠을 사용합니다 ... 나는이 제안에 대한 –

+0

감사 @OmarElDon ​​도움이되기를 바랍니다. 따라서 전면 카메라가 배경 화면에 나타나지 않아 눈을 감지합니다. 제 이해가 정확한지 확인하십시오. – PuneetGupta

+0

정확하게는 아닙니다. 근접 센서는 적어도 멀리있는 물체의 경우 동작 탐지기로 작동하지 않습니다 –

답변

0

우리는 깜짝 눈과 눈을 감지하기 위해 전면 카메라를 사용할 수 있습니다. 눈을 감지하려면 Vision API를 사용하십시오. 안구 추적

코드 :

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

아니요 눈 감지 또는 추적에 근접 센서를 사용할 수 없습니다. OpenCV에 기회를주십시오.
링크 : OpenCv GitHub의 : OpenCv github

+0

눈 탐지 용으로 전면 카메라를 사용할 수 있습니까? 전면 카메라가 백그라운드에서 실행될 수 있으므로 눈을 감지 할 수 있습니다. – PuneetGupta

+0

예, 가능합니다. –

+0

openCv가 없으면 안드로이드에서 실행 예제가 있습니다 (openCv에 대해 아무것도 모르는 경우). – PuneetGupta