Since GPGPU can be a way to get floating-point computation-intensive applications a lot faster, I decided to go back to a project that actually needed some more firepower : Optical Character Recognition.

I had written some OCR code last summer, before arriving at Montreal, because I had some time to kill while waiting for my work permit…

ochafik.misc.ocr.TextSlicerComponentCapture001.png(on this screenshot I clicked on a “a” and all the others were recognized){.imagelink}</p>

Of course, I wrote this in Java, so in order to do GPGPU I will have to learn JOGL and see how to use Cg from Java…</p>

The code I have is able to segment lines of a text, and then for each line to segment characters. Each character is then projected outwards from its center (computed as the “ink” barycenter), in any number of directions (1024 on this screenshot). The result of this projection is a character footprint. When you click on a character, it finds all the other segments which footprint more or less matches the initial character’s footprint, and highlights them.</p>

More to come soon, for now I’m headed to my bed 😀