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
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Please register or sign in to comment