• LabVIEW图形化的AI视觉开发平台(非NI Vision)VI简介


    前言

    今天想和大家分享的是:仪酷LabVIEW AI视觉工具包的VI简介,如介绍内容有误,欢迎各位朋友们帮忙纠正~


    一、AI视觉工具包VI简介

    已经安装好的AI工具包位于程序框图-函数选板-Addons-VIRobotics-opencv_yiku,内容包括:Mat类型(矩阵)的操作、摄像头采集、图片文件读写、基本算子、视频读写、神经网络调用、迅捷VI等功能。
    在这里插入图片描述

    Mat(矩阵类)

    该大类下面主要是和矩阵相关的创建,操作。包含:
     Create_Mat.vi:矩阵的创建
     Convert:矩阵常用数据类型的转换类
     Mat :Mat的相关操作,如取子矩阵、基本数学运算、逻辑操作、求两矩阵差的绝对值、图像融合等。
    在这里插入图片描述

    Camera(相机类)

    该大类下面主要是和相机有关的操作。主要包括
     new_Cap.vi:初始化相机
     startCapture.vi:启动本地相机
     startCaptureUrl.vi: 启动网络相机
     stopCapture.vi:停止拍摄
     readImage.vi:获取一帧图像
    在这里插入图片描述

    Core(核心类)

    该大类主要对图片做一些基础处理,包括
     DFT.vi:傅里叶变换
     idft.vi:逆傅里叶变换
     normalize.vi:图像归一化处理
     flip.vi:图像翻转
     hconcat.vi:图像水平拼接
     inRange.vi:图像分割

    在这里插入图片描述

    Darw(图像绘制类)

    该大类主要是实现图像的绘制,包括:
     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:色彩转换
     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:检测点是否在轮廓内

    在这里插入图片描述
    Imgpro--Transform:该大类下面主要是图像的各种变换,包括
     GetAffineTransform.vi:实现图像仿射
     getPerspectiveTransform.vi:实现透视变换
     getRotationMatrix2D.vi:图像旋转
     warpAffine.vi:仿射变换
     warpPerspective.vi:透视变换

    在这里插入图片描述

    geometry(几何图形类)

    该大类主要是点的合集,比如说轮廓。
    在这里插入图片描述

    calib3d(相机定标和三维重建类)

    该大类主要是对相机进行标定,并进行三维重建。主要包括
     calibrateCamera.vi:相机标定
     CalibrateHandEye.vi:手眼标定
     ComputeCorrespondEpilines.vi:为一幅图像中的点计算其在另一幅图像中对应的对极线
     copy_vectorPoint2f.vi:复制点集
     drawChessBoardCorners.vi:绘制检测到的棋盘角点
     findChessboardCorners.vi:寻找棋盘图的内角点位置
     findFundamentalMat.vi:计算两个视角的基础矩阵
     initCameraMatrix2D.vi:得到3D到2D的初始化的摄像机矩阵
     initUndistortRectifyMap.vi:计算无畸变和修正转换关系
     remap.vi:一幅图像中某位置的像素放置到另一个图片指定位置
     stereoCalibrate.vi:双目摄像机标定
     steroRectify.vi:对校准过的摄像机计算修正变换
     stereoRectifyUncalibrated.vi:对未校准过的摄像机计算修正变换
     undistort.vi:校正图像因相机镜头引起的变形
     undistortPoints.vi:迭代去畸变矫正

    在这里插入图片描述

    dnn(深度神经网络类)

    OpenCV中的dnn(Deep Neural Network module)模块是专门用来实现深度神经网络相关功能的模块。OpenCV自己并不能训练神经网络模型,但是它可以载入别的深度学习框架(例如TensorFlow、pytorch、Caffe等等)训练好的模型,然后使用该模型做inference(预测)。而且OpenCV在载入模型时会使用自己的dnn模块对模型重写,使得模型的运行效率更高。所以如果你想在OpenCV项目中融入深度学习模型,可以先用自己熟悉的深度学习框架训练好,然后使用OpenCV的dnn模块载入。主要包括:
     blobFromImage.vi:对即将进入神经网络的彩色图片进行预处理
     blobFromImage_1c.vi:对即将进入神经网络的灰度图片进行预处理
     NMSBoxes.vi:对检测的到的boxes和对应的scores进行非极大值抑制处理,消除冗余重叠的框
     NMSRotatedBoxes.vi:对检测的到的倾斜boxes和对应的scores进行非极大值抑制处理,消除冗余重叠的框
     ORC:文字识别相关

    在这里插入图片描述

    dnn.Net(深度神经网络类)

    该大类主要实现模型的加载与推理
     readNetFromTensorflow.vi:载入一个tensorflow生成的pb文件和与其对应的pbtxt配置文件,返回它的网络
     readNetFromDarknet.vi:载入一个darknet生成的cfg配置文件和weights模型文件(通常为yolov3和yolov4),返回它的网络
     readNetFromONNX.vi:载入一个通用的神经网络模型文件ONNX(通常由pytorch、tensorflow、caffe等框架生成),返回它的网络
     readNetFromModelOptimizer.vi:载入英特尔的模型优化器中间表示,IR:具有网络拓扑的 XML 配置文件和具有训练权重的二进制文件bin,返回它的网络
     setInput.vi:将图像(或矩阵)输入至神经网络net中
     forward.vi:神经网络进行推理,并得到某一层的结果,如name为空,则返回最后一层的结果
     forward_muti_outputs.vi:神经网络进行推理,根据输入端的名字names,得到多层的结果
     getLayerNames.vi:获取该网络所有层的名字
     getUnconnetedLayerNames.vi:获取不连接的输出层的名字
     setPreferableBackend.vi:要求网络在其支持的地方使用特定的计算后端
     setPreferableTarget.vi:要求网络在特定目标设备上进行计算

    在这里插入图片描述

    ml(机器学习模块)

    该大类主要是一组统计分类、回归分析、数据聚类的类与统计模式函数(目前主要是SVM支持向量机)

    在这里插入图片描述

    ml.SVM该大类下面主要是SVM的创建、预测与训练的vi
    在这里插入图片描述

    python(矩阵转换为python格式)

    在这里插入图片描述

    feature2d(特征检测与匹配)

    该大类主要是实现特征点提取与匹配。
     DescriptorMatcher:匹配特征向量的抽象类
     draw_KeyPoints.vi:快速绘制特征点
     draw_matches.vi:绘制关键点的匹配情况, 一左一右两张图像,匹配的关键点之间用线条链接
     matcher_knnMatch.vi:
     matcher_match.vi:
     SIFT:创建SIFT特征检测器
     SIFT_Compute.vi:计算关键点描述符
     SIFT_Detector.vi:检测关键点
     Vector_DMatch:匹配结果点集
     Vector_KeyPoints:特征点集

    在这里插入图片描述

    videoWriter

    该类为视频流读写类

    cuda(显卡类)

    该大类主要是获取cuda设备相关参数的类。
     getCudaEnabledDeviceCount.vi:获取 CUDA 的设备数
     getDevice.vi:获取CUDA设备属性
     setDevice:设置CUDA设备属性
    在这里插入图片描述

    face(人脸检测&人脸识别)

    该大类主要是实现人脸检测和人脸识别。主要有两大类:基于YuNet的人脸检测器FaceDetectorYN和基于DNN的人脸识别器FaceRecognizerSF。

    在这里插入图片描述

     FaceDetectorYN-->detect.vi:从给定图像中检测人脸,获得人脸区域和5点landmark
     FaceDetectorYN-->FaceDetectorYN_Creat.vi:创建人脸检测器的实例类
    在这里插入图片描述
     FaceRecognizerSF-->alignCrop.vi:对齐图像以将面部放在标准位置
     FaceRecognizerSF-->Create.vi:使用给定参数创建此类的实例
     FaceRecognizerSF-->feature.vi:从对齐的图像中提取人脸特征
     FaceRecognizerSF-->match.vi:计算两个人脸特征之间的距离

    在这里插入图片描述

    二、开放神经网络交互(ONNX)工具包VI简介

    已经安装好的ONNX工具包位于程序框图-函数选板-Addons-VIRobotics-onnx内容包括:获取onnx可用的provider、onnx神经网络调用推理等功能。如下图所示:

    在这里插入图片描述

    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:动态vi,获取某层输出
     release.vi:释放资源
     delete.vi:删除

    在这里插入图片描述

    三、工具包下载链接

    总结

    以上就是今天要给大家分享的内容。大家可根据链接下载工具包并进行安装。

    如果有问题可以在评论区里讨论,提问前请先点赞支持一下博主哦,如您想要探讨更多关于LabVIEW与人工智能技术,欢迎加入我们的技术交流群705637299。

    更多内容,可关注:https://blog.csdn.net/virobotics

    **如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏

  • 相关阅读:
    MMDetection安装流程与测试
    使用kubeadm方式搭建Kubernetes集群
    C++字符串类 - std::string - 常用总结
    远程开户身份证识别OCR技术:革新传统流程,实现高效身份验证
    C/C++数据结构——[NOIP2004]FBI树(二叉树)
    经验分享:判断字符串的显示宽度
    组合式API_生命周期
    【云原生】Kubernetes编排工具精讲
    hex文件合并
    The Missing Semester - 第五讲 学习笔记(二)
  • 原文地址:https://www.cnblogs.com/virobotics/p/17434640.html