cli.rs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. use clap::Parser;
  2. use crate::YOLOTask;
  3. #[derive(Parser, Clone)]
  4. #[command(author, version, about, long_about = None)]
  5. pub struct Args {
  6. /// ONNX model path
  7. #[arg(long, required = true)]
  8. pub model: String,
  9. /// input path
  10. #[arg(long, required = true)]
  11. pub source: String,
  12. /// device id
  13. #[arg(long, default_value_t = 0)]
  14. pub device_id: i32,
  15. /// using TensorRT EP
  16. #[arg(long)]
  17. pub trt: bool,
  18. /// using CUDA EP
  19. #[arg(long)]
  20. pub cuda: bool,
  21. /// input batch size
  22. #[arg(long, default_value_t = 1)]
  23. pub batch: u32,
  24. /// trt input min_batch size
  25. #[arg(long, default_value_t = 1)]
  26. pub batch_min: u32,
  27. /// trt input max_batch size
  28. #[arg(long, default_value_t = 32)]
  29. pub batch_max: u32,
  30. /// using TensorRT --fp16
  31. #[arg(long)]
  32. pub fp16: bool,
  33. /// specify YOLO task
  34. #[arg(long, value_enum)]
  35. pub task: Option<YOLOTask>,
  36. /// num_classes
  37. #[arg(long)]
  38. pub nc: Option<u32>,
  39. /// num_keypoints
  40. #[arg(long)]
  41. pub nk: Option<u32>,
  42. /// num_masks
  43. #[arg(long)]
  44. pub nm: Option<u32>,
  45. /// input image width
  46. #[arg(long)]
  47. pub width: Option<u32>,
  48. /// input image height
  49. #[arg(long)]
  50. pub height: Option<u32>,
  51. /// confidence threshold
  52. #[arg(long, required = false, default_value_t = 0.3)]
  53. pub conf: f32,
  54. /// iou threshold in NMS
  55. #[arg(long, required = false, default_value_t = 0.45)]
  56. pub iou: f32,
  57. /// confidence threshold of keypoint
  58. #[arg(long, required = false, default_value_t = 0.55)]
  59. pub kconf: f32,
  60. /// plot inference result and save
  61. #[arg(long)]
  62. pub plot: bool,
  63. /// check time consumed in each stage
  64. #[arg(long)]
  65. pub profile: bool,
  66. }