• Francisco Massa's avatar
    Add Faster R-CNN and Mask R-CNN (#898) · ccd1b27d
    Francisco Massa authored
    * [Remove] Use stride in 1x1 in resnet
    
    This is temporary
    
    * Move files to torchvision
    
    Inference works
    
    * Now seems to give same results
    
    Was using the wrong number of total iterations in the end...
    
    * Distributed evaluation seems to work
    
    * Factor out transforms into its own file
    
    * Enabling horizontal flips
    
    * MultiStepLR and preparing for launches
    
    * Add warmup
    
    * Clip gt boxes to images
    
    Seems to be crucial to avoid divergence. Also reduces the losses over different processes for better logging
    
    * Single-GPU batch-size 1 of CocoEvaluator works
    
    * Multi-GPU CocoEvaluator works
    
    Gives the exact same results as the other one, and also supports batch size > 1
    
    * Silence prints from pycocotools
    
    * Commenting unneeded code for run
    
    * Fixes
    
    * Improvements and cleanups
    
    * Remove scales from Pooler
    
    It was not a free parameter, and depended only on the feature map dimensions
    
    * Cleanups
    
    * More cleanups
    
    * Add misc ops and totally remove maskrcnn_benchmark
    
    * nit
    
    * Move Pooler to ops
    
    * Make FPN slightly more generic
    
    * Minor improvements or FPN
    
    * Move FPN to ops
    
    * Move functions to utils
    
    * Lint fixes
    
    * More lint
    
    * Minor cleanups
    
    * Add FasterRCNN
    
    * Remove modifications to resnet
    
    * Fixes for Python2
    
    * More lint fixes
    
    * Add aspect ratio grouping
    
    * Move functions around
    
    * Make evaluation use all images for mAP, even those without annotations
    
    * Bugfix with DDP introduced in last commit
    
    * [Check] Remove category mapping
    
    * Lint
    
    * Make GroupedBatchSampler prioritize largest clusters in the end of iteration
    
    * Bugfix for selecting the iou_types during evaluation
    
    Also switch to using the torchvision normalization now on, given that we are using torchvision base models
    
    * More lint
    
    * Add barrier after init_process_group
    
    Better be safe than sorry
    
    * Make evaluation only use one CPU thread per process
    
    When doing multi-gpu evaluation, paste_masks_in_image is multithreaded and throttles evaluation altogether. Also change default for aspect ratio group to match Detectron
    
    * Fix bug in GroupedBatchSampler
    
    After the first epoch, the number of batch elements could be larger than batch_size, because they got accumulated from the previous iteration. Fix this and also rename some variables for more clarity
    
    * Start adding KeypointRCNN
    
    Currently runs and perform inference, need to do full training
    
    * Remove use of opencv in keypoint inference
    
    PyTorch 1.1 adds support for bicubic interpolation which matches opencv (except for empty boxes, where one of the dimensions is 1, but that's fine)
    
    * Remove Masker
    
    Towards having mask postprocessing done inside the model
    
    * Bugfixes in previous change plus cleanups
    
    * Preparing to run keypoint training
    
    * Zero initialize bias for mask heads
    
    * Minor improvements on print
    
    * Towards moving resize to model
    
    Also remove class mapping specific to COCO
    
    * Remove zero init in bias for mask head
    
    Checking if it decreased accuracy
    
    * [CHECK] See if this change brings back expected accuracy
    
    * Cleanups on model and training script
    
    * Remove BatchCollator
    
    * Some cleanups in coco_eval
    
    * Move postprocess to transform
    
    * Revert back scaling and start adding conversion to coco api
    
    The scaling didn't seem to matter
    
    * Use decorator instead of context manager in evaluate
    
    * Move training and evaluation functions to a separate file
    
    Also adds support for obtaining a coco API object from our dataset
    
    * Remove unused code
    
    * Update location of lr_scheduler
    
    Its behavior has changed in PyTorch 1.1
    
    * Remove debug code
    
    * Typo
    
    * Bugfix
    
    * Move image normalization to model
    
    * Remove legacy tensor constructors
    
    Also move away from Int and instead use int64
    
    * Bugfix in MultiscaleRoiAlign
    
    * Move transforms to its own file
    
    * Add missing file
    
    * Lint
    
    * More lint
    
    * Add some basic test for detection models
    
    * More lint
    ccd1b27d
boxes.py 3.92 KB