张洋 1 dzień temu
rodzic
commit
8f00210000

+ 1 - 1
opencv-test/test/YoloFeatureExtractor.cpp

@@ -7,7 +7,7 @@
 #include <opencv2/core/ocl.hpp>
 
 YoloFeatureExtractor::YoloFeatureExtractor(const std::string & modelPath, const std::string & classesPath)
-    : inputWidth(448), inputHeight(448)
+    : inputWidth(320), inputHeight(320)
 {
 	try
 	{

+ 1 - 1
opencv-test/test/test.cpp

@@ -202,7 +202,7 @@ int main()
 		std::string sMainDir = mainDir.parent_path().string();
 #endif // WIN32		
 
-		std::string modelPath = sMainDir + "/best_2026n_448.onnx";           // YOLO2026模型路径
+		std::string modelPath = sMainDir + "/best_2026n_320.onnx";           // YOLO2026模型路径
 		std::string classesPath = sMainDir + "/cls.names";             // 类别文件路径
 		std::string galleryDir = sMainDir + "/images";       // 图库目录路径
 		std::string searchImagePath = sMainDir + "/3.jpg"; // 搜索图片路径

BIN
opencv-test/x64/Release/test.exe


BIN
opencv-test/x64/Release/test.pdb


BIN
res/ai/best_2026n_320.onnx


+ 6 - 11
zhipuzi_pos_windows/ai/YoloFeatureManager.cpp

@@ -16,7 +16,8 @@
 
 YoloFeatureManager::YoloFeatureManager()
 {
-
+	inputWidth = 320;
+	inputHeight = 320;
 }
 
 YoloFeatureManager::~YoloFeatureManager()
@@ -28,9 +29,6 @@ void YoloFeatureManager::loadModel(const std::string & modelPath)
 {
 	try
 	{
-		inputWidth = 448;
-		inputHeight = 448;
-
 		net = cv::dnn::readNetFromONNX(modelPath);
 
 		CONF_THRESHOLD = 0.5f; // 可以根据需要调整置信度阈值
@@ -50,9 +48,6 @@ void YoloFeatureManager::loadModel(const std::string& modelPath, const std::stri
 {
 	try
 	{
-		inputWidth = 448;
-		inputHeight = 448;
-
 		net = cv::dnn::readNetFromModelOptimizer(modelPath, configPath);
 
 		// 设置目标设备 (可选: CPU, GPU, MYRIAD等)
@@ -344,10 +339,10 @@ std::string YoloFeatureManager::Class(cv::Mat & image)
 		}
 
 		// 在画面上绘制分类结果
-		//std::wstring resultText = CLewaimaiString::ANSIToUnicode(className) + L" : " + std::to_wstring(round(topConfidence * 10000) / 100) + L"%";
-		//this->drawChineseText(image, resultText.c_str(), cv::Point(20, 50), cv::Scalar(0, 255, 0), 24);
-		//cv::imshow("YOLOv8s-cls 实时图像分类", image);
-		//if (cv::waitKey(30) >= 0); // 按任意键退出
+		std::wstring resultText = CLewaimaiString::ANSIToUnicode(className) + L" : " + std::to_wstring(round(topConfidence * 10000) / 100) + L"%";
+		this->drawChineseText(image, resultText.c_str(), cv::Point(20, 50), cv::Scalar(0, 255, 0), 24);
+		cv::imshow("YOLOv8s-cls 实时图像分类", image);
+		if (cv::waitKey(30) >= 0); // 按任意键退出
 
 		return className;
 	}

+ 2 - 2
zhipuzi_pos_windows/worker/CDiandanAIShibieWorker.cpp

@@ -42,7 +42,7 @@ void CDiandanAIShibieWorker::HandleDiandanAIShibie()
 	std::filesystem::path mainDir = wsProgramDir;
 	std::string sMainDir = mainDir.string();
 
-	std::string modelPath = sMainDir + "/ai/best_2026n_448.onnx";           // YOLO2026模型路径
+	std::string modelPath = sMainDir + "/ai/best_2026n_320.onnx";           // YOLO2026模型路径
 
 	std::string openvino_modelPath = sMainDir + "/ai/best.xml";           // YOLO2026模型路径
 	std::string openvino_configPath = sMainDir + "/ai/best.bin";           // YOLO2026模型路径
@@ -54,7 +54,7 @@ void CDiandanAIShibieWorker::HandleDiandanAIShibie()
 	std::cout << "数据库路径: " << databasePath << std::endl;
 	std::cout << "=========================================" << std::endl;
 
-	m_yoloFeatureManager.loadModel(openvino_modelPath, openvino_configPath);
+	m_yoloFeatureManager.loadModel(modelPath);
 
 	while (m_is_work == true)
 	{