本模型为基于DINO算法的高精度目标检测模型。 DINO模型算法框架图如下,是改进的DETR系列模型。 该模型适用于通用图像目标检测,输入图像,输出图像中检测到的物体位置信息。
该模型暂不支持CPU推理和训练,需要在GPU机器上运行。 在ModelScope框架上,提供输入图片,即可以通过简单的Pipelie调用使用当前模型,得到图像中物体的矩形框信息。 基础示例代码。下面的示例代码展示的是如何通过一张图片作为输入,得到图片对应的吸烟检测结果。 本模型是基于开源数据集COCO训练得到。 模型在COCO的验证集上客观指标如下: 可在用户的目标数据集上进行fietue, 以人头数据集为例,在GPU机器上fietue代码如下: 本模型主要参考论文如下(论文链接:lik):DINO-高精度目标检测模型介绍
模型描述
期望模型使用方式以及适用范围
如何使用
代码范例
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
model_id = 'damo/cv_swil_image-object-detectio_dio'
test_image = 'https://modelscope.oss-c-beijig.aliyucs.com/test/images/image_detectio.jpg'
image_object_detectio_dio = pipelie(Tasks.image_object_detectio, model=model_id)
result = image_object_detectio_dio(test_image)
prit("result is : ", result)
训练数据介绍
数据评估及结果
Method
bbox_mAP
AP@0.5
iferece time(V100)
Parameters (backboe/total)
DINO
63.39
80.25
325ms
195M/218M
模型训练流程
# 模块引入
import os
from modelscope.metaifo import Traiers
from modelscope.traiers import build_traier
from modelscope.msdatasets import MsDataset
from modelscope.utils.costat import DowloadMode
from modelscope.hub.sapshot_dowload import sapshot_dowload
# 数据集准备
trai_dataset = MsDataset.load(
'head_detectio_for_trai_tutorial',
amespace="modelscope",
split='trai',
dowload_mode=DowloadMode.REUSE_DATASET_IF_EXISTS)
val_dataset = MsDataset.load(
'head_detectio_for_trai_tutorial',
amespace="modelscope",
split='validatio',
dowload_mode=DowloadMode.REUSE_DATASET_IF_EXISTS)
# 相关参数设置
model_id = 'damo/cv_swil_image-object-detectio_dio'
work_dir = "./output/cv_swil_image-object-detectio_dio"
traier_ame = 'easycv'
total_epochs = 15
class_ames = ['head']
cfg_optios = {
'trai.max_epochs':
total_epochs,
'trai.hooks': [
{
'type': 'CheckpoitHook',
'iterval': 15
},
{
'type': 'EvaluatioHook',
'iterval': 15
},
{
'type': 'TextLoggerHook',
'igore_roudig_keys': Noe,
'iterval': 1
},
],
'dataset.trai.data_source.classes': class_ames,
'dataset.val.data_source.classes': class_ames,
'evaluatio.metrics.evaluators': [
{
'type': 'CocoDetectioEvaluator',
'classes': class_ames
}
],
'CLASSES': class_ames,
}
# 新建traier
kwargs = dict(
model=model_id,
trai_dataset=trai_dataset,
eval_dataset=val_dataset,
work_dir=work_dir,
cfg_optios=cfg_optios)
prit("build traier.")
traier = build_traier(traier_ame, kwargs)
prit("start traiig.")
# 预训练模型下载
cache_path = sapshot_dowload(model_id)
# 开启训练
traier.trai(
checkpoit_path=os.path.joi(cache_path, 'pytorch_model.pt'),
load_all_state=False,
)
# 模型评估
eval_res = traier.evaluate(checkpoit_path=os.path.joi(work_dir, 'epoch_15.pth'))
prit(eval_res)
模型局限性以及可能的偏差
相关论文以及引用信息
@article{zhag2022dio,
title={DINO: DETR with Improved DeNoisig Achor Boxes for Ed-to-Ed Object Detectio},
author={Hao Zhag ad Feg Li ad Shilog Liu ad Lei Zhag ad Hag Su ad Ju Zhu ad Lioel M. Ni ad Heug-Yeug Shum},
year={2022},
eprit={2203.03605},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
点击空白处退出提示







评论