-
描述本模型基于以下数据集和算法训练而来:数据集:二分类猫狗图片分类小数据集算法:图像分类ResNet50-EI-Backbone模型的预测结果格式是:{ "predicted_label": "dog", "scores": [ [ "dog", "0.821" ], [ "cat", "0.179" ] ] }交付交付方式华为云ModelArts交付区域华北-北京一、华北-北京四、华东-上海一、华东-上海二、华南-广州、亚太-**
-
描述Fast-SCNN(图像分割/Pytorch)1. 概述此模型基于Fast-SCNN: Fast Semantic Segmentation Network中提出的模型结构实现,该算法会载入在Cityscape上的预训练模型,在用户数据集上做迁移学习。我们提供了训练代码和可用于训练的模型,用于实际场景的微调训练。训练后生成的模型可直接在ModelArts平台部署成在线服务。图像分割的评估手段一般使用mIOU指标,详细说明请参考:https://github.com/mcordts/cityscapesScripts#evaluation本算法的其他信息如下表所示:项目说明参考论文Fast-SCNN: Fast Semantic Segmentation Network使用框架Pytorch-1.4.0训练集Cityscapes leftImg8bit_trainvaltest.zip中的train set训练总epoch数1200训练batch_size使用6卡训练,每张卡TRAIN_BATCH_SIZE = 2,相当于总batch_size为12训练硬件及耗时6*v100,11.7小时测试集Cityscapes leftImg8bit_trainvaltest.zip中的test set推理硬件及速度CPU,2.6s/pic输入图像尺寸1024*2048*3原论文准确率mIOU=68.62本算法准确率mIOU=68.6682、训练2.1. 算法基本信息任务类型:图像分割支持的框架引擎:PyTorch-1.4.0-python3.6算法输入:存储在OBS上的数据集,必须按照Cityscape数据集的格式进行存储,详情请查看下文第4节案例指导Cityscape预训练模型,在Cityscape上的mIOU是68.668算法输出:用于Pytorch推理的pth模型,CPU推理速度:2.6s/pic代码结构src |- pre-trained_weights |- Fast-SCNN无预训练模型,此文件夹为空 |- trained_model |- model |- segmentron |- ... |- config.yaml |- config.json |- customize_service.py |- best_model.pth |- configs # 配置文件,包含除fast-scnn外的其他算法 |- cityscapes_fast_scnn.yaml |- ... |- segmentron # 开源包、模型构建、数据集加载等文件 |- ... |- tools |- train.py # 执行训练 |- eval.py # 在验证集上验证,输出伪彩色结果图像和评估结果 |- eval_txt.py # 在验证集上验证,输出结果保存为txt |- run.py # 启动文件,根据超参数启动train或eval |- demo.py2.2. 训练参数说明名称默认值类型是否必填是否可修改描述num_nodes1int是是训练使用 GPU 数cuda_visiable0string是是GPU 编号,如果选择多卡,则需要按照“0,1,2,3”的格式填写config_fileconfigs/cityscapes_fast_scnn.yamlstring否是配置文件路径,支持配置为OBS上的某个路径,不配置时,默认路径为本算法代码内的路径train_epochs10int是是总训练轮数(cityscape数据集上建议设置为1000以上);设置为0时,不进行训练,直接将本算法mIOU达到68.668的模型保存到输出路径。train_batch_size12int是是训练时每块GPU指定的图片数(例如默认使用单卡时设置为12,而使用6卡时应当设置为2以保证总batchsize=2*6=12)。solver_lr0.045string否是base 学习率solver_auxTruestring否是是否使用辅助训练solver_aux_weight0.4string否是辅助训练权重load_weighttrained_model/model/best_model.pthstring否是pth模型文件路径,支持加载OBS上的pth模型进行训练,默认路径时支持加载本算法达到mIOU=68.668的模型作为初始化参数;支持设置为中间过程保存的模型进行断点续训;设置为None时直接进行训练(train from scratch).evalFalsestring否是是否进行模型评估,默认为False,如果设为True,则必须设定load_weight参数,加载指定的pth模型,在创建训练作业时指定的数据存储位置验证集上进行预测,所有预测结果pred_results及模型评估结果eval_result.txt将保存到创建训练作业时指定的训练输出位置上注1:设置load_weight时,支持两种保存形式的模型训练完成后保存的最佳模型best_model.pth,只保存模型参数 |- learning_to_downsample.conv.conv.weight |- ... |- learning_to_downsample.conv.bn.weight |- ... |- learning_to_downsample.conv.bn.bias |- ... |- learning_to_downsample.conv.bn.running_mean |- ... |- learning_to_downsample.conv.bn.running_mean |- ... |- learning_to_downsample.conv.bn.num_batches_tracked |- ... |- ...中间过程保存的模型,除模型参数外,保存优化器、学习率、epoch等参数; 例如 2.pth |- epoch # 此模型文件保存时已训练的epoch数 |- state_dict # 模型参数,与上文best_model.pth结构一致 |-... |- optimizer # 优化器参数 |- lr_scheduler # 学习率参数(包含学习率衰减) 加载该模型时,会从该模型所属的epoch开始训练,设置的epoch数应与原来一致。 例如:2.pth为某次总epoch数为10时训练过程中第2个epoch保存的模型,则load_weight设置为2.pth时,训练将从第2个epoch开始,且此时epoch也应设置为10。该功能用于断点续训。注2:自定义config文件时,可先设定epoch为0将本算法model文件夹保存至自己的OBS,然后按照该文件夹里的config.yaml格式进行编写。其中TEST.TEST_MODEL_PATH请设置为’./best_model.pth’用于部署。2.3. 训练输出文件训练完成后的输出文件如下:|- model |- segmentron |- ... |- config.yaml # 模型配置文件,和训练使用的配置文件一致;自定义配置文件可参考该文件 |- config.json |- customize_service.py |- best_model.pth |- xxxx.pth |- xxxx.pth |- ...如果设置eval为True,输出文件如下:|- model |- segmentron |-... |- config.yaml |- config.json |- customize_service.py |- best_model.pth |- eval_results |- eval_results.txt |- frankfurt_000000_000294_leftImg8bit.png |- frankfurt_000000_000576_leftImg8bit.png |- ... |- ...3. GPU/CPU推理元模型来源 选择 从训练中选择,选择训练作业及版本。注意:推理配置文件model/config.json中的runtime字段为pytorch1.4-python3.7,表示该模型可同时在CPU或GPU运行。4. 案例指导本算法的详细使用方法,请查看《ModelArts AI Gallery算法Fast-SCNN使用指导》。交付交付方式华为云ModelArts交付区域华北-北京一、华北-北京四、华东-上海一、华南-广州、亚太-**
-
描述DynamicRCNN(图像目标检测/Pytorch)1. 概述此模型基于Dynamic R-CNN: Towards High Quality Object Detection via Dynamic Training中突出的模型结构实现,该算法可以载入预训练好的,达到论文精度的模型作为特征提取网络,可以在用户的数据集上进行训练,用于其他场景的预测。训练后生成的模型可以直接在modelArts平台部署成在线服务。图像目标检测的评估手段一般使用mAp,详细说明请参考:coco数据集评价指标本算法的其他信息如下表所示:项目说明参考论文Dynamic R-CNN: Towards High Quality Object Detection via Dynamic Training使用框架Pytorch-1.0.0-python3.6训练集COCO 2017 train训练总iteration数270k训练batch_size使用8卡训练,每张卡IMS_PER_GPU = 2,相当于总batch_size为16训练硬件及耗时8*v100,54.9小时测试集COCO 2017test-dev推理硬件及速度GPU,2.3s/pic(GPU型号v100NV32)输入图像尺寸multi-scale训练,有400*400,600*600,800*800,1000*1000,1200*1200五种,可以支持多尺度原论文准确率mAP=49.2本算法准确率map=49.22. 训练2.1 算法基本信息任务类型:目标检测支持的框架引擎:Pytorch-1.0.0-python3.6算法输入:存储在OBS上的数据集,必须按照coco数据集的格式进行存储。训练时标记文件以train.json命名,图片文件放在train文件夹下,测试时标记文件以test.json命名,图片文件放在test文件夹下。详情及目录结构查看下文和第4节案例指导训练好的iteration_270000_mAP_49.2.pth参数文件。算法输出用于Pytorch推理的pth模型,GPU推理速度:2.3s/pic代码结构DynamicRCNN-sub |-pre-trained_weights |R101.pkl |R50.pkl |-trained_model |-model |-build |... |-dynamic_rcnn |... |-DynamicRCNN.egg-info |... |config.json |config.py |customize_service.py |network.py |iteration_270000_mAP_49.2.pth |train.py #模型启动文件 |evaluation.py #模型预测文件 |pip-requirements #环境配置文件 |... #其他配置文件 |-build #以下为模型运行必须的文件 |... |-dynamic_rcnn |... |-DynamicRCNN.egg-info |...2.2 训练参数说明名称默认值类型是否必填是否可修改描述evalFalsestring是是(1)False,本算法执行模型训练过程;(2)True,本算法加载load_weight参数指定的模型,然后执行模型评估过程。创建训练作业时指定的数据存储位置data_url目录下,需要有test文件夹(存放测试图片)和test.json文件,输出有test_log.txt包含计算得到的mAP等各项预测指标,预测的结果图片文件夹imgs和包含预测结果bbox.json的文件夹inference。针对test.json中是否包含groundtruth,输出的test_log.txt会有所不同。2a) 如果test.json中包含groundtruth则模型输出的test_log.txt包含计算得到的mAP等各项预测指标。2b) 如果test.json中包含groundtruth则模型输出的test_log.txt中的mAP等各项预测指标为-1。除此之外,创建训练作业时指定的数据存储位置data_url目录下,如果没有图片,则模型评估过程报错;num_gpus1int是是训练使用到的gpu个数,与用户选择的训练规格有关,如果用户选择单个gpu训练那么该参数为1,如果用户选择8gpu训练,为了避免资源浪费,请将该参数改为8。注意在test模式下该参数不起作用,无论使用什么样的训练规格,都只使用单gpu进行测试training_iter1000int是是train模式下训练的轮数,论文中是在8gpu的条件下训练了270k个iteration。test模式下该参数不起作用。check_period5000string是是经过多少个iteration保留一次训练的中间结果参数文件,默认5000。由于训练时有内存的限制,该值不易设置的太小,建议一次训练最多保留15次中间结果。load_weightstdstring是是(1)std会加载固定的默认路径,默认加载本算法源码目录中的trained_model/model/best_model.pth继续训练,加载成功会打印日志;(2)可变的OBS路径,如obs://blb-paper/DynamicRCNN-MINE/output/model/dynamic_rcnn_r101_dcnv2_fpn_mstrain_2x_test_model_0270000.pth。用户可指定OBS上的一个模型文件路径,然后本算法会加载该模型继续训练,加载成功会打印日志。eval是false的时候,load_weights如果加载obs路径的模型则用于继续训练,eval为true的时候load_weights如果加载obs路径的模型则用于测试注1:训练模式下输入的数据文件夹格式|train.json#相当于coco数据集里的annotations,里面有图片信息和标记信息 |-train#放入训练图片数据 |0000000001.jpg |0000000002.jpg | ...注2:测试模式下输入的数据文件夹格式|test.json#相当于coco数据集里的annotations,里面有图片信息和标记信息 |-test#放入测试图片数据 |0000000001.jpg |0000000002.jpg | ... 2.3 训练输出文件train模式下的训练输出文件如下:|-model |-build ... |-dynamic_rcnn ... |-DynamicRCNN.egg-info ... |config.json |config.py |customize_service.py |network.py |iteration_270000_mAP_49.2.pth |-checkpoints |xxx.pth |xxx.pth |...#训练过程中保存的中间过程参数 |train_log.txt#训练日志test模式下的训练输出文件如下:|-log |test_log.txt#测试日志 |-inference |xxx.bbox#预测结果的所有bbox输出 |xxx #其他输出文件 |-imgs#预测结果图片 |1.jpg |2.jpg |xxx.jpg3. GPU推理本模型只支持GPU训练与测试4. 案例指导本算法的详细使用方法,请查看ModelArts AI Gallery算法Dynamic R-CNN使用指导。交付交付方式华为云ModelArts交付区域华北-北京一、华北-北京四、华东-上海一、华南-广州、亚太-**
-
描述RetinaFace(人脸检测/Pytorch)注:本算法支持多卡训练、单卡混合精度训练,但在多卡情况下不支持混合精度1. 概述此模型基于RetinaFace: Single-stage Dense Face Localisation in the Wild中提出的模型结构实现,该算法会载入在WiderFace 上的预训练模型,在用户数据集上做迁移学习。我们提供了训练代码和可用于训练的模型,用于实际场景的微调训练。训练后生成的模型可直接在ModelArts平台部署成在线服务。人脸检测的评估手段一般使用mAP指标,详细说明请参考:https://github.com/Cartucho/mAP本算法的其他信息如下表所示:项目说明参考论文RetinaFace: Single-stage Dense Face Localisation in the Wild使用框架Pytorch-1.4.0训练集WIDERFACE 中的 WIDER_train训练总epoch数100训练batch_size使用混合精度单卡训练,batch_size=16训练硬件及耗时单卡v100,O1混合精度,训练大约31小时测试集WIDERFACE 中的WIDER_val推理硬件及速度CPU 10.3s/pic ,GPU2080ti 0.5s/pic–1.5s/pic ,modelarts平台V100 GPU:3226张图片总共耗时24分钟(target_size = 1600,max_size = 2150)输入图像尺寸训练:1024*1024 推理:target_size = 1600,max_size = 2150(保证图片等比例缩放,使用最小一条边缩放到target_size的缩放比例;如果此时最大边超过了max_size,则使用最大边缩放到max_size的缩放比例)原论文准确率RetinaFace-R50 Easy 96.5, Medium 95.6, Hard 90.4本算法准确率RetinaFace-R50 Easy 95.52, Medium 94.43, Hard 90.062、训练2.1. 算法基本信息任务类型:人脸检测支持的框架引擎:PyTorch-1.4.0-python3.6算法输入:存储在OBS上的数据集,必须按照WIDERFACE 数据集的格式进行存储,详情请查看下文第4节案例指导WIDERFACE 预训练模型,在WIDERFACE 上的mAP是 Easy 95.52, Medium 94.43, Hard 90.06算法输出:用于Pytorch推理的pth模型,CPU推理速度:10.3s/pic GPU2080ti推理速度:0.5s/pic–1.5s/pic ,modelarts平台V100 GPU:3226张图片总共耗时24分钟(target_size = 1600,max_size = 2150)2.2. 训练参数说明名称默认值类型是否必填是否可修改描述data_urldata/WIDERFACE/WIDER_trainstring是是训练或者评估输入的数据集 (如果使用文件夹形式的数据,则填写该文件夹在OBS上的访问路径;如果使用zip压缩包形式的数据,则填写该压缩包的父目录在OBS上的访问路径)train_urloutput/string是是训练或者评估结果输出路径data_formatzipstring否是可选值zip(上传数据为zip压缩包)或者dir(上传数据为目录形式),压缩包和目录的具体格式请查看下面《ModelArts AI市场算法RetinaFace使用指导》所附连接networkresnet50string否是模型的backbone网络,可选值 mobile0.25 、resnet50 或者resnet152num_workers1int否是数据加载的worker数量lr0.001string否是训练的初始学习率momentum0.9string否是优化器的动量系数load_weightweight/best_model.pthstring否是可加载的预训练模型,当eval=True时,该参数为必填项 ;默认值是以resnet50为backbone在WiderFace数据集上的预训练模型,该预训练模型已经包含在本算法中weight_decay0.0005string否是优化器中的正则化权重衰减量gamma0.1string否是分段衰减学习率中每次学习率衰减的比例(new_lr=lr*gamma),仅当use_cosine_decay=False该参数有效img_size1024int否是训练数据的分辨率confidence_threshold0.02string否是nms时的置信度阈值nms_threshold0.4string否是nms时的IOU阈值num_gpu1int否是当num_gpu=1时,使用单个GPU训练;当num_gpu>1时,使用机器上所有的GPU进行训练batch_size16int否是训练时的batch_size,可根据GPU的显存进行调整epoch100int否是训练的epoch数量use_backboneTruestring否是训练时是否使用backbone网络在ImageNet数据集上的预训练参数use_mixedTruestring否是是否使用混合精度进行训练,使用混合精度一定程度上可以降低显存消耗,也可能提高训练速度amp_levelO1string否是混合精度的设置,可选值:O0,O1,O2,O3warmup_epoch10int否是训练开始时,使用warmup学习率的epoch数量,warmup_epoch=-1表示不使用warmupdecay150int否是分段衰减学习率的第一次学习率降低的epoch数,仅当use_cosine_decay=False时有效decay280int否是分段衰减学习率的第二次学习率降低的epoch数,仅当use_cosine_decay=False时有效use_cosine_decayTruestring否是是否使用余弦衰减学习率,设置为False则使用分段衰减学习率optimizersgdstring否是sgd 或者 adam优化器evalFalsestring否是eval=True,则进行评估;eval=False进行训练2.3. 训练输出文件训练完成后的输出文件如下:|- RetinaFace_Resnet50_Final.pth |- deploy_scripts |- model |- data |- layers |- models |- retinaface_utils |- config.json |- customize_service.py |- save_model.pth3. GPU/CPU推理元模型来源 选择 保存在OBS上的对应路径下的deploy_scripts文件夹。注意:推理配置文件model/config.json中的runtime字段为pytorch1.4-python3.6,表示该模型可同时在CPU或GPU运行。4. 案例指导本算法的详细使用方法,请查看《ModelArts AI Gallery算法RetinaFace使用指导》。交付交付方式华为云ModelArts交付区域华北-北京一、华北-北京四、华东-上海一、华南-广州、亚太-**
-
描述Aster(文字识别/PyTorch)1. 概述此模型是基于ASTER: Attentional Scene Text Recognizer with Flexible Rectification的Pytorch实现版本,该算法需要使用SynthText和MJSynth数据集进行训练,IIIT5k的test数据进行验证。我们提供了训练代码和打包好的合成训练数据集和验证数据,如果有需要用户也可以加入真实数据集进行微调,具体参见ModelArts AI Gallery算法Aster使用指南。训练后生成的模型可直接在ModelArts平台部署成在线服务。对于英文识别任务,一般采用Accuracy作为评价指标:对于网络预测的字符串以及对应的gt,需要先进行归一化(去掉除字母和数字以外的字符,并统一大小写)。如果二者一致,则判定预测正确。Accuracy = 正确的数量 / 总数本算法的其他信息如下表所示:项目说明参考论文ASTER: Attentional Scene Text Recognizer with Flexible Rectification使用框架Pytorch-1.4.0训练集SynthText,MJSynth训练总epoch数7训练batch_size使用1卡训练,每张卡batch_size = 1024训练硬件及耗时1*v100,29小时左右测试集IIIT5K中的测试集推理硬件及速度CPU: 120~130ms/pic GPU: 20~30ms/pic (1*V100, batch_size=1024)输入图像尺寸64*256*3原论文准确率Accuracy (without Lexicon) = 93.4%本算法准确率Accuracy (without Lexicon) = 93.7%2、训练2.1. 算法基本信息任务类型文字识别支持的框架引擎PyTorch-1.4.0-python3.6算法输入存储在OBS上的数据集,必须将训练打包成lmdb格式进行存储,详情请查看下文第4节案例指导算法输出用于Pytorch推理的pth模型代码结构|-- lib| |-- datasets| |-- evaluation_metrics| |-- loss| |-- models| |-- tools| |-- utils| |-- evaluators.py| |-- trainers.py| |-- init.py|-- lib_infer_only| |-- datasets| |-- evaluation_metrics| |-- models| |-- utils|-- trained_model| |-- model| | |-- best_model.pth|-- train.py|-- evaluation.py|-- config.py|-- customize_service.py|-- config.json`-- pip-requirements.txt~~~2.2. 参数说明名称默认值类型是否必填是否可修改描述batch_size1024int是是batch size的大小workers8int是是workers的数量height64int是是网络输入图片的高度width256int是是网络输入图片的宽度voc_typeALLCASES_SYMBOLSString是否表示识别的类别包括大小写字母数字以及标点符号archResNet_ASTERString是否网络backbonecudaTrueString否是是否使用GPU训练evalFalseString是是是否进行模型评估,默认为False,如果设为True,则必须设定load_weight参数,加载指定的pth模型,在创建训练作业时指定的数据存储位置验证集上进行预测,所有预测结果results及模型评估结果eval_result.txt将保存到创建训练作业时指定的训练输出位置train_url上epoch7int是是总训练轮数,建议设置为7。load_weight./trained_model/model/best_model.pthString否是pth模型文件路径,支持加载OBS上保存的模型进行断点续训;不设置时直接进行训练. 默认使用已经预训练的模型,当删除该参数时则train from scratch.training_dataset/home/work/modelarts/inputs/Synth/String是否训练数据集在modelarts上的本地路径training_dataset_subfoldCVPR2016:NIPS2014String是否使用的训练数据集文件夹名。支持多个数据集同时训练,用:分隔多个数据集。testing_dataset/home/work/modelarts/inputs/Synth/benchmark_lmdbs_new/IIIT5K_3000/String是是验证集IIIT5K在modelarts上的本地路径,当eval=False时(训练过程),使用默认参数(对应imdb格式数据集)。当eval=True时,需要将其设置为/home/work/modelarts/inputs/Synth/IIIT5K/test/(对应png格式数据集)或者其他png格式的数据集。gt_path/home/work/modelarts/inputs/Synth/IIIT5K/testdata.matString否是如果eval时未设置gt_path参数,则不会输出统计指标,只保存推理结果。test_freq1000int是是训练过程中,每test_freq次迭代进行一次测试,并保存最优模型。print_freq100int是是训练过程中,每print_freq次迭代,输出一次loss。注1: 当eval设置成True时,只进行模型推理过程。如需对IIIT5K数据集进行推理,需要调整对应的testing_dataset = home/work/modelarts/inputs/Synth/IIIT5K/test/(对应png格式数据集);如需对自己提供的图片进行推理,请将数据集在obs中放置路径与该路径对应。注2: 当eval=True时,推理的结果results文件夹将会保存到train_url指定的obs路径。如果同时设置了gt_path的路径,还会将eval_result.txt保存到train_url路径。注3: 当使用自己提供的数据集进行训练时,需要根据数据集的大小来调整epoch以及test_freq,注意数据集需要放置在Synth目录下,并且将数据集的文件夹名称添加到training_dataset_subfold中,例如CVPR2016:NIPS2014。2.3. 模型输出训练输出的文件结构如下:|-- model | |-- lib_infer_only | | |-- datasets | | |-- evaluation_metrics | | |-- models | | |-- utils | |-- config.json | |-- config.py | |-- customize_service.py | |-- aster_Final.pth `-- logs |-- checkpoint.pth (last model) |-- model_best.pth |-- log.txt `-- cfg.txt设置eval = True,并对IIIT5K数据集进行推理,输出的文件结构如下:|-- results | |-- 1043_1_result.txt | |-- *** `-- eval_result.txt(当设置了gt_path之后输出评价结果)3. GPU/CPU推理利用本算法部署服务进行推理的详细步骤请查看ModelArts AI Gallery算法Aster使用指南4. 案例指导本算法的详细使用方法,请查看ModelArts AI Gallery算法Aster使用指南交付交付方式华为云ModelArts交付区域华北-北京一、华北-北京四、华东-上海一、华南-广州、亚太-**
-
描述1.概述此模型基于FLAT: Chinese NER Using Flat-Lattice Transformer中提出的模型结构实现,训练后生成的模型可直接在ModelArts平台部署成在线服务。2.训练2.1.算法基本信息任务类型:命名实体识别支持的框架引擎:Pytorch-1.4.0-python3.6NER任务的精确评估指标:Precision、Recall与F1值算法输入:CoNLL格式的训练集、开发集与测试集算法输出:用于pytorch推理的pth模型与模型参数model_config代码结构:src |- pre-trained-weights |- Flat-ner无预训练模型,此文件夹为空 |- trained_model |- model |- model.pth |- model_config |- config.json |- customize_service.py |- ... |- train.py 启动文件,根据超参选择train or eval |- config.json |- customize_service.py |- data_utils 数据相关代码 |- ... |- modules 模型相关代码 |- ...2.2.训练参数说明名称描述类型可调整默认值必需eval是否进行eval测试集Stringtruefalsefalseload_weight断点续训或eval时的模型加载路径Stringtruefalseload_configeval时的模型配置路径StringtruefalsedeviceGPU使用编号,-1表示使用CPUIntegertrue0falsedelimiterconll格式数据集的分隔符Stringtruetabfalseepoch_num训练总轮数Integertrue100falsebatch_sizebatch_sizeIntegertrue10falsedim_bicharbichar向量的维度Integertruetruedim_latticelattice向量的维度Integertruetruedim_modelattention模型的维度Integertrue160falsedim_pos位置编码的维度Integertrue80falseffn_dropout1ffn dropout1Stringtrue0.15falseffn_dropout2ffn dropout2Stringtrue0.15falseoutput_dropoutoutput dropoutStringtrue0.3falsepatience训练多少轮次不提升后停止训练Integertrue10falseseedseedIntegertrue42false2.3.训练输出文件训练完成后的输出文件如下:训练输出目录 |- model |- model.pth |- model_config 模型配置文件 |- config.json |- customize_service.py |- mix_char_word_emb lattice embedding文件 |- bichar embedding文件 |- lexicon.vec word mebedding文件 |- data_utils 数据相关代码 |- ... |- modules 模型相关代码 |- ...如果设置eval为True,输出文件如下:训练输出目录 |- model |- result.txt 测试集的推理结果与F1值 |- model.pth |- model_config 模型配置文件 |- config.json |- customize_service.py |- mix_char_word_emb lattice embedding文件 |- bichar embedding文件 |- lexicon.vec word mebedding文件 |- data_utils 数据相关代码 |- ... |- modules 模型相关代码 |- ...3.CPU推理元模型来源 选择 从训练中选择,选择训练作业及版本。4.案例指导本算法的详细使用方法,请查看《ModelArts AI Gallery算法Flat-ner使用指导》。交付交付方式华为云ModelArts交付区域华北-北京一、华北-北京四、华东-上海一、华南-广州、亚太-**
-
描述HRNet(姿态估计/Pytorch)##1. 概述此模型基于High-resolution Representation Learning for Person Pose Estimation,该算法会载入ImageNet上预训练的hrnet模型,在用户数据集上做训练。我们提供了训练代码,训练后生成的模型可直接在ModelArts平台部署成在线服务。图像生成的评估手段一般使用AR AP等指标,详细说明请参考:https://cocodataset.org/#keypoints-eval本算法的其他信息如下表所示:项目说明参考论文High-resolution Representation Learning for Person Pose Estimation使用框架Pytorch-1.0.0训练集COCO 2017 train set训练epoch数210训练batch_size4卡训练,batch_size 128训练硬件及耗时4*v100,90小时推理硬件及速度GPU,4s/pic输入图像尺寸256*192*3原论文准确率AP 74.4本算法准确率AP 74.52、训练###2.1. 算法基本信息任务类型:姿态估计支持的框架引擎:PyTorch-1.0.0-python3.6算法输入:存储在OBS上的数据集,必须按照COCO数据集的格式进行存储,如下所示:|-- data `-- |-- coco `-- |-- annotations | |-- person_keypoints_train2017.json | `-- person_keypoints_val2017.json |-- person_detection_results | |-- COCO_val2017_detections_AP_H_56_person.json | |-- COCO_test-dev2017_detections_AP_H_609_person.json `-- images |-- train2017 | |-- 000000000009.jpg | |-- 000000000025.jpg | |-- 000000000030.jpg | |-- ... `-- val2017 |-- 000000000139.jpg |-- 000000000285.jpg |-- 000000000632.jpg |-- ... 其中标注文件可以在coco 官网了解详情,detection results可以从此下载:https://drive.google.com/drive/folders/1fRUDNUDxe9fjqcRZ2bnF_TKMlO0nB_dk?usp=sharing算法输出:用于Pytorch推理的pth模型,GPU推理由于需要先做行人检测,速度较慢,约4s/pic。如果不做检测,速度在1s/pic以内。代码结构src |- pre-trained_weights |- HRNet在imagenet上的预训练模型 |- trained_model |- model |- config.json |- customize_service.py |- epoch_210_AP_74.5.pth |- lib #必要的支持库 |- experiments #训练和测试的配置文件样例 |- tools # 训练和测试脚本 |- train.py # 启动文件, 可以用eval参数控制训练或者测试 2.2. 训练参数说明名称默认值类型是否必填是否可修改描述load_weighttrained_model/model/epoch_210_AP_74.5.pthstr是是pth模型文件路径,支持加载OBS上的pth模型进行训练或者测试evalFalsestr是是是否进行模型评估,默认为FalsecfgNonestr是否obs中的配置文件路径,选填gpu_num1int是是使用的gpu数量epochs1int是是训练轮次load_weight默认加载在COCO上训练好的模型,可以在此基础上继续微调,也支持从obs路径加载用户自己的模型。eval为True时,进行测试;为False时,进行训练。此外程序支持任意配置参数,覆盖默认配置文件,例如WOKRERS=10,控制线程数。当然,也可以在配置文件中进行设置。算法创建时输入的参数优先级大于配置文件中的参数。已自动加载的默认配置文件如下:AUTO_RESUME: true CUDNN: BENCHMARK: true DETERMINISTIC: false ENABLED: true DATA_DIR: '' GPUS: (0,1,2,3) OUTPUT_DIR: 'output' LOG_DIR: 'log' WORKERS: 24 PRINT_FREQ: 100 DATASET: COLOR_RGB: true DATASET: 'coco' DATA_FORMAT: jpg FLIP: true NUM_JOINTS_HALF_BODY: 8 PROB_HALF_BODY: 0.3 ROOT: 'data/coco/' ROT_FACTOR: 45 SCALE_FACTOR: 0.35 TEST_SET: 'val2017' TRAIN_SET: 'train2017' MODEL: INIT_WEIGHTS: true NAME: pose_hrnet NUM_JOINTS: 17 PRETRAINED: 'models/pytorch/imagenet/hrnet_w32-36af842e.pth' TARGET_TYPE: gaussian IMAGE_SIZE: - 192 - 256 HEATMAP_SIZE: - 48 - 64 SIGMA: 2 EXTRA: PRETRAINED_LAYERS: - 'conv1' - 'bn1' - 'conv2' - 'bn2' - 'layer1' - 'transition1' - 'stage2' - 'transition2' - 'stage3' - 'transition3' - 'stage4' FINAL_CONV_KERNEL: 1 STAGE2: NUM_MODULES: 1 NUM_BRANCHES: 2 BLOCK: BASIC NUM_BLOCKS: - 4 - 4 NUM_CHANNELS: - 32 - 64 FUSE_METHOD: SUM STAGE3: NUM_MODULES: 4 NUM_BRANCHES: 3 BLOCK: BASIC NUM_BLOCKS: - 4 - 4 - 4 NUM_CHANNELS: - 32 - 64 - 128 FUSE_METHOD: SUM STAGE4: NUM_MODULES: 3 NUM_BRANCHES: 4 BLOCK: BASIC NUM_BLOCKS: - 4 - 4 - 4 - 4 NUM_CHANNELS: - 32 - 64 - 128 - 256 FUSE_METHOD: SUM LOSS: USE_TARGET_WEIGHT: true TRAIN: BATCH_SIZE_PER_GPU: 32 SHUFFLE: true BEGIN_EPOCH: 0 END_EPOCH: 210 OPTIMIZER: adam LR: 0.001 LR_FACTOR: 0.1 LR_STEP: - 170 - 200 WD: 0.0001 GAMMA1: 0.99 GAMMA2: 0.0 MOMENTUM: 0.9 NESTEROV: false TEST: BATCH_SIZE_PER_GPU: 32 COCO_BBOX_FILE: 'data/coco/person_detection_results/COCO_val2017_detections_AP_H_56_person.json' BBOX_THRE: 1.0 IMAGE_THRE: 0.0 IN_VIS_THRE: 0.2 MODEL_FILE: '' NMS_THRE: 1.0 OKS_THRE: 0.9 USE_GT_BBOX: true FLIP_TEST: true POST_PROCESS: true SHIFT_HEATMAP: true DEBUG: DEBUG: true SAVE_BATCH_IMAGES_GT: true SAVE_BATCH_IMAGES_PRED: true SAVE_HEATMAPS_GT: true SAVE_HEATMAPS_PRED: true常用的配置有GPUS(控制使用的GPU数量)、IMAGE_SIZE(控制输入图像大小,更大的尺寸可能有更高的精度)、HEATMAP_SIZE(可根据需要,配置为IMAGE_SIZE的1/4)、TRAIN.BATCH_SIZE_PER_GPU(控制batchsize的大小)、TRAIN.END_EPOCH(调节总的训练轮次)。训练完成后保存的模型为model_best.pth2.3 训练输出文件训练完成后在save_folder参数指定位置生成coco/pose_hrnet文件夹,包含了最佳模型model_best.pth,中间生成图像的样例以及训练日志文件。同时生成model文件夹,用于部署在线服务、批量服务。3. GPU/CPU推理元模型来源 选择 从训练中选择,选择训练作业及版本。4. 案例指导本算法的详细使用方法,请查看ModelArts AI Gallery算法HRNet使用指导交付交付方式华为云ModelArts交付区域华北-北京一、华北-北京四、华东-上海一、华南-广州、亚太-**
-
描述XingGAN(图像生成/Pytorch)##1. 概述此模型基于XingGAN for Person Image Generation中提出的模型结构实现,该算法会载入ImageNet上预训练的vgg19模型,在用户数据集上做训练。我们提供了训练代码,训练后生成的模型可直接在ModelArts平台部署成在线服务。图像生成的评估手段一般使用SSIM等指标,详细说明请参考:https://github.com/Ha0Tang/XingGAN#Evaluation本算法的其他信息如下表所示:项目说明参考论文XingGAN for Person Image Generation使用框架Pytorch-1.0.0训练集Market-1501 train set训练epoch数700训练batch_size单卡训练,batch_size 32训练硬件及耗时1*v100,23小时推理硬件及速度GPU,1s/pic输入图像尺寸128643原论文准确率SSIM 0.313本算法准确率SSIM 0.3042、训练###2.1. 算法基本信息任务类型:图像生成支持的框架引擎:PyTorch-1.0.0-python3.6算法输入:存储在OBS上的数据集,必须按照market_data的格式进行存储,详情请查看下文第4节案例指导.算法输出:用于Pytorch推理的pth模型,GPU推理速度:1s/pic代码结构src |- pre-trained_weights |- Vgg19预训练模型 |- trained_model |- model |- config.json |- customize_service.py |- epoch_700.pth |- options # 配置文件 |- models # 模型定义 |- losses # 损失函数 |- tool # 测试工具 |- train.py # 启动文件 |- evaluate.py # 测试脚本2.2. 训练参数说明名称默认值类型是否必填是否可修改描述load_weighttrained_model/model/epoch_700.pthstr否是pth模型文件路径,也支持加载OBS上的pth模型进行训练evalFalsestr是是是否进行模型评估,默认为False,如果设为True,则必须设定load_weight参数,加载指定的pth模型,在创建训练作业时指定的数据存储位置验证集上进行预测epochs50int是是以初始学习率训练的轮次数epochs_decay20int是是训练了epochs数之后,进行学习率下降直到0的轮次数。总训练轮次为epochs+epochs_decayload_weight默认加载在Market数据集上训练好的模型,可以在此基础上继续微调,也支持从obs路径加载用户自己的模型。eval为True时,进行测试;为False时,进行训练。训练完成后保存的模型为latest_net_netG.pth。2.3 训练输出文件训练完成后在save_folder参数指定位置生成market_XingGAN文件夹,包含了中间各个epoch的模型,中间生成图像的样例以及训练日志文件。3. GPU/CPU推理元模型来源 选择 从训练中选择,选择训练作业及版本。4. 案例指导本算法的详细使用方法,请查看《ModelArts AI Gallery算法XingGAN使用指导》交付交付方式华为云ModelArts交付区域华北-北京一、华北-北京四、华东-上海一、华南-广州、亚太-**限制谁可以看 ?公开付费方式免费时长限制无时长限制版本版本号发布时间状态版本说明使用约束8.0.02021-01-06 18:36正常--查看使用约束7.0.02021-01-06 14:36下线--查看使用约束6.0.02021-01-05 16:27下线--查看使用约束5.0.02020-12-22 15:36下线--查看使用约束4.0.02020-12-17 15:59下线--查看使用约束3.0.02020-12-17 14:52下线添加可调参数 训练轮次查看使用约束2.0.02020-12-16 14:51下线添加可编辑的参数查看使用约束1.0.02020-12-09 20:49下线Initial release.查看使用约束论文标题 XingGAN for Person Image Generation链接 https://arxiv.org/abs/2007.09278代码复制下载链接 下载代码是否开放开放许可证类型 ?Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)
-
描述CrowdDet (目标检测/Pytorch)1. 概述此模型基于Detection in Crowded Scenes: One Proposal, Multiple Predictions中提出的模型结构实现,该算法会载入在CrowdHuman上的预训练模型,在用户数据集上做迁移学习。我们提供了训练代码和可用于训练的模型,用于实际场景的微调训练。训练后生成的模型可直接在ModelArts平台部署成在线服务。以识别**为目标的检测的评估手段一般用AP, MR-2和JI(Jaccard Index)指标,详细描述可参考原论文或下表。指标描述APAveraged precision of detection.MR-2Log-average miss rate on false positive per image.JIJaccard Index.本算法其他信息如下表所示:项目说明参考论文Detection in Crowded Scenes: One Proposal, Multiple Predictions使用框架Pytorch-1.4.0 (在ModelArts上使用Pytorch-1.4.0创建训练作业,然后在训练开始之前将Pytorch升级为1.5.0)训练集CrowdHuman annotation_train.odgt + images训练总epoch数25 (from scratch)训练batch_size8卡训练,每张卡batch_size = 2训练硬件及耗时8*v100,约11小时测试集CrowdHuman annotation_val.odgt + images输入图像尺寸CrowdHuman: [3236, 4856, 3]原论文指标AP = 90.7%, MR-2 = 41.4%, JI = 82.3%本算法指标AP = 90.6%, MR-2 = 41.3%, JI = 83.4%2. 训练2.1. 算法基本信息任务类型:(**)目标检测支持的框架引擎:PyTorch-1.4.0-python3.6(在ModelArts上使用Pytorch-1.4.0创建训练作业,然后在训练开始之前将Pytorch升级为1.5.0)算法输入:存储在OBS上的数据集,必须按照CrowdHuman数据集的格式进行储存,详情请查看下文第4节。CrowdHuman预训练模型,在CrowdHuman验证集上的AP是90.96%。算法输出:用于Pytorch推理的pth模型,在验证集上的推理结果代码结构src |-- download/ # 算法运行时将OBS中储存的数据将加载到此目录 | |-- annotation_train.odgt | |-- annotation_val.odgt | |-- images/ | | |-- 1066405,100a000985ef070.jpg |-- pre-trained_weights/ | |-- resnet50_fbaug.pth # 训练模型所需要的backbone起点 |-- trained_model/ | |-- model/ | | |-- model_config.py # 模型和训练默认参数配置 | | |-- network.py # 模型结构 | | |-- config.json # 模型部署文件 | | |-- customize_service.py # 模型部署文件 | | |-- model_final.pth # 训练得到的模型,用于模型部署 | | |-- model_lib/ # 开源包、模型构建、数据集加载等文件 | | | |--... |-- tools/ | |-- run_infer.py # 推理 | |-- run_train.py # 训练模型 | |-- run_test.py # 在验证集上推理并输出评价指标 |-- config_env.sh # 运行前环境配置(升级Pytorch-1.5.0) |-- train.py # 算法执行文件 |-- evaluation.py # 输出业界评价标准2.2. 训练参数说明名称默认值类型是否必填是否可修改描述load_weight…/trained_model/model/model_final.pthstring否是训练起始模型,eval模式下则为测试模型,可以为obs路径total_epoch1int否是训练总轮数nr_images_epoch40000int否是每一轮训练用的图片数mini_batch_size2int否是每张卡的batch_sizewamr_iter1000int否是warmup循环数momentum0.9float否是SGD优化参数base_lr1.25e-3float否是具体learning rate根据实际GPU数计算log_dump_interval1int否是log打印频率weight_decay1e-4float否是SGD优化参数random_seed7int否是随机数种子evalfalsestring否是若设为1,则只从确定的模型pth在验证集上推理并计算评价指标2.3. 训练输出文件eval参数决定是否进行训练或跳过训练直接用现有模型在CrowdHuman验证集上推理评价。eval = 0训练模型,打印日志将模型储存在本地和train_url指定的路径(创建训练作业时指定的训练出入路径)所有输出在工作目录如下所示src |-- trained_model/ | |-- model/ |-- ...所有输出在obs上的目录如下所示|-- train_url/ | |-- model/eval = 1用指定的模型进行推理验证,若用户指定模型,必须保证load_weight是obs中模型.pth文件的绝对路径。用户指定的data_url(创建训练作业时指定的训练输入路径)中可以只包含.jpg格式的图片,也可以包含annotation_val.odgt文件,若为后者,则输出的文件中包含eval_results.txt为业界评价标准,否则只输出pred_results.json和pred_results目录。支持用户自定义OBS上的数据集路径,若需要输出评价指标,则需要包含符合格式要求的annotation_val.odgt文件,若不需要输出评价指标,可以直接将data_url指向只包含图片的OBS文件夹。所有输出在OBS的目录如下所示|-- train_url/ # 创建训练作业时指定的训练出入路径 | |-- eval_dump/ | | |-- pred_results.json # 模型推理结果 | | |-- eval_results.txt # 相应的评价指标结果 | | |-- pred_results/ # 对每个图片的推理结果 | | | |-- 1066405,100a000985ef070.json | | | |-- ...3. GPU/CPU本算法仅支持GPU运行。4. 数据准备从CrowdHuman下载CrowdHuman_train01.zip, CrowdHuman_train02.zip CrowdHuman_train03.zip, CrowdHuman_val.zip, annotation_train.odgt, annotation_val.odgt文件,将所有图片解压到同一个文件夹,最终保证在data_url(创建训练作业时指定的训练输入路径)中的目录如下所示|-- data_url/ # 创建训练作业时指定的训练出入路径 | |-- images/ # 所有解压得到的图片 | | |-- 1066405,100a000985ef070.jpg | | |-- ... | |-- annotation_train.odgt # 训练集标注文件 | |-- annotation_val.odgt # 验证集标注文件5. 案例指导本算法的详细使用方法,请查看ModelArts AI Gallery CrowdDet算法指导。交付交付方式华为云ModelArts交付区域华北-北京一、华北-北京四、华东-上海一、华南-广州、亚太-**
-
描述PointRend(图像分割/Pytorch)1.概述此模型基于PointRend: Image Segmentation as Rendering中提出的模型结构实现,该算法会载入在Cityscape上的预训练模型,在用户数据集上做迁移学习。我们提供了训练代码和可用于训练的模型,用于实际场景的微调训练。训练后生成的模型可直接在ModelArts平台部署成在线服务。图像分割的评估手段一般使用AP,详细说明请参考:https://github.com/mcordts/cityscapesScripts#evaluation本算法的其他信息如下表所示:项目说明参考论文PointRend: Image Segmentation as Rendering使用框架Pytorch1.4.0训练集Cityscapes leftImg8bit_trainvaltest.zip中的trainepoch65(通过控制maxiter*batchsize/nums of picturesbatchsize8,对应config文件夹下的yaml中IMS_PER_BATCH训练硬件及耗时1*v100,12小时测试集Cityscapes leftImg8bit_trainvaltest.zip中的test推理硬件及速度CPU,1.85s/pic输入图像尺寸1024*2048,3通道原论文APAP=35.8本算法APAP=36.2722.训练2.1算法基本信息任务类型:图像分割支持的框架引擎:PyTorch-1.4.0-python3.6算法输入:存储在OBS上的数据集,必须按照Cityscape数据集的格式进行存储,详情请查看下文第4节案例指导Cityscape预训练模型,在Cityscape上的AP是36.2728算法输出用于Pytorch推理的pth模型,CPU推理速度:1.85s/pic代码结构PointRend|-configs#配置文件,包括其他数据集|-InstanceSegmentation|-…|-SemanticSegmentation|-…|-Base-RCNN-FPN.yaml|-datasets#此文件夹为空,上传数据集时会自动同步至云端本目录|-detectron2#开源包|-…|-inputimage#空文件夹,用于运行demo.py时自动同步待预测的影像|-model#用于部署在线服务、批量服务|-customize_service.py#用于部署在线服务、批量服务|-iteration_24000_mAP_36.3.pth#最优模型参数|-config.json#配置文件|-…|-output#空文件夹,训练和评估时暂存模型结果,最后会同步至obs|-outputimage#空文件夹,运行demo.py时暂存输出影像,同步obs|-point_rend#模型其他包|-…|-pre-trained_weights#预训练参数|R-50.pkl|-config.json|-demo.py#预测整个文件夹的影像|-matches.json#预测整个文件夹影像的json结果文件|-pip-requirements.txt|-train_net.py#包括train和eval|-detectron2-0.3+cu102-cp36-cp36m-linux_x86_64.whl#detectron2包###2.2参数说明名称默认值类型是否必填是否可修改描述说明config-fileconfigs/InstanceSegmentation/pointrend_rcnn_R_50_FPN_1x_cityscapes.yamlstring是是配置文件路径,不配置时,默认路径为本算法代码内的路径eval-only0int否是训练时设置值为0,评估时设置值为1MODELWEIGHTSmodelweight/model_final.pthstring否是仅仅评估时才需要这个参数并设置值为默认值maxiter2400int否是最大迭代次数,可以控制epoch=maxiter*batchsize/影像总数batchsize8int否是批大小num-gpus1int否是gpu的数目注意:eval参数有以下两种取值:(1)0,本算法执行模型训练过程;(2)1,本算法加载load_weight参数指定的模型,然后执行模型评估过程。模型评估需要支持以下三种输入情况:2a) 创建训练作业时指定的数据存储位置data_url目录下,如果同时有图片和ground_truth,则模型评估过程输出pred_results目录和eval_result.txt文件,前者存放所有图片的预测结果,后者存放模型评估的精度指标;2b) 创建训练作业时指定的数据存储位置data_url目录下,如果只有图片,则模型评估过程输出pred_results目录,存放所有图片的预测结果;2c) 创建训练作业时指定的数据存储位置data_url目录下,如果没有图片,则模型评估过程报错;MODELWEIGHTS参数有以下两种取值:(1)固定的默认路径,默认加载本算法源码目录中的modelweight/model_final.pth继续训练,加载成功会打印日志;(2)可变的OBS路径,用户可指定OBS上的一个模型文件路径,然后本算法会加载该模型继续训练,加载成功会打印日志。##2.3. 训练输出文件当仅添加config-file并设置为configs/InstanceSegmentation/pointrend_rcnn_R_50_FPN_1x_cityscapes.yaml时为训练(此路径也支持用户的obs路径),训练完成后会输出可部署的model文件夹以及config.yaml、log.txt,文件结构如下: |-config.yaml配置文件 |-log.txt日志文件 |-model |-customize_service.py#用于部署在线服务、批量服务 |-model_final.pth#用户训练得到的模型参数 |-config.json#配置文件 |-...除config-file之外,如果添加超参数eval-only并设置为True,且添加超参数MODELWEIGHTS并设置为model/iteration_24000_mAP_36.3.pth(此路径也支持用户的obs路径)输出文件如下(pred_results和eval_result.txt都保存在指定的训练输出OBS目录下):|-eval_result.txt#评估结果,只有用户上传的数据集包括groundtruth才会有这个文件 |-pred_results;预测影像文件夹 |-frankfurt_000000_000294_leftImg8bit.png |-frankfurt_000000_000576_leftImg8bit.png |-...#3. GPU/CPU推理元模型来源 选择 从训练中选择,选择训练作业及版本。注意:推理配置文件config.json中的runtime字段为pytorch1.4-python3.7,表示该模型可同时在CPU或GPU运行。#4. 案例指导本算法的详细使用方法,请查看《ModelArts AI Gallery算法PointRend使用指导》。交付交付方式华为云ModelArts交付区域华北-北京一、华北-北京四、华东-上海一、华南-广州、亚太-**
-
描述CenterNet-Hourglass (物体检测/Pytorch)1. 概述此模型是对Objects as Points 中提出的CenterNet进行结果复现(原论文Table 2 最后一行)。本模型是以Hourglass网络架构作为backbone,以ExtremNet 作为预训练模型,在COCO数据集上进行50epochs的训练后得到的。本项目是基于原论文的官方代码进行针对ModelArts平台的修改来实现ModelArts上的训练与部署。目标检测的主要benchmark 为COCO数据集,相关指标为mAP,详细说明请参考:https://cocodataset.org本模型的其他信息如下表所示:项目说明参考论文Objects as Points使用框架Pytorch-1.4.0训练模型BackboneHourglass训练集COCO train2017训练总epoch数50训练batch_size160 (20*8, 每卡20 batch size)训练硬件及耗时8 * v100,24小时测试集COCO val2017 & test2017推理硬件及速度CPU,20s/pic训练输入图像尺寸训练输入 3x512x512推理输入推理输入图像尺寸支持任意尺寸,推荐大于512x512的图片输入原论文准确率mAP=42.1, 使用flip test本算法准确率mAP=42.7, 使用flip test2. 训练2.1. 算法基本信息任务类型:目标检测支持的框架引擎:PyTorch-1.4.0-python3.6算法输入:存储在OBS上的数据集,必须按照COCO数据集的格式进行存储|-- data `-- |-- coco `-- |-- annotations | |-- instances_train2017.json | |-- instances_val2017.json | |-- person_keypoints_train2017.json | |-- person_keypoints_val2017.json | |-- image_info_test-dev2017.json |---|-- train2017 |---|-- val2017 `---|-- test2017将数据打包tar -cvf coco.tar ./coco将 coco.tar 上传至OBS。预训练模型ExtremeNet算法输出:用于Pytorch推理的pth模型,CPU推理速度:20s/pic代码结构src/ ├── pre-trained_weights │ └── ExtremeNet_500000.pth ├── trained_model # for deployment │ ├── coco_classes.py │ ├── config.json │ ├── customize_service.py │ ├── epoch_50_mAP_42.7.pth │ ├── _init_paths.py │ └── lib ├── train.py # training script ├── evaluation.py # evaluation script ├── _init_paths.py ├── coco_eval.py ├── lib # related codebase │ ├── datasets ... │ ├── detectors ... │ ├── external ... │ ├── logger.py │ ├── models ... │ ├── opts.py │ ├── trains ... │ └── utils ... ├── coco # coco dir ├── infer_results # inference results COCO test-dev submit format │ ├── detections_test-dev2017_ctdet-flip-test_results.zip │ └── detections_test-dev2017_ctdet-multi-scale_results.zip └── training_logs # training logs ├── jobf9a05f30-job-trainjob-ctdet.0-0-0-det-0_default-stdout.log ├── logs_2020-11-12-22-19 ... └── opt.txt2.2. 训练参数说明名称默认值类型是否必填是否可修改描述batch_size12int否是模型训练时总的batch_size,当多卡训练时,batch_size要能整除#GPUmaster_batch12int否是模型训练时负责维护模型master copy的GPU上的batch_size,如无特殊需求可设置master_batch = batch_size / #GPUload_weightsrc/trained_model/epoch_50_mAP_42.7.pthstring是是预训练的CenterNet模型的pth文件路径gpus0string否是GPU 编号,如果选择多卡,则需要按照“0,1,2,3”的格式填写num_epoch50int否是训练所需的epoch数量lr2.5e-4float否是训练时的learning ratelr_step40string否是learning rate 在指定epoch时变为原来的0.1evalFalsestring否是是否启动Evaluation模式,具体使用见2.4节推荐运行参数:--exp_id=coco_hg --arch=hourglass --batch_size=160 --master_batch=20 --lr=2.5e-4 --load_model=[path]/ExtremeNet_500000.pth --gpus=0,1,2,3,4,5,6,7 --num_epoch=50 --lr_step=40特别说明:load_weight参数有以下两种取值:固定的默认路径,默认加载本算法源码目录中的trained_model/epoch_50_mAP_42.7.pth继续训练,加载成功会打印日志;可变的OBS路径,用户可指定OBS上的一个模型文件路径,然后本算法会加载该模型继续训练,加载成功会打印日志。注意,OBS路径的模型在输入时load_weight应为s3://bucket_name/xxx/xxx.ptheval参数有以下两种取值:(1)False,本算法执行模型训练过程;(2)True,本算法加载load_weight参数指定的模型,然后执行模型评估过程。具体评估见2.4节。2.3. 训练输出文件CenterNet_output/V0008/ ├── logs_2020-11-12-22-19 │ ├── events.out.tfevents.1605190788.job3b595134-job-trainjob-centernet-0 │ ├── log.txt │ └── opt.txt ├── checkpoints | ├── model_40.pth | ├── model_best.pth | └── epoch_50_mAP_42.7.pth ├── model | ├── customize_service.py | ├── config.json | ├── model_last.pth | └── ... └── opt.txttfevents 文件可由tensorboard打开查看训练曲线。2.4. 模型评估可利用train.py 或 evaluation.py 参数对模型进行指标验证,此时需将原始默认参数删除,并配置以下相关参数:名称默认值类型描述load_weightsrc/trained_model/epoch_50_mAP_42.7.pthstring需要指定训练得到的pth 文件的路径gpus0stringGPU 编号,如果选择多卡,则需要按照“0,1,2,3”的格式填写keep_resFalsestringflag 参数,用来判断是否要保留原始分辨率进行推理flip_testFalsestringdetection中是否使用反转测试,以提高精度test_scales‘’string多尺度模型推断,可以有更高的精度,但也相对更加耗时。多尺度参数输入示例:0.5,0.75,1,1.25,1.5trainvalFalsestring用于选择所用的推理数据集,默认为val集,若设True则为test集。evalTruestring若使用train.py 脚本,需将其设置为True才可进行模型评估,否者进行模型训练推荐运行参数:--exp_id coco_hg --arch hourglass --keep_res True --resume True --gpus 0 --load_model [path to ckpt]/model_last.pth --flip_test True # optional --test_scales 0.5,0.75,1,1.25,1.5 # optional --trainval True # optional输出文件:CenterNet_output_val/V0008/ ├── logs_2020-11-12-22-19 ├── results.json ├── map.txt # 如果以coco形式存储数据 └── opt.txtresults.json为COCO的评价格式的推理输出。Evaluation 数据data_url格式目前支持三种形式:coco.tar 文件所在dir。此时推理数据文件结构与2.1一致coco 文件夹。将测试数据以coco2017的格式存放在obs里,格式必须严格如下:|-- data `-- |-- coco `-- |-- annotations | |-- instances_val2017.json `---|-- val2017当数据为coco原始数据时,无需做任何改变,在任务配置时,将data_url指向此处的data文件夹即可。当数据为自定义数据时,用户需要手动按照coco数据的格式将图片放在data/coco/val2017的路径里,并将groundtruth的信息在data/coco/annotations/instances_val2017.json文件中进行改写(不能修改json文件名),之后将data_url指向此处的data文件夹即可。图片文件夹。此时data路径下直接存放待推理的图片。将data_url指向此处的data文件夹即可,此时不会生成评估指标。图片推理结果的格式: 以coco推理结果的形式保存在results.json文件中。3. GPU/CPU推理完成训练后,在创建模型的选项中选择,“从训练中选择”的方式实现实现模型导入即可。之后选择立即创建即可得到可部署模型。可部署模型也已经发布在ModelHub注意:推理配置文件model/config.json中的runtime字段为pytorch1.4-python3.7,表示该模型可同时在CPU或GPU运行。4. 案例指导本算法的详细使用方法,请查看《ModelArts AI Gallery算法CenterNet使用指导》。交付交付方式华为云ModelArts交付区域华北-北京一、华北-北京四、华东-上海一、华南-广州、亚太-**
-
描述Maxout-DNN(生成d-vector 用于Speaker change point detection/Tensorflow)1.概述此模型基于论文:SPEAKER SEGMENTATION USING DEEP SPEAKER VECTORS FOR FAST SPEAKER CHANGE SCENARIOS中使用的生成能代表音频文件d-vector特征的Maxout-DNN模型结构实现,我们提供了训练代码以及训练好的可直接用于部署的modelarts模型(在trained_model文件夹内)。用户可自己训练后将生成的.ckpt文件替换trained_model文件夹内的.ckpt文件用于部署。项目说明参考论文SPEAKER SEGMENTATION USING DEEP SPEAKER VECTORS FOR FAST SPEAKER CHANGE SCENARIOS·使用框架·tensorflow-1.13.1···训练集···Voxceleb1中随机选取的100个speaker··epoch数··500batch_size512Table1测试集Voxceleb1 test datasetTable2测试集AMI test dataset音频文件Fbank维数402.训练2.1算法基本信息任务类型:Speaker change point detection支持的框架引擎:Tensorflow1.13.1-python3.6算法输入:首先按照preprocess.py文件进行预处理提取音频文件的logfbank特征并保存为feature.npy文件,其对应的speaker作为label转换为独热编码保存为label.npy文件。将上述生成的npy文件保存在OBS中作为train.py文件的输入。算法输出:用于Tensorflow推导生成d-vector的.ckpt文件。代码结构:src|-trained_model(可直接用于部署预测的模型)|-checkpoint|-model.ckpt|-config.json|-customizer_service.py|-preprocess.py|-trian.py|-preprocess.py|-evaluation.py|-changepoint_detect.py|-在线服务实例数据|-批量服务实例数据###2.2训练参数说明parser.add_argument(“–input_shape”, default=40, type=int,help=“DNN input dimensions”) # Maxout-DNN输入维度,音频文件预处理logfbank特征维数(即滤波器个数)parser.add_argument(“–units”, default=200, type=int, help=“hidden layer units”) # 隐藏层神经元个数parser.add_argument(“–label_nums”, default=100, type=int, help=“classification labels”) # 多分类任务label个数parser.add_argument(“–batch_size”, default=512, type=int, help=“batch_size”) # batch_size一批次输入个数parser.add_argument(“–epoch”, default=2, type=int, help=“epochs”) # epoch训练轮次,可更改建议改为500parser.add_argument(“–print_step”, default=20000, type=int, help=“print every print_step”) # 每20000个batch在验证集上验证效果parser.add_argument(“–prob”, default=0.5, type=float, help=“dropout rate”) # dropout随机失活的概率parser.add_argument(“–lr”, default=1e-4, type=float, help=“learning rate”) # Adam优化算法初始学习率parser.add_argument(“–decay_rate”, default=0.1, type=float, help=“lr decay rate”) # 学习率指数衰减parser.add_argument(“–decay_steps”, default=140000, type=int, help=“lr decay steps”) # 每140000个batch降低学习率parser.add_argument(“–epsilon”, default=0.1, type=float, help=“label smoothing”) # 标签滑动相关参数3.案例指导本算法的详细使用方法,请查看《AI Gallery MaxoutDNN生成d-vector算法使用介绍》。帖子链接:https://marketplace.huaweicloud.com/markets/aihub/article/detail/?content_id=a009bd5f-bb07-4511-88cc-f56e93beb2d5交付交付方式华为云ModelArts交付区域华北-北京一、华北-北京四、华东-上海一、华南-广州、亚太-**
-
描述TSD(目标检测/Pytorch)1. 概述此模型基于Revisiting the Sibling Head in Object Detector中提出的模型结构实现,该算法会载入在COCO上的预训练模型,在用户数据集上做迁移学习。我们提供了训练代码和可用于训练的模型,用于实际场景的微调训练。训练后生成的模型可直接在ModelArts平台部署成在线服务。目标检测的评估手段一般使用AP指标,详细说明请参考原论文。本算法的其他信息如下表所示:项目说明参考论文Revisiting the Sibling Head in Object Detector使用框架Pytorch-1.4.0训练集COCO2017中的训练集训练总epoch数35训练batch_size使用8张V100训练,每张卡TRAIN_BATCH_SIZE = 2,相当于总batch_size为16训练硬件及耗时8*V100,约100小时测试集COCO2017中的test_dev推理硬件及速度V100,1.9s/pic原论文准确率AP=49.4本算法准确率AP=49.42. 训练2.1. 算法基本信息任务类型:目标检测支持的框架引擎:PyTorch-1.4.0-python3.6算法输入:存储在OBS上的数据集,必须按照COCO数据集的格式进行存储,详情请查看下文第4节案例指导COCO预训练模型,在COCO test_dev上的AP是49.4算法输出:用于Pytorch推理的pth模型代码结构|-src # 算法源码根目录 |-pre-trained_weights # ImageNet上的预训练参数文件 |-trained_model # 已训练好的、可复现论文精度的模型 |-model |-config.json |-customize_service.py |-epoch_35_mAP_49.4_tsd1.pth # 训练好的模型 |-... |-train.py # 算法启动文件 |-evaluation.py # 模型评估脚本 |-...2.2. 训练参数说明名称默认值类型是否必填是否可修改描述gpu_num1int否是使用GPU的数目,默认是1块GPUimgs_per_gpu2int否是每块GPU能同时处理的图像数目lr0.02float否是训练的学习率epoch1int否是训练多少代lr_step24,33str否是在训练至多少代时进行进行学习率衰减deterministic1int否是算法是否是确定性的,即是否设定种子validate1int否是训练时是否进行在验证集上检验multi_train1int否是在训练时是否采用多尺度图像增强multi_test0int否是在验证和测试时是否采用多尺度图像增强test_ann_fileannotations/image_info_test-dev2017.jsonstr否是测试时采用的图像标注json文件。支持输入本算法源码目录的相对路径;也支持输入可变的OBS路径,用户可指定OBS上的一个模型文件路径。test_img_prefixtest2017str否是测试时图像所在的文件夹目录format_only0int否是是否只输出预测结果文件,不输出准确率等指标。当测试没有ground truth时,必须把format_only设为1load_weight—str否是是否加载已训练好的模型权重eval0int否是是否进行测试。1表示测试;0表示训练具体介绍一下load_weight参数:默认情况:默认加载已训练好的模型,即源码目录中的trained_model/model/ epoch_35_mAP_49.4_tsd1.pth,加载成功会打印日志。格式规范:支持输入本算法源码目录的相对路径;也支持输入可变的OBS路径,用户可指定OBS上的一个模型文件路径。使用方法:在训练阶段,可以加载ImageNet预训练Resnet101权重来train from scratch(需要把load_weight参数删除掉),也可以指定加载的模型路径,在此基础上继续训练;若为eval阶段,参数为空时默认加载本算法训练好的weight,不为空时加载用户指定weight进行测试。其他说明:算法加载模型成功后会打印日志。2.3. 训练输出文件训练完成后的输出文件如下:|- model |- model.pth # 训练好的模型文件 |- config.json |- customize_service.py |- ... # 部署所需的其他文件 |- xxxx.log |- xxxx.log.json如果设置eval为True,输出文件如下:|- test_res |- test_result.pkl # 预测结果的.pkl文件 |- tsd_test_results.bbox.json # 预测结果的.json文件3. GPU/CPU推理元模型来源 选择 从训练中选择,选择训练作业及版本。注意:推理配置文件model/config.json中的runtime字段为pytorch1.4-python3.6,表示该模型可同时在CPU或GPU运行。4. 案例指导本算法的详细使用方法,请查看《ModelArts AI Gallery算法TSD使用指导》。交付交付方式华为云ModelArts交付区域华北-北京一、华北-北京四、华东-上海一、华南-广州、亚太-**
-
最近,CV 研究者对 transformer 产生了极大的兴趣并取得了不少突破。这表明,transformer 有可能成为计算机视觉任务(如分类、检测和分割)的强大通用模型。我们都很好奇:在计算机视觉领域,transformer 还能走多远?对于更加困难的视觉任务,比如生成对抗网络 (GAN),transformer 表现又如何?在这种好奇心的驱使下,德州大学奥斯汀分校的 Yifan Jiang、Zhangyang Wang,IBM Research 的 Shiyu Chang 等研究者进行了第一次试验性研究,构建了一个只使用纯 transformer 架构、完全没有卷积的 GAN,并将其命名为 TransGAN。与其它基于 transformer 的视觉模型相比,仅使用 transformer 构建 GAN 似乎更具挑战性,这是因为与分类等任务相比,真实图像生成的门槛更高,而且 GAN 训练本身具有较高的不稳定性。论文链接:https://arxiv.org/pdf/2102.07074.pdf代码链接:https://github.com/VITA-Group/TransGAN从结构上来看,TransGAN 包括两个部分:一个是内存友好的基于 transformer 的生成器,该生成器可以逐步提高特征分辨率,同时降低嵌入维数;另一个是基于 transformer 的 patch 级判别器。研究者还发现,TransGAN 显著受益于数据增强(超过标准的 GAN)、生成器的多任务协同训练策略和强调自然图像邻域平滑的局部初始化自注意力。这些发现表明,TransGAN 可以有效地扩展至更大的模型和具有更高分辨率的图像数据集。 实验结果表明,与当前基于卷积骨干的 SOTA GAN 相比,表现最佳的 TransGAN 实现了极具竞争力的性能。具体来说,TransGAN 在 STL-10 上的 IS 评分为 10.10,FID 为 25.32,实现了新的 SOTA。 该研究表明,对于卷积骨干以及许多专用模块的依赖可能不是 GAN 所必需的,纯 transformer 有足够的能力生成图像。 在该论文的相关讨论中,有读者调侃道,「attention is really becoming『all you need』.」不过,也有部分研究者表达了自己的担忧:在 transformer 席卷整个社区的大背景下,势单力薄的小实验室要怎么活下去?如果 transformer 真的成为社区「刚需」,如何提升这类架构的计算效率将成为一个棘手的研究问题。基于纯 Transformer 的 GAN作为基础块的 Transformer 编码器 研究者选择将 Transformer 编码器(Vaswani 等人,2017)作为基础块,并尽量进行最小程度的改变。编码器由两个部件组成,第一个部件由一个多头自注意力模块构造而成,第二个部件是具有 GELU 非线性的前馈 MLP(multiple-layer perceptron,多层感知器)。此外,研究者在两个部件之前均应用了层归一化(Ba 等人,2016)。两个部件也都使用了残差连接。内存友好的生成器NLP 中的 Transformer 将每个词作为输入(Devlin 等人,2018)。但是,如果以类似的方法通过堆叠 Transformer 编码器来逐像素地生成图像,则低分辨率图像(如 32×32)也可能导致长序列(1024)以及更高昂的自注意力开销。 所以,为了避免过高的开销,研究者受到了基于 CNN 的 GAN 中常见设计理念的启发,在多个阶段迭代地提升分辨率(Denton 等人,2015;Karras 等人,2017)。他们的策略是逐步增加输入序列,并降低嵌入维数。 如下图 1 左所示,研究者提出了包含多个阶段的内存友好、基于 Transformer 的生成器: 每个阶段堆叠了数个编码器块(默认为 5、2 和 2)。通过分段式设计,研究者逐步增加特征图分辨率,直到其达到目标分辨率 H_T×W_T。具体来说,该生成器以随机噪声作为其输入,并通过一个 MLP 将随机噪声传递给长度为 H×W×C 的向量。该向量又变形为分辨率为 H×W 的特征图(默认 H=W=8),每个点都是 C 维嵌入。然后,该特征图被视为长度为 64 的 C 维 token 序列,并与可学得的位置编码相结合。 与 BERT(Devlin 等人,2018)类似,该研究提出的 Transformer 编码器以嵌入 token 作为输入,并递归地计算每个 token 之间的匹配。为了合成分辨率更高的图像,研究者在每个阶段之后插入了一个由 reshaping 和 pixelshuffle 模块组成的上采样模块。 具体操作上,上采样模块首先将 1D 序列的 token 嵌入变形为 2D 特征图,然后采用 pixelshuffle 模块对 2D 特征图的分辨率进行上采样处理,并下采样嵌入维数,最终得到输出。然后,2D 特征图 X’_0 再次变形为嵌入 token 的 1D 序列,其中 token 数为 4HW,嵌入维数为 C/4。所以,在每个阶段,分辨率(H, W)提升到两倍,同时嵌入维数 C 减少至输入的四分之一。这一权衡(trade-off)策略缓和了内存和计算量需求的激增。研究者在多个阶段重复上述流程,直到分辨率达到(H_T , W_T )。然后,他们将嵌入维数投影到 3,并得到 RGB 图像。用于判别器的 tokenized 输入与那些需要准确合成每个像素的生成器不同,该研究提出的判别器只需要分辨真假图像即可。这使得研究者可以在语义上将输入图像 tokenize 为更粗糙的 patch level(Dosovitskiy 等人,2020)。 如上图 1 右所示,判别器以图像的 patch 作为输入。研究者将输入图像分解为 8 × 8 个 patch,其中每个 patch 可被视为一个「词」。然后,8 × 8 个 patch 通过一个线性 flatten 层转化为 token 嵌入的 1D 序列,其中 token 数 N = 8 × 8 = 64,嵌入维数为 C。再之后,研究者在 1D 序列的开头添加了可学得位置编码和一个 [cls] token。在通过 Transformer 编码器后,分类 head 只使用 [cls] token 来输出真假预测。 实验 CIFAR-10 上的结果 研究者在 CIFAR-10 数据集上对比了 TransGAN 和近来基于卷积的 GAN 的研究,结果如下表 5 所示: 如上表 5 所示,TransGAN 优于 AutoGAN (Gong 等人,2019) ,在 IS 评分方面也优于许多竞争者,如 SN-GAN (Miyato 等人, 2018)、improving MMDGAN (Wang 等人,2018a)、MGAN (Hoang 等人,2018)。TransGAN 仅次于 Progressive GAN 和 StyleGAN v2。对比 FID 结果,研究发现,TransGAN 甚至优于 Progressive GAN,而略低于 StyleGANv2 (Karras 等人,2020b)。在 CIFAR-10 上生成的可视化示例如下图 4 所示:STL-10 上的结果研究者将 TransGAN 应用于另一个流行的 48×48 分辨率的基准 STL-10。为了适应目标分辨率,该研究将第一阶段的输入特征图从(8×8)=64 增加到(12×12)=144,然后将提出的 TransGAN-XL 与自动搜索的 ConvNets 和手工制作的 ConvNets 进行了比较,结果下表 6 所示:与 CIFAR-10 上的结果不同,该研究发现,TransGAN 优于所有当前的模型,并在 IS 和 FID 得分方面达到新的 SOTA 性能。高分辨率生成由于 TransGAN 在标准基准 CIFAR-10 和 STL-10 上取得不错的性能,研究者将 TransGAN 用于更具挑战性的数据集 CelebA 64 × 64。 TransGAN-XL 的 FID 评分为 12.23,这表明 TransGAN-XL 可适用于高分辨率任务。可视化结果如图 4 所示。局限性虽然 TransGAN 已经取得了不错的成绩,但与最好的手工设计的 GAN 相比,它还有很大的改进空间。在论文的最后,作者指出了以下几个具体的改进方向:对 G 和 D 进行更加复杂的 tokenize 操作,如利用一些语义分组 (Wu et al., 2020)。使用代理任务(pretext task)预训练 Transformer,这样可能会改进该研究中现有的 MT-CT。更加强大的注意力形式,如 (Zhu 等人,2020)。更有效的自注意力形式 (Wang 等人,2020;Choromanski 等人,2020),这不仅有助于提升模型效率,还能节省内存开销,从而有助于生成分辨率更高的图像。作者简介本文一作 Yifan Jiang 是德州大学奥斯汀分校电子与计算机工程系的一年级博士生(此前在德克萨斯 A&M 大学学习过一年),本科毕业于华中科技大学,研究兴趣集中在计算机视觉、深度学习等方向。目前,Yifan Jiang 主要从事神经架构搜索、视频理解和高级表征学习领域的研究,师从德州大学奥斯汀分校电子与计算机工程系助理教授 Zhangyang Wang。 在本科期间,Yifan Jiang 曾在字节跳动 AI Lab 实习。今年夏天,他将进入 Google Research 实习。 一作主页:https://yifanjiang.net/ 参考链接:https://www.reddit.com/r/MachineLearning/comments/ll30kf/r_transgan_two_transformers_can_make_one_strong/ 本文转自: https://www.jiqizhixin.com/articles/2021-02-17
-
涵盖 2D 和 3D 特征点、语义分割、3D 眼球注释以及注视向量和眼动类型等因素,德国图宾根大学的研究者创建了全球最大的人眼图像公开数据集——TEyeD。在当今世界,基于图像的眼动追踪(eye tracking)变得越来越重要,这是因为人眼运动有可能变革我们与周围计算机系统交互的方式。此外,眼动的方式可以识别甚至在某种程度上预测我们的行动和意图,所以眼动分析可以赋能新的应用,特别是与 VR 或 AR 等现代显示技术结合时。例如,人眼注视(gaze)信号连同人机交互的可能性,使得残疾人能够借助专门为其疾症设计的特殊设备来与环境进行交互。在手术显微镜的应用场景中,外科医生必须进行多种控制行为,这时视觉信号可以用于自动对焦。人眼注视行为还可用于诊断精神分裂症、自闭症、阿尔茨海默症、青光眼等多种疾病。在 VR 或 AR 游戏中,人眼注视信号可用于减少渲染资源的计算。除了人眼注视信息以外,对人眼的观察还可以带来更多信息源。例如人眼闭合的频率可用于衡量人的疲劳程度,这是汽车驾驶和航空飞行场景中的一种有效安全特征。另一个重要的信息源是瞳孔大小,它可以作为估计指定任务中人们认知负荷的基础,然后调整内容(如基于媒介的学习)以更好地适应人的精神状态。最后,借助虹膜特征以及个人的人眼注视行为,人眼相关的信息可以在生物识别过程中得到应用。近日,来自德国图宾根大学的研究者创建了世界上最大的、统一人眼图像公开数据集 TEyeD,这些图像均通过头戴式设备拍摄获取。具体而言,TEyeD 的创建过程中使用了七种不同的头戴式眼动追踪器,其中两个还结合了 VR 或 AR 设备。TEyeD 中的图像在不同的任务场景中获得,包括乘车、模拟飞行、户外体育运动以及日常室内活动。此外,数据集中的人眼图像包括 2D 和 3D 特征点、语义分割、3D 眼球注释以及注视向量(gaze vector, GV)和眼动类型。对瞳孔、虹膜和眼睑均提供了特征点和语义分割,视频长度从几分钟到几小时不等。TEyeD 数据集拥有 2000 多万张精心注释的人眼图像,为推动现代 VR 和 AR 应用中计算机视觉、眼动追踪和注视估计领域的研究提供了独特且一致的资源和良好的基础。论文地址:https://arxiv.org/pdf/2102.02115.pdf与现有数据集的对比下表 1 列出了包含人眼特写图像的现有数据集。每个数据集处理特定的问题,例如 Casia 和 Ubiris 数据集借助虹膜识别个人。在 NNVEC 中,对光学向量和眼球位置的直接估计可以补偿头戴式眼动追踪器的位移。TEyeD 通过使用 7 种分辨率不同的眼动追踪器结合并扩展了以前发布的数据集,合并了现有数据集提供的所有可用注释,并通过 3D 分割和特征点扩展了这些数据集。更具体地说,TEyeD 集成的数据集包括 NNGaze、LPW、GIW、ElSe、ExCuSe 和 PNET。此外,来自研究 [69] 的完整数据也得到了精心注释。TEyeD 一共包含 2000 多万张图像,是全球最大、利用头戴式眼动追踪器拍摄的图像数据集。数据集详情下图 1 展示了 TEyeD 数据集中的示例图像。具体而言,第 1 和第 5 列包含输入图像;第 2 和第 6 列的人眼图像展示了巩膜、虹膜和瞳孔的叠加分割(overlaid segmentation);第 3 和第 7 列展示了输入图像的特征点,其中红色表示眼睑、绿色表示虹膜、白色表示瞳孔;第 4 和第 8 列展示了计算出的眼球以及眼球中心和注视向量。下图 2 展示了瞳孔(左)、虹膜(中)和眼睑(右)特征点的对数分布:下图 3 展示了瞳孔、虹膜和巩膜的区域分布箱形图(左),以及注视向量的对数分布(右):下图 4 展示了眼球位置 (x,y) 的分布,以及映射到固定分辨率 192×144 的眼球半径(以像素为单位)箱形图:注释过程对于 TEyeD 数据集中的特征点注释和语义分割,研究者同时使用了半监督方法和多注释 maturation (MAM) 算法。与原始算法不同,他们没有用 SVM,而是将卷积神经网络(CNN)与 HOG 特征相结合。此外,研究者还将迭代次数限制在了 5 次,并使用两个竞争模型。其中一个模型包含 ResNet50,并使用 [36] 中的验证损失函数进行特征点回归训练;对于另一个模型,他们将语义分割与 U-Net 和残差块一起训练。最初,研究者对 2 万张具有特征点的图像进行了注释,并将它们转化成语义分割。然后,他们训练 CNN 并利用 MAM 算法不断进行改进。在 5 次迭代后,ResNet50 特征点转化成了语义分割并与 U-Net 结果进行对比。具体而言,研究者基于 [30] 中的方法对 3D 眼球和光学向量进行了注释。但是,他们没有使用椭圆形瞳孔,而是使用了椭圆形虹膜,这是因为后者仅受角膜曲率(corneal refraction)的部分影响。通过结合 2D 特征点、分割和 3D 眼球模型,研究者对 3D 特征点和分割进行了几何计算。由于瞳孔总是位于虹膜的中心,他们考虑了两种不同的 3D 分割和 3D 特征点。眼动注释则分为了注视(眼球静止不动)、扫视(两次注视之间的快速眼动)、平滑跟随(缓慢眼动)和眨眼。基准评估在实验中,研究者将数据分成训练集和验证集。为了避免训练和验证集中出现相同的实验对象,他们将整个记录分配给训练集和验证集的其中一个。对于评估环境,研究者将基于 C ++ 的 CuDNN 框架用于神经网络模型。测试环境硬件包括一个 4 核心、16GB DDR4 内存的 Intel i5-4570 CPU 和一个 4 GB 内存的 NVIDIA 1050ti。下表 3 显示了特征点回归的结果。结果表明,如预期一样,较大模型在回归任务上更加有效。下表 4 得出了同样的结论,其中显示了眼球参数估计的结果:如上表 3 和 4 所示,与现有规模较小的数据集相比,我们可以看到 TEyeD 数据集具有明显优势。这些结果还表明,如预期的那样,对现实世界场景中拍摄的图像进行跨眼球追踪(cross-eye-tracker)泛化是一项具有挑战性的任务,但通过结合使用 TEyeD 与更复杂的架构可以处理这项任务。因此,无论何时使用一种新的眼动追踪设备都可以轻松解决跨眼球追踪泛化任务,并且无需创建和注释新数据。下图 5 显示了语义分割的结果:下表 6 显示了眼动识别的结果。可以看到,注视向量在眼动分类中更加有效,因为它对眼动追踪器的位移做出了补偿。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签