android - 增强面给出了不正确的坐标
问题描述
我正在编写应用程序来计算人眼距离。我正在使用google augumented faces api。这个库很好地将图像放在脸上。但它的坐标精度非常低。问题是 - 当我通过眼睛坐标计算距离时,它会根据面部位置而变化。
您可以观看此视频以了解我在说什么。例如,当我张开嘴时距离变小了)))。或者对于娃娃脸来说它可以更大——比我的小。
这是计算眼睛距离的方法。我得到了这篇文章中描述的坐标
private fun calculateEyeDistance(face: AugmentedFace): Float {
val buffer = face.meshVertices
val leftEyePosition = Vector3(buffer.get(374 * 3),
buffer.get(374 * 3 + 1),
buffer.get(374 * 3 + 2))
val rightEyePosition = Vector3(buffer.get(145 * 3),
buffer.get(145 * 3 + 1),
buffer.get(145 * 3 + 2))
return distanceInSM(leftEyePosition, rightEyePosition)
}
private fun distanceInSM (p1: Vector3, p2: Vector3): Float {
val distanceInMeter = sqrt((p1.x-p2.x)*(p1.x-p2.x) + (p1.y-p2.y)*(p1.y-p2.y) + (p1.z-p2.z)*(p1.z-p2.z))
return round(distanceInMeter * 10000) / 100
}
是否有可能获得准确的眼距?我尝试启用 ARCore Depth API,但结果是一样的。
解决方案
推荐阅读
- wix - wix Restart Manager 成功关闭应用程序但说它不能
- javascript - 如何在数组中的全名后添加逗号?
- java - 在 JDBC for PostgreSQL 中,我可以执行 psql 的命令吗?
- c# - 创建具有 Nullable 等行为的 C# 类或结构
- vba - 在 UDF 中处理可选参数的最佳方法是什么?
- alexa - 如何为 Alexa Skill 扩展自定义插槽类型?
- python-3.x - Python bot 删除消息
- javascript - 如何在 Web 浏览器中执行一些定期运行 FOREVER 的 Javascript 代码,并在每个时间间隔后更改 DOM
- excel - 按标题移动饼图点?
- pandas - Pandas:根据其他列值获取列的最大值