Patent Description:
At present, when a panoramic video is shot, it is usually to hold a panoramic shooting device in hand to shoot. When a mobile shooting is taken, a phenomenon of jitter occurs in the panoramic shooting video due to unstable hands. When a panoramic view angle is acquired, the focus of the original lens is often lost due to the movement or shaking of the camera, which affects the viewing experience of the panoramic video. One of the current solutions is to use a pan-tilt to stabilize the panoramic shooting device to stabilize the pictures taken. However, the disadvantage is that the pan-tilt is more expensive and the volume is generally larger, and the pan-tilt does not completely solve the problem of picture jitter when shooting the video with a handheld panoramic shooting device.

When a panoramic video viewer wants to watch from a viewing angle of an original motion direction of the video, and the impact of artificial shaking on the video can be avoided, it is necessary to enable the video to keep the viewing angle changing in the original shooting direction and keep the video stable. Accordingly, it is necessary to study a panoramic video anti-shake method that can retain the change state of the original shooting direction of the shooting device.

The document <CIT> discloses a method and system for panoramic video stabilization, and a portable terminal. The method includes: acquiring in real time the timestamp of a current state, an accelerometer count value, and an angular speed value of a portable terminal; establishing the rotation vector of the current state by utilizing an extended Kalman filter combined with the accelerometer count value and the angular speed value; calculating a current rotation matrix via the Rodrigues' rotation formula on the basis of the rotation vector of the current state; and rotating a panoramic image on the basis of the current rotation matrix and producing a stabilized video frame.

The document <NPL>, discloses two real-time motion smoothing algorithms for video stabilization using a pure 3D rotation motion model with known camera projection parameters. Both proposed algorithms aim at smoothing 3D rotation matrix sequences in acausal way. The first algorithm smooths the 3D rotation sequences in a way similar to 1st-order IIR filtering. The second algorithm uses sequential probabilistic estimation under a constant angular velocity model. These two algorithms are generalized from classical 2D motion smoothing algorithms, the manifold structure of the rotation matrices is exploited so that the proposed algorithms directly smooth the 3D rotation sequences on the manifold.

The document <NPL>, addresses the problem of stabilizing spherical videos. Whereas various techniques have been proposed to stabilize conventional videos, this work is the first approach proposed for omnidirectional videos. It introduces a method for extracting the camera path and 3D-information of the environment. A desired smooth stabilized path is obtained by modifying the original camera path. A method for synthesizing a stabilized video with respect to the desired path is provided. Each output frame is generated by warping a single frame from the input video.

The purpose of the present application is to provide a panoramic video anti-shake method, a computer-readable storage medium and a portable terminal, and is intended to solve the problem of the loss of the original lens focus when the viewing angle of the panoramic video is acquired. The method can, through decomposing the motion of the camera, retain the original shooting angle of the camera, synthesize the motion of the virtual lens and generate a stable video.

Technical Solution The invention is set out in the independent claims.

In a first aspect, the present disclosure provides a panoramic video anti-shake method, which includes:.

In a second aspect, the present disclosure provides a computer-readable storage medium, on which a computer program is stored, the computer program, when executed by a processor, implements the steps of the above-mentioned panoramic video anti-shake method.

In a third aspect, the present disclosure provides a portable terminal, which includes:.

In the present disclosure, by decomposing the motion of the camera and retaining the synthesized motion of the virtual lens at the original shooting angle of the camera, the stable video can be generated. Therefore, this method can keep smooth motion of the rendering lens, generate the stable video, and retain the original shooting angle of the camera, which has strong robustness to large noise scenes and most sports scenes.

In order to make the objectives, technical solution, and advantages of the present disclosure clearer, the present disclosure will be described in detail with reference to the accompanying drawings and embodiments. It should be appreciated that the specific embodiments described here are only used for explaining the present disclosure, rather than limiting the present disclosure.

In order to illustrate the technical solution of the present disclosure, specific embodiments are used for description below.

Referring to <FIG>, the panoramic video anti-shake method provided by the Embodiment <NUM> of the present disclosure includes the following steps.

S101: a world coordinate of any one reference point in a world coordinate system is acquired in real time, and a camera coordinate corresponding to the reference point in a portable terminal and an angular velocity value of a gyroscope in the portable terminal in a current state are simultaneously acquired.

In the embodiment I of the present disclosure, S101 can specifically be as follows.

The world coordinate of the reference point is Pw, and the camera coordinate is Pc, the following relationship is specifically included: <MAT>.

In the formula (<NUM>), <MAT> is a rotation matrix by which the camera coordinate is transformed to the world coordinate; the elements r<NUM> to r<NUM> are elements of the rotation matrix Rw2c,.

unit matrix. <MAT>, I is the unit matrix.

The step of acquiring the angular velocity value of the gyroscope in the portable terminal in real time specifically includes: an angular velocity sensor is adopted to read a three-axis angular velocity value as wk.

S102: an extended Kalman filter is utilized to smooth a motion of the camera.

The extended Kalman filter algorithm linearizes the nonlinear system, and then performs Kalman filter. The Kalman filter is a high-efficiency recursive filter which can estimate a state of a dynamic system from a series of measurements that do not completely contain noises.

In the embodiment I of the present disclosure, S102 can specifically be as follows.

The extended Kalman filter algorithm is utilized to establish a state model and an observation model of a motion state of the camera; specifically:.

In the formulas (<NUM>) and (<NUM>), k is time, wk is an obtained angular velocity, and qk is an obtained observation vector of the rotation quantity; w̃k and q̃k are state values of the angular velocity and rotation quantity , w̃k-<NUM> are q̃k-<NUM> state values of the angular velocity and rotation quantity at time k-<NUM>; qk is a quaternion representation of Rw2c-<NUM>; wk is the angular velocity value of the gyroscope; <MAT>, Φ(w̃k-<NUM>) is a state transition matrix at the time k-<NUM>; Φ(w̃k-<NUM>)=exp([w̃k-<NUM>]×), q̃k is the quaternion representation of the estimated smoothed motion of the camera, q̃k is the state value estimated by the value of q̃k-<NUM> at the previous time.

The specific process of updating the prediction includes: at time k, q̃k-<NUM> estimated at the previous time and the observation value qk the current time are utilized to update the estimation of the state variable q̃k to obtain an estimated value at the current time. The predicted value q̃k is the rotation quantity of the virtual lens at the k-th time.

S103: the smoothed motion is decomposed, a motion of the virtual lens is synthesized in a free lens mode, and a rotation quantity of the virtual lens is calculated.

In the embodiment I of the present disclosure, S103 can specifically be as follows.

The coordinate of the reference point in the virtual lens is Pc, and the following relationship is specifically included:
<MAT>.

In formula (<NUM>), Rc<NUM>w is a <NUM>*<NUM> matrix, which is the rotation quantity of the virtual lens.

The free lens mode is a mode in which motions in the original shooting changing directions of the shooting device are retained. For the synthesized motion of the virtual lens in the free lens mode, the rotation quantity is set as Rc<NUM>w = R̃, R̃ is the original motion trajectory of the shooting device. the step of decomposing the smoothed motion, synthesizing the motion of the virtual lens in the free lens mode and calculating the rotation quantity of the virtual lens specifically includes:
For the synthesized motion of the virtual lens, the shaking is prevented in the free lens mode, then Rc<NUM>w = R̃k, where R̃k is the rotation quantity of q̃k.

It should be noted that the Rodrigues formula can be utilized to obtain the rotation matrix R from the quaternion after the unit vector is rotated by an angle θ. Specifically, the quaternion is set as q=(θ,x,y,z)T, then calculation formula of the rotation matrix R is:
<MAT>.

S104: a reprojection is performed on the original video according to the rotation quantity of the virtual lens and the rotation matrix by which the camera coordinate is transformed to the world coordinate, to generate a stable video.

In the embodiment I of the present disclosure, S104 can specifically be as follows.

A corresponding relationship between a pixel in the original video frame and a pixel in an output video frame is calculated, and then interpolation resampling is performed on the original video frame according to the corresponding relationship to generate the output video frame, and finally a stable video is generated.

The pixel in the original video frame is set as Ps, and the pixel in the corresponding output video frame is Pd, then the corresponding relationship is: <MAT>, where Ps = [xs, ys]T, Pd = [xd, yd]T, xs and ys are the coordinate values of the abscissa and ordinate of the pixel Ps in the original video frame; xd and yd are the coordinate values of the abscissa and ordinate of the pixel Pd in the output video frame respectively; Kc and Dc are respectively an internal parameter and a distortion model of the camera, Kc is a projection internal parameter of the virtual lens.

Then the step of performing the interpolation resampling on the original video frame Is according to the corresponding relationship and generating the output video frame Id specifically includes:
<MAT>.

In formula (<NUM>), wi is the interpolation weight, and <MAT> is a neighborhood coordinate of Ps.

In the embodiment II of the present disclosure, a computer-readable storage medium is provided, which stores a computer program that, when executed by a processor, implements the steps of the panoramic video anti-shake method provided in the embodiment I of the present disclosure.

The computer-readable storage medium can be a non-transitory computer-readable storage medium.

<FIG> shows a specific structure block diagram of a portable terminal provided in the Embodiment III of the present disclosure. The portable terminal <NUM> includes: one or more processors <NUM>, a memory <NUM>, and one or more computer programs; the processor <NUM> is connected to the memory <NUM> by a bus; the one or more computer programs are stored in the memory <NUM>, and are configured to be executed by the one or more processors <NUM>; and the processor <NUM>, when executing the computer program, implements the steps of the panoramic video anti-shake method provided in the embodiment I of the present disclosure.

In the present invention, by decomposing the motion of the camera, retaining the original shooting viewing angle of the camera and synthesizing the motion of the virtual lens, and the stable video can be generated. Therefore, this method can maintain smooth motion of the rendering lens, generate the stable video, and retain the original shooting angle of the camera. Accordingly, when the user is watching the panoramic video, this method can avoid artificial video jitters and retain changes in the viewing angle in the original direction of the panoramic video. Therefore, this method retains the original shooting angle of the camera, which can keep the smooth motion of the rendering lens and generate the stable video, and has strong robustness to large noise scenes and most sports scenes.

Claim 1:
A panoramic video anti-shake method, comprising:
acquiring (S101) a world coordinate of a reference point in a world coordinate system in real time, and simultaneously acquiring a camera coordinate corresponding to the reference point in a portable terminal in a camera coordinate system and an angular velocity value of a gyroscope in the portable terminal in a current state; and
smoothing (S102) a motion of the camera by using an extended Kalman filter;
characterized by decomposing (S103) the smoothed motion, generating a motion of a virtual lens in a mode in which motions in original shooting changing directions of a shooting device are retained, and calculating a rotation quantity of the virtual lens; and
performing (S104) a reprojection on an original video according to the rotation quantity of the virtual lens and a rotation matrix by which the camera coordinate is transformed to the world coordinate, to generate a stable video;
wherein the step of smoothing the motion of the camera by using the extended Kalman filter specifically comprises:
using a state model <MAT> and
using an observation model <MAT>
wherein k is time, wk is an obtained angular velocity, qk is an obtained observation vector of the rotation quantity, w̃k and q̃k are state values of the angular velocity and the rotation quantity, w̃k-<NUM> and q̃k-<NUM> are state values of the angular velocity and the rotation quantity at time k-<NUM>, qk is a quaternion representation of an inverse of the rotation matrix Rw2c-<NUM>, wk is the angular velocity value of the gyroscope, <MAT>, Φ(w̃k-<NUM>) is a state transition matrix at the time k-<NUM>, Φ(w̃k-<NUM>)=exp([(w̃k-<NUM>)×), q̃k is a quaternion representation of the estimated smoothed motion of the lens, q̃k is a state value evaluated by a value of q̃k-<NUM> at previous time;
wherein the step of performing the reprojection on the original video to generate the stable video specifically comprises:
calculating a corresponding relationship between a pixel in an original video frame and a pixel in an output video frame, performing interpolation sampling on the original video frame according to the corresponding relationship, generating the output video frame, and generating the stable video.