1. 24 Jul, 2018 1 commit
    • SRIRAM VETURI's avatar
      Update learning_schedules.py · ef84dca1
      SRIRAM VETURI authored
      The following error doesn't occur with the above change in code.
      
      Error: Argument must be a dense tensor: range(0, 3) - got shape [3], but wanted []
      
      The range function on the vairable 'num_boundaries' should be a list! Please merge this request!
      ef84dca1
  2. 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
  3. 02 Jul, 2018 1 commit
    • pkulzc's avatar
      Open Images Challenge 2018 tools, minor fixes and refactors. (#4661) · 32e7d660
      pkulzc authored
      * Merged commit includes the following changes:
      202804536  by Zhichao Lu:
      
          Return tf.data.Dataset from input_fn that goes into the estimator and use PER_HOST_V2 option for tpu input pipeline config.
      
          This change shaves off 100ms per step resulting in 25 minutes of total reduced training time for ssd mobilenet v1 (15k steps to convergence).
      
      --
      202769340  by Zhichao Lu:
      
          Adding as_matrix() transformation for image-level labels.
      
      --
      202768721  by Zhichao Lu:
      
          Challenge evaluation protocol modification: adding labelmaps creation.
      
      --
      202750966  by Zhichao Lu:
      
          Add the explicit names to two output nodes.
      
      --
      202732783  by Zhichao Lu:
      
          Enforcing that batch size is 1 for evaluation, and no original images are retained during evaluation when use_tpu=False (to avoid dynamic shapes).
      
      --
      202425430  by Zhichao Lu:
      
          Refactor input pipeline to improve performance.
      
      --
      202406389  by Zhichao Lu:
      
          Only check the validity of `warmup_learning_rate` if it will be used.
      
      --
      202330450  by Zhichao Lu:
      
          Adding the description of the flag input_image_label_annotations_csv to add
            image-level labels to tf.Example.
      
      --
      202029012  by Zhichao Lu:
      
          Enabling displaying relationship name in the final metrics output.
      
      --
      202024010  by Zhichao Lu:
      
          Update to the public README.
      
      --
      201999677  by Zhichao Lu:
      
          Fixing the way negative labels are handled in VRD evaluation.
      
      --
      201962313  by Zhichao Lu:
      
          Fix a bug in resize_to_range.
      
      --
      201808488  by Zhichao Lu:
      
          Update ssd_inception_v2_pets.config to use right filename of pets dataset tf records.
      
      --
      201779225  by Zhichao Lu:
      
          Update object detection API installation doc
      
      --
      201766518  by Zhichao Lu:
      
          Add shell script to create pycocotools package for CMLE.
      
      --
      201722377  by Zhichao Lu:
      
          Removes verified_labels field and uses groundtruth_image_classes field instead.
      
      --
      201616819  by Zhichao Lu:
      
          Disable eval_on_tpu since eval_metrics is not setup to execute on TPU.
          Do not use run_config.task_type to switch tpu mode for EVAL,
          since that won't work in unit test.
          Expand unit test to verify that the same instantiation of the Estimator can independently disable eval on TPU whereas training is enabled on TPU.
      
      --
      201524716  by Zhichao Lu:
      
          Disable export model to TPU, inference is not compatible with TPU.
          Add GOOGLE_INTERNAL support in object detection copy.bara.sky
      
      --
      201453347  by Zhichao Lu:
      
          Fixing bug when evaluating the quantized model.
      
      --
      200795826  by Zhichao Lu:
      
          Fixing parsing bug: image-level labels are parsed as tuples instead of numpy
          array.
      
      --
      200746134  by Zhichao Lu:
      
          Adding image_class_text and image_class_label fields into tf_example_decoder.py
      
      --
      200743003  by Zhichao Lu:
      
          Changes to model_main.py and model_tpu_main to enable training and continuous eval.
      
      --
      200736324  by Zhichao Lu:
      
          Replace deprecated squeeze_dims argument.
      
      --
      200730072  by Zhichao Lu:
      
          Make detections only during predict and eval mode while creating model function
      
      --
      200729699  by Zhichao Lu:
      
          Minor correction to internal documentation (definition of Huber loss)
      
      --
      200727142  by Zhichao Lu:
      
          Add command line parsing as a set of flags using argparse and add header to the
          resulting file.
      
      --
      200726169  by Zhichao Lu:
      
          A tutorial on running evaluation for the Open Images Challenge 2018.
      
      --
      200665093  by Zhichao Lu:
      
          Cleanup on variables_helper_test.py.
      
      --
      200652145  by Zhichao Lu:
      
          Add an option to write (non-frozen) graph when exporting inference graph.
      
      --
      200573810  by Zhichao Lu:
      
          Update ssd_mobilenet_v1_coco and ssd_inception_v2_coco download links to point to a newer version.
      
      --
      200498014  by Zhichao Lu:
      
          Add test for groundtruth mask resizing.
      
      --
      200453245  by Zhichao Lu:
      
          Cleaning up exporting_models.md along with exporting scripts
      
      --
      200311747  by Zhichao Lu:
      
          Resize groundtruth mask to match the size of the original image.
      
      --
      200287269  by Zhichao Lu:
      
          Having a option to use custom MatMul based crop_and_resize op as an alternate to the TF op in Faster-RCNN
      
      --
      200127859  by Zhichao Lu:
      
          Updating the instructions to run locally with new binary. Also updating pets configs since file path naming has changed.
      
      --
      200127044  by Zhichao Lu:
      
          A simpler evaluation util to compute Open Images Challenge
          2018 metric (object detection track).
      
      --
      200124019  by Zhichao Lu:
      
          Freshening up configuring_jobs.md
      
      --
      200086825  by Zhichao Lu:
      
          Make merge_multiple_label_boxes work for ssd model.
      
      --
      199843258  by Zhichao Lu:
      
          Allows inconsistent feature channels to be compatible with WeightSharedConvolutionalBoxPredictor.
      
      --
      199676082  by Zhichao Lu:
      
          Enable an override for `InputReader.shuffle` for object detection pipelines.
      
      --
      199599212  by Zhichao Lu:
      
          Markdown fixes.
      
      --
      199535432  by Zhichao Lu:
      
          Pass num_additional_channels to tf.example decoder in predict_input_fn.
      
      --
      199399439  by Zhichao Lu:
      
          Adding `num_additional_channels` field to specify how many additional channels to use in the model.
      
      --
      
      PiperOrigin-RevId: 202804536
      
      * Add original model builder and docs back.
      32e7d660
  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. 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
  6. 14 Feb, 2018 1 commit
  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
  8. 27 Oct, 2017 1 commit
  9. 21 Sep, 2017 1 commit
  10. 15 Jun, 2017 1 commit