电子说
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应用即将爆发的时代,势必也要跟风参与一下这波撼动世界的技术浪潮。
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !