Autonomy Software Binder

Central engineering reference and operations manual for the MRDT Autonomy Software.

View the Project on GitHub MissouriMRDT/Autonomy_Software

Return to RoveSoDocs Guides for Today, Tomorrow, and Forever.

Vision Utilities

The src/util/vision/ directory contains specialized mathematical, image-processing, and neural-network helper utilities supporting the computer vision subsystems.


1. YOLOModel.hpp

This utility encapsulates the LibTorch C++ API, providing high-level loading, tensor conversion, and inference execution for YOLO models (.pt TorchScript).

Key Features


2. BoundingBoxTracking.h & BoundingBoxTracking.cpp

Neural network inference on high-resolution frames requires significant GPU cycles. To maintain high tracking rates while keeping compute loads manageable, the system employs OpenCV Multi-Object Tracking.

Pipeline

  1. When YOLO detects an object, a tracker instance (KCF or CSRT) is initialized on the detected bounding box.
  2. On subsequent camera frames, the tracker follows the visual features within the bounding box without executing full neural network inference.
  3. Trackers are maintained until:
    • The object leaves the camera field of view.
    • Tracking is lost for longer than constants::BBOX_TRACKER_LOST_TIMEOUT.
    • Continuous tracking exceeds constants::BBOX_TRACKER_MAX_TRACK_TIME, forcing a neural network re-evaluation.
  4. When a new neural network inference completes, overlapping tracker boxes are reconciled using Intersection-over-Union (IoU) matching (BBOX_TRACKER_IOU_MATCH_THRESHOLD).

3. Geolocate.hpp

Provides the geoloc::GeolocateBox() function, which bridges the 2D optical frame and the 3D UTM global frame:


4. TagDetectionUtilty.hpp & ObjectDetectionUtility.hpp


5. ImageOperations.hpp & FetchContainers.hpp