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安装。

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

相关文章
|
28天前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI在软件测试中的转型力量###
本文深入探讨了人工智能(AI)技术在软件测试领域的应用现状与未来趋势,通过分析AI如何优化测试流程、提高测试效率与质量,揭示了AI赋能下软件测试行业的转型路径。传统测试方法面临效率低、成本高、覆盖率有限等挑战,而AI技术的引入正逐步改变这一格局,为软件测试带来革命性的变化。 ###
|
25天前
|
人工智能 开发者
|
11天前
|
机器学习/深度学习 数据采集 人工智能
揭秘AI:机器学习的魔法与代码
【10月更文挑战第33天】本文将带你走进AI的世界,了解机器学习的原理和应用。我们将通过Python代码示例,展示如何实现一个简单的线性回归模型。无论你是AI新手还是有经验的开发者,这篇文章都会给你带来新的启示。让我们一起探索AI的奥秘吧!
|
18天前
|
人工智能 测试技术 Windows
Windows 竞技场:面向下一代AI Agent的测试集
【10月更文挑战第25天】随着人工智能的发展,大型语言模型(LLMs)在多模态任务中展现出巨大潜力。为解决传统基准测试的局限性,研究人员提出了Windows Agent Arena,一个在真实Windows操作系统中评估AI代理性能的通用环境。该环境包含150多个多样化任务,支持快速并行化评估。研究团队还推出了多模态代理Navi,在Windows领域测试中成功率达到19.5%。尽管存在局限性,Windows Agent Arena仍为AI代理的评估和研究提供了新机遇。
37 3
|
28天前
|
人工智能
|
23天前
|
人工智能 机器人 API
【通义】AI视界|谷歌Q3财报:Gemini API六个月增长14倍,公司超25%的新代码由AI生成
本文内容由通义自动生成,涵盖谷歌Q3财报、马斯克xAI融资、九巨头联盟挑战英伟达、Meta加大AI投入及麻省理工研究LLM与人脑相似性等热点资讯。更多精彩内容,请访问通通知道。
|
22天前
|
机器学习/深度学习 数据采集 人工智能
探索AI驱动的自动化测试新纪元###
本文旨在探讨人工智能如何革新软件测试领域,通过AI技术提升测试效率、精准度和覆盖范围。在智能算法的支持下,自动化测试不再局限于简单的脚本回放,而是能够模拟复杂场景、预测潜在缺陷,并实现自我学习与优化。我们正步入一个测试更加主动、灵活且高效的新时代,本文将深入剖析这一变革的核心驱动力及其对未来软件开发的影响。 ###
|
28天前
|
机器学习/深度学习 人工智能 安全
AI真的能与人类数据科学家竞争吗?OpenAI的新基准对其进行了测试
AI真的能与人类数据科学家竞争吗?OpenAI的新基准对其进行了测试
|
26天前
|
Serverless 数据安全/隐私保护 前端开发
大模型代码能力体验报告之贪吃蛇小游戏《一》:Claude.ai篇 - 生成、预览和快速部署的serverless一条龙
本文介绍了通过Claude.ai生成并优化Web版贪吃蛇游戏的过程,展示了其强大的代码生成功能及用户友好的界面设计。从初始版本的快速生成到根据用户反馈调整游戏速度,再到提供多种实用工具如文件管理、版本控制和一键部署,Claude.ai不仅是一个代码助手,更像是一个全面的serverless开发平台。文中还呼吁国内厂商关注此类技术的发展。
|
29天前
|
存储 人工智能 Java
将 Spring AI 与 LLM 结合使用以生成 Java 测试
AIDocumentLibraryChat 项目通过 GitHub URL 为指定的 Java 类生成测试代码,支持 granite-code 和 deepseek-coder-v2 模型。项目包括控制器、服务和配置,能处理源代码解析、依赖加载及测试代码生成,旨在评估 LLM 对开发测试的支持能力。
36 1