QCamera2: HAL: Add FD debug logging
Issue:
No proper debugging mechanism to track FD
ROI information.
Fix:
Add FD debug logs with face ROI, landmark info
Bug: 31979356
Change-Id: Ifc59bcbaadf02f66b85fe5a7f9b9a14901a26334
diff --git a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
index 4f43bf0..97f6145 100644
--- a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
@@ -114,6 +114,13 @@
#define TIMEOUT_NEVER -1
+/* Face rect indices */
+#define FACE_LEFT 0
+#define FACE_TOP 1
+#define FACE_RIGHT 2
+#define FACE_BOTTOM 3
+#define FACE_WEIGHT 4
+
/* Face landmarks indices */
#define LEFT_EYE_X 0
#define LEFT_EYE_Y 1
@@ -7054,6 +7061,12 @@
convertToRegions(faceDetectionInfo->faces[i].face_boundary,
faceRectangles+j, -1);
+ LOGL("FD_DEBUG : Frame[%d] Face[%d] : top-left (%d, %d), "
+ "bottom-right (%d, %d)",
+ faceDetectionInfo->frame_id, i,
+ faceRectangles[j + FACE_LEFT], faceRectangles[j + FACE_TOP],
+ faceRectangles[j + FACE_RIGHT], faceRectangles[j + FACE_BOTTOM]);
+
j+= 4;
}
if (numFaces <= 0) {
@@ -7086,6 +7099,17 @@
landmarks->face_landmarks[i].mouth_center.y);
convertLandmarks(landmarks->face_landmarks[i], faceLandmarks+k);
+
+ LOGL("FD_DEBUG LANDMARK : Frame[%d] Face[%d] : "
+ "left-eye (%d, %d), right-eye (%d, %d), mouth (%d, %d)",
+ faceDetectionInfo->frame_id, i,
+ faceLandmarks[k + LEFT_EYE_X],
+ faceLandmarks[k + LEFT_EYE_Y],
+ faceLandmarks[k + RIGHT_EYE_X],
+ faceLandmarks[k + RIGHT_EYE_Y],
+ faceLandmarks[k + MOUTH_X],
+ faceLandmarks[k + MOUTH_Y]);
+
k+= TOTAL_LANDMARK_INDICES;
}
} else {
@@ -7107,6 +7131,11 @@
detected[i] = blinks->blink[i].blink_detected;
degree[2 * i] = blinks->blink[i].left_blink;
degree[2 * i + 1] = blinks->blink[i].right_blink;
+
+ LOGL("FD_DEBUG LANDMARK : Frame[%d] : Face[%d] : "
+ "blink_detected=%d, leye_blink=%d, reye_blink=%d",
+ faceDetectionInfo->frame_id, i, detected[i], degree[2 * i],
+ degree[2 * i + 1]);
}
camMetadata.update(QCAMERA3_STATS_BLINK_DETECTED,
detected, numFaces);
@@ -7120,6 +7149,10 @@
for (size_t i = 0; i < numFaces; i++) {
degree[i] = smiles->smile[i].smile_degree;
confidence[i] = smiles->smile[i].smile_confidence;
+
+ LOGL("FD_DEBUG LANDMARK : Frame[%d] : Face[%d] : "
+ "smile_degree=%d, smile_score=%d",
+ faceDetectionInfo->frame_id, i, degree[i], confidence[i]);
}
camMetadata.update(QCAMERA3_STATS_SMILE_DEGREE,
degree, numFaces);
@@ -7138,6 +7171,14 @@
direction[3 * i + 2] = gazes->gaze[i].roll_dir;
degree[2 * i] = gazes->gaze[i].left_right_gaze;
degree[2 * i + 1] = gazes->gaze[i].top_bottom_gaze;
+
+ LOGL("FD_DEBUG LANDMARK : Frame[%d] : Face[%d] : gaze_angle=%d, "
+ "updown_dir=%d, leftright_dir=%d,, roll_dir=%d, "
+ "left_right_gaze=%d, top_bottom_gaze=%d",
+ faceDetectionInfo->frame_id, i, angle[i],
+ direction[3 * i], direction[3 * i + 1],
+ direction[3 * i + 2],
+ degree[2 * i], degree[2 * i + 1]);
}
camMetadata.update(QCAMERA3_STATS_GAZE_ANGLE,
(uint8_t *)angle, numFaces);
@@ -8340,12 +8381,12 @@
void QCamera3HardwareInterface::convertToRegions(cam_rect_t rect,
int32_t *region, int weight)
{
- region[0] = rect.left;
- region[1] = rect.top;
- region[2] = rect.left + rect.width;
- region[3] = rect.top + rect.height;
+ region[FACE_LEFT] = rect.left;
+ region[FACE_TOP] = rect.top;
+ region[FACE_RIGHT] = rect.left + rect.width;
+ region[FACE_BOTTOM] = rect.top + rect.height;
if (weight > -1) {
- region[4] = weight;
+ region[FACE_WEIGHT] = weight;
}
}