Refactor encode fullframe body face

This commit is contained in:
Barzan Hayati 2025-09-17 19:10:50 +00:00
parent 4c925361a1
commit e70c9bbd6a

View File

@ -31,7 +31,6 @@ unsigned int FaceNvInferServerManager::nvds_lib_minor_version =
const gchar pgie_class_str[PGIE_DETECTED_CLASS_NUM][32] = {"Person_SGIE"};
const gchar sgie_class_str[SGIE_DETECTED_CLASS_NUM][32] = {"PreciseFace_SGIE"};
int high_confidence_faces = 0;
std::vector<FaceNvInferServerManager::FACE_BODY>
FaceNvInferServerManager::face_body_list;
@ -1401,20 +1400,10 @@ GstPadProbeReturn FaceNvInferServerManager::sgie_pad_buffer_probe(
if ((strcmp(layer.layerName, "bbox") == 0)) {
for (int l = 0; l < 4; l++) {
face_location[l] = data_face[l];
// std::cout << "face_location[" << l
// << "]= " << data_face[l] <<
// std::endl;
}
}
if ((strcmp(layer.layerName, "score") == 0)) {
score_face = data_face[0];
// std::cout << "score_face= " << score_face
// <<std::endl; if (score_face>0.9){
// high_confidence_faces++;
// std::cout << "high_confidence_faces= " <<
// high_confidence_faces << std::endl;
// std::quick_exit(0);
// }
}
} else {
// is_zero_embedding_vector = 0: send data into server!
@ -1503,70 +1492,48 @@ GstPadProbeReturn FaceNvInferServerManager::sgie_pad_buffer_probe(
text_params.font_params.font_size = 11;
text_params.font_params.font_color =
NvOSD_ColorParams{1, 1, 1, 1};
// adding landmarks to obj_meta as user_meta
// NvDsUserMeta *um1 =
// nvds_acquire_user_meta_from_pool(batch_meta);
// um1->user_meta_data = set_metadata_ptr(
// &(data[index * 57])); // Add landmarks here
// um1->base_meta.meta_type =
// NVDS_USER_OBJECT_META_LANDMARKS_AND_SOURCE_ID;
// um1->base_meta.copy_func
// =(NvDsMetaCopyFunc)copy_user_meta;
// um1->base_meta.release_func =
// (NvDsMetaReleaseFunc)release_user_meta;
// nvds_add_user_meta_to_obj(obj_meta, um1);
// nvds_add_obj_meta_to_frame(frame_meta, final_face_obj,
// NULL);
if (is_zero_embedding_vector == false) {
// encode_objects_attach_meta(ctx, ip_surf, frame_meta,
// obj_meta);
// // collect all body objects
// auto body_map = collect_body_objects(frame_meta);
// // encode body corresponding to this object
find_body = false;
auto it = body_map.find(obj_meta->object_id);
if (it != body_map.end()) {
NvDsObjectMeta *body_meta = it->second;
encode_objects_attach_meta(ctx, ip_surf, frame_meta,
body_meta);
find_body = true;
} else {
// body object not found for this object_id
// std::cout << "No body object found for object_id
// = " << obj_meta->object_id << std::endl;
}
if (find_body == true) {
// if (current_full_frame_is_captured == false) {
// encode_full_frame_attach_meta(ctx, ip_surf,
// frame_meta);
// current_full_frame_is_captured = true;
// }
encode_full_frame_attach_meta(ctx, ip_surf,
frame_meta);
encode_objects_attach_meta(ctx, ip_surf, frame_meta,
final_face_obj);
}
// adding embedding vector to final_face_obj as
// user_meta
NvDsUserMeta *user_meta_embedding_vector =
nvds_acquire_user_meta_from_pool(batch_meta);
assert(user_meta_embedding_vector != NULL);
user_meta_embedding_vector->user_meta_data =
set_metadata_ptr(
embedding_vector); // Add embedding vector
user_meta_embedding_vector->base_meta.meta_type =
NVDS_USER_EMBEDDING_VECTOR_META;
user_meta_embedding_vector->base_meta.copy_func =
(NvDsMetaCopyFunc)copy_user_meta;
user_meta_embedding_vector->base_meta.release_func =
(NvDsMetaReleaseFunc)release_user_meta;
nvds_add_user_meta_to_obj(final_face_obj,
user_meta_embedding_vector);
// // collect all body objects
// auto body_map = collect_body_objects(frame_meta);
// // encode body corresponding to this object
find_body = false;
auto it = body_map.find(obj_meta->object_id);
if (it != body_map.end()) {
NvDsObjectMeta *body_meta = it->second;
encode_objects_attach_meta(ctx, ip_surf, frame_meta,
body_meta);
find_body = true;
} else {
// body object not found for this object_id
// std::cout << "No body object found for object_id
// = " << obj_meta->object_id << std::endl;
}
if (find_body == true) {
// if (current_full_frame_is_captured == false) {
// current_full_frame_is_captured = true;
// }
encode_full_frame_attach_meta(ctx, ip_surf, frame_meta);
encode_objects_attach_meta(ctx, ip_surf, frame_meta,
final_face_obj);
}
// adding embedding vector to final_face_obj as user_meta
NvDsUserMeta *user_meta_embedding_vector =
nvds_acquire_user_meta_from_pool(batch_meta);
assert(user_meta_embedding_vector != NULL);
user_meta_embedding_vector->user_meta_data =
set_metadata_ptr(
embedding_vector); // Add embedding vector
user_meta_embedding_vector->base_meta.meta_type =
NVDS_USER_EMBEDDING_VECTOR_META;
user_meta_embedding_vector->base_meta.copy_func =
(NvDsMetaCopyFunc)copy_user_meta;
user_meta_embedding_vector->base_meta.release_func =
(NvDsMetaReleaseFunc)release_user_meta;
nvds_add_user_meta_to_obj(final_face_obj,
user_meta_embedding_vector);
nvds_add_obj_meta_to_frame(frame_meta, final_face_obj,
obj_meta);
}