Nuscenes 榜单处理

简介: description 英文翻译中文根据年份、传感器模态过滤待续。。。日期2024/03/19:根据 NDS、mAP、Date 排序2024/03/14:文章撰写日期

最近有个关于 Nuscenes 数据集打榜任务。在调研的过程中需要看 Nuscenes 榜单中的算法。但是算法太多,且都是折叠的,需要一个个点开看,很不方便。发现榜单是用 json 文件组织的。故写了一个可以轻松处理榜单 json 的类。

关于如何获取 Nuscenes json 的 URL 看前文:获取游览器具体下载地址。

import pandas as pd
import requests
from datetime import datetime

class NusLeaderBoard:

"""
这是一个可以批处理 Nuscenes 3D Objecet 榜单的类
已完成的功能:
1.从网页上获取榜单数据,并导出为 Excel 文件
2.根据 NDS、mAP、Date 排序
TODO:
description 英文翻译中文
根据年份、传感器模态过滤
"""

def __init__(self, detection_url) -> None:
    self.detection_url = detection_url  # "https://nuscenes.org/detection.json"
    self.json_data = self.get_detection_json()

def get_detection_json(self):
    """
    抓取 Nuscenes 3D Object Detection 榜单数据
    """
    response = requests.get(self.detection_url)
    if response.status_code == 200:
        json_data = response.json()
        return json_data

def _parse_datetime(self, time_str):
    """
    将时间字符串解析为 datetime 类型。时间字符串有两种类型:
        formats = ['%Y-%m-%dT%H:%M:%S.%fZ', '%Y-%m-%dT%H:%M:%S']
    自动匹配传入的字符串 time_str 格式
    """
    formats = ['%Y-%m-%dT%H:%M:%S.%fZ', '%Y-%m-%dT%H:%M:%S']
    for fmt in formats:
        try:
            return datetime.strptime(time_str, fmt)
        except ValueError:
            pass
    raise ValueError("Unsupported datetime format: {}".format(time_str))

def sort(self, key="NDS", reverse=True):
    """
    根据 NDS、mAP 排序
    key: 排序关键字,"Date", "mAP", "mATE", "mASE", "mAOE", "mAVE", "mAAE", "NDS"
    """
    if key == "Date":
        self.json_data = sorted(
            self.json_data,
            key=lambda x: self._parse_datetime(x["meta"]["submit_meta"][
                "submitted_at"]),
            reverse=reverse)
    else:
        self.json_data = sorted(
            self.json_data,
            key=lambda x: x["result"][0]["test_split"][key],
            reverse=reverse)

def export2excel(self, json_data=None, output_path='output.xlsx'):
    data = []
    for method in json_data:
        method_name = method['meta']['submit_meta']["method_name"]
        method_description_en = method['meta']['submit_meta'][
            "method_description"]
        # method_description_cn = translator.translate(method_description_en, src='en', dest='zh-cn')
        data.append([method_name, method_description_en])
    df = pd.DataFrame(data, columns=['method_name', 'method_description'])
    # 将数据导出到Excel文件
    df.to_excel(output_path, index=False)

if name == '__main__':

nlb = NusLeaderBoard("https://nuscenes.org/detection.json")
nlb.sort(key="NDS")
nlb.export2excel(nlb.json_data, 'output.xlsx')

已完成的功能
image.png
):

从网页上获取榜单数据
image.png
)
并导出为 Excel 文件
根据 NDS、mAP、Date 排序
TODO:

description 英文翻译中文
根据年份、传感器模态过滤
待续。。。

日期
2024/03/19:根据 NDS、mAP、Date 排序
2024/03/14:文章撰写日期

相关文章
|
8月前
|
SQL 数据格式
视图有哪些特点?哪些使用场景?
视图有哪些特点?哪些使用场景?
|
8月前
|
人工智能 自动驾驶 安全
破壁人AI百度:科技公司反内卷的典型样本
破壁人AI百度:科技公司反内卷的典型样本
60 0
|
异构计算 计算机视觉 测试技术
【YOLO系列】YOLOv6论文超详细解读(翻译 +学习笔记)
【YOLO系列】YOLOv6论文超详细解读(翻译 +学习笔记)
1352 0
|
存储 机器学习/深度学习 算法
MMDetection3d对KITT数据集的训练与评估介绍
MMDetection3d对KITT数据集的训练与评估介绍
2060 0
MMDetection3d对KITT数据集的训练与评估介绍
|
存储 资源调度 监控
|
8月前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶领域的应用进展
【5月更文挑战第20天】 随着人工智能技术的飞速发展,深度学习在图像识别领域取得了显著成果。这些进展为自动驾驶技术的安全性与可靠性提供了强大的技术支持。本文综述了深度学习在图像识别中的关键算法,分析了其在自动驾驶环境感知、决策制定和控制系统中的应用,并探讨了当前技术面临的主要挑战及潜在的解决策略。通过实验验证,深度学习模型表现出卓越的性能,推动了自动驾驶技术的进一步发展。
|
8月前
|
计算机视觉
【YOLOv8改进】Inner-IoU: 基于辅助边框的IoU损失(论文笔记+引入代码)
YOLO目标检测专栏探讨了IoU损失的局限性,并提出创新改进。分析发现,不同尺度的辅助边框对高IoU和低IoU样本的回归有不同影响。因此,提出了Inner-IoU Loss,利用尺度因子ratio控制辅助边框大小以优化损失计算。实验验证了该方法能提升检测效果,增强泛化能力。创新点包括根据样本特性选择辅助边框尺度和Inner-IoU Loss的设计。更多详情见YOLO目标检测创新改进与实战案例专栏。
|
机器学习/深度学习 自然语言处理 并行计算
【Transformer系列(3)】 《Attention Is All You Need》论文超详细解读(翻译+精读)
【Transformer系列(3)】 《Attention Is All You Need》论文超详细解读(翻译+精读)
1512 0
【Transformer系列(3)】 《Attention Is All You Need》论文超详细解读(翻译+精读)
|
人工智能 自然语言处理 自动驾驶
破壁人 AI 百度:科技公司反内卷的典型样本
互联网整个行业都在陷入被动且尴尬的局面。去年开始流行的“内卷”一词,恰如其分的描述了互联网的现状,比如抖音开始做外卖,微信强推视频号,一直硝烟弥漫的电商市场,更是激战在社区团购上。
破壁人 AI 百度:科技公司反内卷的典型样本
|
人工智能 自然语言处理 自动驾驶
破壁人AI百度:科技公司反内卷的典型样本
简介:破壁人AI百度:科技公司反内卷的典型样本 。
142 0
破壁人AI百度:科技公司反内卷的典型样本