leon 1 månad sedan
förälder
incheckning
f7805504f9
1 ändrade filer med 11 tillägg och 14 borttagningar
  1. 11 14
      src/nodes/infer/inferNode.cpp

+ 11 - 14
src/nodes/infer/inferNode.cpp

@@ -32,27 +32,24 @@ void InferNode::work()
                 continue;
             }
             auto det_result = model_->forward(tensor::cvimg(image));
-            if (model_type_ == ModelType::DEPTH_ANYTHING)
-            {
-                auto result = std::get<cv::Mat>(det_result);
-                // do something
-                continue;
-            }
-            else if (model_type_ == ModelType::YOLO11 || model_type_ == ModelType::YOLOV8 || model_type_ == ModelType::YOLOV5)
-            {
+
+            if (std::holds_alternative<std::vector<data::BoxArray>>(det_result)) {
                 auto result = std::get<data::BoxArray>(det_result);
                 for (auto& r : result)
                 {
                     metaData->boxes.push_back(r);
                 }
                 metaData->boxes = result;
-                for (auto& output_buffer : output_buffers_)
-                {
-                    // printf("Node %s push data to %s\n", name_.c_str(), output_buffer.first.c_str());
-                    output_buffer.second->push(metaData);
-                }
+                // 处理检测框...
+            } else if(std::holds_alternative<cv::Mat>(det_result)){
+                // 记录错误或抛出明确异常
+                auto result = std::get<cv::Mat>(det_result);
             }
-            
+            else
+            {
+                printf("Unexpected result type from model");
+                throw std::runtime_error("Unexpected result type from model");
+            }            
         }
         if (!has_data)
         {