1. 13 Apr, 2019 1 commit
  2. 11 Apr, 2019 1 commit
  3. 10 Apr, 2019 1 commit
  4. 09 Apr, 2019 1 commit
    • Csaba Botos's avatar
      Support Binary Mask with transparent SementationMask interface (#473) · b4d54657
      Csaba Botos authored
      * support RLE and binary mask
      
      * do not convert to numpy
      
      * be consistent with Detectron
      
      * delete wrong comment
      
      * [WIP] add tests for segmentation_mask
      
      * update tests
      
      * minor change
      
      * Refactored segmentation_mask.py
      
      * Add unit test for segmentation_mask.py
      
      * Add RLE support for BinaryMaskList
      
      * PEP8 black formatting
      
      * Minor patch
      
      * Use internal  that handles 0 channels
      
      * Fix polygon slicing
      b4d54657
  5. 05 Apr, 2019 1 commit
  6. 04 Apr, 2019 1 commit
    • Zhang Liliang's avatar
      Fix a bug in Docker file (#637) · 5c44ca74
      Zhang Liliang authored
      Fix a bug.
      Romove the echo command in line 36: RUN conda install pytorch-nightly cudatoolkit=${CUDA} -c pytorch 
      To enable conda installation of pytorch-nightly.
      5c44ca74
  7. 02 Apr, 2019 1 commit
  8. 31 Mar, 2019 1 commit
  9. 27 Mar, 2019 1 commit
  10. 26 Mar, 2019 3 commits
    • Miguel Varela Ramos's avatar
      Fixes conda CUDA version in Dockerfile (#604) · bd39d2c1
      Miguel Varela Ramos authored
      * fixes to dockerfile
      
      * replaces local installation by git clone
      bd39d2c1
    • Miguel Varela Ramos's avatar
      Rollback dispatch patch (#603) · 4a7dcc4d
      Miguel Varela Ramos authored
      * Merge branch 'master' of /home/braincreator/projects/maskrcnn-benchmark with conflicts.
      
      * rolls back the breaking AT dispatch changes (#555)
      
      * revert accidental docker changes
      
      * revert accidental docker changes (2)
      4a7dcc4d
    • kaiJIN's avatar
      Support for running on arbitrary CUDA device. (#537) · f0318794
      kaiJIN authored
      * support for any one cuda device
      
      * Revert "support for any one cuda device"
      
      This reverts commit 0197e4e2ef18ec41cc155f3ae2a0face5b77e1e9.
      
      * support runnning for anyone cuda device
      
      * using safe CUDAGuard rather than intrinsic CUDASetDevice
      
      * supplement a header dependency (test passed)
      
      * Support for  arbitrary GPU device.
      
      * Support for arbitrary GPU device.
      
      * add docs for two method to control devices
      f0318794
  11. 25 Mar, 2019 1 commit
  12. 13 Mar, 2019 1 commit
  13. 12 Mar, 2019 2 commits
  14. 11 Mar, 2019 1 commit
  15. 10 Mar, 2019 1 commit
  16. 08 Mar, 2019 2 commits
  17. 05 Mar, 2019 2 commits
  18. 01 Mar, 2019 1 commit
  19. 28 Feb, 2019 2 commits
  20. 26 Feb, 2019 1 commit
    • zimenglan's avatar
      add README.md for GN (#494) · 1818bb2f
      zimenglan authored
      * make pixel indexes 0-based for bounding box in pascal voc dataset
      
      * replacing all instances of torch.distributed.deprecated with torch.distributed
      
      * replacing all instances of torch.distributed.deprecated with torch.distributed
      
      * add GroupNorm
      
      * add GroupNorm -- sort out yaml files
      
      * use torch.nn.GroupNorm instead, replace 'use_gn' with 'conv_block' and use 'BaseStem'&'Bottleneck' to simply codes
      
      * modification on 'group_norm' and 'conv_with_kaiming_uniform' function
      
      * modification on yaml files in configs/gn_baselines/ and reduce the amount of indentation and code duplication
      
      * use 'kaiming_uniform' to initialize resnet, disable gn after fc layer, and add dilation into ResNetHead
      
      * agnostic-regression for bbox
      
      * please set 'STRIDE_IN_1X1' to be 'False' when backbone use GN
      
      * add README.md for GN
      1818bb2f
  21. 23 Feb, 2019 1 commit
    • Preston Parry's avatar
      Fixes bug with double (overwriting) RESNETS params (#488) · f40f2993
      Preston Parry authored
      There were two `RESNETS` sections, which overrode each other, leading to error messages like: 
      
      ```
      RuntimeError: Error(s) in loading state_dict for GeneralizedRCNN:
      	size mismatch for backbone.fpn.fpn_inner1.weight: copying a param with shape torch.Size([256, 256, 1, 1]) from checkpoint, the shape in current model is torch.Size([1024, 256, 1, 1]).
      ...
      	size mismatch for roi_heads.mask.feature_extractor.mask_fcn1.weight: copying a param with shape torch.Size([256, 256, 3, 3]) from checkpoint, the shape in current model is torch.Size([256, 1024, 3, 3]).
      ```
      
      This just combines them back into a single section, while maintaining all param values. That got the model running again for me.
      f40f2993
  22. 22 Feb, 2019 1 commit
  23. 20 Feb, 2019 1 commit
    • Stzpz's avatar
      Supported FBNet architecture. (#463) · b23eee0c
      Stzpz authored
      * Supported any feature map size for average pool.
      * Different models may have different feature map size.
      
      * Used registry to register keypoint and mask heads.
      
      * Passing in/out channels between modules when creating the model.
      
      Passing in/out channels between modules when creating the model. This simplifies the code to compute the input channels for feature extractors and makes the predictors independent of the backbone architectures.
      * Passed in_channels to rpn and head builders.
      * Set out_channels to model modules including backbone and feature extractors.
      * Moved cfg.MODEL.BACKBONE.OUT_CHANNELS to cfg.MODEL.RESNETS.BACKBONE_OUT_CHANNELS as it is not used by all architectures. Updated config files accordingly.
      
      For new architecture modules, the return module needs to contain a field called 'out_channels' to indicate the output channel size.
      
      * Added unit test for box_coder and nms.
      
      * Added FBNet architecture.
      
      * FBNet is a general architecture definition to support efficient architecture search and MaskRCNN2GO.
      * Included various efficient building blocks (inverted residual, shuffle, separate dw conv, dw upsampling etc.)
      * Supported building backbone, rpn, detection, keypoint and mask heads using efficient building blocks.
      * Architecture could be defined in `fbnet_modeldef.py` or in `cfg.MODEL.FBNET.ARCH_DEF` directly.
      * A few baseline architectures are included.
      
      * Added various unit tests.
      
      * build and run backbones.
      * build and run feature extractors.
      * build and run predictors.
      
      * Added a unit test to verify all config files are loadable.
      b23eee0c
  24. 19 Feb, 2019 6 commits
    • zimenglan's avatar
      please set 'STRIDE_IN_1X1' to be 'False' when backbone uses GN (#465) · 192261db
      zimenglan authored
      * make pixel indexes 0-based for bounding box in pascal voc dataset
      
      * replacing all instances of torch.distributed.deprecated with torch.distributed
      
      * replacing all instances of torch.distributed.deprecated with torch.distributed
      
      * add GroupNorm
      
      * add GroupNorm -- sort out yaml files
      
      * use torch.nn.GroupNorm instead, replace 'use_gn' with 'conv_block' and use 'BaseStem'&'Bottleneck' to simply codes
      
      * modification on 'group_norm' and 'conv_with_kaiming_uniform' function
      
      * modification on yaml files in configs/gn_baselines/ and reduce the amount of indentation and code duplication
      
      * use 'kaiming_uniform' to initialize resnet, disable gn after fc layer, and add dilation into ResNetHead
      
      * agnostic-regression for bbox
      
      * please set 'STRIDE_IN_1X1' to be 'False' when backbone use GN
      192261db
    • xelmirage's avatar
      modify test() to run_test() (#460) · f8b01183
      xelmirage authored
      I'm using pycharm to debug the code on a remote server, the remote debugging seems to be performed by pytest and it pops errors like:
      train_net.py E
      test setup failed
      file /tmp/pycharm_project_269/tools/train_net.py, line 79
        def test(cfg, model, distributed):
      E       fixture 'cfg' not found
      >       available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, doctest_namespace, monkeypatch, pytestconfig, record_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory
      >       use 'pytest --fixtures [testpath]' for help on them.
      
      
      it seems the function name ‘test()’ has come conflict with pytest, so it may be better use another name.
      f8b01183
    • Csaba Botos's avatar
      remove note for detectron dependency (#458) · 5ec0b91c
      Csaba Botos authored
      5ec0b91c
    • Csaba Botos's avatar
      Remove Detectron dependency (#457) · 0f9476bd
      Csaba Botos authored
      * Remove Detectron dependency
      
      I have looked into the boxes.py to swap [these lines](https://github.com/facebookresearch/Detectron/blob/8170b25b425967f8f1c7d715bea3c5b8d9536cd8/detectron/utils/boxes.py#L51L52):
      ```
      import detectron.utils.cython_bbox as cython_bbox
      import detectron.utils.cython_nms as cython_nms
      ```
      
      ```
      from maskrcnn_benchmark.structures.boxlist_ops import boxlist_iou
      from maskrcnn_benchmark.structures.boxlist_ops import boxlist_nms
      ```
      However some functions are missing from the `boxlist_ops` like the [`soft_nms`](https://github.com/facebookresearch/Detectron/blob/master/detectron/utils/cython_nms.pyx#L98L203) .
      
      So I just tried to modify the `maskrcnn-benchmark/tools/cityscapes/convert_cityscapes_to_coco.py` script.
      Here we have `polys_to_boxes` function from `segms.py` and I could not find its analogous in the maskrcnn_benchmark lib. It seems to me that the original function in `segms.py` is using pure lists so I just wrote two auxiliary functions reusing the boxList's convert method( https://github.com/facebookresearch/maskrcnn-benchmark/blob/master/maskrcnn_benchmark/structures/bounding_box.py#L67L70 )
      and Detectron's polys_to_boxes ( https://github.com/facebookresearch/Detectron/blob/b5dcc0fe1d091cb70f9243939258215dd63e3dfa/detectron/utils/segms.py#L135L140 ):
      ```
      def poly_to_box(poly):
          """Convert a polygon into a tight bounding box."""
          x0 = min(min(p[::2]) for p in poly)
          x1 = max(max(p[::2]) for p in poly)
          y0 = min(min(p[1::2]) for p in poly)
          y1 = max(max(p[1::2]) for p in poly)
          box_from_poly = [x0, y0, x1, y1]
      
          return box_from_poly
      
      def xyxy_to_xywh(xyxy_box):
          xmin, ymin, xmax, ymax = xyxy_box
          TO_REMOVE = 1
          xywh_box = (xmin, ymin, xmax - xmin + TO_REMOVE, ymax - ymin + TO_REMOVE)
          return xywh_box
      ```
      
      * removed leftovers
      
      * Update convert_cityscapes_to_coco.py
      0f9476bd
    • Preston Parry's avatar
      unsets proper variable (#456) · 6d7d80a1
      Preston Parry authored
      Finishing the clean up in https://github.com/facebookresearch/maskrcnn-benchmark/pull/455, unsetting the proper variable. 
      
      In general, thanks for making this so easy to install! I'd run into all kinds of versioning issues (version of Ubuntu not playing nicely with versions of CUDA/pytorch/libraries) trying to install other libraries implementing these algorithms. I'm super impressed by the quality of support, and the easy install, for this library.
      6d7d80a1
    • Csaba Botos's avatar
      clear up MASKRCNN_BENCHMARK_INSTALL_DIR (#455) · 1c0e6dcf
      Csaba Botos authored
      the env variable is misused in the current version
      1c0e6dcf
  25. 18 Feb, 2019 2 commits
    • Preston Parry's avatar
      Update install example to avoid directory assumptions (#451) · b0c198dc
      Preston Parry authored
      The previous instruction examples assumed that the directory `~/github` existed, and did not include any check to create it if the directory did not exist. I updated to install in whatever directory the user is current in. 
      
      I also updated to make it clear how the CUDA version is specified, and fixed a typo in activating the conda env.
      b0c198dc
    • Csaba Botos's avatar
      clarifying directory structure and fixing typo (#448) · f2b9a9a0
      Csaba Botos authored
      A few addition:
      I added the top level directory `cityscapes` since the `tools/cityscapes/convert_cityscapes_to_coco.py` script has the directory structure `gtFine_trainvaltest/gtFine` hardcoded into it which is fine but was not clear at first.
      
      Also added a **Note** to warn people to install detectron as well, since the script uses `detectron.utils.boxes` and `detectron.utils.segm` modules which has further dependencies in the detectron lib.
      f2b9a9a0
  26. 15 Feb, 2019 3 commits
    • Ren Jin's avatar
      e60f4ec8
    • Cheng-Yang Fu's avatar
      Add RetinaNet Implementation (#102) · 6b1ab017
      Cheng-Yang Fu authored
      * Add RetinetNet parameters in cfg.
      
      * hot fix.
      
      * Add the retinanet head module now.
      
      * Add the function to generate the anchors for RetinaNet.
      
      * Add the SigmoidFocalLoss cuda operator.
      
      * Fix the bug in the extra layers.
      
      * Change the normalizer for SigmoidFocalLoss
      
      * Support multiscale in training.
      
      * Add retinannet  training script.
      
      * Add the inference part of RetinaNet.
      
      * Fix the bug when building the extra layers in retinanet.
      Update the matching part in retinanet_loss.
      
      * Add the first version of the inference of RetinaNet.
      Need to check it again to see if is there any room for speed
      improvement.
      
      * Remove the  retinanet_R-50-FPN_2x.yaml first.
      
      * Optimize the retinanet postprocessing.
      
      * quick fix.
      
      * Add script for training RetinaNet with ResNet101 backbone.
      
      * Move cfg.RETINANET to cfg.MODEL.RETINANET
      
      * Remove the variables which are not used.
      
      * revert boxlist_ops.
      Generate Empty BoxLists instead of [] in retinanet_infer
      
      * Remove the not used commented lines.
      Add NUM_DETECTIONS_PER_IMAGE
      
      * remove the not used codes.
      
      * Move retinanet related files under Modeling/rpn/retinanet
      
      * Add retinanet_X_101_32x8d_FPN_1x.yaml script.
      This model is not fully validated. I only trained it around 5000
      iterations and everything is fine.
      
      * set RETINANET.PRE_NMS_TOP_N as 0 in level5 (p7), because previous setting may generate zero detections and could cause
      the program break.
      This part is used in original Detectron setting.
      
      * Fix the rpn only bug when the training ends.
      
      * Minor improvements
      
      * Comments and add Python-only implementation
      
      * Bugfix and remove commented code
      
      * keep the generalized_rcnn same.
      Move the build_retinanet inside build_rpn.
      
      * Add USE_C5 in the MODEL.RETINANET
      
      * Add two configs using P5 to generate P6.
      
      * fix the bug when loading the Caffe2 ImageNet pretrained model.
      
      * Reduce the code depulication of RPN loss and RetinaNet loss.
      
      * Remove the comment which is not used.
      
      * Remove the hard coded number of classes.
      
      * share the foward part of rpn inference.
      
      * fix the bug in rpn inference.
      
      * Remove the conditional part in the inference.
      
      * Bug fix: add the utils file for permute and flatten of the box
      prediction layers.
      
      * Update the comment.
      
      * quick fix. Adding import cat.
      
      * quick fix: forget including import.
      
      * Adjust the normalization part according to Detectron's setting.
      
      * Use the bbox reg normalization term.
      
      * Clean the code according to recent review.
      
      * Using CUDA version for training now. And the python version for training
      on cpu.
      
      * rename the directory to retinanet.
      
      * Make the train and val datasets are consistent with mask r-cnn setting.
      
      * add comment.
      6b1ab017
    • Himanshu Pandey's avatar
      595694cb