create git commit message "+++ b/tf_neural_trt/src/classifier.cpp
@@ -148,25 +148,6 @@ void Classifier::classify(std::vector<TrafficLightImage> &batchInput)
 
                for (size_t indx = 0; indx < modelsPathVec_.size(); indx++)
                {
-                       // Determine whether subtype classification should be used
-            std::string subType = usingSubtype_ ? inputObj.subtype : "all";
-                       if(usingSubtype_)
-                       {
-                // Find index of corresponding traffic light model
-                int indexModel = getIndex(modelsPathVec_, subType.substr(subType.rfind('_') + 1));
-
-                // Set default model if none found
-                if (indexModel == -1)
-                {
-                    indexModel = 0;
-                }
-                indx = indexModel;
-                       }
-
-                       if (debug_)
-                       {
-                               std::cout << "Using Subtype: " << subType << std::endl;
-                       }
                        std::vector<Detection> detections;
 
                        // Run inference
@@ -174,43 +155,84 @@ void Classifier::classify(std::vector<TrafficLightImage> &batchInput)
                        detector_.detect(inputObj.image, &detections, INPUT_BGR);
                        auto endY = std::chrono::system_clock::now();
 
-                       if (debug_)
-                       {
-                               std::cout << "inference time: " << std::chrono::duration_cast<std::chrono::milliseconds>(endY - startY).count() << "ms" << std::endl;
-                       }
+                       std::cout << "detect inference time: " << std::chrono::duration_cast<std::chrono::milliseconds>(endY - startY).count() << "ms" << std::endl;
 
-            std::map<int, Detection> detectionMap;
+            // std::map<int, Detection> detectionMap;
             
-            convertVectorToMap(detections, detectionMap);
-
-            // Finding ground-truth bounding box
-            if (detections.size() > 1)
+            // convertVectorToMap(detections, detectionMap);
+
+            // // Finding ground-truth bounding box
+            // if (detections.size() > 1)
+            // {
+            //     // Get combinations of index pairs
+            //     std::vector<int> combiRes = allCombinations(detections.size(), 2);
+
+            //     // Process each pair
+            //     for (size_t i = 0; i < combiRes.size(); i += 2)
+            //     {
+            //         const cv::Rect& bbox1 = detections[combiRes[i]].boundingBox();
+            //         const cv::Rect& bbox2 = detections[combiRes[i + 1]].boundingBox();
+                    
+            //         float IoU = iou(bbox1, bbox2);
+            //         if (IoU != 0)
+            //         {
+            //             // Determine index of smaller region
+            //             bool min_bbox_idx_is_first = min_area(bbox1, bbox2);
+            //             int idx_to_erase = combiRes[min_bbox_idx_is_first ? i : i + 1];
+                        
+            //             // Remove element from map
+            //             detectionMap.erase(idx_to_erase);
+            //         }
+            //     }
+
+            //     // Clear vector and update it with values ​​from map
+            //     detections.clear();
+            //     convertMapToVector(detectionMap, detections);
+            // }
+            std::cout << "detections.size(): " << detections.size() << std::endl;
+            for (const auto& detection : detections)
             {
-                // Get combinations of index pairs
-                std::vector<int> combiRes = allCombinations(detections.size(), 2);
-
-                // Process each pair
-                for (size_t i = 0; i < combiRes.size(); i += 2)
+                // Determine whether subtype classification should be used
+                std::string subType = usingSubtype_ ? inputObj.subtype : "all";
+                if(usingSubtype_)
                 {
-                    const cv::Rect& bbox1 = detections[combiRes[i]].boundingBox();
-                    const cv::Rect& bbox2 = detections[combiRes[i + 1]].boundingBox();
+                    // Find index of corresponding traffic light model
+                    int indexModel = getIndex(modelsPathVec_, subType.substr(subType.rfind('_') + 1));
 
-                    float IoU = iou(bbox1, bbox2);
-                    if (IoU != 0)
+                    // Set default model if none found
+                    if (indexModel == -1)
                     {
-                        // Determine index of smaller region
-                        bool min_bbox_idx_is_first = min_area(bbox1, bbox2);
-                        int idx_to_erase = combiRes[min_bbox_idx_is_first ? i : i + 1];
-                        
-                        // Remove element from map
-                        detectionMap.erase(idx_to_erase);
+                        indexModel = 0;
                     }
+                    indx = indexModel;
+                }
+                if (subType == "pedestrian")
+                {
+                    break;
                 }
 
-                // Clear vector and update it with values ​​from map
-                detections.clear();
-                convertMapToVector(detectionMap, detections);
+                if (debug_)
+                {
+                    std::cout << "Subtype: " << subType << std::endl;
+                }
+                }
+
+                const cv::Rect& bbox = detection.boundingBox();
+                const std::string& subTypeDet = yolo_vec_[(int)detection.classId()];
+                std::cout << "bbox.x: " << bbox.x << ", bbox.y: " << bbox.y
+                      << ", bbox.width: " << bbox.width << ", bbox.height: " << bbox.height 
+                      << ", subTypeDet: " << subTypeDet << std::endl;
+                // Crop traffic light from original image
+                std::cout << "inputObj matrix has " << inputObj.image.rows << " rows and " << inputObj.image.cols << " columns." << std::endl;
+                cv::Mat trafficLightImg = inputObj.image(bbox);
+                std::cout << "trafficLightImg matrix has " << trafficLightImg.rows << " rows and " << trafficLightImg.cols << " columns." << std::endl;
+
             }
+
+            if(usingSubtype_)
+            {
+                break;
+            }
"