【数据集】浙大动态人类3d数据集LightStage

2023-11-13

LightStage

LightStage是一个多视图数据集,在NeuralBody中提出。该数据集使用具有 20+ 同步摄像头的多摄像头系统捕获多个动态人类视频。人类执行复杂的动作,包括旋转、太极、手臂摆动、热身、拳击和踢腿。我们提供使用EasyMocap恢复的SMPL-X参数,其中包含身体,手和面部的运动。

23个摄像机

363到388都有类似结构(396有点特殊)
整体架构(以363文件夹为例)

D:.
├─annots
│  ├─01
│  ├─02
│  ├─03
│  ├─04
│  ├─05
│  ├─06
│  ├─07
│  ├─08
│  ├─09
│  ├─10
│  ├─11
│  ├─12
│  ├─13
│  ├─14
│  ├─15
│  ├─16
│  ├─17
│  ├─18
│  ├─19
│  ├─20
│  ├─21
│  ├─22
│  └─23
├─smplx
└─videos

在这里插入图片描述
相机内参文件intri.yaml
相机内参参数k 和 畸变系数(但是好像全部都是0)
在这里插入图片描述

相机外参文件extri.yml
自上到下应该是旋转向量,旋转矩阵,平移量
在这里插入图片描述

25个2d关节点对应

            
            鼻子 下颈 
            右肩 右肘 右手腕
            左肩 左肘 左手腕 
            骨盆 右骨盆 右膝 右脚踝 左骨盆 左膝 左脚踝 
            右眼 左眼 右耳 左耳 左大脚趾 左脚小拇指趾 左脚跟 右大脚趾 右脚小拇指趾 右脚跟 
           

浙大指南【快速开始
画点代码直接拿去用就行

def draw_points(img,uv,color=(255,255,255)):
    for i in range(len(uv)):
        img=cv.circle(img,(int(uv[i][0]),int(uv[i][1])),3, color, -1)  #(x,y)
    return img

def draw_points_one(imgpath,uv,outpath,color=(255,255,255)):
    for i in range(len(uv)):
        img=cv.imread(imgpath)
        img=cv.circle(img,(int(uv[i][0]),int(uv[i][1])),3, color, -1)  #(x,y)
        cv.imwrite(os.path.join(outpath,"kp_{}.jpg".format(i)),img)
    return img
def draw(points_2d,GT_2d,path):
    img = cv.imread(path)
    img = draw_points(img, GT_2d, color=(0, 255, 0))
    img = draw_points(img, points_2d)
    cv.imwrite(r"result.jpg", img)

annots文件夹中每个json文件的架构如下:

{
    "filename": "images/23/000000.jpg",
    "height": 1024,
    "width": 1024,
    "annots": [
        {
            "bbox": [
            #应该是x1,y1,x2,y2,confidence
            ],
            "personID": 0,
            "keypoints": [
                [
                    581.913,
                    249.231,
                    0.819745
                ],
                #....25个关键点
             
            ],
            "isKeyframe": false,
            "face2d": [
               #.....
            ],
            "handl2d": [
              #......
            ],
            "handr2d": [
               #......
            ]
        }
    ],
    "isKeyframe": false
}

smplx文件夹:

[
    {
        "id": 0,
        "Rh": [
          [1.408, 1.083, 1.204]
        ],
        "Th": [
          [0.218, 0.511, 1.286]
        ],
        "poses": [
          [0.000, 0.000, 0.000, -0.113, 0.069, -0.113, -0.062, -0.023, -0.183, -0.000, 0.000, 0.000, 0.076, 0.079, 0.044, 0.141, -0.106, -0.004, -0.000, 0.000, 0.000, -0.073, 0.085, -0.084, -0.231, -0.099, 0.008, -0.000, -0.000, 0.000, -0.000, 0.000, -0.000, 0.000, -0.000, 0.000, -0.097, 0.088, 0.070, 0.002, -0.000, -0.000, -0.000, 0.000, 0.258, -0.148, 0.070, -0.140, -0.069, -0.218, 0.653, -0.157, -0.054, 0.909, -0.173, -0.300, 0.053, -0.140, 0.038, 0.026, -0.199, 0.010, 0.237, 0.016, -0.177, -0.255, -1.322, 0.320, 0.552, -0.574, 0.144, 0.157, -0.867, 0.247, 0.371, -0.428, 0.013, 0.106, 0.022, -0.019, 0.006, -0.001, -0.000, 0.000, -0.001, -0.000, -0.000]
        ],
        "expression": [
          [0.000, 0.000, 0.000, -0.000, 0.000, 0.000, 0.000, -0.000, 0.000, 0.000]
        ],
        "shapes": [
          [-0.066, 0.078, 0.101, -0.077, -0.047, -0.080, 0.004, 0.010, 0.012, 0.008]
        ]
    }
]

读取该数据集的脚本

import yaml
import cv2
import zipfile
import glob
import os
import json

import skvideo.io


# read_yml,write_yml 获得普通格式的文件夹
def read_yml(file):
    """读取yml,传入文件路径file"""
    f = open(file, 'r', encoding="utf-8")  # 读取文件
    yml_config = yaml.load(f, Loader=yaml.FullLoader)  # Loader为了更加安全
    """Loader的几种加载方式
    BaseLoader - -仅加载最基本的YAML
    SafeLoader - -安全地加载YAML语言的子集。建议用于加载不受信任的输入。
    FullLoader - -加载完整的YAML语言。避免任意代码执行。这是当前(PyYAML5.1)默认加载器调用yaml.load(input)(发出警告后)。
 	UnsafeLoader - -(也称为Loader向后兼容性)原始的Loader代码,可以通过不受信任的数据输入轻松利用。
 	"""
    return yml_config


def write_yml(file, data):
    # 写入数据:
    with open(file, "a", encoding='utf-8') as f:
        # data数据中有汉字时,加上:encoding='utf-8',allow_unicode=True
        f.write('\n')  # 插入到下一行
        yaml.dump(data, f, encoding='utf-8', allow_unicode=True)


# readListInFileNode,readCameraCfg用来获得opencv格式的yaml文件夹
def readListInFileNode(filenode):
    assert (filenode.isSeq())
    res = []
    for i in range(filenode.size()):
        res.append(filenode.at(i).real())
    return res


def readextriCfg(yamlpath):
    cv_file = cv2.FileStorage(yamlpath, cv2.FILE_STORAGE_READ)
    """
    R: 
    Rot:
    T:

    """
    res = {}
    for i in range(1, 24):
        R = r'R_{}'.format(str(i).zfill(2))
        Rot = r'Rot_{}'.format(str(i).zfill(2))
        T = r'T_{}'.format(str(i).zfill(2))

        extri = {
            'R': cv_file.getNode(R).mat(),
            'Rot': cv_file.getNode(Rot).mat(),
            'T': cv_file.getNode(T).mat()

        }
        res['{}'.format(i)] = extri
    return res


def readintriCfg(yamlpath):
    cv_file = cv2.FileStorage(yamlpath, cv2.FILE_STORAGE_READ)
    """
    K:内参
    dist:畸变系数
    """
    res = {}
    for i in range(1, 24):
        K = r'R_{}'.format(str(i).zfill(2))
        dist = r'Rot_{}'.format(str(i).zfill(2))

        intri = {
            'K': cv_file.getNode(K).mat(),
            'dist': cv_file.getNode(dist).mat(),
        }
        res['{}'.format(i)] = intri

    # res = {
    #         "CameraExtrinsicMat": cv_file.getNode("CameraExtrinsicMat").mat(),
    #         "CameraMat": cv_file.getNode("CameraMat").mat(),
    #         "DistCoeff": cv_file.getNode("DistCoeff").mat(),
    #         # "ImageSize": readListInFileNode(cv_file.getNode("ImageSize")),
    #         # "ReprojectionError": cv_file.getNode("ReprojectionError").real(),
    #         # "DistModel": cv_file.getNode("DistModel").string()
    #         }
    return res


# 解压文件夹
def unzip_file(zip_src, dst_dir):
    r = zipfile.is_zipfile(zip_src)
    if r:
        fz = zipfile.ZipFile(zip_src, 'r')
        for file in fz.namelist():
            fz.extract(file, dst_dir)
        print('unzip successfully {}'.format(zip_src))
    else:
        print('{} is not zip'.format(zip_src))


def unzipfile(datasetpath, dataset):
    """
    解压zip数据集
    """
    if dataset == 'LightStage':
        # 获得所有zip文件夹

        zipfiles = glob.glob(r"{}/*.zip".format(datasetpath))

        for zipfile in zipfiles:
            unzip_file(zipfile)
        print("finish unzip!!!")


def readdata(datasetpath, dataset, tar, extract_img=True):
    """
    datasetpath:数据集文件的路径
    dataset:数据集名称
    tar:是否进行解压
    extract_img:是否提取视频文件(存放在"images/相机/"文件夹下)

    return 字典
    {
     文件夹序号(e.g.363){   #相机    外参       内参
        {'camera':{'1':{'excfg':{},'incfg':{}},.....}

        {'annots':
            {'01':#相机编号
                [
                    { #图片编号
                            "filename": "images/01/000000.jpg",
                            "height": 1024,
                            "width": 1024,
                            "annots":
                            [
    `                            { "bbox": []
                                    "personID": 0,
                                    "keypoints": [....] #2d关键点,三个维度(x,y,confidence)
                                    "face2d":[]
                                    "handl2d": [..]
                                    "handr2d":[....]`
                                }
                            ]
                            "isKeyframe":.
                    }
                    ......

                ]


        }
        {
        'smpl':[....]
                ....
        }
    }
    """
    # 这里最好加一个转化为小写的
    if tar:
        unzipfile(datasetpath, dataset)

    if dataset == 'LightStage':
        """
        (1)396号文件夹中不包含smpl文件和annot文件,故没有添加

        """
        userlist = [i for i in range(363, 389)]
        # userlist = [363]
        cameralist = [i for i in range(1, 24)]
        # cameralist= [1]

        results = {}

        for user in userlist:
            user = str(user)
            # step1:相机参数文件
            camera = {}
            res = {}
            extripath = os.path.join(datasetpath, user, "extri.yml")  # 外参文件
            intripath = os.path.join(datasetpath, user, "extri.yml")  # 内参文件
            # intri.yml

            # yaml文件上可以使用异常处理(opencv格式yaml文件和普通yaml文件)

            excfg = readextriCfg(extripath)
            incfg = readintriCfg(intripath)

            camera['excfg'] = excfg
            camera['incfg'] = incfg

            res['camera'] = camera

            videopath = os.path.join(datasetpath, user, "videos")

            # step2:json文件处理: 处理对应annot中的json文件
            camindex = {}

            for cam in cameralist:
                numberOfFrame = 0
                cam = str(cam).zfill(2)
                video = cam + '.mp4'
                vid_file = os.path.join(videopath, video)
                vidcap = cv2.VideoCapture(vid_file)
                success, image = vidcap.read()
                frames_num = vidcap.get(7)
                print(">>>当前视频{}的总帧数是".format(video), int(frames_num))

                annots_path = os.path.join(datasetpath, user, 'annots', cam)

                annotlist = glob.glob("{}/*.json".format(annots_path))
                # print(annotlist)
                # 转成有序数列????

                print(">>>只有{}个json文件,只生成{}帧".format(len(annotlist), len(annotlist)))

                # step2.1:视频处理 (图片生成)
                jsonInCamera = []
                """
                for i in range(0,len(annotlist)):
                    print(i)
                    if extract_img:
                        success, image = vidcap.read()
                        if not success:
                            print('fail!')
                            break
                    print(cv2.CAP_PROP_POS_FRAMES)
                """

                imgarray = skvideo.io.vread(vid_file)
                print(">>>the total frames of {} is".format(video), imgarray.shape)
                for frame in imgarray:

                    # 创建对应路径images/相机(images/01/000000.jpg)
                    img_dir = os.path.join(datasetpath, user, 'images')

                    if extract_img:
                        if not os.path.exists(img_dir):
                            os.mkdir(img_dir)
                        cam_dir = os.path.join(img_dir, cam)

                        if not os.path.exists(cam_dir):
                            os.mkdir(cam_dir)

                        imagename = "{}.jpg".format(str(numberOfFrame).zfill(6))
                        img_out = os.path.join(cam_dir, imagename)
                        cv2.imwrite(img_out, frame)
                        print(">>> creating {} frame of {} ".format(str(numberOfFrame).zfill(6), video))

                    annots = json.load(open(r"{}/{}/annots/{}/{}.json".format(datasetpath, user, str(cam).zfill(2),
                                                                              str(numberOfFrame).zfill(6)), 'r'))
                    jsonInCamera.append(annots)
                    numberOfFrame = numberOfFrame + 1

                camindex[(cam)] = jsonInCamera
            res['annots'] = camindex

            # step3:处理smplx参数
            smplInCamera = []
            smpllist = glob.glob(r"{}/{}/smplx/*.json".format(datasetpath, user))
            print("smplx标注文件共有{}".format(len(smpllist)))
            for i in range(0, len(smpllist)):
                smplx = json.load(open(r"{}/{}/smplx/{}.json".format(datasetpath, user, str(i).zfill(6)), 'r'))
                smplInCamera.append(smplx)
            res['smplx'] = smplInCamera
            # print(res)

            results[(user)] = res

    return results


if __name__ == '__main__':
    datasetpath = '/hy-tmp/LightStage'
    dataset = 'LightStage'
    result = readdata(datasetpath, dataset, False, True)

    package363 = result['363']
    # 相机参数
    # camera=package363['camera']
    # print(">>>相机参数如下:",camera)

    # annot
    annot = package363['annots']['01'][0]  # 第一帧的标注文件
    print(type(annot))
    print(">>>第一个annot如下:\n ", annot)
    print(">>> filename \n", annot['filename'])
    print(">>> height \n", annot['height'])
    print(">>> width \n", annot['width'])
    print(">>> annots \n", annot['annots'])
    print(">>> bbox \n", annot['annots'][0]['bbox'])

    # smplx参数
    print(">>> smplx \n", package363['smplx'][0])  #
    # print(">>> box \n",annot['box'])
    # print(">>> box \n",annot['box'])

    # print(result)
    i = 363
    # extripath = r"{}/{}/extri.yml".format(datasetpath, i)  # 外参文件
    # intripath = r"{}\{}\intri.yml".format(datasetpath, i)  # 内参文件
    #
    # extripath = os.path.join(datasetpath, str(i), "extri.yml")  # 外参文件
    # excfg = readextriCfg(extripath)
    # intripath = os.path.join(datasetpath, str(i), "extri.yml")
    # incfg = readintriCfg(intripath)
    # camera={}
    # # print(incfg)
    # camera['excfg'] = excfg
    # camera['incfg'] = incfg
    # print(camera)
    # # print(extripath)
    # # print(intripath)
    # # excfg = read_yml(extripath)
    # # incfg = read_yml(intripath)
    #
    # # print(excfg)
    # # print(incfg)
    # # excfg=readCameraCfg(extripath)
    # # print(excfg)
    #
    # # filepath = "/home/yxhuang/data/CICV/task4/task4/camera.yaml"
    # #D:\computervision\work\dataset\363\extri.yml
    # # camera_cfg = readextriCfg(extripath)
    # # print(camera_cfg)
    # #
    # # vid_file=r'D:\computervision\work\dataset\363\videos\02.mp4'
    # # vidcap = cv2.VideoCapture(vid_file)
    # # success, image = vidcap.read()
    # # frames_num = vidcap.get(7)
    # # print(frames_num)
    # # img_dir = '{}/{}/images/'.format(datasetpath, i)
    # # if not os.path.exists(img_dir):
    # #     os.mkdir(img_dir)
    # annots = json.load(open(r"{}/{}/annots/{}/{}".format(datasetpath, i, str(1).zfill(2),'000000.json'), 'r'))
    # print(annots)

# expected alphabetic or numeric character, but found ':'
"""
问题来自于:
%YAML:1.0
!!opencv-matrix
"""
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【数据集】浙大动态人类3d数据集LightStage 的相关文章

  • Python 分析:“‘select.poll’对象的‘poll’方法”是什么?

    我已经使用 python 分析了我的 python 代码cProfile模块并得到以下结果 ncalls tottime percall cumtime percall filename lineno function 13937860 9
  • 酸洗过程是确定性的吗?

    对于特定的输入值 Pickle 是否总是产生相同的输出 我想当腌制具有相同内容但不同插入 删除历史记录的字典时可能会出现问题 我的目标是使用 Pickle 和 SHA1 创建函数参数的 签名 以实现 memoize 我想当腌制具有相同内容但
  • 如果值在列表 pandas 中,则布尔向量

    在 pandas 中创建布尔向量来测试值很容易 例如 DF a gt 10 但是你怎么写 DF a in list 根据某个列表或其他列表中系列中每个值的成员资格生成布尔向量 我收到一个值错误 我知道我可以非常简单地循环数据 但是不必这样做
  • Pandas loc 有条件的替代方案

    我计划提高非 Pandas 开发人员的可读性 我有以下内容workingPython 代码使用 loc new value stackoverflow s query nbc SUGGESTED suggested QUERY query
  • 使用 ElementTree 时出现未定义实体错误

    我有一组 XML 文件 需要读取它们并将其格式化为单个 CSV 文件 为了读取 XML 文件 我使用了提到的解决方案here https stackoverflow com questions 5530857 parse xml file
  • 将 SSH 密钥文件与 Fabric 结合使用

    如何配置结构以使用 SSH 密钥文件连接到远程主机 例如 Amazon EC2 实例 由于某种原因 找到一个带有 SSH 密钥文件使用示例的简单 fabfile 并不容易 我写了一个博客文章 http blog y3xz com post
  • 如何在 py_function 之后重塑(图像,标签)数据集

    我正在尝试读取自定义映射数据集进行训练 但是在使用 py function 映射数据集后 我得到了未知的形状 例如 def process path file path label get label file path img tf io
  • Python 和图形数据库。使用 java lib 包装器还是 REST api?

    我想问你在Python中使用图数据库 Neo4j 的最佳方法 你觉得我应该使用 neo4j python embedded neo4j python 嵌入式 http docs neo4j org chunked milestone pyt
  • Python:删除字符串开头的数字

    我有一些这样的字符串 string1 123 123 This is a string some other numbers string2 1 This is a string some numbers string3 12 3 12 T
  • Python str.format() 方法的默认 kwarg 值

    我希望尝试使现有字符串的复数化尽可能简单 并且想知道是否有可能得到str format 在查找 kwargs 时解释默认值 这是一个例子 string number of sheep sheep has run away dict comp
  • 为什么我应该在 Python 中引用“名称”和“绑定”而不是“变量”和“赋值”?

    为什么我应该在 Python 中引用 名称 和 绑定 而不是 变量 和 赋值 我知道这个问题有点笼统 但我真的很想知道 在 C 和 C 中 变量是命名的内存位置 变量的值是存储在该位置的值 分配给变量并修改该值 所以变量是内存位置 而不是它
  • 如何在Python中增加文件名

    我正在尝试保存大量需要分成不同文件的数据 如下所示 数据 1 dat 数据 2 dat 数据 3 dat 数据 4 dat 我如何在Python中实现这个 from itertools import count filename data
  • 如何查看Databricks中的所有数据库和表

    我想列出 Azure Databricks 中每个数据库中的所有表 所以我希望输出看起来像这样 Database Table name Database1 Table 1 Database1 Table 2 Database1 Table
  • 通过 Scrapy 抓取 Google Analytics

    我一直在尝试使用 Scrapy 从 Google Analytics 获取一些数据 尽管我是一个完全的 Python 新手 但我已经取得了一些进展 我现在可以通过 Scrapy 登录 Google Analytics 但我需要发出 AJAX
  • 将 saxon 与 python 结合使用

    我需要使用 python 处理 XSLT 目前我正在使用仅支持 XSLT 1 的 lxml 现在我需要处理 XSLT 2 有没有办法将 saxon XSLT 处理器与 python 一起使用 有两种可能的方法 设置一个 HTTP 服务 接受
  • 将数据从 python pandas 数据框导出或写入 MS Access 表

    我正在尝试将数据从 python pandas 数据框导出到现有的 MS Access 表 我想用已更新的数据替换 MS Access 表 在 python 中 我尝试使用 pandas to sql 但收到错误消息 我觉得很奇怪 使用 p
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 如何在 Python 中检索 for 循环中的剩余项目?

    我有一个简单的 for 循环迭代项目列表 在某些时候 我知道它会破裂 我该如何退回剩余的物品 for i in a b c d e f g try some func i except return remaining items if s
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为

随机推荐

  • 分析结果循环写入csv

    30户的暖气的分析结果复制粘贴下来发给队友 好像是有点多了一个对话框都过不去 被嫌弃了 你就不能给我打包个excel 好吧 import csv with open result csv w as csvfile writer csv wr
  • Docker 安装运行 ElasticSearch 遇到的问题!

    在创建 6 4 3版本的 ES 以后启动发现过了一会 ES 自动退出了 原因好像是 ES 的默认分配的内存太大了 进程被自动杀死了 所以以下我来记录下这坑 使用ES工具类索引时运行测试方法时报错 org elasticsearch tran
  • 【linux--------基础Apache配置】

    这里写目录标题 关于Apache介绍 部署简单的Apache静态网站 常见问题 关于Apache介绍 Apache是一个开源的Web服务器软件 它是世界上最流行的Web服务器之一 Apache的全称为Apache HTTP Server 它
  • cublas 实战

    导言 搞了一段时间的CUDA程序 虽然也不是写不出复杂程序 但是写个矩阵乘法都要搞个半天 还要担心各种性能瓶颈 不过 还好有cublas 实现了非常多的数学运算 这下子可以好好利用一番 以后再也不用担心自己写的CUDA效率不高了 入门 cu
  • 查看ssh端口号_更改centos系统ssh连接端口号

    由于本人平时爱折腾 之前趁着阿里云和腾讯云搞活动期间分别搞了台服务器 刚开始的时候 服务器的防护措施没有做好 陆陆续续服务器被黑了好几次 最惨的一次是搭建的知识库的服务器被黑 导致所有的数据丢失 黑客在服务器留言需要0 25个比特币赎回数据
  • 记2016.10.15百度面试经历,软件研发工程师

    9月参加的网上笔试 选择主要做了一些行测的题 头一次做行测题 后面有三道编程题 做出来一道 卡在第二道了50 感觉自己水水的 百度也一直没通知面试 以为被刷了就没抱什么希望 后来13号竟然发来了面试通知还是有点小激动 要求9 00 并且提前
  • Quartz.NET简明示例

    下面是一个 Quartz NET 的简单例子 初始化调度器工厂 ISchedulerFactory sf new StdSchedulerFactory 获取默认调度器 IScheduler scheduler sf GetSchedule
  • Linux 反引号、单引号、双引号简析

    文章目录 一 引号的作用 二 反引号 三 单引号 四 双引号 五 引号解释顺序 一 引号的作用 1 将多个因为空格或者回车等分隔符隔开的字符串合在一起 避免被命令行解析分开 例如 a b c 是一个字符串 而不会像 a b c 这样会被解析
  • 6.基于STM32C8T6的四旋翼无人机的飞控制作----实践操作1,AD电路板绘制-前期准备

    飞控的各种芯片是焊接在电路板上的 电路板是各种传感器和接口的载体 电路板的设计过程也是极其考验耐心和仔细程度的 在大公司里都是每个部门负责其中的一部分工作 如原理图设计 布局布线 测试等等 在小公司和大学生的设计中 经常需要一个人走完全部的
  • 【Linux杂学】CMake:编写 CMakeLists

    CMake官网 掌握CMake 1 变量 CMake 变量名称区分大小写 且只能包含字母数字字符和下划线 CMAKE 变量 存储均为字符串 是CMake 自定义变量 命名应避开 set 可设变量值 第一参数是变量名 其余参数是值 多个参数被
  • Kylin 大数据下的OLAP解决方案和行业典型应用

    最近工作中应用到了 Kylin 因此调研了 Kylin的原理和行业应用 本文参考了官网和众多其他公司中 Kylin的应用案例 文末给出了出处 希望对大家有帮助 Apache Kylin的原理和技术架构 Apache Kylin 从数据仓库中
  • 火狐浏览器关闭百度热榜(屏蔽网站特定元素)

    2023 1 26更新 火狐浏览器不能下载 uBlock Origin 解决方法 https github com AdguardTeam AdguardBrowserExtension releases How to install be
  • 一、voc数据集按比例划分train、val

    下载的voc数据集 images annotations 经下代码 按比例划分成 只需要修改中文批注部分路 import os import sys import random import shutil if name main trai
  • Geforce 错误代码 ERROR CODE:0x0003问题方法

    笔者在360驱动大师安装了geforce驱动 打开geforce遇到报错0x0003 重启和重装都无效 解决办法是到nvidia官网重新安装了官网的geforce驱动 然后就能打开了
  • ARP协议

    一 ARP协议的简介 1 在网络通讯时 源主机的应用程序只知道目的主机的IP地址和端口号 却不知道目的主机的硬件地址 而数据包首先是被网卡接收到再去处理上层协议的 如果接收到的数据包的硬件地址与本机不符 则直接丢弃 因此在通讯前必须获得目的
  • pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn pym

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中 居左 居右 Sma
  • HCIP——OSPF知识点

    目录 一 OSPF协议的简介 二 OSPF的五种数据包 三 OSPF协议的7种状态机 四 OSPF 的工作过程 五 OSPF的基础配置 六 扩展配置 七 OSPF的LSA 八 OSPF的不规则区域 一 OSPF协议的简介 Ospf 开放式最
  • 3D渲染速度慢,花重金买显卡还是用云渲染更划算

    3D渲染对建筑师和设计师来说并不陌生 3D渲染的过程中出现渲染卡顿 特殊材质难以渲染 或者本地配置不足 本地渲染资源不够时 常常会影响工作效率 本文比较了3D渲染时 为提高工作效率 买显卡还是用云渲染更划算 希望对大家有帮助 3D渲染速度慢
  • 电脑麦克风输入没声音,如何解决

    文章目录 一 麦克风输入没声音的原因 二 解决办法 1 打开麦克风隐私权限 2 设置更换输入设备 3 打开麦克风设置 4 更新声卡驱动 重启电脑 5 设备损坏 更换设备 一 麦克风输入没声音的原因 麦克风没声音 麦克风设置问题或硬件损坏问题
  • 【数据集】浙大动态人类3d数据集LightStage

    LightStage LightStage是一个多视图数据集 在NeuralBody中提出 该数据集使用具有 20 同步摄像头的多摄像头系统捕获多个动态人类视频 人类执行复杂的动作 包括旋转 太极 手臂摆动 热身 拳击和踢腿 我们提供使用E