Custom Object Detection

Hi, is there any documentation on how to create a ML application to detect objects within a given frame and then highlight it with a bounding box. Pretty much exactly what person detection does, except I would like to train a model for my own object, For example find a water bottle and highlight it. I’ve seen the tutorials on edge impulse but those seem to be identifying a class of an entire image vs. highlighting a specific part of it. Im assuming this cant be done within the openMV IDE, but cant find anything on how to go about starting this using something like TensorFlow, I’d appreciate it if someone could point me in the right direction,

Thanks

Google and Edge Impulse don’t have any support for anything order than Image classification right now. So, it’s not possible. It’s not like a hardware implementation issue. Just a limit of TensorFlow lite for microcontrollers.

However, our library implementation of Image classification supports a sliding window. So… if you’re okay with a very low fps (less than 1) then you can let the sliding window run to classify multiple areas of the image. This will give you a rough area.

So, while it may seem weird… we are trying to be the forefront of really getting CNNs working on Microcontrollers right now. All our efforts are going to start going more mainstream with the new ARM ML architecture.

What would you recommend to use/do if i wanted to do something like this? Would it change the scenario if the object that I want to be detected is the same? So essentially, here is one water bottle (just an example), find and track this water bottle in the scene. So any variance about learning the traits of water bottles in general wouldn’t apply. For background, I’m trying to track a marker(s) in the scene that are relatively small, using distinct colors and blob tracking has worked so far but due to lots of background color noise as well as changing background light levels every time I want to use the application I need to redo the thresholds or I get multiple false positives or no positives. So to solve this I wanted to create a marker with distinct visual characteristics ie. a target or ‘+’ on a solid color background so I could be sure that the specific marker wouldn’t appear elsewhere on the scene, in attempt to increase consistency.

Ah, then use AprilTags. It’s easy and works well. See the AprilTag examples. The IDE can generate the tags for you under Tools->Machine Vision->AprilTags.