|
@@ -75,7 +75,8 @@ std::vector<float> YoloFeatureManager::extractFeatures(const std::string & image
|
|
|
//获取模型的所有层名称(调试用)
|
|
//获取模型的所有层名称(调试用)
|
|
|
//std::vector<cv::String> layerNames = net.getLayerNames();
|
|
//std::vector<cv::String> layerNames = net.getLayerNames();
|
|
|
|
|
|
|
|
- // 获取Flatten层输出(yolo26s-cls的Flatten层名称为 "onnx_node!/model.10/Flatten",这是GAP后分类头前的一层)
|
|
|
|
|
|
|
+ // 获取Flatten层输出(yolo26s-cls的Flatten层名称为 "onnx_node!/model.10/Flatten",这是GAP后分类头前的一层)'
|
|
|
|
|
+ // GAP层是onnx_node!/model.10/pool/GlobalAveragePool
|
|
|
cv::Mat featureMat = net.forward("onnx_node!/model.10/Flatten");
|
|
cv::Mat featureMat = net.forward("onnx_node!/model.10/Flatten");
|
|
|
|
|
|
|
|
// 检查输出是否有效
|
|
// 检查输出是否有效
|
|
@@ -287,8 +288,8 @@ std::string YoloFeatureManager::Class(cv::Mat & image)
|
|
|
className = "Unknown";
|
|
className = "Unknown";
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- cv::imshow("YOLOv8s-cls 实时图像分类", image);
|
|
|
|
|
- if (cv::waitKey(30) >= 0); // 按任意键退出
|
|
|
|
|
|
|
+ //cv::imshow("YOLOv8s-cls 实时图像分类", image);
|
|
|
|
|
+ //if (cv::waitKey(30) >= 0); // 按任意键退出
|
|
|
|
|
|
|
|
return className;
|
|
return className;
|
|
|
}
|
|
}
|