YOLOv3 快速上手:Windows 10上的训练环境搭建

文章目录

  • 前言
  • 一、前期准备
  • 二、基础环境准备
    • 1. 创建虚拟环境
    • 2. 打开Terminal
    • 3. 下载YOLOv3运行环境
  • 三、PyCharm关联
    • 3.1 运行PyCharm
    • 3.2 关联Anaconda虚拟环境
  • 四、运行环境检查
    • 1. 检查`requirements.txt`文件
    • 2. 安装依赖
  • 五、运行代码
    • 5.1 运行检测代码
    • 5.2 运行训练代码
  • 六、常见问题
    • 6.1 ImportError: cannot import name 'notf' from 'tensorboard.compat'
    • 6.2 OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
  • 总结


前言

在当今快速发展的人工智能领域,对象检测技术扮演着重要的角色。YOLOv3,作为一种先进的实时对象检测系统,因其高效性和准确性而备受瞩目。本教程旨在提供一个入门指南,帮助初学者和开发者在Windows 10平台上快速上手YOLOv3。

我们将基于ultralytics/yolov3——一个在GitHub上广受欢迎的YOLOv3实现——来展示如何在Windows 10上搭建完整的训练环境。从创建Python虚拟环境到配置PyCharm,从运行检测代码到解决常见问题,我们将一步步引导完成整个过程,确保即使是没有深度学习背景的入门者也能顺利进行。


一、前期准备

在开始YOLOv3项目之前,确保我们的系统环境和工具准备齐全。以下是启动这个项目所需的基础设施和资源。

  • Windows 10: 确保我们的计算机运行的是Windows 10操作系统。Windows 10提供了稳定的支持和兼容性,适合开发和测试深度学习应用。
  • Anaconda: 使用Anaconda来管理我们的Python环境和依赖。Anaconda是一种流行的Python数据科学平台,它可以让我们方便地创建和管理多个Python环境。这对于在不同项目中使用不同版本的Python和库非常有用。
  • PyCharm: 选择PyCharm作为集成开发环境(IDE)。PyCharm是一个广受欢迎的Python IDE,提供了许多有用的功能,如代码自动完成、项目管理工具和强大的调试选项。它可以大大提高我们的开发效率。
  • 源代码下载: 访问ultralytics yolov3的GitHub页面:https://github.com/ultralytics/yolov3以下载最新的源代码。GitHub页面提供了详尽的文档、安装指南和使用说明,帮助我们更好地了解和使用YOLOv3。
  • 版本检查: 确认我们下载的是最新版本的YOLOv3。可以在项目的GitHub页面查看最新版本信息,目前我们用到的是v9.6.0
    YOLOv3当前版本
  • 预训练模型: 我们在Releases中可以找到yolov3.pt等预训练模型,下载到与源代码相同的目录,以备后用。
    预训练模型

确保在开始之前检查这些要求,可以帮助我们避免在后续的安装和配置过程中遇到不必要的问题。

二、基础环境准备

为了顺利地开始我们的YOLOv3项目,需要首先准备好基础的开发环境。以下是详细的步骤说明:

1. 创建虚拟环境

  • 虚拟环境名称:在Anaconda中创建一个名为ultralytics的虚拟环境。这将有助于隔离我们的项目依赖,确保环境的一致性。
  • Python版本:选择Python的默认版本3.8.18。这个版本是目前流行的稳定版本,ultralytics需求的库和框架都与之兼容。ultralytics环境

2. 打开Terminal

  • 访问Terminal:在Anaconda准备好Python环境后,点击界面上的绿色箭头图标来打开Terminal终端。这将是我们执行后续安装命令的地方。
    打开Terminal

3. 下载YOLOv3运行环境

  • 安装命令:在Terminal中输入命令pip install ultralytics来安装YOLOv3的运行环境。这个命令将会安装所有必要的依赖和库。

  • 使用国内镜像:为了加速下载和安装过程,我们可以使用国内的镜像源。例如,清华大学开源软件镜像站可以提供更快的下载速度。下面是添加镜像的步骤:

    镜像地址:清华大学开源软件镜像站:https://mirror.tuna.tsinghua.edu.cn/help/anaconda/

    添加的镜像源也可以包括:

    • https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
    • https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 添加镜像
  • 等待安装:命令执行后,耐心等待所有的依赖和库安装完成。等待安装完成
    运行完成

通过完成这些步骤,我们将建立起一个适合YOLOv3项目的稳定和高效的开发环境。这不仅有助于我们更顺利地进行项目的开发和测试,还可以避免因环境问题带来的潜在麻烦。

三、PyCharm关联

在准备好Python和YOLOv3的环境之后,下一步是将这些配置与PyCharm IDE关联起来。这样可以确保在开发过程中的便利性和高效性。

3.1 运行PyCharm

  • 打开PyCharm:首先,找到我们已经下载的YOLOv3代码。在代码文件夹上右击,选择用PyCharm打开。这样可以确保PyCharm正确地识别项目的结构和设置。

    运行PyCharm

3.2 关联Anaconda虚拟环境

  • 访问设置:在PyCharm打开项目后,点击菜单栏的Settings来进入IDE的设置。

    Settings

  • 添加虚拟环境:在设置界面中,选择项目的Python解释器部分,并点击Add来添加一个新的解释器。

    Add

  • 选择已存在的环境:在添加解释器的窗口中,选择“Conda Environment”然后选择“Existing environment”来指定之前在Anaconda中创建的ultralytics虚拟环境。

    Existing environment

    手动寻找环境:如果PyCharm没有自动检测到我们的Anaconda环境,可以点击...按钮来手动浏览并选择对应的Python解释器位置。
    手动选择

通过这些步骤,我们的PyCharm IDE现在将使用Anaconda中的ultralytics虚拟环境,这意味着所有在这个环境中安装的依赖和库都可以在PyCharm中无缝使用。这样的配置有助于保持开发环境整洁且一致。

四、运行环境检查

在开始编程之前,重要的一步是确保所有必需的包和依赖项已经安装并且是最新的。这将确保代码能够在预期的环境中无缝运行。

1. 检查requirements.txt文件

  • 打开文件:首先,打开项目中的requirements.txt文件。这个文件列出了项目运行所需的所有Python包。

  • 检查依赖:查看requirements.txt文件,注意是否有任何未满足的包需求。例如,我们可能会看到类似“Package requirement ‘gitpython>=3.1.30’ is not satisfied”的黄色警告提示。

    requirements.txt

2. 安装依赖

  • 打开Terminal:在PyCharm中,打开底部的Terminal标签页,点击符号,选择Command Prompt。在这里,我们可以直接运行命令来安装和管理Python包。
    Command Prompt

  • 执行安装命令:在Terminal中输入命令pip install -r requirements.txt。这个命令会自动根据requirements.txt文件中列出的包版本来安装或更新它们。
    pip install -r requirements.txt

  • 等待安装完成:安装过程可能需要几分钟时间,取决于网络速度和计算机性能。监视进度并确保没有错误发生。
    等待安装需求

  • 安装完成:当所有的包都安装完毕后,我们会看到安装完成的消息。这意味着Python环境现在已经准备好运行YOLOv3项目了。

安装完成

通过完成这些步骤,我们可以确保项目的Python环境配置正确,这对于接下来的开发和测试工作至关重要。

五、运行代码

在完成环境的准备和配置之后,接下来的步骤是运行YOLOv3的代码来进行对象检测和模型训练。
我们再次检查yolov3.pt是否已经存到了源代码的根目录。
在这里插入图片描述

5.1 运行检测代码

  • 启动检测脚本:在PyCharm中,在项目中,找到detect.py文件。
  • 修改权重文件:将权重文件修改为yolov3.pt
  • 执行脚本:运行这个脚本,它将使用YOLOv3模型对默认的图像进行对象检测。
  • 查看结果:脚本运行完毕后,查看输出。我们应该能看到对象检测的结果。

修改运行检测代码
运行检测代码

检测代码运行结果
检测结果

5.2 运行训练代码

  • 定位训练脚本:在项目中,找到train.py文件。这个文件包含了用于训练YOLOv3模型的代码。
  • 修改权重文件:我们这里以yolov3-tiny.pt为例,下载链接为:https://github.com/ultralytics/yolov3/releases/download/v9.6.0/yolov3-tiny.pt。
  • 启动训练过程:运行train.py脚本以开始训练过程。训练过程可能需要一些时间,这取决于我们的数据集大小和计算机的性能。
  • 监视训练进度:在训练过程中,监视输出的日志信息,以了解训练的进度和效果。

定位训练脚本

下载数据集
开始运行训练代码

完成这些步骤后,我们的运行环境就基本完成了。现在可以使用YOLOv3进行有效的对象检测和模型训练。这些步骤提供了实践经验,让我们更加了解如何在实际项目中使用深度学习模型。

六、常见问题

在使用YOLOv3进行项目开发时,我们可能会遇到一些常见的问题。以下是这些问题的简要概述以及如何解决它们的指南。

6.1 ImportError: cannot import name ‘notf’ from ‘tensorboard.compat’

  • 问题描述:当尝试运行YOLOv3代码时,可能会遇到一个错误,提示无法从tensorboard.compat导入notf
  • 可能原因:这个问题通常发生在TensorFlow已经安装在环境中,但与YOLOv3的某些依赖不兼容时。
  • 解决方案
    • 卸载TensorBoard:使用命令pip uninstall tensorboard来卸载TensorBoard。这通常可以解决兼容性问题。
    • 寻找兼容性方案:如果我们需要使用TensorBoard,那么需要寻找与YOLOv3兼容的TensorBoard版本。

6.2 OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.

  • 问题描述:在安装或运行YOLOv3时,可能会出现一个关于libiomp5md.dll的错误。
  • 可能原因:这个错误可能发生在没有按照正确的顺序安装YOLOv3所需的依赖时。
  • 解决方案
    • 按顺序安装依赖:为了避免这种问题,建议先执行命令pip install ultralytics来安装YOLOv3的基本运行环境,然后再使用pip install -r requirements.txt来安装其他依赖。这样可以确保依赖项的正确安装顺序,减少兼容性问题。

通过理解这些常见问题及其解决方案,我们可以更顺利地进行YOLOv3项目的开发和运行。这些解决方案能够帮助我们克服可能遇到的技术障碍,确保项目的顺利进行。


总结

通过本教程的指引,我们现在应该能够在Windows 10操作系统上顺利地搭建和运行YOLOv3的训练环境。从创建适当的Python虚拟环境、配置PyCharm,到运行检测和训练脚本,以及处理一些常见的问题,我们已经涵盖了整个设置和使用过程的各个方面。希望这些指导能够助我们顺利地开始YOLOv3项目,并在对象检测领域取得显著成果。
记住,实践是学习的关键,因此不断尝试、调整和优化是迈向成功的重要步骤。

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

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

相关文章

虹科干货 | 关于JSON数据库

来源:艾特保IT 虹科干货 | 关于JSON数据库 原文链接:https://mp.weixin.qq.com/s/NutCGWa32rOcEHrk3UDGcQ 欢迎关注虹科,为您提供最新资讯! 如何理解JSON数据库?作为NoSQL数据库的一种类型,JSON数据库有哪…

罗技鼠标使用接收器和电脑重新配对

罗技鼠标使用接收器和电脑重新配对 文章目录 罗技鼠标使用接收器和电脑重新配对1\. 前言2\. 安装软件3\. 进行配对3.1. 取消之前的配对3.2. 重新配对3.3 配对完成 4\. 报错4.1. 重新配对时显示配对未成功 1. 前言 罗技的鼠标出厂的时候,默认的是将通道一设置为接收…

如何通过navicat连接SQL Server数据库

本文介绍如何通过Navicat 连接SQL Server数据库。如果想了解如何连接Oracle数据库,可以参考下边这篇文章。如何通过Navicat连接Oracle数据库https://sgknight.blog.csdn.net/article/details/132064235 1、新建SQL Server连接配置 打开Navicat软件,点击…

链表|2. 两数相加160. 相交链表 234. 回文链表

2. 两数相加 题目:给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0…

极简模式,助力宏观数据监控

随着UWA GOT Online采样的参数越来越多样化,为了提升开发者的使用体验,我们最新推出了三种预设数据采集方案:极简模式、CPU模式、内存模式。该更新旨在降低多数据采集对数据准确性的干扰,同时也为大家提供更精准且有针对性的数据指…

解决使用Flipper无法连接到苹果模拟器,却能连接到安卓

而且这些都是显示正常 可是打开Virtual device一看ios一直在加载中 然后我打开日志看了下,然后各种找配置,项目里边配置改了又改,最后发现是缺少了个插件 //1、 检查 idb 和 idb_companion 是否已经安装 brew tap facebook/fb brew install …

Chart 3 Adreno OpenCL 应用程序开发

文章目录 前言4.1 Android上进行OpenCL应用程序开发4.2 Adreno OpenCL SDK 和 Adreno OpenCL 机器学习 SDK4.3 调试工具和技巧 前言 本章主要介绍如何 debug Adreno OpenCL应用程序 4.1 Android上进行OpenCL应用程序开发 Adreno GPU 主要在 Android 操作系统和部分 Linux 系统…

二叉树刷题Leetcode

文章目录 104.二叉树的最大深度100.相同的树965.单值二叉树 104.二叉树的最大深度 int maxDepth(struct TreeNode* root) {if(rootNULL)return 0; int left1maxDepth(root->left); int right1maxDepth(root->right); return left>right?left:right; }处理二叉树最大深…

感觉到自己思想扭曲了

突然觉得自己思想有点扭曲。 ​起因是近期备婚,需要给男方家人买衣服。问男朋友妹妹衣服预算多少,说是500内,然后想想自己这个新娘子,那一身衣服绞尽脑汁凑满减不到300。再联想到装饰新房,新房买家具,为了省…

TikTok与社会责任:平台如何推动正能量?

近年来,TikTok作为一款备受欢迎的社交媒体平台,不仅令人们畅享创意短视频,更在推动社会正能量方面发挥了积极作用。 本文将深入探讨TikTok在社会责任方面的表现,探究其是如何通过不同的举措推动正向影响,引领社会向更…

23史上最全版---SQL注入详解

漏洞原因 一些概念: SQL:用于数据库中的标准数据查询语言。 web分为前端和后端,前端负责进行展示,后端负责处理来自前端的请求并提供前端展示的资源。 而数据库就是存储资源的地方。 而服务器获取数据的方法就是使用SQL语句进…

【开源】基于Vue+SpringBoot的数据可视化的智慧河南大屏

项目编号: S 059 ,文末获取源码。 \color{red}{项目编号:S059,文末获取源码。} 项目编号:S059,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 数据模块 …

AntV和AntD之间的区别与联系

前言:最近在调研前端的一些框架,技术栈主要是用react,所以找到了2个十分相似解决方案,拿来对比一下(antd和antv都是基于react) antd对比antv antd antv 解决方案企业级 UI 设计语言数据可视化解决方案提供…

springboot使用Validator参数校验

引用&#xff1a;https://www.cnblogs.com/yang-yz/p/17576507.html Validator校验框架遵循了 jsr-303验证规范(参数校验规范) JSR : java specification requests 为了解决开发人员在校验参数方面&#xff0c;少写代码 依赖&#xff1a; <dependency><groupId>o…

《数字中台建设总体方案》

《数字中台建设总体方案》 制定数字中台战略规划&#xff1a;制定符合企业实际情况的数字中台战略规划&#xff0c;明确建设目标、重点任务和时间表。确定数字中台架构&#xff1a;根据企业业务需求和特点&#xff0c;确定数字中台的架构&#xff0c;包括技术架构、应用架构和数…

ftp的服务安装配置

安装 yum install -y vsftpd # 是否安装成功 rpm -qa | grep vsftpd # 是否开机启动 systemctl list-unit-files | grep vsftpd # 开机启动 systemctl enable vsftpd.service # ftp端口 netstat -antup | grep ftp # 状态 service vsftpd status service vsftpd start service…

java项目日常运维需要的文档资料

一、前言 java项目开发完成&#xff0c;部署上线&#xff0c;进入项目运维阶段&#xff0c;日常工作需要准备哪些资料和文档?当项目上线后&#xff0c;运行一段时间&#xff0c;或多或少会遇到一些运维上的问题&#xff0c;比如服务器磁盘饱满&#xff0c;服务器CPU&#xff0…

如何理解微服务体系结构中的 CQRS

本文翻译自 How To Understand CQRS In Microservices Architecture&#xff0c;原作者 OLEKSII。 问题描述 在典型的软件应用程序中&#xff0c;有一个负责写入和读取操作的数据存储。通常&#xff0c;应用程序实现一些 CRUD 操作&#xff0c;并且非常简单。你存储了一些东西并…

一文读懂中间件

前言&#xff1a;在程序猿的日常工作中&#xff0c; 经常会提到中间件&#xff0c;然而大家对中间件的理解并不一致&#xff0c;导致了一些不必要的分歧和误解。“中间件”一词被用来描述各种各样的软件产品&#xff0c;在不同文献中有着许多不同的中间件定义&#xff0c;包括操…

Hadoop学习笔记(HDP)-Part.13 安装Ranger

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …