OpenVINO強(qiáng)大之處在于整合了當(dāng)前AI經(jīng)常應(yīng)用的情境,像是圖片或是影像的對(duì)象辨識(shí)、語(yǔ)音識(shí)別、自然語(yǔ)言與數(shù)據(jù)推薦系統(tǒng)等等,而透過(guò)這個(gè)套件的Open Model Zoo可以導(dǎo)入現(xiàn)有多個(gè)常用框架的模型,像是Caffe、TensorFlow、MXNet、Kaldi與ONNX,無(wú)疑是個(gè)現(xiàn)成的參考數(shù)據(jù)庫(kù)。
OpenVINO支持現(xiàn)有多個(gè)常用框架的模型(Source:Intel)
Intel OpenVINO 工具套件包含的項(xiàng)目實(shí)在太多,要做到基礎(chǔ)入門我想非常快。但如果要真的上手到導(dǎo)入既有的商業(yè)項(xiàng)目中,我想還是需要花不少時(shí)間。學(xué)習(xí)Intel OpenVINO 工具集我想是非常值得去投資的,后續(xù)對(duì)于導(dǎo)入AI應(yīng)用到升級(jí)與維護(hù)項(xiàng)目,會(huì)非常的容易。
以下的介紹將會(huì)以短篇的模式進(jìn)行,我使用以下的環(huán)境去進(jìn)行學(xué)習(xí)與測(cè)試:
1.硬件:
?Rock X Intel(R) Atom(TM) x5-Z8350 1.4GHz CPU. 4Gb RAM 與 128Gb 的SD卡環(huán)境
?EFI單板計(jì)算機(jī),使用i7-1185G7E 2.8GHz 11代的Intel CPU, 16Gb RAM 與 128Gb SSD.
?2019年Mac book Pro 15吋 i7 2.6GHz CPU, 使用Parallels 設(shè)定兩個(gè)ubuntu VM. 分別設(shè)定 2Cores與4 Cores的環(huán)境
2. O/S:分別使用ubuntu server20.04 與 ubuntu desktop 20.04 兩個(gè)版本進(jìn)行測(cè)試。
3. OpenVINO工具包版本: 2021.4
個(gè)人接觸與學(xué)習(xí)使用OpenVINO,目地都在于如何將這個(gè)工具應(yīng)用在未來(lái)公司的項(xiàng)目上,而選用Ubuntu Linux的操作系統(tǒng),一方面是考慮Open Source 降低入門需要的投資成本,再者也是因?yàn)楣緝?nèi)部整體的建置維護(hù)環(huán)境。如果有需要以Windows操作系統(tǒng)為建置環(huán)境,可以再多參考官方的文件。
我自己個(gè)人打算在OpenVINO完成三大目標(biāo):
1.應(yīng)用DL Workbench可以選用現(xiàn)有或是自制的模型,透過(guò)GUI接口,輕松完成模型的分析與部署工作。
2.使用Nodejs的語(yǔ)言去使用OpenVINO提供的各種資源進(jìn)行開(kāi)發(fā)。
3.將V7RC上的道路辨識(shí)功能,透過(guò)OpenVINO的環(huán)境,使用Nodejs語(yǔ)言去重現(xiàn)功能。
首部曲– 從DL Workbench開(kāi)始談起
在2018年我開(kāi)始接觸AI,是基于想在公司的產(chǎn)品V7RC中導(dǎo)入AI的元素,當(dāng)時(shí)我希望可以透過(guò)遙控車上面的鏡頭傳回到手機(jī)上,透過(guò)手機(jī)上的運(yùn)算資源進(jìn)行演算,辨識(shí)影像中的物體。最早透過(guò)同事的協(xié)助找到Framework,使用Python進(jìn)行模型訓(xùn)練,最后產(chǎn)生出的結(jié)果去實(shí)際應(yīng)用,效果很差,而且還不知道如何整合到iOS與Android的APP。
后來(lái)Google Cloud的AutoML 提供了一個(gè)模型訓(xùn)練很好的環(huán)境,訓(xùn)練好的模型可以直接使用Tensorflow Lite SDK整合到iOS與Android的APP中。這上面有個(gè)非常重要的關(guān)鍵在于一個(gè)好的GUI,讓使用者很容易地上手,去進(jìn)行模型訓(xùn)練,最后導(dǎo)出到自己的應(yīng)用上。
后來(lái)像是Teachable Machine 也提供很好的GUI給使用者,對(duì)于入門的使用者來(lái)說(shuō),也的確夠用,但截至目前,我們的工程師還無(wú)法將訓(xùn)練成果部署到APP上。
DL Workbench最棒的地方在于可以從多種不同常用的Framework選擇自己要匯入的模型,或是匯入自己的模型,進(jìn)行訓(xùn)練,并且可以選擇使用哪個(gè)裝置進(jìn)行訓(xùn)練與分析。Dataset的管理也非常容易,很容易讓人著迷,愿意多花點(diǎn)時(shí)間去嘗試那些已經(jīng)訓(xùn)練好的模型進(jìn)行比較。
/如果要了解如何安裝,可以參考之前的文章。/
而我想分享的是在實(shí)際安裝過(guò)程中遇到的問(wèn)題排解與疑問(wèn),以下使用自問(wèn)自答方式來(lái)進(jìn)行:
1.DL Workbench是個(gè)Application,所以需要Desktop執(zhí)行嗎?
答案是不需要。DL Workbench是一個(gè)Web Server,安裝好了之后可以透過(guò)其他的計(jì)算機(jī)以訪問(wèn)網(wǎng)站的方式來(lái)操作,就跟AutoML或是Teachable Machine一樣。多人操作應(yīng)該也沒(méi)有問(wèn)題。我喜歡裝在Ubuntu Server上,減少像是Desktop版本還要跑個(gè)X Window浪費(fèi)效能。
2.安裝DL Workbench需不需要在機(jī)器上面安裝OpenVINO套件?
答案是不需要。原本我的理解是一個(gè)步驟一個(gè)步驟去安裝OpenVINO所有的工具套件,Workbench放在最后面,當(dāng)然就要先裝好套件后才可以安裝Workbench。但其實(shí)Workbench使用Docker Container安裝,是不需要先下載與安裝工具包。為了方便各位進(jìn)行測(cè)試,我也提供我的安裝方式作為參考:
Step 1. Docker執(zhí)行環(huán)境安裝:
確認(rèn)與安裝docker環(huán)境:如果不確定Docker的版本,可以重新參考官方文件,
https://docs.docker.com/engine/install/ubuntu/
以下是我安裝流程:
A.移除舊版的docker套件:
~$ sudo apt-get remove docker docker-enginedocker.io containerd runc
B.安裝docker需要使用到的套件:
~$ sudoapt-get update
~$ sudoapt-get install
apt-transport-https
ca-certificates
curl
gnupg
lsb-release
C.設(shè)定apt安裝所需要的套件庫(kù)與環(huán)境(以x86環(huán)境為例):
~$ echo
"deb [arch=amd64signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee/etc/apt/sources.list.d/docker.list > /dev/nul
D.實(shí)際進(jìn)行安裝:
~$ sudoapt-get update
~$ sudoapt-get install docker-ce docker-ce-cli containerd.io
E.安裝后,需要將ubuntu的用戶加入docker的群組:
~$ sudo usermod -aG docker ${USER}
F.重新注銷用戶,再次登入,才會(huì)將新加入的docker群組生效。或是重新啟動(dòng)也可以。
Step 2. 安裝GPU Driver:
建議可以再次安裝Intel GPU的Driver,使用DFI 的單板計(jì)算機(jī)曾經(jīng)遇到過(guò)無(wú)法正確安裝GPU Driver,導(dǎo)致Workbench無(wú)法使用GPU,僅能使用CPU進(jìn)行訓(xùn)練。安裝方次可以參考以下的網(wǎng)址:
https://docs.openvinotoolkit.org/latest/openvino_docs_install_guides_installing_openvino_linux.html#additional-GPU-steps
https://dgpu-docs.intel.com/installation-guides/ubuntu/ubuntu-focal.html
參考安裝流程如下:
A.安裝必要的套件,并增加apt套件庫(kù)的信息:
~$ sudoapt-get install -y gpg-agent wget
~$ wget-qO - https://repositories.intel.com/graphics/intel-graphics.key | sudo apt-keyadd -
~$ sudoapt-add-repository
'deb[arch=amd64] https://repositories.intel.com/graphics/ubuntu focal main'
B.安裝:
~$ sudoapt-get update
~$ sudoapt-get install
intel-opencl-icd
intel-level-zero-gpu level-zero
intel-media-va-driver-non-freelibmfx1
C.選擇性安裝開(kāi)發(fā)工具包,如果要執(zhí)行某些API,還是需要安裝才會(huì)正常運(yùn)作:
~$ sudoapt-get install
libigc-dev
intel-igc-cm
libigdfcl-dev
libigfxcmrt-dev
level-zero-dev
D. 設(shè)定權(quán)限:
可以先檢查用戶是否在render的群組,使用以下命令來(lái)檢查,列出目前這個(gè)用戶所擁有的群組:
~$ groups ${USER}
如果這個(gè)用戶有沒(méi)有加入render與video的群組,使用以下方法加入:
~$ sudogpasswd -a ${USER} render
~$ sudogpasswd -a ${USER} video
~$newgrp render
~$newgrp video
Step 3. 安裝DL Workbench DockerContainer:
有實(shí)際用過(guò)Docker Container的朋友應(yīng)該知道,如果沒(méi)有設(shè)定將數(shù)據(jù)儲(chǔ)存在外部空間,只要每次重新開(kāi)啟Container,所有數(shù)據(jù)將會(huì)清空,還原成一開(kāi)始的“干凈”狀態(tài)。因此除了安裝之外,還要確保相關(guān)設(shè)定與項(xiàng)目都有儲(chǔ)存到Server的儲(chǔ)存裝置上,而不是在Container里面。
參考官網(wǎng)的文件進(jìn)行安裝:
https://docs.openvinotoolkit.org/latest/workbench_docs_Workbench_DG_Persist_Database.html
A. 使用pip安裝openvino-workbench套件,這不是下載與安裝WorkbenchContainer,可以當(dāng)作是方便啟動(dòng)的script,簡(jiǎn)化后面的流程:
~$ python3 -m pip install -Uopenvino-workbench
B.建立一個(gè)可以放設(shè)定與項(xiàng)目的目錄,例如放在自己目錄下的openvino-workbench目錄:
~$ mkdir -m 777 ~/openvino-workbench
C.執(zhí)行以下命令啟動(dòng)Workbench:
~$ openvino-workbench --imageopenvino/workbench:2021.4 --assets-directory ~/openvino-workbench --enable-gpu--container-name openvino-workbench
這個(gè)命令,我們將Container名稱命名為 openvino-workbench,并且指定~/openvino-workbench作為項(xiàng)目與設(shè)定儲(chǔ)存的目錄,另外也啟動(dòng)GPU。如果發(fā)生錯(cuò)誤,像是找不到/dev/rencer/*的目錄等等,就是系統(tǒng)沒(méi)有正確的設(shè)定GPU,可以嘗試先吧–enable-gpu拿掉試試看。
完成后,就可以在本機(jī)打開(kāi)Browser連結(jié)上這個(gè)網(wǎng)站,例如Workbench主機(jī)的IP是10.211.55.17,那么就在Browser上面鍵入:http:// 10.211.55.17:5665
3. DL Workbench最吸引我的地方在哪?
看到DL Workbench的接口上,Environment的右邊有個(gè)Add Remote Target按鈕。沒(méi)錯(cuò),可以將多臺(tái)機(jī)器的資源統(tǒng)一在這個(gè)見(jiàn)面上管理,這樣可以將項(xiàng)目切換到不同機(jī)器上進(jìn)行訓(xùn)練與分析。
經(jīng)過(guò)一番努力,測(cè)試成功了,真的可以將項(xiàng)目指派到其他機(jī)器上面去進(jìn)行訓(xùn)練,但可惜的是只能在本機(jī)進(jìn)行驗(yàn)證與測(cè)試,我想未來(lái)的版本應(yīng)該會(huì)解決這個(gè)問(wèn)題。
以下提供安裝方式,以及參考網(wǎng)址。
https://docs.openvinotoolkit.org/latest/workbench_docs_Workbench_DG_Setup_Remote_Target.html
Step 1. 在遠(yuǎn)程主機(jī)進(jìn)行設(shè)定,下載并且安裝必要套件:
A.安裝套件:
~$ sudoapt-get update
~$ sudoapt-get install -y --no-install-recommends
openssh-server
ssh
python3
ython3-distutils
python3-apt
python3-dev
python3-pip
gcc
libgtk-3-0
ffmpeg
~$python3 -m pip install --upgrade pip
B. 更新python3-virtualenvwrapper套件。就個(gè)人的經(jīng)驗(yàn)上我分別在Atom與VM的環(huán)境上嘗試安裝時(shí),會(huì)遇到個(gè)套件出現(xiàn)問(wèn)題,導(dǎo)致最后的安裝無(wú)法完成,避免麻煩在一開(kāi)始就先完成更新套件。以下是更新方式:
~$ sudo apt removepython3-virtualenvwrapper
~$ sudo apt autoremove
~$ sudo apt purge python3-virtualenv
~$ /usr/bin/python3 -m pip install--force-reinstall virtualenvwrapper
Step 2. 設(shè)定ssh遠(yuǎn)程登錄,并取得privatekey
回到安裝DL Workbench的機(jī)器上,我們需要可以使用ssh直接登入到遠(yuǎn)程主機(jī)的相關(guān)權(quán)限。設(shè)定的過(guò)程中我們將會(huì)設(shè)定一個(gè)private key, 這個(gè)檔案將要使用在Workbench的設(shè)定上。以下是相關(guān)執(zhí)行步驟(如果對(duì)于ssh非常熟悉的朋友,可以簡(jiǎn)化這個(gè)流程,直接取得ssh登入的private key):
A. 使用ssh-keygen 產(chǎn)生ssh的Key:
~$ ssh-keygen
B.將剛剛產(chǎn)生的public key 復(fù)制到遠(yuǎn)程的主機(jī),可以使用ssh-copy-id命令,使用方法是:
~$ ssh-copy-id louis@192.168.1.100
# 請(qǐng)將louis改成遠(yuǎn)程可以登入賬號(hào),192.68.1.100改成遠(yuǎn)程的主機(jī)
過(guò)程中會(huì)需要填寫登入的密碼,請(qǐng)正確的進(jìn)行填寫。
C.驗(yàn)證是否正確,使用ssh登入遠(yuǎn)程主機(jī),將不再需要填寫密碼,可以直接登入。
~$ ssh louis@192.168.1.100
如果可以正常登入,就表示完成這個(gè)步驟
Step 3. 確認(rèn)遠(yuǎn)程主機(jī)的用戶擁有根權(quán)限(SudoPrivileges),不需要輸入密碼就可以執(zhí)行sudo的命令。
A.首先簡(jiǎn)單的確認(rèn)是否有sudo的權(quán)限以及是否不需要輸入密碼就可以執(zhí)行sudo,執(zhí)行以下指令:
~$ sudo ls -la /
B.如果可以順利列出根目錄下所有的檔案與目錄,表示這個(gè)用戶已經(jīng)擁有根權(quán)限,并且不需要密碼就可以執(zhí)行。如果顯示沒(méi)有sudo權(quán)限,則表示這個(gè)用戶沒(méi)有sudo使用權(quán),請(qǐng)使用以下命令,將這個(gè)用戶加入到sudo群組中:
~$ su
~$ usermod -a -G sudo USERNAME
~$ exit
C. 加入后,請(qǐng)注銷再重新登入,并且再次使用sudols -la / 確認(rèn)目前用戶使用已經(jīng)擁有sudo權(quán)限。
D. 如果用戶已經(jīng)擁有sudo權(quán)限,但需要填寫密碼,則使用visudo,將這個(gè)用戶加入到/etc/sudoers.tmp檔案中:
~$ sudo visudo
此時(shí)會(huì)開(kāi)啟編輯畫面,并且顯示檔案內(nèi)容,接著將光標(biāo)移到檔案的最后,加入以下權(quán)限:
louis ALL=(ALL) NOPASSWD: ALL #請(qǐng)將louis改成這個(gè)賬戶的名稱
接著存擋離開(kāi),再重新測(cè)試這個(gè)用戶的sudo命令:
~$ sudo ls -la /
此時(shí)應(yīng)該不需要密碼就可以執(zhí)行了。
*特別注意:使用 visudo 編輯并存擋,務(wù)必確認(rèn)正確填寫,否則有可能導(dǎo)致系統(tǒng)嚴(yán)重的問(wèn)題發(fā)生。
Step 4:
進(jìn)入 DL Workbench 設(shè)定目前準(zhǔn)備進(jìn)入到DL Workbench設(shè)定的步驟,在此之前,必須要先下載id_rsa的私鑰到本機(jī)來(lái),方便等一下再接口上需要上傳這個(gè)檔案。再次使用ssh登入到安裝Workbench的主機(jī)上,可以使用vi或是其他編輯器,打開(kāi)私鑰檔案,使用以下命令開(kāi)啟:
~$ vi ~/.ssh/id_rsa
將會(huì)看到以上的編輯畫面,可以使用圈選復(fù)制,然后在本機(jī)新增加一個(gè)文本文件,然后貼上剛剛復(fù)制的內(nèi)容,儲(chǔ)存成一個(gè)文本文件,例如:id_rsa_192.168.0.1.key。
接著,在本機(jī)打開(kāi)Browser,進(jìn)入Workbench的網(wǎng)站,然后按下Create的按鈕,產(chǎn)生一個(gè)新的項(xiàng)目:
在Create Project畫面上,可以看到Environment的功能,有個(gè)Add Remote Target的按鈕,按下后開(kāi)始新增新的遠(yuǎn)程主機(jī):
這時(shí)可以看到Target Machine的列表,第一個(gè)顯示的就是Workbench內(nèi)建預(yù)設(shè)的環(huán)境。按下『Add』按鈕后,進(jìn)行新增機(jī)器的畫面:
在Add Remote Target窗體中,請(qǐng)?zhí)钊胍韵滦畔ⅲ?/p>
?Hostname (遠(yuǎn)程主機(jī)IP)
?Port (遠(yuǎn)程主機(jī)ssh port, 除非有手動(dòng)變更,預(yù)設(shè)都是22)
?Target Name(自己為這個(gè)遠(yuǎn)程命名)
?User (登入遠(yuǎn)程主機(jī)用的賬號(hào))
?Ssh key (就是一開(kāi)始我們先存下來(lái)的私鑰文本文件)
以上正確填寫后,下方的Save Target將會(huì)從灰色變成深紅色,按下后,就開(kāi)始啟動(dòng)安裝與設(shè)定程序了。
安裝進(jìn)行中的畫面:
安裝中,每個(gè)階段都可以實(shí)時(shí)顯示狀態(tài)以及正在設(shè)定中的項(xiàng)目:
安裝完成后,在Target Machines的列表中會(huì)清楚出現(xiàn)該設(shè)備,如果安裝出現(xiàn)問(wèn)題,也會(huì)出現(xiàn)錯(cuò)誤信息。
安裝中如果出現(xiàn)錯(cuò)誤,也會(huì)出現(xiàn)在下方的信息中:
回到Create Project畫面后,下方的Environment,就可以選擇遠(yuǎn)程的主機(jī)來(lái)進(jìn)行演算了。
實(shí)際簡(jiǎn)單的測(cè)試一下,可以看到遠(yuǎn)程主機(jī)上跑出來(lái)的結(jié)果,項(xiàng)目列表上可以看到第二列,使用我們剛剛新增的遠(yuǎn)程主機(jī)資源進(jìn)行演算的結(jié)果:
4.目前有沒(méi)有什么可以進(jìn)一步厘清的地方?
截至目前無(wú)法正確的設(shè)定遠(yuǎn)程主機(jī)使用GPU或是VPU的資源,算是一種遺憾。我想后續(xù)應(yīng)該是有機(jī)會(huì)可以解決,后續(xù)再做更新。
小結(jié)
如果各位希望打造一群工作的主機(jī),可以進(jìn)行選擇模型、設(shè)定數(shù)據(jù)集、建立基準(zhǔn)到分析與部署,Workbench正好提供了分布式Environment的安裝方式,設(shè)定起來(lái)不難。后續(xù)在商業(yè)上思考可以如何客戶運(yùn)用OpenVINO打造一個(gè)私有的AI運(yùn)算環(huán)境應(yīng)該不是問(wèn)題。
-
AI
+關(guān)注
關(guān)注
87文章
33200瀏覽量
273456 -
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3874瀏覽量
65423 -
模型
+關(guān)注
關(guān)注
1文章
3444瀏覽量
49699 -
Open
+關(guān)注
關(guān)注
0文章
21瀏覽量
11161
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
在Ubuntu上搭建OpenVINO C++程序開(kāi)發(fā)環(huán)境

使用PyQt5自動(dòng)初始化OpenVINO?環(huán)境出現(xiàn)報(bào)錯(cuò)怎么解決?
服務(wù)器群打造“娛樂(lè)云”
服務(wù)器群打造“娛樂(lè)云”
LabVIEW類 的私有數(shù)據(jù)問(wèn)題?
如何運(yùn)用居家環(huán)境里既有的線路來(lái)連結(jié)IPTV?
python私有變量和私有方法
如何才能在樹(shù)莓派搭建私有云

LoRaWAN網(wǎng)關(guān)如何配置私有的外置MQTT SERVER

公共云與私有云我們應(yīng)該選擇哪一個(gè)
如何搭建一個(gè)私有云平臺(tái)
OpenVINO? 賦能 BLIP 實(shí)現(xiàn)視覺(jué)語(yǔ)言 AI 邊緣部署

如何快速下載OpenVINO Notebooks中的AI大模型

C#中使用OpenVINO?:輕松集成AI模型!

評(píng)論