Lane and Object Detection
Using OpenCV and YOLOv7
|
Contains all global and constant objects. More...
Namespaces | |
namespace | Exceptions |
Contains all custom exceptions. |
Enumerations | |
enum class | DrivingState : std::uint8_t { WITHIN_LANE = 0 , CHANGING_LANES , ONLY_LEFT_LANE_MARKING_DETECTED , ONLY_RIGHT_LANE_MARKING_DETECTED , NO_LANE_MARKINGS_DETECTED } |
The different driving states supported by the lane detector. More... | |
enum class | ObjectDetectorTypes : std::uint8_t { NONE = 0 , TINY , STANDARD } |
The type of object detector to use with an option to disable object detection. The tiny version is more performant at the cost of accuracy. More... | |
enum class | ObjectDetectorBackEnds : std::uint8_t { NONE = 0 , CPU , GPU , CUDA } |
The supported backends for the object detector to run on. In theory, GPU should be significantly more performant. For maximum performance CUDA should be used as the backend, however, this requires building OpenCV with CUDA which is not supported with this projects built-in installation script. More... | |
enum class | ObjectDetectorBlobSizes : std::int16_t { NONE = 0 , ONE = 288 , TWO = 320 , THREE = 416 , FOUR = 512 , FIVE = 608 } |
The supported blob sizes for the object detector to run with. The larger the blob size the more performant the detector at the cost of performance. More... |
Functions | |
static std::string | GetTimeElapsed (const std::chrono::time_point< std::chrono::high_resolution_clock > &p_startTime) |
Gets the elapsed time from p_startTime to now. |
Variables | |
static const std::string | G_CLI_HELP_MESSAGE = "\nUsage: lane-and-object-detection --input ... --yolo-folder-path ... [optional]\n\nOPTIONS:\n\nGeneric Options:\n\n -h --help Display available options\n\nRequired Options:\n\n -i --input File path or camera ID\n -y --yolo-folder-path Path to the yolo folder\n\nOptional options:\n\n -o --object-detector-type One of: none, standard or tiny (default = none)\n -b --object-detector-backend One of: cpu, gpu or cuda (default = cpu)\n -s --object-detector-blob-size One of: 208, 320, 416, 512 or 608 (default = 208)\n\n" |
CLI help message for the video manager. | |
static const uint32_t | G_VIDEO_OUTPUT_FPS = 30 |
Output video FPS. | |
static const std::string | G_TIME_UNIT = "us" |
Time unit for performance-related frame times. | |
static const double | G_MICROSECONDS_IN_SECOND = 1000000 |
Conversion between time units. | |
static const uint32_t | G_CONVERT_DECIMAL_TO_PERCENTAGE = 100 |
Convert a decimal value to a percentage. | |
static const double | G_DIVIDE_BY_TWO = 2 |
Divide by two. | |
static const cv::Rect | G_UI_RECT_TIMESTAMP = cv::Rect(0, G_VIDEO_INPUT_HEIGHT - G_UI_BOTTOM_BAR_HEIGHT, 300, G_UI_BOTTOM_BAR_HEIGHT) |
Timestamp UI location. | |
static const cv::Rect | G_UI_RECT_FPS = cv::Rect(300, G_VIDEO_INPUT_HEIGHT - G_UI_BOTTOM_BAR_HEIGHT, 300, G_UI_BOTTOM_BAR_HEIGHT) |
Performance-related information UI location. | |
static const cv::Rect | G_UI_RECT_DRIVING_STATE = cv::Rect(0, G_VIDEO_INPUT_HEIGHT - G_UI_BOTTOM_BAR_HEIGHT, G_VIDEO_INPUT_WIDTH, G_UI_TITLE_HEIGHT) |
Driving state UI location (width is the entire screen for centering). | |
static const cv::Rect | G_UI_RECT_DRIVING_STATE_SUBTITLE = cv::Rect(0, G_VIDEO_INPUT_HEIGHT - G_UI_SUBTITLE_HEIGHT, G_VIDEO_INPUT_WIDTH, G_UI_SUBTITLE_HEIGHT) |
Driving state sub-title UI location (width is the entire screen for centering). | |
static const cv::Rect | G_UI_RECT_DEBUG_MODE_STATUS = cv::Rect(G_VIDEO_INPUT_WIDTH - 600, G_VIDEO_INPUT_HEIGHT - G_UI_BOTTOM_BAR_HEIGHT, 300, G_UI_BOTTOM_BAR_HEIGHT) |
Debug mode status UI location. | |
static const int32_t | G_HOUGH_LINE_THICKNESS = 2 |
The thickness of the hough lines drawn in debug mode. | |
static const cv::Scalar | G_LANE_OVERLAY_COLOUR = cv::Scalar(0, 64, 0) |
Translucent colour of the overlay for the current lane. | |
static const uint32_t | G_DEFAULT_ROLLING_AVERAGE_SIZE = 10 |
Default rolling average size. | |
static const double | G_DEBUGGING_FRAME_SCALING_FACTOR = static_cast<double>(G_VIDEO_INPUT_WIDTH / 3.0) / static_cast<double>(G_ROI_BOUNDING_BOX_END_X - G_ROI_BOUNDING_BOX_START_X) |
Scaling factor for debugging frames. | |
static const double | G_HOUGH_LINE_HORIZONTAL_GRADIENT_THRESHOLD = 0.5 |
Threshold gradient to decide whether a line is to be considered horizontal. | |
static const uint32_t | G_SOLID_LINE_LENGTH_THRESHOLD = 175 |
Threshold length to decide whether a line is to be considered solid line road marking. | |
static const std::unordered_map< DrivingState, std::string > | G_DRIVING_STATE_TITLES |
The driving state titles to display. | |
static const uint32_t | G_CHANGING_LANES_DISTANCE_DIFFERENCE_FRAME_COUNT_THRESHOLD = 10 |
The number of frames to wait before calculating another distance difference while the vehicle is changing lanes. | |
static const std::string | G_YOLO_NAME = "YOLOv7" |
The name of the YOLO version being used. | |
static const std::map< std::string, cv::Scalar > | G_OBJECT_DETECTOR_OBJECT_NAMES_AND_COLOURS |
Object names and bounding box colours. G_OPENCV_WHITE is used as the default colour while custom colours are given to object more commonly found while driving. | |
static const std::string | G_PERFORMANCE_TESTS_CLI_HELP_MESSAGE = "Usage: lane-and-object-detection-performance-tests --platform ... --database-path ... --input ... --yolo-folder-path ... --repetitions ...\n\nOPTIONS:\n\nGeneric Options:\n\n-h --help Display available options\n\nRequired Options:\n\n-p --platform The current platform being tested\n-d --database-path Path to SQLite database file\n-i --input Benchmark video file path\n-y --yolo-folder-path Path to the yolo configuration folder\n-r --repetitions Number of repetitions for each test" |
CLI help message for the performance tests. | |
static const uint32_t | G_VIDEO_INPUT_HEIGHT = 1080 |
Input video dimensions. | |
static const uint32_t | G_VIDEO_INPUT_WIDTH = 1920 |
Input video dimensions. | |
static const uint32_t | G_VIDEO_OUTPUT_HEIGHT = 1080 |
Output video dimensions. | |
static const uint32_t | G_VIDEO_OUTPUT_WIDTH = 1920 |
Output video dimensions. | |
static const uint32_t | G_KEY_DEBUG_MODE = 'd' |
Keyboard values when getting user input. | |
static const uint32_t | G_KEY_TOGGLE_SAVE_OUTPUT = 'r' |
Keyboard values when getting user input. | |
static const uint32_t | G_KEY_QUIT = 'q' |
Keyboard values when getting user input. | |
static const uint32_t | G_FONT_DEFAULT_FACE = cv::FONT_HERSHEY_DUPLEX |
Font settings. | |
static const uint32_t | G_FONT_DEFAULT_THICKNESS = 1 |
Font settings. | |
static const int32_t | G_FONT_DEFAULT_HORIZONTAL_PADDING = 10 |
Font settings. | |
static const int32_t | G_FONT_DEFAULT_VERTICAL_PADDING = 15 |
Font settings. | |
static const double | G_FONT_DEFAULT_DECREMENT = 0.1 |
Font settings. | |
static const double | G_FONT_DEFAULT_SCALE = 1 |
Font settings. | |
static const cv::Scalar | G_COLOUR_BLACK = cv::Scalar(0, 0, 0) |
OpenCV Colours (in BGR format). | |
static const cv::Scalar | G_COLOUR_GREY = cv::Scalar(128, 128, 128) |
OpenCV Colours (in BGR format). | |
static const cv::Scalar | G_COLOUR_WHITE = cv::Scalar(255, 255, 255) |
OpenCV Colours (in BGR format). | |
static const cv::Scalar | G_COLOUR_RED = cv::Scalar(0, 0, 192) |
OpenCV Colours (in BGR format). | |
static const cv::Scalar | G_COLOUR_LIGHT_RED = cv::Scalar(128, 128, 192) |
OpenCV Colours (in BGR format). | |
static const cv::Scalar | G_COLOUR_ORANGE = cv::Scalar(0, 128, 192) |
OpenCV Colours (in BGR format). | |
static const cv::Scalar | G_COLOUR_YELLOW = cv::Scalar(0, 192, 192) |
OpenCV Colours (in BGR format). | |
static const cv::Scalar | G_COLOUR_GREEN = cv::Scalar(0, 192, 0) |
OpenCV Colours (in BGR format). | |
static const cv::Scalar | G_COLOUR_BLUE = cv::Scalar(192, 0, 0) |
OpenCV Colours (in BGR format). | |
static const cv::Scalar | G_COLOUR_LIGHT_BLUE = cv::Scalar(192, 128, 128) |
OpenCV Colours (in BGR format). | |
static const cv::Scalar | G_COLOUR_PURPLE = cv::Scalar(192, 0, 192) |
OpenCV Colours (in BGR format). | |
static const std::string | G_UI_TEXT_RECORDING = "Output Recording Enabled" |
Text to display whether or not recording. | |
static const std::string | G_UI_TEXT_NOT_RECORDING = "Press 'r' to record output" |
Text to display whether or not recording. | |
static const std::string | G_UI_TEXT_DEBUG_MODE = "Debug Mode Enabled" |
Text to display whether or not in debug mode. | |
static const std::string | G_UI_TEXT_NOT_DEBUG_MODE = "Press 'd' to enter debug mode" |
Text to display whether or not in debug mode. | |
static const double | G_UI_H1_FONT_SCALE = 0.6 |
Font scales for different heading sizes. | |
static const double | G_UI_H2_FONT_SCALE = 0.4 |
Font scales for different heading sizes. | |
static const int32_t | G_UI_BOTTOM_BAR_HEIGHT = 55 |
UI heights. | |
static const int32_t | G_UI_TITLE_HEIGHT = 30 |
UI heights. | |
static const int32_t | G_UI_SUBTITLE_HEIGHT = 25 |
UI heights. | |
static const cv::Rect | G_UI_RECT_RECORDING_STATUS = cv::Rect(G_VIDEO_INPUT_WIDTH - 300, G_VIDEO_INPUT_HEIGHT - G_UI_BOTTOM_BAR_HEIGHT, 300, G_UI_TITLE_HEIGHT) |
Recording status UI locations. | |
static const cv::Rect | G_UI_RECT_RECORDING_ELAPSED_TIME = cv::Rect(G_VIDEO_INPUT_WIDTH - 300, G_VIDEO_INPUT_HEIGHT - G_UI_SUBTITLE_HEIGHT, 300, G_UI_SUBTITLE_HEIGHT) |
Recording status UI locations. | |
static const cv::Point | G_UI_POINT_RECORDING_DOT = cv::Point(G_VIDEO_INPUT_WIDTH - 190, G_VIDEO_INPUT_HEIGHT - 13) |
Recording status UI locations. | |
static const uint32_t | G_UI_RADIUS_RECORDING_DOT = 5 |
Recording status UI locations. | |
static const cv::Rect | G_UI_RECT_NOT_RECORDING_STATUS = cv::Rect(G_VIDEO_INPUT_WIDTH - 300, G_VIDEO_INPUT_HEIGHT - G_UI_BOTTOM_BAR_HEIGHT, 300, G_UI_BOTTOM_BAR_HEIGHT) |
Recording status UI locations. | |
static const int32_t | G_ROI_TOP_HEIGHT = 800 |
Region-of-interest dimensions. | |
static const int32_t | G_ROI_BOTTOM_HEIGHT = 1025 |
Region-of-interest dimensions. | |
static const int32_t | G_ROI_TOP_WIDTH = 250 |
Region-of-interest dimensions. | |
static const int32_t | G_ROI_BOTTOM_WIDTH = 850 |
Region-of-interest dimensions. | |
static const uint32_t | G_NUMBER_OF_POINTS = 4 |
Region-of-interest points. Below is how the indicies of the array map to the points. | |
static const std::array< cv::Point, G_NUMBER_OF_POINTS > | G_ROI_MASK_POINTS |
Region-of-interest points. Below is how the indicies of the array map to the points. | |
static const uint32_t | G_ROI_BOUND_BOX_PADDING = 10 |
The bounding box of the region-of-interest which is used to crop debugging frames. The '#' characters show the bounding box with respect to the region-of-interest. | |
static const uint32_t | G_ROI_BOUNDING_BOX_START_X = (G_VIDEO_INPUT_WIDTH / 2.0) - (G_ROI_BOTTOM_WIDTH / 2.0) - G_ROI_BOUND_BOX_PADDING |
The bounding box of the region-of-interest which is used to crop debugging frames. The '#' characters show the bounding box with respect to the region-of-interest. | |
static const uint32_t | G_ROI_BOUNDING_BOX_END_X = (G_VIDEO_INPUT_WIDTH / 2.0) + (G_ROI_BOTTOM_WIDTH / 2.0) + G_ROI_BOUND_BOX_PADDING |
The bounding box of the region-of-interest which is used to crop debugging frames. The '#' characters show the bounding box with respect to the region-of-interest. | |
static const uint32_t | G_ROI_BOUNDING_BOX_START_Y = G_ROI_TOP_HEIGHT - G_ROI_BOUND_BOX_PADDING |
The bounding box of the region-of-interest which is used to crop debugging frames. The '#' characters show the bounding box with respect to the region-of-interest. | |
static const uint32_t | G_ROI_BOUNDING_BOX_END_Y = G_ROI_BOTTOM_HEIGHT + G_ROI_BOUND_BOX_PADDING |
The bounding box of the region-of-interest which is used to crop debugging frames. The '#' characters show the bounding box with respect to the region-of-interest. | |
static const cv::Range | G_ROI_BOUNDING_BOX_X_RANGE = cv::Range(G_ROI_BOUNDING_BOX_START_X, G_ROI_BOUNDING_BOX_END_X) |
The bounding box of the region-of-interest which is used to crop debugging frames. The '#' characters show the bounding box with respect to the region-of-interest. | |
static const cv::Range | G_ROI_BOUNDING_BOX_Y_RANGE = cv::Range(G_ROI_BOUNDING_BOX_START_Y, G_ROI_BOUNDING_BOX_END_Y) |
The bounding box of the region-of-interest which is used to crop debugging frames. The '#' characters show the bounding box with respect to the region-of-interest. | |
static const uint32_t | G_ROI_TOP_LEFT_INDEX = 0 |
The index values which represent each corner of G_ROI_MASK_POINTS. | |
static const uint32_t | G_ROI_TOP_RIGHT_INDEX = 1 |
The index values which represent each corner of G_ROI_MASK_POINTS. | |
static const uint32_t | G_ROI_BOTTOM_RIGHT_INDEX = 2 |
The index values which represent each corner of G_ROI_MASK_POINTS. | |
static const uint32_t | G_ROI_BOTTOM_LEFT_INDEX = 3 |
The index values which represent each corner of G_ROI_MASK_POINTS. | |
static const double | G_LEFT_EDGE_OF_MASK_M = (G_ROI_MASK_POINTS[G_ROI_TOP_LEFT_INDEX].y - G_ROI_MASK_POINTS[G_ROI_BOTTOM_LEFT_INDEX].y) / static_cast<double>(G_ROI_MASK_POINTS[G_ROI_TOP_LEFT_INDEX].x - G_ROI_MASK_POINTS[G_ROI_BOTTOM_LEFT_INDEX].x) |
Region-of-interest sub-division line equations (y = mx + c). | |
static const double | G_LEFT_EDGE_OF_MASK_C = G_ROI_MASK_POINTS[G_ROI_TOP_LEFT_INDEX].y - (G_LEFT_EDGE_OF_MASK_M * G_ROI_MASK_POINTS[G_ROI_TOP_LEFT_INDEX].x) |
Region-of-interest sub-division line equations (y = mx + c). | |
static const double | G_RIGHT_EDGE_OF_MASK_M = (G_ROI_MASK_POINTS[G_ROI_TOP_RIGHT_INDEX].y - G_ROI_MASK_POINTS[G_ROI_BOTTOM_RIGHT_INDEX].y) / static_cast<double>(G_ROI_MASK_POINTS[G_ROI_TOP_RIGHT_INDEX].x - G_ROI_MASK_POINTS[G_ROI_BOTTOM_RIGHT_INDEX].x) |
Region-of-interest sub-division line equations (y = mx + c). | |
static const double | G_RIGHT_EDGE_OF_MASK_C = G_ROI_MASK_POINTS[G_ROI_TOP_RIGHT_INDEX].y - (G_RIGHT_EDGE_OF_MASK_M * G_ROI_MASK_POINTS[G_ROI_TOP_RIGHT_INDEX].x) |
Region-of-interest sub-division line equations (y = mx + c). | |
static const double | G_TOP_MID_POINT_X_LOCATION = G_ROI_MASK_POINTS[G_ROI_TOP_LEFT_INDEX].x + (G_ROI_TOP_WIDTH / 2.0) |
Region-of-interest sub-division line equations (y = mx + c). | |
static const double | G_BOTTOM_ONE_THIRD_LOCATION = G_ROI_MASK_POINTS[G_ROI_BOTTOM_LEFT_INDEX].x + (G_ROI_BOTTOM_WIDTH / 3.0) |
Region-of-interest sub-division line equations (y = mx + c). | |
static const double | G_BOTTOM_TWO_THIRD_LOCATION = G_ROI_MASK_POINTS[G_ROI_BOTTOM_LEFT_INDEX].x + (2.0 * G_ROI_BOTTOM_WIDTH / 3.0) |
Region-of-interest sub-division line equations (y = mx + c). | |
static const double | G_LEFT_LINE_THRESHOLD_M = (G_ROI_TOP_HEIGHT - G_ROI_BOTTOM_HEIGHT) / (G_TOP_MID_POINT_X_LOCATION - G_BOTTOM_ONE_THIRD_LOCATION) |
Region-of-interest sub-division line equations (y = mx + c). | |
static const double | G_LEFT_LINE_THRESHOLD_C = G_ROI_TOP_HEIGHT - (G_LEFT_LINE_THRESHOLD_M * G_TOP_MID_POINT_X_LOCATION) |
Region-of-interest sub-division line equations (y = mx + c). | |
static const double | G_RIGHT_LINE_THRESHOLD_M = (G_ROI_TOP_HEIGHT - G_ROI_BOTTOM_HEIGHT) / (G_TOP_MID_POINT_X_LOCATION - G_BOTTOM_TWO_THIRD_LOCATION) |
Region-of-interest sub-division line equations (y = mx + c). | |
static const double | G_RIGHT_LINE_THRESHOLD_C = G_ROI_TOP_HEIGHT - (G_RIGHT_LINE_THRESHOLD_M * G_TOP_MID_POINT_X_LOCATION) |
Region-of-interest sub-division line equations (y = mx + c). | |
static const uint32_t | G_CANNY_ALGORITHM_LOWER_THRESHOLD = 128 |
Canny algorithm thresholds. | |
static const uint32_t | G_CANNY_ALGORITHM_UPPER_THRESHOLD = 255 |
Canny algorithm thresholds. | |
static const double | G_HOUGH_RHO = 1 |
Hough transform threshold and properties. | |
static const double | G_HOUGH_THETA = CV_PI / 180.0 |
Hough transform threshold and properties. | |
static const uint32_t | G_HOUGH_THRESHOLD = 32 |
Hough transform threshold and properties. | |
static const uint32_t | G_HOUGH_MIN_LINE_LENGTH = 8 |
Hough transform threshold and properties. | |
static const uint32_t | G_HOUGH_MAX_LINE_GAP = 8 |
Hough transform threshold and properties. | |
static const uint32_t | G_VEC4_X1_INDEX = 0 |
Hough line index mapping. | |
static const uint32_t | G_VEC4_Y1_INDEX = 1 |
Hough line index mapping. | |
static const uint32_t | G_VEC4_X2_INDEX = 2 |
Hough line index mapping. | |
static const uint32_t | G_VEC4_Y2_INDEX = 3 |
Hough line index mapping. | |
static const double | G_OBJECT_DETECTOR_SCALE_FACTOR = 1 / 255.0 |
Object detection threshold and properties. | |
static const double | G_OBJECT_DETECTOR_CONFIDENCE_THRESHOLD = 0.4 |
Object detection threshold and properties. | |
static const double | G_OBJECT_DETECTOR_NMS_THRESHOLD = 0.4 |
Object detection threshold and properties. | |
static const uint32_t | G_OBJECT_DETECTOR_BOUNDING_BOX_BUFFER = 5 |
Object detection bounding box properties. | |
static const int32_t | G_OBJECT_DETECTOR_BOUNDING_BOX_HEADER_HEIGHT = 15 |
Object detection bounding box properties. | |
static const int32_t | G_OBJECT_DETECTOR_BOUNDING_BOX_BORDER_THICKNESS = 1 |
Object detection bounding box properties. | |
static const int32_t | G_OBJECT_DETECTOR_BOUNDING_BOX_CHARACTER_WIDTH = 9 |
Object detection bounding box properties. | |
static const int32_t | G_OBJECT_DETECTOR_BOUNDING_BOX_TEXT_HEIGHT_OFFSET = 2 |
Object detection bounding box properties. | |
static const double | G_OBJECT_DETECTOR_BOUNDING_BOX_FONT_SCALE = 0.5 |
Object detection bounding box properties. | |
static const int32_t | G_OBJECT_DETECTOR_OUTPUT_BLOBS_CENTER_X_COORD_INDEX = 0 |
The indicies representing various values in the output blobs. | |
static const int32_t | G_OBJECT_DETECTOR_OUTPUT_BLOBS_CENTER_Y_COORD_INDEX = 1 |
The indicies representing various values in the output blobs. | |
static const int32_t | G_OBJECT_DETECTOR_OUTPUT_BLOBS_WIDTH_INDEX = 2 |
The indicies representing various values in the output blobs. | |
static const int32_t | G_OBJECT_DETECTOR_OUTPUT_BLOBS_HEIGHT_INDEX = 3 |
The indicies representing various values in the output blobs. | |
static const int32_t | G_OBJECT_DETECTOR_OUTPUT_BLOBS_OBJECT_SCORES_START_INDEX = 5 |
The indicies representing various values in the output blobs. | |
static const uint32_t | G_OBJECT_DETECTOR_NUMBER_OF_DETECTABLE_OBJECTS = 80 |
Names of detectable objects. The order is significant and should not be changed. | |
static const std::array< std::string, G_OBJECT_DETECTOR_NUMBER_OF_DETECTABLE_OBJECTS > | G_OBJECT_DETECTOR_OBJECT_NAMES |
Names of detectable objects. The order is significant and should not be changed. | |
static const uint32_t | G_PERFORMANCE_TESTS_NUMBER_OF_TESTS = 21 |
Performance tests settings. | |
static const std::array< std::string, G_PERFORMANCE_TESTS_NUMBER_OF_TESTS > | G_PERFORMANCE_TESTS_NAMES |
Performance tests settings. | |
static const std::array< ObjectDetectorTypes, G_PERFORMANCE_TESTS_NUMBER_OF_TESTS > | G_PERFORMANCE_TESTS_OBJECT_DETECTOR_TYPES |
Performance tests settings. | |
static const std::array< ObjectDetectorBackEnds, G_PERFORMANCE_TESTS_NUMBER_OF_TESTS > | G_PERFORMANCE_TESTS_BACK_END_TYPES |
Performance tests settings. | |
static const std::array< ObjectDetectorBlobSizes, G_PERFORMANCE_TESTS_NUMBER_OF_TESTS > | G_PERFORMANCE_TESTS_BLOB_SIZES |
Performance tests settings. |
Contains all global and constant objects.
|
strong |
The different driving states supported by the lane detector.
Definition at line 411 of file Globals.hpp.
|
strong |
The type of object detector to use with an option to disable object detection. The tiny version is more performant at the cost of accuracy.
Definition at line 445 of file Globals.hpp.
|
strong |
The supported backends for the object detector to run on. In theory, GPU should be significantly more performant. For maximum performance CUDA should be used as the backend, however, this requires building OpenCV with CUDA which is not supported with this projects built-in installation script.
Definition at line 457 of file Globals.hpp.
|
strong |
The supported blob sizes for the object detector to run with. The larger the blob size the more performant the detector at the cost of performance.
Definition at line 469 of file Globals.hpp.
|
inlinestatic |
Gets the elapsed time from p_startTime to now.
p_startTime | The time to compare to now. |
Definition at line 49 of file Globals.hpp.
|
inlinestatic |
CLI help message for the video manager.
Definition at line 97 of file Globals.hpp.
|
inlinestatic |
Input video dimensions.
Definition at line 103 of file Globals.hpp.
|
inlinestatic |
Input video dimensions.
Definition at line 104 of file Globals.hpp.
|
inlinestatic |
Output video dimensions.
Definition at line 111 of file Globals.hpp.
|
inlinestatic |
Output video dimensions.
Definition at line 112 of file Globals.hpp.
|
inlinestatic |
Output video FPS.
Definition at line 118 of file Globals.hpp.
|
inlinestatic |
Keyboard values when getting user input.
Definition at line 124 of file Globals.hpp.
|
inlinestatic |
Keyboard values when getting user input.
Definition at line 125 of file Globals.hpp.
|
inlinestatic |
Keyboard values when getting user input.
Definition at line 126 of file Globals.hpp.
|
inlinestatic |
Font settings.
Definition at line 133 of file Globals.hpp.
|
inlinestatic |
Font settings.
Definition at line 134 of file Globals.hpp.
|
inlinestatic |
Font settings.
Definition at line 135 of file Globals.hpp.
|
inlinestatic |
Font settings.
Definition at line 136 of file Globals.hpp.
|
inlinestatic |
Font settings.
Definition at line 137 of file Globals.hpp.
|
inlinestatic |
Font settings.
Definition at line 138 of file Globals.hpp.
|
inlinestatic |
OpenCV Colours (in BGR format).
Definition at line 145 of file Globals.hpp.
|
inlinestatic |
OpenCV Colours (in BGR format).
Definition at line 146 of file Globals.hpp.
|
inlinestatic |
OpenCV Colours (in BGR format).
Definition at line 147 of file Globals.hpp.
|
inlinestatic |
OpenCV Colours (in BGR format).
Definition at line 148 of file Globals.hpp.
|
inlinestatic |
OpenCV Colours (in BGR format).
Definition at line 149 of file Globals.hpp.
|
inlinestatic |
OpenCV Colours (in BGR format).
Definition at line 150 of file Globals.hpp.
|
inlinestatic |
OpenCV Colours (in BGR format).
Definition at line 151 of file Globals.hpp.
|
inlinestatic |
OpenCV Colours (in BGR format).
Definition at line 152 of file Globals.hpp.
|
inlinestatic |
OpenCV Colours (in BGR format).
Definition at line 153 of file Globals.hpp.
|
inlinestatic |
OpenCV Colours (in BGR format).
Definition at line 154 of file Globals.hpp.
|
inlinestatic |
OpenCV Colours (in BGR format).
Definition at line 155 of file Globals.hpp.
|
inlinestatic |
Time unit for performance-related frame times.
Definition at line 161 of file Globals.hpp.
|
inlinestatic |
Conversion between time units.
Definition at line 166 of file Globals.hpp.
|
inlinestatic |
Convert a decimal value to a percentage.
Definition at line 171 of file Globals.hpp.
|
inlinestatic |
Divide by two.
Definition at line 176 of file Globals.hpp.
|
inlinestatic |
Text to display whether or not recording.
Definition at line 182 of file Globals.hpp.
|
inlinestatic |
Text to display whether or not recording.
Definition at line 183 of file Globals.hpp.
|
inlinestatic |
Text to display whether or not in debug mode.
Definition at line 190 of file Globals.hpp.
|
inlinestatic |
Text to display whether or not in debug mode.
Definition at line 191 of file Globals.hpp.
|
inlinestatic |
Font scales for different heading sizes.
Definition at line 198 of file Globals.hpp.
|
inlinestatic |
Font scales for different heading sizes.
Definition at line 199 of file Globals.hpp.
|
inlinestatic |
UI heights.
Definition at line 206 of file Globals.hpp.
|
inlinestatic |
UI heights.
Definition at line 207 of file Globals.hpp.
|
inlinestatic |
UI heights.
Definition at line 208 of file Globals.hpp.
|
inlinestatic |
Timestamp UI location.
Definition at line 214 of file Globals.hpp.
|
inlinestatic |
Performance-related information UI location.
Definition at line 219 of file Globals.hpp.
|
inlinestatic |
Driving state UI location (width is the entire screen for centering).
Definition at line 224 of file Globals.hpp.
|
inlinestatic |
Driving state sub-title UI location (width is the entire screen for centering).
Definition at line 229 of file Globals.hpp.
|
inlinestatic |
Debug mode status UI location.
Definition at line 234 of file Globals.hpp.
|
inlinestatic |
Recording status UI locations.
Definition at line 240 of file Globals.hpp.
|
inlinestatic |
Recording status UI locations.
Definition at line 241 of file Globals.hpp.
|
inlinestatic |
Recording status UI locations.
Definition at line 242 of file Globals.hpp.
|
inlinestatic |
Recording status UI locations.
Definition at line 243 of file Globals.hpp.
|
inlinestatic |
Recording status UI locations.
Definition at line 244 of file Globals.hpp.
|
inlinestatic |
The thickness of the hough lines drawn in debug mode.
Definition at line 250 of file Globals.hpp.
|
inlinestatic |
Translucent colour of the overlay for the current lane.
Definition at line 255 of file Globals.hpp.
|
inlinestatic |
Default rolling average size.
Definition at line 260 of file Globals.hpp.
|
inlinestatic |
Region-of-interest dimensions.
Definition at line 266 of file Globals.hpp.
|
inlinestatic |
Region-of-interest dimensions.
Definition at line 267 of file Globals.hpp.
|
inlinestatic |
Region-of-interest dimensions.
Definition at line 268 of file Globals.hpp.
|
inlinestatic |
Region-of-interest dimensions.
Definition at line 269 of file Globals.hpp.
|
inlinestatic |
Region-of-interest points. Below is how the indicies of the array map to the points.
Top left (0) > ____________________ < Top right (1) / \ / \ / \ / \ / \ / \ --------------------------------
Bottom Left (3) ^ ^ Bottom right (2)
Definition at line 286 of file Globals.hpp.
|
inlinestatic |
Region-of-interest points. Below is how the indicies of the array map to the points.
Top left (0) > ____________________ < Top right (1) / \ / \ / \ / \ / \ / \ --------------------------------
Bottom Left (3) ^ ^ Bottom right (2)
Definition at line 287 of file Globals.hpp.
|
inlinestatic |
The bounding box of the region-of-interest which is used to crop debugging frames. The '#' characters show the bounding box with respect to the region-of-interest.
#######____________________######## < Start Y # / \ # # / \ # # / \ # # / \ # # / \ # #/ \ # #---------------------------------# < End Y Start X ^ End X ^
Definition at line 310 of file Globals.hpp.
|
inlinestatic |
The bounding box of the region-of-interest which is used to crop debugging frames. The '#' characters show the bounding box with respect to the region-of-interest.
#######____________________######## < Start Y # / \ # # / \ # # / \ # # / \ # # / \ # #/ \ # #---------------------------------# < End Y Start X ^ End X ^
Definition at line 311 of file Globals.hpp.
|
inlinestatic |
The bounding box of the region-of-interest which is used to crop debugging frames. The '#' characters show the bounding box with respect to the region-of-interest.
#######____________________######## < Start Y # / \ # # / \ # # / \ # # / \ # # / \ # #/ \ # #---------------------------------# < End Y Start X ^ End X ^
Definition at line 312 of file Globals.hpp.
|
inlinestatic |
The bounding box of the region-of-interest which is used to crop debugging frames. The '#' characters show the bounding box with respect to the region-of-interest.
#######____________________######## < Start Y # / \ # # / \ # # / \ # # / \ # # / \ # #/ \ # #---------------------------------# < End Y Start X ^ End X ^
Definition at line 313 of file Globals.hpp.
|
inlinestatic |
The bounding box of the region-of-interest which is used to crop debugging frames. The '#' characters show the bounding box with respect to the region-of-interest.
#######____________________######## < Start Y # / \ # # / \ # # / \ # # / \ # # / \ # #/ \ # #---------------------------------# < End Y Start X ^ End X ^
Definition at line 314 of file Globals.hpp.
|
inlinestatic |
The bounding box of the region-of-interest which is used to crop debugging frames. The '#' characters show the bounding box with respect to the region-of-interest.
#######____________________######## < Start Y # / \ # # / \ # # / \ # # / \ # # / \ # #/ \ # #---------------------------------# < End Y Start X ^ End X ^
Definition at line 315 of file Globals.hpp.
|
inlinestatic |
The bounding box of the region-of-interest which is used to crop debugging frames. The '#' characters show the bounding box with respect to the region-of-interest.
#######____________________######## < Start Y # / \ # # / \ # # / \ # # / \ # # / \ # #/ \ # #---------------------------------# < End Y Start X ^ End X ^
Definition at line 316 of file Globals.hpp.
|
inlinestatic |
Scaling factor for debugging frames.
Definition at line 322 of file Globals.hpp.
|
inlinestatic |
The index values which represent each corner of G_ROI_MASK_POINTS.
Definition at line 328 of file Globals.hpp.
|
inlinestatic |
The index values which represent each corner of G_ROI_MASK_POINTS.
Definition at line 329 of file Globals.hpp.
|
inlinestatic |
The index values which represent each corner of G_ROI_MASK_POINTS.
Definition at line 330 of file Globals.hpp.
|
inlinestatic |
The index values which represent each corner of G_ROI_MASK_POINTS.
Definition at line 331 of file Globals.hpp.
|
inlinestatic |
Region-of-interest sub-division line equations (y = mx + c).
Top mid-point __________|__________ / # & \ / # & \
Left edge of mask > / # & \ < Right edge of mask / # & \ / # & \ / # & \
Bottom one third ^ ^ Bottom two thirds
Left edge threshold = '#' Right edge threshold = '@'
Definition at line 352 of file Globals.hpp.
|
inlinestatic |
Region-of-interest sub-division line equations (y = mx + c).
Top mid-point __________|__________ / # & \ / # & \
Left edge of mask > / # & \ < Right edge of mask / # & \ / # & \ / # & \
Bottom one third ^ ^ Bottom two thirds
Left edge threshold = '#' Right edge threshold = '@'
Definition at line 353 of file Globals.hpp.
|
inlinestatic |
Region-of-interest sub-division line equations (y = mx + c).
Top mid-point __________|__________ / # & \ / # & \
Left edge of mask > / # & \ < Right edge of mask / # & \ / # & \ / # & \
Bottom one third ^ ^ Bottom two thirds
Left edge threshold = '#' Right edge threshold = '@'
Definition at line 355 of file Globals.hpp.
|
inlinestatic |
Region-of-interest sub-division line equations (y = mx + c).
Top mid-point __________|__________ / # & \ / # & \
Left edge of mask > / # & \ < Right edge of mask / # & \ / # & \ / # & \
Bottom one third ^ ^ Bottom two thirds
Left edge threshold = '#' Right edge threshold = '@'
Definition at line 356 of file Globals.hpp.
|
inlinestatic |
Region-of-interest sub-division line equations (y = mx + c).
Top mid-point __________|__________ / # & \ / # & \
Left edge of mask > / # & \ < Right edge of mask / # & \ / # & \ / # & \
Bottom one third ^ ^ Bottom two thirds
Left edge threshold = '#' Right edge threshold = '@'
Definition at line 358 of file Globals.hpp.
|
inlinestatic |
Region-of-interest sub-division line equations (y = mx + c).
Top mid-point __________|__________ / # & \ / # & \
Left edge of mask > / # & \ < Right edge of mask / # & \ / # & \ / # & \
Bottom one third ^ ^ Bottom two thirds
Left edge threshold = '#' Right edge threshold = '@'
Definition at line 359 of file Globals.hpp.
|
inlinestatic |
Region-of-interest sub-division line equations (y = mx + c).
Top mid-point __________|__________ / # & \ / # & \
Left edge of mask > / # & \ < Right edge of mask / # & \ / # & \ / # & \
Bottom one third ^ ^ Bottom two thirds
Left edge threshold = '#' Right edge threshold = '@'
Definition at line 360 of file Globals.hpp.
|
inlinestatic |
Region-of-interest sub-division line equations (y = mx + c).
Top mid-point __________|__________ / # & \ / # & \
Left edge of mask > / # & \ < Right edge of mask / # & \ / # & \ / # & \
Bottom one third ^ ^ Bottom two thirds
Left edge threshold = '#' Right edge threshold = '@'
Definition at line 362 of file Globals.hpp.
|
inlinestatic |
Region-of-interest sub-division line equations (y = mx + c).
Top mid-point __________|__________ / # & \ / # & \
Left edge of mask > / # & \ < Right edge of mask / # & \ / # & \ / # & \
Bottom one third ^ ^ Bottom two thirds
Left edge threshold = '#' Right edge threshold = '@'
Definition at line 363 of file Globals.hpp.
|
inlinestatic |
Region-of-interest sub-division line equations (y = mx + c).
Top mid-point __________|__________ / # & \ / # & \
Left edge of mask > / # & \ < Right edge of mask / # & \ / # & \ / # & \
Bottom one third ^ ^ Bottom two thirds
Left edge threshold = '#' Right edge threshold = '@'
Definition at line 365 of file Globals.hpp.
|
inlinestatic |
Region-of-interest sub-division line equations (y = mx + c).
Top mid-point __________|__________ / # & \ / # & \
Left edge of mask > / # & \ < Right edge of mask / # & \ / # & \ / # & \
Bottom one third ^ ^ Bottom two thirds
Left edge threshold = '#' Right edge threshold = '@'
Definition at line 366 of file Globals.hpp.
|
inlinestatic |
Canny algorithm thresholds.
Definition at line 373 of file Globals.hpp.
|
inlinestatic |
Canny algorithm thresholds.
Definition at line 374 of file Globals.hpp.
|
inlinestatic |
Hough transform threshold and properties.
Definition at line 381 of file Globals.hpp.
|
inlinestatic |
Hough transform threshold and properties.
Definition at line 382 of file Globals.hpp.
|
inlinestatic |
Hough transform threshold and properties.
Definition at line 383 of file Globals.hpp.
|
inlinestatic |
Hough transform threshold and properties.
Definition at line 384 of file Globals.hpp.
|
inlinestatic |
Hough transform threshold and properties.
Definition at line 385 of file Globals.hpp.
|
inlinestatic |
Hough line index mapping.
Definition at line 392 of file Globals.hpp.
|
inlinestatic |
Hough line index mapping.
Definition at line 393 of file Globals.hpp.
|
inlinestatic |
Hough line index mapping.
Definition at line 394 of file Globals.hpp.
|
inlinestatic |
Hough line index mapping.
Definition at line 395 of file Globals.hpp.
|
inlinestatic |
Threshold gradient to decide whether a line is to be considered horizontal.
Definition at line 401 of file Globals.hpp.
|
inlinestatic |
Threshold length to decide whether a line is to be considered solid line road marking.
Definition at line 406 of file Globals.hpp.
|
inlinestatic |
The driving state titles to display.
Definition at line 423 of file Globals.hpp.
|
inlinestatic |
The number of frames to wait before calculating another distance difference while the vehicle is changing lanes.
Definition at line 434 of file Globals.hpp.
|
inlinestatic |
The name of the YOLO version being used.
Definition at line 439 of file Globals.hpp.
|
inlinestatic |
Object detection threshold and properties.
Definition at line 483 of file Globals.hpp.
|
inlinestatic |
Object detection threshold and properties.
Definition at line 484 of file Globals.hpp.
|
inlinestatic |
Object detection threshold and properties.
Definition at line 485 of file Globals.hpp.
|
inlinestatic |
Object detection bounding box properties.
Definition at line 492 of file Globals.hpp.
|
inlinestatic |
Object detection bounding box properties.
Definition at line 493 of file Globals.hpp.
|
inlinestatic |
Object detection bounding box properties.
Definition at line 494 of file Globals.hpp.
|
inlinestatic |
Object detection bounding box properties.
Definition at line 495 of file Globals.hpp.
|
inlinestatic |
Object detection bounding box properties.
Definition at line 496 of file Globals.hpp.
|
inlinestatic |
Object detection bounding box properties.
Definition at line 497 of file Globals.hpp.
|
inlinestatic |
The indicies representing various values in the output blobs.
Definition at line 504 of file Globals.hpp.
|
inlinestatic |
The indicies representing various values in the output blobs.
Definition at line 505 of file Globals.hpp.
|
inlinestatic |
The indicies representing various values in the output blobs.
Definition at line 506 of file Globals.hpp.
|
inlinestatic |
The indicies representing various values in the output blobs.
Definition at line 507 of file Globals.hpp.
|
inlinestatic |
The indicies representing various values in the output blobs.
Definition at line 508 of file Globals.hpp.
|
inlinestatic |
Names of detectable objects. The order is significant and should not be changed.
Definition at line 515 of file Globals.hpp.
|
inlinestatic |
Names of detectable objects. The order is significant and should not be changed.
Definition at line 516 of file Globals.hpp.
|
inlinestatic |
Object names and bounding box colours. G_OPENCV_WHITE is used as the default colour while custom colours are given to object more commonly found while driving.
Definition at line 604 of file Globals.hpp.
|
inlinestatic |
CLI help message for the performance tests.
Definition at line 690 of file Globals.hpp.
|
inlinestatic |
Performance tests settings.
Definition at line 696 of file Globals.hpp.
|
inlinestatic |
Performance tests settings.
Definition at line 698 of file Globals.hpp.
|
inlinestatic |
Performance tests settings.
Definition at line 722 of file Globals.hpp.
|
inlinestatic |
Performance tests settings.
Definition at line 746 of file Globals.hpp.
|
inlinestatic |
Performance tests settings.
Definition at line 770 of file Globals.hpp.