Added use_nms config option
Signed-off-by: Jim Martens <github@2martens.de>
This commit is contained in:
@ -266,23 +266,24 @@ def _ssd_test(args: argparse.Namespace) -> None:
|
|||||||
|
|
||||||
nr_digits = _get_nr_digits(generators.length, conf_obj.parameters.batch_size)
|
nr_digits = _get_nr_digits(generators.length, conf_obj.parameters.batch_size)
|
||||||
steps_per_epoch = _get_nr_batches(generators.length, conf_obj.parameters.batch_size)
|
steps_per_epoch = _get_nr_batches(generators.length, conf_obj.parameters.batch_size)
|
||||||
ssd.predict(generators.generator,
|
ssd.predict(generator=generators.generator,
|
||||||
ssd_model,
|
model=ssd_model,
|
||||||
steps_per_epoch,
|
steps_per_epoch=steps_per_epoch,
|
||||||
conf_obj.parameters.ssd_image_size,
|
image_size=conf_obj.parameters.ssd_image_size,
|
||||||
conf_obj.parameters.batch_size,
|
batch_size=conf_obj.parameters.batch_size,
|
||||||
conf_obj.parameters.ssd_forward_passes_per_image,
|
forward_passes_per_image=conf_obj.parameters.ssd_forward_passes_per_image,
|
||||||
conf_obj.parameters.ssd_use_entropy_threshold,
|
use_nms=conf_obj.parameters.ssd_use_nms,
|
||||||
conf_obj.parameters.ssd_entropy_threshold_min,
|
use_entropy_threshold=conf_obj.parameters.ssd_use_entropy_threshold,
|
||||||
conf_obj.parameters.ssd_entropy_threshold_max,
|
entropy_threshold_min=conf_obj.parameters.ssd_entropy_threshold_min,
|
||||||
conf_obj.parameters.ssd_confidence_threshold,
|
entropy_threshold_max=conf_obj.parameters.ssd_entropy_threshold_max,
|
||||||
conf_obj.parameters.ssd_iou_threshold,
|
confidence_threshold=conf_obj.parameters.ssd_confidence_threshold,
|
||||||
conf_obj.parameters.ssd_top_k,
|
iou_threshold=conf_obj.parameters.ssd_iou_threshold,
|
||||||
paths.output_path,
|
top_k=conf_obj.parameters.ssd_top_k,
|
||||||
conf_obj.paths.coco,
|
output_path=paths.output_path,
|
||||||
use_dropout,
|
coco_path=conf_obj.paths.coco,
|
||||||
nr_digits,
|
use_dropout=use_dropout,
|
||||||
conf_obj.parameters.nr_classes)
|
nr_digits=nr_digits,
|
||||||
|
nr_classes=conf_obj.parameters.nr_classes)
|
||||||
|
|
||||||
|
|
||||||
def _ssd_evaluate(args: argparse.Namespace) -> None:
|
def _ssd_evaluate(args: argparse.Namespace) -> None:
|
||||||
|
|||||||
@ -62,6 +62,7 @@ _CONFIG_PROPS = {
|
|||||||
"ssd_iou_threshold": (float, "0.45"),
|
"ssd_iou_threshold": (float, "0.45"),
|
||||||
"ssd_top_k": (int, "200"),
|
"ssd_top_k": (int, "200"),
|
||||||
"ssd_dropout_rate": (float, "0.5"),
|
"ssd_dropout_rate": (float, "0.5"),
|
||||||
|
"ssd_use_nms": (bool, "True"),
|
||||||
"ssd_use_entropy_threshold": (bool, "False"),
|
"ssd_use_entropy_threshold": (bool, "False"),
|
||||||
"ssd_entropy_threshold_min": (float, "0.1"),
|
"ssd_entropy_threshold_min": (float, "0.1"),
|
||||||
"ssd_entropy_threshold_max": (float, "2.5"),
|
"ssd_entropy_threshold_max": (float, "2.5"),
|
||||||
|
|||||||
@ -150,6 +150,7 @@ def predict(generator: callable,
|
|||||||
image_size: int,
|
image_size: int,
|
||||||
batch_size: int,
|
batch_size: int,
|
||||||
forward_passes_per_image: int,
|
forward_passes_per_image: int,
|
||||||
|
use_nms: bool,
|
||||||
use_entropy_threshold: bool,
|
use_entropy_threshold: bool,
|
||||||
entropy_threshold_min: float,
|
entropy_threshold_min: float,
|
||||||
entropy_threshold_max: float,
|
entropy_threshold_max: float,
|
||||||
@ -174,6 +175,7 @@ def predict(generator: callable,
|
|||||||
batch_size: number of items in every batch
|
batch_size: number of items in every batch
|
||||||
forward_passes_per_image: specifies number of forward passes per image
|
forward_passes_per_image: specifies number of forward passes per image
|
||||||
used by DropoutSSD
|
used by DropoutSSD
|
||||||
|
use_nms: if True non-maximum suppression will be used for Bayesian SSD
|
||||||
use_entropy_threshold: if True entropy thresholding is applied
|
use_entropy_threshold: if True entropy thresholding is applied
|
||||||
entropy_threshold_min: specifies the minimum threshold for the entropy
|
entropy_threshold_min: specifies the minimum threshold for the entropy
|
||||||
entropy_threshold_max: specifies the maximum threshold for the entropy
|
entropy_threshold_max: specifies the maximum threshold for the entropy
|
||||||
@ -219,7 +221,8 @@ def predict(generator: callable,
|
|||||||
_apply_entropy_filtering,
|
_apply_entropy_filtering,
|
||||||
confidence_threshold=confidence_threshold,
|
confidence_threshold=confidence_threshold,
|
||||||
nr_classes=nr_classes,
|
nr_classes=nr_classes,
|
||||||
iou_threshold=iou_threshold
|
iou_threshold=iou_threshold,
|
||||||
|
use_nms=use_nms
|
||||||
),
|
),
|
||||||
apply_top_k_func=functools.partial(
|
apply_top_k_func=functools.partial(
|
||||||
_apply_top_k,
|
_apply_top_k,
|
||||||
@ -322,6 +325,7 @@ def _predict_loop(generator: Generator, use_dropout: bool, steps_per_epoch: int,
|
|||||||
if use_entropy_threshold:
|
if use_entropy_threshold:
|
||||||
nr_steps = math.floor((entropy_threshold_max - entropy_threshold_min) * 10)
|
nr_steps = math.floor((entropy_threshold_max - entropy_threshold_min) * 10)
|
||||||
entropy_thresholds = [round(i / 10 + entropy_threshold_min, 1) for i in range(nr_steps)]
|
entropy_thresholds = [round(i / 10 + entropy_threshold_min, 1) for i in range(nr_steps)]
|
||||||
|
# entropy_thresholds = [1.4]
|
||||||
else:
|
else:
|
||||||
entropy_thresholds = [0]
|
entropy_thresholds = [0]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user