AI计算机视觉笔记十五:编写检测的yolov5测试代码

简介: 该文为原创文章,如需转载,请注明出处。本文作者在成功运行 `detect.py` 后,因代码难以理解而编写了一个简易测试程序,用于加载YOLOv5模型并检测图像中的对象,特别是“人”类目标。代码实现了从摄像头或图片读取帧、进行颜色转换,并利用YOLOv5进行推理,最后将检测框和置信度绘制在输出图像上,并保存为 `result.jpg`。如果缺少某些模块,可使用 `pip install` 安装。如涉及版权问题或需获取完整代码,请联系作者。

若该文为原创文章,转载请注明原文出处。

通过detect.py代码测试通过后,阅读detect.py代码发现,有些难以看懂,看得有点蒙蒙的,

所以编写了一个简单的测试程序。

代码如下:


import cv2
import numpy as np
import torch
import time
import pandas as pd

class My_detector:

    def __init__(self):
        # 加载model
        self.model = torch.hub.load('E:/desktop/yolov5-5.0/', 'custom',
                                    'E:/desktop/yolov5-5.0/weights/yolov5s.pt', source='local') 

        self.model.conf = 0.4

        # 打开摄像头或打开图片
        self.cap = cv2.VideoCapture('./data/images/zidane.jpg')
        #self.cap = cv2.VideoCapture(0)

    def detect(self):
        while True:
            # 读取图片
            ret, frame = self.cap.read()

            if frame is None:
                break

            # 翻转
            frame = cv2.flip(frame, 1)
            # 颜色转换
            frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
            # 推理
            results = self.model(frame_rgb)


            results_list = results.pandas().xyxy[0]
            print('pd:')
            print(results_list)

            # 只要name为person的数据
            person_list = results_list[results_list['name']=='person'].to_numpy()
            print(person_list)

            for box in person_list:
                l, t, r, b = box[:4].astype('int')
                conf = box[4]
                conf_txt =str(round(conf*100,1) ) + '%'
                name = box[6]

                cv2.rectangle(frame, (l, t), (r, b), (0, 255, 0), 5)
                cv2.putText(frame, conf_txt, (l,t-35), cv2.FONT_ITALIC,1,(0,255,0),2)           
                cv2.putText(frame, name, (l,t-70), cv2.FONT_ITALIC,1,(0,255,0),2)   


            #cv2.imshow('DEMO', frame)
            cv2.imwrite('./result.jpg', frame)

            if cv2.waitKey(10) & 0xFF == ord('q'):
                break

        self.cap.release()
        cv2.destroyAllWindows()


detector = My_detector()
detector.detect()

运行后,会把结果保存成results.jpg图片

image.png

打印的信息参数有:

xmin ymin xmax ymax: 对应了坐标

class: 类别

name: 名字

执行时,如果提示一些module没有安装,直接使用pip install安装。

如有侵权,或需要完整代码,请及时联系博主。

相关文章
|
2月前
|
机器学习/深度学习 PyTorch 算法框架/工具
聊一聊计算机视觉中常用的注意力机制以及Pytorch代码实现
本文介绍了几种常用的计算机视觉注意力机制及其PyTorch实现,包括SENet、CBAM、BAM、ECA-Net、SA-Net、Polarized Self-Attention、Spatial Group-wise Enhance和Coordinate Attention等,每种方法都附有详细的网络结构说明和实验结果分析。通过这些注意力机制的应用,可以有效提升模型在目标检测任务上的性能。此外,作者还提供了实验数据集的基本情况及baseline模型的选择与实验结果,方便读者理解和复现。
73 0
聊一聊计算机视觉中常用的注意力机制以及Pytorch代码实现
|
2月前
|
机器学习/深度学习 人工智能 JSON
微信小程序原生AI运动(动作)检测识别解决方案
近年来,疫情限制了人们的出行,却推动了“AI运动”概念的兴起。AI运动已在运动锻炼、体育教学、线上主题活动等多个场景中广泛应用,受到互联网用户的欢迎。通过AI技术,用户可以在家中进行有效锻炼,学校也能远程监督学生的体育活动,同时,云上健身活动形式多样,适合单位组织。该方案成本低、易于集成和扩展,已成功应用于微信小程序。
|
2月前
|
机器学习/深度学习 人工智能 算法框架/工具
基于人体姿势估计的舞蹈检测(AI Dance based on Human Pose Estimation)
基于人体姿势估计的舞蹈检测(AI Dance based on Human Pose Estimation)
82 0
|
2月前
|
计算机视觉 Python
计算机视觉---数字图像代码示例
计算机视觉---数字图像代码示例
53 0
|
3月前
|
机器学习/深度学习 人工智能 PyTorch
AI计算机视觉笔记三十二:LPRNet车牌识别
LPRNet是一种基于Pytorch的高性能、轻量级车牌识别框架,适用于中国及其他国家的车牌识别。该网络无需对字符进行预分割,采用端到端的轻量化设计,结合了squeezenet和inception的思想。其创新点在于去除了RNN,仅使用CNN与CTC Loss,并通过特定的卷积模块提取上下文信息。环境配置包括使用CPU开发板和Autodl训练环境。训练和测试过程需搭建虚拟环境并安装相关依赖,执行训练和测试脚本时可能遇到若干错误,需相应调整代码以确保正确运行。使用官方模型可获得较高的识别准确率,自行训练时建议增加训练轮数以提升效果。
|
3月前
|
人工智能 开发工具 计算机视觉
AI计算机视觉笔记三十:yolov8_obb旋转框训练
本文介绍了如何使用AUTODL环境搭建YOLOv8-obb的训练流程。首先创建虚拟环境并激活,然后通过指定清华源安装ultralytics库。接着下载YOLOv8源码,并使用指定命令开始训练,过程中可能会下载yolov8n.pt文件。训练完成后,可使用相应命令进行预测测试。
|
3月前
|
人工智能 并行计算 测试技术
AI计算机视觉笔记三十一:基于UNetMultiLane的多车道线等识别
该项目基于开源数据集 VIL100 实现了 UNetMultiLane,用于多车道线及车道线类型的识别。数据集中标注了六个车道的车道线及其类型。项目详细记录了从环境搭建到模型训练与测试的全过程,并提供了在 CPU 上进行训练和 ONNX 转换的代码示例。训练过程约需 4 小时完成 50 个 epoch。此外,还实现了视频检测功能,可在视频中实时识别车道线及其类型。
|
机器学习/深度学习 人工智能 算法
【在线】云端101种玩法:计算机视觉、信令大数据防诈骗和AI审核案例
春节前在线直播,4位技术实力强悍的专家将分享,“千人千算” 人工智能监控应用、基于信令大数据让电信网络更安全、计算机视觉如何认识和理解图片、如何用AI审核技术解放运营人力。
3323 0
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术深度解析:从基础到应用的全面介绍
人工智能(AI)技术的迅猛发展,正在深刻改变着我们的生活和工作方式。从自然语言处理(NLP)到机器学习,从神经网络到大型语言模型(LLM),AI技术的每一次进步都带来了前所未有的机遇和挑战。本文将从背景、历史、业务场景、Python代码示例、流程图以及如何上手等多个方面,对AI技术中的关键组件进行深度解析,为读者呈现一个全面而深入的AI技术世界。
61 10
|
1天前
|
机器学习/深度学习 人工智能 物联网
AI赋能大学计划·大模型技术与应用实战学生训练营——湖南大学站圆满结营
12月14日,由中国软件行业校园招聘与实习公共服务平台携手魔搭社区共同举办的AI赋能大学计划·大模型技术与产业趋势高校行AIGC项目实战营·湖南大学站圆满结营。
AI赋能大学计划·大模型技术与应用实战学生训练营——湖南大学站圆满结营