YoloDetection::YoloDetection() { mbNewImgFlag = false; mbFinishRequested = false; std::cout << "\n--------------------------------------------" << std::endl; torch::jit::setTensorExprFuserEnabled(false); mModule = torch::jit::load("yolov5s.torchscript.pt"); std::ifstream f("coco.names"); std::string name = ""; while (std::getline(f, name)) { mClassnames.push_back(name); } mvDynamicNames = {"person", "car", "motorbike", "bus", "train", "truck", "boat", "bird", "cat", "dog", "horse", "sheep", "crow", "bear"}; }
时间: 2023-08-12 11:04:51 浏览: 249
这段代码是YoloDetection类的构造函数。以下是它的主要功能:
初始化成员变量:
mbNewImgFlag
和mbFinishRequested
被初始化为false
,用于标记新图像的标志和请求结束的标志。
禁用Tensor Expression Fuser:
- 调用
torch::jit::setTensorExprFuserEnabled(false)
禁用Tensor Expression Fuser,该功能用于优化Tensor操作的执行。
- 调用
加载预训练模型:
- 使用
torch::jit::load("yolov5s.torchscript.pt")
加载名为"yolov5s.torchscript.pt"的TorchScript模型,将其赋值给成员变量mModule
。
- 使用
加载类别名称:
- 打开名为"coco.names"的文件,逐行读取其中的类别名称,并将它们存储在成员变量
mClassnames
中。
- 打开名为"coco.names"的文件,逐行读取其中的类别名称,并将它们存储在成员变量
设置动态目标类别:
- 将一些特定的类别名称(例如"person"、"car"、"motorbike"等)存储在成员变量
mvDynamicNames
中,用于标记动态目标。
- 将一些特定的类别名称(例如"person"、"car"、"motorbike"等)存储在成员变量
需要注意的是,该构造函数假定当前目录下存在名为"coco.names"的文件,其中包含类别名称列表,并且当前目录下存在名为"yolov5s.torchscript.pt"的预训练模型文件。
阅读全文
相关推荐











