48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# MediaPipe subgraph that calculates hand ROI from palm detection.
 | 
						|
 | 
						|
type: "PalmDetectionDetectionToRoi"
 | 
						|
 | 
						|
# Palm detection. (Detection)
 | 
						|
input_stream: "DETECTION:detection"
 | 
						|
# Frame size. (std::pair<int, int>)
 | 
						|
input_stream: "IMAGE_SIZE:image_size"
 | 
						|
 | 
						|
# ROI (region of interest) according to landmarks, represented as normalized
 | 
						|
# rect. (NormalizedRect)
 | 
						|
output_stream: "ROI:roi"
 | 
						|
 | 
						|
# Converts results of palm detection into a rectangle (normalized by image size)
 | 
						|
# that encloses the palm and is rotated such that the line connecting center of
 | 
						|
# the wrist and MCP of the middle finger is aligned with the Y-axis of the
 | 
						|
# rectangle.
 | 
						|
node {
 | 
						|
  calculator: "DetectionsToRectsCalculator"
 | 
						|
  input_stream: "DETECTION:detection"
 | 
						|
  input_stream: "IMAGE_SIZE:image_size"
 | 
						|
  output_stream: "NORM_RECT:raw_roi"
 | 
						|
  options: {
 | 
						|
    [mediapipe.DetectionsToRectsCalculatorOptions.ext] {
 | 
						|
      rotation_vector_start_keypoint_index: 0  # Center of wrist.
 | 
						|
      rotation_vector_end_keypoint_index: 2  # MCP of middle finger.
 | 
						|
      rotation_vector_target_angle_degrees: 90
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
# Expands and shifts the rectangle that contains the palm so that it's likely
 | 
						|
# to cover the entire hand.
 | 
						|
node {
 | 
						|
  calculator: "RectTransformationCalculator"
 | 
						|
  input_stream: "NORM_RECT:raw_roi"
 | 
						|
  input_stream: "IMAGE_SIZE:image_size"
 | 
						|
  output_stream: "roi"
 | 
						|
  options: {
 | 
						|
    [mediapipe.RectTransformationCalculatorOptions.ext] {
 | 
						|
      scale_x: 2.6
 | 
						|
      scale_y: 2.6
 | 
						|
      shift_y: -0.5
 | 
						|
      square_long: true
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 |