1. 13 Jul, 2018 1 commit
    • pkulzc's avatar
      Object detection Internal Changes. (#4757) · 70255908
      pkulzc authored
      * Merged commit includes the following changes:
      204316992  by Zhichao Lu:
      
          Update docs to prepare inputs
      
      --
      204309254  by Zhichao Lu:
      
          Update running_pets.md to use new binaries and correct a few things in running_on_cloud.md
      
      --
      204306734  by Zhichao Lu:
      
          Move old binaries into legacy folder and add deprecation notice.
      
      --
      204267757  by Zhichao Lu:
      
          Fixing a problem in VRD evaluation with missing ground truth annotations for
          images that do not contain objects from 62 groundtruth classes.
      
      --
      204167430  by Zhichao Lu:
      
          This fixes a flaky losses test failure.
      
      --
      203670721  by Zhichao Lu:
      
          Internal change.
      
      --
      203569388  by Zhichao Lu:
      
          Internal change
      
      203546580  by Zhichao Lu:
      
          * Expand TPU compatibility g3doc with config snippets
          * Change mscoco dataset path in sample configs to the sharded versions
      
      --
      203325694  by Zhichao Lu:
      
          Make merge_multiple_label_boxes work for model_main code path.
      
      --
      203305655  by Zhichao Lu:
      
          Remove the 1x1 conv layer before pooling in MobileNet-v1-PPN feature extractor.
      
      --
      203139608  by Zhichao Lu:
      
          - Support exponential_decay with burnin learning rate schedule.
          - Add the minimum learning rate option.
          - Make the exponential decay start only after the burnin steps.
      
      --
      203068703  by Zhichao Lu:
      
          Modify create_coco_tf_record.py to output sharded files.
      
      --
      203025308  by Zhichao Lu:
      
          Add an option to share the prediction tower in WeightSharedBoxPredictor.
      
      --
      203024942  by Zhichao Lu:
      
          Move ssd mobilenet v1 ppn configs to third party.
      
      --
      202901259  by Zhichao Lu:
      
          Delete obsolete ssd mobilenet v1 focal loss configs and update pets dataset path
      
      --
      202894154  by Zhichao Lu:
      
          Move all TPU compatible ssd mobilenet v1 coco14/pet configs to third party.
      
      --
      202861774  by Zhichao Lu:
      
          Move Retinanet (SSD + FPN + Shared box predictor) configs to third_party.
      
      --
      
      PiperOrigin-RevId: 204316992
      
      * Add original files back.
      70255908
  2. 13 Jun, 2018 1 commit
  3. 06 Jun, 2018 1 commit
    • Zhichao Lu's avatar
      Merged commit includes the following changes: · 9fce9c64
      Zhichao Lu authored
      199348852  by Zhichao Lu:
      
          Small typos fixes in VRD evaluation.
      
      --
      199315191  by Zhichao Lu:
      
          Change padding shapes when additional channels are available.
      
      --
      199309180  by Zhichao Lu:
      
          Adds minor fixes to the Object Detection API implementation.
      
      --
      199298605  by Zhichao Lu:
      
          Force num_readers to be 1 when only input file is not sharded.
      
      --
      199292952  by Zhichao Lu:
      
          Adds image-level labels parsing into TfExampleDetectionAndGTParser.
      
      --
      199259866  by Zhichao Lu:
      
          Visual Relationships Evaluation executable.
      
      --
      199208330  by Zhichao Lu:
      
          Infer train_config.batch_size as the effective batch size. Therefore we need to divide the effective batch size in trainer by train_config.replica_to_aggregate to get per worker batch size.
      
      --
      199207842  by Zhichao Lu:
      
          Internal change.
      
      --
      199204222  by Zhichao Lu:
      
          In case the image has more than three channels, we only take the first three channels for visualization.
      
      --
      199194388  by Zhichao Lu:
      
          Correcting protocols description: VOC 2007 -> VOC 2012.
      
      --
      199188290  by Zhichao Lu:
      
          Adds per-relationship APs and mAP computation to VRD evaluation.
      
      --
      199158801  by Zhichao Lu:
      
          If available, additional channels are merged with input image.
      
      --
      199099637  by Zhichao Lu:
      
          OpenImages Challenge metric support:
          -adding verified labels standard field for TFExample;
          -adding tfrecord creation functionality.
      
      --
      198957391  by Zhichao Lu:
      
          Allow tf record sharding when creating pets dataset.
      
      --
      198925184  by Zhichao Lu:
      
          Introduce moving average support for evaluation. Also adding the ability to override this configuration via config_util.
      
      --
      198918186  by Zhichao Lu:
      
          Handles the case where there are 0 box masks.
      
      --
      198809009  by Zhichao Lu:
      
          Plumb groundtruth weights into target assigner for Faster RCNN.
      
      --
      198759987  by Zhichao Lu:
      
          Fix object detection test broken by shape inference.
      
      --
      198668602  by Zhichao Lu:
      
          Adding a new input field in data_decoders/tf_example_decoder.py for storing additional channels.
      
      --
      198530013  by Zhichao Lu:
      
          An util for hierarchical expandion of boxes and labels of OID dataset.
      
      --
      198503124  by Zhichao Lu:
      
          Fix dimension mismatch error introduced by
          https://github.com/tensorflow/tensorflow/pull/18251, or cl/194031845.
          After above change, conv2d strictly checks for conv_dims + 2 == input_rank.
      
      --
      198445807  by Zhichao Lu:
      
          Enabling Object Detection Challenge 2018 metric in evaluator.py framework for
          running eval job.
          Renaming old OpenImages V2 metric.
      
      --
      198413950  by Zhichao Lu:
      
          Support generic configuration override using namespaced keys
      
          Useful for adding custom hyper-parameter tuning fields without having to add custom override methods to config_utils.py.
      
      --
      198106437  by Zhichao Lu:
      
          Enable fused batchnorm now that quantization is supported.
      
      --
      198048364  by Zhichao Lu:
      
          Add support for keypoints in tf sequence examples and some util ops.
      
      --
      198004736  by Zhichao Lu:
      
          Relax postprocessing unit tests that are based on assumption that tf.image.non_max_suppression are stable with respect to input.
      
      --
      197997513  by Zhichao Lu:
      
          More lenient validation for normalized box boundaries.
      
      --
      197940068  by Zhichao Lu:
      
          A couple of minor updates/fixes:
          - Updating input reader proto with option to use display_name when decoding data.
          - Updating visualization tool to specify whether using absolute or normalized box coordinates. Appropriate boxes will now appear in TB when using model_main.py
      
      --
      197920152  by Zhichao Lu:
      
          Add quantized training support in the new OD binaries and a config for SSD Mobilenet v1 quantized training that is TPU compatible.
      
      --
      197213563  by Zhichao Lu:
      
          Do not share batch_norm for classification and regression tower in weight shared box predictor.
      
      --
      197196757  by Zhichao Lu:
      
          Relax the box_predictor api to return box_prediction of shape [batch_size, num_anchors, code_size] in addition to [batch_size, num_anchors, (1|q), code_size].
      
      --
      196898361  by Zhichao Lu:
      
          Allow per-channel scalar value to pad input image with when using keep aspect ratio resizer (when pad_to_max_dimension=True).
      
          In Object Detection Pipeline, we pad image before normalization and this skews batch_norm statistics during training. The option to set per channel pad value lets us truly pad with zeros.
      
      --
      196592101  by Zhichao Lu:
      
          Fix bug regarding tfrecord shuffling in object_detection
      
      --
      196320138  by Zhichao Lu:
      
          Fix typo in exporting_models.md
      
      --
      
      PiperOrigin-RevId: 199348852
      9fce9c64
  4. 03 Apr, 2018 2 commits
  5. 22 Mar, 2018 1 commit
    • pkulzc's avatar
      Internal changes for object detection. (#3656) · 001a2a61
      pkulzc authored
      * Force cast of num_classes to integer
      
      PiperOrigin-RevId: 188335318
      
      * Updating config util to allow overwriting of cosine decay learning rates.
      
      PiperOrigin-RevId: 188338852
      
      * Make box_list_ops.py and box_list_ops_test.py work with C API enabled.
      
      The C API has improved shape inference over the original Python
      code. This causes some previously-working conds to fail. Switching to smart_cond fixes this.
      
      Another effect of the improved shape inference is that one of the
      failures tested gets caught earlier, so I modified the test to reflect
      this.
      
      PiperOrigin-RevId: 188409792
      
      * Fix parallel event file writing issue.
      
      Without this change, the event files might get corrupted when multiple evaluations are run in parallel.
      
      PiperOrigin-RevId: 188502560
      
      * Deprecating the boolean flag of from_detection_checkpoint.
      
      Replace with a string field fine_tune_checkpoint_type to train_config to provide extensibility. The fine_tune_checkpoint_type can currently take value of `detection`, `classification`, or others when the restore_map is overwritten.
      
      PiperOrigin-RevId: 188518685
      
      * Automated g4 rollback of changelist 188502560
      
      PiperOrigin-RevId: 188519969
      
      * Introducing eval metrics specs for Coco Mask metrics. This allows metrics to be computed in tensorflow using the tf.learn Estimator.
      
      PiperOrigin-RevId: 188528485
      
      * Minor fix to make object_detection/metrics/coco_evaluation.py python3 compatible.
      
      PiperOrigin-RevId: 188550683
      
      * Updating eval_util to handle eval_metric_ops from multiple `DetectionEvaluator`s.
      
      PiperOrigin-RevId: 188560474
      
      * Allow tensor input for new_height and new_width for resize_image.
      
      PiperOrigin-RevId: 188561908
      
      * Fix typo in fine_tune_checkpoint_type name in trainer.
      
      PiperOrigin-RevId: 188799033
      
      * Adding mobilenet feature extractor to object detection.
      
      PiperOrigin-RevId: 188916897
      
      * Allow label maps to optionally contain an explicit background class with id zero.
      
      PiperOrigin-RevId: 188951089
      
      * Fix boundary conditions in random_pad_to_aspect_ratio to ensure that min_scale is always less than max_scale.
      
      PiperOrigin-RevId: 189026868
      
      * Fallback on from_detection_checkpoint option if fine_tune_checkpoint_type isn't set.
      
      PiperOrigin-RevId: 189052833
      
      * Add proper names for learning rate schedules so we don't see cryptic names on tensorboard.
      
      PiperOrigin-RevId: 189069837
      
      * Enforcing that all datasets are batched (and then unbatched in the model) with batch_size >= 1.
      
      PiperOrigin-RevId: 189117178
      
      * Adding regularization to total loss returned from DetectionModel.loss().
      
      PiperOrigin-RevId: 189189123
      
      * Standardize the names of loss scalars (for SSD, Faster R-CNN and R-FCN) in both training and eval so they can be compared on tensorboard.
      
      Log localization and classification losses in evaluation.
      
      PiperOrigin-RevId: 189189940
      
      * Remove negative test from box list ops test.
      
      PiperOrigin-RevId: 189229327
      
      * Add an option to warmup learning rate in manual stepping schedule.
      
      PiperOrigin-RevId: 189361039
      
      * Replace tf.contrib.slim.tfexample_decoder.LookupTensor with object_detection.data_decoders.tf_example_decoder.LookupTensor.
      
      PiperOrigin-RevId: 189388556
      
      * Force regularization summary variables under specific family names.
      
      PiperOrigin-RevId: 189393190
      
      * Automated g4 rollback of changelist 188619139
      
      PiperOrigin-RevId: 189396001
      
      * Remove step 0 schedule since we do a hard check for it after cl/189361039
      
      PiperOrigin-RevId: 189396697
      
      * PiperOrigin-RevId: 189040463
      
      * PiperOrigin-RevId: 189059229
      
      * PiperOrigin-RevId: 189214402
      
      * Force regularization summary variables under specific family names.
      
      PiperOrigin-RevId: 189393190
      
      * Automated g4 rollback of changelist 188619139
      
      PiperOrigin-RevId: 189396001
      
      * Make slim python3 compatible.
      
      * Monir fixes.
      
      * Add TargetAssignment summaries in a separate family.
      
      PiperOrigin-RevId: 189407487
      
      * 1. Setting `family` keyword arg prepends the summary names twice with the same name. Directly adding family suffix to the name gets rid of this problem.
      2. Make sure the eval losses have the same name.
      
      PiperOrigin-RevId: 189434618
      
      * Minor fixes to make object detection tf 1.4 compatible.
      
      PiperOrigin-RevId: 189437519
      
      * Call the base of mobilenet_v1 feature extractor under the right arg scope and set batchnorm is_training based on the value passed in the constructor.
      
      PiperOrigin-RevId: 189460890
      
      * Automated g4 rollback of changelist 188409792
      
      PiperOrigin-RevId: 189463882
      
      * Update object detection syncing.
      
      PiperOrigin-RevId: 189601955
      
      * Add an option to warmup learning rate, hold it constant for a certain number of steps and cosine decay it.
      
      PiperOrigin-RevId: 189606169
      
      * Let the proposal feature extractor function in faster_rcnn meta architectures return the activations (end_points).
      
      PiperOrigin-RevId: 189619301
      
      * Fixed bug which caused masks to be mostly zeros (caused by detection_boxes being in absolute coordinates if scale_to_absolute=True.
      
      PiperOrigin-RevId: 189641294
      
      * Open sourcing Mobilenetv2 + SSDLite.
      
      PiperOrigin-RevId: 189654520
      
      * Remove unused files.
      001a2a61
  6. 27 Feb, 2018 1 commit
    • Zhichao Lu's avatar
      Merged commit includes the following changes: · 78d5f8f8
      Zhichao Lu authored
      187187978  by Zhichao Lu:
      
          Only updating hyperparameters if they have non-null values.
      
      --
      187097690  by Zhichao Lu:
      
          Rewrite some conditions a bit more clearly.
      
      --
      187085190  by Zhichao Lu:
      
          More informative error message.
      
      --
      186935376  by Zhichao Lu:
      
          Added option to evaluator.evaluate to use custom evaluator objects.
      
      --
      186808249  by Zhichao Lu:
      
          Fix documentation re: number of stages.
      
      --
      186775014  by Zhichao Lu:
      
          Change anchor generator interface to return a list of BoxLists containing anchors for different feature map layers.
      
      --
      186729028  by Zhichao Lu:
      
          Minor fixes to object detection.
      
      --
      186723716  by Zhichao Lu:
      
          Fix tf_example_decoder.py initailization issue.
      
      --
      186668505  by Zhichao Lu:
      
          Remove unused import.
      
      --
      186475361  by Zhichao Lu:
      
          Update the box predictor interface to return list of predictions - one from each feature map - instead of stacking them into one large tensor.
      
      --
      186410844  by Zhichao Lu:
      
          Fix PythonPath Dependencies.
      
      --
      186365384  by Zhichao Lu:
      
          Made some of the functions in exporter public so they can be reused.
      
      --
      186341438  by Zhichao Lu:
      
          Re-introducing check that label-map-path must be a valid (non-empty) string prior to overwriting pipeline config.
      
      --
      186036984  by Zhichao Lu:
      
          Adding default hyperparameters and allowing for overriding them via flags.
      
      --
      186026006  by Zhichao Lu:
      
          Strip `eval_` prefix from name argument give to TPUEstimator.evaluate since it adds the same prefix internally.
      
      --
      186016042  by Zhichao Lu:
      
          Add an option to evaluate models on training data.
      
      --
      185944986  by Zhichao Lu:
      
          let _update_label_map_path go through even if the path is empty
      
      --
      185860781  by Zhichao Lu:
      
          Add random normal initializer option to hyperparams builder.
      
          Scale the regression losses outside of the box encoder by adjusting huber loss delta and regression loss weight.
      
      --
      185846325  by Zhichao Lu:
      
          Add an option to normalize localization loss by the code size(number of box coordinates) in SSD Meta architecture.
      
      --
      185761217  by Zhichao Lu:
      
          Change multiscale_grid_anchor_generator to return anchors in normalized coordinates by default and add option to configure it.
      
          In SSD meta architecture, TargetAssigner operates in normalized coordinate space (i.e, groundtruth boxes are in normalized coordinates) hence we need the option to generate anchors in normalized coordinates.
      
      --
      185747733  by Zhichao Lu:
      
          Change the smooth L1 localization implementationt to use tf.losses.huber_loss and expose the delta parameter in the proto.
      
      --
      185715309  by Zhichao Lu:
      
          Obviates the need for prepadding on mobilenet v1 and v2 for fully convolutional models.
      
      --
      185685695  by Zhichao Lu:
      
          Fix manual stepping schedule to return first rate when there are no boundaries
      
      --
      185621650  by Zhichao Lu:
      
          Added target assigner proto for configuring negative class weights.
      
      --
      
      PiperOrigin-RevId: 187187978
      78d5f8f8
  7. 10 Feb, 2018 1 commit
    • Zhichao Lu's avatar
      Merged commit includes the following changes: · 1efe98bb
      Zhichao Lu authored
      185215255  by Zhichao Lu:
      
          Stop populating image/object/class/text field when generating COCO tf record.
      
      --
      185213306  by Zhichao Lu:
      
          Use the params batch size and not the one from train_config in input_fn
      
      --
      185209081  by Zhichao Lu:
      
          Handle the case when there are no ground-truth masks for an image.
      
      --
      185195531  by Zhichao Lu:
      
          Remove unstack and stack operations on features from third_party/object_detection/model.py.
      
      --
      185195017  by Zhichao Lu:
      
          Matrix multiplication based gather op implementation.
      
      --
      185187744  by Zhichao Lu:
      
          Fix eval_util minor issue.
      
      --
      185098733  by Zhichao Lu:
      
          Internal change
      
      185076656  by Zhichao Lu:
      
          Increment the amount of boxes for coco17.
      
      --
      185074199  by Zhichao Lu:
      
          Add config for SSD Resnet50 v1 with FPN.
      
      --
      185060199  by Zhichao Lu:
      
          Fix a bug in clear_detections.
          This method set detection_keys to an empty dictionary instead of an empty set. I've refactored so that this ...
      1efe98bb
  8. 02 Feb, 2018 1 commit
  9. 01 Feb, 2018 1 commit
    • Zhichao Lu's avatar
      Merged commit includes the following changes: · 7a9934df
      Zhichao Lu authored
      184048729  by Zhichao Lu:
      
          Modify target_assigner so that it creates regression targets taking keypoints into account.
      
      --
      184027183  by Zhichao Lu:
      
          Resnet V1 FPN based feature extractors for SSD meta architecture in Object Detection V2 API.
      
      --
      184004730  by Zhichao Lu:
      
          Expose a lever to override the configured mask_type.
      
      --
      183933113  by Zhichao Lu:
      
          Weight shared convolutional box predictor as described in https://arxiv.org/abs/1708.02002
      
      --
      183929669  by Zhichao Lu:
      
          Expanding box list operations for future data augmentations.
      
      --
      183916792  by Zhichao Lu:
      
          Fix unrecognized assertion function in tests.
      
      --
      183906851  by Zhichao Lu:
      
          - Change ssd meta architecture to use regression weights to compute loss normalizer.
      
      --
      183871003  by Zhichao Lu:
      
          Fix config_util_test wrong dependency.
      
      --
      183782120  by Zhichao Lu:
      
          Add __init__ file to third_party directories.
      
      --
      183779109  by Zhichao Lu:
      
          Setup regular version s...
      7a9934df
  10. 28 Oct, 2017 1 commit
  11. 21 Sep, 2017 1 commit
  12. 28 Jun, 2017 1 commit
  13. 15 Jun, 2017 1 commit