【发布时间】:2016-08-13 07:50:22
【问题描述】:
如何识别图像中人体的高度和宽度?
【问题讨论】:
标签: image size artificial-intelligence
如何识别图像中人体的高度和宽度?
【问题讨论】:
标签: image size artificial-intelligence
您需要一些参考点。一张简单的照片是行不通的,除非您知道相机设置(放置、变焦、镜头畸变等)以及人物相对于相机的位置。
如果您确实有参考(例如背景中的网格或其他东西),那么您可以测量网格并从那里开始。不过听起来不像你需要的。
【讨论】:
要扩展其他人所说的内容,您可以将这个复杂的任务分解为几个(仍然很困难的)组件。
识别包含人类的像素正方形。
确定包含您知道其真实世界尺寸的参考对象的像素正方形。 (例如可乐罐、尺子等)
识别两个对象之间的 3D 关系,以便您可以将参考对象的像素转换为与人类像素相同的比例。
使用公式计算人的尺寸:
human.real_height = human.pixel_height*reference.real_height/reference.pixel_height
当然,这个过程远非万无一失,而且仍然相当困难,但它应该提供一个合理的近似值。我没有过多地使用现有的工具包,但您可以从OpenCV 开始,使用 Python 绑定。此外,SIFT algorithm 是一种有趣的技术,可能在这里有效,但我认为只有 C# 实现。
如果您只使用一张图片,第三步可能是最困难的。人们通过立体镜提取 3D 图像数据(即,我们使用双眼的图像来“推断”深度),但即便如此,它也不是万无一失的,因为颜色和阴影会让我们失望。我想可以使用单个图像,但可能更容易出错。这是一个活跃的研究领域,因此我会查找有关计算机视觉的书籍,以更好地了解当前的实用性。
【讨论】:
正如 Brad 指出的那样,这实际上是不可行的,除非图片是在受控条件下制作的。如果不是,那么您可能不走运,因为 forced perspective 甚至可以欺骗检测人体高度和宽度的最佳算法。
【讨论】: