Added entropy threshold as configurable option

Signed-off-by: Jim Martens <github@2martens.de>
This commit is contained in:
Jim Martens 2019-07-17 11:54:28 +02:00
parent a8f58a6fc7
commit d9edd94b99
3 changed files with 15 additions and 5 deletions

View File

@ -263,7 +263,8 @@ def _ssd_test(args: argparse.Namespace) -> None:
_init_eager_mode()
batch_size, image_size, learning_rate, \
forward_passes_per_image, nr_classes, iou_threshold, dropout_rate, top_k, nr_trajectories, \
forward_passes_per_image, nr_classes, iou_threshold, dropout_rate, \
entropy_threshold, top_k, nr_trajectories, \
coco_path, output_path, weights_path, ground_truth_path = _ssd_test_get_config_values(args, conf.get_property)
use_dropout = _ssd_is_dropout(args)
@ -304,6 +305,7 @@ def _ssd_test(args: argparse.Namespace) -> None:
image_size,
batch_size,
forward_passes_per_image,
entropy_threshold,
output_path,
coco_path,
use_dropout,
@ -500,7 +502,7 @@ def _ssd_train_get_config_values(config_get: Callable[[str], Union[str, float, i
def _ssd_test_get_config_values(args: argparse.Namespace,
config_get: Callable[[str], Union[str, float, int, bool]]
) -> Tuple[int, int, float, int, int, float, float, int, int,
) -> Tuple[int, int, float, int, int, float, float, float, int, int,
str, str, str, str]:
batch_size = config_get("Parameters.batch_size")
@ -510,6 +512,7 @@ def _ssd_test_get_config_values(args: argparse.Namespace,
nr_classes = config_get("Parameters.nr_classes")
iou_threshold = config_get("Parameters.ssd_iou_threshold")
dropout_rate = config_get("Parameters.ssd_dropout_rate")
entropy_threshold = config_get("Parameters.ssd_entropy_threshold")
top_k = config_get("Parameters.ssd_top_k")
nr_trajectories = config_get("Parameters.nr_trajectories")
@ -529,6 +532,7 @@ def _ssd_test_get_config_values(args: argparse.Namespace,
nr_classes,
iou_threshold,
dropout_rate,
entropy_threshold,
top_k,
nr_trajectories,
#

View File

@ -59,6 +59,7 @@ _CONFIG_PROPS = {
"ssd_iou_threshold": (float, "0.45"),
"ssd_top_k": (int, "200"),
"ssd_dropout_rate": (float, "0.5"),
"ssd_entropy_threshold": (float, "2.5"),
"nr_trajectories": (int, "-1")
}
}

View File

@ -145,6 +145,7 @@ def predict(generator: callable,
image_size: int,
batch_size: int,
forward_passes_per_image: int,
entropy_threshold: float,
output_path: str,
coco_path: str,
use_dropout: bool,
@ -162,6 +163,7 @@ def predict(generator: callable,
batch_size: number of items in every batch
forward_passes_per_image: specifies number of forward passes per image
used by DropoutSSD
entropy_threshold: specifies the threshold for the entropy
output_path: the path in which the results should be saved
coco_path: the path to the COCO data set
use_dropout: if True, multiple forward passes and observations will be used
@ -185,7 +187,8 @@ def predict(generator: callable,
decode_func=functools.partial(
_decode_predictions,
decode_func=ssd_output_decoder.decode_detections_fast,
image_size=image_size
image_size=image_size,
entropy_threshold=entropy_threshold
),
transform_func=functools.partial(
_transform_predictions,
@ -319,12 +322,14 @@ def _predict_vanilla_step(inputs: np.ndarray, model: tf.keras.models.Model) -> n
def _decode_predictions(predictions: np.ndarray,
decode_func: callable,
image_size: int) -> np.ndarray:
image_size: int,
entropy_threshold: float) -> np.ndarray:
return decode_func(
y_pred=predictions,
img_width=image_size,
img_height=image_size,
input_coords="corners"
input_coords="corners",
entropy_threshold=entropy_threshold
)