|
|
@@ -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}')
|
|
|
|
|
|
|