Mqtt gateway for oak-lite device
Go to file
2024-03-13 19:59:03 +01:00
camera fix stereo filters 2024-01-28 17:51:14 +01:00
camera_tunning feat: tune camera exposition 2024-01-15 19:51:13 +01:00
cv2-stubs build: fix all pylint/mypy errors 2022-10-27 16:03:23 +02:00
.Dockerignore updaqte dockerignore 2022-11-02 13:55:52 +01:00
.gitignore build: move to poetry 2022-10-20 15:29:38 +02:00
.pylintrc test: add unit tests and fix error 2022-10-24 12:09:37 +02:00
build-docker.sh build: fix docker build (pip index missing) 2022-11-02 16:31:46 +01:00
Dockerfile chore: bump to python 3.12 2024-01-27 11:49:59 +01:00
poetry.lock chore: upgrade dependencies 2024-03-13 19:59:03 +01:00
pyproject.toml chore: upgrade dependencies 2024-03-13 19:59:03 +01:00
README.md feat(disparity): fine tuning mode and post-processing filters 2024-01-27 11:49:59 +01:00

robocar-oak-camera

Mqtt gateway for oak-lite device

Docker

To build images, run script:

./build-docker.sh

Usage

usage: cli.py [-h] [-u MQTT_USERNAME] [-p MQTT_PASSWORD] [-b MQTT_BROKER_HOST]
              [-P MQTT_BROKER_PORT] [-C MQTT_CLIENT_ID]
              [-c MQTT_TOPIC_ROBOCAR_OAK_CAMERA]
              [-o MQTT_TOPIC_ROBOCAR_OBJECTS] [-t OBJECTS_THRESHOLD]
              [-d MQTT_TOPIC_ROBOCAR_DISPARITY] [-f CAMERA_FPS]
              [--camera-tuning-exposition {default,500us,8300us}]
              [-H IMAGE_HEIGHT] [-W IMAGE_WIDTH] [--log {info,debug}]
              [--stereo-mode-lr-check] [--stereo-mode-extended-disparity]
              [--stereo-mode-subpixel]
              [--stereo-post-processing-median-filter]
              [--stereo-post-processing-median-value {MEDIAN_OFF,KERNEL_3x3,KERNEL_5x5,KERNEL_7x7}]
              [--stereo-post-processing-speckle-filter]
              [--stereo-post-processing-speckle-enable STEREO_POST_PROCESSING_SPECKLE_ENABLE]
              [--stereo-post-processing-speckle-range STEREO_POST_PROCESSING_SPECKLE_RANGE]
              [--stereo-post-processing-temporal-filter]
              [--stereo-post-processing-temporal-persistency-mode {PERSISTENCY_OFF,VALID_8_OUT_OF_8,VALID_2_IN_LAST_3,VALID_2_IN_LAST_4,VALID_2_OUT_OF_8,VALID_1_IN_LAST_2,VALID_1_IN_LAST_5,VALID_1_IN_LAST_8,PERSISTENCY_INDEFINITELY}]
              [--stereo-post-processing-temporal-alpha STEREO_POST_PROCESSING_TEMPORAL_ALPHA]
              [--stereo-post-processing-temporal-delta STEREO_POST_PROCESSING_TEMPORAL_DELTA]
              [--stereo-post-processing-spatial-filter]
              [--stereo-post-processing-spatial-enable STEREO_POST_PROCESSING_SPATIAL_ENABLE]
              [--stereo-post-processing-spatial-hole-filling-radius STEREO_POST_PROCESSING_SPATIAL_HOLE_FILLING_RADIUS]
              [--stereo-post-processing-spatial-alpha STEREO_POST_PROCESSING_SPATIAL_ALPHA]
              [--stereo-post-processing-spatial-delta STEREO_POST_PROCESSING_SPATIAL_DELTA]
              [--stereo-post-processing-spatial-num-iterations STEREO_POST_PROCESSING_SPATIAL_NUM_ITERATIONS]
              [--stereo-post-processing-threshold-filter]
              [--stereo-post-processing-threshold-min-range STEREO_POST_PROCESSING_THRESHOLD_MIN_RANGE]
              [--stereo-post-processing-threshold-max-range STEREO_POST_PROCESSING_THRESHOLD_MAX_RANGE]
              [--stereo-post-processing-decimation-filter]
              [--stereo-post-processing-decimation-decimal-factor {1,2,3,4}]
              [--stereo-post-processing-decimation-mode {PIXEL_SKIPPING,NON_ZERO_MEDIAN,NON_ZERO_MEAN}]

options:
  -h, --help            show this help message and exit
  -u MQTT_USERNAME, --mqtt-username MQTT_USERNAME
                        MQTT user
  -p MQTT_PASSWORD, --mqtt-password MQTT_PASSWORD
                        MQTT password
  -b MQTT_BROKER_HOST, --mqtt-broker-host MQTT_BROKER_HOST
                        MQTT broker host
  -P MQTT_BROKER_PORT, --mqtt-broker-port MQTT_BROKER_PORT
                        MQTT broker port
  -C MQTT_CLIENT_ID, --mqtt-client-id MQTT_CLIENT_ID
                        MQTT client id
  -c MQTT_TOPIC_ROBOCAR_OAK_CAMERA, --mqtt-topic-robocar-oak-camera MQTT_TOPIC_ROBOCAR_OAK_CAMERA
                        MQTT topic where to publish robocar-oak-camera frames
  -o MQTT_TOPIC_ROBOCAR_OBJECTS, ---mqtt-topic-robocar-objects MQTT_TOPIC_ROBOCAR_OBJECTS
                        MQTT topic where to publish objects detection results
  -t OBJECTS_THRESHOLD, --objects-threshold OBJECTS_THRESHOLD
                        threshold to filter detected objects
  -d MQTT_TOPIC_ROBOCAR_DISPARITY, ---mqtt-topic-robocar-disparity MQTT_TOPIC_ROBOCAR_DISPARITY
                        MQTT topic where to publish disparity results
  -f CAMERA_FPS, --camera-fps CAMERA_FPS
                        set rate at which camera should produce frames
  --camera-tuning-exposition {default,500us,8300us}
                        override camera exposition configuration
  -H IMAGE_HEIGHT, --image-height IMAGE_HEIGHT
                        image height
  -W IMAGE_WIDTH, --image-width IMAGE_WIDTH
                        image width
  --log {info,debug}    Log level
  --stereo-mode-lr-check
                        remove incorrectly calculated disparity pixels due to
                        occlusions at object borders
  --stereo-mode-extended-disparity
                        allows detecting closer distance objects for the given
                        baseline. This increases the maximum disparity search
                        from 96 to 191, meaning the range is now: [0..190]
  --stereo-mode-subpixel
                        iimproves the precision and is especially useful for
                        long range measurements
  --stereo-post-processing-median-filter
                        enable post-processing median filter
  --stereo-post-processing-median-value {MEDIAN_OFF,KERNEL_3x3,KERNEL_5x5,KERNEL_7x7}
                        Median filter config
  --stereo-post-processing-speckle-filter
                        enable post-processing speckle filter
  --stereo-post-processing-speckle-enable STEREO_POST_PROCESSING_SPECKLE_ENABLE
                        enable post-processing speckle filter
  --stereo-post-processing-speckle-range STEREO_POST_PROCESSING_SPECKLE_RANGE
                        Speckle search range
  --stereo-post-processing-temporal-filter
                        enable post-processing temporal filter
  --stereo-post-processing-temporal-persistency-mode {PERSISTENCY_OFF,VALID_8_OUT_OF_8,VALID_2_IN_LAST_3,VALID_2_IN_LAST_4,VALID_2_OUT_OF_8,VALID_1_IN_LAST_2,VALID_1_IN_LAST_5,VALID_1_IN_LAST_8,PERSISTENCY_INDEFINITELY}
                        Persistency mode.
  --stereo-post-processing-temporal-alpha STEREO_POST_PROCESSING_TEMPORAL_ALPHA
                        The Alpha factor in an exponential moving average with
                        Alpha=1 - no filter. Alpha = 0 - infinite filter.
                        Determines the extent of the temporal history that
                        should be averaged.
  --stereo-post-processing-temporal-delta STEREO_POST_PROCESSING_TEMPORAL_DELTA
                        Step-size boundary. Establishes the threshold used to
                        preserve surfaces (edges). If the disparity value
                        between neighboring pixels exceed the disparity
                        threshold set by this delta parameter, then filtering
                        will be temporarily disabled. Default value 0 means
                        auto: 3 disparity integer levels. In case of subpixel
                        mode its 3*number of subpixel levels.
  --stereo-post-processing-spatial-filter
                        enable post-processing spatial filter
  --stereo-post-processing-spatial-enable STEREO_POST_PROCESSING_SPATIAL_ENABLE
                        Whether to enable or disable the filter
  --stereo-post-processing-spatial-hole-filling-radius STEREO_POST_PROCESSING_SPATIAL_HOLE_FILLING_RADIUS
                        An in-place heuristic symmetric hole-filling mode
                        applied horizontally during the filter passes
  --stereo-post-processing-spatial-alpha STEREO_POST_PROCESSING_SPATIAL_ALPHA
                        The Alpha factor in an exponential moving average with
                        Alpha=1 - no filter. Alpha = 0 - infinite filter
  --stereo-post-processing-spatial-delta STEREO_POST_PROCESSING_SPATIAL_DELTA
                        Step-size boundary. Establishes the threshold used to
                        preserve edges
  --stereo-post-processing-spatial-num-iterations STEREO_POST_PROCESSING_SPATIAL_NUM_ITERATIONS
                        Number of iterations over the image in both horizontal
                        and vertical direction
  --stereo-post-processing-threshold-filter
                        enable post-processing threshold filter
  --stereo-post-processing-threshold-min-range STEREO_POST_PROCESSING_THRESHOLD_MIN_RANGE
                        Minimum range in depth units. Depth values under this
                        value are invalidated
  --stereo-post-processing-threshold-max-range STEREO_POST_PROCESSING_THRESHOLD_MAX_RANGE
                        Maximum range in depth units. Depth values over this
                        value are invalidated.
  --stereo-post-processing-decimation-filter
                        enable post-processing decimation filter
  --stereo-post-processing-decimation-decimal-factor {1,2,3,4}
                        Decimation factor
  --stereo-post-processing-decimation-mode {PIXEL_SKIPPING,NON_ZERO_MEDIAN,NON_ZERO_MEAN}
                        Decimation algorithm type