Image Analysis Tool

While my regular client on Upwork is working on other projects related to zoles.dk, my involvement is on hiatus. This is a good time to describe IMALY, an image analysis tool I developed over the past few months.

Zoles is in the business of selling custom, 3D printed insoles, and for this they require foot outline images from customers. My task with IMALY was to create a measuring tool with as much automation as possible, in addition to manual features.

The app is coded in Python, with a Javascript frontend, using Ajax for communication across a proxy server dispatching requests between the app and Apache.

On the frontend, the most notable component is the HTML5 canvas interface, coded with 100% pure ES5 Javascript for maximum browser compatibility, with no graphical library being used. There was a lesson to be learnt in this effort: graphical libraries are overrated and not always needed. The canvas is not as difficult to work with directly as some might think. In fact, apart from some verbosity, I found it a fun challenge and enjoyed the “desktop application” look and functionality that I managed to achieve.

On the backend, most of the work was on paper corner detection. According to spec, the outline is drawn on an A4 sheet of paper, with all corners showing in the image. Initially, corner detection was coded with a custom solution that worked well enough in tests, but in practice was too fragile, with too many failures. After a break of a few months, spent working on other things, this feature was revisited and tackled decisively: an early version of the visual system in my Attentron project was adapted and developed for use, with the end result that all customer images on file (except for a couple off spec) were successfully evaluated. The majority of the images are challenging, with chequered backgrounds, crumpled paper, squiggles near the corners, etc. This served as the first proof that my approach in Attentron is viable.

More remains to be done: outline measurement is still to be automated. That, however, will require a more complete Attentron that will be able to reliably recognize the outline.

Previous

Next