日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

opencv 通过网络连接工业相机_Raspberry Pi上的OpenVINO,OpenCV和Movidius NCS

發布時間:2023/12/19 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 opencv 通过网络连接工业相机_Raspberry Pi上的OpenVINO,OpenCV和Movidius NCS 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

源代碼鏈接: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和相機界面。

    從這里需要以下之一:

    • 物理訪問您的Raspberry Pi,以便您可以打開終端并執行命令

    • 通過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配置:

    $ sudo raspi-config

    然后選擇“高級選項”菜單項:

    圖4:raspi-config在安裝OpenVINO和OpenCV之前,從菜單中選擇“高級選項” 以擴展Raspberry Pi上的Raspbian文件系統非常重要。接下來實際上將擴展文件系統。

    然后選擇“擴展文件系統”:

    圖5:Raspberry Pi“擴展文件系統”菜單允許利用整個閃存卡。這將提供安裝OpenVINO,OpenCV和其他軟件包所需的空間。

    提示后,應該選擇第一個選項“A1。“展開文件系統”,按鍵盤上的Enter鍵,向下箭頭按下“<完成>”按鈕,然后重新啟動Pi - 系統將提示您重新啟動。或者可以從終端重新啟動:

    $ sudo reboot

    一定要運行 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 # bad outputl_openvino_toolkit_ie_p_2018.5.445.tgz: HTML document text, UTF-8 Unicode text, with very long lines # good outputl_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。繼續打開文件:

    $ nano ~/.bashrc

    滾動到底部并添加以下行:

    # OpenVINOsource ~/openvino/inference_engine_vpu_arm/bin/setupvars.sh

    現在像之前一樣保存并退出nano。

    然后繼續采購??/ .bashrc中的文件:

    $ source ~/.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 :

    $ nano ~/.bashrc

    然后添加以下行:

    # virtualenv and virtualenvwrapperexport 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?配置文件:

    $ source ~/.bashrc

    現在創建一個虛擬環境來保存OpenVINO,OpenCV和相關的包:

    $ mkvirtualenv openvino -p python3

    此命令只是創建一個名為openvino的Python 3虛擬環境。

    可以為喜歡的環境命名。

    通過查看bash提示來驗證我們是否處于openvino環境中。它應該在提示的開頭顯示 (openvino ),如圖所示:

    如果虛擬環境不活動,只需使用 workon 命令:

    $ workon openvino

    圖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行:

    # import the necessary packagesfrom imutils.video import VideoStreamfrom imutils.video import FPSimport numpy as npimport argparseimport imutilsimport timeimport cv2 # construct the argument parse and parse the argumentsap = 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()) # initialize the list of class labels MobileNet SSD was trained to# detect, then generate a set of bounding box colors for each classCLASSES = ["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)) # load our serialized model from diskprint("[INFO] loading model...")net = cv2.dnn.readNetFromCaffe(args["prototxt"], args["model"]) # specify the target device as the Myriad processor on the NCSnet.setPreferableTarget(cv2.dnn.DNN_TARGET_MYRIAD) # initialize the video stream, allow the cammera sensor to warmup,# and initialize the FPS counterprint("[INFO] starting video stream...")vs = VideoStream(usePiCamera=True).start()time.sleep(2.0)fps = FPS().start() # loop over the frames from the video streamwhile True:# grab the frame from the threaded video stream and resize it# to have a maximum width of 400 pixelsframe = vs.read()frame = imutils.resize(frame, width=400) # grab the frame dimensions and convert it to a blob(h, w) = frame.shape[:2]blob = cv2.dnn.blobFromImage(frame, 0.007843, (300, 300), 127.5) # pass the blob through the network and obtain the detections and# predictionsnet.setInput(blob)detections = net.forward() # loop over the detectionsfor i in np.arange(0, detections.shape[2]):# extract the confidence (i.e., probability) associated with# the predictionconfidence = detections[0, 0, i, 2] # filter out weak detections by ensuring the `confidence` is# greater than the minimum confidenceif confidence > args["confidence"]:# extract the index of the class label from the# `detections`, then compute the (x, y)-coordinates of# the bounding box for the objectidx = 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") # draw the prediction on the framelabel = "{}: {:.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) # show the output framecv2.imshow("Frame", frame)key = cv2.waitKey(1) & 0xFF # if the `q` key was pressed, break from the loopif key == ord("q"):break # update the FPS counterfps.update() # stop the timer and display FPS informationfps.stop()print("[INFO] elasped time: {:.2f}".format(fps.elapsed()))print("[INFO] approx. FPS: {:.2f}".format(fps.fps())) # do a bit of cleanupcv2.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存儲卡上?

    答:我建議你:

    • 拿一張16GB或32GB的存儲卡。

    • Flash Raspbian拉伸與蝕刻卡到卡。Etcher受大多數主要操作系統的支持。

    • 將卡插入Raspberry Pi,然后從本博文中的 “假設”和 “步驟1”部分開始。

    問:我可以使用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

    總結

    以上是生活随笔為你收集整理的opencv 通过网络连接工业相机_Raspberry Pi上的OpenVINO,OpenCV和Movidius NCS的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。