首页 > 其他分享 >目标检测小例子

目标检测小例子

时间:2024-07-07 23:56:40浏览次数:18  
标签:YOLOv5 img 检测 torch 目标 例子 图像 model label

YOLO(You Only Look Once)是一种流行的目标检测算法,它以其快速和高效而闻名。YOLOv5是YOLO系列的第五个版本,它在性能和速度上都有所改进。以下是使用YOLOv5进行目标检测的一个基本示例代码,假设你已经安装了Python和必要的库,比如PyTorch和OpenCV。

首先,你需要安装YOLOv5的库。你可以使用pip来安装:

pip install yolov5

然后,你可以使用以下Python代码来加载预训练的YOLOv5模型并对图像进行目标检测:

import torch
from PIL import Image
import requests
from io import BytesIO
from models.experimental import attempt_load

# 加载模型
weights = 'yolov5s.pt'  # 你可以选择不同的模型,如yolov5m, yolov5l, yolov5x
model = attempt_load(weights, map_location=torch.device('cpu'))
stride = int(model.stride.max())  # 模型的stride
imgsz = check_img_size(640, s=stride)  # 检查图像大小
names = model.module.names if hasattr(model, 'module') else model.names  # 获取类别名称

# 读取图像
url = 'https://example.com/image.jpg'  # 图像的URL
response = requests.get(url)
img = Image.open(BytesIO(response.content))

# 预处理图像
img = img.resize((imgsz, imgsz))  # 调整图像大小
img = np.array(img)  # 转换为numpy数组
img = img.transpose(2, , 1)  # 转换为CHW格式
img = img.reshape(1, img.shape[], img.shape[1], img.shape[2])  # 增加批次维度
img = torch.from_numpy(img).float()  # 转换为PyTorch张量

# 进行目标检测
if torch.cuda.is_available():
    model.cuda()
    img = img.cuda()
with torch.no_grad():
    pred = model(img)

# 处理预测结果
pred = pred.cpu().numpy()[]  # 转换为CPU并去除批次维度
for *xyxy, conf, cls in reversed(pred):  # 遍历预测结果
    label = f"{names[int(cls)]} {conf:.2f}"  # 创建标签
    print(label)  # 打印标签

# 可选:使用OpenCV显示带有边界框的图像
if __name__ == '__main__':
    img = cv2.imread('path_to_your_image.jpg')  # 读取图像
    for *xyxy, conf, cls in reversed(pred):  # 遍历预测结果
        label = f"{names[int(cls)]} {conf:.2f}"
        print(label)
        plot_one_box(xyxy, img, label=label, color=(255, , ), line_thickness=3)
    cv2.imshow('Image', img)
    cv2.waitKey()
    cv2.destroyAllWindows()

请注意,这段代码只是一个示例,你需要根据你的具体需求进行调整。例如,你可能需要下载YOLOv5的权重文件,或者处理不同的图像输入。此外,plot_one_box函数是一个用于在图像上绘制边界框的函数,你需要自己实现它或者使用现有的库。

标签:YOLOv5,img,检测,torch,目标,例子,图像,model,label
From: https://blog.csdn.net/zhangyy57/article/details/140146644

相关文章

  • 强化学习与控制模型结合例子
    强化学习与模型控制结合强化学习(ReinforcementLearning,RL)与控制模型结合,可以通过整合传统控制理论和现代RL算法,利用控制模型提供的动态信息和稳定性保障,同时利用RL的学习能力优化控制策略。这种结合的方式被称为模型辅助强化学习(Model-AssistedReinforcementLearning)......
  • OpenCV GPU解码简单例子
    基于GPU/cuda的运算能够极大解放CPU的负担,特别是针对复杂图像处理的场景中。该例子主要展示利用GPU的硬解码模块,对本地和网络视频流进行解码和本地显示。环境如下,ubuntu20.04+opencv4.10.0+cuda12.5.代码逻辑比较简单,不涉及复杂逻辑和算法,直接看代码。GPU解码本地视频并进行显......
  • 目标检测1--Pytorch目标检测之yolov1
    文章目录前言核心思想网络结构算法原理算法流程关于标定框框的中心点(x,y)的解释框的宽高(w,h)的解释置信度c的解释:class类别概率详解损失函数坐标损失置信度损失分类损失优缺点前言论文地址:yolov1YOLOv1(YouOnlyLookOnceversion1)是由JosephRedmon等人......
  • 调试 hipcc 的llvm llc gpu目标代码生成模块
    源码:hello_vectorAdd.hip:__global__voidvectorAdd(constfloat*A,constfloat*B,float*C){inti=blockDim.x*blockIdx.x+threadIdx.x;C[i]=A[i]+B[i]+0.0f;}Makefile:x.O1.s:hello_vectorAdd.hip ../../local_amdgpu/bin/clang++./he......
  • Day 38 | 1049. 最后一块石头的重量 II 、494. 目标和 、474.一和零
    1049.最后一块石头的重量II本题就和昨天的416.分割等和子集很像了,可以尝试先自己思考做一做。视频讲解:https://www.bilibili.com/video/BV14M411C7oVhttps://programmercarl.com/1049.最后一块石头的重量II.html有一堆石头,每块石头的重量都是正整数。每一回合,从中选出......
  • 昇思25天学习打卡营第14天|SSD目标检测
    今天学习的是SSD目标检测内容,首先介绍什么是SSD?SSD,全称SingleShotMultiBoxDetector,是WeiLiu在ECCV2016上提出的一种目标检测算法。使用NvidiaTitanX在VOC2007测试集上,SSD对于输入尺寸300x300的网络,达到74.3%mAP(meanAveragePrecision)以及59FPS;对于512x512的网......
  • 目标检测算法简介
    关注我,持续分享逻辑思维&管理思维&面试题;可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;推荐专栏《10天学会使用asp.net编程AI大模型》,目前已完成所有内容。一顿烧烤不到的费用,让人能紧跟时代的浪潮。从普通网站,到公众号、小程序,再到AI大模型网站。干货满满。学成后可......
  • 电脑开机检测不到硬盘怎么办 电脑检测不到硬盘问题解决
    电脑开机检测不到硬盘,无法进入系统或者显示“RebootandSelectproperBootdevice”等错误信息。这种情况可能会导致我们的数据丢失或者无法使用电脑。一、电脑检测不到硬盘的可能原因电脑检测不到硬盘的原因主要有以下几种:1、硬盘连接线松动或损坏:硬盘是通过SATA线或M.2插......
  • 多目标规划模型与综合评价
    多目标规划模型在许多实际问题当中,衡量一个方案的好坏标准可能不只一个。比如生产某个东西的时候想要“物美价廉”——既要质量好,又要成本低。这一类问题统称为多目标最优化问题或者多目标规划问题。多目标规划问题一般可以写成如下形式:\[\begin{aligned}\min&f_1(x)\\\mi......
  • 多目标规划模型与综合评价
    多目标规划模型在许多实际问题当中,衡量一个方案的好坏标准可能不只一个。比如生产某个东西的时候想要“物美价廉”——既要质量好,又要成本低。这一类问题统称为多目标最优化问题或者多目标规划问题。多目标规划问题一般可以写成如下形式:\[\begin{aligned}\min&f_1(x)\\\mi......