1. 03 May, 2018 1 commit
    • Zhichao Lu's avatar
      Merged commit includes the following changes: · 63054210
      Zhichao Lu authored
      195269567  by Zhichao Lu:
      
          Removing image summaries during train mode.
      
      --
      195147413  by Zhichao Lu:
      
          SSDLite config for mobilenet v2.
      
      --
      194883585  by Zhichao Lu:
      
          Simplify TPU compatible nearest neighbor upsampling using reshape and broadcasting.
      
      --
      194851009  by Zhichao Lu:
      
          Include ava v2.1 detection models in model zoo.
      
      --
      194292198  by Zhichao Lu:
      
          Add option to evaluate any checkpoint (without requiring write access to that directory and overwriting any existing logs there).
      
      --
      194122420  by Zhichao Lu:
      
          num_gt_boxes_per_image and num_det_boxes_per_image value incorrect.
          Should be not the expand dim.
      
      --
      193974479  by Zhichao Lu:
      
          Fixing a bug in the coco evaluator.
      
      --
      193959861  by Zhichao Lu:
      
          Read the default batch size from config file.
      
      --
      193737238  by Zhichao Lu:
      
          Fix data augmentation functions.
      
      --
      193576336  by Zhichao Lu:
      
          Add support for training keypoints.
      
      --
      193409179  by Zhichao Lu:
      
          Update protobuf requirements to 3+ in installation docs.
      
      --
      193382651  by Zhichao Lu:
      
          Updating coco evaluation metrics to allow for a batch of image info, rather than a single image.
      
      --
      193244778  by Zhichao Lu:
      
          Remove deprecated batch_norm_trainable field from ssd mobilenet v2 config
      
      --
      193228972  by Zhichao Lu:
      
          Make sure the final layers are also resized proportional to conv_depth_ratio.
      
      --
      193204364  by Zhichao Lu:
      
          Do not add batch norm parameters to final conv2d ops that predict boxes encodings and class scores in weight shared conv box predictor.
      
          This allows us to set proper bias and force initial predictions to be background when using focal loss.
      
      --
      193137342  by Zhichao Lu:
      
          Add a util function to visualize value histogram as a tf.summary.image.
      
      --
      193119411  by Zhichao Lu:
      
          Adding support for reading in logits as groundtruth labels and applying an optional temperature (scaling) before softmax in support of distillation.
      
      --
      193087707  by Zhichao Lu:
      
          Post-process now works again in train mode.
      
      --
      193067658  by Zhichao Lu:
      
          fix flakiness in testSSDRandomCropWithMultiClassScores due to randomness.
      
      --
      192922089  by Zhichao Lu:
      
          Add option to set dropout for classification net in weight shared box predictor.
      
      --
      192850747  by Zhichao Lu:
      
          Remove inaccurate caveat from proto file.
      
      --
      192837477  by Zhichao Lu:
      
          Extend to accept different ratios of conv channels.
      
      --
      192813444  by Zhichao Lu:
      
          Adding option for one_box_for_all_classes to the box_predictor
      
      --
      192624207  by Zhichao Lu:
      
          Update to trainer to allow for reading multiclass scores
      
      --
      192583425  by Zhichao Lu:
      
          Contains implementation of Visual Relations Detection evaluation metric (per
          image evaluation).
      
      --
      192529600  by Zhichao Lu:
      
          Modify the ssd meta arch to allow the option of not adding an implicit background class.
      
      --
      192512429  by Zhichao Lu:
      
          Refactor model_tpu_main.py files and move continuous eval loop into model_lib.py
      
      --
      192494267  by Zhichao Lu:
      
          Update create_pascal_tf_record.py and create_pet_tf_record.py
      
      --
      192485456  by Zhichao Lu:
      
          Enforcing that all eval metric ops have valid python strings.
      
      --
      192472546  by Zhichao Lu:
      
          Set regularize_depthwise to true in mobilenet_v1_argscope.
      
      --
      192421843  by Zhichao Lu:
      
          Refactoring of Mask-RCNN to put all mask prediction code in third stage.
      
      --
      192320460  by Zhichao Lu:
      
          Returning eval_on_train_input_fn from create_estimator_and_inputs(), rather than using train_input_fn in EVAL mode (which will still have data augmentation).
      
      --
      192226678  by Zhichao Lu:
      
          Access TPUEstimator and CrossShardOptimizer from tf namesspace.
      
      --
      192195514  by Zhichao Lu:
      
          Fix test that was flaky due to randomness
      
      --
      192166224  by Zhichao Lu:
      
          Minor fixes to match git repo.
      
      --
      192147130  by Zhichao Lu:
      
          use shape utils for assertion in feature extractor.
      
      --
      192132440  by Zhichao Lu:
      
          Class agnostic masks for mask_rcnn
      
      --
      192006190  by Zhichao Lu:
      
          Add learning rate summary in EVAL mode in model.py
      
      --
      192004845  by Zhichao Lu:
      
          Migrating away from Experiment class, as it is now deprecated. Also, refactoring into a separate model library and binaries.
      
      --
      191957195  by Zhichao Lu:
      
          Add classification_loss and localiztion_loss metrics for TPU jobs.
      
      --
      191932855  by Zhichao Lu:
      
          Add an option to skip the last striding in mobilenet. The modified network has nominal output stride 16 instead of 32.
      
      --
      191787921  by Zhichao Lu:
      
          Add option to override base feature extractor hyperparams in SSD models. This would allow us to use the same set of hyperparams for the complete feature extractor (base + new layers) if desired.
      
      --
      191743097  by Zhichao Lu:
      
          Adding an attribute to SSD model to indicate which fields in prediction dictionary have a batch dimension. This will be useful for future video models.
      
      --
      191668425  by Zhichao Lu:
      
          Internal change.
      
      --
      191649512  by Zhichao Lu:
      
          Introduce two parameters in ssd.proto - freeze_batchnorm, inplace_batchnorm_update - and set up slim arg_scopes in ssd_meta_arch.py such that applies it to all batchnorm ops in the predict() method.
      
          This centralizes the control of freezing and doing inplace batchnorm updates.
      
      --
      191620303  by Zhichao Lu:
      
          Modifications to the preprocessor to support multiclass scores
      
      --
      
      PiperOrigin-RevId: 195269567
      63054210
  2. 13 Apr, 2018 7 commits
  3. 03 Apr, 2018 6 commits
  4. 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
  5. 08 Mar, 2018 1 commit
  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 Zhich...
      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 method and the constructor use the same code path.
      
      --
      185031359  by Zhichao Lu:
      
          Eval TPU trained models continuously.
      
      --
      185016591  by Zhichao Lu:
      
          Use TPUEstimatorSpec for TPU
      
      --
      185013651  by Zhichao Lu:
      
          Add PreprocessorCache to record and duplicate augmentations.
      
      --
      184921763  by Zhichao Lu:
      
          Minor fixes for object detection.
      
      --
      184920610  by Zhichao Lu:
      
          Adds a model builder test for "embedded_ssd_mobilenet_v1" feature extractor.
      
      --
      184919284  by Zhichao Lu:
      
          Added unit tests for TPU, with optional training / eval.
      
      --
      184915910  by Zhichao Lu:
      
          Update third_party g3 doc with Mask RCNN detection models.
      
      --
      184914085  by Zhichao Lu:
      
          Slight change to WeightSharedConvolutionalBoxPredictor implementation to make things match more closely with RetinaNet.  Specifically we now construct the box encoding and class predictor towers separately rather than having them share weights until penultimate layer.
      
      --
      184913786  by Zhichao Lu:
      
          Plumbs SSD Resnet V1 with FPN models into model builder.
      
      --
      184910030  by Zhichao Lu:
      
          Add coco metrics to evaluator.
      
      --
      184897758  by Zhichao Lu:
      
          Merge changes from github.
      
      --
      184888736  by Zhichao Lu:
      
          Ensure groundtruth_weights are always 1-D.
      
      --
      184887256  by Zhichao Lu:
      
          Introduce an option to add summaries in the model so it can be turned off when necessary.
      
      --
      184865559  by Zhichao Lu:
      
          Updating inputs so that a dictionary of tensors is returned from input_fn. Moving unbatch/unpad to model.py.
          Also removing source_id key from features dictionary, and replacing with an integer hash.
      
      --
      184859205  by Zhichao Lu:
      
          This CL is trying to hide those differences by making the default settings work with the public code.
      
      --
      184769779  by Zhichao Lu:
      
          Pass groundtruth weights into ssd meta architecture all the way to target assigner.
      
          This will allow training ssd models with padded groundtruth tensors.
      
      --
      184767117  by Zhichao Lu:
      
          * Add `params` arg to make all input fns work with TPUEstimator
          * Add --master
          * Output eval results
      
      --
      184766244  by Zhichao Lu:
      
          Update create_coco_tf_record to include category indices
      
      --
      184752937  by Zhichao Lu:
      
          Create a third_party version of TPU compatible mobilenet_v2_focal_loss coco config.
      
      --
      184750174  by Zhichao Lu:
      
          A few small fixes for multiscale anchor generator and a test.
      
      --
      184746581  by Zhichao Lu:
      
          Update jupyter notebook to show mask if provided by model.
      
      --
      184728646  by Zhichao Lu:
      
          Adding a few more tests to make sure decoding with/without label maps performs as expected.
      
      --
      184624154  by Zhichao Lu:
      
          Add an object detection binary for TPU.
      
      --
      184622118  by Zhichao Lu:
      
          Batch, transform, and unbatch in the tflearn interface.
      
      --
      184595064  by Zhichao Lu:
      
          Add support for training grayscale models.
      
      --
      184532026  by Zhichao Lu:
      
          Change dataset_builder.build to perform optional batching using tf.data.Dataset API
      
      --
      184330239  by Zhichao Lu:
      
          Add augment_input_data and transform_input_data helper functions to third_party/tensorflow_models/object_detection/inputs.py
      
      --
      184328681  by Zhichao Lu:
      
          Use an internal rgb to gray method that can be quantized.
      
      --
      184327909  by Zhichao Lu:
      
          Helper function to return padding shapes to use with Dataset.padded_batch.
      
      --
      184326291  by Zhichao Lu:
      
          Added decode_func for specialized decoding.
      
      --
      184314676  by Zhichao Lu:
      
          Add unstack_batch method to inputs.py.
      
          This will enable us to convert batched tensors to lists of tensors. This is compatible with OD API that consumes groundtruth batch as a list of tensors.
      
      --
      184281269  by Zhichao Lu:
      
          Internal test target changes.
      
      --
      184192851  by Zhichao Lu:
      
          Adding `Estimator` interface for object detection.
      
      --
      184187885  by Zhichao Lu:
      
          Add config_util functions to help with input pipeline.
      
          1. function to return expected shapes from the resizer config
          2. function to extract image_resizer_config from model_config.
      
      --
      184139892  by Zhichao Lu:
      
          Adding support for depthwise SSD (ssd-lite) and depthwise box predictions.
      
      --
      184089891  by Zhichao Lu:
      
          Fix third_party faster rcnn resnet101 coco config.
      
      --
      184083378  by Zhichao Lu:
      
          In the case when there is no object/weights field in tf.Example proto, return a default weight of 1.0 for all boxes.
      
      --
      
      PiperOrigin-RevId: 185215255
      1efe98bb