Your Name hace 1 día
padre
commit
52ccbae04d
Se han modificado 2 ficheros con 32 adiciones y 37 borrados
  1. 29 34
      models/line_detect/loi_heads.py
  2. 3 3
      models/line_detect/trainer.py

+ 29 - 34
models/line_detect/loi_heads.py

@@ -1312,10 +1312,7 @@ class RoIHeads(nn.Module):
 
         if self.has_ins and self.detect_ins:
             print(f'roi_heads forward has_circle()!!!!')
-            print(f'labels:{labels}')
-            # for p in result:
-            #     print(f'p["boxes"]:{p["boxes"]}')
-            #     print(f'p["labels"]:{p["labels"]}')
+            # print(f'labels:{labels}')
             ins_proposals = [p["boxes"][p["labels"] == 4] for p in result]
             # print(f'ins_proposals11:{ins_proposals}')
             print(f'boxes_proposals:{len(ins_proposals)}')
@@ -1391,7 +1388,7 @@ class RoIHeads(nn.Module):
                 arc_equation = self.arc_equation_head(feature_logits)  # [proposal和,9]
 
                 loss_ins = None
-                loss_ins_extra=None
+                # loss_ins_extra=None
                 loss_arc_equation = None
                 loss_arc_ends = None
 
@@ -1420,15 +1417,15 @@ class RoIHeads(nn.Module):
                     if gt_ins_tensor.shape[0] > 0:
                         print(f'start to compute circle_loss')
                         loss_ins = compute_ins_loss(feature_logits, ins_proposals, gt_inses,ins_pos_matched_idxs)
-                        # total_loss, loss_arc_equation, loss_arc_ends = compute_arc_equation_loss(arc_equation,ins_proposals,gt_mask_ends,gt_mask_params,ins_pos_matched_idxs,labels)
-                        # loss_arc_ends = loss_arc_ends
-                    # if loss_arc_equation is None:
-                    #     print(f'loss_arc_equation is None')
-                    #     loss_arc_equation = torch.tensor(0.0, device=device)
-                    #
-                    # if loss_arc_ends is None:
-                    #     print(f'loss_arc_ends is None')
-                    #     loss_arc_ends = torch.tensor(0.0, device=device)
+                        total_loss, loss_arc_equation, loss_arc_ends = compute_arc_equation_loss(arc_equation,ins_proposals,gt_mask_ends,gt_mask_params,ins_pos_matched_idxs,labels)
+                        loss_arc_ends = loss_arc_ends
+                    if loss_arc_equation is None:
+                        print(f'loss_arc_equation is None')
+                        loss_arc_equation = torch.tensor(0.0, device=device)
+
+                    if loss_arc_ends is None:
+                        print(f'loss_arc_ends is None')
+                        loss_arc_ends = torch.tensor(0.0, device=device)
 
                     if loss_ins is None:
                         print(f'loss_ins is None111')
@@ -1440,8 +1437,8 @@ class RoIHeads(nn.Module):
 
                     loss_ins = {"loss_ins": loss_ins}
                     # loss_ins_extra = {"loss_ins_extra": loss_ins_extra}
-                    # loss_arc_equation = {"loss_arc_equation": loss_arc_equation}
-                    # loss_arc_ends = {"loss_arc_ends": loss_arc_ends}
+                    loss_arc_equation = {"loss_arc_equation": loss_arc_equation}
+                    loss_arc_ends = {"loss_arc_ends": loss_arc_ends}
 
                 else:
                     if targets is not None:
@@ -1460,11 +1457,10 @@ class RoIHeads(nn.Module):
                             print(f'start to compute circle_loss')
 
                             loss_ins = compute_ins_loss(feature_logits, ins_proposals, gt_inses, ins_pos_matched_idxs)
-                            # total_loss, loss_arc_equation, loss_arc_ends = compute_arc_equation_loss(arc_equation,ins_proposals,gt_mask_ends,gt_mask_params,ins_pos_matched_idxs,labels)
-                            #
-                            # loss_arc_ends = loss_arc_ends
+                            total_loss, loss_arc_equation, loss_arc_ends = compute_arc_equation_loss(arc_equation,ins_proposals,gt_mask_ends,gt_mask_params,ins_pos_matched_idxs,labels)
+
+                            loss_arc_ends = loss_arc_ends
 
-                            # loss_ins_extra = compute_circle_extra_losses(feature_logits, circle_proposals, gt_circles,circle_pos_matched_idxs)
 
                         if loss_ins is None:
                             print(f'loss_ins is None111')
@@ -1474,24 +1470,24 @@ class RoIHeads(nn.Module):
                         #     print(f'loss_ins_extra is None111')
                         #     loss_ins_extra = torch.tensor(0.0, device=device)
 
-                        # if loss_arc_equation is None:
-                        #     print(f'loss_arc_equation is None')
-                        #     loss_arc_equation = torch.tensor(0.0, device=device)
-                        #
-                        # if loss_arc_ends is None:
-                        #     print(f'loss_arc_ends is None')
-                        #     loss_arc_ends = torch.tensor(0.0, device=device)
+                        if loss_arc_equation is None:
+                            print(f'loss_arc_equation is None')
+                            loss_arc_equation = torch.tensor(0.0, device=device)
+
+                        if loss_arc_ends is None:
+                            print(f'loss_arc_ends is None')
+                            loss_arc_ends = torch.tensor(0.0, device=device)
 
                         loss_ins = {"loss_ins": loss_ins}
                         # loss_ins_extra = {"loss_ins_extra": loss_ins_extra}
-                        # loss_arc_equation = {"loss_arc_equation": loss_arc_equation}
-                        # loss_arc_ends = {"loss_arc_ends": loss_arc_ends}
+                        loss_arc_equation = {"loss_arc_equation": loss_arc_equation}
+                        loss_arc_ends = {"loss_arc_ends": loss_arc_ends}
 
                     else:
                         loss_ins = {}
                         # loss_ins_extra = {}
-                        # loss_arc_equation = {}
-                        # loss_arc_ends = {}
+                        loss_arc_equation = {}
+                        loss_arc_ends = {}
                         if feature_logits is None or ins_proposals is None:
                             raise ValueError(
                                 "both keypoint_logits and keypoint_proposals should not be None when not in training mode"
@@ -1526,11 +1522,10 @@ class RoIHeads(nn.Module):
 
 
                 print(f'loss_ins:{loss_ins}')
-                # print(f'loss_ins_extra:{loss_ins_extra}')
                 losses.update(loss_ins)
                 # losses.update(loss_ins_extra)
-                # losses.update(loss_arc_equation)
-                # losses.update(loss_arc_ends)
+                losses.update(loss_arc_equation)
+                losses.update(loss_arc_ends)
                 print(f'losses:{losses}')
 
 

+ 3 - 3
models/line_detect/trainer.py

@@ -579,9 +579,9 @@ class Trainer(BaseTrainer):
 
         )
 
-        model, optimizer = self.load_best_model(model, optimizer,
-                                                r"/home/limin/PycharmProjects/pokouqiege/1126/MultiVisionModels/models/line_detect/train_results/20251213_145349/weights/best_val.pth",
-                                                device)
+        # model, optimizer = self.load_best_model(model, optimizer,
+        #                                         r"/home/limin/PycharmProjects/pokouqiege/1126/MultiVisionModels/models/line_detect/train_results/20251213_145349/weights/best_val.pth",
+        #                                         device)
         # scheduler = StepLR(optimizer, step_size=10, gamma=0.1)
         scheduler = ReduceLROnPlateau(optimizer, 'min', patience=30)