通过倾斜相机本身来增大固定距离内垂直方向测量距离的求解过程

最近在做相机的人体姿态检测问题,由于选择的是Kinect_v1相机,根据Kinect的参数表:
在这里插入图片描述
可以知道Kinect_v1的垂直角度是43°,图像大小640*480.根据项目需求,我们需要相机在人体0.5米远的地方检测到人体的膝盖到腰部之间的位置,也就是大腿部分。一个成年人大概身高170cm,大腿部分高度大概50cm。根据针孔成像原理:
在这里插入图片描述
当已知图像高度为480,且视角为43°时,我们可以求得图像的像距X为609.再根据相机距人体0.5米,列方程:
480/609=x/0.5
得到x=0.394

可以看到其能检测的高度只有0.4m不能满足要求。在不能改变水平距离的情况下,我们考虑是否能通过调整相机的角度来达到更好的检测效果。示意图如下:
在这里插入图片描述

已知条件包括:
BC=480;
DE=609;
∠BEC=43°;
EF=500;
GH=500;
BE=CE。
待求量为:∠ABC
这里直接求∠ABC不太好算,所以可以考虑从别的角入手。由于AB∥FH,所以我们可以得到
∠ABG=∠BGH;
同时由∠BEC=43°与BE=CE可知:
∠BCE=∠CBE=68.5°
则∠ABC=∠ABG-∠CBE=∠ABG-68.5=∠BGH-68.5
在△EGH中,由于∠BEC=∠GEH=43°,所以求∠BGH等同于求∠EHG。
设∠EHG=φ;EG=a;EH=b。
联立方程:

1)sin∠EGF=EF/EG=500/a;
2)tan∠EGF=500/FG;
3)cos∠EHG=HF/EH=(500+FG)/EH=(500+FG)/b。

由2)得FG=500/tan∠EGF,代入3)式得

b=(500+500/tan∠EGF)/cos∠EHG

由1)得:

a=500/sin∠EGF

再根据三角形定理S=1/2absinC可知:
1/2500/sin∠EGFb=(500+500/tan∠EGF)/cos∠EHGsin∠EHG=1/2EFGH=1/2500*500

化简得:

(1/sin∠EGF)((1+1/tan∠EGF)/cos∠EHG)sin∠EHG=1

在这里插入图片描述

移项:
在这里插入图片描述

两边同乘cos∠EGH

在这里插入图片描述
由于∠EGF=∠HEG+∠EHG=43+φ,所以上式化为关于未知数φ的三角函数关系式:
在这里插入图片描述
左右两边同时展开:
在这里插入图片描述
同除以cosφ的三次方得:
(1/cosφ)(0.049tanφ^2+1.413tanφ ) = (0.682+0.731tanφ)(0.682+0.731tanφ)
同时根据:
cosx=±1/根号(tanφ^2+1)
所以最后式子可以化为只包含未知数tanφ的函数:
在这里插入图片描述

虽然其只包含一个未知数,但是该式子同样不能用简单的方式解出来,但是我们可以通过尝试的取值判断是否存在解
令tanφ=x,转化为关于x的函数:
在这里插入图片描述
由于
f(0) = -0.465<0;
f(1) = 0.071>0;
所以x在0-1之间至少存在一个解,根据三角形本身的一些性质我们大致能确定这个解是唯一的。通过类似于二分法我们逼近这个近似解:

f(0.8) = -0.117<0;
f(0.9) = -0.031<0;
f(0.95) = 0.018>0;
f(0.925) = -0.007<0;
f(0.9375) = 0.005>0;
f(0.93) = -0.002<0
f(0.934) = 0.001>0

当取值为0.934时f(x)的值为0.001非常接近于0,则我们认为x=0.934是该方程的一个解,应该也是唯一解。
当tanφ=0.943
反求得φ≈43.07
则∠EGH=180-43-43.07=93.93
有此求得∠ABC=∠EGH-68.5=25.43°
即当相机向下倾斜25.43°时满足测量要求。
理论求解,实际效果不一定。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶执念

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值