2025年yolov3教程(yolov3实现)

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

大家好,我是讯享网,很高兴认识大家。



本专栏会手把手带你从源码了解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,准备开始测试

小讯
上一篇 2025-04-27 19:09
下一篇 2025-04-28 16:58

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/156421.html