python - 如何使用python opencv计算两个人之间的距离?
问题描述
我正在做一个项目,我必须计算实时视频馈送中检测到的人之间的距离。为此,我遵循以下管道:
1. Detect person using MobilenetSSD Caffe model
2. Extract bouding box of the persons detected
3. Calculate the centroid of each bouding box
4. Calculate the distance between the each centroid
下面是代码片段:
for (id1, p1), (id2, p2) in combinations(centroid_dict.items(), 2):
ec_dist = dist.euclidean((p1[0], p1[1]), (p2[0], p2[1]))
print("Euclidean distance {}".format(ec_dist))
在上面的代码中id1
,andid2
是两个人的 id。p1[0]
和p1[1]
是人 1 的坐标 和x
是人 2的坐标。我正在计算两个人的坐标和坐标之间的距离。y
p2[0]
p2[1]
x
y
euclidean
x
y
现在假设两个人彼此相距 2 米,为此我在代码中得到欧几里得距离250
。现在让我们说如果这两个人现在离相机有点远,但他们之间的距离仍然是 2 米,在这种情况下,我得到的欧几里德距离为 343,这意味着如果他们在代码中的人之间的距离正在增加离相机有点远。
最初,我认为无论人在框架中的哪个位置,这个逻辑都可以正常工作,但看起来它不起作用。谁能帮我建议一些好的工作解决方案。请帮忙。谢谢
解决方案
推荐阅读
- javascript - 替代 wkhtmltopdf 以使用 javascript 图表和引导类呈现 pdf
- python - 如何使用 pandas 或 python 将具有数百万行的表从 PostgreSQL 复制到 Amazon Redshift
- javascript - 如何在 react-select 的选项中添加图标?
- c# - 自动将不同的网格组合成一个,同时保留纹理
- python - 有效替换 20k 潜在匹配中的字符串(Python)
- python - 我想水平屏蔽多个图像
- sql - 根据条件选择具有最大值的行
- c# - 如何将两个对象(源)映射到不同属性的一个目标
- javascript - 将文本文件的内容显示为组合框选项
- java - Hadoop Mapreduce JSON 对象,其成员为 .txt