# Model config model_config { arch: "resnet" pretrained_model_file: "" load_graph: True all_projections: True num_layers: 18 use_pooling: False use_batch_norm: True dropout_rate: 0 training_precision: { backend_floatx: FLOAT32 } objective_set: { cov {} bbox { scale: 35.0 offset: 0.5 } } } # Bbox rasterizer bbox_rasterizer_config { target_class_config { key: "weed" value: { cov_center_x: 0.5 cov_center_y: 0.5 cov_radius_x: 0.4 cov_radius_y: 0.4 bbox_min_radius: 1.0 } } target_class_config { key: "carrot" value: { cov_center_x: 0.5 cov_center_y: 0.5 cov_radius_x: 0.4 cov_radius_y: 0.4 bbox_min_radius: 1.0 } } deadzone_radius: 0.67 } postprocessing_config { target_class_config { key: "weed" value: { clustering_config { coverage_threshold: 0.005 dbscan_eps: 0.20 dbscan_min_samples: 0.05 minimum_bounding_box_height: 20 } } } target_class_config { key: "carrot" value: { clustering_config { coverage_threshold: 0.005 dbscan_eps: 0.20 dbscan_min_samples: 0.05 minimum_bounding_box_height: 20 } } } } cost_function_config { target_classes { name: "weed" class_weight: 1.0 coverage_foreground_weight: 0.05 objectives { name: "cov" initial_weight: 1.0 weight_target: 1.0 } objectives { name: "bbox" initial_weight: 1.0 weight_target: 1.0 } } target_classes { name: "carrot" class_weight: 1.0 coverage_foreground_weight: 0.05 objectives { name: "cov" initial_weight: 1.0 weight_target: 1.0 } objectives { name: "bbox" initial_weight: 1.0 weight_target: 1.0 } } enable_autoweighting: True max_objective_weight: 0.9999 min_objective_weight: 0.0001 } training_config { batch_size_per_gpu: 96 num_epochs: 10000 learning_rate { soft_start_annealing_schedule { min_learning_rate: 5e-10 max_learning_rate: 5e-4 soft_start: 0.25 annealing: 0.7 } } regularizer { type: L1 weight: 3e-9 } optimizer { adam { epsilon: 1e-08 beta1: 0.9 beta2: 0.999 } } cost_scaling { enabled: False initial_exponent: 20.0 increment: 0.005 decrement: 1.0 } } augmentation_config { preprocessing { output_image_width: 768 output_image_height: 768 output_image_channel: 3 min_bbox_width: 5.0 min_bbox_height: 5.0 } spatial_augmentation { hflip_probability: 0.5 vflip_probability: 0.5 zoom_min: 0.9 zoom_max: 1.0 translate_max_x: 100.0 translate_max_y: 100.0 rotate_rad_max: 0.69 } color_augmentation { color_shift_stddev: 0.0 hue_rotation_max: 25.0 saturation_shift_max: 0.2 contrast_scale_max: 0.1 contrast_center: 0.5 } } evaluation_config { average_precision_mode: SAMPLE validation_period_during_training: 10 first_validation_epoch: 30 minimum_detection_ground_truth_overlap { key: "weed" value: 0.3 } minimum_detection_ground_truth_overlap { key: "carrot" value: 0.3 } evaluation_box_config { key: "weed" value { minimum_height: 4 maximum_height: 9999 minimum_width: 4 maximum_width: 9999 } } evaluation_box_config { key: "carrot" value { minimum_height: 4 maximum_height: 9999 minimum_width: 4 maximum_width: 9999 } } } dataset_config { data_sources: { tfrecords_path: "/train-*" image_directory_path: "" } image_extension: "jpg" target_class_mapping { key: "weed" value: "weed" } target_class_mapping { key: "carrot" value: "carrot" } validation_data_source: { tfrecords_path: "/validation-*" image_directory_path: "" } }