Posted
by
timothy
on Wednesday March 17, 2010 @01:50PM
from the turn-your-family-green-with-envy dept.

An anonymous reader writes "Researchers from the University of Liege in Belgium have been able to perform real-time video analysis on a regular Canon digicam (video link) without any hardware modification. The results are shown directly on the digicam's screen. They use a hacked version of a popular open-source alternative firmware for Canon cameras: CHDK. This is a proof-of-concept that computer vision algorithms can now be embedded on regular Canon digicams with little effort (CHDK is coded in C). What other popular vision algorithms could be implemented? For what purpose?" You can get some idea about ViBe from this abstract at IEEE; basically, it allows background extraction in moving images.

If you're doing wireless, sending high quality images back continuously can really chew up your bandwidth. If the camera has enough smarts to only send events it can make things easier. Plus using less bandwidth makes things like having your Zoneminder box be an offsite VM easier too.

What's the 'newest' Camera that supports CHDK? Mine got stolen recently and I'd like something to replace it for times I don't want to lug around my SLR.

Does CDHK support the DIGIC IV (720p, better face recognition). I played around with one of my friends and face recognition, the fact that you can zoom in and scroll through all faces to make sure they're in focus. Lots of cool stuff, but CDHK seems to mostly support older stuff and Canon's numbering scheme sucks.

As others have pointed out, CHDK isn't supported on the S90 (yet, but it's being worked on). It also doesn't support 720p; video resolutions are only up to 640x480 @ 30fps.
(But it's a great camera otherwise, and is widely praised as having good image quality and manual control, while being compact enough to carry around very easily.)

ok, that looks pretty close, except the hard lens cover seems to be missing, which was pretty cool. from the few images i've seen, it also seems to have pop-out flash (not as robust), and i don't see where tripod mount is located (older models had it at the centre of the lens, thus making it easier to get some panorama material w/o panoramic head).

I just checked the tripod mount on my S90, and it looks like it's smack bang in the centre of the lens.

As for the pop-out flash, it's motorised. I don't know if that makes it more os less robust, but there you go.

I've read that the S90 is basically the same as the G11 but with a different body and lens, which gives me hope that CHDK will be available for the S90 soon, since it already is for the G11. It does shoot RAW out of the box, though. You won't need CHDK for that.

I played around with one of my friends and face recognition, the fact that you can zoom in and scroll through all faces to make sure they're in focus.

Maybe someone can explain the multi-focus thing to me.Does the camera pick out all the faces and then pick an average focal point?Or does the software (as opposed to the lens) actually tweak each face into focus?

As far as I know it'll check the different faces and decide where it has to put focus and a small enough aperture sothey all are sharp.So if the faces are close enough to each other it can focus on one and go for a small dof that'll have them all sharp, if they're further away then it'll increase dof (and thus exposure time) and possible put actual focus somewhere in between the faces (again, if I'm not mistaken it's around 1/3 before your focal point and 2/3 after it that's sharp).

I use it on my S5 IS. I use the intervalometer, various grids (for composing level shots when it matters), the extended shutter modes (both slower and faster than the "stock" firmware allows) and of course the RGB histogram and on rare occasion raw. I don't use raw too often though because it slows the camere down a fair bit. However, CHDK is a wonderful tool and scripting it isn't too bad. The documentation is actually pretty good for a "young" open source project. In short, it makes point-and-shoot cameras usable where they otherwise wouldn't be, and where a point-and-shoot camera is preferable to a DSLR (such as when traveling), it can give you some of the capabilities you would normally turn to a DSLR for.

Look into some of the capabilities CHDK can provide; it absolutely can be useful on a DSLR. You can do a lot of advanced scripting and CHDK is hard to beat if you want to capture consistently good shots of lightning.

The EOS 7D is not professional; look at the EOS 1D or D3S. The EOS 7D is positioned as a prosumer camera.

Does repeating a link in the summary really count as informative?I know this article is only tangentially about CHDK but I've been looking into CHDK lately for a project so I thought I'd share some useful links.

Also use CHDK, also consider it good stuff. And I love the fact that my powershot takes AA batteries and has a standard USB connector. They've gotten more money out of me because of this, not in spite of it.

Unfortunately, it seems many camera manufacturers - including Canon when it comes to their SLR line - are far happier to put any new functionality in newly released camera models and put them on the bullet list for those, rather than making it available for older models as well and just letting the new model's technical (rather than software) advantages make their sales.

Right, the new word for "digital camera" is "camera." If you mention to a friend that your camera battery is dead, would they still ask whether you can advance the film manually? No. The vast majority of cameras made, sold, and used today are digital cameras, so that is what the word has come to mean.

I must have missed that memo from the English Academy. What day did that happen?

Yes, I'll agree if someone says 'camera' in a non-film/celluloid specific context I'll probably assume it's referring to a digital camera, but in what way are we damaging the language (moreso) by using digicam?

If we did not have you policing it for us, our language would have devolved into mutually incomprehensible babbling eons ago. Thank you for your continued vigilance.

However, I am confused by your use of the phrase 'the fuck,' and sentence fragments. Could you diagram your sentences for me? As you are the Lord of Language, I'm sure they are all grammatically correct, I just need a little help in seeing how...

Actually if you put "their's" in quotes (which avoids hits for "theirs"), you only get 474,000, a little over 1/4 of the hits as "hermeneutics." (And the first two hits are talking about how "their's" isn't a word, while there's no such apparent hit for "digicam" anywhere in the first five pages of results.)

No, most photographers that refer to a non-SLR digital camera refer to it as a PnS (Point and Shoot) and dSLR as just "SLR" as in most digital forums it's automatically assumed you're running a digital camera opposed to film.

I still take superior pictures with my Minolta X-700, no Photoshop needed afterwards.

Yeah, there are some excellent cameras out there that aren't dSLRs for some uses. I have a Minolta Z3 that I bought my parents many years ago that I love. I used to carry a small camera myself, but I use my iPhone for random one-off stuff now.

I'm much less serious about photography than I used to be. I like hobbies with a positive cash flow, and while photography did that for me, it was a lot of time invested, a lot of cash on hand, but very little profit over time by the time I bought the equipment I ne

I'm sure "video analysis" means something more concrete to those in the know (or not), but I can't shake off the feeling that it's all blahblahblah with no meaning other than to generate more blahblahblah.

I'm sure "video analysis" means something more concrete to those in the know (or not), but I can't shake off the feeling that it's all blahblahblah with no meaning other than to generate more blahblahblah.

What I find interesting about this is not so much that the code can be loaded(since the CHDK project already did that job, and has had it working for some time now); but that consumer digicams would have enough general purpose punch to run anything much more than trivial scripts that more or less emulate series of button presses(which can be extremely useful, for time lapse, auto bracketing, etc, etc.).

Given the sheer number that are produced, and the fairly tight battery life constraints, I would have assumed that most of the heavy lifting(crunching raw sensor data to.jpeg form, or encoding video) would be done with largely fixed function hardware, with just a little bit of general purpose computer slapped on to handle UI, user input, and tweak the settings of the encoder units. Apparently, the general purpose units have more punch than I thought.

What I find interesting about this is... that consumer digicams would have enough general purpose punch to run anything much more than trivial scripts

Check the feature list of typical modern "consumer"-ish digital cams. Marketing has decided that the average moron needs to be able to filter pics to look like a faded photograph, or put the picture inside an ornate picture frame, or cover up parts of the image with heart and caption overlays like those stupid "reality-TV" dating shows. The enormous resources required for stupid marketing tricks can be re-purposed to do much more interesting things... Which probably pisses off the marketing guys. Which I like.

To a first approximation, the computing power required to store a pic is not much worse than the viewfinder display. And they don't seem to care about updating the video viewfinder continuously. So, it can't be too horrible of a computational task.

The most computationally demanding onboard processing I've noticed (aside from video encoding, which surely uses a dedicated chip) is recognizing multiple faces in real-time, or tracking a moving object, to maintain focus. Far from the gimmicks you mention, these are very useful functions that just happen to require what amounts to video processing.

Well, for what it's worth, the only thing the camera in the video seems to be doing is threshold compare on a pixel by pixel basis, ie if each pixel changes from the previous frame by more than a certain amount then it's highlighted, which is a pretty simple operation. Still, it's a cool proof of concept.

The cheapest that I can find nowadays costs still at least about USD 100. They all do zoom, fancy tricks, lots and lots of megapixels, whatever.

Maybe I have only looked in the wrong shops but I can't seem to find cheap, simple point-and-shoot style digicams. For my business I often have to shoot photos, and would like to have a cheap cam that I can keep in my bag, that has decent quality, no need to zoom, cheap enough to not hurt my wallet

OpenCV [sourceforge.net] has C interfaces [willowgarage.com] and there are more that have some C code libraries [cmu.edu]. Really the coding challenge would be building the wrappers to utilize those libraries with your camera's hardware (I assume provided through CHDK APIs). My vote is for a nifty KLT implementation that allows me to take a video and extract a huge wide pan image in post processing on the camera.

because having multiple computer vision systems with different focuses is not a bad thing.
For instance OpenCV has nothing in the way of Waldboost classifiers.
Opencv seems to be mostly focused on haar-like feature classifiers.

xxdinkxx makes some good points, and also I've learned from experience that OpenCV is too slow for mobile devices in its generic form. You'd end up needing to write optimized assembler code specific to the camera's processor anyway.

Mine doesn't have any "detection" built in, but original CHDK has edge detection, "Zebra" (marking saturated or entirely black areas), several different options of histogram, and quite a bit more. Yeah, this hack doesn't do all that much comparing to what CHDK does... comparing what a Canon camera without CHDK does - it's impressive.

As for the other options you mentioned - they would be quite doable with the CHDK software. That wouldn't help much though, because all you'd get is the image with these feature

It's worth pointing out that CHDK isn't a hacked firmware (that would probably not be legally redistributable), nor is it an alternative firmware (that would be too much work). CHDK is an add-on to the existing firmware, that works by piggibacking on its OS, hooking functions, and spawning off extra processes on the camera's RTOS. This is what makes it so great: you get the original funcionality of the camera plus extra stuff, and you don't have to wait for the developers to add what already came with your camera anyway.

If the camera was a networked device always running on the background Canon might react differently too. Maybe if Canon sold software packages to enhance the camera and this ate their sales they might also work against it. As is, I think this is really not very popular (all the people I know have a canon camera, none have installed CHDK vs. 25% of them have an iPhone and quite a few jailbroke them), so they have no reason to waste resources in fighting it.

>>As is, I think this is really not very popular (all the people I know have a canon camera, none have installed CHDK vs. 25% of them have an iPhone and quite a few jailbroke them), so they have no reason to waste resources in fighting it.

You must have a different group of friends. Once when I was hiking, a friend of mine started talking about his awesome hacked firmware, and all three of us whipped out our Canons and had CHDK installed. =)

On the other hand, it also can't add back what Canon took out. One of the best photos I ever took (IMHO) was taken with the Color Accent mode accidentally turned on in my Canon A540. This feature was removed in the A570 that replaced it. It seems like trivial functionality to put back in, but CHDK can't.

CHDK can add plenty of things, though of course if the code is physically missing then it would have to be reimplemented. Consider that CHDK allows RAW mode in cameras that don't originally support it, for example.

raw is actually relatively simple. Most cameras will have to have the pre-debayer/pre-jpeg readout of the sensor somewhere. As long it isn't completely hidden behind some opaque hardware, find it, write it to a file, there's your raw! This not to make light of work Vitaly and Grand did early in CHDK, getting to the point where you can do that is a big job.

A bit OT, but CHDK raw doesn't necessarily buy you a lot. You get a little more dynamic range, and you can do white balance after the fact, but it's only

The stuff done by the Digic DSP (rather than the plain jane ARM946ES that runs the OS, UI and CHDK) hasn't been deeply explored. You might be able to get color accent back, if your hack-fu is sufficient. The fact it hasn't been done isn't by itself a sign that it is impossible, it more frequently means no one has spent a lot of time in that particular area. Of course, if you did spend the time, you might find that it is in fact not possible. The canon firmware code is complicated enough (~3MB of machine cod

I think we would need a control group, lacking in back-end development, in order to correctly highlight the visual differences. It is my understanding that someone like Jane Fonda, who lacks a motor in the back of her Honda, would be perfect in this regard.

Because they are SLRs. Their firmware can do almost all CHDK can do. A lot of work and little gain, plus risk of bricking an expensive camera. The main focus of CHDK is cheapest idiotekameras, because the difference it makes is really huge.

That's correct when all you're doing is -using- CHDK.Developers need to use some quite advanced tricks to get the firmware dump and hook it all up. Of course there's no risk if they make no mistakes, but who writes software 100% bug-free at first attempt?