1. 19 Apr, 2019 3 commits
    • ChenJoya's avatar
      proposals from RPN per image during training (#676) · bf043792
      ChenJoya authored
      * proposals from RPN per image during training
      
      * README
      
      * Update README for setting FPN_POST_NMS_TOP_N_TRAIN
      
      * Update README.md
      
      * removing extra space change
      bf043792
    • CoinCheung's avatar
      add color jitter augmentation (#680) · 862347d5
      CoinCheung authored
      * add color jitter augmentation
      
      * fix spelling
      862347d5
    • zimenglan's avatar
      add dcn from mmdetection (#693) · 1d6e9add
      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
      
      * add dcn from mmdetection
      1d6e9add
  2. 16 Apr, 2019 1 commit
  3. 13 Apr, 2019 2 commits
  4. 11 Apr, 2019 1 commit
  5. 10 Apr, 2019 1 commit
  6. 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
  7. 05 Apr, 2019 1 commit
  8. 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
  9. 02 Apr, 2019 1 commit
  10. 31 Mar, 2019 1 commit
  11. 27 Mar, 2019 1 commit
  12. 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
  13. 25 Mar, 2019 1 commit
  14. 13 Mar, 2019 1 commit
  15. 12 Mar, 2019 2 commits
  16. 11 Mar, 2019 1 commit
  17. 10 Mar, 2019 1 commit
  18. 08 Mar, 2019 2 commits
  19. 05 Mar, 2019 2 commits
  20. 01 Mar, 2019 1 commit
  21. 28 Feb, 2019 2 commits
  22. 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
  23. 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
  24. 22 Feb, 2019 1 commit
  25. 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
  26. 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