System and method for removing camera rotation from a panoramic video
First Claim
1. A method to remove camera rotation from a panoramic video comprisingobtaining a panoramic video of a scene in a three-dimensional space, wherein each panoramic frame of said panoramic video is mapped onto a sphere to form a spherically mapped panoramic frame;
- accepting reference axes that define said three-dimensional space;
projecting each of said spherically mapped panoramic frames onto a front plane to create a forward-looking planar video;
calculating a virtual camera rotation and a virtual camera translation, relative to said reference axes, for each planar frame of said forward-looking planar video;
wherein said calculating said virtual camera rotation and said virtual camera translation, relative to said reference axes, for each planar frame of said forward-looking planar video comprisesidentifying and locating a plurality of features in one or more key frames of said forward-looking planar video, wherein each of said plurality of features has a fixed position in said three-dimensional space;
tracking the pixel location of each of said plurality of features across the planar frames of said forward-looking planar video to create a feature track for each of said plurality of features;
calculating a 3D geometry model from said feature tracks that comprisesthe position of each of said plurality of features in said three-dimensional space;
the virtual camera rotation and the virtual camera translation, relative to said reference axes, for each planar frame of said forward-looking planar video;
wherein said 3D geometry model minimizes the error betweenthe projection of said position of each of said plurality of features onto a view plane defined by said virtual camera rotation and said virtual camera translation for each planar frame of said forward-looking planar video, andsaid pixel location of each of said plurality of features in each of said feature tracks;
obtaining said virtual camera rotation and said virtual camera translation from said 3D geometry model;
applying said virtual camera rotation to said sphere in each of said spherically mapped panoramic frames to generate a rotation-corrected panoramic frame for each of said spherically mapped panoramic frames;
combining said rotation-corrected panoramic frames to form a rotation-corrected panoramic video.
5 Assignments
0 Petitions
Accused Products
Abstract
Removes undesirable camera rotation from a panoramic video. Video frames are mapped to a sphere and then projected to a forward-looking planar video. Camera tracking or other techniques are used to derive camera position and orientation in each frame. From the camera orientation, a correcting rotation is derived and is applied to the sphere onto which the panoramic video was mapped. Re-projecting video from the rotation-corrected sphere reduces or eliminates camera rotation artifacts from the panoramic video. Rotation may be re-introduced and other visual effects may be added to the stabilized video. May be utilized in 2D virtual reality and augmented reality displays. Depth may be accepted by the system for objects in the video and utilized to create 3D stereoscopic virtual reality and augmented reality displays.
90 Citations
19 Claims
-
1. A method to remove camera rotation from a panoramic video comprising
obtaining a panoramic video of a scene in a three-dimensional space, wherein each panoramic frame of said panoramic video is mapped onto a sphere to form a spherically mapped panoramic frame; -
accepting reference axes that define said three-dimensional space; projecting each of said spherically mapped panoramic frames onto a front plane to create a forward-looking planar video; calculating a virtual camera rotation and a virtual camera translation, relative to said reference axes, for each planar frame of said forward-looking planar video; wherein said calculating said virtual camera rotation and said virtual camera translation, relative to said reference axes, for each planar frame of said forward-looking planar video comprises identifying and locating a plurality of features in one or more key frames of said forward-looking planar video, wherein each of said plurality of features has a fixed position in said three-dimensional space; tracking the pixel location of each of said plurality of features across the planar frames of said forward-looking planar video to create a feature track for each of said plurality of features; calculating a 3D geometry model from said feature tracks that comprises the position of each of said plurality of features in said three-dimensional space; the virtual camera rotation and the virtual camera translation, relative to said reference axes, for each planar frame of said forward-looking planar video; wherein said 3D geometry model minimizes the error between the projection of said position of each of said plurality of features onto a view plane defined by said virtual camera rotation and said virtual camera translation for each planar frame of said forward-looking planar video, and said pixel location of each of said plurality of features in each of said feature tracks; obtaining said virtual camera rotation and said virtual camera translation from said 3D geometry model; applying said virtual camera rotation to said sphere in each of said spherically mapped panoramic frames to generate a rotation-corrected panoramic frame for each of said spherically mapped panoramic frames; combining said rotation-corrected panoramic frames to form a rotation-corrected panoramic video. - View Dependent Claims (2, 3, 4, 5, 6, 7, 16, 17)
-
-
8. A method for removing camera rotation from a panoramic video comprising
attaching a plurality of cameras to a camera mount; -
placing said camera mount in a scene in a three-dimensional space; capturing a plurality of videos from said plurality of cameras over a common time interval; translating and rotating said camera mount in said scene over said common time interval; defining reference axes for said three-dimensional space; defining a reference sphere surrounding said camera mount; calculating a spherical region for each of said plurality of cameras as the intersection of the field of view of each of said plurality of cameras with the surface of said reference sphere; selecting a sequence of frame sample times within said common time interval; for each of said frame sample times and for each of said plurality of cameras projecting the camera frame that was captured from said camera approximately at said frame sample times onto said spherical region for the corresponding camera, to form a spherically mapped camera frame; blending said spherically mapped camera frames; combining said spherically mapped camera frames to form a spherically mapped panoramic frame for said frame sample times; projecting each of said spherically mapped panoramic frames onto a front plane to create a forward-looking planar video; obtaining depths by either or both of identifying and locating a plurality of features in one or more key frames of said forward-looking planar video, wherein each of said plurality of features has a fixed position in said three-dimensional space;
tracking the pixel location of each of said plurality of features across the planar frames of said forward-looking planar video to create a feature track for each of said plurality of features;
calculating a 3D geometry model from said feature tracks that comprises the position of each of said plurality of features in said three-dimensional space;
the virtual camera rotation and the virtual camera translation, relative to said reference axes, for each planar frame of said forward-looking planar video;
wherein said 3D geometry model minimizes the error between the projection of said position of each of said plurality of features onto a view plane defined by said virtual camera rotation and said virtual camera translation for each planar frame of said forward-looking planar video; and
said pixel location of each of said plurality of features in each of said feature tracks;
obtaining said virtual camera rotation and said virtual camera translation from said 3D geometry model;or accepting input depths to assign a plurality of features in said forward-looking planar video that comprises the position of each of said plurality of features in said three-dimensional space;
generating a 2D presentation or 3D stereoscopic presentation to display in a virtual reality or augmented reality viewing device;
applying said virtual camera rotation to said sphere in each of said spherically mapped panoramic frames to generate a rotation-corrected panoramic frame for each of said spherically mapped panoramic frames;
combining said rotation-corrected panoramic frames to form a rotation-corrected panoramic video;
generating a virtual reality environment from said 3D geometry model;
obtaining a position and orientation of a user in said virtual reality environment;
generating a view image for said user in said virtual reality environment by calculating an image plane for said user in said virtual environment based on said position and orientation of said user;
projecting each of said plurality of features from said position of each of said plurality of features onto said image plane.
-
-
9. A system to remove camera rotation from a panoramic video comprising
obtain a panoramic video of a scene in a three-dimensional space, wherein each panoramic frame of said panoramic video is mapped onto a sphere to form a spherically mapped panoramic frame; -
accept reference axes that define said three-dimensional space; project each of said spherically mapped panoramic frames onto a front plane to create a forward-looking planar video; calculate a virtual camera rotation and a virtual camera translation, relative to said reference axes, for each planar frame of said forward-looking planar video; wherein said calculate said virtual camera rotation and said virtual camera translation, relative to said reference axes, for each planar frame of said forward-looking planar video comprises identify and locating a plurality of features in one or more key frames of said forward-looking planar video, wherein each of said plurality of features has a fixed position in said three-dimensional space; track the pixel location of each of said plurality of features across the planar frames of said forward-looking planar video to create a feature track for each of said plurality of features; calculate a 3D geometry model from said feature tracks that comprises the position of each of said plurality of features in said three-dimensional space; the virtual camera rotation and the virtual camera translation, relative to said reference axes, for each planar frame of said forward-looking planar video; wherein said 3D geometry model minimizes the error between the projection of said position of each of said plurality of features onto a view plane defined by said virtual camera rotation and said virtual camera translation for each planar frame of said forward-looking planar video, and said pixel location of each of said plurality of features in each of said feature tracks; obtain said virtual camera rotation and said virtual camera translation from said 3D geometry model; apply said virtual camera rotation to said sphere in each of said spherically mapped panoramic frames to generate a rotation-corrected panoramic frame for each of said spherically mapped panoramic frames; combine said rotation-corrected panoramic frames to form a rotation-corrected panoramic video. - View Dependent Claims (10, 11, 12, 13, 14, 15, 18, 19)
-
Specification