labview调用halcon实现目标检测-obb源码labview2018 64位halcon22.05里面包含模型和测视集最近在搞目标检测相关项目发现LabVIEW调用Halcon实现目标检测 - OBBOriented Bounding Box定向边界框这个组合挺有意思今天就来跟大家分享一下具体实现过程。咱们用的是LabVIEW 2018 64位版本搭配Halcon 22.05并且我这里面还包含了训练好的模型和测试集哦。一、环境搭建LabVIEW 2018 64位安装这个安装过程相对常规按照安装向导一步步来就行记得在安装过程中留意选择64位版本。安装完成后可以先打开LabVIEW熟悉一下界面看看有没有报错啥的。Halcon 22.05安装Halcon的安装也不复杂。安装时注意选择正确的版本路径安装完成后它会提供一系列的函数库和工具这是我们实现目标检测的重要基础。二、LabVIEW调用Halcon关键代码解读初始化Halcon环境在LabVIEW中要调用Halcon首先得初始化环境。下面这段代码就实现了这个功能// 初始化Halcon环境 Call Library Function Node Library Name: halconcpp.dll Function Name: HOperatorSet::HDevOpenWindow Inputs: 0 (width), 0 (height), 100 (row), 100 (column), 0 (parent), visible, , WindowHandle这里通过调用HOperatorSet::HDevOpenWindow函数来打开一个Halcon窗口为后续显示图像和检测结果做准备。width和height设置为0表示窗口大小自适应row和column指定了窗口在屏幕上的起始位置parent设为0表示该窗口没有父窗口“visible”表示窗口可见。加载模型模型是目标检测的核心加载模型的代码如下// 加载训练好的OBB目标检测模型 Call Library Function Node Library Name: halconcpp.dll Function Name: HOperatorSet::ReadClassifier Inputs: path_to_your_model/classifier.hclass, ClassifierHandle这里通过HOperatorSet::ReadClassifier函数从指定路径读取训练好的模型文件“classifier.hclass”并将模型句柄存储在ClassifierHandle中后续检测就靠这个模型句柄来操作了。图像读取与预处理// 读取图像 Call Library Function Node Library Name: halconcpp.dll Function Name: HOperatorSet::ReadImage Inputs: path_to_your_image/image.jpg, Image // 图像灰度化 Call Library Function Node Library Name: halconcpp.dll Function Name: HOperatorSet::Rgb1ToGray Inputs: Image, GrayImage首先用HOperatorSet::ReadImage函数读取指定路径的图像接着为了方便后续处理使用HOperatorSet::Rgb1ToGray函数将彩色图像转换为灰度图像。灰度图像在很多图像处理算法中计算量更小也更有利于特征提取。目标检测 - OBB执行// 执行OBB目标检测 Call Library Function Node Library Name: halconcpp.dll Function Name: HOperatorSet::ClassifyObject Inputs: GrayImage, ClassifierHandle, method_name, 0, [], [], Row, Column, Angle, Score这里调用HOperatorSet::ClassifyObject函数输入灰度图像和之前加载好的模型句柄以及一些检测参数。函数执行后会返回检测到的目标的中心行坐标Row、中心列坐标Column、旋转角度Angle以及置信度分数Score这些信息可以帮我们确定目标的位置和类别置信度。结果显示// 在Halcon窗口显示检测结果 Call Library Function Node Library Name: halconcpp.dll Function Name: HOperatorSet::DispObj Inputs: Image, WindowHandle Call Library Function Node Library Name: halconcpp.dll Function Name: HOperatorSet::DispMessage Inputs: WindowHandle, Detected Object, window, 12, 12, black, true通过HOperatorSet::DispObj函数在之前打开的Halcon窗口中显示原始图像然后用HOperatorSet::DispMessage函数在窗口上显示提示信息“Detected Object”这样就能直观地看到检测结果啦。三、测试集使用手头的测试集就派上用场啦。将测试集中不同的图像路径替换到读取图像的代码部分就能对不同图像进行目标检测 - OBB测试看看模型的泛化能力如何。多测试一些图像也能发现模型可能存在的问题比如误检、漏检等情况方便进一步优化。labview调用halcon实现目标检测-obb源码labview2018 64位halcon22.05里面包含模型和测视集总之通过LabVIEW调用Halcon实现目标检测 - OBB是个挺有趣且实用的事儿希望我的分享能帮到大家大家一起在目标检测的坑里越挖越深吧
LabVIEW调用Halcon实现目标检测 - OBB:从环境搭建到源码解读
labview调用halcon实现目标检测-obb源码labview2018 64位halcon22.05里面包含模型和测视集最近在搞目标检测相关项目发现LabVIEW调用Halcon实现目标检测 - OBBOriented Bounding Box定向边界框这个组合挺有意思今天就来跟大家分享一下具体实现过程。咱们用的是LabVIEW 2018 64位版本搭配Halcon 22.05并且我这里面还包含了训练好的模型和测试集哦。一、环境搭建LabVIEW 2018 64位安装这个安装过程相对常规按照安装向导一步步来就行记得在安装过程中留意选择64位版本。安装完成后可以先打开LabVIEW熟悉一下界面看看有没有报错啥的。Halcon 22.05安装Halcon的安装也不复杂。安装时注意选择正确的版本路径安装完成后它会提供一系列的函数库和工具这是我们实现目标检测的重要基础。二、LabVIEW调用Halcon关键代码解读初始化Halcon环境在LabVIEW中要调用Halcon首先得初始化环境。下面这段代码就实现了这个功能// 初始化Halcon环境 Call Library Function Node Library Name: halconcpp.dll Function Name: HOperatorSet::HDevOpenWindow Inputs: 0 (width), 0 (height), 100 (row), 100 (column), 0 (parent), visible, , WindowHandle这里通过调用HOperatorSet::HDevOpenWindow函数来打开一个Halcon窗口为后续显示图像和检测结果做准备。width和height设置为0表示窗口大小自适应row和column指定了窗口在屏幕上的起始位置parent设为0表示该窗口没有父窗口“visible”表示窗口可见。加载模型模型是目标检测的核心加载模型的代码如下// 加载训练好的OBB目标检测模型 Call Library Function Node Library Name: halconcpp.dll Function Name: HOperatorSet::ReadClassifier Inputs: path_to_your_model/classifier.hclass, ClassifierHandle这里通过HOperatorSet::ReadClassifier函数从指定路径读取训练好的模型文件“classifier.hclass”并将模型句柄存储在ClassifierHandle中后续检测就靠这个模型句柄来操作了。图像读取与预处理// 读取图像 Call Library Function Node Library Name: halconcpp.dll Function Name: HOperatorSet::ReadImage Inputs: path_to_your_image/image.jpg, Image // 图像灰度化 Call Library Function Node Library Name: halconcpp.dll Function Name: HOperatorSet::Rgb1ToGray Inputs: Image, GrayImage首先用HOperatorSet::ReadImage函数读取指定路径的图像接着为了方便后续处理使用HOperatorSet::Rgb1ToGray函数将彩色图像转换为灰度图像。灰度图像在很多图像处理算法中计算量更小也更有利于特征提取。目标检测 - OBB执行// 执行OBB目标检测 Call Library Function Node Library Name: halconcpp.dll Function Name: HOperatorSet::ClassifyObject Inputs: GrayImage, ClassifierHandle, method_name, 0, [], [], Row, Column, Angle, Score这里调用HOperatorSet::ClassifyObject函数输入灰度图像和之前加载好的模型句柄以及一些检测参数。函数执行后会返回检测到的目标的中心行坐标Row、中心列坐标Column、旋转角度Angle以及置信度分数Score这些信息可以帮我们确定目标的位置和类别置信度。结果显示// 在Halcon窗口显示检测结果 Call Library Function Node Library Name: halconcpp.dll Function Name: HOperatorSet::DispObj Inputs: Image, WindowHandle Call Library Function Node Library Name: halconcpp.dll Function Name: HOperatorSet::DispMessage Inputs: WindowHandle, Detected Object, window, 12, 12, black, true通过HOperatorSet::DispObj函数在之前打开的Halcon窗口中显示原始图像然后用HOperatorSet::DispMessage函数在窗口上显示提示信息“Detected Object”这样就能直观地看到检测结果啦。三、测试集使用手头的测试集就派上用场啦。将测试集中不同的图像路径替换到读取图像的代码部分就能对不同图像进行目标检测 - OBB测试看看模型的泛化能力如何。多测试一些图像也能发现模型可能存在的问题比如误检、漏检等情况方便进一步优化。labview调用halcon实现目标检测-obb源码labview2018 64位halcon22.05里面包含模型和测视集总之通过LabVIEW调用Halcon实现目标检测 - OBB是个挺有趣且实用的事儿希望我的分享能帮到大家大家一起在目标检测的坑里越挖越深吧