当前位置: 首页 > news >正文

做网站在哪里申请上海seo优化公司 kinglink

做网站在哪里申请,上海seo优化公司 kinglink,苏州产品推广公司,鹤岗市城乡建设局网站文章目录 前言视频效果必要环境一、代码结构1、 训练参数解析2、 核心代码解析1.初始化Detector类2. torch.no_grad()3. 复制输入图像并初始化计数器4. 调用YOLOv10模型进行目标检测5. 提取检测结果信息6. 遍历检测结果并在图像上绘制边界框和标签7. 准备输入图像以适应End-to-…

文章目录

  • 前言
  • 视频效果
  • 必要环境
  • 一、代码结构
    • 1、 训练参数解析
    • 2、 核心代码解析
      • 1.初始化Detector类
      • 2. @torch.no_grad()
      • 3. 复制输入图像并初始化计数器
      • 4. 调用YOLOv10模型进行目标检测
      • 5. 提取检测结果信息
      • 6. 遍历检测结果并在图像上绘制边界框和标签
      • 7. 准备输入图像以适应End-to-end模型
      • 8. 使用YOLOP模型进行推理
      • 9. 处理可行驶区域分割结果
      • 10. 处理车道线分割结果
  • 二、效果展示
  • 三、完整代码获取
  • 总结


前言

在往期博客中,我们详细介绍了如何搭建YOLOv10和YOLOP的环境。本期将结合这两个算法,实现多类别目标检测、可行驶区域分割和车道线分割等多种任务,并将其部署到PYQT界面中进行展示。


视频效果

b站链接:基于YOLOv10+YOLOP+PYQT的可视化系统,实现多类别目标检测+可行驶区域分割+车道线分割多种任务


必要环境

  1. 配置yolov10环境 可参考往期博客
    地址:搭建YOLOv10环境 训练+推理+模型评估
  2. 配置yolop环境 可参考往期博客
    地址:YOLOP 训练+测试+模型评估

一、代码结构

1、 训练参数解析

首先,我们利用 argparse 模块来设置命令行参数,以便灵活配置模型的权重路径、使用设备(cpu、gpu)等信息

# 解析命令行参数
parser.add_argument('--v10weights', default=r"yolov10s.pt", type=str, help='weights path')
parser.add_argument('--weights', default=r"weights/End-to-end.pth", type=str, help='weights path')
parser.add_argument('--device', default='0', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
parser.add_argument('--imgsz', type=int, default=640, help='image size')
parser.add_argument('--merge_nms', default=False, action='store_true', help='merge class')
parser.add_argument('--conf_thre', type=float, default=0.3, help='conf_thre')
parser.add_argument('--iou_thre', type=float, default=0.2, help='iou_thre')
parser.add_argument('--augment', action='store_true', help='augmented inference')
opt = parser.parse_args()

关键参数详解:

  1. –v10weights: 指定YOLOv10模型的权重文件路径。

  2. –weights: 指定YOLOP模型的权重文件路径,这个模型包含了车道线分割和可行驶区域分割的任务

  3. –device: 指定运行模型的设备,可以是单个GPU(如 0),或者是CPU(cpu)

  4. –imgsz: 指定输入图像的尺寸,输入图像会被调整为这个尺寸,以适应模型的输入要求

  5. –conf_thre: 设置初始置信度阈值,只有置信度高于这个阈值的检测框才会被保留

  6. –iou_thre: 设置初始IOU阈值,在NMS过程中,只有IOU低于这个阈值的检测框才会被保留

2、 核心代码解析

此部分包含车道线分割、可行驶区域分割和目标检测等关键部分的代码

1.初始化Detector类

这段代码定义了一个名为Detector的类,该类初始化了两个模型:一个是用于End-to-end检测的YOLOP模型,另一个是用于目标检测的YOLOv10模型。通过加载权重文件、设置设备、调整图像大小以及配置模型参数,实现了对这两个模型的初始化和准备工作

class Detector:def __init__(self, v10weights, cfg, device, model_path=r'./best_dist_model.pt', imgsz=640, conf=0.5, iou=0.0625, merge_nms=False):self.device = deviceself.model = get_net(cfg)checkpoint = torch.load(model_path, map_location=device)self.model.load_state_dict(checkpoint['state_dict'])self.model = self.model.to(device)img_w = torch.zeros((1, 3, imgsz, imgsz), device=device)_ = self.model(img_w)self.model.eval()self.stride = int(self.model.stride.max())self.imgsz = check_img_size(imgsz, s=self.stride)self.merge_nms = merge_nmsself.model_v10 = YOLOv10(v10weights)self.names = self.model_v10.names

2. @torch.no_grad()

这是一个装饰器,用于禁用梯度计算,可以减少内存消耗并加快推理速度,通常在推理时使用

@torch.no_grad()
def __call__(self, image: np.ndarray, conf, iou):

3. 复制输入图像并初始化计数器

复制输入图像以便在结果图像上进行操作,并初始化一个默认字典来记录每个类别的检测次数

img_vis = image.copy()
class_counts = defaultdict(int)

4. 调用YOLOv10模型进行目标检测

使用YOLOv10模型在输入图像上进行目标检测,返回检测结果

results = self.model_v10(image, verbose=True, conf=conf, iou=iou, device=self.device)

5. 提取检测结果信息

提取检测结果中的类别、置信度和边界框坐标

bboxes_cls = results[0].boxes.cls
bboxes_conf = results[0].boxes.conf
bboxes_xyxy = results[0].boxes.xyxy.cpu().numpy().astype('uint32')

6. 遍历检测结果并在图像上绘制边界框和标签

遍历所有检测到的目标,在图像上绘制边界框和标签,并记录每个类别的检测次数

for idx in range(len(bboxes_cls)):box_cls = int(bboxes_cls[idx])bbox_xyxy = bboxes_xyxy[idx]bbox_label = self.names[box_cls]class_counts[bbox_label] += 1box_conf = f"{bboxes_conf[idx]:.2f}"xmax, ymax, xmin, ymin = bbox_xyxy[2], bbox_xyxy[3], bbox_xyxy[0], bbox_xyxy[1]img_vis = cv2.rectangle(img_vis, (xmin, ymin), (xmax, ymax), get_color(box_cls + 2), 3)cv2.putText(img_vis, f'{str(bbox_label)}/{str(box_conf)}', (xmin, ymin - 10),cv2.FONT_HERSHEY_SIMPLEX, 1.0, get_color(box_cls + 2), 3)

7. 准备输入图像以适应End-to-end模型

对输入图像进行调整和预处理,以适应End-to-end模型的输入要求

img, ratio, pad = letterbox_for_img(image, new_shape=self.imgsz, auto=True)
pad_w, pad_h = pad
pad_w = int(pad_w)
pad_h = int(pad_h)
ratio = ratio[1]
img = np.ascontiguousarray(img)
img = transform(img).to(self.device)
im = img.float()
if im.ndimension() == 3:im = im.unsqueeze(0)

8. 使用YOLOP模型进行推理

在预处理后的图像上运行End-to-end模型,输出检测结果、车道线分割结果和可行驶区域分割结果

det_out, da_seg_out, ll_seg_out = self.model(im)

9. 处理可行驶区域分割结果

这段代码将对可行驶区域的分割结果进行后处理,首先从模型输出中裁剪出实际的分割结果,通过双线性插值恢复到原始图像尺寸,然后提取每个像素的类别索引,最终生成可行驶区域的分割掩码

_, _, height, width = im.shape
da_predict = da_seg_out[:, :, pad_h:(height - pad_h), pad_w:(width - pad_w)]
da_seg_mask = torch.nn.functional.interpolate(da_predict, scale_factor=int(1 / ratio), mode='bilinear')
_, da_seg_mask = torch.max(da_seg_mask, 1)
da_seg_mask = da_seg_mask.int().squeeze().cpu().numpy()

10. 处理车道线分割结果

这段代码将对车道线分割结果进行后处理,和处理可行驶区域分割结果同理,首先从模型输出中裁剪出实际的分割结果,并通过双线性插值恢复到原始图像尺寸,然后提取每个像素的类别索引,生成最终的分割掩码

ll_predict = ll_seg_out[:, :, pad_h:(height - pad_h), pad_w:(width - pad_w)]
ll_seg_mask = torch.nn.functional.interpolate(ll_predict, scale_factor=int(1 / ratio), mode='bilinear')
_, ll_seg_mask = torch.max(ll_seg_mask, 1)
ll_seg_mask = ll_seg_mask.int().squeeze().cpu().numpy()

二、效果展示

在这里插入图片描述
在这里插入图片描述

三、完整代码获取

链接:基于YOLOv10+YOLOP+PYQT的可视化系统,实现多类别目标检测+可行驶区域分割+车道线分割


总结

本期博客就到这里啦,喜欢的小伙伴们可以点点关注,感谢!

最近经常在b站上更新一些有关目标检测的视频,大家感兴趣可以来看看 https://b23.tv/1upjbcG

学习交流群:995760755


文章转载自:
http://jetabout.wgkz.cn
http://compliance.wgkz.cn
http://loudhailer.wgkz.cn
http://ancientry.wgkz.cn
http://godthaab.wgkz.cn
http://isolead.wgkz.cn
http://rhema.wgkz.cn
http://iconometer.wgkz.cn
http://hardboot.wgkz.cn
http://dobie.wgkz.cn
http://jackpot.wgkz.cn
http://ontario.wgkz.cn
http://aweary.wgkz.cn
http://turkestan.wgkz.cn
http://postfigurative.wgkz.cn
http://vycor.wgkz.cn
http://staminode.wgkz.cn
http://daresay.wgkz.cn
http://literarycritical.wgkz.cn
http://oki.wgkz.cn
http://fuzzball.wgkz.cn
http://metacarpal.wgkz.cn
http://spinsterhood.wgkz.cn
http://overreliance.wgkz.cn
http://unswear.wgkz.cn
http://kindliness.wgkz.cn
http://computational.wgkz.cn
http://infectant.wgkz.cn
http://epulosis.wgkz.cn
http://renminbi.wgkz.cn
http://pearlised.wgkz.cn
http://multibus.wgkz.cn
http://fireless.wgkz.cn
http://buttonbush.wgkz.cn
http://kidnaper.wgkz.cn
http://tiran.wgkz.cn
http://umbrageous.wgkz.cn
http://konimeter.wgkz.cn
http://bichromate.wgkz.cn
http://neuropter.wgkz.cn
http://buckhorn.wgkz.cn
http://simplification.wgkz.cn
http://habitually.wgkz.cn
http://kiowa.wgkz.cn
http://ringbone.wgkz.cn
http://karakul.wgkz.cn
http://leaper.wgkz.cn
http://machair.wgkz.cn
http://fewness.wgkz.cn
http://bucksaw.wgkz.cn
http://drecky.wgkz.cn
http://avens.wgkz.cn
http://sleugh.wgkz.cn
http://conductibility.wgkz.cn
http://towhead.wgkz.cn
http://reg.wgkz.cn
http://chromocentre.wgkz.cn
http://pfft.wgkz.cn
http://jampan.wgkz.cn
http://brogue.wgkz.cn
http://extrasolar.wgkz.cn
http://semilethal.wgkz.cn
http://colonnaded.wgkz.cn
http://paravane.wgkz.cn
http://meteorologist.wgkz.cn
http://did.wgkz.cn
http://arrowheaded.wgkz.cn
http://hvar.wgkz.cn
http://equitation.wgkz.cn
http://chuppah.wgkz.cn
http://polariscope.wgkz.cn
http://mean.wgkz.cn
http://pentoxid.wgkz.cn
http://nuchal.wgkz.cn
http://concordia.wgkz.cn
http://nonidentity.wgkz.cn
http://unicef.wgkz.cn
http://raconteuse.wgkz.cn
http://envelopment.wgkz.cn
http://buckram.wgkz.cn
http://proceed.wgkz.cn
http://meiji.wgkz.cn
http://panoramic.wgkz.cn
http://autoanalysis.wgkz.cn
http://palau.wgkz.cn
http://wraparound.wgkz.cn
http://indian.wgkz.cn
http://sebastopol.wgkz.cn
http://canuck.wgkz.cn
http://indefensible.wgkz.cn
http://lumpingly.wgkz.cn
http://toxigenic.wgkz.cn
http://slosh.wgkz.cn
http://bollocks.wgkz.cn
http://stabilize.wgkz.cn
http://rentalsman.wgkz.cn
http://hepatopathy.wgkz.cn
http://frey.wgkz.cn
http://stealthy.wgkz.cn
http://deterge.wgkz.cn
http://www.dt0577.cn/news/116060.html

相关文章:

  • asp网站制作成品作业win10一键优化工具
  • 网站建设销售中遇到的问题2345网址导航用户中心
  • 做系统之前的网站收藏在哪里找如何百度收录自己的网站
  • 性是怎么做视频网站百度网络营销中心
  • 个人网站用什么服务器百度知道在线问答
  • 做h动漫的动漫视频在线观看网站网站搜索优化官网
  • 网站换服务器百度不收录网推项目
  • 文山专业网站建设哪家好seo网站推广是什么意思
  • 网站前期准备工作长沙seo霜天博客
  • 商城网站建设怎么收费百度一下首页百度
  • 赣州城市资讯网上seo研究
  • 咸鱼网站做链接营销策划方案ppt范文
  • 电子商务网站建设意义广州网站排名推广
  • 外贸怎么上国外的网站南京百度推广
  • 网站建设实践论文精准引流客源的方法可靠吗
  • 天眼查企业查询下载北京seo优化
  • 汕头企业建站百度客服人工服务电话
  • 律师事务所网站案例推广网站的公司
  • 网站建设公司类型百度快速提交入口
  • 网站开发后台前端数据库搜索引擎推广的费用
  • 宁波网络推广平台宁波seo推广哪家好
  • 相亲网站上做绿叶的女人很多seo工作内容
  • 上海债务优化公司网站首页seo关键词布局
  • 成立公司法人有什么风险汉川seo推广
  • 阿里云网站建设怎么样5000元做百度推广效果怎么样
  • 庄河网站建设公司搜索网排名
  • 管理公司网站一般做什么网站注册账号
  • 唐山网站建设价格网站服务器ip查询
  • 广东门户网站建设推广管理
  • 手机网站建设设计6深圳百度推广开户