IP Library › Granted Patent US 9,224,194
Granted Patent B2
US 9,224,194 · App. 14/160,424 · Granted Dec 29, 2015

Joint video deblurring and stabilization

Inventors: Jue Wang (Kenmore, WA); Sunghyun Cho (Seattle, WA); Dun-Yu Hsiao (Seattle, WA); Shuaicheng Liu (Singapore, SG)
Assignee: Adobe Systems Incorporated
G06T5/003G06T5/50G06T2207/10016G06T2207/20016G06T2207/20021G06T2207/20182G06T2207/20201
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,224,194
App. No.
14/160,424
Granted
Dec 29, 2015
Kind
B2
Abstract

Joint video deblurring and stabilization techniques are described. In one or more implementations, a deblurring and stabilization module is configured to jointly deblur and stabilize a video by grouping video frames into spatial-neighboring frame clusters, and building local mesh homographies for video frames in each spatial-neighboring frame cluster.

Claims (70)

1. A computer-implemented method comprising:

identifying one or more blurry patches in one or more video frames of a video;

for each blurry patch, performing a local search, using a spatial frame registration, to identify a corresponding sharp patch in a spatial-neighboring video frame to replace the blurry patch, the spatial frame registration mapping pixels in a spatial-neighboring video frame to corresponding pixels in other spatial-neighboring video frames;

refining local mesh homographies based on the local search, each of the local mesh homographies comprising a mesh of multiple regions corresponding to a video frame, and each region comprising a homography that provides a mapping between a region in the video frame and a corresponding region in a different video frame;

stabilizing the refined local mesh homographies; and

rendering a deblurred and stabilized video, using the refined and stabilized local mesh homographies, by replacing the one or more blurry patches in the one or more video frames with corresponding sharp patches.

2. The computer-implemented method of claim 1 , wherein a generation of the spatial frame registration comprises:

grouping spatial-neighboring video frames of the video into spatial-neighboring frame clusters;

building the local mesh homographies for the video frames in each spatial-neighboring frame cluster;

generating a frame sharpness estimate for each video frame; and

generating the spatial frame registration using the local mesh homographies and the frame sharpness estimates.

3. The computer-implemented method of claim 2 , wherein the generating the frame sharpness estimate comprises estimating the frame sharpness of each video frame using the local mesh homographies to determine an absolute displacement of pixels between adjacent video frames.

4. The computer-implemented method of claim 2 , wherein the generating the frame sharpness estimate further comprises generating a frame sharpness map that provides an indication of a level of sharpness of pixels in each video frame.

5. The computer-implemented method of claim 1 , wherein spatial-neighboring video frames correspond to video frames with a large overlap in content.

6. The computer-implemented method of claim 1 , wherein the spatial frame registration comprises a look-up table that maps pixels in a spatial-neighboring video frame to corresponding pixels in other spatial-neighboring video frames.

7. The computer-implemented method of claim 1 , wherein the performing the local search further comprises:

identifying a blurry patch in a blurry video frame in a spatial-neighboring frame cluster;

identifying a corresponding reference patch in the spatial frame registration;

identifying, using the corresponding reference patch, one or more sharp video frames in the spatial-neighboring frame cluster;

performing the local search on the one or more sharp video frames to identify one or more candidate sharp patches to replace the blurry patch;

mapping the one or more candidate sharp patches to the blurry video frame using the local mesh homographies;

applying a blur kernel to the one or more candidate sharp patches; and

identifying the blurred candidate sharp patch that is a closest match to the blurry patch to replace the blurry patch.

8. The computer-implemented method of claim 1 , further comprising repeating the performing the local search and refining the local mesh homographies for one or more iterations.

9. A computer-readable storage device comprising instructions stored thereon that, responsive to execution by a processor, perform operations comprising:

building local mesh homographies for video frames of a video that are grouped into spatial-neighboring frame clusters;

generate a spatial frame registration, using the local mesh homographies, that maps each pixel in a video frame of a spatial-neighboring frame cluster to corresponding pixels in other video frames of the spatial-neighboring frame cluster;

for each blurry patch in a video frame, perform a local search, using the spatial frame registration, to identify a corresponding sharp patch in a video frame of the spatial-neighboring frame cluster to replace the blurry patch;

refining the local mesh homographies based on the local search;

stabilizing the refined local mesh homographies; and

rendering a deblurred and stabilized video, using the refined and stabilized local mesh homographies, by replacing blurry patches of frames of the video with sharp patches.

10. The computer-readable storage device of claim 9 , wherein the operations further comprise repeating the performing the local search and the refining the local mesh homographies for one or more iterations.

11. The computer-readable storage device of claim 9 , wherein the performing the local search further comprises:

identifying a blurry patch in a blurry frame of a spatial-neighboring frame cluster;

identifying a corresponding reference patch in the spatial frame registration;

identifying, using the corresponding reference patch, one or more sharp frames in the spatial-neighboring frame cluster;

performing the local search on the one or more sharp frames to identify one or more candidate sharp patches to replace the blurry patch;

mapping the one or more candidate sharp patches to the blurry frame using the local mesh homographies;

applying a blur kernel to the one or more candidate sharp patches; and

identifying the blurred candidate sharp patch that is a closest match to the blurry patch to replace the blurry patch.

12. The computer-readable storage device of claim 9 , wherein the generating the spatial frame registration comprises:

grouping spatial-neighboring video frames of the video into spatial-neighboring frame clusters;

building the local mesh homographies for the video frames in each spatial-neighboring frame cluster;

generating a frame sharpness estimate for each video frame; and

generating the spatial frame registration using the local mesh homographies and the frame sharpness estimates.

13. A computing device comprising:

at least a memory and a processor to implement a deblurring and stabilization module, the deblurring and stabilization module configured to perform operations comprising:

identifying one or more blurry patches in one or more video frames of a video;

for each blurry patch, performing a local search, using a spatial frame registration, to identify a corresponding sharp patch in a spatial-neighboring video frame to replace the blurry patch, the spatial frame registration mapping pixels in a spatial-neighboring video frame to corresponding pixels in other spatial neighboring video frames;

refining local mesh homographies based on the local search, each of the local mesh homographies comprising a mesh of multiple regions corresponding to a video frame, and each region comprising a homography that provides a mapping between a region in the video frame and a corresponding region in a different video frame;

stabilizing the refined local mesh homographies; and

rendering a deblurred and stabilized video, using the refined and stabilized local mesh homographies, by replacing the one or more blurry patches in the one or more video frames with corresponding sharp patches.

14. The computing device of claim 13 , wherein the deblurring and stabilization module is further configured to perform operations comprising:

grouping spatial-neighboring video frames of the video into spatial-neighboring frame clusters;

building the local mesh homographies for the video frames in each spatial-neighboring frame cluster;

generating a frame sharpness estimate for each video frame; and

generating a spatial frame registration using the local mesh homographies and the frame sharpness estimates.

15. The computing device of claim 14 , wherein the deblurring and stabilization module is configured to generate the frame sharpness estimate by estimating the frame sharpness of each video frame using the local mesh homographies to determine an absolute displacement of pixels between adjacent video frames.

16. The computing device of claim 14 , wherein the deblurring and stabilization module is configured to generate the frame sharpness estimate by generating a frame sharpness map that provides an indication of a level of sharpness of pixels in each video frame.

17. The computing device of claim 13 , wherein the spatial-neighboring video frames correspond to video frames with a large overlap in content.

18. The computing device of claim 13 , wherein the spatial frame registration comprises a look-up table that maps pixels in a spatial-neighboring video frame to corresponding pixels in other spatial-neighboring video frames.

19. The computing device of claim 13 , wherein the deblurring and stabilization module is configured to perform the local search by:

identifying a blurry patch in a blurry video frame in a spatial-neighboring frame cluster;

identifying a corresponding reference patch in the spatial frame registration;

identifying, using the corresponding reference patch, one or more sharp video frames in the spatial-neighboring frame cluster;

performing the local search on the one or more sharp video frames to identify one or more candidate sharp patches to replace the blurry patch;

mapping the one or more candidate sharp patches to the blurry video frame using the local mesh homographies;

applying a blur kernel to the one or more candidate sharp patches; and

identifying the blurred candidate sharp patch that is a closest match to the blurry patch to replace the blurry patch.

20. The computing device of claim 13 , wherein the deblurring and stabilization module is configured to repeat the performing the local search and refining the local mesh homographies for one or more iterations.

Assignments (2)
CHANGE OF NAME Recorded Apr 8, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 048867/0882 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2014
From: WANG, JUE; CHO, SUNGHYUN; HSIAO, DUN-YU; LIU, SHUAICHENG
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 032023/0200 →
Continuity (1)
Related Publication 20150206289A1 · Jul 23, 2015