diff --git a/.gitignore b/.gitignore index f279ac9..cd90079 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ Cargo.lock # These are backup files generated by rustfmt **/*.rs.bk /refs/ -mediapipe +/mediapipe/ diff --git a/examples/holistic_tracking.rs b/examples/holistic_tracking.rs index 488f92c..a663d27 100644 --- a/examples/holistic_tracking.rs +++ b/examples/holistic_tracking.rs @@ -16,7 +16,7 @@ fn face_mesh() -> Result<()> { cap.set(videoio::CAP_PROP_FRAME_HEIGHT, 480.0)?; cap.set(videoio::CAP_PROP_FPS, 30.0)?; - let mut detector = face_mesh::HolisticDetector::default(); + let mut detector = holistic::HolisticDetector::default(); let mut raw_frame = Mat::default(); let mut rgb_frame = Mat::default(); diff --git a/mediapipe b/mediapipe new file mode 120000 index 0000000..9eafa4a --- /dev/null +++ b/mediapipe @@ -0,0 +1 @@ +../mediapipe/mediapipe \ No newline at end of file diff --git a/src/bindings.rs b/src/bindings.rs index e3ad258..2c6a8e4 100644 --- a/src/bindings.rs +++ b/src/bindings.rs @@ -72,9 +72,12 @@ fn bindgen_test_layout_mediagraph_Landmark() { ) ); } -pub const mediagraph_FeatureType_POSE: mediagraph_FeatureType = 0; -pub const mediagraph_FeatureType_HANDS: mediagraph_FeatureType = 1; -pub const mediagraph_FeatureType_FACE: mediagraph_FeatureType = 2; +pub const mediagraph_FeatureType_FACE: mediagraph_FeatureType = 0; +pub const mediagraph_FeatureType_FACES: mediagraph_FeatureType = 1; +pub const mediagraph_FeatureType_HAND: mediagraph_FeatureType = 2; +pub const mediagraph_FeatureType_HANDS: mediagraph_FeatureType = 3; +pub const mediagraph_FeatureType_POSE: mediagraph_FeatureType = 4; +pub const mediagraph_FeatureType_POSES: mediagraph_FeatureType = 5; pub type mediagraph_FeatureType = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] diff --git a/src/holistic.rs b/src/holistic.rs index 9792672..e9af1b9 100644 --- a/src/holistic.rs +++ b/src/holistic.rs @@ -10,19 +10,19 @@ impl HolisticDetector { let outputs = vec![ Output { type_: FeatureType::Pose, - name: "pose_landmarks", + name: "pose_landmarks".into(), }, Output { type_: FeatureType::Face, - name: "face_landmarks", + name: "face_landmarks".into(), }, Output { type_: FeatureType::Hand, - name: "left_hand_landmarks", + name: "left_hand_landmarks".into(), }, Output { type_: FeatureType::Hand, - name: "right_hand_landmarks", + name: "right_hand_landmarks".into(), }, ]; diff --git a/src/lib.rs b/src/lib.rs index f29408d..1fdf074 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -30,18 +30,22 @@ type mOutput = mediagraph_Output; #[derive(Debug, Clone, Copy)] pub enum FeatureType { Face, + Faces, Hand, Hands, Pose, + Poses, } impl FeatureType { fn num_landmarks(&self) -> usize { match self { FeatureType::Face => 478, + FeatureType::Faces => 478, FeatureType::Hand => 21, FeatureType::Hands => 42, FeatureType::Pose => 33, + FeatureType::Poses => 33, } } } @@ -50,9 +54,11 @@ impl Into for FeatureType { fn into(self) -> mFeatureType { match self { FeatureType::Face => mediagraph_FeatureType_FACE, - FeatureType::Hand => mediagraph_FeatureType_HANDS, + FeatureType::Faces => mediagraph_FeatureType_FACES, + FeatureType::Hand => mediagraph_FeatureType_HAND, FeatureType::Hands => mediagraph_FeatureType_HANDS, FeatureType::Pose => mediagraph_FeatureType_POSE, + FeatureType::Poses => mediagraph_FeatureType_POSES, } } }