请教算法问题,关于:对比数据,求“相似度”(生物特征识别)
请教算法问题,关于:对比数据的“相似度”(生物特征识别)我数学弱爆了,而且几乎不懂算法,平常都是只调用API。
大家可能知道微软的 Kinect ,它是一种体感设备,可以获取空间内的人体信息。
现在呢,我把信息整理出来了,如图所示:
(身高 1.5米,不是本人,大家不要对号入座)
我现在在做的就是人体识别:人有高矮胖瘦,通过对比肩宽、身高、手臂长度等等。
所以呢,我现在定义了一组数据(结构体),数据成员就是各个骨头的长度。
我先采集一个目标,作为“主人特征”储存起来。
然后采集其他人特征对比,判断是否是主人(新采集的数据与主人数据的相似度),这就需要一种算法。
体感设备的返回的数据是毫米单位,每次采集都有有一定误差,所以即使是同一个人也不见得完全一样。
那么就设定一个阈值,比如93%。只要相似度达到93%,就“合格通过”。
大家用 C 语言给一个示例,比如 人体特征 的结构体是:
typedef struct _Man
{//单位:毫米
float shengao;//身高
float jiankuan;//肩宽
float shoubi;//手臂
float tuijiao;//腿脚
}Man;
然后大家对比 2组数据 的相似度,最终返回的结果,可以是一个浮点型,比如:0.936,代表相似度为:93.6%
比如:
float DuiBi(Man zhuren ,Man mubiao)//返回值就是对比的结果(相似度)
{
float ret;
······
return ret;
}
[ 本帖最后由 hackerjiang 于 2012-2-5 06:33 编辑 ]