These sections include a breif description of the usage of the code for the vehicle detection implementation. The CNN based implementation has three heads used for classification, bounding boxes and range estimation.
The implementation uses a pre-trained version of the Resnet-34, available
here. Be sure to set the correct path to the
pre-trained model inside the function initialiseModel()
in
model_resnet.lua
.
The network is trained usig the KITTI object detection data
set,
and uses multiple threads (donkeys) to load the images from disk with functions
declared in donkeyCrops.lua
. Make sure to set the correct path to the
data set:
local dataPath = '/......./KITTI_Object_Detection/'
Same goes for the global opt.path
variable, declared in main.lua
.
The script main.lua
contains useful parameters for the network training,
stored in table opt
. It
also declares a high-level training function train()
. The parameter
opt.criterionWeights
is used to balance the cost functions used for the three
heads and can be set to 0 if any of them should be ignored during training. To
speciy if gradients should propagate through the entire network or only the
heads of the network, use the function setParameterNetwork()
with arguments
'model'
or 'heads'
.
test.lua
contains a set of functions used for testing a trained network qualitatively.