Raspberry Pi上的OpenVINO,OpenCV和Movidius NCS

2021-02-15 相約機器人

原始碼連結: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/1000

Raspbian文件系統已自動擴展為包含所有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 files

MobileNet 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

點擊「閱讀原文」進入大蛇智能鑑黃世界

相關焦點

  • openvino環境搭建
    (1)C:\Users\Administrator>cd C:\Intel\openvino_2019.1.148\binC:\Intel\openvino_2019.1.148\bin> setupvars.bat(2)C:\Intel\openvino_2019.1.148\bin> cd C:\Intel\openvino
  • Linux環境下OpenVINO的安裝教程
    下載地址:https://software.intel.com/content/www/cn/zh/develop/tools/openvino-toolkit/choose-download.html?
  • Raspberry Pi樹莓派
    很抱歉,由於我沒有在Google上找到直接的答案,覺得這篇文章可能對外國人有用,所以用英文寫了。 First, get image from Raspberry Pi Download Page. I choose Ubuntu Mate image for Raspberry Pi.
  • Openvino是什麼,與Movidius SDK的區別
    對比邊緣設備和雲端設備,邊緣設備能夠承載的功耗,能夠支持的作業系統,能夠提供的內存容量都不同,所以在邊緣運行的算法要進行特定優化,因此對工具也有特定的要求。英特爾收購了Movidius和Altera將FPGA等產品引入進來,性能和功耗比通用處理器表現更好。從硬體的角度來講,可以勾勒出一個功耗、成本最優化的解決方案。
  • OpenVINO+OpenCV 文本檢測與識別
    ie.load_network(network=dete_net, device_name= "CPU")print( "out_det_blob1: ", out_det_blob1, "out_det_blob2: ", out_det_blob2)執行推理與解析輸出的代碼如下:image = cv.imread( "D:/images/openvino_ocr.jpg
  • ROS大神為你詳解:如何搞定Movidius神經計算棒基於ROS的實現與封裝
    機器人創新生態特邀Intel開源軟體技術中心專家,為你詳解基於 Movidius 神經計算棒的ROS開發包的功能及其使用方法(附全套代碼),幫助你輕鬆地將深度學習技術引入項目,和其他ROS節點無縫連接,為你的機器人裝上人工智慧的利器。   搞定實現與封裝後,能應用在哪些領域?
  • windows10 64位 OpenVINO安裝教程(一)
    默認情況下,該文件將保存到Downloads目錄中w_openvino_toolkit_p_<version>.exe。2.轉到該Downloads文件夾。3.雙擊w_openvino_toolkit_p_<version>.exe。
  • 用OpenVINO自製簡易控制系統
    https://docs.openvinotoolkit.org/latest/_demos_human_pose_estimation_demo_README.html  /* 切換至下載工具路徑 */  cdC:\Program Files(x86)\IntelSWTools\openvino_2019.2.242\deployment_tools\tools\model_downloader
  • 深度學習CPU加速方案,飛槳全流程開發工具PaddleX 打通OpenVINO...
    首先,飛槳(PaddlePaddle)以百度多年的深度學習技術研究和業務應用為基礎,是中國首個開源開放、技術領先、功能完備的產業級深度學習平臺,集深度學習核心訓練和推理框架、基礎模型庫、端到端開發套件和豐富的工具組件於一體。目前,飛槳已凝聚超230萬開發者,服務企業9萬家,基於飛槳開源深度學習平臺產生了31萬個模型 。
  • Orange Pi 新手起步指南
    [3]和STEM[4](LCTT譯註:STEM 代表科學Science,技術Technology,工程Engineering,數學Mathematics)類軟體打開了大門。Orange Pi 是由 Linux 驅動的單板計算機家族的一員,由深圳迅龍軟體有限公司[7]生產並在全球速賣通AliExpress[8]上售賣。在全球速賣通AliExpress上買東西需要有耐心,提前計劃預留出 2 到 4 周的運輸時間,因為這些產品都是從中國大陸直接發往全世界其它地方的。
  • opencv學習記錄1——視頻讀取與寫入
    為了敦促自己的學習計劃和進度,本期作為opencv的學習專項計劃記錄,希望這些記錄能夠為以後的學習提供一些記憶和練習資料,同時,恩公偶為需要的童鞋提供微不足道的幫助和學習計劃
  • OpenCV-Python,計算機視覺開發利器
    你可以考慮去這裡下載安裝文件:https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv然後通過命令從本地安裝:pip install opencv_python‑3.4.3‑cp37‑cp37m‑win_amd64.whl這裡下載的安裝文件版本號務必要和你本機的
  • 給OpenCV初學者的禮物——OpenCV人臉檢測入門教程
    本文的參考文檔見https://docs.opencv.org/4.0.1/d1/dfb/intro.html圖像的基本操作對於人類來說,圖像可以解構為畫面結構、色彩和非常豐富的意象。你可以把它解構為各種色塊或線條,然後用故事性的語言把這幅圖像存在腦海裡。
  • OpenCV 4.3.0 發布,OPEN AI LAB Tengine 與OpenCV合作共同加速...
    這個版本的一個大看點是:OpenCV的深度學習模塊DNN在Arm CPU 上性能顯著提升。這一提升是由OpenCV中國團隊攜手OPEN AI LAB(開放智能)共同完成!下圖展示了Arm CPU上提速情況,可以看出速度最快可以翻倍!使用Arm平臺開發產品的工程師,可以降低產品的硬體成本了!
  • Qt5.12.2+Opencv4.2配置動態連結庫以用Qt調用Opencv進行創作
    二、軟體安裝及環境變量配置1、Qt creator安裝(1)Qt安裝本教程針對之前下載的Qt 5.12.2進行安裝演示l 點擊下載好的qt-opensource-windows-x86l 首先打開安裝好的CMake軟體,將之前opencv的sources文件夾的路徑添加到Where is the sources code後對話框中,然後上一步中新建的Qt_build2文件夾路徑添加到Where to bulid the binaries後的對話框中,然後點擊Configure
  • OpenCV系列(七)邊緣提取
    一般認為邊緣提取是要保留圖像的灰度變化劇烈的區域,這從數學上看,最直觀的方法就是微分(對於數字圖像來說就是差分),在信號處理的角度來看,也可以說是用高通濾波器,即保留高頻信號。邊緣信息包含兩個方面:1.像素的坐標 2.邊緣的方向邊緣檢測是圖像處理和計算機視覺中的基本問題,邊緣檢測的目的是標識數字圖像中亮度變化明顯的點。圖像屬性中的顯著變化通常反映了屬性的重要事件和變化。
  • python+opencv實現車牌識別
    文章目錄:一、前言二、訓練分類器2.1、準備訓練用單字符圖片2.2、圖片預處理2.3、用opencv的preprocess_hog()處理圖片2.4、用SVM訓練分類器三、車牌定位四、字符分割五、字符識別六、Mysql保存七、總結八、參考資料一、 前言:最近一直在學習機器學習,花了段時間把《機器學習實戰》(【美】Peter Harrington著
  • 【走進OpenCV】學習Opencv不得不掌握的操作
    本文主要借鑑Madcola發布在簡書上的文章,轉載請聯繫原作者,禁止二次轉載。圖像初始化操作#include<opencv2\opencv.hpp>   #include<opencv2\highgui\highgui.hpp>using namespace std;using namespace cv;int main(int argc, char** argv){
  • OpenCV在ARM上的移植 錯誤總結
    生成文件(bin include lib share)結束後,把原來Ubuntu 下用cmake編譯opencv生成的文件覆蓋(合併?) 所以執行原來可以正常運行的命令 :g++ ADA_LKDEMO.cpp -oADA_LKDEMO`pkg-config --cflags --libs opencv` -ldl 會出現如下錯誤: /usr/local/lib/libopencv_calib3d.so: error adding symbols: 文件格式錯誤 collect2