Blind Deconvolution in Smartphones

Smartphones are now widely used as photographic devices. Their cheap cameras are prone to many degradations, most notably handshake in combination with rolling shutter causes severe space-variant blur. Removing blur without any information about the phone motion is a computationally demanding and unstable process. We record data from built-in rotational inertial sensors (gyroscopes) to detect the motion trajectory of the camera during exposure and then use it as a base for removing blur from the acquired photographs. The proposed system is a close-to-real-time deblurring application implemented on an Android smartphone.


The block diagram of the smartphone application: During camera exposure, the application records data from the built-in gyroscopes. The data are processed and blurs are estimated. The captured photo is divided into overlapping patches, Wiener deconvolution is performed on every patch and the reconstructed patches are blended to generate the sharp photo.  The whole process, entirely done on the smartphone, takes around 10s.

Supplementary material: demo video

Two Android implementations are available: GyroStabilizer (older version) and GyroStabL (new version)!!!

Before downloading, please first read the attached readme file.

Example: Move your mouse over the blurred photo to see the restored sharp one. Notice that the restored images are geometrically warped to compensate for the rolling-shutter effect. More examples in the original quality are here

captured blurred photo and estimated sharp photo (move mouse over the image)
  space-variant blurs
  captured blurred photo and estimated sharp photo (move mouse over the image)
space-variant blurs


Details:  funded by GACR No. GA13-29225S and CAS No. M100751201
Duration: 2012-2014
Contact person: Filip Sroubek
Involved people: Peyman Milanfar, Ondřej Šindelář


video.avi3.94 MB
CVPR_Demo_paper.pdf327.93 KB
ICIP_Show_Tell.pdf2.56 MB
readme.pdf45.16 KB
GyroStabilizer.zip3.76 MB
GyroStabL.zip3.87 MB