algorithm - Computer Vision / Augmented Reality: how to overlay 3D objects over vision? -


i trying create sample application can overlay 3d objects on camera screen. placed @ particular point, , re-drawn every frame user moves camera shift perspective.

in essence, i'm looking replicate this: http://www.youtube.com/watch?v=eestftqbzow

here's attempt @ phrasing problem more precisely: consider being given initial image matrix (representing x,y pixel coords) @ time of initial object placement. once placed, every subsequent video frame need analyzed re-position object that's been placed can re-drawn (overlayed) correctly given new perspective.

i have bit of background in computer vision, unsure how particular task. reference, sample application i'm looking create android, if knows of existing code leverage great well. i'm open being directed academic papers describing algorithms need implement. thanks.

this pretty known problem in computer vision. there various papers can refer this, including systems simultaneous localisation , mapping (slam), may use either bundle adjustment or filter-based tracking. reading popular papers on these topics give lot of insight cameras , tracking in real world.

to summarise, need obtain 6d pose of camera in every frame i.e. need figure out where camera in real world (translation), , pointing (rotation). done first tracking salient features in scene, estimating 3d positions , using perceived motion of these features figure out camera pose in every frame. need define origin (you cannot use camera origin problem you're trying solve) in real world , have @ least 4 known/measured points reference start with. in video you've included in question, augment seem use printed pattern initial camera pose. track features in real world continue tracking pose.

once have camera pose, can position 3d object in real world using projections. camera pose encoded essential/fundamental camera matrix, using can transform 3d point in world 2d position in camera's frame. render virtual 3d point in real world, @ (x, y, z), project (x, y, z) 2d point (u, v) using camera matrix. render point on image obtained camera. every point of object want render, , you're done :)


Comments

Popular posts from this blog

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -

node.js - Bad Request - node js ajax post -