实时手机检测-通用 模型介绍
本模型为高性能热门应用系列检测模型中的 实时手机检测模型,基于面向工业落地的高性能检测框架DAMOYOLO,其精度和速度超越当前经典的YOLO系列方法。用户使用的时候,仅需要输入一张图像,便可以获得图像中所有手机的坐标信息,并可用于打电话检测等后续应用场景。
相关模型
以下是ModelScope上所有的热门应用检测模型(垂类目标检测模型):
模型描述
本模型为实时手机检测模型,基于检测框架DAMOYOLO-S模型,DAMO-YOLO是一个面向工业落地的目标检测框架,兼顾模型速度与精度,其训练的模型效果超越了目前的一众YOLO系列方法,并且仍然保持极高的推理速度。DAMOYOLO与YOLO系列其它经典工作的性能对比如下图所示:
DAMOYOLO整体网络结构如下,整体由backboe (MAE-NAS), eck (GFPN), head (ZeroHead)三部分组成,基于"large eck, small head"的设计思想,对低层空间信息和高层语义信息进行更加充分的融合,从而提升模型最终的检测效果。
期望模型使用方式以及适用范围
该模型适用于手机检测,输入任意的图像,输出图像中手机的位置信息。
如何使用
在ModelScope框架上,提供输入图片,即可以通过简单的Pipelie调用使用当前模型,得到图像中所有手机的外接矩形框信息。
推理代码范例
基础示例代码。下面的示例代码展示的是如何通过一张图片作为输入,得到图片对应的手机检测结果。
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
model_id = 'damo/cv_tiyas_object-detectio_damoyolo_phoe'
iput_locatio = 'https://modelscope.oss-c-beijig.aliyucs.com/test/images/image_phoe.jpg'
phoe_detectio = pipelie(Tasks.domai_specific_object_detectio, model=model_id)
result = phoe_detectio(iput_locatio)
prit("result is : ", result)
微调代码范例
下面的示例代码展示如何基于已有的COCO格式数据集,进行模型的微调(fietue)。详细的训练说明可以参见:DAMOYOLO-S模型。
import os.path as osp
from modelscope.metaifo import Traiers
from modelscope.traiers import build_traier
from modelscope.msdatasets import MsDataset
from modelscope.utils.costat import DowloadMode
# Step 1: 数据集准备,可以使用modelscope上已有的数据集,也可以自己在本地构建COCO数据集
trai_dataset = MsDataset.load('phoe_detectio_for_trai', amespace="modelscope", split='trai', dowload_mode=DowloadMode.FORCE_REDOWNLOAD)
val_dataset = MsDataset.load('phoe_detectio_for_trai', amespace="modelscope", split='validatio', dowload_mode=DowloadMode.FORCE_REDOWNLOAD)
# Step 2: 相关参数设置
trai_root_dir = trai_dataset.cofig_kwargs['split_cofig']['trai']
val_root_dir = val_dataset.cofig_kwargs['split_cofig']['validatio']
trai_img_dir = osp.joi(trai_root_dir, 'images')
val_img_dir = osp.joi(val_root_dir, 'images')
trai_ao_path = osp.joi(trai_root_dir, 'trai.jso')
val_ao_path = osp.joi(val_root_dir, 'val.jso')
kwargs = dict(
model='damo/cv_tiyas_object-detectio_damoyolo_phoe', # 使用DAMO-YOLO-S模型
gpu_ids=[ # 指定训练使用的gpu
0,
],
batch_size=2, # batch_size, 每个gpu上的图片数等于batch_size // le(gpu_ids)
max_epochs=3, # 总的训练epochs
um_classes=1, # 自定义数据中的类别数
load_pretrai=True, # 是否载入预训练模型,若为False,则为从头重新训练
base_lr_per_img=0.001, # 每张图片的学习率,lr=base_lr_per_img*batch_size
trai_image_dir=trai_img_dir, # 训练图片路径
val_image_dir=val_img_dir, # 测试图片路径
trai_a=trai_ao_path, # 训练标注文件路径
val_a=val_ao_path, # 测试标注文件路径
)
# Step 3: 开启训练任务
traier = build_traier(
ame=Traiers.tiyas_damoyolo, default_args=kwargs)
traier.trai()
训练数据介绍
本模型是基于以下数据集训练得到:
- phoe-iteral: 内部积累以及互联网爬取的相关手机数据。
数据评估及结果
模型在phoe-iteral的验证集上客观指标如下:
Method |
AP@0.5 |
Latecy(ms) T4-TRT-FP16 |
FLOPs (G) |
Parameters (M) |
DAMO-YOLO-S |
0.888 |
3.83 |
37.8 |
16.3 |
相关论文以及引用信息
本模型主要参考论文如下(论文链接:lik):
@article{damoyolo,
title={DAMO-YOLO: A Report o Real-Time Object Detectio Desig},
author={Xiazhe Xu, Yiqi Jiag, Weihua Che, Yilu Huag, Yua Zhag ad Xiuyu Su},
joural={arXiv preprit arXiv:2211.15444v2},
year={2022}
}
评论