Microsoft Tech Can Deblur Images Automatically
An anonymous reader writes "At the annual SIGGRAPH show, Microsoft Research showed new technology that can remove the blur from images on your camera or phone using on-board sensors — the same sensors currently added to the iPhone 4. No more blurry low light photos!"
Enhance!
Microsoft Research puts out a lot of really interesting and successful research. They aren't the people programming the OS or office applications.
I bet it can remove the blur from the titlebar for screenshots of a Windows 7 app. Now we can all see what those developers are viewing behind that window!
Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
This is like one of those "Why didn't I think of that?" ideas that you wonder why your camera doesn't already have. The nice part is that it can be done very cheaply (relative to the cost of a camera) and would improve images in many cases. My only tiny little concern is that you might introduce artifacts into your photos - which makes me wonder if it wouldn't be better to store a raw image and the data from these sensors independently? I wonder if there is a scenario where you might be moving but the object you're taking a picture of is stationary relative to your movement. Like for example you're standing on a boat rocking in the waves, you take a photo of the deck, and this technology compensates for the rock which results in a ton of blur.
Probably only half-working coming from microsoft
It could be worse... the GIMP developers could have built it, in which case it would be a mostly working implementation of half the features of some existing software. However, nobody would realize this since only the developers would be able to comprehend the UI.
Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
Step back! This is a job for Frankencamera. Run it on your Nokia N900 today.
OTOH having that Arduino board and a mess of wires attached to your camera does score you a lot more geek cred than photographing using an plain old mobile phone.
/greger
Social networking sites are about to get a whole lot more ugly
I recall that some other cameras, like a Casio I've seen a friend using, also do deblurring, but rather by stacking of rapid subframes (I guess using bright reference points). If I understand correctly, this new method is operated on a single frame. I wonder if anyone has a useful comparison of the hardware requirement/image quality/useability differences between the two methods?
Great, you can improve your motion blur removing algorithm by recording the motion which created the blur.
Although technically, the blur in the image itself already recorded the motion, with better precision and without calibration issues. So this is more of supplementary data. The before and after images leave out the whole "you can already do this without the extra sensor data" aspect.
And really, you'll get far better results if you just use an adequately short exposure time and some mechanical stabilization. Brace your shooting arm. If you want to get fancy, use something like Canon IS lenses.
Yeah, this is nifty, especially for smartphone based cameras which may already have built-in sensors to do this. But neither is it exactly revolutionary. You'll get better photos out of learning some basic photography than you will out of fancy sensors and analysis software.
Have you used GIMP in past 5 years?
Mod me down, my New Earth Global Warmingist friends!
Sounds like a great way to land a spot on a terrorist watch list, to me...
Is the camera needing to do something else at the time that "sucking processing power" is some sort of issue?
File under 'M' for 'Manic ranting'
Single-window mode hasn't been released yet, but it's coming. This will make it usable for folks who aren't using fvwm with focus-follows-cursor.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
For the past 8 years or so, MicroSoft has been co-author on more papers than any other organization at SIGGRAPH. This is impressive because SIGGRAPH has a the highest paper rejection rate of any conference I know of - they reject (or downgrade to non-published session) 85% of the paper submissions. And you have to submit publication-ready papers nearly a year in advance, with a video summary.
This reminds me of Xerox PARC - great R & D output, poor commercialization of these results. People wonder if their lab was a toy-of-Bill or a tax write-off.
My only tiny little concern is that you might introduce artifacts into your photos - which makes me wonder if it wouldn't be better to store a raw image and the data from these sensors independently? I wonder if there is a scenario where you might be moving but the object you're taking a picture of is stationary relative to your movement.
I suspect in the majority of cases, this would improve photos. As to your query, my first thought of a problematic environment would be trying to take a photo of a friend sitting next to you--in a moving roller coaster as it hurls around a bend. You and your friend are [mostly] stationary WRT each other, but you (and the camera) are all undergoing acceleration, which the camera dutifully attepts to remove from the photo. Certainly a comparatively rare event compared to the majority of photo-ops.
Those people should use a better setup.
Surprisingly enough, different people have different needs.
The lack of auto mouse focus default really makes windows desktop suck, plus the lack of workspaces.
I'm too much of a spaz to use focus-follows-mouse. Every time I try it I wind up bumping the mouse and typing into the wrong window. If I were a hardcode pre-trunk GIMP user I'd definitely have a session set up that way, though. Fortunately, the GIMP developers have come around to an option that works with most peoples' desktops.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
It won't help at all if the object is moving. In fact, this feature should be switched off if you're trying to photograph a moving object with the camera (common enough, and not just in sports). It would not be able to compensate for a mismatch between the object speed and your tracking movement, and would do entirely the wrong thing even if you tracked the moving object perfectly for the shot. In this case, there is no substitute for adequate light and/or a fast lens and/or a smooth accurate tracking movement.
As another comment, deconvolution requires a very accurate approximation of the true convolution kernel, which may be provided by the motion sensors. However, to reconstruct the image without artifacts, the true kernel must not approach zero in the Fourier domain below the Nyquist frequency of the intended reconstruction (which is limited by the antialias filter in front of the Bayer mask). In fact, if the kernel's Fourier transform has too small a magnitude at some frequency, the reconstruction at that frequency will be essentially noise, or will be zero if adequate regularization is used. If the motion blur is more than a few pixels, this will generally mean that the reconstructed image will have an abridged spectrum in the direction of blur, compared to directions in which no blur occurred. Of course, if your hand is so shaky and the exposure so long that blur occurs in all directions, then the spectrum of the reconstructed image will be more uniform. It is likely to be truncated compared to the spectrum of an image taken without motion blur.
The quality of the reconstructed image would also be limited by the effects of other convolutions in the optical pathway. For instance, if you're using a cheap superzoom lens, don't expect to get anywhere near the antialias filter's Nyquist frequency in the final image, as the lens will have buggered up the details nonlinearly across the image even before the motion blur is added. If you're using nice lenses (Canon "L" series or Pentax "*" series and suchlike), then this will not be an issue.
The method would seem to be useful in low-ish light photography of stationary objects. A sober photographer would beat a drunk photographer at this, but the technique would help both to some extent. A photographer using a tripod would do best, of course.
Those who can make you believe absurdities can make you commit atrocities. - Voltaire
It could be worse... the GIMP developers could have built it, in which case it would be a mostly working implementation of half the features of some existing software. However, nobody would realize this since only the developers would be able to comprehend the UI.
If you don't like the GUI, there's always the Lisp interface. If another OSS project gets named after a disability, I'm sure the gimp devs will incorporate it somehow.
Sorry, no. The blur in CSI Miami is not caused by motion, thus motion compensation won't help. That blur is just a sheer lack of pixels, and this algorithm does nothing to help that situation. CSI-mocking is safe.
I only run into the occasional problem with GIMP. They really have come a long way.
I switched from Photoshop to GIMP years ago. Photoshop kept crashing on my machine, and GIMP didn't. Then I found there were more things I could do with GIMP, so I stayed. Once in a while I try out Photoshop again, but I stay with GIMP. A few times, Photoshop folks have run into problems, so I tell them to just send me their file, and I fix it in GIMP and send it back. :)
But hey, it's a holy war. Sides have been drawn, and there are zealots on both sides who trash talk each other. Don't ever try to convince someone that the other is better, because it'll just be an argument. I don't play holy wars. I try both sides, and use what works best.
On the computer I'm using right now, it's a dual boot Windows 7 and Slackware64 machine. Windows 7 crashed yet again, with the only solution being "format and reinstall". Bah, I just did that a month before. Instead, I'm staying booted up in Slack64, and am very happy. My other copy of Windows is sitting in a VirutalBox window, which I only bring up for the odd occasions that I need to run a Windows only app. Will I convince a Windows user to switch to Linux? Probably not. Am I perfectly content? Yes.
Serious? Seriousness is well above my pay grade.
Clearly (pun intended) the results have a ways to go yet. Look at the coca-cola image, at the 'a' on the end of the cola... that thing is hosed by the blur, and they're unable to recover it because there's no intermediate contrasting color. Same thing for the spokes on the car rims.
This problem can't be completely solved post-picture. Only large-scale elements with nothing else around them will yield pixel-sharp solutions.
The optimum way to correct blur is to apply active or passive (e.g. tripod) stabilization to the lens prior to the shot; active technology is already pretty decent (photographers tend to measure things in stops; it's intuitive to them... when they say an active stabilizer "gives you" four stops, for instance with Canon, what they mean is that you can shoot four stops slower with the shutter and you won't get blur from camera movement.) Doesn't solve subject movement at all, but then, nothing really does other than cranking down the exposure time.
So... considering lens stabilization has been in-camera for years, and this requires more hardware, but gives you less... I'm going to go out on a limb and say it isn't of interest to camera folks. Maybe in some esoteric role... a spacecraft or something else with a tight power budget where stabilization can't be done for some reason (certainly measurement takes less power than actual stabilization)... but DSLRs and point-and-shoots... no.
I've fallen off your lawn, and I can't get up.
Now they just need to attach this to Ballmer's head to deblur the company vision a little.
You know, you -- and 99% of the others bitching about the Gimp -- you're utterly full of shit. I write commercial image processing / editing / animation / generation software for a living, I'm expert - you can read that as "terrifyingly exert" - with Photoshop, Gimp and a whole raft of others... and Gimp is an easy to use powerhouse.
Now I will grant you exactly ONE thing, and that is, you need to sit down and learn to use it. That should take a few hours if you're familiar with something (anything) else; maybe a week hunting down tutorials, or a day hanging with a qualified mentor, if editing bitmaps is all new to you.
If it takes you longer than that, you're either stupid or lazy.
There's *nothing* significantly wrong with the Gimp. It has its limits, like everything does (Photoshop has some really annoying limits too), but for the vast majority of image processing and touch-up needs, it's very nice.
Oh, mommie, my crop function is in a different menu... Some people just need a good smack in the head.
If you really knew what you were doing, you'd have, and use, a whole suite of these programs, because for the big ones, there are areas where they excel, and that's the time to put them into play. If you can't learn to use them because the keystrokes are different, or there is a different paradigm... it isn't the program that sucks. It's you.
Also, if you actually knew how to use them, you wouldn't be bitching about them.
I've fallen off your lawn, and I can't get up.
Information théory tell us that once some info has been lost, it can't be recovered. If the picture has been somehow "damaged" by some motion blur, the original picture can't be reconstructed.
On the image, we'll have much more than the motion blur from the camera's movement : ...
- noise added from sensor electronic noise
- blur from target movement
- distortion coming from lens defect (mostly for low end cameras)
- distortion/blur from bad focus (autofocus in not perfect)
The operation that will reduce the camera's motion blur will probably increase the effect from all other defects. You reduce one kind of image destruction and increase the impact of the other one.
There are some full-size samples of the results of the technique, where you can compare the original image with the result of their technique, and the results of two older techniques. Their technique show some very obvious problems:
There are several examples in the link that seem to be like that. The technique doesn't seem to figure this out in all cases, and renders the two ghost lines as separate, sharp lines. Most obvious example: the edge of the front rim of the red car in the second photo. Though compare with the result they got in the photo of the Coca-Cola cans, where it did figure it out for the rack, but not for the text on the cans, and where it introduced some artifact lines perpendicular to the rack.
The more instructive comparison is the results of these guys' techniques with the older techniques. Clearly, they're doing a lot better than the older techniques. Still, this is very far away from primetime, IMO.
Are you adequate?
Yeah, Microsoft does some decent research and develops some interesting technologies. It's turning things into products that they seem to have trouble with.
I think the problem with any method that doesn't change the optical path or move the sensor is that it just can't deal with parallax.
So, your accelerometer records that between the first and the second microexposure, the camera shifted by x amount to the left. What relative shift do you apply to the frames? Well, the problem is that the correct shift is different for objects at different distances--so as soon as you have an image with large depth of field, there is no solution that corrects the blur for all objects in the frame. It might still be useful, though, because you'd be able to reduce camera blur at one distance--e.g., the camera could assume that the correct distance is the focus distance, or if you used RAW processing, you might be able to choose the correction distance at processing time.
Note that optical stabilization systems don't have this problem to the same degree, because they're designed to keep the same ray of light hitting the same pixel during the whole exposure.
There are other complications, though, because each of the microexposures will have more noise and reduced dynamic range compared to the full conventional exposure. I.e., by spending less time recording the value of a pixel, a microexposure is correspondingly less able to finely discriminate its level, and more so when the pixel is dark. Combining the microexposures has the potential to average out the noise, thus gaining you more shadow detail and dynamic range; theoretically you can get the same dynamic range and noise floor as the conventional exposure, but in practice it might well be different. There's a problem, however, that if the sensor noise is not random, the accelerometric shifts you apply to the microexposures as you combine them runs the risk of producing noise artifacts, as the pattern of the noise might produce interference patterns when superimposed on shifted copies of itself (see moiré, or more generally, interference). That's because, to put it briefly, camera motion moves the apparent position of the objects in the frame, but doesn't move the noise patterns.
Yeah, this stuff is complicated.
Are you adequate?
You've described blind deconvolution. It does work, but guided deconvolution, a version of which they're doing here, usually works better because you're providing more information. The search space is very large and you have to make assumptions anyway (just how does the computer assess the "sharpness" of an image?) so anything you can do to narrow it down usually improves your results.