四个步骤完成一个Object Detection对象侦测的DEMO操作

电子说

1.3w人已加入

描述

Intel DevCloud开发者工具是一个免费的云端的开发平台,它已预装了OpenVINO Toolkit (Open Visual Inference and Neural network Optimization)方便开发AI应用程序。它是一个云端的JupyterLab服务,旗下三个产品DevCloudfor the Edge、DevCloud for oneAPI、DevCloud for FPGA,分别着重让开发者可以在云端的虚拟机上评估模型推论、神经网络训练研究以及客制化FPGA加速芯片应用。

特别值得一提的是,这些服务目前完全不需要花费任何一毛钱,即可尽情享用到高效能的运算能力。开发者们大可好好运用这些资源来学习并应用AI,本篇文章将使用DevCloud for the Edge,在简单的四个步骤之中,完成一个Object Detection对象侦测的DEMO操作。

一、准备动作

应用程序

Tutorials与Sample Applications非常推荐入门者学习

在注册完成登入DevCloud for the Edge之后,选择Get Started进入,即可看到五个页签,分别为Home、Learn、Build、Optimize以及Launch,分别在AI应用的四个阶段:学习、建立模型、优化模型以应用上,提供相当实用的文件与素材,入门者建议可以试着运行Learn页签里面的Tutorials与Sample Applications,里面有三十余的非常丰富的教学内容。

我们这次的主要目的则是在DevCloud上运行open model zoo的范例,首先我们要点选build页签当中的Connect and Create来启动服务器,等待约三十秒的时间之后即会转跳到DevCloud的后台界面。

应用程序

DevCloud的后台接口,点选右上方New来新增档案或开启终端机

进入到DevCloud后台接口可以看到目前显示在files页签,是类似文件管理器以阶层的方式看到自己在服务器上的所有档案,预设服务器在建立之后即会产生一个Reference-samples的文件夹,里面存放许多上面所提到的Sample Applications等项目文件。

DevCloud提供每个账户50GB的储存空间,可以自由运用储存程序与模型数据等。接着点选右上方New按钮,并从下拉式选单中点选Terminal开启终端机。在黑色的终端机背景中输入以下指令来取得我们要使用的ipython notebooks档案,同时这个档案也存放在github上

https://github.com/FelixLinSY/DevCloud_Hands_On

供有需要的开发者自行取用参考。

wgethttps://github.com/FelixLinSY/DevCloud_Hands_On/raw/main/DevCloud_HandsOn.ipynb

二、四步骤完成预训练模型范例

执行完成回到档案管理接口,就会看到多出一个刚下载的DevCloud_HandsOn.ipynb档案,点选该档案来启动ipython notebook。

应用程序

运行于DevCloud的教学指引:DevCloud_HandsOn.ipynb 

开启DevCloud_HandsOn.ipynb之后可以看到左侧是目录概要,可以看到列出了四个步骤即可完成open model zoo上的范例:

STEP1: 下载open model zoo程序代码

STEP2: 下载与转换模型

STEP3: 进行对象侦测推论

STEP4: 在各种边缘装置进行推论

应用程序

本教学文的目录概要

右侧比较大的字段则是程序代码编辑区,这部分是由程序代码与批注文字两种Cell组合而成的区域,能以Cell为单位自由编辑并且执行。笔者已经预先在这个ipython notebook中加入批注说明文字,希望能帮助到初学者理解各个步骤与指令的用意所在。

STEP 1: 下载open model zoo程序代码

STEP1仅有三行指令,依序执行即可建立工作目录并且从github下载open model zoo的程序代码。

STEP 2: 下载与转换模型

STEP2则接续要下载预训练的对象侦测模型,这边有两个做法:2.1是一次下载所有支持的对象侦测模型;2.2则是仅下载指定模型。由于对象侦测支持的预训练模型实在是非常多,一次下载将花费非常多的时间,强烈建议先跳过2.1执行2.2下载特定模型即可,待日后想要尝试置换其他模型时,再下载全部模型较为妥适。

取得要使用的模型文件之后就是要进行模型转换(converter)来取得推论引擎(Inference Engine),加载时需要使用的IR(Intermediate Representation)档,以利后续使用CPU、GPU、VPU等各种硬件进行推论。由于模型转换需要花费一些时间,如果你是一次下载所有模型并且进行转换的话(前述2.1的部分)这边也会花上好一段时间。

应用程序

使用ssd_mobilenet_v2_coco进行图片推论的结果

STEP 3: 进行对象侦测推论

STEP3就是进行推论的重头戏了,这边会使用openmodel zoo中的object_detection_demo.py范例程序分别执行单张图片的推论以及影片的推论两种。为求方便起见图片与影片笔者分别从pixabay与Pexels合法取得照片与影片来进行推论使用,各位也可以将自己的照片或影片手动上传到DevCloud上作为推论数据使用。

在执行范例程序需要代入相应的参数包含IR文件路径、输入数据、输出数据、模型架构与卷标文件等等,若参数错误可能会造成辨识不准确甚至会无法执行,请务必稍加留意。若需要更换模型文件除了IR路径修改外,模型架构与卷标文件也可能需要更换,详细请参考预训练模型文件的说明。

此外在执行影片推论前,笔者有使用sed指令去修改范例程序中输出影像的格式,为的是能够输出成正确的图像文件案并且在DevCloud上播放。其余的部分则和图片推论是大同小异。在推论结果的部分,不管是图片或是影片的对象侦测,可以观察到输出结果相当不错,即使是小对象侦测的正确率还不差。

应用程序

在Intel DevCloud for the Edge执行的影片推论结果

STEP 4: 硬件测试仿真

最后的第四步骤,我们要使用DevCloud最为强大的功能之一,将这个AI模型放到不同的边缘运算装置进行推论。于此之前先建立工作脚本档(4.1),基本上跟我们前面第三步骤的内容差不多,只不过把一些我们想要动态改变的参数改为从外部引入。

接着使用qsub指令派送工作到指定的边缘装置(4.2),所有支持的边缘装置可以参考Intel DevCloud for the Edge装置列表。由于工作会以方同步的方式在不同装置上运作,我们可以透过liveQstate()指令来检视任务的执行状态,这边务必要留意一下如果任务尚未完成而直接执行后续的cell程序段,将可能会造成错误或是数据读取不正确。

当所有任务都完成后,同样地开启输出影片来观察Intel Core Gen 11th使用CPU与GPU之间的推论差异。

应用程序

你可在Intel DevCloud for the Edge装置列表中进行选择,模拟体验一下所选模型在实际运作时的效益如何

三、快速延伸你的创意

本篇文章带各位轻松快速得完成一个open model zoo上的AI推论范例,各位是否觉得意犹未尽呢?在open model zoo与DevCloud上还有许多宝库值得去探究以及发掘,建议各位后续可以从 open model zoo 内各种有趣的范例和预训练的模型当中做探索,或是执行 DevCloud 上不同应用展示,都是不错的学习路径喔!每个范例也可以弹性去套用不同的模型进行演算,对于AI模型能够发展的应用,可以提供更多想象空间喔!

人工智能的技术在未来几年间将持续蓬勃发展,而配套的软件工具也将会越来越广泛且容易上手,有幸身处在这个AI应用即将爆发的时代,势必也要跟风参与一下这波撼动世界的技术浪潮。

审核编辑 :李倩

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分