1. 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
  2. 11 May, 2018 1 commit
    • Zhichao Lu's avatar
      Merged commit includes the following changes: · 324d6dc3
      Zhichao Lu authored
      196161788  by Zhichao Lu:
      
          Add eval_on_train_steps parameter.
      
          Since the number of samples in train dataset is usually different to the number of samples in the eval dataset.
      
      --
      196151742  by Zhichao Lu:
      
          Add an optional random sampling process for SSD meta arch and update mean stddev coder to use default std dev when corresponding tensor is not added to boxlist field.
      
      --
      196148940  by Zhichao Lu:
      
          Release ssdlite mobilenet v2 coco trained model.
      
      --
      196058528  by Zhichao Lu:
      
          Apply FPN feature map generation before we add additional layers on top of resnet feature extractor.
      
      --
      195818367  by Zhichao Lu:
      
          Add support for exporting detection keypoints.
      
      --
      195745420  by Zhichao Lu:
      
          Introduce include_metrics_per_category option to Object Detection eval_config.
      
      --
      195734733  by Zhichao Lu:
      
          Rename SSDLite config to be more explicit.
      
      --
      195717383  by Zhichao Lu:
      
          Add quantized training to object_detection.
      
      --
      195683542  by Zhichao Lu:
      
          Fix documentation for the interaction of fine_tune_checkpoint_type and load_all_detection_checkpoint_vars interaction.
      
      --
      195668233  by Zhichao Lu:
      
          Using batch size from params dictionary if present.
      
      --
      195570173  by Zhichao Lu:
      
          A few fixes to get new estimator API eval to match legacy detection eval binary by (1) plumbing `is_crowd` annotations through to COCO evaluator, (2) setting the `sloppy` flag in tf.contrib.data.parallel_interleave based on whether shuffling is enabled, and (3) saving the original image instead of the resized original image, which allows for small/medium/large mAP metrics to be properly computed.
      
      --
      195316756  by Zhichao Lu:
      
          Internal change
      
      --
      
      PiperOrigin-RevId: 196161788
      324d6dc3
  3. 13 Apr, 2018 2 commits
  4. 03 Apr, 2018 1 commit
  5. 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