Motiontrack is a set of tools that detects motion between two images. It is able to successfully distinguish random flicker from real object movement by applying a set of filters to the images, and can optionally ignore given colors and/or image regions. The roadmap provides for being able to identify objects by pattern detection and AI routines. Currently, this part is able to turn line-art images into ASCII-art text and auto-align images which are slightly staggered or contorted. This might also be useful to correct the perspective of image sources from different 3D angles.
You might also want to look at GNU ddrescue http://freshmeat.net/projects/addrescue here. They do a similar thing however with different emphasis.
1. ddrecue does the equivalent of a safecopy 'multi stage rescue' fully automatically in a single run, partitioning the source file semi-intelligently depending on found IO errors, but IMHO gives the user less feedback and control over the copying process and occuring errors.
2. ddrescue is more optimized for overall copying speed, especially on non erroneous data. Whether its actually faster than safecopy on real data depends on hardware, error distribution and parametrisation. You can usually find parameters for safecopy to make it faster than ddrescue but ddrescue tries to be optimal on its own without the need of tweaking parameters. Generally, doing safecopy --stage1 plus --stage2 is roughly comparable in speed. Also doing a --stage3 makes safecopy considerable slower but also potentially rescues more data.
3. ddrescue to my knowledge has no low level IO capabilities on its own, but does support accessing /dev/raw devices for bypassing kernel level caching (raw device "mounting" needs to be done manually though. You should be able to do that with safecopy too, but honestly I didn't try that yet. Please give me a bug report if there are any problems :)
4. ddrescue's sector logfiles are not compatible to fschk, mkfs or safecopy badblock lists. That should be workaroundable with a simple perl or bash translator script though.
I have not yet done extensive tests and benchmarks to compare safecopy with other tools.
Safecopy has big advantages when it comes to damaged CDs thanks to lowlevel IO, and might be better suited for an experienced user, wanting fine control, while ddrescue might be better suited for users who don't know what they are doing and still want to get maximum data with minimum hardware harm and time.
I'm the developer of safecopy ( http://freshmeat.net/projects/safecopy ) (which basically is another dd_rescue clone around for a couple of years). Aside from advertising my project on the comment page of the biggest competitor here *sic* I would encourage you guys to have a look on a little debug library (wrapper for glibc) I wrote and packaged with safecopy, which simulates IO-errors on a virtual file.
Unless you already use something like that internally for debugging and testing of ddrescue it might help your development work for benchmarks or creation of a test suite.