OpenVINO™ Notebooks教程-上篇

openlab_4276841a 更新于 2年前

前言


为什么要写这个教程?

作为产品经理,为了确保产品顺利落地及上市,我始终坚持“合适的便是最好的“原则”。这一理念指导我在技术选型乃至合作伙伴选择中少走了很多弯路,清楚的认识自己所处的位置以及所需的内容是加速产品落地、产品上市的先决条件。当下,人工智能作为一种底层技术已经渗透到我们生活、工作的各个角落。算法大牛、框架大厂、处理器厂商也是各显神通,百花齐放,不断推动行业前行。

在信息爆炸的今天,获取资讯已不是难题,如何快速的获取到准确可信的信息反而变得更加重要。在人工智能领域亦是如此,众多算法、众多框架、众多处理器乱花迷人眼,如何选择适合自己产品、满足客户需要的技术,直接影响产品落地及产品上市的时间。针对选型问题,我的标准是学习门槛低、试错成本低、兼容范围广、应用行业多的技术是优选。

在工程项目实施过程以及我们参与的人工智能培训中,我们发现即便在各大厂商开源人工智能工具、释放大量学习资源的今天,入门人工智能、学习人工应用开发依旧是有挑战的事情。“我没有高性能的显卡,能学习人工智能么?”,“数学不是很好,我能学会人工智能么?”“我不是人工智能专业的学生,能入行人工智能开发?”“看不懂机器学习、深度学习的公式,能开发人工智能应用么?”。针对以上的疑问,答案都是肯定的,能!

希望通过这个教程可以让更多的人了解到,当下我们学习人工智能尤其是进行人工智能应用开发的门槛已经越来越低,不需要高性能GPU、不需要开发板、不需要太多的数学基础、只要一台带有CPU的电脑,我们就可以学习人工智能应用开发。

图1 AI算法工程师 vs AI应用工程师

本教程将以OpenVINO™ 工具包、Jupyter Notebook工具以及OpenVINO™ Notebooks工程为基础,依照构建环境、工具学习、案例学习、实战部署的顺序引导初学者完成从0到1学习人工智能的全过程,希望众多对人工智能感兴趣的开发者,先把AI技术用起来,用到自己的行业中,在应用的过程中,不断加深对AI技术的理解。

本书的适用对象

· 打算学习并入门AI技术的大中专、高职以及本科学生。

· 希望将人工智能技术应用到传统行业的工程技术人员。

如何使用教程?

Just Do It

动起来,练起来。先完成实训、达成实用的目标,再根据自己的兴趣点,不断补充理论知识,不断深入学习人工智能技术。

1. 深入了解Jupyter Notebooks工程


1.1 关于OpenVINO™ 工具包与Jupyter Notebook


OpenVINO™ 工具包是加速神经网络推理、加速人工智能产品落地的神器,也是学习人工智能在机器视觉应用的好助手,OpenVINO™ 工具包案例丰富、贴近应用,产业生态完善,既是工具也是开发指导思想,尤其对于初学者非常友好,能够很好的助力人工智能应用学习及产品开发。

Jupyter Notebooks是计算科学领域常用的数据分析工具,具备优秀的交互性及易用性,在数据分析过程中,Jupyter Notebooks可实现有效沟通,重现整个分析过程,并将说明文字、代码、图表、公式、结论都整合在一个文档中,不仅能够在文档里实现代码执行,而且可用通过网页进行分享。而这个工具也可以用于产品开发,完成从需求分析-功能定义-原型设计-功能开发-功能验证的整个流程。

作为产品开发者在技术选型中会优先关注工具及技术的易用性、功能性、成熟度、可扩展性、可维护性以及生态环境,而OpenVINO™ 与Jupyter Notebooks这两个工具套件几乎满足了以上所有要求。二者组合既能助力从业者学习又能加快产品落地,天作之合。

1.2 安装操作系统


OpenVINO™ Notebooks支持多种操作系统以及云环境,已验证过的系统有Windows10、Ubuntu、macOS、Red Hat、Cent OS、 Azure ML以及Docker,无论本地搭建还是云端部署,官方皆提供了详细的指导文档。甚至不需要安装任何文件在云端即可体验笔记的功能。接下来我们一起学习如何在本地,以Ubuntu20.04 LTS系统为例,搭建OpenVINO Notebooks 学习环境以及利用OpenVINO™ 构建自己的人工智能应用产品。

尽管安装操作系统本身并非是本章节的重点内容,但考虑到工程实训需要,笔者将采用概要及图片的方式,快速展示操作系统安装过程,以便于有需要的读者参考使用。在主机上安装操作系统并不困难,仅需要三步便可完整,依次为第一步下载系统镜像;第二步,烧写镜像到U盘;第三步使用U盘将操作系统安装到主机。接下来我们逐一进行介绍。

笔者使用的主机硬件配置如下:

主机:Intel NUC 11 Pro Kit

CPU:Intel Core i5-1135G7 Max4.2GHz

内存:DDR4 2666 8GB

存储:M.2 NVME 256GB

操作系统:Ubuntu 20.04 LTS

主要工具:OpenVINO 2021.4 LTS、python3.8、git

配件:16GB U盘

1.2.1 下载Ubuntu镜像

我们到Ubuntu的官方网站https://cn.ubuntu.com/download/desktop

下载镜像。

图1-1 Ubuntu系统下载站点

下载完成后,我们就有了一个iso的镜像文件。

图1-2 系统镜像文件


1.2.2 制作USB系统启动盘

可以制作USB系统启动盘的工具很多,我们使用开源工具rufus进行烧写。参考图1-2,先选择U盘设备,然后在引导类型选择我们下载的系统镜像,其他设置可以默认;最后点击开始,等待几分钟后我们就有了一个Ubuntu 20.04系统安装盘。

图1-3 rufus工具界面

1.2.3 安装Ubuntu操作系统

我们设定的前提是在将Ubuntu系统直接安装的硬盘上,独占磁盘,没有双系统。这也是工程应用中普遍的做法。

将我们做好的启动盘插入电脑,启动电脑并选择进入启动界面,选择U盘启动,我们可以进入到Ubuntu安装流程,不同电脑U盘启动的方式不同,请参考官方提供的说明进行操作。由于安装系统并非本教程的重点,在此展示主要流程会跳过非关键步骤。

1) 进入安装界面

图1-4 Ubuntu系统安装界面

2) 选择语言及键盘布局

图1-5 选择语言及键盘布局

3) 选择系统组件


图1-6 选择系统内容

4) 选择系统安装类型

图1-7 选择安装磁盘

对于全磁盘安装,请选择清楚整个磁盘并安装Ubuntu

5) 设置时区

图1-8 选择时区



6) 设定用户名密码

如自用可设定自动登录,每次开机不需要输入密码直接进入系统

图1-9 设定用户名密码

7) 等待安装完成

图1-10 安装完成

8) 进入系统

图1-11 选择系统内容

1.3 构建OpenVINO™ Notebooks环境


经过1.2章节准备,我们已经在电脑上成功安装并运行了Ubuntu20.04, 在正式开始前,我们先安装python venv及git工具,这是我们构建环境所必要的工具包。打开终端,输入命令:

sudo apt-get update
sudo apt-get install python3-venv python3-pip git


我们已经做好准备,接下来我们依旧用三步来完成OpenVINO™ Notebooks学习开发环境的构建。第一步,创建Python虚拟环境;第二步,换取工程源码;第三步,安装依赖软件。我们一步一步详解操作。

1.3.1 创建Python虚拟环境


1) 使用python venv为笔记创建独立虚拟环境并激活环境

venv模块是python的一个软件包管理工具,创建并激活虚拟环境后所安装的所有软件包仅对当前环境起作用而不会影响系统全局或创建的其他虚拟环境。按照如下指导可以完成Python虚拟环境的创建及激活。

打开终端并输入以下命令:

python3 -m venv openvino_env

图1-12 创建Python虚拟环境

命令成功执行后,将在用户家目录创建openvino_env目录,此目录包含python虚拟环境所用到的文件。

图1-13 openvino env环境

2) 激活虚拟环境

source openvino_env/bin/activate

图1-14 创建Python虚拟环境

环境激活后,我们可以看到“openvino_env”出现在命令提示符前,与之前的命令提示符有明显的区别,此处表示我们已处于虚拟环境中,如图1-2所示。我们在此环境下安装的python包仅对当前环境起作用,而不会影响全局设置。在日常开发中,我们可以使用python venv工具创建多个虚拟环境灵活管理自己的开发环境。

若要退出虚拟环境,则执行命令:

deactivate

至此,我们成功完成了虚拟环境创建。下一步,获取工程代码。

1.3.2 获取工程源码


git clone http://github.com/openvinotoolkit/openvino_notebooks.git

如果遇到网络不畅,可使用码云的镜像地址进行下载

git clone https://gitee.com/openvinotoolkit-prc/openvino_notebooks.git

图1-15 使用git获取工程源码

代码获取成功后,我们将得到openvino_notebooks工程,我们用下面的查看下工程源码的内容,以确认工程获取成功。

cd openvino_notebooks && ls -l

图1-16 工程源码结构

1.3.3 安装工程依赖软件


我们在工程文件目录里可以发现requirements.txt文件,该文件是项目依赖软件包的说明文件,通过描述文件我们仅需要一行命令可以完成工程运行所依赖的软件包的安装工作,实现环境安装配置。需要注意,执行此命令时,一定要确保我们创建的openvino_env虚拟环境处于激活状态。

python -m pip install --upgrade pip
pip install -r requirements.txt



图1-17 软件包安装中

由于安装命令是依赖网络将软件包下载至本地环境,网络环境不同所用安装时间不尽相同,若网络顺畅,我们终将顺利迎来安装成功的提示。至此,环境安装成功,我们已经具备了运行OpenVINO™ Notebooks工程的全部环境。

图1-18 软件包安装成功

注:由于网络环境对软件包下载有较大影响,建议在配置安装环境前配置软件源。公网用户可选择阿里云软件源,教育网用户可选择清华软件源。示例环境配置为阿里云源,参考命令如下:

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
#教育网用户推荐清华软件源
pip config set global.index-url

https://pypi.tuna.tsinghua.edu.cn/simple

最后,我们使用ipykernel 来为OpenVINO™ Notebooks创建专属内核,由于Jupyter Notebooks可以支持不同的内核,为了便于区分我们使用的内核环境,我们执行下面的命令为我们的环境设置专属名称,方便在Jupyter笔记中选择使用。

python -m ipykernel install --user --name openvino_env


1.4 运行OpenVINO™ Notebooks工程


1.4.1 工程结构介绍


在正式运行笔记之前,我们先深入了解工程的代码结构及文件用途,便于我们更好的理解、学习源码。


我们通过执行如下命令可以获取notebooks目录的详细信息

ls notebooks -l     


图1-19 软件包安装成功


笔记分为由浅入深,由简单到**分为四个部分。001-004是基础准备篇,目的是让用户快速了解OpenVINO™ 工具包;101-105是模型转换及优化篇,重点介绍如何利用OpenVINO™ 所提供的模型转换器将不同框架如Tensorflow、pytorch、paddlepaddle生成的模型转换并优化为OpenVINO™ 支持的文件,以实现加速推理的目标;201-208为案例展示篇,通过OpenVINO™ 实现单目深度图像推理、超分图像处理、背景移除及变换、动漫风格转换等有趣实用的案例展示。301为模型训练篇,通过两个笔记完成从训练到部署再到训练后优化的完整流程,通过4部分内容的学习,开发者可以完成人工智能开发的入门。


通过学习工程目录结构及笔记主目录文件功能,我们已经了解了整个工程的组成,如前文中提到OpenVINO™ Notebooks工程降低了学习人工智能尤其是开发人工智能应用的门槛,我们能够在实践中历练开发人工智能应用的技能,相信大家已经迫不及待的大展身手了。

1.4.2 启动笔记


启动笔记前要确保我们创建的openvino_env虚拟环境处于激活状态,使用下面的命令启动工程。

jupyter-lab notebooks

图1-20 软件包安装成功

命令执行后,会在系统默认的浏览器中进入jupyter notebook的运行环境,显示所有笔记。

图1-21 软件包安装成功

如果是全新开启的终端,我们需要输入多条命令来启动笔记。

source $HOME/openvino_env/bin/activate
jupyter-lab $HOME/openvino_notebooks/notebooks


Jupyter Notebooks工具默认语言为英文,我们通过下面的命令来安装中文语言包,对于国内开发者会更加友好。

pip install jupyterlab-language-pack-zh-CN

1.5 本章小结


本章从学习人工智能应用开发的角度介绍了OpenVINO™ 工具包、Jupyter Notebooks工具以及OpenVINO™ Notebooks工程。同时我们介绍了如何从零开始一步一步构建OpenVINO™ Notebooks学习、开发环境,根据教程我们可以成功安装、配置并启动学习环境。

从下一章开始,我们会正式进入实战环节,借助Notebooks的优势认识OpenVINO工具套件并学习推理API,并对笔记001-004逐一详解。


【本文转自】英特尔物联网

0个评论