A framework for experiments on object detection using the darknet (yolo) and py-faster-rcnn techniques.
This repository uses modified forks of the py-faster-rcnn and darknet implementations. It is intended to provide an interface which is easy to use to do quick experiments with different kinds of deep networks and different kinds of data as well. Just mention the directories in the master config file and run the code. Below are mentioned the basic requirements for getting started, make sure you have all this set up before you proceed with the build. Note that these are configurations which have been built successfully and other configs and setups may or may not work.
Ubuntu - 16.04 / 14.04
Linux in General would probably be fine.
NVIDIA 1050/60/70 works fine(tested) - at least 4GB is good practically.
cuda v9.0 / v9.1
cudnn v7.0.5 / v7.1.1(get the correct package based on which version of cuda is installed)
gcc v5.4 / v5.2
g++ v5.4 / v5.2
git clone --recursive https://github.com/amitfishy/deep_objdetect
OR if you just cloned the repo the normal way:
git clone https://github.com/amitfishy/deep_objdetect
git submodule update --init --recursive
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libgoogle-glog-dev libgflags-dev liblmdb-dev libopenblas-dev libhdf5-serial-dev libprotobuf-dev protobuf-compiler libleveldb-dev libsnappy-dev libopencv-dev
sudo apt-get install python-dev python-setuptools python-numpy cython python-pip python-opencv python-skimage python-yaml
sudo pip install easydict protobuf
Generic Packages:
sudo apt-get install libleveldb-dev libsnappy-dev libopencv-dev
Python Stuff:
sudo apt-get install python-dev python-setuptools python-numpy cython python-pip python-opencv python-skimage python-yaml
sudo pip install easydict protobuf
Google Protobuf:
sudo apt-get install libprotobuf-dev protobuf-compiler
hdf5:
sudo apt-get install libhdf5-serial-dev
Boost:
sudo apt-get install --no-install-recommends libboost-all-dev
Gflags:
sudo apt-get install libgflags-dev
Glog:
sudo apt-get install libgoogle-glog-dev
lmdb:
sudo apt-get install liblmdb-dev
OpenBlas(for better CPU performance):
sudo apt-get install libopenblas-dev
Note: $PROJECT_ROOT
refers to this repository (path to deep_objdetect
if you haven't changed anything)
-
After the installation of the basic dependencies is completed, follow the build instructions given here.
-
If you are running into issues during the build, please look here. If this does not help please look at the original py-faster-rcnn repo and darknet repo.
-
If the build was successfully tested, proceed to the quick start guide.
-
For an overview of the overall functionality, please look here.
-
To do more detailed experiments with the deep networks and to change number of classes, have a look at this.
-
If you want to extend the functionality (in the context of extending annotations and annotation filtering), please look here. Note: You probably won't need to do this.