Geometry transforms and projections. Implemented as Tensorflow layers and differentiable if it makes sense.
2022-06-07 18:36:52.304099: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
2022-06-07 18:36:52.304148: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.

class PolarToCartesianWarp[source]

PolarToCartesianWarp(full=True, scale=1.0) :: Layer

Differentiable Polar Image to Cartersian Mapping This is a Tensorflow Keras Layer and expects a batch of input with shape [n, r, az, c]

Running eagerly is supported as well. For single example input, use expanddims or newaxis.

class CameraRadarCoordinateTransform[source]

CameraRadarCoordinateTransform(camera_f, camera_p, radar_f, radar_p)

Stub Not implemented yet

compute_radar_intrinsic_matrix[source]

compute_radar_intrinsic_matrix(radarframe)

Radar frame needs to provide max_range and range_nbins

Get radar intrinsics from radar config

from radicalsdk.radar.config_v1 import read_radar_params
from radicalsdk.radar.v1 import RadarFrame

radar_config = read_radar_params('../samples/indoor_human_rcs.cfg')
rf = RadarFrame(radar_config)

radar_f = compute_radar_intrinsic_matrix(rf)
print(radar_f)
[[ 21.3503495   0.         21.3503495]
 [  0.        -21.3503495  21.3503495]
 [  0.          0.          1.       ]]