yolo8 目的检测、鉴黄

打印 上一主题 下一主题

主题 2036|帖子 2036|积分 6108

省流 看前必读 别浪费时间 :本文只是一个记录,防止自己下次被改需求时浪费时间,在这里就随意的写了一下文章记录整个步骤,但是文章想必肯定没有对应的教程讲的具体,该文章只适合想要快速按照步骤完成一个简单的 demo 的同学,并不适合想完全掌握 yolo 的同学。
一、安装情况

前言预览:


  • 情况的安装分为 anaconda、pytorch、ultralytics
  • pytorch安装需要留意自己的显卡版本选择对应的,30、40 系显卡要装 cuda 11版本,16 系显卡安装cuda 102版本(本文没有进行说明,可以搜搜找到适合自己显卡的版本,如果40系显卡跟着我步骤就ok)
  • 留意python版本不在3.8-3.11之间则会报错(以下会有一个解决办法)
1.1 anaconda

在此建议利用Anaconda,否则当地情况配了还要换,贼麻烦,Anaconda真香,我以前是懒得用的,效果现在真香。
首先安装 Anaconda,安装完毕后直接打开,简单吧,咱们 winer 就是喜欢可视化,low 也认了,我懒。
打开后如下,然后找到 create 创建当前项目的情况:

给予python对应版本号,记得有些版本不支持,我忘记了,就按照这个来吧,你可以自己搜一下会比力清晰:

1.2 pytorch

接着开始装 pytorch,地点:https://pytorch.org/get-started/locally/
截图如下:

安装一些老版本会比力兼容稳定,否则太新会寄,这个我就不过多解释了,做开辟的都懂:

对了,这里对你的显卡啥的有版本要求,找到适合你的,我是 4060 ti ,选择了适合的版本(你可以搜,我忘记了,这篇文章就是临时做了一个小项目,顺手做个条记,防止下次叫我改需求啥啥啥的):
这里我选择的是 cuda 11.8:
https://pytorch.org/get-started/previous-versions/

接着通过 conda 打开你的命令提示窗,就是 open Terminal:

输入以下命令:
  1. conda install pytorch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 pytorch-cuda=11.8 -c pytorch -c nvidia
复制代码
复制命令,enter实行:


1.2 ultralytics

yyyyy… 后,然后安装 ultralytics:
  1. pip install ultralytics
复制代码
留意,在这几步留意你的网络,你是否设置了全局镜像源,不清晰的就切换网络试试,说不定就成了。
随后到 github 的 ultralytics 中下载那个文件,我这里直接下载了压缩包:
进入 ultralytics 解压后的文件夹 -e. 安装,留意,利用 cd 进入目录,不会的搜搜 cd 命令是干啥的用的,就是 cd 后面一个目录就进去了,进不去留意切换盘符,比方默认C盘,你进入了D盘你cd后还需要 d: 才可以(建议学学否则说不明白,从底子说起来又太多了,这里就给小白玩家一个提示。):
  1. pip install -e .
复制代码
随后就开始安装:

1.4 有报错的留意

若python版本不在3.8-3.11之间则会报错,找不到指定的模块:\site-packages\torch\lib\fbgemm.dll

解决办法:将python版本换回
在运行此命令之前实验实行conda clean --all此操纵,否则可能有缓存的缘故原由会导致你安装不了:

安装完毕后,可以利用 yolo 命令,看看能不能用:
  1. yolo predict model=yolov8n.pt source=ultralytics/assets/bus.jpg
复制代码
以上命令是 yolo 就是表示利用 yolo ,你可以这样明白,随后 predict 表示猜测,连起来就是利用 yolo 猜测,model 表示选择模子是 yolov8n,.pt 就是后缀就不消理了,source 表示猜测的那个图片位置,在这里选择的目录是 ultralytics/assets/ 下的 bus.jpg 文件,随后会直接进行人像的猜测。
简而言之:
  1. yolo predict model=模型选择 source=你要预测的图片
复制代码
1.5 代码猜测方式如下:

代码:
  1. from ultralytics import YOLO
  2. yolo=YOLO("./yolov8n.pt",task="detect")
  3. res=yolo(source="./ultralytics/assets/bus.jpg")
复制代码
代码实行:

二、在线标注网站

2.1 导入文件

咱们在这里利用在线的标注网站,轻松方便直接标注直接利用。
打开标注网站 :
https://www.makesense.ai/
直接选择 start 开始:

把你的图片拖进来,我这里拖了51张图片:

选择目的检测 object detection:

2.2 label 标注

随后的界面会说你的当前 label 标签是空的:

点击中间创建 标签:

点击 + 号可以添加标签,我这里直接添加 A 和 B 标签:

之后点击接受即可:

唔然后我发现改版了这个网站,以前直接是个十字架你直接画框就好,现在要自己选,选择画框,有可能你不需要选也得:

然后鼠标放到你图片上画个框,就是你需要检测的对象长啥样,你就把他框出来(由于我图片敏感就不做演示,假如你要检测人你就框人,检测某一个特定logo你就框那个 logo):

框了后在这里选择你框出来的目的的分类:

有可能我这里标签是男子、女人,那么我这里框出来男子就选择标签为男子的选项,我这里就用A、B表示了。
随后在左上角 Action 操纵中选择导出:

随后弹出来后选择 yolo 格式的 zip 文件,这个看你自己,我是需要 zip 的,txt 格式的文件:

随后导出后,会下载一个压缩包,解压后内里有 txt 的文件:

三、模子训练代

进行模子训练和猜测我们需要预备好对应的目录以及标注文件,比方 dataset目录,在 dataset目录下创建对应的图片 train 训练文件夹以及验证文件夹 val。当然 dataset 目录下是分不同项目的,不同项目不同文件夹,在这里我用 gjf 表示我的项目名,在 gif 下创建对应的训练目录以及验证目录(继续往下看吧)。
3.1 目录和文件预备

训练前预备,在 yolo 根目录创建一个 dataset:

打开文件目录,在 datasets 下创建一个 gif,你可以以为 gif 为当前项目的数据集名称,究竟需要创建不同的名称为数据集分类。
接着 在 gif下创建一个 images 文件夹,用于存放对应的图片数据集,但我们的图片数据集分为训练和验证,再次两个种类分别创建两个目录,一个为 train 用于训练,另一个叫做 val 用于验证。
接着我们需要再创建一个 label 文件夹用于存放对应的标注文件:

同样,对应的label 有效于训练的以及用于验证的,那么此时在labels 文件夹下创建两个对应的 train 和 val 文件夹:

此时我们回到存放image 文件夹下,在 train 文件下把我们拿来标注的图片复制过来:

接着我们选取几张图片进行剪切存放到 val 文件夹下:

在此我选择6张图片剪贴到 val下:

随后打开标注文件下的 train 中;

复制之前下载的标注内容到此文件夹:

此时你还记得,之前剪切到 val 中的 image 图片吗?我是 6、7、8、66、67、68 这 6 个文件,此时将他们的数据在 labels 下的 train 文件夹中进行剪切,复制到 labels 下的 val 文件夹中,由于我们要做到 labels 于 images 文件夹下的文件一一对应,这是缘故原由:

此时还差最后一步,我们回到 labels 文件夹下创建一个 classes.txt 文件:

此文件是说明咱们训练的内容分为几个种别,在此我是两个种别,其中内容为(这里要跟你标注的标签同等,我之前利用 A、B做标签的,所以在这里应该是A、B,这是以前的项目所以就没发改了,就这样了,你明白就ok):

这个类型请按照你自己的进行自界说。
3.2 设置项

接下来开始做训练前的最后一步,创建我们 gjf 项目的设置文件,在根目录下创建一个 .yaml 文件,当然你可以自命名,我是命名为了 gif,这个文件是设置作用:

其中编写如下设置信息:

XML 如下:
  1. path: gjf # datasets 下的哪个项目
  2. train: images/train # 训练图片在哪
  3. val: images/val # 验证目录在哪
  4. test: # test images (optional)
  5. # Classes
  6. names:
  7.   0: GJF
  8.   1: SQ
复制代码
随后实行命令:yolo task=detect model=./yolov8n.pt data=gjf.yaml epochs=25 workers=1 batch=16
若出现文件找不到之类的题目或者模子找不到,请利用绝对路径,那样可以暂时解决你的错误,但是你还需要自己调解一下当前你的系统情况,这是另外的题目在此就不再多说,查资料就ok。
解决实行完毕后,顺利无误将会出现以下效果:

此时效果告诉我保存咋爱了某个目录下的 runs\detect… 中,best.pt 是最好的模子效果,那我们利用 best.pt 检测一下我们目的识别效果怎样:
  1. yolo detect predict model= runs/... source= ..... show=true
复制代码
以上命令记得把哪个 … 啥的 路径 改成你自己的目录
3.3 代码检测某一图片是否有目的

接着我们利用代码运行检察效果 :
  1. import cv2
  2. from ultralytics import YOLO
  3. # 加载训练好的模型
  4. model = YOLO("path_to_your_trained_model.pt")
  5. # 读取图片
  6. image_path = "path_to_your_image.jpg"
  7. img = cv2.imread(image_path)
  8. # 进行检测
  9. results = model.predict(source=img, save=False)
  10. if len(results[0].boxes) > 0:
  11.     print("有")
  12. else:
  13.     print("没有")
复制代码
效果如下:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

守听

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表