机器视觉 增强现实分享 http://blog.sciencenet.cn/u/wanglin193

博文

如何跟踪一本书?

已有 6313 次阅读 2010-10-12 13:08 |个人分类:增强现实|系统分类:科研笔记| multiscale, 8-parameter, Lucas, Kanade


指定一本书的封面作为模板,如何在一个图像里找到它的位置和姿态?

模板:  ,图像: 

基本上有两种方法:1. 基于特征的方法,需要计算模板的特征,比如角点局部梯度等,然后在图像中定位,流行的方法有SIFT和HOG(Histogram of oriented gradients)等。2. 基于区域的方法,更像是一种模板匹配的方法,利用梯度下降的方法,比如Lucas Kanade算法。实际上第一种方法更适合进行物体检测,而第二种方法在初始搜索位置(比如视频前一帧中物体位置)和物体实际位置(物体在当前帧中位置)非常接近的时候,可以很快收敛到最优点,这个特性可以用来进行跟踪。

 

利用国庆长假做了个多尺度L-K算法的小程序,可以实现6个参数仿射(affine)变换和8个参数投影变换的模板匹配。作用是定位一本书(一个矩形平面),得到模板与物体实际位置的8个变换参数,模板就是上面那个书的封面。各个尺度上匹配结果,蓝色线框为初始位置,红色为收敛结果。效果如下:


 

图像和模板的金字塔每层尺寸分别是:

       图像    |   模板
    40×30  |  18×13
    80×60  |  37×27
160×120 |  75×54
320×240 | 151×109

迭代次数分别是38,6,8,7,可以看出在分辨率最小的图上,匹配结果已经基本达到预期,在其他几层上很快就收敛了。

 

根据LK算法的描述,关键在于计算匹配函数对于8个参数偏导数,求出最快下降方向pinv  

   %先计算模板梯度
   [gx,gy]=gradient(temp);
    xx=x.*x;
    xy=x.*y;
    yy=y.*y;
    %再算Jacobian与梯度内积,x,y是模板上每个点坐标,gx,gy是梯度
    JJ=[x.*gx, x.*gy, y.*gx, y.*gy, gx, gy, -xx.*gx-xy.*gy, -xy.*gx-yy.*gy];   
    pinv = inv(JJ'*JJ)*JJ';

以上计算是在模板上离线进行的,可以称为训练(training)步骤。

如果计算仿射变换,Jacobian矩阵为6列:
    JJ=[x.*gx, x.*gy, y.*gx, y.*gy, gx, gy]; 
如果计算光流,Jacobian矩阵为2列:
    JJ=[gx, gy]; 

 

匹配(fitting)是个迭代过程:
    %imw是从图像采样结果,warping image
    imr = temp - imw;
    %乘以最快下降方向,得到参数变化
    dp = pinv*imr(:);
    %compositional method
    Ht = Ht* [1+dp(1),dp(3),dp(5);dp(2),1+dp(4),dp(6);dp(7),dp(8),1];
    Ht = Ht/Ht(3,3);

 

Ht是其次坐标表达的变换矩阵。金字塔每层迭代结束后,Ht要传给下一层,作为初始参数,对应大一号模板和大一号图像的匹配。每层开始,计算矩形四个角点tpcor的初始位置(图上蓝线框):


    %tpcor是以模板中心为原点的4个角点坐标
    pd = (Ht*[tpcor;ones(1,4)])';
    pd(:,1)=pd(:,1)./pd(:,3);
    pd(:,2)=pd(:,2)./pd(:,3);   
    plot(pd(:,1),pd(:,2),'-b',pd([1,4],1),pd([1,4],2),'-b');

程序没有对物体的4个角点进行任何约束,实际上它们的位置应该满足一定的统计特性。

 

这个方法很简单,虽然只有8个参数,只能能跟踪平面,但它可以作为跟踪复杂物体的基础。因为任何物体都可以用有限个数的空间平面来近似拟合。各个平面的跟踪不是单独进行的,它们总体要满足一定的约束,可以用很少的参数来表达。比如人脸,可以用几十个三角型平面来表达,但它的形状姿态变化却可以用子空间(就是PCA)法用10多个参数来表达,它发展出来的方法就是著名的Active Appearence Model。 

 

L-K方法请参考 http://www.sciencenet.cn/m/user_content.aspx?id=367906





https://blog.sciencenet.cn/blog-465130-372479.html

上一篇:Lucas-Kanade 算法
下一篇:Real-time augmented reality based on planar homography
收藏 IP: 58.247.12.*| 热度|

3 黄锦芳 zdlh dsk75

发表评论 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-28 07:12

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部