【基础篇 02】文件、文件夹和路径:先把学习资料放对地方

YOLO从零到论文:模型改进与科研实战全攻略

YOLO基础篇 · A02

作者:迪菲赫尔曼

大家好,我是迪菲赫尔曼。

先和大家说一句,这一篇会讲得特别基础,可能细到有些同学看到标题都会想:"建个文件夹、复制一张图片,这也要单独讲一篇?"

是的,这次咱们就从这里开始。

这几年写教程、和大家交流的过程中,我遇到过太多卡在基础操作上的问题。很多读者都是跨专业过来做课题的,之前没有学过编程,平时也很少接触项目文件。真的有不少同学,刚开始连文件和文件夹的区别都不清楚,更别说文件后缀、目录层级和路径了。

我们平时顺手写一句"新建一个文件夹,把图片放进去",有的同学就会卡住:文件夹在哪里建?建在桌面还是项目里面?图片下载完去了哪里?这里说的"目录",又是电脑里的哪个位置?这些问题,对刚起步的人来说,确实需要有人带着走一遍。

所以,看到这一篇讲得这么细,熟悉电脑操作的同学可能会觉得有点夸张,但这些都是写教程时实际遇到过的困惑。前面把它们讲清楚,后面下载源码、准备数据集、修改配置时,大家才更容易跟得上。

所以这几篇,我会把操作拆得细一点:点哪里、文件放在哪里、怎么确认自己做对了,都尽量交代清楚。熟悉这些操作的同学,还请多担待,可以快速看一遍,确认会做以后继续往下读。

刚入门的同学也别觉得不好意思。咱们先把这些看起来很小的事情弄明白,后面跑代码、做实验,才更容易跟得上。

上一篇我们看了检测、实例分割和分类的结果,也说清楚了后面大概要做什么。

这一篇开始动手。

先做一件看起来很基础、但后面会反复用到的事:建立自己的学习文件夹,把一张图片放进去,再把它找出来。

以后下载源码、配置数据集、加载权重,都要用到文件位置。现在把这个弄清楚,后面就不容易在"文件找不到"上绕来绕去。

做完以后,你的目录会是这样:

text 复制代码
yolo-study
└── images
    └── bus.jpg

这里还没有 Python 代码。用电脑的文件管理器就可以完成。🍀

主要操作按 Windows 11 说明。使用其他版本时菜单可能不同,关键是完成同样的文件操作。Mac 的对应方法在文中另列。


1. 先分清文件和文件夹

我们平时打开一张照片、一份文档,操作的通常就是文件。

文件夹用来整理这些文件,也可以继续放其他文件夹。

比如:

text 复制代码
yolo-study        ← 一个文件夹
└── images       ← 里面的另一个文件夹
    └── bus.jpg  ← 一张图片文件

这里的竖线和拐角,只是在文章里表示"谁放在谁里面",叫作目录树。

这些符号不用输入到电脑里,文件名也不用带上箭头后的说明。

你只需要创建名叫 yolo-study 的文件夹,再在里面建 images,最后把图片放进去。

下面一步一步做。


2. 建立 yolo-study 文件夹

2.1 Windows 同学

  1. 按键盘上的 Windows + E,打开文件资源管理器。
  2. 在左侧找到"文档",点击进去。如果名称不同,也可以选择一个自己方便长期找到的位置。
  3. 在右侧空白处点击右键。
  4. 选择"新建 → 文件夹"。如果菜单折叠,按界面中的"新建"入口操作。
  5. 把名字写成 yolo-study,按回车确认。

现在看右侧,是不是多了一个名叫 yolo-study 的文件夹?

双击它,进入里面。

第一次建好后,里面是空的,这就是我们现在要的状态。

2.2 Mac 同学

  1. 打开"访达 / Finder"。
  2. 进入自己的"文稿 / Documents",或者另一个方便找到的位置。
  3. 通过菜单"文件 → 新建文件夹",建立 yolo-study。
  4. 打开它。

两种系统做的是同一件事:选定一个实际位置,建立以后都能找到的学习文件夹。

2.3 为什么这次统一名字?

yolo-study 是这几篇的学习目录。统一名字,方便对照文章。

后面拿到正式项目源码,我们再安排代码与数据的位置。现在先把基础练习都放在这里,不用一开始就建立十几个目录。


3. 在里面再建一个 images 文件夹

确认你现在已经进入 yolo-study。

再用刚才的方法,新建一个文件夹,名字写成:

text 复制代码
images

注意看位置:images 应该在 yolo-study 里面。

如果你回到"文档",看到 yolo-study 和 images 并排放着,说明刚才新建的位置不对。

先进入 yolo-study,再创建里面的 images。如果误建了另一个空文件夹,确认它确实是自己刚建且没有内容,再整理掉即可。

现在我们的结构应该是:

text 复制代码
yolo-study
└── images

检查方法很直接:打开 yolo-study,能看到 images;再打开 images,它现在应该还是空的。


4. 把随文图片复制进去

本篇练习使用下面这张示例图片。已下载配套资料的同学,也可以在"随文练习素材"文件夹中找到它:

bus.jpg 示例图片

它来自 Ultralytics 项目自带的示例素材。打开链接后,可用浏览器将图片保存为 bus.jpg;已有配套资料的同学直接找到这个文件,再进行下面的操作。

Windows 操作

  1. 单击选中 bus.jpg。
  2. 按 Ctrl + C,复制这个文件。
  3. 打开你自己的 yolo-study,再进入 images。
  4. 按 Ctrl + V,把图片粘贴进去。

Mac 操作

选中图片后使用 Command + C,进入自己的 yolo-study/images,再按 Command + V。

这次用复制,原配套资料里的图片仍然保留,学习目录里会多一份。

复制完以后,请打开学习目录里的这张图,确认它能正常显示。

到这里,你应该已经有了:

text 复制代码
yolo-study
└── images
    └── bus.jpg

如果出现一个 bus (1).jpg 或类似名字,可能是同一位置重复粘贴产生了副本。先核对原来是否已经有 bus.jpg,本次练习使用名字正确、可以打开的那一份。


5. 先把扩展名显示出来

现在我们看一下 bus.jpg 这个名字。

  • bus 是文件名的主体;
  • .jpg 是扩展名,表示这是一种图片文件。

后面还会遇到:

扩展名 在课程里通常用来放什么
.jpg、.png 图片
.txt 普通文本;后面也可能用于保存标签
.py Python 代码
.yaml 配置内容,后面会打开具体例子
.pt 后面使用的模型文件

这些现在不用记熟,遇到再看就行。

但有个操作建议现在就完成:把文件扩展名显示出来,避免以后看不出 hello.py 和 hello.py.txt 的区别。

Windows 11

在文件资源管理器顶部找到:

text 复制代码
查看 → 显示 → 文件扩展名

把"文件扩展名"勾上。

如果你用的是 Windows 10,可以在顶部"查看"选项卡里找"文件扩展名"。这两种入口可以对照微软的扩展名说明。

Mac

在访达的设置中,打开"高级",勾选"显示所有文件扩展名"。菜单名称会随系统语言变化,可对照Apple 的文件扩展名说明。

设置好以后,看看这张图片是否显示为完整的 bus.jpg。

一个要注意的地方

改后缀,不等于转换文件格式。

比如把 bus.jpg 重命名为 bus.py,它也不会变成 Python 程序。

后面需要转换图片或标注格式时,我们会用对应的方法处理。现在保留随文图片原来的名字。


这是 macOS 的真实设置界面,图中"显示所有文件扩展名"已经勾选。这里只突出这个选项,其他设置不需要照着改;Windows 使用上面的文件资源管理器步骤。

6. 路径是什么?就是文件具体放在哪里

你现在已经知道图片在哪个文件夹里了。

如果要用文字把它的位置告诉程序,就需要路径。

6.1 先看完整路径

假设有位同学把学习目录放在自己的文档目录里,图片的完整路径可能是:

text 复制代码
C:\Users\XiaoMing\Documents\yolo-study\images\bus.jpg

这段文字可以从左往右理解:

text 复制代码
C 盘
→ Users
→ XiaoMing
→ Documents
→ yolo-study
→ images
→ bus.jpg

这种从盘符或系统根目录开始写出的路径,叫作绝对路径。

上面是举例,不是让你照抄用户名,也不是要运行的命令。

有的电脑文档位置在 OneDrive 下面,有的同学放在其他磁盘,实际路径都会不同。请使用自己电脑上真实的位置。

6.2 怎么看到自己的文件夹路径?

Windows 同学,打开 yolo-study/images 后,单击文件资源管理器顶部的地址栏。也可以按 Ctrl + L,选中地址栏。

你会看到当前文件夹的位置。用 Ctrl + C 可以复制。

这里复制的是 images 文件夹的路径 ,它还没有包含最后的 bus.jpg。

请把两件事分开:

text 复制代码
文件夹路径:到 images 为止
图片文件路径:还要包含 bus.jpg

如果要复制图片自身的路径,可以在 bus.jpg 上点右键,寻找"复制文件地址 / Copy as path"一类选项;某些菜单需要按住 Shift 再右键或展开更多选项。复制出来可能带双引号,先保留,后面写代码时再按示例处理。

Mac 同学可以选中文件,在"文件 → 显示简介"中查看位置;后面用 VS Code 打开文件后,我们还会继续核对。

先看上方的文件列表,再看下方的路径栏。看最右端的 yolo-study → images,再看文件名 bus.jpg,把"所在目录"和"文件名"分开。Windows 看资源管理器的地址栏,判断方法相同。

6.3 "相对路径"又是什么?

假设我们已经站在 yolo-study 里面,要告诉别人去哪里找图片,可以简写为:

text 复制代码
images/bus.jpg

意思是:从现在约定的位置出发,进入 images,找到 bus.jpg。

这就是相对路径。

如果出发点改成 images 里面,同一张图片就可以直接写成:

text 复制代码
bus.jpg

所以,理解相对路径时,要先问一句:现在从哪里出发?

真正运行 Python 后,这个"出发点"还需要通过运行方式和工作目录来确认,不能只凭脚本保存的位置猜。终端与运行代码的章节会带大家实际查看。

本篇先理解这个例子,不用马上把路径写进程序。

6.4 再往前走一步:. 和 .. 分别是什么意思?

我们仍然只用已经建好的这份目录,不另外想象一个大项目:

text 复制代码
yolo-study
└── images
    └── bus.jpg

路径里的一个点 .,表示当前目录;两个点 ..,表示上一级目录。

假设现在从 yolo-study 出发:

text 复制代码
images/bus.jpg
./images/bus.jpg

这两种写法都可以表示同一张图片。第二种前面多了 ./,强调"从当前位置出发"。

如果我们已经进入 images,还写 images/bus.jpg,它就会尝试在当前的 images 里面,再找一个 images:

text 复制代码
yolo-study
└── images           ← 当前在这里
    └── images       ← 这个练习里没有这一层
        └── bus.jpg

这就是为什么同一串相对路径,换个出发点可能就找不到文件。图片本身没坏,也没有被删,只是查找位置变了。

现在从 images 回头看,.. 指向外面的 yolo-study。所以:

text 复制代码
../images/bus.jpg

可以理解为:先回到外层 yolo-study,再进入 images,找到 bus.jpg。这条路线绕了一下,但仍然能表达同一个位置。

现在只是读懂路线,不用在文件管理器里寻找名为 .. 的普通文件夹。第四篇会用终端实际切换目录。

先看每一格写的出发点,再沿路线去找图片。

6.5 反斜杠和正斜杠,先在哪一种场景使用?

Windows 文件管理器里常看到 \,macOS、Linux 路径通常使用 /。本篇在跨平台目录示意中使用 /,在 Windows 绝对路径示意中保留 \。

后面写 Python 路径字符串时,还要考虑 \ 的转义含义,不能只把操作系统显示的文字随手粘进任意一对引号。第五篇会给出具体写法。

现在只在文件管理器里找文件、复制路径,不必同时学习所有规则。先确认自己操作的场景:是在看路径,还是在终端输入命令,还是在代码里写字符串。


7. "项目根目录"先怎么理解?

以后教程中会经常出现"在项目根目录新建文件"这句话。

在现在这个练习里,我们把最外面的 yolo-study 作为整个学习目录的起点:

text 复制代码
yolo-study          ← 本次练习的最外层目录
└── images
    └── bus.jpg

到了下一篇,VS Code 要打开的是这个外层 yolo-study,这样左侧就能看到它里面的全部练习文件。

以后下载 Ultralytics 项目,项目根目录要根据那一份项目的结构来确认。它不是固定指电脑的 C 盘,也不是看哪个文件夹名字里带 yolo 就随便选一个。

这一步,到下载源码时我们再对着实际文件看。


8. 几个容易放错的位置

8.1 打开 yolo-study,里面又是一个 yolo-study

说明可能多建或多解压了一层。

先检查图片实际放在哪里,找到那个直接包含 images 的目录。本篇和下一篇以这个目录为准。不要没看清内容就批量移动或删除。

8.2 电脑上有好几份 bus.jpg

配套资料里一份,自己的学习目录里一份,这是正常的。

后面的练习统一使用你自己的 yolo-study/images/bus.jpg。通过路径确认文件,而不是只看文件名。

8.3 我打开的是图片所在文件夹,为什么复制的地址没有文件名?

因为地址栏显示的是当前文件夹。

文件路径还需要指向里面的具体文件。这正是第 6 节让大家区分的两个对象。

8.4 文件后面显示 .jpg.txt

先显示完整扩展名,再核对你找到的是不是随文图片本身。

有时保存网页、文字或创建文本文件时会得到不同类型的文件。回到配套资料,找到原来的 bus.jpg,复制并确认能打开。


8.5 文件名看起来一样,为什么有时能找到,有时找不到?

先按下面的顺序检查,不急着重装软件:

  1. 显示完整扩展名,检查是不是 bus.jpg,而不是 bus.jpg.jpg。
  2. 看父文件夹,检查是不是自己的 yolo-study/images。
  3. 检查字母大小写,统一使用本文的小写 bus.jpg。
  4. 如果使用了相对路径,再确认出发点。

不同系统对大小写的处理可能不同。现在就让文件名与教程一致,后面搬到 Linux 服务器时,可以少留一个隐患。

8.6 路径有空格或中文,是不是一定不能用?

不是。很多软件能正常处理这样的路径,但终端中往往需要正确加引号,某些工具还可能有各自的限制。

前期统一使用 yolo-study、images 这些简单名称,是为了方便对照,不是说必须把整个电脑的用户名和目录都改成英文。

如果你的实际文档目录包含中文,先保留真实位置。后面遇到具体报错,根据报错定位原因,而不是看到中文就盲目移动所有资料。


9. 自己重新找一次

现在先把文件窗口关掉,再从头操作一遍:

  1. 打开文件管理器。
  2. 找到自己的 yolo-study。
  3. 进入 images,打开 bus.jpg。
  4. 返回 yolo-study,确认它是包含 images 的外层文件夹。
  5. 查看 images 的实际路径,指出图片文件路径还要多哪一部分。

能独立完成,这篇就达到目标了。

下一篇继续用这一份 yolo-study,我们会在 VS Code 中打开它,并在图片目录旁边建立 hello.py。

第一篇写下的学习目标,也先留着。第三篇会把它保存进这个学习目录。🚀

10. 再做三道路径小题

仍然使用本篇那张目录树,先自己回答,再看下面的解释。

第一题: 从 yolo-study 出发,找 bus.jpg,可以写什么相对路径?

第二题: 从 images 出发,找这张图片,还需要再写一层 images 吗?

第三题: 把整份 yolo-study 复制到另一台电脑后,原来包含自己用户名的绝对路径,还能保证直接使用吗?

参考答案:

  1. images/bus.jpg,也可以写 ./images/bus.jpg。
  2. 不需要,直接写 bus.jpg 就能表达当前目录里的文件。
  3. 不能保证。另一台电脑的盘符、用户名和保存位置可能不同。相对路径在目录结构保留、出发点也正确时,可以继续使用。

你看,路径没有改变图片内容,它只是告诉程序去哪里找。后面报"文件不存在"时,咱们就从位置开始查。

上一篇:基础篇 01|YOLO 到底在做什么

下一篇:基础篇 03|第一次使用 VS Code

相关推荐
深圳安锐科技有限公司3 小时前
从成像尺度到亚像素解算:变焦视觉位移监测如何让远近断面都稳
图像处理·人工智能·深度学习·算法·计算机视觉·系统架构·结构健康监测
小豆庄6 小时前
AI换脸能骗过检测,视频脱敏为什么该回到本地
人工智能·yolo·阿里云·ai·ocr·视频
小毕超6 小时前
从推理到训练:Intel Ultra 核显 GPU 加速 YOLO 模型训练
pytorch·yolo·gpu·intel
双翌视觉7 小时前
.机器视觉国产化方案梳理:对位算法、AI 检测平台与精密测量仪器技术架构
人工智能·计算机视觉·视觉检测·机器视觉·工业自动化·视觉对位系统·ai 视觉检测
怎么全是重名8 小时前
PatchCore
人工智能·深度学习·计算机视觉·异常检测
W_326008 小时前
Python 图像处理第二十八章|OpenCV 形态学操作进阶:腐蚀、膨胀、开运算、闭运算、梯度、顶帽黑帽
图像处理·人工智能·python·opencv·计算机视觉
美狐美颜SDK开放平台8 小时前
视频美颜SDK如何实现动态贴纸跟随?人脸追踪技术解析
android·人工智能·计算机视觉·音视频·直播美颜sdk
拜小白8 小时前
【论文解读】PanoRoom:从球面到3D布局
深度学习·计算机视觉·全景图
拜小白9 小时前
【论文解读】(JLDNet) Joint 3D Layout and Depth:一张全景图同时算出房间骨架和像素深度
深度学习·计算机视觉·全景图