前言
今天想和大家分享的是:儀酷LabVIEW AI視覺工具包的VI簡介,如介紹內(nèi)容有誤,歡迎各位朋友們幫忙糾正~
一、AI視覺工具包VI簡介
已經(jīng)安裝好的AI工具包位于程序框圖-函數(shù)選板-Addons-VIRobotics-opencv_yiku,內(nèi)容包括:Mat類型(矩陣)的操作、攝像頭采集、圖片文件讀寫、基本算子、視頻讀寫、神經(jīng)網(wǎng)絡(luò)調(diào)用、迅捷VI等功能。
Mat(矩陣類)
該大類下面主要是和矩陣相關(guān)的創(chuàng)建,操作。包含:
? Create_Mat.vi:矩陣的創(chuàng)建
? Convert:矩陣常用數(shù)據(jù)類型的轉(zhuǎn)換類
? Mat :Mat的相關(guān)操作,如取子矩陣、基本數(shù)學(xué)運算、邏輯操作、求兩矩陣差的絕對值、圖像融合等。
Camera(相機類)
該大類下面主要是和相機有關(guān)的操作。主要包括
? new_Cap.vi:初始化相機
? startCapture.vi:啟動本地相機
? startCaptureUrl.vi: 啟動網(wǎng)絡(luò)相機
? stopCapture.vi:停止拍攝
? readImage.vi:獲取一幀圖像
Core(核心類)
該大類主要對圖片做一些基礎(chǔ)處理,包括
? DFT.vi:傅里葉變換
? idft.vi:逆傅里葉變換
? normalize.vi:圖像歸一化處理
? flip.vi:圖像翻轉(zhuǎn)
? hconcat.vi:圖像水平拼接
? inRange.vi:圖像分割
Darw(圖像繪制類)
該大類主要是實現(xiàn)圖像的繪制,包括:
? Draw_Line.vi:繪制直線
? Draw_Rect.vi:繪制矩形
? Draw_arrowesLine.vi:繪制箭頭線段
? Draw_Circle:繪制圓
? Draw_ellipse.vi:繪制橢圓圓弧和橢圓扇形
? Draw_Polylines.vi:繪制多邊形
? Draw_putText:繪制文字
? getTextSize.vi:獲取文本大小
imgcodes(圖片讀寫類)
該大類主要是對圖片進行讀寫操作,包括
? imdecode.vi:圖片解碼
? imencode.vi:圖片編碼
? imread.vi:讀取圖片
? imwrite.vi:保存圖片
imgproc(圖片處理算子類)
該大類主要是對圖片進行基本操作,包括
? blur.vi:均值濾波
? calHist.vi:計算直方圖
? Canny.vi:邊檢檢測
? cvtColor.vi:色彩轉(zhuǎn)換
? drawContour.vi:繪制輪廓
? findContous.vi:尋找輪廓
? filter2d_float.vi:圖像卷積運算
? GaussianBlur.vi:高斯濾波
? HoughCircles.vi:霍夫圓檢測
? HoughLines.vi:霍夫直線檢測
? matchTemplate.vi:模板匹配
? resize.vi:圖像縮放
? threshold.vi:二值化圖像
? cornerHarris.vi :Harris角點檢測
? cornerMinEigenVal.vi:計算特征值和特征向量
? dilate.vi:圖像膨脹
? erode.vi:圖像腐蝕
? boxPoints:獲取矩陣頂點坐標
? Corners--> cornerSubPix:亞像素級角點檢測
? pointPolygonTest.vi:檢測點是否在輪廓內(nèi)
Imgpro--Transform:該大類下面主要是圖像的各種變換,包括
? GetAffineTransform.vi:實現(xiàn)圖像仿射
? getPerspectiveTransform.vi:實現(xiàn)透視變換
? getRotationMatrix2D.vi:圖像旋轉(zhuǎn)
? warpAffine.vi:仿射變換
? warpPerspective.vi:透視變換
geometry(幾何圖形類)
該大類主要是點的合集,比如說輪廓。
calib3d(相機定標和三維重建類)
該大類主要是對相機進行標定,并進行三維重建。主要包括
? calibrateCamera.vi:相機標定
? CalibrateHandEye.vi:手眼標定
? ComputeCorrespondEpilines.vi:為一幅圖像中的點計算其在另一幅圖像中對應(yīng)的對極線
? copy_vectorPoint2f.vi:復(fù)制點集
? drawChessBoardCorners.vi:繪制檢測到的棋盤角點
? findChessboardCorners.vi:尋找棋盤圖的內(nèi)角點位置
? findFundamentalMat.vi:計算兩個視角的基礎(chǔ)矩陣
? initCameraMatrix2D.vi:得到3D到2D的初始化的攝像機矩陣
? initUndistortRectifyMap.vi:計算無畸變和修正轉(zhuǎn)換關(guān)系
? remap.vi:一幅圖像中某位置的像素放置到另一個圖片指定位置
? stereoCalibrate.vi:雙目攝像機標定
? steroRectify.vi:對校準過的攝像機計算修正變換
? stereoRectifyUncalibrated.vi:對未校準過的攝像機計算修正變換
? undistort.vi:校正圖像因相機鏡頭引起的變形
? undistortPoints.vi:迭代去畸變矯正
dnn(深度神經(jīng)網(wǎng)絡(luò)類)
OpenCV中的dnn(Deep Neural Network module)模塊是專門用來實現(xiàn)深度神經(jīng)網(wǎng)絡(luò)相關(guān)功能的模塊。OpenCV自己并不能訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,但是它可以載入別的深度學(xué)習(xí)框架(例如TensorFlow、pytorch、Caffe等等)訓(xùn)練好的模型,然后使用該模型做inference(預(yù)測)。而且OpenCV在載入模型時會使用自己的dnn模塊對模型重寫,使得模型的運行效率更高。所以如果你想在OpenCV項目中融入深度學(xué)習(xí)模型,可以先用自己熟悉的深度學(xué)習(xí)框架訓(xùn)練好,然后使用OpenCV的dnn模塊載入。主要包括:
? blobFromImage.vi:對即將進入神經(jīng)網(wǎng)絡(luò)的彩色圖片進行預(yù)處理
? blobFromImage_1c.vi:對即將進入神經(jīng)網(wǎng)絡(luò)的灰度圖片進行預(yù)處理
? NMSBoxes.vi:對檢測的到的boxes和對應(yīng)的scores進行非極大值抑制處理,消除冗余重疊的框
? NMSRotatedBoxes.vi:對檢測的到的傾斜boxes和對應(yīng)的scores進行非極大值抑制處理,消除冗余重疊的框
? ORC:文字識別相關(guān)
dnn.Net(深度神經(jīng)網(wǎng)絡(luò)類)
該大類主要實現(xiàn)模型的加載與推理
? readNetFromTensorflow.vi:載入一個tensorflow生成的pb文件和與其對應(yīng)的pbtxt配置文件,返回它的網(wǎng)絡(luò)
? readNetFromDarknet.vi:載入一個darknet生成的cfg配置文件和weights模型文件(通常為yolov3和yolov4),返回它的網(wǎng)絡(luò)
? readNetFromONNX.vi:載入一個通用的神經(jīng)網(wǎng)絡(luò)模型文件ONNX(通常由pytorch、tensorflow、caffe等框架生成),返回它的網(wǎng)絡(luò)
? readNetFromModelOptimizer.vi:載入英特爾的模型優(yōu)化器中間表示,IR:具有網(wǎng)絡(luò)拓撲的 XML 配置文件和具有訓(xùn)練權(quán)重的二進制文件bin,返回它的網(wǎng)絡(luò)
? setInput.vi:將圖像(或矩陣)輸入至神經(jīng)網(wǎng)絡(luò)net中
? forward.vi:神經(jīng)網(wǎng)絡(luò)進行推理,并得到某一層的結(jié)果,如name為空,則返回最后一層的結(jié)果
? forward_muti_outputs.vi:神經(jīng)網(wǎng)絡(luò)進行推理,根據(jù)輸入端的名字names,得到多層的結(jié)果
? getLayerNames.vi:獲取該網(wǎng)絡(luò)所有層的名字
? getUnconnetedLayerNames.vi:獲取不連接的輸出層的名字
? setPreferableBackend.vi:要求網(wǎng)絡(luò)在其支持的地方使用特定的計算后端
? setPreferableTarget.vi:要求網(wǎng)絡(luò)在特定目標設(shè)備上進行計算
ml(機器學(xué)習(xí)模塊)
該大類主要是一組統(tǒng)計分類、回歸分析、數(shù)據(jù)聚類的類與統(tǒng)計模式函數(shù)(目前主要是SVM支持向量機)
ml.SVM該大類下面主要是SVM的創(chuàng)建、預(yù)測與訓(xùn)練的vi
python(矩陣轉(zhuǎn)換為python格式)
feature2d(特征檢測與匹配)
該大類主要是實現(xiàn)特征點提取與匹配。
? DescriptorMatcher:匹配特征向量的抽象類
? draw_KeyPoints.vi:快速繪制特征點
? draw_matches.vi:繪制關(guān)鍵點的匹配情況, 一左一右兩張圖像,匹配的關(guān)鍵點之間用線條鏈接
? matcher_knnMatch.vi:
? matcher_match.vi:
? SIFT:創(chuàng)建SIFT特征檢測器
? SIFT_Compute.vi:計算關(guān)鍵點描述符
? SIFT_Detector.vi:檢測關(guān)鍵點
? Vector_DMatch:匹配結(jié)果點集
? Vector_KeyPoints:特征點集
videoWriter
該類為視頻流讀寫類
cuda(顯卡類)
該大類主要是獲取cuda設(shè)備相關(guān)參數(shù)的類。
? getCudaEnabledDeviceCount.vi:獲取 CUDA 的設(shè)備數(shù)
? getDevice.vi:獲取CUDA設(shè)備屬性
? setDevice:設(shè)置CUDA設(shè)備屬性
face(人臉檢測&人臉識別)
該大類主要是實現(xiàn)人臉檢測和人臉識別。主要有兩大類:基于YuNet的人臉檢測器FaceDetectorYN和基于DNN的人臉識別器FaceRecognizerSF。
? FaceDetectorYN-->detect.vi:從給定圖像中檢測人臉,獲得人臉區(qū)域和5點landmark
? FaceDetectorYN-->FaceDetectorYN_Creat.vi:創(chuàng)建人臉檢測器的實例類
? FaceRecognizerSF-->alignCrop.vi:對齊圖像以將面部放在標準位置
? FaceRecognizerSF-->Create.vi:使用給定參數(shù)創(chuàng)建此類的實例
? FaceRecognizerSF-->feature.vi:從對齊的圖像中提取人臉特征
? FaceRecognizerSF-->match.vi:計算兩個人臉特征之間的距離
如您想要探討更多關(guān)于LabVIEW與人工智能技術(shù),歡迎加入我們的:705637299,備注:LabVIEW機器學(xué)習(xí)
二、開放神經(jīng)網(wǎng)絡(luò)交互(ONNX)工具包VI簡介
已經(jīng)安裝好的ONNX工具包位于程序框圖-函數(shù)選板-Addons-VIRobotics-onnx內(nèi)容包括:獲取onnx可用的provider、onnx神經(jīng)網(wǎng)絡(luò)調(diào)用推理等功能。如下圖所示:
getavailproviders.vi
獲取onnx可用的providers。
Session(onnx模型加載推理類)
? Create_Session.vi:加載onnx模型并指定推理加速引擎(CPU、CUDA、TensorRT)
? Run_one_input_pointer.vi:將單個圖片指針輸入至onnx模型并進行推理
? Run_one_input_data.vi:將單個圖像(或矩陣)輸入至onnx模型并進行推理
? Get_Resule_Info.vi:獲取每層輸出及shape
? Get_result.vi:動態(tài)vi,獲取某層輸出
? release.vi:釋放資源
? delete.vi:刪除
三、工具包下載鏈接
- AI視覺工具包下載與安裝參考:
[https://blog.csdn.net/virobotics/article/details/123656523] - onnx工具包下載與安裝參考:
[https://blog.csdn.net/virobotics/article/details/124998746]
總結(jié)
以上就是今天要給大家分享的內(nèi)容。大家可根據(jù)鏈接下載工具包并進行安裝。
如果有問題可以在評論區(qū)里討論,提問前請先點贊支持一下博主哦
**如果文章對你有幫助,歡迎?關(guān)注、
審核編輯 黃宇
-
LabVIEW
+關(guān)注
關(guān)注
1970文章
3654瀏覽量
323285 -
人工智能
+關(guān)注
關(guān)注
1791文章
47183瀏覽量
238240 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5500瀏覽量
121111
發(fā)布評論請先 登錄
相關(guān)推薦
評論