Skip to content

Conversation

@AiVerisimilitude
Copy link
Contributor

@AiVerisimilitude AiVerisimilitude commented Jan 14, 2025

Description

This update introduces enhanced configuration flexibility: configurations can now be specified either as a string pointing to an INI file or as a struct containing the configuration parameters.

Motivation

  1. Dynamic Configuration Updates: Parameters can now be modified at runtime based on dynamic information (e.g., assigned GPU).
  2. Seamless Integration: The use of structs allows for easier integration with the user’s application-specific parameter management components.

Summary of Changes

  1. Configuration Flexibility:
    • A configuration can now be:
      • A string: Path to an INI configuration file.
      • A struct: Directly containing configuration parameters.
    • For GMC configurations, the struct-based approach applies one level deeper, allowing configurations to represent various classes (e.g., ORB, ECC).
    • Structs now hold the default values of the parameters
    • Backward Compatibility: No changes are required for users interacting via the BotSORT class. However, users directly accessing specific components of the library will need to use parameter structs, as BotSORT now handles loading parameters into structs.
  2. New INI function set
  • A new set of Load functions as been added that takes the variable in which to store the value in but leaves the value unchanged if it is not present in the INI file. This is important since the default values are in the structs, not in the loading from the file
  • Added [[nodiscard]] to the Get function set so that warnings will be thrown if a value was discarded. This is to help mitigate issues with the usage of Get when it should have been Load,
  1. New ReID Parameter:

    • A gpu_id parameter has been added to specify which GPU a model should use in multi-GPU environments.
    • This change also affects the naming convention of the generated engine file, which now includes the target GPU name.
    • Backward Compatibility: Due to the name changes, engine files will either need to be re-generated or manually renamed
  2. Track ID Retrieval:

    • A minor addition enables the retrieval of a track's ID.

… a struct with the configuration parameters

Added new Version of INI value loading function set "Load.." that loads the value into a variable if present, otherwise leaves it unchanged
Added [[nodiscard]] to INI "Get.." function set to avoid accidental mismatch with the "Load.." set
Default parameters are now on the structs that hold the parameters
 Added helper function to get the class id of a track
 Added new parameter to ReID for being able to select which GPU to run the model on
 The GPU name is now part of the generated engine file
@AiVerisimilitude AiVerisimilitude changed the title Configuration can be loaded or passed Configuration can be loaded or passed; Added gpu_id parameter Jan 14, 2025
@viplix3 viplix3 merged commit 753dc2a into viplix3:main Jan 28, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants