YOLOv10s训练代码解析10:图像测试1

本专栏会手把手带你从源码了解YOLOv10(后续会陆续介绍YOLOv8、RTDETR等模型),尽可能地完整介绍整个算法,这个专栏会持续创作与更新,大家如果想要本文PDF和思维导图,后台私信我即可(创作不易,不喜勿喷),大家如果发现任何错误和需要修改的地方都可以私信我,我会统一修改。

新建test.py

调动第四行初始化YOLOv10 (ultralytics/models/yolov10/model.py)

YOLOv10继承自BaseModel类,继续做初始化 (ultralytics/engine/model.py)

调用BaseModel类的_load方法加载模型权重 (ultralytics/engine/model.py)

在ultralytics/nn/tasks.py文件中调用attempt_load_one_weight函数加载ckpt,解析得到里面的模型架构 

根据pt模型torch加载得到ckpt (ultralytics/nn/tasks.py)

根据ckpt推理得到任务、参数、模型名称等信息,至此完成YOLOv10s模型的初始化(ultralytics/engine/model.py)

之后调用第一张图的第六行,调用Model类的predict方法(ultralytics/engine/model.py)执行检测(is_cli:flag,是否是直接在命令行输入命令)

继续调用_smart_load方法加载YOLOv10s模型的predictor (ultralytics/engine/model.py)

ultralytics/models/yolov10/model.py

YOLOv10DetectionPredictor继承自BasePredictor,调用__init__方法做初始化(ultralytics/engine/predictor.py)

初始化完成之后,第8附图的第434行调用方法,构建后端(ultralytics/engine/predictor.py)

调用AutoBackend类的__init__方法,初始化fp16、输入格式、步长、模型、权重融合等(ultralytics/nn/autobackend.py)

继续在ultralytics/nn/autobackend.py中更新metadata、locals以及disable gradients

最后将在ultralytics/engine/predictor.py中将模型设为评估模式

上述初始化完成之后,在ultralytics/engine/model.py中准备开始预测

调用BasePredictor类的__call__方法(ultralytics/engine/predictor.py)

继续调用BasePredictor类的stream_inference方法(调用ultralytics/engine/predictor.py)

调用BasePredictor类的setup_source方法准备数据;目标检测时第183行的transformers为None(ultralytics/engine/predictor.py)

在ultralytics/data/build.py中判断source类型,加载source

第294、295行加载图片和视频路径;第301行标记video_flag(ultralytics/data/loaders.py)

在记载source完成之后,在ultralytics/engine/predictor.py中继续初始化新建文件夹,warmup,准备开始测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值