Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: KaihuaTang/Scene-Graph-Benchmark.pytorch
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: bicheng-xu/Scene-Graph-Benchmark.pytorch
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Able to merge. These branches can be automatically merged.
Loading
Showing with 1,580 additions and 16 deletions.
  1. +2 −0 .gitignore
  2. +9 −0 configs/e2e_relation_X_101_32_8_FPN_1x.yaml
  3. +14 −0 maskrcnn_benchmark/config/defaults.py
  4. +4 −4 maskrcnn_benchmark/config/paths_catalog.py
  5. +9 −2 maskrcnn_benchmark/data/build.py
  6. +2 −1 maskrcnn_benchmark/data/datasets/__init__.py
  7. +2 −0 maskrcnn_benchmark/data/datasets/evaluation/__init__.py
  8. +254 −1 maskrcnn_benchmark/data/datasets/evaluation/vg/sgg_eval.py
  9. +17 −4 maskrcnn_benchmark/data/datasets/evaluation/vg/vg_eval.py
  10. +134 −0 maskrcnn_benchmark/data/datasets/vg_gen_img.py
  11. +1 −1 maskrcnn_benchmark/structures/bounding_box.py
  12. +6 −3 tools/relation_test_net.py
  13. +127 −0 tools/relation_val_net.py
  14. +142 −0 tools/relation_val_net_gen_img.py
  15. +26 −0 vector-scripts/debug-example-sgcls-val.sh
  16. +31 −0 vector-scripts/debug-img-sgcls-val-999-template-pass.sh
  17. +39 −0 vector-scripts/example-predcls-test.sh
  18. +40 −0 vector-scripts/example-predcls-val-999.sh
  19. +39 −0 vector-scripts/example-predcls-val.sh
  20. +39 −0 vector-scripts/example-sgcls-test.sh
  21. +40 −0 vector-scripts/example-sgcls-val-999.sh
  22. +39 −0 vector-scripts/example-sgcls-val.sh
  23. +54 −0 vector-scripts/gen-img-motif-sgcls-val-999-template-pass.sh
  24. +57 −0 vector-scripts/gen-img-predcls-val-999-template-pass.sh
  25. +47 −0 vector-scripts/gen-img-predcls-val-999-template.sh
  26. +57 −0 vector-scripts/gen-img-sgcls-val-999-template-pass.sh
  27. +47 −0 vector-scripts/gen-img-sgcls-val-999-template.sh
  28. +54 −0 vector-scripts/gen-img-vctree-sgcls-val-999-template-pass-debug.sh
  29. +54 −0 vector-scripts/gen-img-vctree-sgcls-val-999-template-pass.sh
  30. +57 −0 vector-scripts/relation-test-gen-img-predcls-val-999-template-pass.sh
  31. +57 −0 vector-scripts/relation-test-gen-img-sgcls-val-999-template-pass.sh
  32. +17 −0 vector-scripts/zz-submit-pass-2-a1.sh
  33. +23 −0 vector-scripts/zz-submit-pass-2.sh
  34. +17 −0 vector-scripts/zz-submit-pass-a1-second.sh
  35. 0 vector-scripts/zz-submit-pass-a1.sh
  36. +23 −0 vector-scripts/zz-submit-pass.sh
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -35,3 +35,5 @@ datasets/vg/
# MacOS
.DS_Store

# slurm
slurm-output/
9 changes: 9 additions & 0 deletions configs/e2e_relation_X_101_32_8_FPN_1x.yaml
Original file line number Diff line number Diff line change
@@ -120,6 +120,7 @@ SOLVER:
FACTOR: 0.1
MAX_DECAY_STEP: 3
OUTPUT_DIR: './output/relation_baseline'
DATA_STAT_DIR: './output/relation_baseline'
TEST:
ALLOW_LOAD_FROM_CACHE: False
RELATION:
@@ -128,3 +129,11 @@ TEST:
LATER_NMS_PREDICTION_THRES: 0.5
CUSTUM_EVAL: False # eval SGDet model on custum images, output a json
CUSTUM_PATH: '.' # the folder that contains the custum images, only jpg files are allowed
GEN_IMG: # Generated images eval options
EVAL: False
ANNO_DIR: ""
ANNO_FILE: ""
BASE_DIR: ""
FOLDER_NAME: ""
NUM_ROUNDS: 1
RESOLUTION: 256
14 changes: 14 additions & 0 deletions maskrcnn_benchmark/config/defaults.py
Original file line number Diff line number Diff line change
@@ -584,6 +584,7 @@
# Misc options
# ---------------------------------------------------------------------------- #
_C.OUTPUT_DIR = "."
_C.DATA_STAT_DIR = "."
_C.DETECTED_SGG_DIR = "."
_C.GLOVE_DIR = "."

@@ -599,3 +600,16 @@

# Enable verbosity in apex.amp
_C.AMP_VERBOSE = False

# ---------------------------------------------------------------------------- #
# Generated images eval options
# ---------------------------------------------------------------------------- #
_C.GEN_IMG = CN()

_C.GEN_IMG.EVAL = False
_C.GEN_IMG.ANNO_DIR = ""
_C.GEN_IMG.ANNO_FILE = ""
_C.GEN_IMG.BASE_DIR = ""
_C.GEN_IMG.FOLDER_NAME = ""
_C.GEN_IMG.NUM_ROUNDS = 1
_C.GEN_IMG.RESOLUTION = 256
8 changes: 4 additions & 4 deletions maskrcnn_benchmark/config/paths_catalog.py
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@

class DatasetCatalog(object):
#DATA_DIR = "/home/users/alatif/data/ImageCorpora/"
DATA_DIR = "/media/rafi/Samsung_T5/_DATASETS/"
DATA_DIR = "datasets"
DATASETS = {
"coco_2017_train": {
"img_dir": "coco/train2017",
@@ -107,14 +107,14 @@ class DatasetCatalog(object):
"ann_file": "cityscapes/annotations/instancesonly_filtered_gtFine_test.json"
},
"VG_stanford_filtered": {
"img_dir": "vg/VG_100K",
"img_dir": "/h/bichengx/site-pkgs/VG-SGG/VG_100K_3",
"roidb_file": "vg/VG-SGG.h5",
"dict_file": "vg/VG-SGG-dicts.json",
"image_file": "vg/image_data.json",
},
"VG_stanford_filtered_with_attribute": {
"img_dir": "vg/VG_100K",
"roidb_file": "vg/VG-SGG-with-attri.h5",
"img_dir": "/h/bichengx/site-pkgs/VG-SGG/VG_100K_3",
"roidb_file": "/h/bichengx/site-pkgs/VG-SGG/VG-SGG-with-attri.h5",
"dict_file": "vg/VG-SGG-dicts-with-attri.json",
"image_file": "vg/image_data.json",
"capgraphs_file": "vg/vg_capgraphs_anno.json",
11 changes: 9 additions & 2 deletions maskrcnn_benchmark/data/build.py
Original file line number Diff line number Diff line change
@@ -16,6 +16,7 @@

from .collate_batch import BatchCollator, BBoxAugCollator
from .transforms import build_transforms
from maskrcnn_benchmark.data.datasets.vg_gen_img import build_gen_img_dataset

# by Jiaxin
def get_dataset_statistics(cfg):
@@ -33,7 +34,8 @@ def get_dataset_statistics(cfg):
dataset_names = cfg.DATASETS.TRAIN

data_statistics_name = ''.join(dataset_names) + '_statistics'
save_file = os.path.join(cfg.OUTPUT_DIR, "{}.cache".format(data_statistics_name))
# save_file = os.path.join(cfg.OUTPUT_DIR, "{}.cache".format(data_statistics_name))
save_file = os.path.join(cfg.DATA_STAT_DIR, "{}.cache".format(data_statistics_name))

if os.path.exists(save_file):
logger.info('Loading data statistics from: ' + str(save_file))
@@ -224,7 +226,12 @@ def make_data_loader(cfg, mode='train', is_distributed=False, start_iter=0, data

# If bbox aug is enabled in testing, simply set transforms to None and we will apply transforms later
transforms = None if not is_train and cfg.TEST.BBOX_AUG.ENABLED else build_transforms(cfg, is_train)
datasets = build_dataset(cfg, dataset_list, transforms, DatasetCatalog, is_train)

if cfg.GEN_IMG.EVAL:
assert (aspect_grouping == [])
datasets = build_gen_img_dataset(cfg, transforms)
else:
datasets = build_dataset(cfg, dataset_list, transforms, DatasetCatalog, is_train)

if is_train:
# save category_id to label name mapping
3 changes: 2 additions & 1 deletion maskrcnn_benchmark/data/datasets/__init__.py
Original file line number Diff line number Diff line change
@@ -3,5 +3,6 @@
from .voc import PascalVOCDataset
from .concat_dataset import ConcatDataset
from .visual_genome import VGDataset
from .vg_gen_img import VG_Gen_Img_Dataset

__all__ = ["COCODataset", "ConcatDataset", "PascalVOCDataset", "VGDataset"]
__all__ = ["COCODataset", "ConcatDataset", "PascalVOCDataset", "VGDataset", "VG_Gen_Img_Dataset"]
2 changes: 2 additions & 0 deletions maskrcnn_benchmark/data/datasets/evaluation/__init__.py
Original file line number Diff line number Diff line change
@@ -25,6 +25,8 @@ def evaluate(cfg, dataset, predictions, output_folder, logger, **kwargs):
return voc_evaluation(**args)
elif isinstance(dataset, datasets.VGDataset):
return vg_evaluation(**args)
elif isinstance(dataset, datasets.VG_Gen_Img_Dataset):
return vg_evaluation(**args)
else:
dataset_name = dataset.__class__.__name__
raise NotImplementedError("Unsupported dataset type {}.".format(dataset_name))
Loading