500网站建设ADPR国际传媒网站建设

web/2025/10/1 14:34:50/文章来源:
500网站建设,ADPR国际传媒网站建设,静态商城网页模板,vps和云服务器区别曾经想过计算机如何分析图像#xff0c;识别并定位其中的物体吗#xff1f;这正是计算机视觉领域的目标检测所完成的任务。DEtection TRansformer#xff08;DETR#xff09;和You Only Look Once#xff08;YOLO#xff09;是目标检测的两种重要方法。YOLO已经赢得了作为… 曾经想过计算机如何分析图像识别并定位其中的物体吗这正是计算机视觉领域的目标检测所完成的任务。DEtection TRansformerDETR和You Only Look OnceYOLO是目标检测的两种重要方法。YOLO已经赢得了作为实时目标检测和跟踪问题的首选模型的声誉。与此同时DETR是一种由变换器技术驱动的崭露头角的竞争者有潜力在计算机视觉领域引发革命类似于它对自然语言处理的影响。在本博客文章中我将探讨这两种方法以了解它们的工作原理 自2012年以来计算机视觉经历了一次革命性的转变这是由卷积神经网络CNN和深度学习架构的出现推动的。这些架构中值得注意的有AlexNet2012年GoogleNet2014年VGGNet2014年和ResNet2015年它们包含了大量的卷积层以提高图像分类的准确性。而图像分类任务涉及将标签分配给整个图像例如将一张图片分类为狗或汽车而目标检测不仅要识别图像中的内容还要确定每个物体在图像中的位置。 图像上的目标检测和分类示例 YOLO的原始版本2015年是实时目标检测的一项突破性工作当它发布时它仍然是实际视觉应用中最常用的模型之一。它将检测过程从两到三个阶段即R-CNNFast R-CNN转变为单阶段的卷积阶段并在准确性和速度方面超越了所有最先进的目标检测方法。原始论文中的模型架构随着时间的推移发生了变化添加了不同的手工设计特性以提高模型的准确性。以下是YOLO的前三个版本及其区别的概述。 YOLO v12015年是原始版本为后续版本奠定了基础。它使用单一的深度卷积神经网络CNN来预测边界框和类别概率。YOLO v1将输入图像分成一个网格并在网格的每个单元格中进行预测。每个单元格负责预测一定数量的边界框及其对应的类别概率。这个版本以令人印象深刻的速度实现了实时目标检测但在检测小物体和准确定位重叠物体方面存在一些限制。 YOLO v12015年原始框架 YOLO v22016年解决了原始YOLO模型的一些限制。它引入了锚定框anchor boxes有助于更好地预测不同尺寸和宽高比的边界框。YOLO v2使用了更强大的骨干网络Darknet-19并不仅在原始数据集PASCAL VOC上进行了训练还在COCO数据集上进行了训练大幅增加了可检测类别的数量。锚定框和多尺度训练的结合有助于提高小物体的检测性能。 YOLO v32018年进一步提高了目标检测的性能。这个版本引入了特征金字塔网络的概念具有多个检测层允许模型在不同尺度和分辨率下检测物体。YOLO v3使用了一个更大的网络架构拥有53个卷积层称为Darknet-53提高了模型的表示能力。YOLO v3在三个不同的尺度上进行检测13x13、26x26和52x52的网格。每个尺度在每个格子单元格中预测不同数量的边界框。 YOLO v3 框架 我们预测了多少个边界框在416 x 416的分辨率下YOLO v1预测了7 x 7 49个框。YOLO v2预测了13 x 13 x 5 845个框。而YOLO v3在3个不同的尺度上进行了预测13 x 13 x 3 26 x 26 x 3 52 x 52 x 3 10,647个框。非极大值抑制NMS是一种后处理技术用于过滤掉多余和重叠的边界框预测。在NMS算法中首先删除置信度低于某个阈值的框。然后具有与“当前”预测具有一定IoU交并比阈值例如0.5以上的较低置信度分数的所有其他预测被标记为多余并被抑制。 DETRDEtection TRansformer是一种相对新的目标检测算法由Facebook人工智能研究FAIR的研究人员于2020年提出。它基于变换器架构这是一种用于各种自然语言处理任务的强大的序列到序列模型。传统的目标检测器例如R-CNN和YOLO复杂并经历了多次变化依赖于手工设计的组件例如NMS。与此不同DETR是一个直接的集合预测模型它使用变换器编码器-解码器架构一次性预测所有物体。这种方法比传统的目标检测器更简单、更高效并在COCO数据集上实现了可比较的性能。 DETR架构简单由三个主要组件组成用于特征提取的CNN骨干例如ResNet变换器编码器-解码器和用于最终检测预测的前馈网络FFN。骨干处理输入图像并生成激活映射。变换器编码器减少通道维度并应用多头自注意力和前馈网络。变换器解码器使用N个物体嵌入的并行解码并独立地预测边界框坐标和类别标签。DETR使用成对关系一次性推断所有物体从整个图像上下文中受益。 下面的代码摘自DETR的官方GitHub存储库定义了这个DETR模型的前向传递它通过各种层处理输入数据包括卷积骨干和变换器网络。我在代码中包含了网络每个层的输出形状以使您了解所有数据的变换过程。 class DETRdemo(nn.Module):def __init__(self, num_classes, hidden_dim256, nheads8,num_encoder_layers6, num_decoder_layers6):super().__init__()# 2. create ResNet-50 backboneself.backbone resnet50()del self.backbone.fc# create conversion layerself.conv nn.Conv2d(2048, hidden_dim, 1)# 3. create a default PyTorch transformerself.transformer nn.Transformer(hidden_dim, nheads, num_encoder_layers, num_decoder_layers)# 4. prediction heads, one extra class for predicting non-empty slots# note that in baseline DETR linear_bbox layer is 3-layer MLPself.linear_class nn.Linear(hidden_dim, num_classes 1)self.linear_bbox nn.Linear(hidden_dim, 4)# 5. output positional encodings (object queries)self.query_pos nn.Parameter(torch.rand(100, hidden_dim))# spatial positional encodings# note that in baseline DETR we use sine positional encodingsself.row_embed nn.Parameter(torch.rand(50, hidden_dim // 2))self.col_embed nn.Parameter(torch.rand(50, hidden_dim // 2))def forward(self, inputs): # propagate inputs through ResNet-50 up to avg-pool layer# input: torch.Size([1, 3, 800, 1066])x self.backbone.conv1(inputs) # torch.Size([1, 64, 400, 533])x self.backbone.bn1(x) # torch.Size([1, 64, 400, 533])x self.backbone.relu(x) # torch.Size([1, 64, 400, 533]) x self.backbone.maxpool(x) # torch.Size([1, 64, 200, 267])x self.backbone.layer1(x) # torch.Size([1, 256, 200, 267])x self.backbone.layer2(x) # torch.Size([1, 512, 100, 134])x self.backbone.layer3(x) # torch.Size([1, 1024, 50, 67])x self.backbone.layer4(x) # torch.Size([1, 2048, 25, 34])# convert from 2048 to 256 feature planes for the transformerh self.conv(x) # torch.Size([1, 256, 25, 34])# construct positional encodingsH, W h.shape[-2:]pos torch.cat([self.col_embed[:W].unsqueeze(0).repeat(H, 1, 1),self.row_embed[:H].unsqueeze(1).repeat(1, W, 1),], dim-1).flatten(0, 1).unsqueeze(1) # torch.Size([850, 1, 256])src pos 0.1 * h.flatten(2).permute(2, 0, 1) # torch.Size([850, 1, 256])target self.query_pos.unsqueeze(1) # torch.Size([100, 1, 256])# propagate through the transformerh self.transformer(pos 0.1 * h.flatten(2).permute(2, 0, 1),self.query_pos.unsqueeze(1)).transpose(0, 1) # torch.Size([1, 100, 256])linear_cls self.linear_class(h) # torch.Size([1, 100, 92])liner_bbx self.linear_bbox(h).sigmoid() # torch.Size([1, 100, 4])# finally project transformer outputs to class labels and bounding boxesreturn {pred_logits: linear_cls, pred_boxes: linear_bbx} 以下是代码的逐步解释 初始化__init__方法定义了DETR模块的结构。它以几个超参数作为输入包括类别数量num_classes隐藏维度hidden_dim注意力头数nheads以及编码器和解码器的层数num_encoder_layers和num_decoder_layers等。 BackBone和卷积层代码创建了一个ResNet-50self.backbone并删除了其全连接fc层因为它不会用于检测。卷积层self.conv被添加用于将 BackBone 的输出从2048通道转换为hidden_dim通道。Transformer使用nn.Transformer类创建了一个PyTorch变换器self.transformer。这个变换器将同时处理模型的编码器和解码器部分。编码器和解码器层数以及其他参数根据提供的超参数进行设置。预测头模型为预测定义了两个线性层self.linear_class 用于预测类别对数概率。额外添加了一个类别以预测非空槽因此类别数为num_classes 1。self.linear_bbox 用于预测边界框的坐标。对其应用了sigmoid()函数以确保边界框坐标在[0, 1]范围内。 位置编码位置编码对于基于变换器的模型至关重要。模型定义了查询位置编码self.query_pos和空间位置编码self.row_embed和self.col_embed。 这些编码有助于模型理解不同元素之间的空间关系。模型生成100个有效的预测。我们仅保留输出中概率高于特定限制的部分预测并且舍弃所有其他预测。 示例 在这一部分我展示了我的GitHub存储库中的一个示例项目我在该项目中使用了DETR和YOLO模型来处理实时视频流。该项目的目标是研究DETR在实时视频流上的性能与行业中大多数实时应用的首选模型YOLO进行比较。 import torch from ultralytics import YOLO import cv2 from dataclasses import dataclass import time from utils.functions import plot_results, rescale_bboxes, transform from utils.datasets import LoadWebcam, LoadVideo import logginglogging.basicConfig(levellogging.DEBUG, format%(asctime)s - %(levelname)s - %(message)s )dataclass class Config:source: str assets/walking_resized.mp4view_img: bool Falsemodel_type: str detr_resnet50device torch.device(cuda) if torch.cuda.is_available() else torch.device(cpu)skip: int 1yolo: bool Trueyolo_type yolov8n.ptclass Detector:def __init__(self):self.config Config()self.device self.config.deviceif self.config.source 0:logging.info(Using stream from the webcam)self.dataset LoadWebcam()else:logging.info(Using stream from the video file: self.config.source)self.dataset LoadVideo(self.config.source)self.start time.time()self.count 0def load_model(self):if self.config.yolo:if self.config.yolo_type is None or self.config.yolo_type :raise ValueError(YOLO model type is not specified)model YOLO(self.config.yolo_type)logging.info(fYOLOv8 Inference using {self.config.yolo_type})else:if self.config.model_type is None or self.config.model_type :raise ValueError(DETR model type is not specified)model torch.hub.load(facebookresearch/detr, self.config.model_type, pretrainedTrue).to(self.device)model.eval()logging.info(fDETR Inference using {self.config.model_type})return modeldef detect(self):model self.load_model()for img in self.dataset:self.count 1if self.count % self.config.skip ! 0:continueif not self.config.yolo:im transform(img).unsqueeze(0).to(self.device)outputs model(im)# keep only predictions with 0.7 confidenceprobas outputs[pred_logits].softmax(-1)[0, :, :-1]keep probas.max(-1).values 0.9bboxes_scaled rescale_bboxes(outputs[pred_boxes][0, keep].to(cpu), img.shape[:2])else:outputs model(img)logging.info(fFPS: {self.count / self.config.skip / (time.time() - self.start)})# print(fFPS: {self.count / self.skip / (time.time() - self.start)})if self.config.view_img:if self.config.yolo:annotated_frame outputs[0].plot()cv2.imshow(YOLOv8 Inference, annotated_frame)if cv2.waitKey(1) 0xFF ord(q):breakelse:plot_results(img, probas[keep], bboxes_scaled)logging.info(************************* Done *****************************)if __name__ __main__:detector Detector()detector.detect() 下面的server.py脚本使用了Ultralytics的YOLO v8模型和torch hub中预训练的DETR模型。server.py脚本负责从诸如网络摄像头、IP摄像头或本地视频文件等源获取数据。可以在server.py配置数据类中修改此源。性能评估结果显示使用yolov8m.pt模型时它在Tesla T4 GPU上实现了每秒55帧FPS的卓越处理速度。另一方面使用detr_resnet50模型在Tesla T4 GPU上实现了每秒15帧FPS的处理速度。 结论 总之YOLO是需要实时检测和速度的应用的绝佳选择适用于视频分析和实时对象跟踪等应用。另一方面DETR在需要提高准确性并处理物体之间复杂交互的任务中表现出色这在医学影像、细粒度目标检测和检测质量高于实时处理速度的场景中可能特别重要。然而值得注意的是DETR的新版本——即实时DETR或RT-DETR——于2023年发布声称在速度和准确性方面均优于所有相似规模的YOLO检测器。尽管这个创新没有在本博客中涵盖但强调了这个领域的动态性以及根据特定应用需求进一步优化YOLO和DETR之间的选择的潜力。 ·  END  · HAPPY LIFE 本文仅供学习交流使用如有侵权请联系作者删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85106.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

石家庄建设厅网站首页支付宝小程序开发费用

有点难😅 考虑加入每一列,发现我们只关心当前还未确定的行的数目 有点难算😅 设 d p i , j dp_{i,j} dpi,j​表示有 i i i列,其中 j j j行未确定的方案数。钦定每一列至少有一个黑色格子。 d p i , j j ( j 1 ) 2 d p i − 1…

微信微网站 留言板wordpress:代码

Go语言中的序列化技术大盘点:解析内建格式与主流第三方库 前言: 随着现代软件开发中的数据交互需求不断增加,有效地进行数据编码与序列化已成为一项关键任务。各种不同的数据格式与序列化库不仅影响着程序性能,也直接影响到系统的互操作性和…

织梦仿非织梦网站软件开发流程管理系统

和 equals 在 Java 中有着不同的作用和使用场景: 是一个操作符,用于比较两个对象的引用是否相同。如果两个对象引用同一个内存地址,则 返回 true;否则返回 false。在比较基本数据类型时, 比较的是它们的值是否相等。…

图片墙网站代码wordpress视频类模板

AR营销是新的最好的东西,就像元宇宙和VR营销一样。利用AR技术开展营销活动可以带来广泛的利润优势。更不用说,客户也喜欢AR营销! 如果企业使用AR,71%的买家会更多地购物。40%的购物者准备在他们可以在AR定制的产品上花更多的钱。…

怎么重新网站做301物联网就业方向

1.img特征 2.vertical-align垂直对齐方式 与text-align对比 3.cursor指针样式 default auto pointer move text wait help 4.opacity透明度 与rgba对比 span不支持text-align属性 IE8及以下不兼容:filter:alpha(opacity0~100);

家具在线设计平台网络营销seo教程

Linux操作系统支持的函数库分为: 静态库,libxxx.a,在编译时就将库编译进可执行程序中。 优点:程序的运行环境中不需要外部的函数库。 缺点:可执行程序大 动态库,又称共享库,libxxx.so&#…

什么是建设网站工具潍坊最近最新消息

Vue Router是一个官方的路由管理器,它可以让我们在Vue应用中实现单页面应用(SPA)的效果,即通过改变URL而不刷新页面来显示不同的内容。Vue Router可以让我们定义多个路由,每个路由对应一个组件,当URL匹配到…

如何开自己的网站贵州小程序制作开发

电脑关机后自动重启的问题,一直困扰一些朋友,通常就是关闭系统后,电脑又自己开机启动了,我们不得不拔掉电源或强制关机,要解决电脑无法关机变重启的问题就要找到原因然后解决,下面,小编讲处理电…

建设网站所需技术wordpress+镜像下载

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27336 一、capability概述 capability是webdriver支持的标准命令之外的扩展命令(配置信息)配置web驱动属性,如浏览器名…

简单网站首页官方网站案例

-Dserver.port xxxx 转载于:https://www.cnblogs.com/tonyzt/p/10987116.html

网站制作需要多少钱新闻河北邢台特色美食

电压放大器是一种常见的电子器件,其主要功能是放大输入信号的电压幅度。它可以用于多种电路中,下面西安安泰将详细介绍几个典型的应用场景。 首先,电压放大器可以用于音频放大器电路。音频放大器广泛应用于音响设备、电视机、电脑音箱等&…

网站建设机构做个网站怎么赚钱

去年年底,OpenAI推出ChatGPT,掀起AI热潮,教育作为“AI”应用落地的关键场景,再次受到广泛关注。 “AI教育”的快速发展,是受到技术、需求和政策三重因素共同驱动的结果。 在技术方面,随着人工智能技术的不断…

贵阳企业自助建站河南网站seo营销多少费用

简介 本系列是flink源码分析的第二个系列,上一个《flink源码分析之集群与资源》分析集群与资源,本系列分析功能组件,kubeclient,rpc,心跳,高可用,slotpool,rest,metrics&…

网站优化的意义php免费源码

jsf集成spring使用大型数据集时,通常需要以分页格式显示数据。 分页是一个有趣的问题,因为它倾向于跨越应用程序的所有层,从视图层通过应用程序服务一直到对数据库的原始调用。 在获取分页数据时,有一些非常好的解决方案。 如果您…

手表网站的结构wordpress如何改页面模板

先建一个窗体,添加reportview,然后添加RDLC文件,然后添加数据集 1、添加一个数据集 点确定后界面如下 在空白处右键 修改名称 添加行 重命名行 表效果 2、添加报表 确定后出现下面界面 然后添加资料数据源 点击新增,选择资料集,出…

聊城宏远网站建设优化网站建设中 单页

目录 Android Studio中内存分析工具Memory profiler的使用1. 打开Memory Profiler2. 工具使用3. 内存选项说明4. 内存性能分析器概览5. 内存计算方式6. 查看内存分配7. 捕获java/kotlin方式查看内存分配8. 堆转储文件导入和导出 内存性能分析器中的泄漏检测 Android Studio中内…

建设专业网站wordpress 点击文章图片

应用上云之后,如何进行数据可靠性以及业务连续性的保障是非常关键的,通过华为云云上两地三中心方案了解相关方案认证地址:https://connect.huaweicloud.com/courses/learn/course-v1:HuaweiXCBUCNXI057Self-paced/about当前内容为灾备常见理论…

家乡的网站设计模板厦门正规网站建设企业

一、概念 正则化在深度学习领域是为了防止训练结果过拟合而采取的一种方法。 1.1 过拟合 过拟合表示模型的泛化能力较差,体现在实际训练模型上就是在训练集表现很好,但是在测试集的效果一般。 过拟合的原因:1,模型过于复杂。2&…

中国风html5网站模板免费下载wordpress文章设置受密码保护

使用Ubuntu 22.04时强制关机了一下(make -j16把电脑搞崩了),开机后系统显示的颜色异常,类似高对比度或反色,如下图。看着很难受,字体也没办法辨认。还好之前遇到过类似的问题,应该是一个配置文件…

制作好的网站必须申请后台登录wordpress

字符串哈希 KMP 基本 字符串哈希 理论 将一个字符串转成一个数字,可以快速比较两个字符串是否相同等。要求为:相同字符串哈希值相同,不同字符串哈希值尽量不相同。 映射方法通常采用多项式哈希方法,很像进制转换。假设字符串为…