您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    几行代码构建全功用的对象检测模型,他是如何做到的?(2)
    时间:2020-03-01 21:11 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    首先,反省你的计算机能否具有启用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.67021003.4383,  658.1044], 

    #         [ 276.2478,  144.0074,  579.6044,  508.7444], 

    #         [ 277.2929,  162.6719,  627.9399,  511.9841]]) 

    print(boxes) 

    # tensor([0.99520.98370.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)