首先,反省你的计算机能否具有启用CUDA的GPU。由于深度学习需求少量处置才能,因此在通常的CPU上停止训练能够会十分缓慢。值得庆幸的是,大少数现代深度学习框架(例如PyTorch和Tensorflow)都可以在GPU上运转,从而使处置速度更快。 确保曾经下载了PyTorch(假设你安装了Detecto,应该曾经下载了),然后运转以下两行代码:
import torch
print(torch.cuda.is_available())
假设打印True,那你可以跳到下一部分。假设显示False,不要担忧。请按照以下步骤创立Google Colaboratory笔记本,这是一个在线编码环境,带有收费可用的GPU。关于本教程,你将只在Google Drive文件夹中任务,而不是在计算机上任务。
1)登录到Google Drive 2)创立一个名为“Detecto Tutorial”的文件夹并导航到该文件夹 3)将你的训练图像(和/或验证图像)上传到此文件夹 4)右键单击,转到“更多”,然后单击“Google Colaboratory”:你如今应该看到这样的界面:
5)依据需求给笔记本起个名字,然后转到“编辑”->“笔记本设置”->“硬件减速器”,然后选择“GPU”
6)输入以下代码以“装入”你的云端硬盘,将目录更改为以后文件夹,然后安装Detecto:
import os
from 谷歌.colabimport drive
drive.mount('/content/drive')
os.chdir('/content/drive/My Drive/Detecto Tutorial')
!pip install detecto
为了确保一切正常,你可以创立一个新的代码单元,然后输入 !ls 以反省你能否处于正确的目录中。
训练自定义模型最后,我们如今可以在自定义数据集上训练模型了。如前所述,这是容易的部分。它只需求4行代码:
from detectoimport core, utils, visualize
dataset = core.Dataset('images/')
model = core.Model(['alien','bat','witch'])
model.fit(dataset)
让我们再次分解一下我们每行代码所做的任务:
1、导入的Detecto模块 2、从“images”文件夹(包含我们的JPEG和XML文件)创立了一个数据集 3、初始化模型检测自定义对象(外星人,蝙蝠和女巫) 4、在数据集上训练我们的模型依据数据集的大小,这能够需求10分钟到1个小时以上的时间来运转,因此请确保你的顺序在完成上述语句后不会立刻参加(例如:你运用的是Jupyter / Colab笔记本,它在活动时保留形状)。
运用训练好的模型如今你曾经有了训练好的模型,让我们在一些图像上对其停止测试。要从文件途径读取图像,可以运用 detecto.utils 模块中的 read_image 函数(也可以运用下面创立的数据集中的图像):
# Specify the path to your image
image = utils.read_image('images/image0.jpg')
predictions = model.predict(image)
# predictions format: (labels, boxes, scores)
labels, boxes, scores = predictions
# ['alien', 'bat', 'bat']
print(labels)
# xmin ymin xmax ymax
# tensor([[ 569.2125, 203.6702, 1003.4383, 658.1044],
# [ 276.2478, 144.0074, 579.6044, 508.7444],
# [ 277.2929, 162.6719, 627.9399, 511.9841]])
print(boxes)
# tensor([0.9952, 0.9837, 0.5153])
print(scores)
正像你看到的,模型的预测办法前往一个由3个元素组成的元组:标签,方框和分数。在下面的示例中,此模型在坐标[569、204、1003、658](框[0])处预测了一个外星人(标签[0]),其置信度为0.995(得分[0])。
依据这些预测,我们可以运用 detecto.visualize 模块绘制结果。例如:
visualize.show_labeled_image(image, boxes, labels)
将下面的代码与收到的图像和预测一同运转将产生如下所示的内容:
假设你有一个视频,你可以在它下面运转对象检测:
visualize.detect_video(model,'input.mp4','output.avi')
这将获取一个名为“input.mp4”的视频文件,并依据给定模型的预测结果生成一个“output.avi”文件。假设你运用VLC或其他视频播放器翻开此文件,应该会看到一些希望看到的结果!
最后,你可以从文件中保存和加载模型,从而可以保存进度并稍后前往:
model.save('model_weights.pth')
# ... Later ...
(责任编辑:admin)