Objectbox lets you build automatic object detectors using a built-in annotation tool that works with videos and images.
WATCH: For an overview of Objectbox, you can watch the Machine Box Object Box by Veritone Demo Video
Objectbox has a variety of utilities:
- Find brand logos in an image library
- Locate license plates for vehicles from traffic footage
- Count the number of pedestrians crossing a road
Run Objectbox
Run this code in your terminal to start the box, entering your key from your account:
MB_KEY="yourkeyhere"
export MB_OBJECTBOX_BOXDATA=`pwd`/boxdata
docker run -p 8080:8080 -e "MB_KEY=$MB_KEY" -e "MB_OBJECTBOX_ANNOTATION_TOOL=true" -v $MB_OBJECTBOX_BOXDATA:/boxdata machinebox/objectbox
In your local computer, create a folder, perhaps in your Documents folder, called Boxdata. Then in a Terminal run:
export MB_OBJECTBOX_BOXDATA=/Users/{username}/Documents/boxdata
Then, in the same terminal, set the MB_KEY environment variable by typing:
export MB_KEY="YOUR_KEY_HERE"
Then, in the same terminal, run:
docker run -p 8080:8080 -e "MB_KEY=$MB_KEY" -e "MB_OBJECTBOX_ANNOTATION_TOOL=true" -v $MB_OBJECTBOX_BOXDATA:/boxdata machinebox/objectbox
[Warning] If you are running a Windows environment, use % instead of $. For example, docker run -p 8080:8080 -e "MB_KEY=%MB_KEY" -e "MB_OBJECTBOX_ANNOTATION_TOOL=true" -v %MB_OBJECTBOX_BOXDATA:/boxdata machinebox/objectbox
Add videos/images to annotate
In your Boxdata folder (on your local hard drive) look for the files folder. You can put videos you wish to annotate here.
The other subfolders in this directory are used for collecting and processing training data.
Best practices
- Objectbox can be trained on jpgs or video.
- Objectbox can only be trained on objects or logos in context; a logo submitted out of context will not train Objectbox successfully. Start with 3-5 examples of a logo in the different contexts you expect it to appear in.
- Objectbox works best with rigid shapes. Angles or blurry objects will be difficult to detect.
- Make a new detector if the logo you are drawing a box around is different in any way (other than color), and create a new label, for example "BWM_1" and "BMW_2".
- Only annotate a frame once with the same logo. The only time you annotate multiple times on a single logo on a single frame is if there are multiple instances of the same logo in that frame, in which case you must annotate every instance of the same logo in a frame. If there is only one instance of the logo in the frame, annotate once only. You can always advance the video a few more frames to draw another annotation on that same logo.
- Avoid using special characters or spaces in the label.
Troubleshooting
Objectbox hangs up
Sometimes Objectbox and Docker will crash. The symptom is usually that Objectbox stops responding and there is a spinning wheel loading forever. In this event, restart Docker and rerun Objectbox.
Difficulty running Objectbox on Windows environments
If you are running a Windows environment, use % instead of $. For example,
docker run -p 8080:8080 -e "MB_KEY=%MB_KEY" -e "MB_OBJECTBOX_ANNOTATION_TOOL=true" -v %MB_OBJECTBOX_BOXDATA:/boxdata machinebox/objectbox
Access the annotation tool
In a web browser open http://localhost:8080/annotate.