[YOLO专题-26]:YOLO V5 - ultralytics代码解析-detect.py程序的流程图与对应的plantUML源码
Posted 文火冰糖的硅基工坊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[YOLO专题-26]:YOLO V5 - ultralytics代码解析-detect.py程序的流程图与对应的plantUML源码相关的知识,希望对你有一定的参考价值。
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122443972
目录
第1章 detect.py程序的流程图
第2章 流程图对应的plantUML源码
@startuml
start
:run();
:输入参数检查;
:输出目录准备;
:模型加载;
:模型半精度配置;
switch(data source?)
case(webcam)
:dataset=LoadStreams;
case(local)
:dataset=LoadImages;
endswitch
while (检查dataset是否为空?) is (not empty)
:batch images fetch;
:batch images 640 resize =ims;
:batch images 归一化normalization;
:batch模型输入(1,3,640,y);
:多模型并行预测pred=model(ims);
:所有检测框预测结果
(1,16380,85 = (x,y,w,h,conf,80));
:最大比抑制pred=non_max_suppression(pred,...);
:所有检测到单批次目标框
(1, N, 6 =(x,y,x,y,conf,class));
:二阶段分类pred=utils.general.
apply_classifier(pred, new_model,ims);
:所有经过二次分类后的单批次目标框
(1, N, 6 =(x,y,x,y,conf,class));
while (检查batch img是否为空?) is (not empty)
:获得单张图片的所有目标框;
:拷贝出batch迭代中的一张原图;
:把检测到的目标框尺寸还原到原图尺寸;
while (检查目标框是否为空?) is (not empty)
:获得单个目标框信息
(6=x,y,x,y,conf,class);
:转换目标框尺寸
(6=x,y,w,h,conf,class);
:目标框标签输出
(6=x,y,w,h,conf,class);
:在原图上绘制目标框
(6=x,y,x,y,conf,class);
:裁剪并存储目标框
(4=x,y,x,y);
endwhile(目标框为空)
:打印单张图片的预测时间;
:可视化单张预测图片;
:存储单张预测图片;
endwhile(batch img为空)
:打印batch image处理结束;
endwhile (dataset为空)
:展现最终的预测结果;
:需要时候更新模型;
stop
@enduml
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122443972
以上是关于[YOLO专题-26]:YOLO V5 - ultralytics代码解析-detect.py程序的流程图与对应的plantUML源码的主要内容,如果未能解决你的问题,请参考以下文章
[YOLO专题-18]:YOLO V5 - ultralytics代码解析-总体架构
[YOLO专题-22]:YOLO V5 - ultralytics代码解析-超参数详解
[YOLO专题-21]:YOLO V5 - ultralytics代码解析-网络配置文件与总体结构
[YOLO专题-19]:YOLO V5 - ultralytics代码解析-dataloader数据加载机制