如何防止在Mediapipe Android中绘制人脸检测边界框

时间:2020-07-12 15:28:15

标签: android face-detection mediapipe


我最近(不到一周)开始使用mediapipe库来实现人脸检测,因此请提前道歉。到目前为止,我已经能够构建一个android aar并在我的应用程序中成功使用它。但是,我不希望出现在检测到的面部上的边界框。
  • 我将 face_detection_mobile_gpu.pbtxt 中的 DetectionsToRenderDataCalculatorOptions-> thickness 值从4.0更改为0.0,重新构建了图形,并使用没有成功
  • 我尝试从 face_detection_mobile_gpu.pbtxt 中的 DetectionsToRenderDataCalculator 节点中删除 DetectionsToRenderDataCalculatorOptions ,重建图形并应用于我的应用程序,但没有成功。
  • 我什至从 detections_to_render_data.cc 中注释了以下几行,重建了aar,应用于我的项目没有成功。

render_annotation->mutable_color()->set_r(options.color().r()); render_annotation->mutable_color()->set_g(options.color().g()); render_annotation->mutable_color()->set_b(options.color().b()); render_annotation->set_thickness(options.thickness());

我应该提到,在上述所有情况下,边界框都绘制有非常细的黑线(例如“默认”设置)。

对此的任何提示将不胜感激,谢谢

1 个答案:

答案 0 :(得分:0)

刚刚找到这个解决方案的一个简单技巧,您可以注释掉用于在计算器中渲染渲染数据的渲染代码。我已经通过在calculators/util/annotation_overlay_calculator.cc中注释掉以下几行来尝试使用FaceMesh示例

 const RenderData& render_data = cc->Inputs().Get(id).Get<RenderData>();
 renderer_->RenderDataOnImage(render_data);

for (const RenderData& render_data : render_data_vec) {
    renderer_->RenderDataOnImage(render_data);
}