i am pretty new to this all so bare with me here.
I've made myself a program to recognise tools, issue is, while running it will see the object, but the name will be N/A, note that this doesn't happen to every label (doesn't recognise screwdrivers yet but when it thinks it sees one, it does label it Screwdriver instead of N/A)
Now, I've checked countless forums from people with this issue and i cannot find why this is happening. I have 16 classes for the 16 objects, labelmap is in order and exactly as shown on multiple other sites.
All out of idea's here ..
:pipeline:
model { ssd { num_classes: 16 image_resizer { keep_aspect_ratio_resizer { min_dimension: 512 max_dimension: 512 pad_to_max_dimension: false } } feature_extractor { type: "ssd_efficientnet-b0_bifpn_keras" conv_hyperparams { regularizer { l2_regularizer { weight: 4e-05 } } initializer { truncated_normal_initializer { mean: 0.0 stddev: 0.03 } } activation: SWISH batch_norm { decay: 0.99 scale: true epsilon: 0.001 } force_use_bias: true } bifpn { min_level: 3 max_level: 7 num_iterations: 3 num_filters: 64 } } 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 use_matmul_gather: true } } similarity_calculator { iou_similarity { } } box_predictor { weight_shared_convolutional_box_predictor { conv_hyperparams { regularizer { l2_regularizer { weight: 4e-05 } } initializer { random_normal_initializer { mean: 0.0 stddev: 0.01 } } activation: SWISH batch_norm { decay: 0.99 scale: true epsilon: 0.001 } force_use_bias: true } depth: 64 num_layers_before_predictor: 3 kernel_size: 3 class_prediction_bias_init: -4.6 use_depthwise: true } } anchor_generator { multiscale_anchor_generator { min_level: 3 max_level: 7 anchor_scale: 4.0 aspect_ratios: 1.0 aspect_ratios: 2.0 aspect_ratios: 0.5 scales_per_octave: 3 } } post_processing { batch_non_max_suppression { score_threshold: 1e-08 iou_threshold: 0.5 max_detections_per_class: 100 max_total_detections: 100 } score_converter: SIGMOID } normalize_loss_by_num_matches: true loss { localization_loss { weighted_smooth_l1 { } } classification_loss { weighted_sigmoid_focal { gamma: 1.5 alpha: 0.25 } } classification_weight: 1.0 localization_weight: 1.0 } encode_background_as_zeros: true normalize_loc_loss_by_codesize: true inplace_batchnorm_update: true freeze_batchnorm: false add_background_class: false } } train_config { batch_size: 1 data_augmentation_options { random_horizontal_flip { } } data_augmentation_options { random_scale_crop_and_pad_to_square { output_size: 512 scale_min: 0.1 scale_max: 2.0 } } sync_replicas: true optimizer { momentum_optimizer { learning_rate { cosine_decay_learning_rate { learning_rate_base: 0.08 total_steps: 300000 warmup_learning_rate: 0.001 warmup_steps: 2500 } } momentum_optimizer_value: 0.9 } use_moving_average: false } fine_tune_checkpoint: "C:/Users/djust/Desktop/Object_detection/models/research/object_detection/efficientdet_d0_coco17_tpu-32/checkpoint/ckpt-0"
num_steps: 300000 startup_delay_steps: 0.0 replicas_to_aggregate: 8 max_number_of_boxes: 100 unpad_groundtruth_tensors: false
fine_tune_checkpoint_type: "detection" use_bfloat16: false
fine_tune_checkpoint_version: V2 } train_input_reader {
label_map_path: "C:/Users/djust/Desktop/Object_detection/models/research/object_detection/training/labelmap.pbtxt" tf_record_input_reader { input_path: "C:/Users/djust/Desktop/Object_detection/models/research/object_detection/train.record" } } eval_config { metrics_set: "coco_detection_metrics"
use_moving_averages: false batch_size: 1 } eval_input_reader {
label_map_path: "C:/Users/djust/Desktop/Object_detection/models/research/object_detection/training/labelmap.pbtxt" shuffle: false num_epochs: 1 tf_record_input_reader { input_path: "C:/Users/djust/Desktop/Object_detection/models/research/object_detection/test.record" } }
:Labelmap:
item { display_name: 'person' name: 'person' id: 1 } item { display_name: 'crimping_tool' name: 'crimping_tool' id: 2 } item { display_name: 'drill_set' name: 'drill_set' id: 3 } item { display_name: 'utility_knife' name: 'utility_knife' id: 4 } item { display_name: 'screwdriver' name: 'screwdriver' id: 5 } item { display_name: 'stripping_pliers' name: 'stripping_pliers' id: 6 } item { display_name: 'cutting_pliers' name: 'cutting_pliers' id: 7 } item { display_name: 'stripping_tool' name: 'stripping_tool' id: 8 } item { display_name: 'pliers' name: 'pliers' id: 9 } item { display_name: 'pipewrench' name: 'pipewrench' id: 10 } item { display_name: 'measuring_tool' name: 'measuring_tool' id: 11 } item { display_name: 'cable_cutter_angled' name: 'cable_cutter_angled' id: 12 } item { display_name: 'stripping_tool_2' name: 'stripping_tool_2' id: 13 } item { display_name: 'wrench' name: 'wrench' id: 14 } item { display_name: 'hexkey_set' name: 'hexkey_set' id: 15 } item { display_name: 'drill_set_2' name: 'drill_set_2' id: 16 }