The Structure from Motion (SFM) sample demonstrates the triangulation functionality of the SFM module; a car pose is estimated entirely from CAN data using the NVIDIA® DriveWorks egomotion module. The car has a 4-fisheye camera rig that is pre-calibrated. Features are detected and tracked using the features module. Points are triangulated for each frame by using the estimated pose and tracked features.
The structure from motion sample, sample_sfm, accepts the following optional parameters. If none are specified, it will process four supplied pre-recorded video.
./sample_sfm --baseDir=[path/to/rig/dir]
--rig=[rig.json]
--dbc=[canbus_file]
--dbcSpeed=[signal_name]
--dbcSteering=[signal_name]
--maxFeatureCount=[integer]
where
--baseDir=[path/to/rig/dir]
Path to the folder containint the rig.json file.
Default value: path/to/data/samples/sfm/triangulation
--rig=[rig.json]
A `rig.json` file as serialized by the DriveWorks rig module, or as produced by the DriveWorks calibration tool.
The rig must include the 4 camera sensors and one CAN sensor.
The rig sensors must contain valid protocol and parameter properties to open the virtual sensors.
The video files must be a H.264 stream.
Video containers as MP4, AVI, MKV, etc. are not supported.
The rig file also points to a video timestamps text file where each row contains the frame index
(starting at 1) and the timestamp for all cameras. It is read by the camera virtual sensor.
Default value: rig.json
--dbc=[canbus_file]
The CAN bus file that is required by the canbus virtual sensor.
Default value: canbus.dbc
--dbcSpeed=[signal_name]
Name of the signal corresponding to the car speed in the given dbc file.
Default value: M_SPEED.CAN_CAR_SPEED
--dbcSteering=[signal_name]
Name of the signal corresponding to the steering angle in the given dbc file.
Default value: M_STEERING.CAN_CAR_STEERING
--maxFeatureCount=[integer]
The manixum amount of features stored for tracking.
Default value: 2000
If a mouse is available, the left button rotates the 3D view, the right button translate, and the mouse wheel zooms.
While the sample is running the following commands are available:
The left side of the screen shows the 4 input images; tracked features are shown in green. Triangulated points are reprojected back onto the camera and shown in red. The right side shows a 3D view of the triangulated point cloud.
In 3D, the colors are:
For more details see Structure from Motion (SFM) .