Idea - Steady Shot

244 views
Skip to first unread message

MatthewK78

unread,
Mar 29, 2012, 2:32:42 PM3/29/12
to Magic Lantern firmware development

I was trying out various Android camera apps recently and noticed a
few of them have a nifty feature that minimizes motion blur due to
camera movement. They use the gyroscopic sensors in the smartphone to
determine movement and automatically take the shot when it detects the
device is still enough. Our cameras don't have the gyroscopic sensors
but they do have the leveling sensor. Maybe you could accomplish
something very similar with a combination of monitoring the leveling
sensor and some real-time image analyzation. Obviously this might not
make much sense with lenses that already have image stabilization.

Giovanni Di Cello

unread,
Mar 29, 2012, 3:40:22 PM3/29/12
to ml-d...@googlegroups.com
You're right about the sensor, it can move but probably not in the manner so stabilization is accomplished.
Surely, it's an interesting thought but i don't know how much developers know about sensor cleaning via vibrations.

Matthew Kieren

unread,
Mar 29, 2012, 3:46:58 PM3/29/12
to ml-d...@googlegroups.com


Giovanni, I'm not referring to the image sensor, I'm talking about the electronic level sensor. It only detects horizontal movement so it is quite limited, but perhaps using that in conjunction with a real-time image analyzation algorithm it might be feasible.

g3gg0

unread,
Mar 29, 2012, 3:47:02 PM3/29/12
to ml-d...@googlegroups.com
well, all this isn't that new.

e.g. see http://research.microsoft.com/en-us/um/redmond/groups/ivm/imudeblurring/
or the PDF http://research.microsoft.com/en-us/um/redmond/groups/ivm/imudeblurring/imu_deblurring.pdf

but i would say, all this transformations is not doable within the camera.
it would require too many changes at too many places.

Matthew Kieren

unread,
Mar 29, 2012, 3:58:44 PM3/29/12
to ml-d...@googlegroups.com


I don't think you understand, I'm not referring to a deblurring algorithm. This feature would detect camera movement and then the instant the user holds it still enough it would automatically take a picture, thereby reducing or eliminating motion blur resulting from shaky hands. It's basically another way of accomplishing image stabilization. There are already smartphone camera apps that do this sort of thing.

g3gg0

unread,
Mar 29, 2012, 4:31:23 PM3/29/12
to ml-d...@googlegroups.com
ah okay i understand.
ok, if the device has a gyro, this should be no big deal.

it could maybe also be done with the already implemented motion detection functionality in "inverse" way:
looking for image movement and shoot if the image stays the same

Matthew Kieren

unread,
Mar 29, 2012, 4:41:44 PM3/29/12
to ml-d...@googlegroups.com

Exactly. The leveling sensor only detects horizontal movement, but movement nevertheless. Using that data in conjunction with a real-time motion detection algorithm might do the trick.

Dan Conklin

unread,
Mar 29, 2012, 5:55:58 PM3/29/12
to ml-d...@googlegroups.com
Would a smart phone mounted to the camera(flash shoe mount of some kind), connected through a USB, be a leveler for all camera with an app?



--
http://magiclantern.wikia.com/
 
To post to this group, send email to ml-d...@googlegroups.com
To unsubscribe from this group, send email to ml-devel+u...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/ml-devel?hl=en

Morgan Look

unread,
Mar 29, 2012, 6:06:07 PM3/29/12
to ml-d...@googlegroups.com
Hmm, an android app might be able to do that the usb/ptp part is already done, it would be a matter of the app being able use the gyro data.
Not sure what the latency between the app and the shutter is, it would have to be pretty short for this to work.

It could also be possible to have a small micro controller with gyro connected to the remote shutter plug.

Morgan.

Dan Conklin

unread,
Mar 29, 2012, 6:09:56 PM3/29/12
to ml-d...@googlegroups.com
Short cord lol. Old smart phones are cheap now, just need one to turn on, no service, basic OS. Would this be for a steady shot if you're trying to be steady but by hand or on the fly and hope it triggers?

Dan Conklin

unread,
Mar 29, 2012, 6:21:46 PM3/29/12
to ml-d...@googlegroups.com

attach with simple logic of stable yes/no trigger shutter when yes.  Or I aim way off point lol.

Morgan Look

unread,
Mar 29, 2012, 11:11:53 PM3/29/12
to ml-d...@googlegroups.com
You're on the right track, but that's just an IC, you'd have a develop a PCB to carry it.  You'd also need a micro to interpret the output and decide when it was stable.

It may be easier to buy a break-out board for a similar IC, and use it with something like an arduino or other micro.
I would probably start with something like this http://www.sparkfun.com/products/9652

I imagine a "shutter" button connected to the micro that you hold down when you want to take a photo, the micro would then start watching the state of the tilt sensor until it steadies and trigger a shot.

The smart phone solution would require a relatively new (usb host capable) android phone to talk to the phone via usb/ptp.  The advantage is that many people own android phones already, and some will already be using them to control their cameras.

Morgan.

Matthew Kieren

unread,
Mar 30, 2012, 7:31:24 PM3/30/12
to ml-d...@googlegroups.com


I’m glad to see there’s so much interest.  :)

The issue with developing a microcontroller is it won’t be free and therefore won’t be as readily available to the majority of users. Using an Android smartphone would still require a special cable and as pointed out by mogs it would need to be a newer phone. I think using a combination of the leveling sensor data and a motion detection algorithm that analyzes the image in real-time will work effectively enough to be reliable.

clint

unread,
Apr 2, 2012, 4:05:34 PM4/2/12
to ml-d...@googlegroups.com
would the counter-adjustments be log-able, something that could be recorded in a spreadsheet form for post processing later?

Gwired

unread,
Apr 2, 2012, 9:47:09 PM4/2/12
to Magic Lantern firmware development
I love this feature on my iPhone Camera app.

((((((*)))))) the ( and ) change from Red to Green the steadier you
hold it.

If possible in "Steady" mode you could click to take a picture and
then once it is steady/level it could take the pic.

Would love to see this in ML.

3pointedit

unread,
Apr 3, 2012, 12:37:09 AM4/3/12
to Magic Lantern firmware development
I guess that in theory this could be derived from screen pixels, based
on feature deviation. But I don't know how fast the screen can be
sampled to compare? That is to eliminate the gyro or smart phone input.

Matthew Kieren

unread,
Apr 3, 2012, 2:16:29 AM4/3/12
to ml-d...@googlegroups.com

Hmm, logging the data for later post processing is an interesting idea, it might be useful for video. However, it would probably interfere with writing the video to the CF/SD card, especially slower cards. When I think about it, software video stabilizers already do a great job so I'm not sure how useful this would be.

A graphical display of how steady you're holding it would be cool, although I think that should be a low priority.

Good point 3pointedit, a quick response time would definitely be critically important. Hmm, I wonder if the sensitivity of the leveling sensor is good enough to be used on its own. Maybe momentarily disabling Global Draw would help by freeing up CPU cycles.


Oscar Moreno

unread,
Apr 5, 2012, 11:07:52 AM4/5/12
to ml-d...@googlegroups.com
It's always best to do as much stabilization as possible in camera. This would avoid the crop factor that comes with software stabilization. My guess is that it will be processor intensive if it can be done.

Oscar E. Moreno
Tweeter: @moreno7798
-Sent from my iPhone

Matthew Kieren

unread,
Apr 5, 2012, 5:52:40 PM4/5/12
to ml-d...@googlegroups.com

There simply isn't enough processing power for a deblurring algorithm in real-time. Software-based video stabilization would involve very processor intensive code to deblur the video, it would put a strain even on a desktop computer. The idea clint had earlier of logging leveling-sensor data would only be useful in post and it would still involve cropping. As I said earlier, the video stabilization software already out there does a great job and probably wouldn't be improved much by using that data. My idea of mimicking what cellphone apps are doing will only work for still-photography, not video. However, a real-time graphical display of how steady you are (similar to what Gwired mentioned) would probably be possible if the still-photography code is developed.

Reply all
Reply to author
Forward
0 new messages