Coder Social home page Coder Social logo

autoware_perception_evaluation's Introduction

autoware_perception_evaluation

perception_eval is a tool to evaluate perception tasks.

Documents

English | 日本語

Overview

Evaluate Perception & Sensing task

3D tasks

Task Metrics Sub-metrics
Detection mAP AP, APH
Tracking CLEAR MOTA, MOTP, IDswitch
Prediction WIP WIP
Sensing Check Pointcloud Detection Area & Non-detection Area

2D tasks

Task Metrics Sub-metrics
Detection2D mAP AP
Tracking2D CLEAR MOTA, MOTP, IDswitch
Classification2D Accuracy Accuracy, Precision, Recall, F1score

Dataset format

We support T4Dataset format. This has same structure with NuScenes. The expected dataset directory tree is shown as below.

data_root/
    │── annotation/     ... annotation information in json format.
    │   │── sample.json
    │   │── sample_data.json
    │   │── sample_annotation.json
    │   └── ...
    └── data/           ... raw data.
        │── LIDAR_CONCAT/  # LIDAR_TOP is also OK.
        └── CAM_**/

Using perception_eval

Evaluate with ROS

perception_eval is mainly used in tier4/driving_log_replayer that is a tool to evaluate output of autoware. If you want to evaluate your perception results through ROS, use driving_log_replayer or refer test/perception_lsim.py.

Evaluate with your ML model

This is a simple example to evaluate your 3D detection ML model. Basically, most parts of the codes are same with test/perception_lsim.py, so please refer it.

from perception_eval.config import PerceptionEvaluationConfig
from perception_eval.manager import PerceptionEvaluationManager
from perception_eval.common.object import DynamicObject
from perception_eval.evaluation.result.perception_frame_config import CriticalObjectFilterConfig
from perception_eval.evaluation.result.perception_frame_config import PerceptionPassFailConfig

# REQUIRED:
#   dataset_path: str
#   model: Your 3D ML model

evaluation_config = PerceptionEvaluationConfig(
    dataset_paths=[dataset_path],
    frame_id="base_link",
    result_root_directory="./data/result",
    evaluation_config_dict={"evaluation_task": "detection",...},
    load_raw_data=True,
)

# initialize Evaluation Manager
evaluator = PerceptionEvaluationManager(evaluation_config=evaluation_config)

critical_object_filter_config = CriticalObjectFilterConfig(...)
pass_fail_config = PerceptionPassFailConfig(...)

for frame in datasets:
    unix_time = frame.unix_time
    pointcloud: numpy.ndarray = frame.raw_data["lidar"]
    outputs = model(pointcloud)
    # create a list of estimated objects with your model's outputs
    estimated_objects = [DynamicObject(unix_time=unix_time, ...) for out in outputs]
    # add frame result
    evaluator.add_frame_result(
        unix_time=unix_time,
        ground_truth_now_frame=frame,
        estimated_objects=estimated_objects,
        ros_critical_ground_truth_objects=frame.objects,
        critical_object_filter_config=critical_object_filter_config,
        frame_pass_fail_config=pass_fail_config,
    )

scene_score = evaluator.get_scene_result()

autoware_perception_evaluation's People

Contributors

boczekbartek avatar dependabot[bot] avatar hayato-m126 avatar ktro2828 avatar miursh avatar pawel-kotowski avatar scepter914 avatar shin-kyoto avatar shmpwk avatar wep21 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.