tensorflow / tensorflow/models

Using ssd_mobilenet_v1 and v2 traning network has a low confidence loss to detect a small object and the loss can't go down.

Open
#7,373 0 comments 0 reactions 3 assignees View on GitHub

@pkulzc is already working on this.

Since Jun 24, 2020.

models:research:odapi type:support
Dominant language
Python
Stars
77.7k
Forks
44.8k
PR merge metrics
No merged PRs in 30d

Description

Please go to Stack Overflow for help and support:

http://stackoverflow.com/questions/tagged/tensorflow

Also, please understand that many of the models included in this repository are experimental and research-style code. If you open a GitHub issue, here is our policy:

  1. It must be a bug, a feature request, or a significant problem with documentation (for small docs fixes please send a PR instead).
  2. The form below must be filled out.

Here's why we have that policy: TensorFlow developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals. GitHub also notifies thousands of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Stack Overflow.


System information
  • What is the top-level directory of the model you are using:
    work_dir: models/research/object_detection/
    model: ssd_mobilenet_v1(try also v2)

  • Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
    I think the main is my config, I change the learning rate in many ways,however,the loss alway go down near to the 5 and stop.When I train only one class also like this.

This is my config:
`
model {
ssd {
num_classes: 6
box_coder {
faster_rcnn_box_coder {
y_scale: 10.0
x_scale: 10.0
height_scale: 5.0
width_scale: 5.0
}
}
matcher {
argmax_matcher {
matched_threshold: 0.5
unmatched_threshold: 0.5
ignore_thresholds: false
negatives_lower_than_unmatched: true
force_match_for_each_row: true
}
}
similarity_calculator {
iou_similarity {
}
}
anchor_generator {
ssd_anchor_generator {
num_layers: 6
min_scale: 0.2
max_scale: 0.95
aspect_ratios: 1.0
aspect_ratios: 2.0
aspect_ratios: 0.5
aspect_ratios: 3.0
aspect_ratios: 0.3333
}
}
image_resizer {
fixed_shape_resizer {
height: 300
width: 300
}
}
box_predictor {
convolutional_box_predictor {
min_depth: 0
max_depth: 0
num_layers_before_predictor: 0
use_dropout: false
dropout_keep_probability: 0.8
kernel_size: 1
box_code_size: 4
apply_sigmoid_to_scores: false
conv_hyperparams {
activation: RELU_6,
regularizer {
l2_regularizer {
weight: 0.00004
}
}
initializer {
truncated_normal_initializer {
stddev: 0.03
mean: 0.0
}
}
batch_norm {
train: true,
scale: true,
center: true,
decay: 0.9997,
epsilon: 0.001,
}
}
}
}
feature_extractor {
type: 'ssd_mobilenet_v1'
min_depth: 16
depth_multiplier: 1.0
conv_hyperparams {
activation: RELU_6,
regularizer {
l2_regularizer {
weight: 0.00004
}
}
initializer {
truncated_normal_initializer {
stddev: 0.03
mean: 0.0
}
}
batch_norm {
train: true,
scale: true,
center: true,
decay: 0.9997,
epsilon: 0.001,
}
}
}
loss {
classification_loss {
weighted_sigmoid {
}
}
localization_loss {
weighted_smooth_l1 {
}
}
hard_example_miner {
num_hard_examples: 3000
iou_threshold: 0.99
loss_type: CLASSIFICATION
max_negatives_per_positive: 3
min_negatives_per_image: 0
}
classification_weight: 1.0
localization_weight: 1.0
}
normalize_loss_by_num_matches: true
post_processing {
batch_non_max_suppression {
score_threshold: 1e-8
iou_threshold: 0.6
max_detections_per_class: 100
max_total_detections: 100
}
score_converter: SIGMOID
}
}
}

train_config: {
batch_size: 4
optimizer {
rms_prop_optimizer: {
learning_rate: {
exponential_decay_learning_rate {
initial_learning_rate: 0.004
decay_steps: 6000
decay_factor: 0.5
}
}
momentum_optimizer_value: 0.9
decay: 0.9
epsilon: 1.0
}
}

fine_tune_checkpoint: "my/models-master/research/object_detection/ssd_mobilenet_v1_coco_2018_01_28/model.ckpt"
from_detection_checkpoint: true

num_steps: 500000
data_augmentation_options {
random_horizontal_flip {
}
}
data_augmentation_options {
ssd_random_crop {
}
}
}

train_input_reader: {
tf_record_input_reader {
input_path: "my/models-master/research/object_detection/train_cap.record"
}
label_map_path: "my/models-master/research/object_detection/training_cap/cap.pbtxt"
}

eval_config: {
num_examples: 12538
max_evals: 10
}

eval_input_reader: {
tf_record_input_reader {
input_path: "my/models-master/research/object_detection/train_cap.record"
}
label_map_path: "my/models-master/research/object_detection/training_cap/cap.pbtxt"
shuffle: false
num_readers: 1
}
`

  • OS Platform and Distribution (e.g., Linux Ubuntu 16.04):

Linux Ubuntu 16.04 Desktop Version

  • TensorFlow installed from (source or binary):

Pip to install. The command line is "pip3 install tensorflow-gpu".

  • TensorFlow version (use command below):
    tensorflow-gpu version: v1.14.0-rc1-22-gaf24dc91b5 1.14.0

  • Bazel version (if compiling from source):
    What???

  • CUDA/cuDNN version:
    CUDA 10.0
    cuDNN 7.6

  • GPU model and memory:
    gtx1060 6G

  • Exact command to reproduce:

python model_main.py --logtostderr --model_dir=training/ --pipeline_config_path=training_cap/ssd_mobilenet_v1_coco.config

You can collect some of this information using our environment capture script:

https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh

You can obtain the TensorFlow version with

python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"

Describe the problem

I think the main is my config, I change the learning rate in many ways,however,the loss alway go down near to the 5 and stop.When I train only one class also like this.

Source code / logs

As you see my config.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.