I am not sure if it is the largest pre-college competition, but with the hundreds of students from around the world, the atmosphere of the whole event is simply amazing. At Intel ISEF students get a chance to present their science projects and meet each other. For many people, including me, attending ISEF is a pretty big deal. The prizes are high, the competition has a good recognition, and you just hope that all the hard work finally pays off.
My journey started on October the 16th 2016. I published an article with an announcement of my new machine learning project. The goal was simple: create OCR software for recognition of cursive handwriting. 577 days later I presented this project in front of ISEF judges. At the start I couldn’t even imagine that I will get to this point. There were loads of problems along the way. I am just thankful that I didn’t quit and got to this point.
The source code of the project is published on GitHub: github.com/Breta01/handwriting-ocr
You can imagine all sorts of things that can go wrong during such project. I was a newcomer to the world of machine learning. I had a decent theoretical background. However, I wasn’t prepared for all the hard times with debugging of TensorFlow. There are a lot of tutorials how to create ML models, but all of them use standardized datasets (MNIST 🙄 ) and real application can be a struggle.
Machine learning wasn’t the only struggle. Tweaking of parameters in OpenCV (computer vision library) functions just to find out that results are same as at start or too slow happened on a daily basis. I also had to recreate a whole dataset ― thousands of labeled word images. Yes, I was saving already normalized words and the normalization method turns out to be bad.
I did all sorts of stupid things which slows the development. I even quit the project along the way. But eventually, I was in Pittsburgh at Intel ISEF and presented my OCR software with a novel architecture of machine learning model. It wasn’t perfect. I didn’t win any prize and I felt disappointed, but that’s ok. I did my best and I had a good feeling from presentations in front of judges. I am also starting to benefit from its creation and all the experience. Plus, I have great memories from the trip to Pittsburgh and the whole event.
The one skill which is crucial to almost every project/research, even though, it is completely unrelated to your work is a presentation. It is fascinating how awesome presentation can bring a project up and bad presentation make even great project boring. (Just take a minute to think how an image of a product and its marketing shapes your perspective.) There are different levels of project presentation from talking with friends to lecture in front of a broad audience. From my experience, you should keep this in mind throughout the creation of a project.
Personally, I always get nervous when I have to present my project. I presented my Handwriting OCR many times. Finally, at ISEF I was interviewed by 9 judges (+2 additional) for 15 minutes each. You can see my poster which I used during presentation above. It was really tricky. There are things that everybody wants to hear and things that appreciate only people with deeper knowledge of a subject. Moreover, sometimes is really hard to tell whether they understand it or just nod to look clever.
I still trying to improve this skill. From my experience, it is good to pay attention to questions which you get and parts that interest people the most. Pay attention to those things even when you talk with friends and people from different fields because even the “stupid” questions can point you to mistakes in your presentation. For example, my interview with the last judge on ISEF was quite different (better) from the first one.
There is also a dilemma whether I should be modest or present it as something which will save the world. But that’s for a different article.
Along the way, I had to encounter many problems. Because of the time pressure, I stopped writing articles about overcoming them. Therefore, I would like to get back to these problems and write some tutorials for them. A downside is that my current perspective on issues is different from when I was solving them. I will try my best to address all questions that may occur during building real ML application or using my OCR project.
If you have any questions or ideas for tutorials, leave a comment below 🙂 .