Refactor object detection box predictors and fix some issues with model_main. (#4965)
* Merged commit includes the following changes:
206852642 by Zhichao Lu:
Build the balanced_positive_negative_sampler in the model builder for FasterRCNN. Also adds an option to use the static implementation of the sampler.
--
206803260 by Zhichao Lu:
Fixes a misplaced argument in resnet fpn feature extractor.
--
206682736 by Zhichao Lu:
This CL modifies the SSD meta architecture to support both Slim-based and Keras-based box predictors, and begins preparation for Keras box predictor support in the other meta architectures.
Concretely, this CL adds a new `KerasBoxPredictor` base class and makes the meta architectures appropriately call whichever box predictors they are using.
We can switch the non-ssd meta architectures to fully support Keras box predictors once the Keras Convolutional Box Predictor CL is submitted.
--
206669634 by Zhichao Lu:
Adds an alternate method for balanced positive negative sampler using static shapes.
--
206643278 by Zhichao Lu:
This CL adds a Keras layer hyperparameter configuration object to the hyperparams_builder.
It automatically converts from Slim layer hyperparameter configs to Keras layer hyperparameters. Namely, it:
- Builds Keras initializers/regularizers instead of Slim ones
- sets weights_regularizer/initializer to kernel_regularizer/initializer
- converts batchnorm decay to momentum
- converts Slim l2 regularizer weights to the equivalent Keras l2 weights
This will be used in the conversion of object detection feature extractors & box predictors to newer Tensorflow APIs.
--
206611681 by Zhichao Lu:
Internal changes.
--
206591619 by Zhichao Lu:
Clip the to shape when the input tensors are larger than the expected padded static shape
--
206517644 by Zhichao Lu:
Make MultiscaleGridAnchorGenerator more consistent with MultipleGridAnchorGenerator.
--
206415624 by Zhichao Lu:
Make the hardcoded feature pyramid network (FPN) levels configurable for both SSD
Resnet and SSD Mobilenet.
--
206398204 by Zhichao Lu:
This CL modifies the SSD meta architecture to support both Slim-based and Keras-based feature extractors.
This allows us to begin the conversion of object detection to newer Tensorflow APIs.
--
206213448 by Zhichao Lu:
Adding a method to compute the expected classification loss by background/foreground weighting.
--
206204232 by Zhichao Lu:
Adding the keypoint head to the Mask RCNN pipeline.
--
206200352 by Zhichao Lu:
- Create Faster R-CNN target assigner in the model builder. This allows configuring matchers in Target assigner to use TPU compatible ops (tf.gather in this case) without any change in meta architecture.
- As a +ve side effect of the refactoring, we can now re-use a single target assigner for all of second stage heads in Faster R-CNN.
--
206178206 by Zhichao Lu:
Force ssd feature extractor builder to use keyword arguments so values won't be passed to wrong arguments.
--
206168297 by Zhichao Lu:
Updating exporter to use freeze_graph.freeze_graph_with_def_protos rather than a homegrown version.
--
206080748 by Zhichao Lu:
Merge external contributions.
--
206074460 by Zhichao Lu:
Update to preprocessor to apply temperature and softmax to the multiclass scores on read.
--
205960802 by Zhichao Lu:
Fixing a bug in hierarchical label expansion script.
--
205944686 by Zhichao Lu:
Update exporter to support exporting quantized model.
--
205912529 by Zhichao Lu:
Add a two stage matcher to allow for thresholding by one criteria and then argmaxing on the other.
--
205909017 by Zhichao Lu:
Add test for grayscale image_resizer
--
205892801 by Zhichao Lu:
Add flag to decide whether to apply batch norm to conv layers of weight shared box predictor.
--
205824449 by Zhichao Lu:
make sure that by default mask rcnn box predictor predicts 2 stages.
--
205730139 by Zhichao Lu:
Updating warning message to be more explicit about variable size mismatch.
--
205696992 by Zhichao Lu:
Remove utils/ops.py's dependency on core/box_list_ops.py. This will allow re-using TPU compatible ops from utils/ops.py in core/box_list_ops.py.
--
205696867 by Zhichao Lu:
Refactoring mask rcnn predictor so have each head in a separate file.
This CL lets us to add new heads more easily in the future to mask rcnn.
--
205492073 by Zhichao Lu:
Refactor R-FCN box predictor to be TPU compliant.
- Change utils/ops.py:position_sensitive_crop_regions to operate on single image and set of boxes without `box_ind`
- Add a batch version that operations on batches of images and batches of boxes.
- Refactor R-FCN box predictor to use the batched version of position sensitive crop regions.
--
205453567 by Zhichao Lu:
Fix bug that cannot export inference graph when write_inference_graph flag is True.
--
205316039 by Zhichao Lu:
Changing input tensor name.
--
205256307 by Zhichao Lu:
Fix model zoo links for quantized model.
--
205164432 by Zhichao Lu:
Fixes eval error when label map contains non-ascii characters.
--
205129842 by Zhichao Lu:
Adds a option to clip the anchors to the window size without filtering the overlapped boxes in Faster-RCNN
--
205094863 by Zhichao Lu:
Update to label map util to allow the option of adding a background class and fill in gaps in the label map. Useful for using multiclass scores which require a complete label map with explicit background label.
--
204989032 by Zhichao Lu:
Add tf.prof support to exporter.
--
204825267 by Zhichao Lu:
Modify mask rcnn box predictor tests for TPU compatibility.
--
204778749 by Zhichao Lu:
Remove score filtering from postprocessing.py and rely on filtering logic in tf.image.non_max_suppression
--
204775818 by Zhichao Lu:
Python3 fixes for object_detection.
--
204745920 by Zhichao Lu:
Object Detection Dataset visualization tool (documentation).
--
204686993 by Zhichao Lu:
Internal changes.
--
204559667 by Zhichao Lu:
Refactor box_predictor.py into multiple files.
The abstract base class remains in the object_detection/core, The other classes have moved to a separate file each in object_detection/predictors
--
204552847 by Zhichao Lu:
Update blog post link.
--
204508028 by Zhichao Lu:
Bump down the batch size to 1024 to be a bit more tolerant to OOM and double the number of iterations. This job still converges to 20.5 mAP in 3 hours.
--
PiperOrigin-RevId: 206852642
* Add original post-processing back.
Showing
Please register or sign in to comment