Hello and welcome to a miniseries and introduction to the TensorFlow Object Detection API. This API can be used to detect, with bounding boxes, objects in images and/or video using either some of the pre-trained models made available or through models you can train on your own (which the API also makes easier).
To begin, you're going to want to make sure you have TensorFlow and all of the dependencies. For CPU TensorFlow, you can just do
pip install tensorflow, but, of course, the GPU version of TensorFlow is much faster at processing so it is ideal. If you need to install GPU TensorFlow:
Installing GPU TensorFlow links:
If you do not have a powerful enough GPU to run the GPU version of TensorFlow, one option is to use PaperSpace. Using that link should give you $10 in credit to get started, giving you ~10-20 hours of use.
Beyond this, the other Python dependencies are covered with:
pip install pillow pip install lxml pip install jupyter pip install matplotlib
Next, we need to clone the github. We can do this with git, or you can just download the repository to .zip:
git clone https://github.com/tensorflow/models.git OR click the green "clone or download" button on the https://github.com/tensorflow/models page, download the .zip, and extract it.
Once you have the
models directory (or
models-master if you downloaded and extracted the .zip), navigate to that directory in your terminal/cmd.exe. The next steps are slightly different on Ubuntu vs Windows.
protoc object_detection/protos/*.proto --python_out=.
If you get an error on the
protoc command on Ubuntu, check the version you are running with
protoc --version, if it's not the latest version, you might want to update. As of my writing of this, we're using 3.4.0. In order to update or get protoc, head to the protoc releases page. Download the python version, extract, navigate into the directory and then do:
sudo ./configure sudo make check sudo make install
After that, try the
protoc command again (again, make sure you are issuing this from the
Head to the protoc releases page and download the
protoc-3.4.0-win32.zip, extract it, and you will find
protoc.exe in the
You can move this to something more appropriate if you like, or leave it here. I eventually put mine in program files, making a "protoc" directory and dropping it in there.
Now, from within the
models-master) directory, you can use the
protoc command like so:
"C:/Program Files/protoc/bin/protoc" object_detection/protos/*.proto --python_out=.
Next, open terminal/cmd.exe from the
models/object_detection directory and open the Jupyter Notebook with
jupyter notebook. From here, choose the
object_detection_tutorial.ipynb. From here, you should be able to
cell in the main menu, and choose
You should get the following results:
In the next tutorial, we'll cover how we can label data live from a webcam stream by modifying this sample code slightly.