Note: This article was originally posted on the OpenCV AI Kit Kickstarter campaign.
OAK was started to solve a human safety issue- and that goal is still baked into the project. We also believe that in order to be maximally effective, this technology needs to be simple to use.
One of the biggest ways these two core philosophies intersect in OAK is how easy it is to train a custom neural network and deploy it to your OAK-1 or OAK-D module using freely available tools.
Today we’ll be looking at a network trained by Joash, an intern on the team. Before working with OAK, Joash had no experience with AI or CV, but was still able to create this robust net that detects and tracks several types of personal protective equipment (PPE): Safety vests, safety glasses, and helmets. I asked Joash about the experience of training a model for the first time over Slack: “I was under the impression this would be a difficult thing to do, but the ease of the platform and power of the features it offered made it easy to create, deploy, and re-create models at will.”
To create this network the excellent Python-based image labeling app labelImg and a free Google Colab notebook were used. As simple as OAK and our workflow makes it, training a great network still requires some testing and modifications. It’s a process Joash described like so: “For example, when training the safety glasses model, I originally input images only with safety glasses and people wearing safety glasses. However I noticed, when testing, that it started detecting my eyes as safety glasses (as the input images have the safety glasses over the eyes). So I realized I needed to have ground truth to tell it what wasn’t a pair of safety glasses. After this, it was an easy fix and cleaner result.” You can see the before (left) and after (right) below:
Even though there was some tweaking to be done, Joash found the experience to be surprisingly fun, saying “More than anything it was fun to train these models to personally see how easily ML techniques can be applied to problems that seem really hard.”
OAK was built with human safety and perception in mind, but in order to meet that lofty goal it needs to be easy to get started. By creating standardized workflows for model training we’re one step closer to the next big advance.
Backers of the Kickstarter Campaign, thank you so much for your support. Thanks to you we’re well over half way to the next Stretch Goal- at $500,000 we will create a new open source Power over Ethernet version of OAK-1 once we reach it! Let’s keep the momentum up.