|
@@ -586,7 +586,7 @@ class RoIHeads(nn.Module):
|
|
|
self.detect_arc =detect_arc
|
|
self.detect_arc =detect_arc
|
|
|
|
|
|
|
|
self.channel_compress = nn.Sequential(
|
|
self.channel_compress = nn.Sequential(
|
|
|
- nn.Conv2d(256, 8, kernel_size=1),
|
|
|
|
|
|
|
+ nn.Conv2d(128, 8, kernel_size=1),
|
|
|
nn.BatchNorm2d(8),
|
|
nn.BatchNorm2d(8),
|
|
|
nn.ReLU(inplace=True)
|
|
nn.ReLU(inplace=True)
|
|
|
)
|
|
)
|
|
@@ -923,7 +923,7 @@ class RoIHeads(nn.Module):
|
|
|
else:
|
|
else:
|
|
|
pos_matched_idxs = None
|
|
pos_matched_idxs = None
|
|
|
|
|
|
|
|
- feature_logits = self.line_forward3(features, image_shapes, line_proposals)
|
|
|
|
|
|
|
+ feature_logits = self.line_forward1(features, image_shapes, line_proposals)
|
|
|
|
|
|
|
|
loss_line = None
|
|
loss_line = None
|
|
|
loss_line_iou =None
|
|
loss_line_iou =None
|
|
@@ -1109,7 +1109,7 @@ class RoIHeads(nn.Module):
|
|
|
print(f'start to compute point_loss')
|
|
print(f'start to compute point_loss')
|
|
|
|
|
|
|
|
loss_point = compute_point_loss(feature_logits, point_proposals, gt_points,
|
|
loss_point = compute_point_loss(feature_logits, point_proposals, gt_points,
|
|
|
- point_pos_matched_idxs, img_size)
|
|
|
|
|
|
|
+ point_pos_matched_idxs)
|
|
|
|
|
|
|
|
if loss_point is None:
|
|
if loss_point is None:
|
|
|
print(f'loss_point is None111')
|
|
print(f'loss_point is None111')
|
|
@@ -1262,7 +1262,7 @@ class RoIHeads(nn.Module):
|
|
|
feature_logits = self.line_head(cs_features)
|
|
feature_logits = self.line_head(cs_features)
|
|
|
print(f'feature_logits from line_head:{feature_logits.shape}')
|
|
print(f'feature_logits from line_head:{feature_logits.shape}')
|
|
|
|
|
|
|
|
- roi_features = features_align(cs_features, line_proposals, image_shapes)
|
|
|
|
|
|
|
+ roi_features = features_align(feature_logits, line_proposals, image_shapes)
|
|
|
if roi_features is not None:
|
|
if roi_features is not None:
|
|
|
print(f'roi_features from align:{roi_features.shape}')
|
|
print(f'roi_features from align:{roi_features.shape}')
|
|
|
return roi_features
|
|
return roi_features
|
|
@@ -1273,19 +1273,19 @@ class RoIHeads(nn.Module):
|
|
|
print(f'features-0:{features['0'].shape}')
|
|
print(f'features-0:{features['0'].shape}')
|
|
|
# cs_features = self.channel_compress(features['0'])
|
|
# cs_features = self.channel_compress(features['0'])
|
|
|
cs_features=features['0']
|
|
cs_features=features['0']
|
|
|
- filtered_proposals = [proposal for proposal in line_proposals if proposal.shape[0] > 0]
|
|
|
|
|
-
|
|
|
|
|
- if len(filtered_proposals) > 0:
|
|
|
|
|
- filtered_proposals_tensor = torch.cat(filtered_proposals)
|
|
|
|
|
- print(f'filtered_proposals_tensor:{filtered_proposals_tensor.shape}')
|
|
|
|
|
- line_proposals=filtered_proposals
|
|
|
|
|
- line_proposals_tensor = torch.cat(line_proposals)
|
|
|
|
|
- print(f'line_proposals_tensor:{line_proposals_tensor.shape}')
|
|
|
|
|
|
|
+ # filtered_proposals = [proposal for proposal in line_proposals if proposal.shape[0] > 0]
|
|
|
|
|
+ #
|
|
|
|
|
+ # if len(filtered_proposals) > 0:
|
|
|
|
|
+ # filtered_proposals_tensor = torch.cat(filtered_proposals)
|
|
|
|
|
+ # print(f'filtered_proposals_tensor:{filtered_proposals_tensor.shape}')
|
|
|
|
|
+ # line_proposals=filtered_proposals
|
|
|
|
|
+ # line_proposals_tensor = torch.cat(line_proposals)
|
|
|
|
|
+ # print(f'line_proposals_tensor:{line_proposals_tensor.shape}')
|
|
|
|
|
|
|
|
feature_logits = self.line_predictor(cs_features)
|
|
feature_logits = self.line_predictor(cs_features)
|
|
|
print(f'feature_logits from line_head:{feature_logits.shape}')
|
|
print(f'feature_logits from line_head:{feature_logits.shape}')
|
|
|
|
|
|
|
|
- roi_features = features_align(cs_features, line_proposals, image_shapes)
|
|
|
|
|
|
|
+ roi_features = features_align(feature_logits, line_proposals, image_shapes)
|
|
|
if roi_features is not None:
|
|
if roi_features is not None:
|
|
|
print(f'roi_features from align:{roi_features.shape}')
|
|
print(f'roi_features from align:{roi_features.shape}')
|
|
|
return roi_features
|
|
return roi_features
|
|
@@ -1296,19 +1296,19 @@ class RoIHeads(nn.Module):
|
|
|
print(f'features-0:{features['0'].shape}')
|
|
print(f'features-0:{features['0'].shape}')
|
|
|
# cs_features = self.channel_compress(features['0'])
|
|
# cs_features = self.channel_compress(features['0'])
|
|
|
cs_features=features['0']
|
|
cs_features=features['0']
|
|
|
- filtered_proposals = [proposal for proposal in proposals if proposal.shape[0] > 0]
|
|
|
|
|
-
|
|
|
|
|
- if len(filtered_proposals) > 0:
|
|
|
|
|
- filtered_proposals_tensor = torch.cat(filtered_proposals)
|
|
|
|
|
- print(f'filtered_proposals_tensor:{filtered_proposals_tensor.shape}')
|
|
|
|
|
- proposals=filtered_proposals
|
|
|
|
|
- point_proposals_tensor = torch.cat(proposals)
|
|
|
|
|
- print(f'point_proposals_tensor:{point_proposals_tensor.shape}')
|
|
|
|
|
|
|
+ # filtered_proposals = [proposal for proposal in proposals if proposal.shape[0] > 0]
|
|
|
|
|
+ #
|
|
|
|
|
+ # if len(filtered_proposals) > 0:
|
|
|
|
|
+ # filtered_proposals_tensor = torch.cat(filtered_proposals)
|
|
|
|
|
+ # print(f'filtered_proposals_tensor:{filtered_proposals_tensor.shape}')
|
|
|
|
|
+ # proposals=filtered_proposals
|
|
|
|
|
+ # point_proposals_tensor = torch.cat(proposals)
|
|
|
|
|
+ # print(f'point_proposals_tensor:{point_proposals_tensor.shape}')
|
|
|
|
|
|
|
|
feature_logits = self.point_predictor(cs_features)
|
|
feature_logits = self.point_predictor(cs_features)
|
|
|
print(f'feature_logits from line_head:{feature_logits.shape}')
|
|
print(f'feature_logits from line_head:{feature_logits.shape}')
|
|
|
|
|
|
|
|
- roi_features = features_align(cs_features, proposals, image_shapes)
|
|
|
|
|
|
|
+ roi_features = features_align(feature_logits, proposals, image_shapes)
|
|
|
if roi_features is not None:
|
|
if roi_features is not None:
|
|
|
print(f'roi_features from align:{roi_features.shape}')
|
|
print(f'roi_features from align:{roi_features.shape}')
|
|
|
return roi_features
|
|
return roi_features
|