This week I introduced a confidence thresholding into the Tracker, so now the trackers are checked according to a value (in case of dlib tracking) or a boolean (in case of OpenCV tracking). This way I pretend to improve the results obtained and it allows some tuning of the tracker. Apart from that, new configuration options in the objecttracker.yml were added. Now the confidence of the Network object detections can be selected (with a number between 0 and 1 in terms of confidence) and also the image input size can be changed. This is a little more “dangerous” because some models cannot work with different input sizes but others can do it. This change affects to the FPS of the application both in Net and Tracker so it is interesting to be capable of changing this size. Showing now an example of the current configuration file:

ObjectTracker:
  Source: Video # Local (local camera), Video (local file), Stream (ROS/ICE)

  Local:
    DeviceNo: 1 # Device number for the desired webcam

  Video:
    Path: "/media/alexandre/Data/Documents/Alexandre2R/MOVA/TFM/video/MOT17Det/sequences/MOT17-11.mp4"

  Stream:
    Server: ROS # "ROS", "ICE", "Deactivate"
    Proxy: "cameraA:tcp -h localhost -p 9999"
    Format: RGB8
    Topic: "/usb_cam/image_raw"
    Name: cameraA

  Network:
    Framework: TensorFlow  # Currently supported: "Keras" or "TensorFlow"
    #Model: VGG_coco_SSD_512x512_iter_360000.h5
    Model: frozen_inference_graph.pb
    Dataset: COCO  # available: VOC, COCO, KITTI, OID, PET
    InputSize: [700,700]  # only some models allow changing this size
    Confidence: 0.6  # confidence threshold for detections

  Tracker:
    Lib: OpenCV  # Currently supported: "OpenCV" or "dlib"
    Type: MOSSE  # available (with OpenCV as Lib): KCF, BOOSTING, MIL, TLD, MEDIANFLOW, CSRT, MOSSE

  Logger:
    Status: on  # turn on/off the logging of the results: "on" or "off"

  NodeName: dl-objecttracker

The logger is now optional, the user can change the logger from on to off or viceversa in the .yml configuration file. The FPS average from Net and Tracker is now logged too, apart from the detections that were logged in previous versions. And the logging is now cancelled automatically if frames are skipped during the execution in a video due to a slow tracking (which throws away frames from the circular buffer). This is done to avoid problems of metrics calculations between detections and ground truths in the datasets.

Work in progress: ID assignation and results evaluation.