@@ -366,19 +366,11 @@ std::shared_ptr<PipelineNode> FaceCaptureApp::getLandmarkDetectionNode(
366366 float vel = std::hypot (t.velocity_x_ , t.velocity_y_ );
367367 std::map<std::string, float > other_info = {{" vel" , vel}};
368368
369- printf (
370- " [0]face_info size: %d, t.obj_idx_: %d, "
371- " box_landmark.landmarks_x.size(): %d\n " ,
372- face_infos.size (), t.obj_idx_ ,
373- face_infos[t.obj_idx_ ].landmarks_x .size ());
374369 float face_quality = ObjectQualityHelper::getFaceQuality (
375370 face_infos[t.obj_idx_ ], image->getWidth (), image->getHeight (),
376371 other_info);
377372 face_qaulity_scores[t.obj_idx_ ] = face_quality;
378373
379- printf (" !! track id: %ld, face_qaulity_scores: %f\n " , t.track_id_ ,
380- face_quality);
381-
382374 if (face_quality > 0.4 ) {
383375 ObjectBoxLandmarkInfo face_info = rescale_face_infos[t.obj_idx_ ];
384376 // 1. 计算原始框的宽高和中心
@@ -447,6 +439,8 @@ std::shared_ptr<PipelineNode> FaceCaptureApp::getLandmarkDetectionNode(
447439 landmark_meta->landmarks_x ;
448440 rescale_face_infos[t.obj_idx_ ].landmarks_y =
449441 landmark_meta->landmarks_y ;
442+ rescale_face_infos[t.obj_idx_ ].landmarks_score =
443+ landmark_meta->landmarks_score ;
450444
451445 face_infos[t.obj_idx_ ].landmarks_x .clear ();
452446 face_infos[t.obj_idx_ ].landmarks_y .clear ();
@@ -458,16 +452,23 @@ std::shared_ptr<PipelineNode> FaceCaptureApp::getLandmarkDetectionNode(
458452 face_infos[t.obj_idx_ ].landmarks_y .push_back (
459453 landmark_meta->landmarks_y [i] / scale + crop_y);
460454 }
455+ face_infos[t.obj_idx_ ].landmarks_score =
456+ landmark_meta->landmarks_score ;
461457
462458 t.blurness =
463459 landmark_meta->attributes
464460 [TDLObjectAttributeType::OBJECT_CLS_ATTRIBUTE_FACE_BLURNESS];
465461 std::map<std::string, float > other_info = {{" vel" , vel},
466462 {" blr" , t.blurness }};
467-
468- float face_quality = ObjectQualityHelper::getFaceQuality (
469- face_infos[t.obj_idx_ ], image->getWidth (), image->getHeight (),
470- other_info);
463+ float face_quality;
464+
465+ if (face_infos[t.obj_idx_ ].landmarks_score [0 ] < 0.4 ) {
466+ face_quality = -1 .0f ; // skip directly
467+ } else {
468+ face_quality = ObjectQualityHelper::getFaceQuality (
469+ face_infos[t.obj_idx_ ], image->getWidth (), image->getHeight (),
470+ other_info);
471+ }
471472
472473 LOGI (" track_id:%lu,frame_id:%lu,face_quality:%f\n " , t.track_id_ ,
473474 frame_info->frame_id_ , face_quality);
0 commit comments