使用帧差时如何获得更好的移动物体边缘?
How to get better edges of moving objects when using frame differencing?
我想通过SoC实时跟踪移动的人,所以我使用简单的帧差分(图像(n)-图像(n-1))来提取前景对象,因为它的计算开销低。提取前景后,匹配用于查找对象。该方法在大多数情况下效果很好。但是,有两种情况会导致边不连续而匹配失败:
- 当人们行动缓慢时,
- 当人们的颜色(或强度,更准确地说)与背景相似时。
我尝试降低帧差异的阈值,但它会导致其他不需要的边缘并且使边缘变粗太多。我也试过扩张和关闭。边缘更连续,但仍然不够连续,无法成功匹配。
所以我想知道是否有一种低计算开销的方法来克服这些不连续的边缘,以便匹配可以顺利进行?如有任何建议或意见,我们将不胜感激。
帧差累加应该改进这个。
例如,如果I_Diff(n)= [abs(I(n)-I(n-1))>threshold]
,则I_Acc(n)=(I_Diff(n) || I_Diff(n-1) )
。
当然,你可以积累三个或更多I_Diff
,看看结果是否更适合你的应用。
我想通过SoC实时跟踪移动的人,所以我使用简单的帧差分(图像(n)-图像(n-1))来提取前景对象,因为它的计算开销低。提取前景后,匹配用于查找对象。该方法在大多数情况下效果很好。但是,有两种情况会导致边不连续而匹配失败:
- 当人们行动缓慢时,
- 当人们的颜色(或强度,更准确地说)与背景相似时。
我尝试降低帧差异的阈值,但它会导致其他不需要的边缘并且使边缘变粗太多。我也试过扩张和关闭。边缘更连续,但仍然不够连续,无法成功匹配。
所以我想知道是否有一种低计算开销的方法来克服这些不连续的边缘,以便匹配可以顺利进行?如有任何建议或意见,我们将不胜感激。
帧差累加应该改进这个。
例如,如果I_Diff(n)= [abs(I(n)-I(n-1))>threshold]
,则I_Acc(n)=(I_Diff(n) || I_Diff(n-1) )
。
当然,你可以积累三个或更多I_Diff
,看看结果是否更适合你的应用。