forked from Yvonne0413/SceneGraph
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b67dde2
commit 0482dae
Showing
305 changed files
with
32,496 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# This is an example .flake8 config, used when developing *Black* itself. | ||
# Keep in sync with setup.cfg which is used for source packages. | ||
|
||
[flake8] | ||
ignore = E203, E266, E501, W503 | ||
max-line-length = 80 | ||
max-complexity = 18 | ||
select = B,C,E,F,W,T4,B9 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
--- | ||
name: "\U0001F41B Bug Report" | ||
about: Submit a bug report to help us improve Mask R-CNN Benchmark | ||
|
||
--- | ||
|
||
## 🐛 Bug | ||
|
||
<!-- A clear and concise description of what the bug is. --> | ||
|
||
## To Reproduce | ||
|
||
Steps to reproduce the behavior: | ||
|
||
1. | ||
1. | ||
1. | ||
|
||
<!-- If you have a code sample, error messages, stack traces, please provide it here as well --> | ||
|
||
## Expected behavior | ||
|
||
<!-- A clear and concise description of what you expected to happen. --> | ||
|
||
## Environment | ||
|
||
Please copy and paste the output from the | ||
[environment collection script from PyTorch](https://raw.githubusercontent.com/pytorch/pytorch/master/torch/utils/collect_env.py) | ||
(or fill out the checklist below manually). | ||
|
||
You can get the script and run it with: | ||
``` | ||
wget https://raw.githubusercontent.com/pytorch/pytorch/master/torch/utils/collect_env.py | ||
# For security purposes, please check the contents of collect_env.py before running it. | ||
python collect_env.py | ||
``` | ||
|
||
- PyTorch Version (e.g., 1.0): | ||
- OS (e.g., Linux): | ||
- How you installed PyTorch (`conda`, `pip`, source): | ||
- Build command you used (if compiling from source): | ||
- Python version: | ||
- CUDA/cuDNN version: | ||
- GPU models and configuration: | ||
- Any other relevant information: | ||
|
||
## Additional context | ||
|
||
<!-- Add any other context about the problem here. --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
--- | ||
name: "\U0001F680Feature Request" | ||
about: Submit a proposal/request for a new Mask R-CNN Benchmark feature | ||
|
||
--- | ||
|
||
## 🚀 Feature | ||
<!-- A clear and concise description of the feature proposal --> | ||
|
||
## Motivation | ||
|
||
<!-- Please outline the motivation for the proposal. Is your feature request related to a problem? e.g., I'm always frustrated when [...]. If this is related to another GitHub issue, please link here too --> | ||
|
||
## Pitch | ||
|
||
<!-- A clear and concise description of what you want to happen. --> | ||
|
||
## Alternatives | ||
|
||
<!-- A clear and concise description of any alternative solutions or features you've considered, if any. --> | ||
|
||
## Additional context | ||
|
||
<!-- Add any other context or screenshots about the feature request here. --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
name: "❓Questions/Help/Support" | ||
about: Do you need support? | ||
|
||
--- | ||
|
||
## ❓ Questions and Help |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# compilation and distribution | ||
__pycache__ | ||
_ext | ||
*.pyc | ||
*.so | ||
maskrcnn_benchmark.egg-info/ | ||
build/ | ||
dist/ | ||
|
||
# ipython/jupyter notebooks | ||
#*.ipynb | ||
**/.ipynb_checkpoints/ | ||
|
||
# Editor temporaries | ||
*.swn | ||
*.swo | ||
*.swp | ||
*~ | ||
|
||
# Pycharm editor settings | ||
.idea | ||
|
||
# vscode editor settings | ||
.vscode | ||
|
||
# MacOS | ||
.DS_Store | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
## Abstractions | ||
The main abstractions introduced by `maskrcnn_benchmark` that are useful to | ||
have in mind are the following: | ||
|
||
### ImageList | ||
In PyTorch, the first dimension of the input to the network generally represents | ||
the batch dimension, and thus all elements of the same batch have the same | ||
height / width. | ||
In order to support images with different sizes and aspect ratios in the same | ||
batch, we created the `ImageList` class, which holds internally a batch of | ||
images (os possibly different sizes). The images are padded with zeros such that | ||
they have the same final size and batched over the first dimension. The original | ||
sizes of the images before padding are stored in the `image_sizes` attribute, | ||
and the batched tensor in `tensors`. | ||
We provide a convenience function `to_image_list` that accepts a few different | ||
input types, including a list of tensors, and returns an `ImageList` object. | ||
|
||
```python | ||
from maskrcnn_benchmark.structures.image_list import to_image_list | ||
|
||
images = [torch.rand(3, 100, 200), torch.rand(3, 150, 170)] | ||
batched_images = to_image_list(images) | ||
|
||
# it is also possible to make the final batched image be a multiple of a number | ||
batched_images_32 = to_image_list(images, size_divisible=32) | ||
``` | ||
|
||
### BoxList | ||
The `BoxList` class holds a set of bounding boxes (represented as a `Nx4` tensor) for | ||
a specific image, as well as the size of the image as a `(width, height)` tuple. | ||
It also contains a set of methods that allow to perform geometric | ||
transformations to the bounding boxes (such as cropping, scaling and flipping). | ||
The class accepts bounding boxes from two different input formats: | ||
- `xyxy`, where each box is encoded as a `x1`, `y1`, `x2` and `y2` coordinates, and | ||
- `xywh`, where each box is encoded as `x1`, `y1`, `w` and `h`. | ||
|
||
Additionally, each `BoxList` instance can also hold arbitrary additional information | ||
for each bounding box, such as labels, visibility, probability scores etc. | ||
|
||
Here is an example on how to create a `BoxList` from a list of coordinates: | ||
```python | ||
from maskrcnn_benchmark.structures.bounding_box import BoxList, FLIP_LEFT_RIGHT | ||
|
||
width = 100 | ||
height = 200 | ||
boxes = [ | ||
[0, 10, 50, 50], | ||
[50, 20, 90, 60], | ||
[10, 10, 50, 50] | ||
] | ||
# create a BoxList with 3 boxes | ||
bbox = BoxList(boxes, image_size=(width, height), mode='xyxy') | ||
|
||
# perform some box transformations, has similar API as PIL.Image | ||
bbox_scaled = bbox.resize((width * 2, height * 3)) | ||
bbox_flipped = bbox.transpose(FLIP_LEFT_RIGHT) | ||
|
||
# add labels for each bbox | ||
labels = torch.tensor([0, 10, 1]) | ||
bbox.add_field('labels', labels) | ||
|
||
# bbox also support a few operations, like indexing | ||
# here, selects boxes 0 and 2 | ||
bbox_subset = bbox[[0, 2]] | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Code of Conduct | ||
|
||
Facebook has adopted a Code of Conduct that we expect project participants to adhere to. | ||
Please read the [full text](https://code.fb.com/codeofconduct/) | ||
so that you can understand what actions will and will not be tolerated. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
## DATASET | ||
The following is adapted from [Danfei Xu](https://github.com/danfeiX/scene-graph-TF-release/blob/master/data_tools/README.md) and [neural-motifs](https://github.com/rowanz/neural-motifs). | ||
|
||
Note that our codebase intends to support attribute-head either, so our ```VG-SGG.h5``` and ```VG-SGG-dicts.json``` are different with their original versions in [Danfei Xu](https://github.com/danfeiX/scene-graph-TF-release/blob/master/data_tools/README.md) and [neural-motifs](https://github.com/rowanz/neural-motifs). We add attribute information and rename them to be ```VG-SGG-with-attri.h5``` and ```VG-SGG-dicts-with-attri.json```. The code we use to generate them is located at ```datasets/vg/generate_attribute_labels.py```. Although, we encourage later researchers to explore the value of attribute features, in our paper "Unbiased Scene Graph Generation from Biased Training", we follow the conventional setting to turn off the attribute head for fair comparison, so does the default setting of this codebase. | ||
|
||
### Download: | ||
1. Download the VG images [part1](https://cs.stanford.edu/people/rak248/VG_100K_2/images.zip) [part2](https://cs.stanford.edu/people/rak248/VG_100K_2/images2.zip). Extract these images to the file `datasets/vg/VG_100K`. If you want to use other directory, please link it in `DATASETS['VG_stanford_filtered']['img_dir']` of `maskrcnn_benchmark/config/paths_catelog.py`. | ||
2. Download the [scene graphs](https://onedrive.live.com/embed?cid=22376FFAD72C4B64&resid=22376FFAD72C4B64%21779871&authkey=AA33n7BRpB1xa3I) and extract them to `datasets/vg/VG-SGG-with-attri.h5`, or you can edit the path in `DATASETS['VG_stanford_filtered_with_attribute']['roidb_file']` of `maskrcnn_benchmark/config/paths_catelog.py`. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
## Installation | ||
|
||
Most of the requirements of this projects are exactly the same as [maskrcnn-benchmark](https://github.com/facebookresearch/maskrcnn-benchmark). If you have any problem of your environment, you should check their [issues page](https://github.com/facebookresearch/maskrcnn-benchmark/issues) first. Hope you will find the answer. | ||
|
||
### Requirements: | ||
- PyTorch >= 1.2 | ||
- torchvision >= 0.4 | ||
- cocoapi | ||
- yacs | ||
- matplotlib | ||
- GCC >= 4.9 | ||
- OpenCV | ||
|
||
|
||
### Option 1: Step-by-step installation | ||
|
||
```bash | ||
# first, make sure that your conda is setup properly with the right environment | ||
# for that, check that `which conda`, `which pip` and `which python` points to the | ||
# right path. From a clean conda env, this is what you need to do | ||
|
||
conda create --name scene_graph_benchmark | ||
conda activate scene_graph_benchmark | ||
|
||
# this installs the right pip and dependencies for the fresh python | ||
conda install ipython | ||
conda install scipy | ||
conda install h5py | ||
|
||
# scene_graph_benchmark and coco api dependencies | ||
pip install ninja yacs cython matplotlib tqdm opencv-python overrides | ||
|
||
# follow PyTorch installation in https://pytorch.org/get-started/locally/ | ||
# we give the instructions for CUDA 10.0 | ||
conda install pytorch torchvision cudatoolkit=10.0 -c pytorch | ||
|
||
export INSTALL_DIR=$PWD | ||
|
||
# install pycocotools | ||
cd $INSTALL_DIR | ||
git clone https://github.com/cocodataset/cocoapi.git | ||
cd cocoapi/PythonAPI | ||
python setup.py build_ext install | ||
|
||
# install apex | ||
cd $INSTALL_DIR | ||
git clone https://github.com/NVIDIA/apex.git | ||
cd apex | ||
python setup.py install --cuda_ext --cpp_ext | ||
|
||
# install PyTorch Detection | ||
cd $INSTALL_DIR | ||
git clone https://github.com/KaihuaTang/scene-graph-benchmark | ||
cd scene-graph-benchmark | ||
|
||
# the following will install the lib with | ||
# symbolic links, so that you can modify | ||
# the files if you want and won't need to | ||
# re-build it | ||
python setup.py build develop | ||
|
||
|
||
unset INSTALL_DIR | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
MIT License | ||
|
||
Copyright (c) 2018 Facebook | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
# Explanation of our metrics | ||
### Recall@K (R@K) | ||
The earliest and the most widely accepted metric in scene graph generation, which is firstly adopted by [Visual relationship detection with language priors](https://arxiv.org/abs/1608.00187). Since the ground-truth annotations of relationships are incomplete, it's improper to use simple accurary as the metric. Therefore, Lu et al. transfer it to a retrieve-like problem: the relationships are not only required to be correctly classified, but also required to have as higher score as possible, so they can be retrieved from plenty of 'none' relationship pairs. | ||
|
||
### No Graph Constraint Recall@K (ngR@K) | ||
It's firstly used by [Pixel2Graph](https://arxiv.org/abs/1706.07365) and named by [Neural-MOTIFS](https://arxiv.org/abs/1711.06640). The former paper significantly improves the R@K results by allowing each pair to have multiple predicates, which means for each subject-object pair, all the 50 predicates will be involved in the recall ranking not just the one with highest score. Since predicates are not exclusive, 'on' and 'riding' can both be correct. This setting significantly improves the R@K. To fairly compare with other methods, [Neural-MOTIFS](https://arxiv.org/abs/1711.06640) named it as the No Graph Constraint Recall@K (ngR@K). | ||
|
||
### Mean Recall@K (mR@K) | ||
It is proposed by our work [VCTree](https://arxiv.org/abs/1812.01880) and Chen et al.s'[KERN](https://arxiv.org/abs/1903.03326) at the same time (CVPR 2019), although we didn't make it as our main contribution and only listed the full results on the [supplementary material](https://zpascal.net/cvpr2019/Tang_Learning_to_Compose_CVPR_2019_supplemental.pdf). However, we also acknowledge the contribution of [KERN](https://arxiv.org/abs/1903.03326), for they gave more mR@K results of previous methods. The main motivation of Mean Recall@K (mR@K) is that the VisualGenome dataset is biased towards dominant predicates. If the 10 most frequent predicates are correctly classified, the accuracy would reach 90% even the rest 40 kinds of predicates are all wrong. This is definitely not what we want. Therefore, Mean Recall@K (mR@K) calculates Recall@K for each predicate category independently then report their mean. | ||
|
||
### Zero Shot Recall@K (zR@K) | ||
It is firstly used by [Visual relationship detection with language priors](https://arxiv.org/abs/1608.00187) for VRD dataset, and firstly reported by [Unbiased Scene Graph Generation from Biased Training](https://kaihuatang.github.io/) for VisualGenome dataset. In short, it only calculates the Recall@K for those subject-predicate-object combinations that not occurred in the training set. | ||
|
||
### Top@K Accuracy (A@K) | ||
It is actually caused by the misunderstanding of PredCls and SGCls protocols. [Contrastive Losses](https://arxiv.org/abs/1903.02728) reported Recall@K of PredCls and SGCls by not just giving ground-truth bounding boxes, but also giving the ground-truth subject-object pairs, so no ranking is involved. The results can only be considerred as Top@K Accuracy (A@K) for the given K ground-truth subject-object pairs. | ||
|
||
### Sentence-to-Graph Retrieval (S2G) | ||
S2G is proposed by [Unbiased Scene Graph Generation from Biased Training](https://kaihuatang.github.io/) as an ideal downstream task that only relies on the quality of SGs, for the existing VQA and Captioning are too complicated and challenged by their own bias. It takes human descriptions as queries, searching for matching scene graphs (images), where SGs are considered as the symbolic representations of images. More details will be explained in [S2G-RETRIEVAL.md](maskrcnn_benchmark/image_retrieval/S2G-RETRIEVAL.md). | ||
|
||
# Two Common Misunderstandings in SGG Metrics | ||
When you read/follow a SGG paper, and you find that its performance is abnormally high for no obvious reasons, whose authors could mess up some metrics. | ||
|
||
1. Not differentiate Graph Constraint Recall@K and No Graph Constraint Recall@K. The setting of With/Without Constraint is introduced by [Neural-MOTIFS](https://arxiv.org/abs/1711.06640). However, some early work and a few recent researchers don't differentiate these two setting, using No Graph Constraint results to compare with previous work With Graph Constraint. TYPICAL SYMPTOMS: 1) Recall@100 of PredCls is larger than 75%, 2) not mention With/Without Graph Constraint in the original paper. TYPICAL Paper:[Pixel2Graph](https://arxiv.org/abs/1706.07365) (Since this paper is published before MOTIFS, they didn't mean to take this adventage, and they are actually the fathers of No Graph Constraint setting while MOTIFS is the one who named this baby.) | ||
|
||
2. Some researchers misunderstand the protocols of PredCls and SGCls. These two protocols only give ground-truth bounding boxes NOT ground-truth subject object pairs. Some work only predict relationships for ground-truth subject-object pairs in PredCls and SGCls, so their PredCls and SGCls results will extremely high. Note that Recall@K metric is a ranking metric, using ground-truth subject-object pairs can be considerred as giving the perfect ranking. In order to separate from normal PredCls and SGCls, I name this kind of setting as Top@K Accuracy, which is only applicable to PredCls and SGCls. TYPICAL SYMPTOMS: 1) results of PredCls and SGCls are extremely high while results of SGGen are normal, 2) Recall@50 and Recall@100 of PredCls and SGCls are exactly the same, since the ranking is perfect (Recall@20 is less, for some images have groud-truth relationships more than 20). TYPICAL Paper:[Contrastive Losses](https://arxiv.org/abs/1903.02728). | ||
|
||
# Reported Results | ||
|
||
### Output Format of Our Code | ||
|
||
![alt text](demo/output_format.png "from 'screenshot'") | ||
|
||
### The results of reimplemented [IMP](https://arxiv.org/abs/1701.02426), [MOTIFS](https://arxiv.org/abs/1711.06640), [VCTree](https://arxiv.org/abs/1812.01880) and our Transformer with X-101-FPN backbone | ||
Note that the reimplemented VCTree is not exactly the same as the [original work](https://github.com/KaihuaTang/VCTree-Scene-Graph-Generation). It's an optimized version for SGCls and SGGen. But PredCls seems not as good as previous, I will try to find the reason later. | ||
|
||
### Recall@K | ||
|
||
Models | SGGen R@20 | SGGen R@50 | SGGen R@100 | SGCls R@20 | SGCls R@50 | SGCls R@100 | PredCls R@20 | PredCls R@50 | PredCls R@100 | ||
-- | -- | -- | -- | -- | -- | -- | -- | -- | -- | ||
IMP | 18.09 | 25.94 | 31.15 | 34.01 | 37.48 | 38.50 | 54.34 | 61.05 | 63.06 | ||
MOTIFS | 25.48 | 32.78 | 37.16 | 35.63 | 38.92 | 39.77 | 58.46 | 65.18 | 67.01 | ||
Transformer | 25.55 | 33.04 | 37.40 | 36.87 | 40.18 | 41.02 | 59.06 | 65.55 | 67.29 | ||
VCTree | 24.53 | 31.93 | 36.21 | 42.77 | 46.67 | 47.64 | 59.02 | 65.42 | 67.18 | ||
|
||
### No Graph Constraint Recall@K | ||
|
||
Models | SGGen ngR@20 | SGGen ngR@50 | SGGen ngR@100 | SGCls ngR@20 | SGCls ngR@50 | SGCls ngR@100 | PredCls ngR@20 | PredCls ngR@50 | PredCls ngR@100 | ||
-- | -- | -- | -- | -- | -- | -- | -- | -- | -- | ||
IMP | 18.35 | 27.02 | 33.89 | 38.70 | 46.78 | 51.20 | 62.14 | 76.82 | 84.97 | ||
MOTIFS | 27.04 | 36.58 | 43.43 | 40.58 | 48.48 | 51.98 | 66.39 | 81.02 | 88.24 | ||
Transformer | 27.14 | 36.98 | 43.90 | 42.31 | 50.18 | 53.93 | 67.45 | 81.83 | 88.95 | ||
VCTree | 26.14 | 35.73 | 42.34 | 48.94 | 58.36 | 62.70 | 67.20 | 81.63 | 88.83 | ||
|
||
### Zero Shot Recall@K | ||
Note: IMP achieves highest Zero Shot Recall@K because it doesn't include any explicit or implicit object label embeddings for predicate prediction. | ||
|
||
Models | SGGen zR@20 | SGGen zR@50 | SGGen zR@100 | SGCls zR@20 | SGCls zR@50 | SGCls zR@100 | PredCls zR@20 | PredCls zR@50 | PredCls zR@100 | ||
-- | -- | -- | -- | -- | -- | -- | -- | -- | -- | ||
IMP | 0.18 | 0.38 | 0.77 | 2.01 | 3.30 | 3.92 | 12.17 | 17.66 | 20.25 | ||
MOTIFS | 0.0 | 0.05 | 0.11 | 0.32 | 0.68 | 1.13 | 1.08 | 3.24 | 5.36 | ||
Transformer | 0.04 | 0.14 | 0.29 | 0.34 | 0.91 | 1.39 | 1.35 | 3.63 | 5.64 | ||
VCTree | 0.10 | 0.31 | 0.69 | 0.45 | 1.17 | 2.08| 1.04 | 3.27 | 5.51 | ||
|
||
### Mean Recall@K | ||
|
||
Models | SGGen mR@20 | SGGen mR@50 | SGGen mR@100 | SGCls mR@20 | SGCls mR@50 | SGCls mR@100 | PredCls mR@20 | PredCls mR@50 | PredCls mR@100 | ||
-- | -- | -- | -- | -- | -- | -- | -- | -- | -- | ||
IMP | 2.75 | 4.17 | 5.30 | 5.21 | 6.18 | 6.53 | 8.85 | 10.97 | 11.77 | ||
MOTIFS | 4.98 | 6.75 | 7.90 | 6.68 | 8.28 | 8.81 | 11.67 | 14.79 | 16.08 | ||
Transformer | 6.01 | 8.13 | 9.56 | 8.14 | 10.09 | 10.73 | 12.77 | 16.30 | 17.63 | ||
VCTree | 5.38 | 7.44 | 8.66 | 9.59 | 11.81 | 12.52 | 13.12 | 16.74 | 18.16 | ||
|
||
### Top@K Accuracy | ||
|
||
Models | SGGen A@20 | SGGen A@50 | SGGen A@100 | SGCls A@20 | SGCls A@50 | SGCls A@100 | PredCls A@20 | PredCls A@50 | PredCls A@100 | ||
-- | -- | -- | -- | -- | -- | -- | -- | -- | -- | ||
IMP | - | - | - | 39.19 | 39.30 | 39.30 | 64.88 | 65.12 | 65.12 | ||
MOTIFS | - | - | - | 40.41 | 40.50 | 40.50 | 68.87 | 69.14 | 69.14 | ||
Transformer | - | - | - | 41.75 | 41.84 | 41.84 | 69.08 | 69.36 | 69.36 | ||
VCTree | - | - | - | 48.47 | 48.59 | 48.59 | 68.92 | 69.19 | 69.19 | ||
|
||
### The results of [Unbiased Scene Graph Generation from Biased Training](https://kaihuatang.github.io/) with X-101-FPN backbone | ||
|
||
Note that if you are using the default VCTree settings of this project, all results of VCTree should be better than what we reported in [Unbiased Scene Graph Generation from Biased Training](https://kaihuatang.github.io/), i.e., the following results, because we optimized the tree construction network after the publication. | ||
|
||
### Recall@K and Mean Recall@K | ||
|
||
![alt text](demo/TDE_Results1.png "from 'Unbiased Scene Graph Generation from Biased Training'") | ||
|
||
### Zero Shot Recall@K | ||
|
||
![alt text](demo/TDE_Results2.png "from 'Unbiased Scene Graph Generation from Biased Training'") |
Oops, something went wrong.