YOLO系列——yolo11n-seg.onnx模型在OpenCV4.10.0DNN模块下进行分割并绘制分割区域(附源码)(十七)
yolo11n-seg.onnx模型
参看之前博客,得到yolo11n-seg.onnx,这里直接给出代码
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-seg.pt") # load an official model
# Export the model
model.export(format="onnx")
OpenCV4.10.0dnn模块使用
分割结果



源码
下载地址
int main(int argc, char **argv)
{
bool runOnGPU = true;
bool isSeg = true;
cv::Size sizeTmp(640,640);
std::string onnxModelPath{};
if(isSeg){
onnxModelPath = "../data/yolo11n-seg.onnx";
}
else{
onnxModelPath = "../data/yolo11n.onnx";
}
Inference inf(onnxModelPath, sizeTmp, runOnGPU, isSeg);
std::vector<std::string> imageNames;
imageNames.push_back("../data/bus.jpg");
imageNames.push_back("../data/zidane.jpg");
imageNames.push_back("../data/traffic.jpg");
for (int i = 0; i < imageNames.size(); ++i){ //遍历每一幅图像
cv::Mat imgTmp = cv::imread(imageNames[i]);
auto start = std::chrono::system_clock::now();
inf.runInference(imgTmp);
auto end = std::chrono::system_clock::now();
std::chrono::duration<double> elapsed = end - start;
std::cout << "------Images[" << i << "]------" << std::endl;
std::cout << "\tInference time: " << elapsed.count() * 1000 << " ms" << std::endl;
inf.processAndDrawSegmentation(imgTmp);
inf.clearData();
cv::imwrite("opencv410_test3_"+std::to_string(i)+".jpg", imgTmp);
const std::string kWinName = "Yolo Object Detector";
cv::namedWindow(kWinName, cv::WINDOW_NORMAL);
cv::imshow(kWinName, imgTmp);
cv::waitKey(-1);
}
}
1235

被折叠的 条评论
为什么被折叠?



