深度學習與LabVIEW(一)

2021-02-15 NI Vision項目實戰教學

主要講述如何將深度學習模型應用在LabVIEW環境中,並修改深度學習模型訓練自己的數據集。深度學習模型可以被搭載在以下三個LabVIEW相關環境中運行:

1、在裝有64位的LabVIEW 2018(及以上)的PC機中運行;

2、在裝有32位/64位 LabVIEW 2016(及以上)的PC機中運行;

3、在NI帶有RT和FPGA系列硬體中運行。

首先是準備工作,需要注意以下四個方面:

第一,我講述的是應用tensorflow框架進行深度學習,NI Vision Development Moudel只支持tensorflow框架,Caffe之類的不行。而且我本篇主要講的是tensorflow_gpu的安裝,tensorflow_cpu的安裝很簡單,百度搜一下很容易就完成了,但是CPU版本的無論是訓練還是測試都太慢了,你若電腦裡有英偉達計算能力稍強一點的顯卡就選擇gpu版本吧,速度是CPU的好幾倍。

第二,根據電腦配置選擇安裝tensorflow的版本,我的電腦是CPU i7/顯卡GTX1070ti,所以我選擇了tensorflow_gpu_1.4.0,具體你的顯卡配什麼tensorflow版本或配什麼CUDA,就去百度搜索一下,肯定能搜到你的顯卡。

第三,CUDA和cuDNN版本選擇參照下表下載,我本文以tensorflow_gpu_1.4.0為例,如果想安裝別的版本tensorflow就對應下表下載不同 的CUDA和cuDNN。

第四,最好在安裝之前能重做系統,雖然很麻煩,但是為了安裝順利,如果不方便可以先直接安裝,如果總出問題解決不了再重做系統按照順序重新安裝一遍,注意了,是按照順序,順序搞錯了很容易報錯。

下面具體介紹安裝步驟:

1、安裝LabVIEW 2018(32bit和64bit)

    去NI官方網站下載。

2、安裝NI Vision 2018(32bit和64bit)

    去NI官方網站下載。

3、安裝vs2015

    下載安裝VisualC++ Redistributable for Visual Studio 2015 來獲取MSVCP140.DLL的支持,為了以後使用過程中不出現錯誤,最好直接下載安裝VS2015。

4、安裝CUDA8.0(cuda_8.0.61_win10)

    若去官網下載總是下到一半就斷了,所以推薦去別人的百度網盤上下載。新手注意了,最好別改安裝路徑,使用默認路徑,另外若安裝失敗就去百度搜一下解決方法吧,因為每個人安裝出現的錯誤都不一樣,實在不行就重做系統吧。

5、安裝cuDNN6.0(cudnn-8.0-windows10-x64-v6.0)

    百度搜索cuDNN,打開第一個:

然後註冊個帳號,一般微信登陸就ok了,接下來:

解壓後覆蓋到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0目錄即可

6、安裝Anaconda3-4.3.0-Windows-x86_64

    最好在別人的百度網盤或開源鏡像網站上下載Anaconda,Anaconda4.3.0內置的python是3.6版本的,tensorflow_gpu_1.4.0對應的是3.5版本,但先不管他,下載好了就安裝,一直下一步,能勾選的全都選上,尤其看到PATH字樣的,那是幫你自動添加路徑呢,一定要勾選上。

在菜單欄上搜索cmd,右鍵以管理員身份運行CMD(注意,以後都要用管理員身份運行),檢查Anaconda是否成功安裝,輸入:conda --version,如果輸出:conda x.x.x就說明成功了。

檢測目前安裝了哪些環境,輸入:conda info --envs

目前只有一個環境,等你把後續步驟都做完了,就會有兩個環境了:

7、安裝python

 安裝python3.5,輸入:conda create --name tensorflow python=3.5 

該語句的意思是,創建一個tensorflow環境,在該環境中安裝python3.5,輸入後系統會自動選擇一個3.5的最新版本進行安裝。

激活tensorflow,輸入:activate tensorflow 

前面多出一個小括號裡面是tensorflow,這就代表已經切換到tensorflow環境中去了。

檢查tensorflow環境中的python版本:python --version 

可以看到,系統安裝的是python3.5.4版本,其實哪個版本都無所謂,只要是python3.5系列的就行。

8、安裝tensorflow

注意,千萬不要直接用pip install --ignore-installed --upgrade tensorflow-gpu,這種方式下載,這樣會下載到最新版本,而最新版本的tensorflow與咱們之前安裝的CUDA、cuDNN、python版本都不兼容,所以需要咱們自己手動下載一個,具體流程如下:

百度搜索pypi,第一個點進去,搜索tensorflow gpu:

選擇第一個:

選擇歷史版本,找到1.4.0:

點擊Download file,選擇cp35(意思是python3.5)、win_amd64(意思是windows 64位作業系統)

記錄文件下載路徑,然後管理員身份打開cmd,切換到tensorflow環境中(上面已經講了如何切換到tensorflow環境)輸入:

cd 文件下載路徑

pip install tensorflow_gpu-1.4.0-cp35-cp35m-win_amd64.whl,這樣就把tensorflow_gpu 1.4.0安裝在tensorflow環境中了(如果找不到路徑,就把文件直接複製到默認的路徑下面,然後再pip install tensorflow_gpu-1.4.0-cp35-cp35m-win_amd64.whl)。

在tensorflow環境下輸入python:

再輸入import tensorflow as tf:

如果不報錯,就代表安裝成功了。

9.安裝spyder開發環境

打開Anaconda Navigator(開始菜單->Anaconda 3->Anaconda Navigator),在上面的Applications on中選擇tensorflow,將root環境改為tensorflow環境:

然後點擊spyder下面的install,安裝好後會變成Launch,點進去測試一下,輸入:

import tensorflow as tf

hello = tf.constant('hello,NI Vision!')

sess = tf.Session()

print(sess.run(hello))

運行程序,如果沒報錯,那麼就安裝成功了。

10、安裝Opencv

沒有Opencv模塊的支持,很難去訓練自己的數據,從https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv選擇需要的版本(cp後面是你本機所安裝的python版本,win_amd64就是windows 64位作業系統)。

下載完畢後,記錄下你的下載路徑,還是管理員身份進入cmd,切換到tensorflow環境中,輸入:

cd 下載路徑

pip install 文件名

這樣就把下載下來的opencv模塊安裝到tensorflow環境中去了。

如果你用spyder這個開發環境去做深度學習那你就還得繼續修改點東西,因為spyder的不支持opencv的編譯模塊, 不只是spyder,大多數支持Python的編輯器都存在類似問題。接下來打開C:\Users\Administrator\Anaconda3\envs\tensorflow\Lib\site-packages\spyder\utils\introspection,有的人找不到這個位置,這取決於你安裝anaconda的位置,先找到anaconda的安裝路徑然後順藤摸瓜找到找到module_completion.py這個文件,實在不行就直接在C盤Ctrl+F搜索module_completion.py吧。

用記事本打開module_completion.py,在200多行的mods變量中添加'cv','cv2',保存退出。

刪除同目錄下__pycache__文件夾中的module_completion.cpython-35.pyc文件,目的是為以後重新生成新的文件。

刪除C:\Users\Administrator\.spyder-py3\db中的submodules文件

重啟spyder,輸入以下代碼驗證(驗證前先找一張圖片,並修改代碼中的圖片路徑):

import tensorflow as tf  

import cv2  

image = cv2.imread("D:/image.jpg")   #我自己找了個後綴.jpg的圖片,命名為image,放在了D盤下,可根據自己的圖像路徑修改。

cv2.namedWindow('image', 0)  

cv2.imshow('image', image)  

# Create a TensorFlow Variable  

x = tf.Variable(image, name='x')  

model = tf.global_variables_initializer() 

with tf.Session() as session:  

  x = tf.transpose(x, perm=[1,0 , 2])  #將圖像數據轉置

  session.run(model)  

  result = session.run(x)  

cv2.namedWindow('result', 0)  

cv2.imshow('result', result)  

cv2.waitKey(0)

最終實現效果如下,將原圖片旋轉:

如果不經過上面修改spyder的參數,那麼圖像是無法顯示出來的,你做深度學習的過程中也就無法看見你的圖像了。

到此,深度學習環境的搭建已經完成了,後續繼續更新如何訓練自己的數據集,以及訓練好的深度學習模型如何應用在LabVIEW環境中,但是tensorflow一定要安裝的,你不安裝tensorflow即使能運行別人寫好的範例,你也無法改變識別的內容和準確率,根據此篇內容,你也可以自己去網上找一些網絡模型進行訓練和測試了,我最近工作很忙,無法及時更新,還望諒解。建議自己安裝tensorflow之前要多從網上查一查自己電腦的配置和系統安裝什麼版本的tensorflow比較好,如果想把深度學習模型應用在LabVIEW中,那麼最好安裝tensorflow_gpu 1.4.1以上的版本,因為深度學習模型應用在LabVIEW PC機的環境中運行共有兩種方法,其中一種方法只能調取tensorflow 1.4.1以上版本生成的.pb文件,所以為了能兩種方法全部適用,建議安裝tensorflow 1.4.1以上的版本和LabVIEW最新的版本(如果你想全部三種方法都適用,最好把LabVIEW2018 32位和64位全部安裝)。

我發的全部都是原創文章,看完後點個讚吧!為後續更新提供動力!

相關焦點

  • labview實現深度學習,還在用python?
    傳統的視覺算法受打光以及圖像的邊緣對比度影響,無法做到人眼的分辨效果,而且人具有學習能力,經過大量樣本的學習,人就可以找到不同物體之間的細微差別
  • LabVIEW Vision圓的擬合 | 一段錄了7、8次的視頻,你值得擁有
    哈嘍,各位親愛的小夥伴歡迎回來到小林子labview~總結下來,大家對Vision的問題比較多,後續會出一系列的視頻專門針對Vision進行講解。關於視頻內容的深度問題,以前有小夥伴質疑我視頻深度,這裡我必須要解釋一下:我的視頻是針對大部分編程群體(或者是非專業編程人員),大部分人需要的是通用的編程方法,需要的是通過短期學習能上手的教程。對於大眾群體來說,高大上的架構、面向對象的編程或許還不如狀態機來的實在。
  • labview與plc的modbus通訊(含labview源碼)
    需要安裝DSC模塊(LabVIEW Datalogging and Supervisory Control Module);這裡我給大家提供一個通用的下載連結,裡面有很多的labview模塊,很給力的,網址如下:http://download.ni.com/evaluation/labview/ekit
  • LabVIEW&Arduino:跳一跳
    之前看到牛人用各種「外掛」--Python,尺子,Arduino,甚至大殺器喵星人等等來玩「跳一跳」,
  • LabVIEW和Python是敵還是友?
    想要構建一個需要來自其領域或行業的定製功能的工程系統的用戶,通常可以從同時使用labview和python中獲益:LabVIEW構建工程組件和用戶界面,python並行執行任務,如web儀錶盤構建、機器學習、自然語言處理等等。這使用戶能夠使用LabVIEW快速構建工程應用程式,同時保持對龐大的Python庫生態系統的訪問。
  • labview與PLC之間的Modbus通信
    電工學習網:www.diangon.com關注電工學習網官方微信公眾號「電工電氣學習」,收穫更多經驗知識。
  • NI LabVIEW歷年版本合集下載
    /labview/labview_development_system/8.5/LV85_CHI.exe NI LabVIEW 8.5.1 32位英文版:http://download.ni.com/support/softlib/labview/labview_development_system/8.5.1/LV851.
  • arduino與labview通信——點亮LED
    今天給大家介紹labview與Arduino串口通訊控制LED燈,我們知道Arduino單片機由於入門簡單和良好的擴展性已經成為越來越多的學生創作首選之一,今天用labview軟體演示其與Arduino通訊控制LED。
  • 實戰訓練8:labview編程實現PLC直接讀寫
    學習日記,更多精彩資源為您準備~嗨~親愛的小夥伴,我們知道labview廣泛運用於工業控制,其中用到最多的就是labview與PLC的通訊控制了,今天小編就給大家介紹如何利用labview與三菱PLC的通訊,以及通過labview直接讀寫三菱PLC。
  • labview自製鋼琴
    哈嘍,各位親愛的小夥伴,歡迎回來到小林子la
  • LabVIEW相關軟體下載
    -2014/4734/en/LabVIEW 2015http://www.ni.com/download/labview-development-system-2015/5309/en/LabVIEW 2016http://www.ni.com/download/labview-development-system-2016/6045/
  • Labview破解工具
    大家在安裝labview後第一次啟動一定會遇到上圖所示試用信息,那麼如何才能永久免費的使用labview呢?
  • 【工控項目分享】+labview與三菱PLCFX5U通訊
    年前一個國外項目需要,用到了labview,labview由客戶自己負責,由於後期客戶提出增加功能,需要labview與PLC進行通訊。
  • 【LabVIEW懶人系列教程-小白入門】1.15LabVIEW程序結構之跑馬燈
    LabVIEW廣泛應用於自動化測控領域,如果你需要快速利用編程來實現數據採集,數據分析,儀表控制,自動化報表,plc通訊,機械手控制,圖像採集,機器視覺外觀檢測,運動控制等方面,又沒有代碼編程基礎(c++,c#,vb等程式語言),那麼推薦你學習LabVIEW,這是你最快進入自動化行業的一種途徑。
  • 【LabVIEW懶人系列教程-視覺入門】2.3LabVIEW之Vision視覺助手案例
    視覺助手需要安裝Labview視覺部分的函數庫後才有,沒有的同學可以去NI官網搜索對應自己Labview版本的安裝包進行安裝。左邊菜單選項欄中一共是6大類函數分別指-基本圖像算子-彩色圖像算子-灰度圖像算子-二值化圖像算子-測量算子-條碼二維碼以及字符識別
  • labview vision實用簡介
    最近一直有許多噴油問我labview vision能幹嘛;什麼是VBAI;什麼是VAS?
  • 視頻教程之《LabVIEW程序設計基礎與提高》
    今天給大家分享一個labview最基礎的視頻「LabVIEW程序設計基礎與提高」,大家可以參照視頻和PPT來一步步學習labview
  • 【LabVIEW懶人系列教程-視覺入門】2.4LabVIEW之Vision視覺助手模板匹配
    今天就給大家講解其中的一個函數,模板匹配的運用以及如何自動生成Labview程序。模板匹配指的是在現有的圖像中通過搜索創建的模板圖片找到與之特徵相似的圖像區域並計算出匹配分數(分數越高相似度越高),匹配角度,中心坐標點等數據。利用模板匹配可以做一些有無檢測,物料定位等視覺檢測功能。
  • LabVIEW實現深度學習,你還在用Python?
    如何將LabVIEW與深度學習結合起來,來解決視覺行業越來越複雜的應用場景所遇到的困難。下面以開關面板為例講解如何使用LabVIEW實現深度學習應用。ok樣本以上就是LabVIEW實現深度學習、訓練模型自學習應用的案例分享。下面來講一下視覺深度學習的行業現狀及目前存在的問題。 目前深度學習從業人員薪資處於高位,且屬於人才緊缺的行業,就業前景廣闊。
  • PLC與labview OPC通訊的四種簡單方式
    本期解決很多小夥伴們的疑問,labview如何與plc進行opc通訊。