城市景观数据集脚本

cityscapesScripts的Python项目详细描述


#城市景观数据集

此存储库包含用于检查、准备和评估城市景观数据集的脚本。这个大规模的数据集包含50个不同城市的街道场景中记录的各种立体视频序列,除了一组较大的20千个弱注释帧之外,还具有5千帧的高质量像素级注释。

详情和下载请访问:www.cityscapes-dataset.net

##数据集结构

城市景观数据集的文件夹结构如下: < TT>{root}/{type}{video}/{split}/{city}/{city}{seq:0>;6}{frame:0>;6}{type}{ext}

< DL>
各个元素的含义是:
> UL>
  • root城市景观数据集的根文件夹。我们的许多脚本都会检查指向此文件夹的环境变量cityscapes数据集是否存在,并将其用作默认选择。
  • 键入数据的类型/形式,例如gtfine表示精细的地面真值,或leftimg8bit表示左8位图像。
  • 拆分拆分,即train/val/test/train_extra/demovideo。请注意,并非所有拆分都存在所有类型的数据。因此,不要惊讶于偶尔会发现空文件夹。
  • 城市记录这部分数据的城市。
  • seq使用6位数字的序列号。
  • 使用6位数字的帧号。注意,在一些城市中,虽然记录的序列很长,但很少,而在一些城市中,记录的序列很短,其中只有第19帧被注释。
  • ext文件的扩展名和可选的后缀,例如对于地面真值文件,\polygons.json
    类型的可能值 > UL>
  • gtfine精细注释、2975次培训、500次验证和1525次测试。这种类型的注释用于验证、测试和可选的培训。注释使用包含各个多边形的json文件进行编码。此外,我们还提供png图像,其中像素值编码标签。有关详细信息,请参阅helpers/labels.pypreparation中的脚本。
  • gtcoarse粗注释,可用于所有训练和验证图像以及另一组19998个训练图像(train_extra)。这些注释可以与gtfine一起使用,也可以单独用于弱监督设置中的培训。
  • gtbboxcitypersons行人边界框注释,可用于所有培训和验证图像。请参阅helpers/labels\u citypersons.py以及[citypersons出版物(zhang等人,cvpr'17)](https://bitbucket.org/shanshanzhang/citypersons)了解更多详细信息。边界框的四个值是(x,y,w,h),其中(x,y)是其左上角,(w,h)是其宽度和高度。
  • leftimg8bit8位LDR格式的左图像。这些是标准的带注释的图像。
  • leftimg8bit\u模糊左侧图像为8位LDR格式,人脸和车牌模糊。请在原始图像上计算结果,但使用模糊图像进行可视化。感谢[mapillary](https://www.mapillary.com/)模糊图像。
  • leftimg16位16位HDR格式的左图像。这些图像提供每像素16位的颜色深度,并包含更多信息,特别是在场景的非常暗或明亮的部分。警告:图像存储为16位PNG,这是非标准的,并非所有库都支持。
  • 右图8位8位LDR格式的右立体视图。
  • 右侧img16位16位HDR格式的右侧立体视图。
  • 时间戳以ns为单位记录的时间。每个序列的第一帧的时间戳始终为0。
  • 视差预计算的视差深度图。要获得视差值,请使用p>;0:d=(float(p)-1)计算每个像素p。/256.,而p=0是无效的测量值。警告:图像存储为16位PNG,这是非标准的,并非所有库都支持。
  • 摄像机内部和外部摄像机校准。有关详细信息,请参阅[cscalibration.pdf](docs/cscalibration.pdf)
  • 车辆车辆里程表、GPS坐标和车外温度。有关详细信息,请参阅[cscalibration.pdf](docs/cscalibration.pdf)
  • 随着时间的推移,可能会添加更多类型,而且并非所有类型最初都可用。如果您需要任何其他元数据来运行您的方法,请告诉我们。

    < DL>
    拆分的可能值 > UL>
  • train通常用于训练,包含2975个带有精细和粗略注释的图像
  • val应用于验证超参数,包含500个带有精细和粗糙注释的图像。也可用于培训。
  • 测试用于在我们的评估服务器上进行测试。注释是不公开的,但为了方便起见,我们包括了ego载体注释和校正边界注释。
  • train_extra可以选择用于训练,包含19998个带有粗略注释的图像
  • 演示视频可用于定性评估的视频序列,这些视频没有可用的注释
  • ##脚本

    < DL>
    在名为scripts的文件夹中,数据集包含多个脚本
    > UL>
  • 帮助程序其他脚本包含的帮助程序文件
  • 查看器查看图像和批注
  • 准备将基本事实注释转换为适合您的方法的格式
  • 评估验证您的方法
  • 注释用于标记数据集的注释工具
  • 请注意,所有文件的顶部都有一个小文档。最重要的文件
    > UL>
  • helpers/labels.py中心文件,定义所有语义类的id,并提供各种类属性之间的映射。
  • helpers/labels\u citypersons.py定义所有citypersons行人类的id并提供各种类属性之间的映射的文件。
  • 查看器/cityscapesviewer.py查看图像并覆盖批注。
  • 准备/createTrainidLabelImgs.py将多边形格式的注释转换为带有标签ID的PNG图像,其中像素编码"序列ID",可以在labels.py中定义。
  • 准备/createTrainidInstanceImgs.py将多边形格式的注释转换为具有实例ID的PNG图像,其中像素编码由"序列ID"组成的实例ID。
  • 准备/createpanopticimgs.py将标准PNG格式的注释转换为[CoCo全景分割格式](http://cocodataset.org/format data)。
  • evaluation/evalpixellevelsemanticlabeling.py脚本来评估验证集上像素级的语义标记结果。此脚本还用于评估测试集上的结果。
  • 评估/评估评估velessmanticlabeling.py用于评估验证集上实例级语义标记结果的脚本。此脚本还用于评估测试集上的结果。
  • evaluation/evalPanopticSemanticLabeling.py脚本来评估验证集上的全景分割结果。此脚本还用于评估测试集上的结果。
  • setup.pyruncythonize_eval=python setup.py build_ext–inplace启用cython插件以加快计算速度。只为ubuntu测试。
  • 脚本可以通过PIP安装,即从脚本中安装: sudo pip安装。 这将脚本作为名为cityscapesscripts的python模块安装,并公开以下工具,有关说明,请参见上文: -csviewer -cslabeltool -csevalpixellevelsemanticlabeling -csevalinstancelevelsemanticlabeling -cspanopticsemanticlabelling -cscreatetraindlabelimgs -cscreatetrainidinstanceimgs -cs创建全景图

    请注意,对于图形工具,您还需要安装: sudo apt install python tk python-qt4

    ##评估

    在测试集上测试方法后,请在提供的测试图像上运行方法并提交结果: www.cityscapes-dataset.net/提交/ 对于语义标记,我们需要结果格式来匹配名为labelids的标签图像的格式。 因此,代码应该生成图像,其中每个像素的值对应于labels.py中定义的类id。 请注意,我们的评估脚本包含在scripts文件夹中,可用于在验证集上测试您的方法。 有关提交过程的详细信息,请访问我们的网站。

    ##联系人

    如有任何问题、建议或意见,请随时与我们联系:

    欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


    热门话题
    java限制C++代码访问JNI中的某些类   Android上的java DateFormat:不可解析的日期   通过json进行java迭代,并为其他请求调用多个API   Netbeans中的java JavaFX项目引发异常“输入流不能为null”   多线程Java newFixedThreadPool解释   |在java字符串中无法识别。split()方法   Java中的原始包装器类是否被视为引用类型?   Java swing。如何在intellij idea GUI设计工具中重写组件方法   数组乘矩阵   java将30GB的XML文件分割成小块XML   java通过一棵树递归找到一个节点,并返回指向该节点的路径   java如何将可观察的<Observable<List<T>>转换为可观察的<List<T>>   使用java在web服务器上更改php文件中的字符串?   java希望开发像tomcat这样的servlet容器   java希望提高编程的数学技能