Label images using OpenCV object tracker

Everyone knows how lazy I am at doing repetitive stuff, to the point that the mere thought of annotating several hundred images [per class] for the object detection project was about to jeopardize the entire project I was so excited about… that, until one day over lunch when I was complaining to my colleague and he said: “but why don’t you have the OpenCV object tracker you’ve been using for another project to label video frames for you?”. Why did I not think about it before? So, I started looking for a labeling tool to do this for me. A couple hours and a few blog posts and tools that were doing only part of the job, I decided that I have spent more time googling than it takes ton actually build the thing. I added the keyboard interactions along the way, as I started using it and needed a little more functionality, but the core took less than an hour to write…and then I had to push myself for a few more days before I started writing about it!

Read More

TF object detection finds the RAM module in a PC

I’ve been trying to train an object detection model to detect parts of a PC when looking at it. The idea is to constantly monitor this and keep track of part removal, replacement etc. There are many ways to do this, but I have some limitations as well, I strictly want to be able to do everything from python and I want to be able to train my model using the local CPU cluster I have available. After some research on different ways of doing this and the various frameworks and algorithms out there, I came across what might be my best shot; TensorFlow Object Detection API. This comes with a really good set of tutorials that I followed. However, before getting to the point to use this API, I needed to make some labeled data. My googling around, concluded that there is no easy way of doing it. There are only semi-automated software to do the labeling but all of them consist some few hours of manual labor for the smallest dataset required to train a single-class model, and if it becomes anything more than a prototype or a personal fun project, outsourcing is always as option! So let’s start by how I did it for this project.

Read More

Predictive maintenance using C-MAPSS dataset

Lately, I have gotten interested in predictive maintenance and wonder how close are we in replacing preventive maintenance with predictive models. The more I read/thought about it the more I realized how much the answer hinges on the practice of keeping record of all piece replacements and maintenance, and engineering logs etc. and the whole thing became more and more overwhelming… Until I came across this -admittedly over simplified- set of -simulated- data and decided to start playing with it. The details of the simulations and some contextual information about the data are explained in a paper that I have only browsed very briefly and even now, have no idea what each of the columns I’ve worked with mean, but in a way this is part of the fun too.

Read More