add IrisLandmarkLeftAndRightFromFaceLandmarks

This commit is contained in:
homuler 2021-01-30 14:41:37 +09:00
parent 39309bedba
commit 7dc6638f42
3 changed files with 187 additions and 0 deletions

View File

@ -72,6 +72,18 @@ mediapipe_simple_subgraph(
], ],
) )
mediapipe_simple_subgraph(
name = "iris_landmark_left_and_right_from_face_landmarks_gpu",
graph = "iris_landmark_left_and_right_from_face_landmarks_gpu.pbtxt",
register_as = "IrisLandmarkLeftAndRightFromFaceLandmarksGpu",
deps = [
":iris_landmark_left_and_right_gpu",
"//mediapipe/calculators/core:concateneate_normalized_landmark_list_calculator",
"//mediapipe/calculators/core:split_normalized_landmark_list_calculator",
"//mediapipe/graphs/iris_tracking/calculators:update_face_landmarks_calculator",
],
)
mediapipe_simple_subgraph( mediapipe_simple_subgraph(
name = "iris_landmark_left_and_right_cpu", name = "iris_landmark_left_and_right_cpu",
graph = "iris_landmark_left_and_right_cpu.pbtxt", graph = "iris_landmark_left_and_right_cpu.pbtxt",
@ -85,6 +97,18 @@ mediapipe_simple_subgraph(
], ],
) )
mediapipe_simple_subgraph(
name = "iris_landmark_left_and_right_from_face_landmarks_cpu",
graph = "iris_landmark_left_and_right_from_face_landmarks_cpu.pbtxt",
register_as = "IrisLandmarkLeftAndRightFromFaceLandmarksCpu",
deps = [
":iris_landmark_left_and_right_cpu",
"//mediapipe/calculators/core:concateneate_normalized_landmark_list_calculator",
"//mediapipe/calculators/core:split_normalized_landmark_list_calculator",
"//mediapipe/graphs/iris_tracking/calculators:update_face_landmarks_calculator",
],
)
exports_files( exports_files(
srcs = [ srcs = [
"iris_landmark.tflite", "iris_landmark.tflite",

View File

@ -0,0 +1,82 @@
# Detects iris landmarks, eye contour landmarks, and corresponding rect (ROI) from face landmarks.
type: "IrisLandmarkLeftAndRightFromFaceLandmarksCpu"
# CPU image. (ImageFrame)
input_stream: "IMAGE:input_video"
# Face landmarks. (NormalizedLandmarkList)
input_stream: "FACE_LANDMARKS:face_landmarks"
# Refined face landmarks. (NormalizedLandmarkList)
output_stream: "UPDATED_FACE_LANDMARKS:refined_face_landmarks"
# 71 normalized eye contour landmarks. (NormalizedLandmarkList)
output_stream: "LEFT_EYE_CONTOUR_LANDMARKS:left_eye_contour_landmarks"
# 5 normalized iris landmarks. (NormalizedLandmarkList)
output_stream: "LEFT_EYE_IRIS_LANDMARKS:left_iris_landmarks"
# Region of interest used to do calculations for the left eye. (NormalizedRect)
output_stream: "LEFT_EYE_ROI:left_eye_rect_from_landmarks"
# 71 normalized eye contour landmarks. (NormalizedLandmarkList)
output_stream: "RIGHT_EYE_CONTOUR_LANDMARKS:right_eye_contour_landmarks"
# 5 normalized iris landmarks. (NormalizedLandmarkList)
output_stream: "RIGHT_EYE_IRIS_LANDMARKS:right_iris_landmarks"
# Region of interest used to do calculations for the right eye. (NormalizedRect)
output_stream: "RIGHT_EYE_ROI:right_eye_rect_from_landmarks"
# Gets two landmarks which define left eye boundary.
node {
calculator: "SplitNormalizedLandmarkListCalculator"
input_stream: "face_landmarks"
output_stream: "left_eye_boundary_landmarks"
node_options: {
[type.googleapis.com/mediapipe.SplitVectorCalculatorOptions] {
ranges: { begin: 33 end: 34 }
ranges: { begin: 133 end: 134 }
combine_outputs: true
}
}
}
# Gets two landmarks which define right eye boundary.
node {
calculator: "SplitNormalizedLandmarkListCalculator"
input_stream: "face_landmarks"
output_stream: "right_eye_boundary_landmarks"
node_options: {
[type.googleapis.com/mediapipe.SplitVectorCalculatorOptions] {
ranges: { begin: 362 end: 363 }
ranges: { begin: 263 end: 264 }
combine_outputs: true
}
}
}
# Detects iris landmarks, eye contour landmarks, and corresponding rect (ROI).
node {
calculator: "IrisLandmarkLeftAndRightCpu"
input_stream: "IMAGE:input_video"
input_stream: "LEFT_EYE_BOUNDARY_LANDMARKS:left_eye_boundary_landmarks"
input_stream: "RIGHT_EYE_BOUNDARY_LANDMARKS:right_eye_boundary_landmarks"
output_stream: "LEFT_EYE_CONTOUR_LANDMARKS:left_eye_contour_landmarks"
output_stream: "LEFT_EYE_IRIS_LANDMARKS:left_iris_landmarks"
output_stream: "LEFT_EYE_ROI:left_eye_rect_from_landmarks"
output_stream: "RIGHT_EYE_CONTOUR_LANDMARKS:right_eye_contour_landmarks"
output_stream: "RIGHT_EYE_IRIS_LANDMARKS:right_iris_landmarks"
output_stream: "RIGHT_EYE_ROI:right_eye_rect_from_landmarks"
}
node {
calculator: "ConcatenateNormalizedLandmarkListCalculator"
input_stream: "left_eye_contour_landmarks"
input_stream: "right_eye_contour_landmarks"
output_stream: "refined_eye_landmarks"
}
node {
calculator: "UpdateFaceLandmarksCalculator"
input_stream: "NEW_EYE_LANDMARKS:refined_eye_landmarks"
input_stream: "FACE_LANDMARKS:face_landmarks"
output_stream: "UPDATED_FACE_LANDMARKS:refined_face_landmarks"
}

View File

@ -0,0 +1,81 @@
# Detects iris landmarks, eye contour landmarks, and corresponding rect (ROI) from face landmarks.
type: "IrisLandmarkLeftAndRightFromFaceLandmarksGpu"
# GPU image. (GpuBuffer)
input_stream: "IMAGE:input_video"
# Face landmarks. (NormalizedLandmarkList)
input_stream: "FACE_LANDMARKS:face_landmarks"
# Refined face landmarks. (NormalizedLandmarkList)
output_stream: "UPDATED_FACE_LANDMARKS:refined_face_landmarks"
# 71 normalized eye contour landmarks. (NormalizedLandmarkList)
output_stream: "LEFT_EYE_CONTOUR_LANDMARKS:left_eye_contour_landmarks"
# 5 normalized iris landmarks. (NormalizedLandmarkList)
output_stream: "LEFT_EYE_IRIS_LANDMARKS:left_iris_landmarks"
# Region of interest used to do calculations for the left eye. (NormalizedRect)
output_stream: "LEFT_EYE_ROI:left_eye_rect_from_landmarks"
# 71 normalized eye contour landmarks. (NormalizedLandmarkList)
output_stream: "RIGHT_EYE_CONTOUR_LANDMARKS:right_eye_contour_landmarks"
# 5 normalized iris landmarks. (NormalizedLandmarkList)
output_stream: "RIGHT_EYE_IRIS_LANDMARKS:right_iris_landmarks"
# Region of interest used to do calculations for the right eye. (NormalizedRect)
output_stream: "RIGHT_EYE_ROI:right_eye_rect_from_landmarks"
# Gets two landmarks which define left eye boundary.
node {
calculator: "SplitNormalizedLandmarkListCalculator"
input_stream: "face_landmarks"
output_stream: "left_eye_boundary_landmarks"
node_options: {
[type.googleapis.com/mediapipe.SplitVectorCalculatorOptions] {
ranges: { begin: 33 end: 34 }
ranges: { begin: 133 end: 134 }
combine_outputs: true
}
}
}
# Gets two landmarks which define right eye boundary.
node {
calculator: "SplitNormalizedLandmarkListCalculator"
input_stream: "face_landmarks"
output_stream: "right_eye_boundary_landmarks"
node_options: {
[type.googleapis.com/mediapipe.SplitVectorCalculatorOptions] {
ranges: { begin: 362 end: 363 }
ranges: { begin: 263 end: 264 }
combine_outputs: true
}
}
}
# Detects iris landmarks, eye contour landmarks, and corresponding rect (ROI).
node {
calculator: "IrisLandmarkLeftAndRightGpu"
input_stream: "IMAGE:input_image"
input_stream: "LEFT_EYE_BOUNDARY_LANDMARKS:left_eye_boundary_landmarks"
input_stream: "RIGHT_EYE_BOUNDARY_LANDMARKS:right_eye_boundary_landmarks"
output_stream: "LEFT_EYE_CONTOUR_LANDMARKS:left_eye_contour_landmarks"
output_stream: "LEFT_EYE_IRIS_LANDMARKS:left_iris_landmarks"
output_stream: "LEFT_EYE_ROI:left_eye_rect_from_landmarks"
output_stream: "RIGHT_EYE_CONTOUR_LANDMARKS:right_eye_contour_landmarks"
output_stream: "RIGHT_EYE_IRIS_LANDMARKS:right_iris_landmarks"
output_stream: "RIGHT_EYE_ROI:right_eye_rect_from_landmarks"
}
node {
calculator: "ConcatenateNormalizedLandmarkListCalculator"
input_stream: "left_eye_contour_landmarks"
input_stream: "right_eye_contour_landmarks"
output_stream: "refined_eye_landmarks"
}
node {
calculator: "UpdateFaceLandmarksCalculator"
input_stream: "NEW_EYE_LANDMARKS:refined_eye_landmarks"
input_stream: "FACE_LANDMARKS:face_landmarks"
output_stream: "UPDATED_FACE_LANDMARKS:refined_face_landmarks"
}