Sunday, December 03, 2006

interactive recognition of hand-drawn circuit diagrams

After six years of study I completed my degree of BEng/MScEng (with computer science) last week. Yay! Here is a video of the final prototype:


You can download my full thesis or some slides.

Edit 2011/02/01: Here is the source code. It's a bit of a mess and it's going take a bit of work to get it going on newer systems because it probably requires an older wxWindows. The interesting parts are in src/linetools.py. If you find it useful or reference my work I'd love to hear about it.

One of my favourite opinionated parts:

It is generally believed that state coverage is superior to code coverage. It is the author's opinion, however, that state coverage is less important in Python than other languages. As Python typically processes collections (such as lists) using an iterator and not incrementing indices, there are less ways in which errors can occur. Since variables also need not be declared it is also less likely that null pointers would be dereferenced. This is, for example, one of the most frequent sources of errors in the Java programming language.

3 comments:

Hari said...

Hello,

I am Hari, and I am working on a project similar to the one that you worked on. Is there a chance you can share the code with me? Or better, is there a chance you can open source the code by hosting it on Google Code or elsewhere?

Thanks & Regards,
Hari

Janto said...

Hi,

I've added a link to the source code. Hopefully you can get it going. It's been a few years since I last ran the code.

Have a look at linetools.py in the src directory. That's where most of the interesting things happen.

Identification of the primitives works pretty good. Identification of complex compound components (such as the bjt class) works less well. Mostly because there is more variation between users' drawing styles than I cared to model.

The testdata directory also contains some user data you might find useful.

Drop me an email if you have any more questions: jantod@gmail.com
I would like to hear about your project.

Regards
Janto

Hildegarde said...

Gorgeous!