微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从用户脸上的两个地标计算大小

如何解决从用户脸上的两个地标计算大小

我目前正在根据人脸地标计算实际距离,例如,我有以下两个地标,我可以为其输出地标。

地标[6]:(0.36116672,0.93204623,0.0019629495)

地标[164]:(0.36148804,0.99501055,-0.06169401)

如何根据以上信息计算实际尺寸?

任何帮助将不胜感激

解决方法

也许你可以从 mediapipe(python) face_mesh 文件中获得灵感。它在 mediapipe.solutions.drawing_utils 函数中,他们定义了一个名为

的函数
def _normalized_to_pixel_coordinates(
    normalized_x: float,normalized_y: float,image_width: int,image_height: int) -> Union[None,Tuple[int,int]]:
  """Converts normalized value pair to pixel coordinates."""

  # Checks if the float value is between 0 and 1.
  def is_valid_normalized_value(value: float) -> bool:
    return (value > 0 or math.isclose(0,value)) and (value < 1 or
                                                      math.isclose(1,value))

  if not (is_valid_normalized_value(normalized_x) and
          is_valid_normalized_value(normalized_y)):
    # TODO: Draw coordinates even if it's outside of the image bounds.
    return None
  x_px = min(math.floor(normalized_x * image_width),image_width - 1)
  y_px = min(math.floor(normalized_y * image_height),image_height - 1)
  return x_px,y_px 

很容易理解。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。