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应用即将爆发的时代,势必也要跟风参与一下这波撼动世界的技术浪潮。
MAX5060, MAX5061应用电路图
关于目标检测系统的应用原理的分析与介绍
入耳蓝牙主动降噪耳机
区块链给人们带来的意义在哪里
裴小明先生分享《Mini LED背光回顾与展望》的主题演讲
四个步骤完成一个Object Detection对象侦测的DEMO操作
视觉检测自动化设备的简单介绍
2011年预测报告显示HTC成为美国最大智能手机厂商
分析大型电容式触摸屏采用无源手写笔的影响
Resolution Games获750万美元投资,可以继续扩大VR/AR游戏的投资组合
直线电机模组喷涂设备在吉他加工中的应用
中国已成全球最大半导体市场,也是美国的针对对象
艾迈斯欧司朗推出全新OSLON® UV 3535系列中功率UV-C LED,实现出色电光转换效率
宽带频率范围内的定向和双向耦合器
一位IT工程师的艰辛成长史
中国的EDA发展历史
斯坦福大学研发一种手持式便携式氨气检测器
恢宏壮观的数据中心是如何节省能耗的
利用AI技术预测未来,人工智能可为出行出谋划策
搅拌机旋转刀头防水检测是如何操作的