原始碼連結:https://pan.baidu.com/s/1ntnd2oyp8yCPQ0KQRscyqg
提取碼:8ayb
在本教程中,將學習如何將OpenVINO工具包與OpenCV一起使用,以便在Raspberry Pi上進行更快速的深度學習推理。
對於深度學習,當前的Raspberry Pi硬體本質上是資源受限的,很幸運能從大多數最先進的模型中獲得超過幾個FPS(僅使用RPi CPU)(尤其是對象檢測和實例/語義分割)。自2017年以來,Movidius團隊一直在努力研發他們的Myriad處理器和消費級USB深度學習棒。隨著棒子附帶的API的第一個版本運行良好,並展示了Myriad的強大功能,但還有很多不足之處。然後,Movidius APIv2發布並受到Movidius + Raspberry Pi社區的歡迎。它比APIv1更容易/更可靠,但也有相當多的問題。但是現在使用Movidius NCS 變得比以往任何時候都容易,特別是使用OpenCV。
與OpenVINO會面,這是一個用於硬體優化計算機視覺的英特爾庫,旨在取代V1和V2 API。
英特爾轉向使用OpenVINO軟體支持Movidius硬體,使得Movidius閃耀著所有金屬藍色的光彩。OpenVINO使用起來非常簡單 - 只需設置目標處理器(單個函數調用),讓OpenVINO優化的OpenCV處理其餘部分。
但問題仍然存在:
如何在Raspberry Pi上安裝OpenVINO?
今天將學習這一點,以及一個實用的物體檢測演示(擾流警報:現在使用Movidius協處理器很簡單)。
要了解如何在Raspberry Pi上安裝OpenVINO(並使用Movidius Neural Compute Stick執行對象檢測),請按照本教程進行操作!
Raspberry Pi上的OpenVINO,OpenCV和Movidius NCS
在這篇博文中,將介紹三個主要主題。
將了解OpenVINO是什麼以及它如何成為Raspberry Pi非常受歡迎的範例轉換。
將介紹如何在Raspberry Pi上安裝OpenCV和OpenVINO。
將使用OpenVINO,OpenCV和Movidius NCS開發實時對象檢測腳本。
注意:博客上有很多Raspberry Pi安裝指南,大多數與Movidius無關。在開始之前,請務必查看OpenCV安裝指南頁面上的可用安裝教程,並選擇最適合需求的安裝教程。
https://www.pyimagesearch.com/opencv-tutorials-resources-guides/
什麼是OpenVINO?
圖1:英特爾OpenVINO工具包可針對英特爾硬體(如Movidius Neural Compute Stick)優化您的計算機視覺應用程式。使用Raspberry Pi和Movidius NCS使用OpenVINO和OpenCV進行實時對象檢測可以獲得顯著的加速。
英特爾的OpenVINO是一個加速庫,可通過英特爾的硬體產品組合優化計算。
OpenVINO支持Intel CPU,GPU,FPGA和VPU。
OpenVINO支持您依賴的深度學習庫,如TensorFlow,Caffe和mxnet。
圖2:Intel OpenVINO Toolkit支持intel CPU,GPU,FPGA和VPU。TensorFlow,Caffe,mxnet和OpenCV的DNN模塊均針對英特爾硬體進行了優化和加速。MovidO支持Movidius視覺處理單元(VPU),並與Raspberry Pi配合使用。(來源:OpenVINO產品簡介)
英特爾甚至優化了OpenCV的DNN模塊,以支持其硬體深度學習。
事實上,許多較新的智能相機使用英特爾的硬體和OpenVINO工具包。OpenVINO是最優秀的邊緣計算和物聯網 - 它使像Raspberry Pi這樣的資源受限設備能夠與Movidius協處理器協同工作,以對實際應用程式有用的速度執行深度學習。
將在Raspberry Pi上安裝OpenVINO,以便在下一節中與Movidius VPU(視覺處理單元)一起使用。
請務必閱讀OpenVINO產品簡介PDF以獲取更多信息。
https://www.intel.in/content/www/in/en/internet-of-things/solution-briefs/openvino-toolkit-product-brief.html
在Raspberry Pi上安裝OpenVINO優化的OpenCV
在本節中,將介紹在Raspberry Pi上安裝OpenCV和OpenVINO所需的先決條件和所有步驟。
硬體,假設和先決條件
在本教程中,將假設擁有以下硬體:
Raspberry Pi 3B +(或Raspberry Pi 3B)
Movidius NCS 2(或Movidius NCS 1)
PiCamera V2(或USB網絡攝像頭)
帶有 Raspbian Stretch的32GB microSD卡刷新(16GB可能也可以使用)
HDMI屏幕+鍵盤/滑鼠(至少用於初始WiFi配置)
5V電源(我建議使用2.5A電源,因為Movidius NCS是電源)
如果沒有帶有Raspbian Stretch新燒傷的microSD,可以在這裡下載。建議完整安裝:
https://www.raspberrypi.org/downloads/raspbian/
圖3:OpenBuop和Raspberry Pi上的Movidius需要Raspbian Stretch作業系統。
從那裡,使用Etcher(或合適的替代品)來刷卡。
準備好後,將microSD卡插入Raspberry Pi並啟動它。
輸入WiFi憑據並啟用SSH,VNC和相機界面。
從這裡需要以下之一:
通過SSH完成本教程的大部分內容,但只要可以訪問終端,就可以輕鬆跟進。
不能SSH?如果您在網絡上看到了Pi,但無法使用它,則可能需要啟用SSH。這可以通過Raspberry Pi桌面首選項菜單或使用raspi - config 命令輕鬆完成 。
更改設置並重新啟動後,可以使用localhost地址直接在Pi上測試SSH。
打開終端並鍵入 ssh pi @ 127.0.0.1 以查看它是否正常工作。要從另一臺計算機進行SSH,需要Pi的IP位址 - 可以通過查看路由器的客戶端頁面或運行ifconfig 來確定IP位址,以確定Pi本身的IP。
Raspberry Pi鍵盤布局是否會給您帶來問題?轉到Raspberry Pi桌面首選項菜單,更改鍵盤布局。使用標準的美式鍵盤布局,但需要選擇適合您的布局。
步驟#0:在Raspberry Pi上擴展文件系統
要啟動OpenVINO派對,請啟動Raspberry Pi並打開SSH連接(或者使用帶鍵盤+滑鼠的Raspbian桌面並啟動終端)。
如果剛剛刷過Raspbian Stretch,建議首先檢查以確保文件系統使用microSD卡上的所有可用空間。
要檢查您的磁碟空間使用情況執行 DF - ^ h 在終端命令並檢查輸出:
$ df -hFilesystem Size Used Avail Use% Mounted on/dev/root 30G 4.2G 24G 15% /devtmpfs 434M 0 434M 0% /devtmpfs 438M 0 438M 0% /dev/shmtmpfs 438M 12M 427M 3% /runtmpfs 5.0M 4.0K 5.0M 1% /run/locktmpfs 438M 0 438M 0% /sys/fs/cgroup/dev/mmcblk0p1 42M 21M 21M 51% /boottmpfs 88M 0 88M 0% /run/user/1000Raspbian文件系統已自動擴展為包含所有32GB的micro-SD卡。這表示大小為30GB(接近32GB),有24GB可用(15%使用率)。
如果發現自己沒有使用整個存儲卡容量,可以在下面找到有關如何擴展文件系統的說明。
在終端中打開Raspberry Pi配置:
然後選擇「高級選項」菜單項:
圖4:raspi-config在安裝OpenVINO和OpenCV之前,從菜單中選擇「高級選項」 以擴展Raspberry Pi上的Raspbian文件系統非常重要。接下來實際上將擴展文件系統。
然後選擇「擴展文件系統」:
圖5:Raspberry Pi「擴展文件系統」菜單允許利用整個快閃記憶體卡。這將提供安裝OpenVINO,OpenCV和其他軟體包所需的空間。
提示後,應該選擇第一個選項「A1。「展開文件系統」,按鍵盤上的Enter鍵,向下箭頭按下「<完成>」按鈕,然後重新啟動Pi - 系統將提示您重新啟動。或者可以從終端重新啟動:
一定要運行 DF - ^ h 再次命令來檢查文件系統擴展。
步驟1:回收Raspberry Pi上的空間
在Raspberry Pi上獲得更多空間的一個簡單方法是刪除LibreOffice和Wolfram引擎以釋放Pi上的一些空間:
$ sudo apt-get purge wolfram-engine$ sudo apt-get purge libreoffice*$ sudo apt-get clean$ sudo apt-get autoremove刪除Wolfram Engine和LibreOffice後,可以回收近1GB!
步驟3:在Raspberry Pi上安裝OpenVINO + OpenCV依賴項
此步驟顯示了在每個OpenCV系統上安裝的一些依賴項。雖然很快就會看到OpenVINO已經編譯完畢,但建議繼續安裝這些軟體包,以防最終在任何時候從頭開始編譯OpenCV。
更新系統:
$ sudo apt-get update && sudo apt-get upgrade
然後安裝包括CMake在內的開發人員工具:
$ sudo apt-get install build-essential cmake unzip pkg-config接下來是時候安裝一個選擇圖像和視頻庫的-這是關鍵,以能夠與圖像和視頻文件的工作:
$ sudo apt-get install libjpeg-dev libpng-dev libtiff-dev$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev$ sudo apt-get install libxvidcore-dev libx264-dev
從那裡安裝GTK,GUI後端:
$ sudo apt-get install libgtk-3-dev現在安裝一個可能有助於減少GTK警告的軟體包:
$ sudo apt-get install libcanberra-gtk*星號確保將獲取特定於ARM的GTK。這是必需的。
現在需要兩個包含OpenCV數值優化的包:
$ sudo apt-get install libatlas-base-dev gfortran最後安裝Python 3開發頭文件:
$ sudo apt-get install python3-dev安裝完所有這些先決條件後,可以繼續執行下一步。
步驟#4:為您的Raspberry Pi下載並解壓縮OpenVINO
圖6:下載並安裝用於Raspberry Pi和Movidius計算機視覺應用程式的OpenVINO工具包(來源:英特爾的OpenVINO產品簡介)。
從此處開始,安裝說明主要基於英特爾的Raspberry Pi OpenVINO指南。有一些「陷阱」,這就是為什麼決定寫一個指南。還將使用PyImageSearch讀者所期望的虛擬環境。
下一步是下載OpenVINO。
導航到主文件夾並創建一個新目錄
$ cd ~$ mkdir openvino$ cd openvino從那裡開始,獲取用於Raspberry Pi下載的OpenVINO工具包。可以嘗試wget,只要注意後續代碼塊中提到的問題:
$ wget http://download.01.org/openvinotoolkit/2018_R5/packages/l_openvino_toolkit_ie_p_2018.5.445.tgz此時,通過反覆試驗,發現 wget 實際上只抓取了一個HTML文件,這似乎是英特爾下載站點上一個非常奇怪的伺服器錯誤。
使用此命令確保實際擁有tar文件:
$ file l_openvino_toolkit_ie_p_2018.5.445.tgz l_openvino_toolkit_ie_p_2018.5.445.tgz: HTML document text, UTF-8 Unicode text, with very long lines l_openvino_toolkit_ie_p_2018.5.445.tgz: gzip compressed data, was "l_openvino_toolkit_ie_p_2018.5.445.tar", last modified: Wed Dec 19 12:49:53 2018, max compression, from FAT filesystem (MS-DOS, OS/2, NT)如果輸出與突出顯示的「良好輸出」匹配,則可以安全地繼續提取存檔。否則,請刪除該文件,然後重試。
成功下載OpenVINO工具包後,可以使用以下命令取消歸檔:
$ tar -xf l_openvino_toolkit_ie_p_2018.5.445.tgz解壓縮歸檔的結果是一個名為inference_engine_vpu_arm的文件夾 。
步驟#5:在Raspberry Pi上配置OpenVINO
用OpenVINO目錄的絕對路徑修改setupvars .sh腳本 。
為此將使用nano終端文本文件編輯器:
$ nano openvino/inference_engine_vpu_arm/bin/setupvars.sh該文件將如下所示:
圖5:Intel OpenVINO setupvars.sh文件要求在Raspberry Pi上插入OpenVINO安裝目錄的路徑。
需要使用以下內容替換 < INSTALLDIR >:
/ home / pi / openvino / inference_engine_vpu_arm
它現在看起來應該是這樣的:
圖8:setupvars.sh Raspberry Pi上的OpenVINO的安裝目錄已經更新。
要保存文件,請按「ctrl + o,輸入」,然後按 「ctrl + x 」退出。
從那裡開始,再次使用 nano來編輯 〜/ .bashrc 。每次調用Pi終端時,都會添加一行來加載OpenVINO的setupvars .sh。繼續打開文件:
滾動到底部並添加以下行:
source ~/openvino/inference_engine_vpu_arm/bin/setupvars.sh現在像之前一樣保存並退出nano。
然後繼續採購 〜/ .bashrc中的文件:
步驟#6:在Raspberry Pi上為Movidius NCS和OpenVINO配置USB規則
OpenVINO要求設置自定義USB規則。
首先,輸入以下命令將當前用戶添加到Raspbian「users」組:
$ sudo usermod -a -G users "$(whoami)"然後註銷並重新登錄。如果您使用的是SSH,則可以鍵入exit ,然後重新建立SSH連接。現在通過sudo reboot重新啟動也是一個選項。
返回終端後,運行以下腳本來設置USB規則:
$ cd ~$ sh openvino/inference_engine_vpu_arm/install_dependencies/install_NCS_udev_rules.sh步驟#7:在Raspberry Pi上創建一個OpenVINO虛擬環境
抓住並安裝一個Python包管理器pip。
要安裝pip,只需在終端中輸入以下內容:
$ wget https://bootstrap.pypa.io/get-pip.py$ sudo python3 get-pip.py將利用OpenCV和OpenVINO利用虛擬環境進行Python開發。
虛擬環境允許在系統上獨立運行獨立的隔離Python環境。今天將只設置一個環境,可以輕鬆地為每個項目創建一個環境。
繼續安裝 virtualenv 和virtualenvwrapper吧 - 它們允許Python虛擬環境:
$ sudo pip install virtualenv virtualenvwrapper$ sudo rm -rf ~/get-pip.py ~/.cache/pip要完成這些工具的安裝,需要再次更新 〜/ .bashrc :
然後添加以下行:
export WORKON_HOME=$HOME/.virtualenvsexport VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3source /usr/local/bin/virtualenvwrapper.sh
圖9:Raspberry Pi ~/.bashrc配置文件已更新,以適應OpenVINO和virtualenvwrapper。現在將能夠為Python包創建一個虛擬環境。
或者可以通過bash命令直接追加行:
$ echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc$ echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc$ echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc$ echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc接下來,獲取〜/ .bashrc 配置文件:
現在創建一個虛擬環境來保存OpenVINO,OpenCV和相關的包:
$ mkvirtualenv openvino -p python3此命令只是創建一個名為openvino的Python 3虛擬環境。
可以為喜歡的環境命名。
通過查看bash提示來驗證我們是否處於openvino環境中。它應該在提示的開頭顯示 (openvino ),如圖所示:
如果虛擬環境不活動,只需使用 workon 命令:
圖10:該workon openvino命令激活我們的OpenVINO Python 3虛擬環境。現在準備安裝Python軟體包並使用Movidius和Raspberry Pi運行計算機視覺代碼。
步驟#8:將軟體包安裝到OpenVINO環境中
安裝今天演示腳本所需的一些軟體包
$ workon openvino$ pip install numpy$ pip install "picamera[array]"$ pip install imutils現在已經在openvino虛擬環境中安裝了這些軟體包,它們只能在openvino環境中使用。這是在OpenVINO項目上工作的隔離區域。
可以使用pip通過requirements.txt文件安裝Caffe,TensorFlow和mxnet的附加軟體包。
步驟#6:將OpenVINO的OpenCV連結到Python 3虛擬環境
OpenCV已準備好進入虛擬環境之外。但這是使用系統環境的不良做法。將OpenVIN的OpenVIN版本連結到Python虛擬環境中,這樣就可以輕鬆獲得今天的演示。
在這裡將創建一個「符號連結」。符號連結在系統上的兩個位置之間創建一個特殊的連結(在例子中,它是一個.so 文件 - 將sym-link視為指向另一個文件的「快捷方式」。
運行命令時會注意到導航到連結的目標,並創建sym-link回到文件實際存在的位置。
很難找到OpenVINO的OpenCV .so文件,所以使用了find 命令:
$ find / -name "cv2*.so".../home/pi/openvino/inference_engine_vpu_arm/python/python3.5/cv2.cpython-35m-arm-linux-gnueabihf.so不得不滾動一堆輸出來查找OpenCV二進位文件路徑。因此省略了上面不需要的輸出。
由於使用的是Python 3,因此請確保複製Python 3.5路徑而不是Python 2.7路徑。
通過剪貼板中的路徑,創建sym-link到openvino虛擬環境 站點- packages :
$ cd ~/.virtualenvs/openvino/lib/python3.5/site-packages/$ ln -s /home/pi/openvino/inference_engine_vpu_arm/python/python3.5/cv2.cpython-35m-arm-linux-gnueabihf.so cv2.so$ cd ~注意第二行包裹特別長。不能不強調這一步 - 這一步至關重要。如果不創建符號連結,則無法在OpenVINO Python腳本中導入OpenCV。另外請確保上述命令中的路徑和文件名對於Raspberry Pi是正確的。建議制表完成。
步驟#7:在Raspberry Pi上測試OpenVINO安裝
在嘗試OpenVINO示例之前,做一個快速的健全性測試,看看OpenCV是否準備就緒。
打開終端並執行以下操作:
$ workon openvino$ python>>> import cv2>>> cv2.__version__'4.0.1-openvino'>>> exit()第一個命令激活OpenVINO虛擬環境。從那裡在環境中啟動Python 3二進位文件並導入OpenCV。
OpenCV的版本表明它是OpenVINO優化安裝!
使用Raspberry Pi和OpenVINO進行實時對象檢測
安裝OpenVINO非常簡單,甚至不需要編譯OpenCV。英特爾團隊做得很好!
現在使用OpenVINO讓Movidius神經計算棒工作。
為了比較將運行帶有和不帶 Movidius 的MobileNet SSD物體探測器來測試FPS。將這些值與之前使用Movidius NCS APIv1的結果進行比較。
項目結構
繼續抓住博客文章的「原始碼下載」。
解壓縮zip後,可以使用tree 命令檢查項目目錄:
$ tree.├── MobileNetSSD_deploy.caffemodel├── MobileNetSSD_deploy.prototxt├── openvino_real_time_object_detection.py└── real_time_object_detection.py 0 directories, 3 filesMobileNet SSD對象檢測器文件包括.caffemodel和.prototxt.txt文件。這些是預訓練的。
使用OpenVINO,Movidius NCS和Raspberry Pi進行實時對象檢測
為了展示OpenVINO在帶有Movidius的Raspberry Pi上的強大功能,將進行實時深度學習對象檢測。
Movidius / Myriad協處理器將執行實際的深度學習推理,減少Pi的CPU負載。
仍然會使用Raspberry Pi CPU來處理結果並告訴Movidius該做什麼,正在為Myriad保留深度學習推理,因為它的硬體已經過優化並專為深度學習推理而設計。
今天只添加一行執行計算的代碼(以及注釋+空白行)。這使得新的總數達到103行代碼, 而不使用以前的複雜Movidius APIv1(215行代碼)。
https://www.pyimagesearch.com/2018/02/19/real-time-object-detection-on-the-raspberry-pi-with-the-movidius-ncs/
通過OpenCV和Movidius了解OpenVINO API所需的變化。
繼續打開一個名為openvino_real_time_object_detection.py的文件並插入以下行,密切關注33-35行:
from imutils.video import VideoStreamfrom imutils.video import FPSimport numpy as npimport argparseimport imutilsimport timeimport cv2 ap = argparse.ArgumentParser()ap.add_argument("-p", "--prototxt", required=True,help="path to Caffe 'deploy' prototxt file")ap.add_argument("-m", "--model", required=True,help="path to Caffe pre-trained model")ap.add_argument("-c", "--confidence", type=float, default=0.2,help="minimum probability to filter weak detections")ap.add_argument("-u", "--movidius", type=bool, default=0,help="boolean indicating if the Movidius should be used")args = vars(ap.parse_args()) CLASSES = ["background", "aeroplane", "bicycle", "bird", "boat","bottle", "bus", "car", "cat", "chair", "cow", "diningtable","dog", "horse", "motorbike", "person", "pottedplant", "sheep","sofa", "train", "tvmonitor"]COLORS = np.random.uniform(0, 255, size=(len(CLASSES), 3)) print("[INFO] loading model...")net = cv2.dnn.readNetFromCaffe(args["prototxt"], args["model"]) net.setPreferableTarget(cv2.dnn.DNN_TARGET_MYRIAD) print("[INFO] starting video stream...")vs = VideoStream(usePiCamera=True).start()time.sleep(2.0)fps = FPS().start() while True:frame = vs.read()frame = imutils.resize(frame, width=400) (h, w) = frame.shape[:2]blob = cv2.dnn.blobFromImage(frame, 0.007843, (300, 300), 127.5) net.setInput(blob)detections = net.forward() for i in np.arange(0, detections.shape[2]):confidence = detections[0, 0, i, 2] if confidence > args["confidence"]:idx = int(detections[0, 0, i, 1])box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])(startX, startY, endX, endY) = box.astype("int") label = "{}: {:.2f}%".format(CLASSES[idx],confidence * 100)cv2.rectangle(frame, (startX, startY), (endX, endY),COLORS[idx], 2)y = startY - 15 if startY - 15 > 15 else startY + 15cv2.putText(frame, label, (startX, y),cv2.FONT_HERSHEY_SIMPLEX, 0.5, COLORS[idx], 2) cv2.imshow("Frame", frame)key = cv2.waitKey(1) & 0xFF if key == ord("q"):break fps.update() fps.stop()print("[INFO] elasped time: {:.2f}".format(fps.elapsed()))print("[INFO] approx. FPS: {:.2f}".format(fps.fps())) cv2.destroyAllWindows()vs.stop()第33-35行是新的。
在第35行,告訴OpenCV的DNN模塊使用net來使用Myriad協處理器。setPreferableTarget (CV2 。DNN 。DNN_TARGET_MYRIAD )。
Myriad處理器內置於Movidius神經計算棒中。如果在具有嵌入式Myriad晶片的設備上運行OpenVINO + OpenCV(即沒有龐大的USB記憶棒),則可以使用相同的方法。
OpenVINO對象檢測結果
圖11:使用OpenVINO,OpenCV和Raspberry Pi進行對象檢測。
要運行今天的腳本,首您需要獲取與此帖相關的「原始碼下載」。
解壓縮zip並導航到目錄。
要使用OpenVINO執行對象檢測,只需執行以下命令:
$ python openvino_real_time_object_detection.py--prototxt MobileNetSSD_deploy.prototxt \--model MobileNetSSD_deploy.caffemodel[INFO] loading model...[INFO] starting video stream...[INFO] elasped time: 55.35[INFO] approx. FPS: 8.31在大約一分鐘內達到8.31FPS。
使用MobileNet SSD收集了其他結果,如下表所示:
圖12:使用OpenVINO的MobileNet SSD深度學習對象檢測器與Movidius神經計算棒的基準比較。
OpenVINO和Movidius NCS 2是非常快的,一個巨大的以前版本的加速。
令人驚訝的是,與僅使用RPi 3B + CPU(沒有Movidius協處理器)相比,結果大於8倍。
最右邊的兩列(淺藍色列3和4)顯示了NCS1和NCS2之間的OpenVINO比較。
請注意,第二列統計信息是使用RPi 3B(而不是3B +)。它是在2018年2月使用之前的API和以前的RPi硬體拍攝的。
故障排除和常見問題(FAQ)
問:如何將作業系統快閃記憶體到我的Raspberry Pi存儲卡上?
答:我建議你:
問:我可以使用Python 2.7嗎?
答:我不建議使用Python 2.7,因為它快速接近其使用壽命。Python 3現在是標準。我還沒有用Python 2.7測試過OpenVINO。但如果你堅持.
以下是如何使用Python 2.7啟動和運行:
$ sudo apt-get install python2.7 python2.7-dev然後,在步驟#4中創建虛擬環境之前 ,首先安裝Python 2.7的pip:
$ sudo python2.7 get-pip.py同樣在步驟#4中:當您創建虛擬環境時,只需使用相關的Python版本標誌:
$ mkvirtualenv openvino_py27 -p python2.7從那裡一切都應該是一樣的。
問:為什麼我不能只是apt-get安裝OpenCV並且支持OpenVINO?
A. 避免這種「解決方案」不惜一切代價,即使它可能工作。首先,這種方法可能不會安裝OpenVINO,直到它更受歡迎。其次,apt-get對虛擬環境不起作用,你無法控制你的編譯和構建。
問:mkvirtualenv 和workon 命令產生「命令未找到錯誤」。我不知道下一步該做什麼。
答:有很多原因導致您看到此錯誤消息,所有這些都來自第4步:
首先,確保使用pip包管理器正確安裝了virtualenv 和virtualenvwrapper。通過運行pip 凍結驗證並確保您看到virtualenv和virtualenvwrapper都在已安裝的軟體包列表中。你的 〜/ .bashrc 文件可能有錯誤。檢查〜/的內容 .bashrc中文件以查看適當的 \出口和源命令是本(檢查步驟#4 為應被附加到命令 〜/ .bashrc中 )。
您可能忘記源的 〜/ .bashrc中 。確保你運行source ~ / 。編輯後的bashrc以確保您可以訪問 mkvirtualenv 和 workon 命令。
問:當我打開新終端,註銷或重新啟動我的Raspberry Pi時,我無法執行 mkvirtualenv 或 workon 命令。
答:如果你在Raspbian桌面上,可能會發生這種情況。由於某種原因,啟動終端時加載的默認配置文件不會提供 〜/ 。bashrc 文件。請參閱上 一個問題中的#2。通過SSH,您可能不會遇到這種情況。
問:當我嘗試導入OpenCV時,遇到以下消息:導入錯誤:沒有名為cv2的模塊 。
答:有 幾個原因可能會發生,不幸的是,很難診斷出來。我建議以下建議來幫助診斷和解決錯誤:
使用workon openvino 命令確保您的openvino虛擬環境處於活動狀態 。如果此命令出現錯誤,請驗證 virtualenv 和 virtualenvwrapper 是否已正確安裝。
嘗試調查openvino虛擬環境中site - packages 目錄 的內容 。你可以在〜/找到 site - packages目錄 。virtualenvs / openvino / lib / python3 。5 / site - packages / 。確保(1)site - packages 目錄中有一個 cv2 sym-link 目錄,(2)它是sym-linked正確的。
請務必找到步驟#6中演示的 cv2 * .so文件。
結論
今天了解了英特爾的OpenVINO工具包,以及它如何用於提高Raspberry Pi的深度學習推理速度。還學習了如何安裝OpenVINO工具包,包括Raspberry Pi上OpenVINO優化版本的OpenCV。然後運行了一個簡單的MobileNet SSD深度學習對象檢測模型。它只需要一行代碼就可以將目標設備設置為Movidius棒上的Myriad處理器。還證明了Movidius NCS + OpenVINO非常快,在Raspberry Pi的CPU上顯著優於對象檢測速度。
推薦閱讀
OpenCV和Tensorflow 實現機器人沿著人行道移動
《深度學習之TensorFlow:入門、原理與進階實戰》和《Python帶我起飛——入門、進階、商業實戰》兩本圖書是代碼醫生團隊精心編著的 AI入門與提高的精品圖書。配套資源豐富:配套視頻、QQ讀者群、實例源碼、 配套論壇:http://bbs.aianaconda.com 。更多請見:https://www.aianaconda.com
點擊「閱讀原文」進入大蛇智能鑑黃世界