Full perception

Let's add all dora-drives operators that works on image frame, which are:

  • yolov5 an object detector.
  • strong_sort a multi-object tracker.
  • yolop a lane and drivable area detector.
  • traffic_sign a traffic sign detector.

the graph will look as follows:

# graphs/tutorials/webcam_full.yaml

nodes:
  - id: webcam
    operator:
      python: ../../operators/webcam_op.py
      inputs:
        tick: dora/timer/millis/100
      outputs:
        - image
    env:
      DEVICE_INDEX: 0

  - id: yolov5
    operator: 
      outputs:
        - bbox
      inputs:
        image: webcam/image
      python: ../../operators/yolov5_op.py

  # - id: yolop
    # operator: 
      # outputs:
        # - lanes
        # - drivable_area
      # inputs:
        # image: webcam/image
      # python: ../../operators/yolop_op.py

  ## Commented out as it takes a lot of GPU memory.
  #- id: traffic_sign
    #operator: 
      #outputs:
        #- bbox
      #inputs:
        #image: webcam/image
      #python: operators/traffic_sign_op.py

  - id: strong_sort
    operator: 
      outputs:
        - obstacles_id
      inputs:
        image: webcam/image
        obstacles_bbox: yolov5/bbox
      python: ../../operators/strong_sort_op.py

  - id: plot
    operator:
      python: ../../operators/plot.py
      inputs:
        image: webcam/image
        obstacles_bbox: yolov5/bbox
       # traffic_sign_bbox: traffic_sign/bbox
       # lanes: yolop/lanes
       # drivable_area: yolop/drivable_area
        obstacles_id: strong_sort/obstacles_id
dora start graphs/tutorials/webcam_full.yaml --attach

I'm currently having issue running all nodes behind the GFW. You can look into it for inspiration.

Nice 🥳 As you can see, the value of dora comes from the idea that you can compose different algorithm really quickly.