in tools/scripts/features/frcnn/extract_features_frcnn.py [0:0]
def _process_features(self, features, index):
feature_keys = [
"obj_ids",
"obj_probs",
"attr_ids",
"attr_probs",
"boxes",
"sizes",
"preds_per_image",
"roi_features",
"normalized_boxes",
]
single_features = dict()
for key in feature_keys:
single_features[key] = features[key][index]
confidence = self.args.confidence_threshold
idx = 0
while idx < single_features["obj_ids"].size()[0]:
removed = False
if (
single_features["obj_probs"][idx] < confidence
or single_features["attr_probs"][idx] < confidence
):
single_features["obj_ids"] = torch.cat(
[
single_features["obj_ids"][0:idx],
single_features["obj_ids"][idx + 1 :],
]
)
single_features["obj_probs"] = torch.cat(
[
single_features["obj_probs"][0:idx],
single_features["obj_probs"][idx + 1 :],
]
)
single_features["attr_ids"] = torch.cat(
[
single_features["attr_ids"][0:idx],
single_features["attr_ids"][idx + 1 :],
]
)
single_features["attr_probs"] = torch.cat(
[
single_features["attr_probs"][0:idx],
single_features["attr_probs"][idx + 1 :],
]
)
single_features["boxes"] = torch.cat(
[
single_features["boxes"][0:idx, :],
single_features["boxes"][idx + 1 :, :],
]
)
single_features["preds_per_image"] = (
single_features["preds_per_image"] - 1
)
single_features["roi_features"] = torch.cat(
[
single_features["roi_features"][0:idx, :],
single_features["roi_features"][idx + 1 :, :],
]
)
single_features["normalized_boxes"] = torch.cat(
[
single_features["normalized_boxes"][0:idx, :],
single_features["normalized_boxes"][idx + 1 :, :],
]
)
removed = True
if not removed:
idx += 1
feat_list = single_features["roi_features"]
boxes = single_features["boxes"][: self.args.num_features].cpu().numpy()
num_boxes = self.args.num_features
objects = single_features["obj_ids"][: self.args.num_features].cpu().numpy()
probs = single_features["obj_probs"][: self.args.num_features].cpu().numpy()
width = single_features["sizes"][1].item()
height = single_features["sizes"][0].item()
info_list = {
"bbox": boxes,
"num_boxes": num_boxes,
"objects": objects,
"cls_prob": probs,
"image_width": width,
"image_height": height,
}
return single_features, feat_list, info_list