作為產(chǎn)品經(jīng)理,為了確保產(chǎn)品順利落地及上市,我始終堅(jiān)持“合適的便是最好的“原則”。這一理念指導(dǎo)我在技術(shù)選型乃至合作伙伴選擇中少走了很多彎路,清楚的認(rèn)識自己所處的位置以及所需的內(nèi)容是加速產(chǎn)品落地、產(chǎn)品上市的先決條件。當(dāng)下,人工智能作為一種底層技術(shù)已經(jīng)滲透到我們生活、工作的各個(gè)角落。算法大牛、框架大廠、處理器廠商也是各顯神通,百花齊放,不斷推動行業(yè)前行。
在信息爆炸的今天,獲取資訊已不是難題,如何快速的獲取到準(zhǔn)確可信的信息反而變得更加重要。在人工智能領(lǐng)域亦是如此,眾多算法、眾多框架、眾多處理器亂花迷人眼,如何選擇適合自己產(chǎn)品、滿足客戶需要的技術(shù),直接影響產(chǎn)品落地及產(chǎn)品上市的時(shí)間。針對選型問題,我的標(biāo)準(zhǔn)是學(xué)習(xí)門檻低、試錯(cuò)成本低、兼容范圍廣、應(yīng)用行業(yè)多的技術(shù)是優(yōu)選。
在工程項(xiàng)目實(shí)施過程以及我們參與的人工智能培訓(xùn)中,我們發(fā)現(xiàn)即便在各大廠商開源人工智能工具、釋放大量學(xué)習(xí)資源的今天,入門人工智能、學(xué)習(xí)人工應(yīng)用開發(fā)依舊是有挑戰(zhàn)的事情。“我沒有高性能的顯卡,能學(xué)習(xí)人工智能么?”,“數(shù)學(xué)不是很好,我能學(xué)會人工智能么?”“我不是人工智能專業(yè)的學(xué)生,能入行人工智能開發(fā)?”“看不懂機(jī)器學(xué)習(xí)、深度學(xué)習(xí)的公式,能開發(fā)人工智能應(yīng)用么?”。針對以上的疑問,答案都是肯定的,能!
希望通過這個(gè)教程可以讓更多的人了解到,當(dāng)下我們學(xué)習(xí)人工智能尤其是進(jìn)行人工智能應(yīng)用開發(fā)的門檻已經(jīng)越來越低,不需要高性能GPU、不需要開發(fā)板、不需要太多的數(shù)學(xué)基礎(chǔ)、只要一臺帶有CPU的電腦,我們就可以學(xué)習(xí)人工智能應(yīng)用開發(fā)。
本教程將以O(shè)penVINO 工具包、Jupyter Notebook工具以及OpenVINO Notebooks工程為基礎(chǔ),依照構(gòu)建環(huán)境、工具學(xué)習(xí)、案例學(xué)習(xí)、實(shí)戰(zhàn)部署的順序引導(dǎo)初學(xué)者完成從0到1學(xué)習(xí)人工智能的全過程,希望眾多對人工智能感興趣的開發(fā)者,先把AI技術(shù)用起來,用到自己的行業(yè)中,在應(yīng)用的過程中,不斷加深對AI技術(shù)的理解。
本書的適用對象
打算學(xué)習(xí)并入門AI技術(shù)的大中專、高職以及本科學(xué)生。
希望將人工智能技術(shù)應(yīng)用到傳統(tǒng)行業(yè)的工程技術(shù)人員。
如何使用教程?
Just Do It
動起來,練起來。先完成實(shí)訓(xùn)、達(dá)成實(shí)用的目標(biāo),再根據(jù)自己的興趣點(diǎn),不斷補(bǔ)充理論知識,不斷深入學(xué)習(xí)人工智能技術(shù)。
1. 深入了解Jupyter Notebooks工程
1.1
關(guān)于OpenVINO 工具包與
Jupyter Notebook
OpenVINO 工具包是加速神經(jīng)網(wǎng)絡(luò)推理、加速人工智能產(chǎn)品落地的神器,也是學(xué)習(xí)人工智能在機(jī)器視覺應(yīng)用的好助手,OpenVINO 工具包案例豐富、貼近應(yīng)用,產(chǎn)業(yè)生態(tài)完善,既是工具也是開發(fā)指導(dǎo)思想,尤其對于初學(xué)者非常友好,能夠很好的助力人工智能應(yīng)用學(xué)習(xí)及產(chǎn)品開發(fā)。
Jupyter Notebooks是計(jì)算科學(xué)領(lǐng)域常用的數(shù)據(jù)分析工具,具備優(yōu)秀的交互性及易用性,在數(shù)據(jù)分析過程中,Jupyter Notebooks可實(shí)現(xiàn)有效溝通,重現(xiàn)整個(gè)分析過程,并將說明文字、代碼、圖表、公式、結(jié)論都整合在一個(gè)文檔中,不僅能夠在文檔里實(shí)現(xiàn)代碼執(zhí)行,而且可用通過網(wǎng)頁進(jìn)行分享。而這個(gè)工具也可以用于產(chǎn)品開發(fā),完成從需求分析-功能定義-原型設(shè)計(jì)-功能開發(fā)-功能驗(yàn)證的整個(gè)流程。
作為產(chǎn)品開發(fā)者在技術(shù)選型中會優(yōu)先關(guān)注工具及技術(shù)的易用性、功能性、成熟度、可擴(kuò)展性、可維護(hù)性以及生態(tài)環(huán)境,而OpenVINO 與Jupyter Notebooks這兩個(gè)工具套件幾乎滿足了以上所有要求。二者組合既能助力從業(yè)者學(xué)習(xí)又能加快產(chǎn)品落地,天作之合。
1.2
OpenVINO Notebooks支持多種操作系統(tǒng)以及云環(huán)境,已驗(yàn)證過的系統(tǒng)有Windows10、Ubuntu、macOS、Red Hat、Cent OS、 Azure ML以及Docker,無論本地搭建還是云端部署,官方皆提供了詳細(xì)的指導(dǎo)文檔。甚至不需要安裝任何文件在云端即可體驗(yàn)筆記的功能。接下來我們一起學(xué)習(xí)如何在本地,以Ubuntu20.04 LTS系統(tǒng)為例,搭建OpenVINO Notebooks 學(xué)習(xí)環(huán)境以及利用OpenVINO 構(gòu)建自己的人工智能應(yīng)用產(chǎn)品。
盡管安裝操作系統(tǒng)本身并非是本章節(jié)的重點(diǎn)內(nèi)容,但考慮到工程實(shí)訓(xùn)需要,筆者將采用概要及圖片的方式,快速展示操作系統(tǒng)安裝過程,以便于有需要的讀者參考使用。在主機(jī)上安裝操作系統(tǒng)并不困難,僅需要三步便可完整,依次為第一步下載系統(tǒng)鏡像;第二步,燒寫鏡像到U盤;第三步使用U盤將操作系統(tǒng)安裝到主機(jī)。接下來我們逐一進(jìn)行介紹。
筆者使用的主機(jī)硬件配置如下:
主機(jī):
Intel NUC 11 Pro Kit
CPU:
Intel Core i5-1135G7 Max4.2GHz
內(nèi)存:
DDR4 2666 8GB
存儲:
M.2 NVME 256GB
操作系統(tǒng):
Ubuntu 20.04 LTS
主要工具:
OpenVINO 2021.4 LTS
python3.8
git
配件:16GB U盤
1.2.1
下載Ubuntu鏡像
我們到Ubuntu的官方網(wǎng)站https://cn.ubuntu.com/download/desktop
下載鏡像。
下載完成后,我們就有了一個(gè)iso的鏡像文件。
1.2.2
制作USB系統(tǒng)啟動盤
可以制作USB系統(tǒng)啟動盤的工具很多,我們使用開源工具rufus進(jìn)行燒寫。參考圖1-2,先選擇U盤設(shè)備,然后在引導(dǎo)類型選擇我們下載的系統(tǒng)鏡像,其他設(shè)置可以默認(rèn);最后點(diǎn)擊開始,等待幾分鐘后我們就有了一個(gè)Ubuntu 20.04系統(tǒng)安裝盤。
1.2.3
安裝Ubuntu操作系統(tǒng)
我們設(shè)定的前提是在將Ubuntu系統(tǒng)直接安裝的硬盤上,獨(dú)占磁盤,沒有雙系統(tǒng)。這也是工程應(yīng)用中普遍的做法。
將我們做好的啟動盤插入電腦,啟動電腦并選擇進(jìn)入啟動界面,選擇U盤啟動,我們可以進(jìn)入到Ubuntu安裝流程,不同電腦U盤啟動的方式不同,請參考官方提供的說明進(jìn)行操作。由于安裝系統(tǒng)并非本教程的重點(diǎn),在此展示主要流程會跳過非關(guān)鍵步驟。
1) 進(jìn)入安裝界面
2) 選擇語言及鍵盤布局
3) 選擇系統(tǒng)組件
4) 選擇系統(tǒng)安裝類型
對于全磁盤安裝,請選擇清楚整個(gè)磁盤并安裝Ubuntu
5) 設(shè)置時(shí)區(qū)
6) 設(shè)定用戶名密碼
如自用可設(shè)定自動登錄,每次開機(jī)不需要輸入密碼直接進(jìn)入系統(tǒng)
7) 等待安裝完成
8) 進(jìn)入系統(tǒng)
1.3
構(gòu)建OpenVINO Notebooks環(huán)境
經(jīng)過1.2章節(jié)準(zhǔn)備,我們已經(jīng)在電腦上成功安裝并運(yùn)行了Ubuntu20.04, 在正式開始前,我們先安裝python venv及git工具,這是我們構(gòu)建環(huán)境所必要的工具包。打開終端,輸入命令:
sudo apt-get update
sudo apt-get install python3-venv python3-pip git
我們已經(jīng)做好準(zhǔn)備,接下來我們依舊用三步來完成OpenVINO Notebooks學(xué)習(xí)開發(fā)環(huán)境的構(gòu)建。第一步,創(chuàng)建Python虛擬環(huán)境;第二步,換取工程源碼;第三步,安裝依賴軟件。我們一步一步詳解操作。
1.3.1
創(chuàng)建Python虛擬環(huán)境
1) 使用python venv為筆記創(chuàng)建獨(dú)立虛擬環(huán)境并激活環(huán)境
venv模塊是python的一個(gè)軟件包管理工具,創(chuàng)建并激活虛擬環(huán)境后所安裝的所有軟件包僅對當(dāng)前環(huán)境起作用而不會影響系統(tǒng)全局或創(chuàng)建的其他虛擬環(huán)境。按照如下指導(dǎo)可以完成Python虛擬環(huán)境的創(chuàng)建及激活。
打開終端并輸入以下命令:
python3 -m venv openvino_env
命令成功執(zhí)行后,將在用戶家目錄創(chuàng)建openvino_env目錄,此目錄包含python虛擬環(huán)境所用到的文件。
2) 激活虛擬環(huán)境
source openvino_env/bin/activate
環(huán)境激活后,我們可以看到“openvino_env”出現(xiàn)在命令提示符前,與之前的命令提示符有明顯的區(qū)別,此處表示我們已處于虛擬環(huán)境中,如圖1-2所示。我們在此環(huán)境下安裝的python包僅對當(dāng)前環(huán)境起作用,而不會影響全局設(shè)置。在日常開發(fā)中,我們可以使用python venv工具創(chuàng)建多個(gè)虛擬環(huán)境靈活管理自己的開發(fā)環(huán)境。
若要退出虛擬環(huán)境,則執(zhí)行命令:
deactivate
至此,我們成功完成了虛擬環(huán)境創(chuàng)建。下一步,獲取工程代碼。
1.3.2
獲取工程源碼
git clone http://github.com/openvinotoolkit/openvino_notebooks.git
如果遇到網(wǎng)絡(luò)不暢,可使用碼云的鏡像地址進(jìn)行下載
git clone https://gitee.com/openvinotoolkit-prc/openvino_notebooks.git
代碼獲取成功后,我們將得到openvino_notebooks工程,我們用下面的查看下工程源碼的內(nèi)容,以確認(rèn)工程獲取成功。
cd openvino_notebooks && ls -l
1.3.3
安裝工程依賴軟件
我們在工程文件目錄里可以發(fā)現(xiàn)requirements.txt文件,該文件是項(xiàng)目依賴軟件包的說明文件,通過描述文件我們僅需要一行命令可以完成工程運(yùn)行所依賴的軟件包的安裝工作,實(shí)現(xiàn)環(huán)境安裝配置。需要注意,執(zhí)行此命令時(shí),一定要確保我們創(chuàng)建的openvino_env虛擬環(huán)境處于激活狀態(tài)。
python -m pip install --upgrade pip
pip install -r requirements.txt
由于安裝命令是依賴網(wǎng)絡(luò)將軟件包下載至本地環(huán)境,網(wǎng)絡(luò)環(huán)境不同所用安裝時(shí)間不盡相同,若網(wǎng)絡(luò)順暢,我們終將順利迎來安裝成功的提示。至此,環(huán)境安裝成功,我們已經(jīng)具備了運(yùn)行OpenVINO Notebooks工程的全部環(huán)境。
注:由于網(wǎng)絡(luò)環(huán)境對軟件包下載有較大影響,建議在配置安裝環(huán)境前配置軟件源。公網(wǎng)用戶可選擇阿里云軟件源,教育網(wǎng)用戶可選擇清華軟件源。示例環(huán)境配置為阿里云源,參考命令如下:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
#教育網(wǎng)用戶推薦清華軟件源
pip config set global.index-url
https://pypi.tuna.tsinghua.edu.cn/simple
最后,我們使用ipykernel 來為OpenVINO Notebooks創(chuàng)建專屬內(nèi)核,由于Jupyter Notebooks可以支持不同的內(nèi)核,為了便于區(qū)分我們使用的內(nèi)核環(huán)境,我們執(zhí)行下面的命令為我們的環(huán)境設(shè)置專屬名稱,方便在Jupyter筆記中選擇使用。
python -m ipykernel install --user --name openvino_env
1.4
運(yùn)行OpenVINO Notebooks工程
1.4.1
工程結(jié)構(gòu)介紹
在正式運(yùn)行筆記之前,我們先深入了解工程的代碼結(jié)構(gòu)及文件用途,便于我們更好的理解、學(xué)習(xí)源碼。
名稱屬性描述
check_install.py文件工程環(huán)境驗(yàn)證腳本,檢測環(huán)境是否滿足運(yùn)行需要
CONTRIBUTING.md文件如何參與到工程開發(fā)的說明文件
Dockerfile文件構(gòu)建docker的鏡像的文件,包含命令及說明
LICENSE文件版權(quán)說明文件
notebooks文件Jupyter Notebooks文件夾工程筆記的主目錄
README_cn.md文件工程說明文件中文版
README.md文件工程說明文件英文版
requirement.txt文件工程所依賴的軟件包的描述文件
我們通過執(zhí)行如下命令可以獲取notebooks目錄的詳細(xì)信息
ls notebooks -l
筆記分為由淺入深,由簡單到復(fù)制分為四個(gè)部分。001-004是基礎(chǔ)準(zhǔn)備篇,目的是讓用戶快速了解OpenVINO 工具包;101-105是模型轉(zhuǎn)換及優(yōu)化篇,重點(diǎn)介紹如何利用OpenVINO 所提供的模型轉(zhuǎn)換器將不同框架如Tensorflow、pytorch、paddlepaddle生成的模型轉(zhuǎn)換并優(yōu)化為OpenVINO 支持的文件,以實(shí)現(xiàn)加速推理的目標(biāo);201-208為案例展示篇,通過OpenVINO 實(shí)現(xiàn)單目深度圖像推理、超分圖像處理、背景移除及變換、動漫風(fēng)格轉(zhuǎn)換等有趣實(shí)用的案例展示。301為模型訓(xùn)練篇,通過兩個(gè)筆記完成從訓(xùn)練到部署再到訓(xùn)練后優(yōu)化的完整流程,通過4部分內(nèi)容的學(xué)習(xí),開發(fā)者可以完成人工智能開發(fā)的入門。
名稱描述
001-hello world使用OpenVINO 調(diào)用Mobilenet V3模型對圖片進(jìn)行分類推理
002-openvino API如何參與到工程開發(fā)的OpenVINO 實(shí)現(xiàn)推理的python API函數(shù),例如如何加載IR模型,ONNX模型,如何獲取模型的輸入、輸出信息,如何使用模型進(jìn)行推理,以及部分為實(shí)現(xiàn)推理所做的預(yù)處理功能函數(shù)說明文件
003-hello-segmentation使用OpenVINO 實(shí)現(xiàn)圖像語義分割
004-hello-detection使用OpenVINO 實(shí)現(xiàn)文字檢測
notebooks101-tensorflow-to-openvinoJupyter Notebooks文件夾工程筆記的主目錄將tensorflow模型轉(zhuǎn)換為IR格式
102-pytorch-onnx-to-openvino工程說明文件中文版將pytorch模型轉(zhuǎn)換為IR格式
103-paddle-onnx-to-openvino工程說明文件英文版將paddlepaddle模型轉(zhuǎn)換IR格式
104-model-tools模型下載、轉(zhuǎn)換及性能評估工具介紹
105-language-quantize-bert優(yōu)化及量化處理預(yù)訓(xùn)練的bert模型
201-vision-monodepth對圖像及視頻的單目深度估計(jì)
202-vision-superresolution-image超分圖像處理
205-vision-background-removal圖像背景移除及替換
206-vision-paddlegan-anime利用paddleGAN實(shí)現(xiàn)圖片動漫風(fēng)格變換
207-vision-paddlegan-superresolution利用paddleGAN實(shí)現(xiàn)小圖像放大
208-optical-character-recognition使用文本識別對圖像上的文本進(jìn)行標(biāo)注
301-tensorflow-training-openvino利用tensorflow及OpenVINO 實(shí)現(xiàn)從訓(xùn)練到落地部署再到訓(xùn)練后優(yōu)化的完整流程
utils工程用到的功能函數(shù)庫
通過學(xué)習(xí)工程目錄結(jié)構(gòu)及筆記主目錄文件功能,我們已經(jīng)了解了整個(gè)工程的組成,如前文中提到OpenVINO Notebooks工程降低了學(xué)習(xí)人工智能尤其是開發(fā)人工智能應(yīng)用的門檻,我們能夠在實(shí)踐中歷練開發(fā)人工智能應(yīng)用的技能,相信大家已經(jīng)迫不及待的大展身手了。
1.4.2
啟動筆記
啟動筆記前要確保我們創(chuàng)建的openvino_env虛擬環(huán)境處于激活狀態(tài),使用下面的命令啟動工程。
jupyter-lab notebooks
命令執(zhí)行后,會在系統(tǒng)默認(rèn)的瀏覽器中進(jìn)入jupyter notebook的運(yùn)行環(huán)境,顯示所有筆記。
如果是全新開啟的終端,我們需要輸入多條命令來啟動筆記。
source $HOME/openvino_env/bin/activate
jupyter-lab $HOME/openvino_notebooks/notebooks
Jupyter Notebooks工具默認(rèn)語言為英文,我們通過下面的命令來安裝中文語言包,對于國內(nèi)開發(fā)者會更加友好。
pip install jupyterlab-language-pack-zh-CN
1.5
本章小結(jié)
本章從學(xué)習(xí)人工智能應(yīng)用開發(fā)的角度介紹了OpenVINO 工具包、Jupyter Notebooks工具以及OpenVINO Notebooks工程。同時(shí)我們介紹了如何從零開始一步一步構(gòu)建OpenVINO Notebooks學(xué)習(xí)、開發(fā)環(huán)境,根據(jù)教程我們可以成功安裝、配置并啟動學(xué)習(xí)環(huán)境。
從下一章開始,我們會正式進(jìn)入實(shí)戰(zhàn)環(huán)節(jié),借助Notebooks的優(yōu)勢認(rèn)識OpenVINO工具套件并學(xué)習(xí)推理API,并對筆記001-004逐一詳解。
責(zé)任編輯:haq
-
AI
+關(guān)注
關(guān)注
87文章
31493瀏覽量
270096 -
人工智能
+關(guān)注
關(guān)注
1796文章
47643瀏覽量
239905
原文標(biāo)題:OpenVINO? Notebooks教程-上篇
文章出處:【微信號:英特爾物聯(lián)網(wǎng),微信公眾號:英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論