基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity)

这篇具有很好参考价值的文章主要介绍了基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考资料文档和视频,Google colab、Goolge云端硬盘

1.打开文档,点击【文件】【在云端硬盘中保存一份副本】,即将文档复制到自己云端硬盘。

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

2.打开该文件,按文中提示进行。

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

【代码执行程序】【更改运行时类型】修改运行时为GPU(免费的GPU不好用,收费的好用,某宝上几十元就可用一个月)

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

步骤1)

!git clone https://github.com/AlexeyAB/darknet

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity步骤2)在云盘上新建文件夹yolov4-tiny,在yolov4-tiny中再新增training文件夹

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

步骤3a)将数据集上传到yolov4-tiny文件夹下

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

这里说明一下数据集的处理注意事件

(1)这里用的图像标注工具为labelImg(注:labelImg经常闪退,可以使用其他标记工具,可以见这篇博客《几种Yolo图像标注工具》)

(2)切换到YOLO模式

(3)在View中开启自动保存模式

(4)当图片文件夹改变时,txt保存文件夹也要改变(【File】【Change Save Dir】)

(5)图片格式只能为jpg(小写),大写的JPG,或jepg、png等都不行。

(6)训练集中的图片尺寸可以一样,比如500*550,300*400都可以

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

步骤3b)下载 darknet/cfg下的yolov4-tiny-custom.cfg

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

修改yolov4-tiny-custom.cfg(与文档中的说明有差异)

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

两处yolo需要改

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

修改完后上传到yolov4-tiny文件夹

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

步骤3c)在yolov4-tiny文件夹,新建文件obj.data、obj.names

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

classes = 2
train = data/train.txt
valid = data/test.txt
names = data/obj.names
backup = /mydrive/yolov4-tiny/training

步骤3d)在github下载process.py,然后上传到yolov4-tiny

import glob, os

# Current directory
current_dir = os.path.dirname(os.path.abspath(__file__))

print(current_dir)

current_dir = 'data/obj'

# Percentage of images to be used for the test set
percentage_test = 10;

# Create and/or truncate train.txt and test.txt
file_train = open('data/train.txt', 'w')
file_test = open('data/test.txt', 'w')

# Populate train.txt and test.txt
counter = 1
index_test = round(100 / percentage_test)
for pathAndFilename in glob.iglob(os.path.join(current_dir, "*.jpg")):
    title, ext = os.path.splitext(os.path.basename(pathAndFilename))

    if counter == index_test:
        counter = 1
        file_test.write("data/obj" + "/" + title + '.jpg' + "\n")
    else:
        file_train.write("data/obj" + "/" + title + '.jpg' + "\n")
        counter = counter + 1

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

4)步加载云盘

#mount drive
%cd ..
from google.colab import drive
drive.mount('/content/gdrive')

# this creates a symbolic link so that now the path /content/gdrive/My\ Drive/ is equal to /mydrive
!ln -s /content/gdrive/My\ Drive/ /mydrive

# list contents in yolov4-tiny folder in your drive
!ls /mydrive/yolov4-tiny

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

5)步开启OpenCV和GPU

# change makefile to have GPU and OPENCV enabled
# also set CUDNN, CUDNN_HALF and LIBSO to 1

%cd /content/darknet/
!sed -i 's/OPENCV=0/OPENCV=1/' Makefile
!sed -i 's/GPU=0/GPU=1/' Makefile
!sed -i 's/CUDNN=0/CUDNN=1/' Makefile
!sed -i 's/CUDNN_HALF=0/CUDNN_HALF=1/' Makefile
!sed -i 's/LIBSO=0/LIBSO=1/' Makefile

6)步构建darknet

# build darknet
!make

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

7)复制文件到darknet文件夹下

# Clean the data and cfg folders first except the labels folder in data which is required

%cd data/
!find -maxdepth 1 -type f -exec rm -rf {} \;
%cd ..

%rm -rf cfg/
%mkdir cfg

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

#copy the datasets zip file to the root darknet folder
!cp /mydrive/yolov4-tiny/obj.zip ../

# unzip the datasets and their contents so that they are now in /darknet/data/ folder
!unzip ../obj.zip -d data/
#copy the custom cfg file from the drive to the darknet/cfg folder
!cp /mydrive/yolov4-tiny/yolov4-tiny-custom.cfg ./cfg
# copy the obj.names and obj.data files so that they are now in /darknet/data/ folder
!cp /mydrive/yolov4-tiny/obj.names ./data
!cp /mydrive/yolov4-tiny/obj.data  ./data
#copy the process.py file from the drive to the darknet directory
!cp /mydrive/yolov4-tiny/process.py ./

8)运行process.py,创建train.txt和test.txt在data目录下

# run process.py ( this creates the train.txt and test.txt files in our darknet/data folder )
!python process.py

# list the contents of data folder to check if the train.txt and test.txt files have been created
!ls data/

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

9)下载预训练文件 

# Download the yolov4-tiny pre-trained weights file
!wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v4_pre/yolov4-tiny.conv.29

10)开始训练

# train your custom detector! (uncomment %%capture below if you run into memory issues or your Colab is crashing)
# %%capture

!./darknet detector train data/obj.data cfg/yolov4-tiny-custom.cfg yolov4-tiny.conv.29 -dont_show -map

如果提示错误:./darknet: error while loading shared libraries: libcuda.so.1: cannot open shared object file: No such file or directory

运行时类型改为GPU,参照上文。

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

训练成功是这样的

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

如果中途退出了,接着上次的断点继续训练

#to restart training your custom detector where you left off(using the weights that were saved last)

!./darknet detector train data/obj.data cfg/yolov4-tiny-custom.cfg /mydrive/yolov4-tiny/training/yolov4-tiny-custom_last.weights -dont_show -map

11)查看训练结果

# define helper function imShow
def imShow(path):
  import cv2
  import matplotlib.pyplot as plt
  %matplotlib inline

  image = cv2.imread(path)
  height, width = image.shape[:2]
  resized_image = cv2.resize(image,(3*width, 3*height), interpolation = cv2.INTER_CUBIC)

  fig = plt.gcf()
  fig.set_size_inches(18, 10)
  plt.axis("off")
  plt.imshow(cv2.cvtColor(resized_image, cv2.COLOR_BGR2RGB))
  #plt.show('')
#only works if the training does not get interrupted
imShow('chart.png')

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

在Unity For Unity2.5.9(Unity2021.3.35f1)中使用

在菜单【Tools】【OpenCV for Unity】【Open Setup Tools】,将“OpenCVForUnity/StreamingAssets”移动到“Assest下/StreamingAssets"

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

将训练用的coco.names、yolov4-tiny-custom.cfg、yolov4-tiny-custom_best.weights放到Assets\StreamingAssets\OpenCVForUnity\dnn下

打开ObjectDetectionYOLOv4Example

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity配置识别文件

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity),OpenCV,Unity,YOLO,OpenCV,Colab,yolov4-tiny,Unity文章来源地址https://www.toymoban.com/news/detail-845571.html

到了这里,关于基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【colab】谷歌colab免费服务器训练自己的模型,本文以yolov5为例介绍流程

    目录 一.前言 二.准备工作 1.注册Google drive(谷歌云盘) Google Driver官网:https://drive.google.com/drive/ Colab官网:https://colab.research.google.com/ 2.上传项目文件 3.安装Colaboratory 4.colab相关操作和命令 5.项目相关操作  三.异常处理         本文介绍了在谷歌开放平台Google colab上租用免

    2023年04月08日
    浏览(39)
  • YOLOv8训练自定义数据集(超详细)

    借鉴 YOLOv8训练自己的数据集(超详细)_AI追随者的博客-CSDN博客 安装 requirements.txt 下载:https://raw.githubusercontent.com/ultralytics/ultralytics/main/requirements.txt 然后在你 目录下执行 pip install -r requirements.txt 它的 requirements 主要是以下 包,用下面代码检查下自己还缺哪些,补上就好。 安装

    2023年04月16日
    浏览(38)
  • Yolov8_使用自定义数据集训练模型1

    前面几篇文章介绍了如何搭建Yolov8环境、使用默认的模型训练和推理图片及视频的效果、并使用GPU版本的torch加速推理、导出.engine格式的模型进一步利用GPU加速,本篇介绍如何自定义数据集,这样就可以训练出识别特定物体的模型。 《Yolov8_使用自定义数据集训练模型1》——

    2024年01月19日
    浏览(35)
  • YOLOv8目标检测:自定义数据集训练与评估

    摘要:在本教程中,我们将详细介绍如何使用自定义数据集训练YOLOv8模型,并用Python代码评估模型性能。 正文: 一、准备自定义数据集 为了训练YOLOv8模型,我们需要一个标注好的自定义数据集。数据集应包含图像文件和对应的标注文件,标注文件中包含目标类别和边界框信

    2024年02月06日
    浏览(38)
  • 在自定义数据集上训练 YOLOv8 进行目标检测

    这是目标检测中令人惊叹的 AI 模型之一。在这种情况下,您无需克隆存储库、设置要求并配置模型,就像在 YOLOv5 及其之前的版本中所做的那样。 在 YOLOv8 中,不需要执行这些手动任务。您只需安装 Ultralytics 即可,我将向您展示如何通过一个简单的命令安装它。 这是一个提

    2024年02月01日
    浏览(40)
  • YOLOv7教程系列:一、基于自定义数据集训练专属于自己的目标检测模型(保姆级教程,含数据集预处理),包含对train.py/test.py/detect.py/export.py详细说明

    YOLOv7作为YOLO系列的又一大巅峰之作,下面将介绍利用自己的数据集训练YOLOv7模型。 github代码链接:https://github.com/WongKinYiu/yolov7 目前版本为v0.1 运行环境如下: ubuntu20.04 cuda11.0 cudnn8.0.4 python3.8 torch1.12.0 torchvision0.11.0 在data目录下新建Annotations, images, ImageSets, labels 四个文件夹 i

    2024年01月22日
    浏览(35)
  • 目标检测YOLO实战应用案例100讲-基于改进YOLOv4算法的自动驾驶场景 目标检测

    目录 前言 国内外目标检测算法研究现状  传统目标检测算法的发展现状 

    2024年02月06日
    浏览(37)
  • YOLOv5-7.0-seg+YOLOv8-seg自定义数据集训练

    下载源码   https://github.com/ultralytics/yolov5.git 参考链接   yolov5-实例分割 1.如何使用yolov5实现实例分割,并训练自己的数据集_哔哩哔哩_bilibili 目录: - datasets     - JPEImages #存放图片和标注后的json文件以及转换后的txt文件     - classes-4 #存放切分好的数据集         - images    

    2024年02月01日
    浏览(46)
  • 【YOLO】YOLOv8实操:环境配置/自定义数据集准备/模型训练/预测

    源码链接:https://github.com/ultralytics/ultralytics yolov8和yolov5是同一作者,相比yolov5,yolov8的集成性更好了,更加面向用户了 YOLO命令行界面(command line interface, CLI) 方便在各种任务和版本上训练、验证或推断模型。CLI不需要定制或代码,可以使用yolo命令从终端运行所有任务。 如果

    2023年04月24日
    浏览(49)
  • 【v8初体验】利用yolov8训练COCO数据集或自定义数据集

    github地址:https://github.com/ultralytics/ultralytics YOLOv5目前仍然是很受到大家环境的,v8作为v5的升级之作效果的提升也非常明显,但相比YOLOv5确实没有作出较大改进,主要改进如下: Backbone : 主干部分主要是将所有C3模块更换成C2f模块,C2f借鉴了YOLOv7的思想,个人感觉应该是这种多

    2023年04月27日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包