fix holistic tracking with singular feature types
This commit is contained in:
parent
c470510a19
commit
f405c764b9
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -9,4 +9,4 @@ Cargo.lock
|
|||
# These are backup files generated by rustfmt
|
||||
**/*.rs.bk
|
||||
/refs/
|
||||
mediapipe
|
||||
/mediapipe/
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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)]
|
||||
|
|
|
@ -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(),
|
||||
},
|
||||
];
|
||||
|
||||
|
|
|
@ -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<mFeatureType> 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,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user