반응형
이번에는 Face Tracker예제로 테스트 하였습니다.
바로 FaceTracker입니다.
이 예제는 얼굴에서 눈을 얼마나 떴는지, 웃고있는지를 카메라 프리뷰를 통해 알려줍니다.
앞서 했던 photo_demo 예제는 눈코입등을 찾아주는 Landmark였고,
이번꺼는 Classification입니다.
Classification은 눈을 얼만큼 뜨고있는지, 얼마나 웃고있는지를 보여줍니다.
FaceGraphic.java에서
draw함수에 보면 위 사진과 같이 글자를 나타냅니다.
1 2 3 4 5 6 7 | float x = translateX(face.getPosition().x + face.getWidth() / 2); float y = translateY(face.getPosition().y + face.getHeight() / 2); canvas.drawCircle(face.getPosition().x, face.getPosition().y, FACE_POSITION_RADIUS, mFacePositionPaint); canvas.drawText("id: " + mFaceId, x + ID_X_OFFSET, y + ID_Y_OFFSET, mIdPaint); canvas.drawText("happiness: " + String.format("%.2f", face.getIsSmilingProbability()), x - ID_X_OFFSET, y - ID_Y_OFFSET, mIdPaint); canvas.drawText("right eye: " + String.format("%.2f", face.getIsRightEyeOpenProbability()), x + ID_X_OFFSET * 2, y + ID_Y_OFFSET * 2, mIdPaint); canvas.drawText("left eye: " + String.format("%.2f", face.getIsLeftEyeOpenProbability()), x - ID_X_OFFSET*2, y - ID_Y_OFFSET*2, mIdPaint); | cs |
Line 1~2, : 글자를 디스플레이할 위치를 지정합니다.
face.getPosition()은 얼굴의 왼쪽 위 좌표입니다.
그리고 getWidth()는 얼굴의 폭이고, getHeight()는 높이입니다.
값을 더해서 2로 나눠주면 얼굴의 중앙에 오게됩니다.
Line 3 : 제일 위 사진에서 원의 위치입니다.(위에서 계산된 값을 바탕으로 원을 그립니다.)
Line 4 : id값을 디스플레이 합니다. OFFSET은 미리 정의되어 있습니다.
Line 5 : 얼마나 웃고있는지 값이고,
Line 6 : 오른쪽 눈을 얼마나 뜨고있는지
Line 7 : 왼쪽눈을 얼마나 뜨고있는지를 알려줍니다.
리턴값은 0.0~1.0값을 반환합니다.
헌데 위의 사진을 보면 마이너스 값이 있네요.
다시 코드를 보니 버그가 있는것 같습니다.
요런식으로...
근데 이건 로컬설정이라 별 도움은 안되고, Math함수로 수정합니다.
1 2 3 | canvas.drawText("happiness: " + Math.round(face.getIsSmilingProbability()*100d)/100d, x - ID_X_OFFSET, y - ID_Y_OFFSET, mIdPaint); canvas.drawText("right eye: " + Math.round( face.getIsRightEyeOpenProbability()*100d)/100d, x + ID_X_OFFSET * 2, y + ID_Y_OFFSET * 2, mIdPaint); canvas.drawText("left eye: " + Math.round(face.getIsLeftEyeOpenProbability()*100d)/100d, x - ID_X_OFFSET*2, y - ID_Y_OFFSET*2, mIdPaint);Colored by Color Scripter | cs |
코드를 위와 같이 수정하고 실행합니다.
마이너스값이 나오지 않습니다.
반응형
'Study > Android' 카테고리의 다른 글
android 8 오레오(Oreo) 알림창(Notification) (0) | 2018.12.05 |
---|---|
Face detection(얼굴인식) in Android Using Mobile Vision API - 3 (0) | 2018.06.05 |
Face detection(얼굴인식) in Android Using Mobile Vision API - 2 (0) | 2018.06.01 |
Face detection(얼굴인식) in Android Using Mobile Vision API - 1 (0) | 2018.05.31 |
Face detection(얼굴인식) in Android Using Luxand Mirror Reality (0) | 2018.05.30 |