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:文章撰写日期

相关文章
|
前端开发 JavaScript Go
VSCode 配置本地服务器
VSCode 配置本地服务器
1084 0
VSCode 配置本地服务器
|
3月前
|
SQL Java 数据库连接
Spring Data JPA 技术深度解析与应用指南
本文档全面介绍 Spring Data JPA 的核心概念、技术原理和实际应用。作为 Spring 生态系统中数据访问层的关键组件,Spring Data JPA 极大简化了 Java 持久层开发。本文将深入探讨其架构设计、核心接口、查询派生机制、事务管理以及与 Spring 框架的集成方式,并通过实际示例展示如何高效地使用这一技术。本文档约1500字,适合有一定 Spring 和 JPA 基础的开发者阅读。
363 0
|
8月前
|
存储 人工智能 安全
AI 驱动下的阿里云基础设施:技术创新与产品演进
本文整理自阿里云智能集团副总裁、阿里云弹性计算产品线与存储产品线负责人吴结生在“2025 AI势能大会”上的演讲,重点介绍了阿里云在AI基础设施领域的技术创新与产品演进。内容涵盖CIPU架构、盘古存储系统、高性能网络HPN等关键技术,以及第九代英特尔企业实例、ESSD同城冗余云盘等新产品发布。同时,文章详细阐述了灵骏集群的优化措施和可观测能力的提升,展示阿里云如何通过持续创新为AI负载提供强大支持,助力企业在AI时代实现智能化转型。
AI 驱动下的阿里云基础设施:技术创新与产品演进
|
11月前
|
数据采集 数据可视化 数据挖掘
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
本文探讨了金融资产波动率建模中的三种主流方法:GARCH、GJR-GARCH和HAR模型,基于SPY的实际交易数据进行实证分析。GARCH模型捕捉波动率聚类特征,GJR-GARCH引入杠杆效应,HAR整合多时间尺度波动率信息。通过Python实现模型估计与性能比较,展示了各模型在风险管理、衍生品定价等领域的应用优势。
931 66
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
|
数据采集 数据安全/隐私保护 开发者
|
Kubernetes 网络安全 API
在K8S中,集群内有个节点not ready,如何排查?
在K8S中,集群内有个节点not ready,如何排查?
如何解决 conda install 库时报错:The environment is inconsistent, please check the package plan carefully
如何解决 conda install 库时报错:The environment is inconsistent, please check the package plan carefully
如何解决 conda install 库时报错:The environment is inconsistent, please check the package plan carefully
|
Java
Java垃圾回收器:版本差异、使用技巧与最佳实践
Java垃圾回收器:版本差异、使用技巧与最佳实践
494 1
|
机器学习/深度学习 编解码 人工智能
深度学习与CV教程(16) | 生成模型(PixelRNN,PixelCNN,VAE,GAN)
本文讲解了无监督学习(聚类、PCA、特征学习、密度估计)和三种常用生成模型的原理及优缺点:Pixel RNN / Pixel CNN、变分自编码器(VAE)、生成对抗网络(GAN)【对应 CS231n Lecture 13】
20069 1
 深度学习与CV教程(16) | 生成模型(PixelRNN,PixelCNN,VAE,GAN)
|
编解码
UE中使用Editor Utility Widget创建编辑器工具
UE中使用Editor Utility Widget创建编辑器工具
951 0
UE中使用Editor Utility Widget创建编辑器工具