张洋 1 day ago
parent
commit
cf1ff85557
94 changed files with 57 additions and 27 deletions
  1. 3 1
      .gitignore
  2. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/3.jpg
  3. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/DuiLib.dll
  4. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/ai/best.onnx
  5. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/ai/best_800.onnx
  6. 2 0
      bin/Win32/Debug/zhipuzi_pos_windows/ai/cls.names
  7. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/ai/yolo26n-cls.onnx
  8. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/ai/yolo26n.onnx
  9. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/ai/yolo26s-cls.onnx
  10. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/icon/icon.ico
  11. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/icon/zhipuzi.ico
  12. 0 0
      bin/Win32/Debug/zhipuzi_pos_windows/image_features.db
  13. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/libcrypto-3.dll
  14. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/libcurl.dll
  15. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/libssl-3.dll
  16. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/log4cplusUD.dll
  17. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/0.wav
  18. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/1.wav
  19. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/2.wav
  20. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/3.wav
  21. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/4.wav
  22. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/5.wav
  23. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/6.wav
  24. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/7.wav
  25. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/8.wav
  26. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/9.wav
  27. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/diannei_new.wav
  28. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/hundred.wav
  29. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/pay_cancel.wav
  30. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/pay_fail.wav
  31. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/pay_password.wav
  32. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/pay_success.wav
  33. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/point.wav
  34. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/refund_fail.wav
  35. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/refund_query.wav
  36. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/refund_success.wav
  37. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/shi.wav
  38. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/ten.wav
  39. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/tenthousand.wav
  40. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/thousand.wav
  41. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/waimai_new.wav
  42. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/waimai_new_auto.wav
  43. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/waimai_quxiao.wav
  44. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/waimai_tuikuan.wav
  45. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/yuan.wav
  46. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/music/zhengcan_h5_diancai.wav
  47. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/opencv_world4120d.dll
  48. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/zhipuzi_pos_windows.exe
  49. BIN
      bin/Win32/Release/zhipuzi_pos_windows/3.jpg
  50. BIN
      bin/Win32/Release/zhipuzi_pos_windows/DuiLib.dll
  51. BIN
      bin/Win32/Release/zhipuzi_pos_windows/ai/best_448.onnx
  52. BIN
      bin/Win32/Release/zhipuzi_pos_windows/ai/best_800.onnx
  53. 2 0
      bin/Win32/Release/zhipuzi_pos_windows/ai/cls.names
  54. BIN
      bin/Win32/Release/zhipuzi_pos_windows/icon/icon.ico
  55. BIN
      bin/Win32/Release/zhipuzi_pos_windows/icon/zhipuzi.ico
  56. BIN
      bin/Win32/Release/zhipuzi_pos_windows/image_features.db
  57. BIN
      bin/Win32/Release/zhipuzi_pos_windows/libcrypto-3.dll
  58. BIN
      bin/Win32/Release/zhipuzi_pos_windows/libcurl.dll
  59. BIN
      bin/Win32/Release/zhipuzi_pos_windows/libssl-3.dll
  60. BIN
      bin/Win32/Release/zhipuzi_pos_windows/log4cplusU.dll
  61. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/0.wav
  62. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/1.wav
  63. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/2.wav
  64. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/3.wav
  65. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/4.wav
  66. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/5.wav
  67. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/6.wav
  68. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/7.wav
  69. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/8.wav
  70. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/9.wav
  71. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/diannei_new.wav
  72. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/hundred.wav
  73. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/pay_cancel.wav
  74. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/pay_fail.wav
  75. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/pay_password.wav
  76. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/pay_success.wav
  77. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/point.wav
  78. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/refund_fail.wav
  79. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/refund_query.wav
  80. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/refund_success.wav
  81. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/shi.wav
  82. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/ten.wav
  83. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/tenthousand.wav
  84. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/thousand.wav
  85. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/waimai_new.wav
  86. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/waimai_new_auto.wav
  87. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/waimai_quxiao.wav
  88. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/waimai_tuikuan.wav
  89. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/yuan.wav
  90. BIN
      bin/Win32/Release/zhipuzi_pos_windows/music/zhengcan_h5_diancai.wav
  91. BIN
      bin/Win32/Release/zhipuzi_pos_windows/opencv_world4120.dll
  92. BIN
      bin/Win32/Release/zhipuzi_pos_windows/zhipuzi_pos_windows.exe
  93. 49 25
      zhipuzi_pos_windows/ai/YoloFeatureExtractor.cpp
  94. 1 1
      zhipuzi_pos_windows/ai/test.cpp

+ 3 - 1
.gitignore

@@ -1,4 +1,6 @@
 /logs
 /temp
 /.vs
-zhipuzi_pos_windows
+tmp
+db
+log

BIN
bin/Win32/Debug/zhipuzi_pos_windows/3.jpg


BIN
bin/Win32/Debug/zhipuzi_pos_windows/DuiLib.dll


BIN
bin/Win32/Debug/zhipuzi_pos_windows/ai/best.onnx


BIN
bin/Win32/Debug/zhipuzi_pos_windows/ai/best_800.onnx


+ 2 - 0
bin/Win32/Debug/zhipuzi_pos_windows/ai/cls.names

@@ -0,0 +1,2 @@
+car
+bus

BIN
bin/Win32/Debug/zhipuzi_pos_windows/ai/yolo26n-cls.onnx


BIN
bin/Win32/Debug/zhipuzi_pos_windows/ai/yolo26n.onnx


BIN
bin/Win32/Debug/zhipuzi_pos_windows/ai/yolo26s-cls.onnx


BIN
bin/Win32/Debug/zhipuzi_pos_windows/icon/icon.ico


BIN
bin/Win32/Debug/zhipuzi_pos_windows/icon/zhipuzi.ico


+ 0 - 0
bin/Win32/Debug/zhipuzi_pos_windows/image_features.db


BIN
bin/Win32/Debug/zhipuzi_pos_windows/libcrypto-3.dll


BIN
bin/Win32/Debug/zhipuzi_pos_windows/libcurl.dll


BIN
bin/Win32/Debug/zhipuzi_pos_windows/libssl-3.dll


BIN
bin/Win32/Debug/zhipuzi_pos_windows/log4cplusUD.dll


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/0.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/1.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/2.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/3.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/4.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/5.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/6.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/7.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/8.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/9.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/diannei_new.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/hundred.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/pay_cancel.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/pay_fail.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/pay_password.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/pay_success.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/point.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/refund_fail.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/refund_query.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/refund_success.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/shi.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/ten.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/tenthousand.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/thousand.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/waimai_new.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/waimai_new_auto.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/waimai_quxiao.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/waimai_tuikuan.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/yuan.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/zhengcan_h5_diancai.wav


BIN
bin/Win32/Debug/zhipuzi_pos_windows/opencv_world4120d.dll


BIN
bin/Win32/Debug/zhipuzi_pos_windows/zhipuzi_pos_windows.exe


BIN
bin/Win32/Release/zhipuzi_pos_windows/3.jpg


BIN
bin/Win32/Release/zhipuzi_pos_windows/DuiLib.dll


BIN
bin/Win32/Release/zhipuzi_pos_windows/ai/best_448.onnx


BIN
bin/Win32/Release/zhipuzi_pos_windows/ai/best_800.onnx


+ 2 - 0
bin/Win32/Release/zhipuzi_pos_windows/ai/cls.names

@@ -0,0 +1,2 @@
+car
+bus

BIN
bin/Win32/Release/zhipuzi_pos_windows/icon/icon.ico


BIN
bin/Win32/Release/zhipuzi_pos_windows/icon/zhipuzi.ico


BIN
bin/Win32/Release/zhipuzi_pos_windows/image_features.db


BIN
bin/Win32/Release/zhipuzi_pos_windows/libcrypto-3.dll


BIN
bin/Win32/Release/zhipuzi_pos_windows/libcurl.dll


BIN
bin/Win32/Release/zhipuzi_pos_windows/libssl-3.dll


BIN
bin/Win32/Release/zhipuzi_pos_windows/log4cplusU.dll


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/0.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/1.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/2.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/3.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/4.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/5.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/6.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/7.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/8.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/9.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/diannei_new.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/hundred.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/pay_cancel.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/pay_fail.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/pay_password.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/pay_success.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/point.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/refund_fail.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/refund_query.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/refund_success.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/shi.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/ten.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/tenthousand.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/thousand.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/waimai_new.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/waimai_new_auto.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/waimai_quxiao.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/waimai_tuikuan.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/yuan.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/music/zhengcan_h5_diancai.wav


BIN
bin/Win32/Release/zhipuzi_pos_windows/opencv_world4120.dll


BIN
bin/Win32/Release/zhipuzi_pos_windows/zhipuzi_pos_windows.exe


+ 49 - 25
zhipuzi_pos_windows/ai/YoloFeatureExtractor.cpp

@@ -11,7 +11,7 @@
 #include "../tool/debuglog.h"
 
 YoloFeatureExtractor::YoloFeatureExtractor(const std::string& modelPath, const std::string& classesPath)
-	: inputWidth(448), inputHeight(448)
+	: inputWidth(800), inputHeight(800)
 {
 	net = cv::dnn::readNetFromONNX(modelPath);
 	loadClassNames(classesPath);
@@ -85,8 +85,15 @@ std::vector<float> YoloFeatureExtractor::extractFeatures(const std::string& imag
 
 		cv::resize(image, image, cv::Size(inputWidth, inputHeight));
 
+		// 2. 转换为blob(归一化+通道转换)
+		//均值和标准差使用ImageNet标准值,与YOLO预训练分类模型一致
+		cv::Scalar mean = cv::Scalar(0.485 * 255, 0.456 * 255, 0.406 * 255);
+		cv::Scalar std = cv::Scalar(0.229 * 255, 0.224 * 255, 0.225 * 255);
+
 		cv::Mat blob;
-		cv::dnn::blobFromImage(image, blob, 1.0 / 255.0, cv::Size(inputWidth, inputHeight), cv::Scalar(0, 0, 0), true, false);
+		cv::dnn::blobFromImage(image, blob, 1.0, cv::Size(inputWidth, inputHeight), mean, true, false);
+		blob /= std; // 应用标准差归一化
+
 		net.setInput(blob);
 
 		DEBUG_LOG::debug_printf("blob 形状:%d×%d×%d×%d\n", blob.size[0], blob.size[1], blob.size[2], blob.size[3]);
@@ -94,44 +101,61 @@ std::vector<float> YoloFeatureExtractor::extractFeatures(const std::string& imag
 		auto time_2 = std::chrono::high_resolution_clock::now();
 
 		std::vector<cv::String> layerNames = net.getLayerNames();
-		std::vector<cv::String> outputNames;
 
 		std::vector<float> features;
 
-		
-		// 选择GAP层(对于yolo2026,通常是倒数第6层)的输出作为特征向量
-		outputNames.push_back(layerNames[layerNames.size() - 6]);
-
-		std::vector<cv::Mat> outputs;
-		net.forward(outputs, outputNames);
-
+		cv::Mat featureMat = net.forward("onnx_node!/model.10/pool/GlobalAveragePool");
 		// 检查输出是否有效
-		if (outputs.empty() || outputs[0].empty())
+		if (featureMat.empty())
 		{
 			throw std::runtime_error("模型前向传播未产生有效输出");
 		}
 
 		// 获取GAP层输出并转换为特征向量
-		cv::Mat featuresMat = outputs[0];
-		DEBUG_LOG::debug_printf("原始特征形状:%d×%d,类型:%d(CV_32F=5)\n", featuresMat.cols, featuresMat.rows, featuresMat.type());
+		//DEBUG_LOG::debug_printf("原始特征形状:%d×%d,类型:%d(CV_32F=5)\n", featureMat.cols, featureMat.rows, featureMat.type());
 			
-		cv::Mat featuresMatVec = featuresMat.reshape(1, 1);
-		DEBUG_LOG::debug_printf("重塑后特征形状:%d×%d,类型:%d\n", featuresMatVec.cols, featuresMatVec.rows, featuresMatVec.type());
+		featureMat = featureMat.reshape(1, 1);
+		//DEBUG_LOG::debug_printf("重塑后特征形状:%d×%d,类型:%d\n", featureMat.cols, featureMat.rows, featureMat.type());
 
-		float norm_before = cv::norm(featuresMatVec, cv::NORM_L2);
-		DEBUG_LOG::debug_printf("归一化前 norm:%.6f\n", norm_before);
+		//float norm_before = cv::norm(featureMat, cv::NORM_L2);
+		//DEBUG_LOG::debug_printf("归一化前 norm:%.6f\n", norm_before);
 
-		//normalizeL2(featuresMatVec);
-		cv::normalize(featuresMat, featuresMatVec, 1.0, 0.0, cv::NORM_L2);
+		//normalizeL2(featureMat);
+		//cv::normalize(featureMat, featureMat, 1.0, 0.0, cv::NORM_L2);
 
-		float norm_after = cv::norm(featuresMatVec, cv::NORM_L2);
-		DEBUG_LOG::debug_printf("归一化后 norm:%.6f\n", norm_after);
+		//float norm_after = cv::norm(featureMat, cv::NORM_L2);
+		//DEBUG_LOG::debug_printf("归一化后 norm:%.6f\n", norm_after);
 
-		features.reserve(features.size() + featuresMatVec.total());
-		for (size_t j = 0; j < featuresMatVec.total(); ++j)
+		// ===================== 5. 特征向量处理 =====================
+		// 将Mat格式的特征转换为vector<float>(方便后续计算/存储)
+		std::vector<float> feature_vector;
+		feature_vector.assign((float *)featureMat.data, (float *)featureMat.data + featureMat.total());
+
+		// -------------------- 新增:L2归一化 -------------------
+		// 1. 计算L2范数
+		/*
+		float l2_norm = 0.0f;
+		for (float val : feature_vector)
 		{
-			features.push_back(featuresMatVec.at<float>(j));
+			l2_norm += val * val;
 		}
+		l2_norm = sqrt(l2_norm);
+
+		// 2. 避免除以0(极端情况,特征全为0)
+		if (fabs(l2_norm) < 1e-8)
+		{
+			l2_norm = 1e-8;
+		}
+
+		// 3. 归一化:每个元素除以L2范数
+		std::vector<float> normalized_feature;
+		for (float val : feature_vector)
+		{
+			normalized_feature.push_back(val / l2_norm);
+		}
+		// -------------------- L2归一化结束 --------------------
+		*/
+
 
 		// 转换为std::vector<float>
 		//features = std::vector<float>(featuresMatVec.begin<float>(), featuresMatVec.end<float>());
@@ -150,7 +174,7 @@ std::vector<float> YoloFeatureExtractor::extractFeatures(const std::string& imag
 		std::wstring msg4 = L"总耗时: " + std::to_wstring(totalDuration.count()) + L" 毫秒";
 		DEBUG_LOG(msg4.c_str());
 
-		return features;
+		return feature_vector;
 	}
 	catch (const std::exception& e)
 	{

+ 1 - 1
zhipuzi_pos_windows/ai/test.cpp

@@ -25,7 +25,7 @@ int AITest()
 		//用于测试的图片目录
 		std::string galleryDir = (mainDir.parent_path().parent_path().parent_path().parent_path() /"res"/"images").string();       // 图库目录路径
 
-		std::string modelPath = sMainDir + "/ai/best_448.onnx";           // YOLO2026模型路径
+		std::string modelPath = sMainDir + "/ai/best_800.onnx";           // YOLO2026模型路径
 		std::string classesPath = sMainDir + "/ai/cls.names";             // 类别文件路径
 		std::string searchImagePath = sMainDir + "/3.jpg"; // 搜索图片路径