Hacker News new | ask | show | jobs
by olegkikin 3102 days ago
Being a programmer, but not an engineer, I always wanted to try to create a camera with the ability to micro-shift the sensor in both directions, increasing the resolution. If you shift 3 times by 1/3 of the pixel on each axis, you can theoretically 9X the resolution (well, megapixels). Of course, it won't work for dynamic scenes, but could be quite useful for industrial scanning or looking for house insulation problems.
6 comments

I'm not sure this would work. The pixels of the sensor are capturing a whole square of incoming light, not just at a single point. Moving the camera 1/3 of a pixel over would just cause 1/3 of the light to bleed over to the next pixel, but it wouldn't increase the achieved resolution.

Oh, wait, maybe this could work. There might be a neat way to take the old and new values of new values and calculate what the in-between area's color must have been, based on how much the bigger blocks changed with a small movement? Either way, you'd need to be pretty far from the subject, but it might work for a landscape?

It works in commercial cameras like Hasselblad H4D-200MS.
The pixel-shift of the Sony A7RIII and Hasselblad only works to remove the effect of different pixels having different color filters in a Bayer array, with the result being an image with 4x resolution and each pixel containing full color information.

To perform supperresolution imaging, you need some statistical information, some sort of prior, on the scene being imaged and the processing requirements are not insignificant. Can potentially be done, but not in the simplistic pixel-shift sense that recent cameras advertise.

As I understand it, a lot of the pixel-shifting is to avoid de-bayering effects, not to provide superresolution. I'm more familiar with the A7RIII, so perhaps the Hasselblad does superresolution?

Unwinding sub-pixel structure requires, in general, careful deconvolution algorithms.

Do they use a COTS sensor with clever DSP or do they build a sensor that's actually capable of sampling?
It's called microscanning [1], is temporally sensitive so with a moving scene it can be difficult to stitch a good image together and it lowers your framerate.

[1] https://en.m.wikipedia.org/wiki/Microscanning

Flir app on Android has this feature built-in.

https://play.google.com/store/apps/details?id=georg.com.ther...

That sounds a lot like a mechanical emulation of a light field camera.
Instead of microshifting the sensor, why not offset the input light on the sensor with mirrors?
Nope won’t work, the image is not an orthographic projection.
This absolutely works, but not quite the way GP described. Instead, unit motions on the bayer pattern are used, to the effect that every logical subpixel is sampled by every colour channel (therefore giving you a full pixel). Hence, no demosaicing is required. Hence, higher spatial frequencies can be maintained without incurring aliasing.
It is also possible to actually increase resolution. https://arxiv.org/abs/1706.06266
Got an example of an image made this way? I’d wager it probably looks like crap.
Can you elaborate?
Camera lenses curve light, offsetting on a micro scale produces a slightly different perspective. You would end up with a blurrier image, not a high resolution one.