2023-10-11 13:58:09 +02:00
|
|
|
import argparse
|
|
|
|
|
|
|
|
parser = argparse.ArgumentParser()
|
|
|
|
|
|
|
|
|
|
|
|
parser.add_argument(
|
|
|
|
'--verbose',
|
|
|
|
'-v',
|
|
|
|
help="Increase verbosity. Add multiple times to increase further.",
|
|
|
|
action='count', default=0
|
|
|
|
)
|
2023-10-12 09:03:35 +02:00
|
|
|
parser.add_argument(
|
|
|
|
'--remote-log-addr',
|
|
|
|
help="Connect to a remote logger like cutelog. Specify the ip",
|
|
|
|
type=str,
|
|
|
|
)
|
|
|
|
parser.add_argument(
|
|
|
|
'--remote-log-port',
|
|
|
|
help="Connect to a remote logger like cutelog. Specify the port",
|
|
|
|
type=int,
|
|
|
|
default=19996
|
|
|
|
)
|
2023-10-11 13:58:09 +02:00
|
|
|
|
|
|
|
# parser.add_argument('--foo')
|
|
|
|
inference_parser = parser.add_argument_group('inference server')
|
|
|
|
connection_parser = parser.add_argument_group('connection')
|
|
|
|
|
|
|
|
inference_parser.add_argument("--model_dir",
|
|
|
|
help="directory with the model to use for inference",
|
|
|
|
type=str, # TODO: make into Path
|
|
|
|
default='./experiments/pedestrians/models/models_04_Oct_2023_21_04_48_eth_vel_ar3')
|
|
|
|
|
|
|
|
inference_parser.add_argument("--conf",
|
|
|
|
help="path to json config file for hyperparameters, relative to model_dir",
|
|
|
|
type=str,
|
|
|
|
default='config.json')
|
|
|
|
|
|
|
|
# Model Parameters (hyperparameters)
|
|
|
|
inference_parser.add_argument("--offline_scene_graph",
|
|
|
|
help="whether to precompute the scene graphs offline, options are 'no' and 'yes'",
|
|
|
|
type=str,
|
|
|
|
default='yes')
|
|
|
|
|
|
|
|
inference_parser.add_argument("--dynamic_edges",
|
|
|
|
help="whether to use dynamic edges or not, options are 'no' and 'yes'",
|
|
|
|
type=str,
|
|
|
|
default='yes')
|
|
|
|
|
|
|
|
inference_parser.add_argument("--edge_state_combine_method",
|
|
|
|
help="the method to use for combining edges of the same type",
|
|
|
|
type=str,
|
|
|
|
default='sum')
|
|
|
|
|
|
|
|
inference_parser.add_argument("--edge_influence_combine_method",
|
|
|
|
help="the method to use for combining edge influences",
|
|
|
|
type=str,
|
|
|
|
default='attention')
|
|
|
|
|
|
|
|
inference_parser.add_argument('--edge_addition_filter',
|
|
|
|
nargs='+',
|
|
|
|
help="what scaling to use for edges as they're created",
|
|
|
|
type=float,
|
|
|
|
default=[0.25, 0.5, 0.75, 1.0]) # We don't automatically pad left with 0.0, if you want a sharp
|
|
|
|
# and short edge addition, then you need to have a 0.0 at the
|
|
|
|
# beginning, e.g. [0.0, 1.0].
|
|
|
|
|
|
|
|
inference_parser.add_argument('--edge_removal_filter',
|
|
|
|
nargs='+',
|
|
|
|
help="what scaling to use for edges as they're removed",
|
|
|
|
type=float,
|
|
|
|
default=[1.0, 0.0]) # We don't automatically pad right with 0.0, if you want a sharp drop off like
|
|
|
|
# the default, then you need to have a 0.0 at the end.
|
|
|
|
|
|
|
|
|
|
|
|
inference_parser.add_argument('--incl_robot_node',
|
|
|
|
help="whether to include a robot node in the graph or simply model all agents",
|
|
|
|
action='store_true')
|
|
|
|
|
|
|
|
inference_parser.add_argument('--map_encoding',
|
|
|
|
help="Whether to use map encoding or not",
|
|
|
|
action='store_true')
|
|
|
|
|
|
|
|
inference_parser.add_argument('--no_edge_encoding',
|
|
|
|
help="Whether to use neighbors edge encoding",
|
|
|
|
action='store_true')
|
|
|
|
|
|
|
|
|
|
|
|
inference_parser.add_argument('--batch_size',
|
|
|
|
help='training batch size',
|
|
|
|
type=int,
|
|
|
|
default=256)
|
|
|
|
|
|
|
|
inference_parser.add_argument('--k_eval',
|
|
|
|
help='how many samples to take during evaluation',
|
|
|
|
type=int,
|
|
|
|
default=25)
|
|
|
|
|
|
|
|
# Data Parameters
|
|
|
|
inference_parser.add_argument("--eval_data_dict",
|
|
|
|
help="what file to load for evaluation data (WHEN NOT USING LIVE DATA)",
|
|
|
|
type=str,
|
|
|
|
default='./experiments/processed/eth_test.pkl')
|
|
|
|
|
|
|
|
inference_parser.add_argument("--output_dir",
|
|
|
|
help="what dir to save output (i.e., saved models, logs, etc) (WHEN NOT USING LIVE OUTPUT)",
|
|
|
|
type=str,
|
|
|
|
default='../experiments/pedestrians/OUT/test_inference')
|
|
|
|
|
|
|
|
|
|
|
|
# inference_parser.add_argument('--device',
|
|
|
|
# help='what device to perform training on',
|
|
|
|
# type=str,
|
|
|
|
# default='cuda:0')
|
|
|
|
|
|
|
|
inference_parser.add_argument("--eval_device",
|
|
|
|
help="what device to use during inference",
|
|
|
|
type=str,
|
|
|
|
default="cpu")
|
|
|
|
|
|
|
|
|
|
|
|
inference_parser.add_argument('--seed',
|
|
|
|
help='manual seed to use, default is 123',
|
|
|
|
type=int,
|
|
|
|
default=123)
|
|
|
|
|
|
|
|
|
|
|
|
# Internal connections.
|
|
|
|
|
|
|
|
connection_parser.add_argument('--zmq-trajectory-addr',
|
|
|
|
help='Manually specity communication addr for the trajectory messages',
|
|
|
|
type=str,
|
|
|
|
default="ipc:///tmp/feeds/traj")
|
|
|
|
|
|
|
|
connection_parser.add_argument('--zmq-camera-stream-addr',
|
|
|
|
help='Manually specity communication addr for the camera stream messages',
|
|
|
|
type=str,
|
|
|
|
default="ipc:///tmp/feeds/img")
|
|
|
|
|
|
|
|
connection_parser.add_argument('--zmq-prediction-addr',
|
|
|
|
help='Manually specity communication addr for the prediction messages',
|
|
|
|
type=str,
|
|
|
|
default="ipc:///tmp/feeds/preds")
|
|
|
|
|
|
|
|
|
|
|
|
connection_parser.add_argument('--ws-port',
|
|
|
|
help='Port to listen for incomming websocket connections. Also serves the testing html-page.',
|
|
|
|
type=int,
|
|
|
|
default=8888)
|
|
|
|
|
|
|
|
connection_parser.add_argument('--bypass-prediction',
|
|
|
|
help='For debugging purpose: websocket input immediately to output',
|
|
|
|
action='store_true')
|
|
|
|
|