• pkulzc's avatar
    Merged commit includes the following changes: (#6932) · 9bbf8015
    pkulzc authored
    250447559  by Zhichao Lu:
    
        Update expected files format for Instance Segmentation challenge:
        - add fields ImageWidth, ImageHeight and store the values per prediction
        - as mask, store only encoded image and assume its size is ImageWidth x ImageHeight
    
    --
    250402780  by rathodv:
    
        Fix failing Mask R-CNN TPU convergence test.
    
        Cast second stage prediction tensors from bfloat16 to float32 to prevent errors in third target assignment (Mask Prediction) - Concat with different types bfloat16 and bfloat32 isn't allowed.
    
    --
    250300240  by Zhichao Lu:
    
        Addion Open Images Challenge 2019 object detection and instance segmentation
        support into Estimator framework.
    
    --
    249944839  by rathodv:
    
        Modify exporter.py to add multiclass score nodes in exported inference graphs.
    
    --
    249935201  by rathodv:
    
        Modify postprocess methods to preserve multiclass scores after non max suppression.
    
    --
    249878079  by Zhichao Lu:
    
        This CL slightly refactors some Object Detection helper functions for data creation, evaluation, and groundtruth providing.
    
        This will allow the eager+function custom loops to share code with the existing estimator training loops.
    
        Concretely we make the following changes:
        1. In input creation we separate dataset-creation into top-level helpers, and allow it to optionally accept a pre-constructed model directly instead of always creating a model from the config just for feature preprocessing.
    
        2. In coco evaluation we split the update_op creation into its own function, which the custom loops will call directly.
    
        3. In model_lib we move groundtruth providing/ datastructure munging into a helper function
    
        4. For now we put an escape hatch in `_summarize_target_assignment` when executing in tf v2.0 behavior because the summary apis used only work w/ tf 1.x
    
    --
    249673507  by rathodv:
    
        Use explicit casts instead of tf.to_float and tf.to_int32 to avoid warnings.
    
    --
    249656006  by Zhichao Lu:
    
        Add named "raw_keypoint_locations" node that corresponds with the "raw_box_locations" node.
    
    --
    249651674  by rathodv:
    
        Keep proposal boxes in float format. MatMulCropAndResize can handle the type even when feature themselves are bfloat16s.
    
    --
    249568633  by rathodv:
    
        Support q > 1 in class agnostic NMS.
        Break post_processing_test.py into 3 separate files to avoid linter errors.
    
    --
    249535530  by rathodv:
    
        Update some deprecated arguments to tf ops.
    
    --
    249368223  by rathodv:
    
        Modify MatMulCropAndResize to use MultiLevelRoIAlign method and move the tests to spatial_transform_ops.py module.
    
        This cl establishes that CropAndResize and RoIAlign are equivalent and only differ in the sampling point grid within the boxes. CropAndResize uses a uniform size x size point grid such that the corner points exactly overlap box corners, while RoiAlign divides boxes into size x size cells and uses their centers as sampling points. In this cl, we switch MatMulCropAndResize to use the MultiLevelRoIAlign implementation with `align_corner` option as MultiLevelRoIAlign implementation is more memory efficient on TPU when compared to the original MatMulCropAndResize.
    
    --
    249337338  by chowdhery:
    
        Add class-agnostic non-max-suppression in post_processing
    
    --
    249139196  by Zhichao Lu:
    
        Fix positional argument bug in export_tflite_ssd_graph
    
    --
    249120219  by Zhichao Lu:
    
        Add evaluator for computing precision limited to a given recall range.
    
    --
    249030593  by Zhichao Lu:
    
        Evaluation util to run segmentation and detection challenge evaluation.
    
    --
    248554358  by Zhichao Lu:
    
        This change contains the auxiliary changes required for TF 2.0 style training with eager+functions+dist strat loops, but not the loops themselves.
    
        It includes:
        - Updates to shape usage to support both tensorshape v1 and tensorshape v2
        - A fix to FreezableBatchNorm to not override the `training` arg in call when `None` was passed to the constructor (Not an issue in the estimator loops but it was in the custom loops)
        - Puts some constants in init_scope so they work in eager + functions
        - Makes learning rate schedules return a callable in eager mode (required so they update when the global_step changes)
        - Makes DetectionModel a tf.module so it tracks variables (e.g. ones nested in layers)
        - Removes some references to `op.name` for some losses and replaces it w/ explicit names
        - A small part of the change to allow the coco evaluation metrics to work in eager mode
    
    --
    248271226  by rathodv:
    
        Add MultiLevel RoIAlign op.
    
    --
    248229103  by rathodv:
    
        Add functions to 1. pad features maps 2. ravel 5-D indices
    
    --
    248206769  by rathodv:
    
        Add utilities needed to introduce RoI Align op.
    
    --
    248177733  by pengchong:
    
        Internal changes
    
    --
    247742582  by Zhichao Lu:
    
        Open Images Challenge 2019 instance segmentation metric: part 2
    
    --
    247525401  by Zhichao Lu:
    
        Update comments on max_class_per_detection.
    
    --
    247520753  by rathodv:
    
        Add multilevel crop and resize operation that builds on top of matmul_crop_and_resize.
    
    --
    247391600  by Zhichao Lu:
    
        Open Images Challenge 2019 instance segmentation metric
    
    --
    247325813  by chowdhery:
    
        Quantized MobileNet v2 SSD FPNLite config with depth multiplier 0.75
    
    --
    
    PiperOrigin-RevId: 250447559
    9bbf8015
shape_utils.py 16.3 KB