Halcon deep learning之目标检测笔记(二)

Halcon deep learning之目标检测笔记(二),第1张

在上一步,完成了网络的创建和数据的预处理。接下来准备对这个网络进行训练,通过训练得到一个可以用于目标检测的深度学习网络模型。这里首先要确定上一步输出的模型和数据集的存放路径是可用的,否则训练环节会因为缺少输入而报错。

Halcon的参考样例detect_pills_deep_learning_2_train.hdev详述了这一过程,这里做一些学习记录。

设置输入路径,主要是两个,一是上一步的预训练的以.hdl结尾的模型,另一个是数据集和样本数据字典的存放路径。

输出路径也是两个,一是存放最佳评估模型的路径,一个是最终训练完成的模型路径。

首先用check_files_availability验证预处理模型和数据集路径是否正确。没有问题的话可以开始读取。

使用read_dl_model读取前一步初始化后的网络模型,得到模型的句柄DLModelHandle。

接着用read_dict读取预处理后的数据集,得到数据字典句柄DLDataset。

设置模型参数主要通过set_dl_model_param算子,以修改属性值的方式改变关键参数的值。该算子原型如下:

set_dl_model_param( : : DLModelHandle, GenParamName, GenParamValue : )

输入三个参数:

注意,如果将'runtime'的值改为了’gpu’,则要确定cuDNN和cuBLAS已经成功安装了。

通过set_dl_model_param算子,可以将本文开头提到的设置的模型的基本参数传递给模型句柄DLModelHandle。如将'batch_size'设为之前的batch_size的值等等。

1)创建训练参数。

这里使用create_dl_train_param算子创建一个训练参数的字典,用于存放训练参数和训练效果可视化的参数。这些参数可以做个说明:

2)训练网络

接下来是最耗时的部分,即使用train_dl_model算子进行深度学习网络模型的训练。算子如下:

train_dl_model( : : DLDataset, DLModelHandle, TrainParam, StartEpoch : TrainResults, TrainInfos,EvaluationInfos)

前四个参数是输入参数,后三个是输出参数。

接着到了第三步,即验证模型的部分。

可能原因如下:

stop算子停止HDevelop程序的连续程序执行。如果发生这种情况,即使下面有大量的注释或其他不可执行的程序行,PC(程序计数器)仍停留在stop语句(而不是放在下一个可执行程序行),以便直接显示程序中断的原因。

算子相当于菜单栏中的stop行动(F9)。程序可以通过run (F5)继续。

可以通过在首选项对话框( preferencesdialog)中设置时间参数来重新定义行为。执行不会停止,而是在等待指定的时间段后继续执行。在这段时间内,程序可以被F9中断或者由一个运行命令继续。这由程序窗口第一列中的图标标记。

开始做Halcon的上位机,选用Visual Studio 10.0平台。

C#

第一步:

Visual Studio 10.0设置引用HalconDotNet.dll

01.新建项目

02.选择Visual C#

03.修改文件名

04.确认

第二步

Visual Studio 10.0设置引用HalconDotNet.dll

01.选择“解决方案资源管理器”

02.选择“引用”,右键

03.选择“添加引用”

第三步

Visual Studio 10.0设置引用HalconDotNet.dll

01.在添加引用选项卡选择浏览

02.选择路径:X:\Program Files\MVTec\HALCON-10.0\bin\dotnet20

03.选择“HalconDotNet.dll”

04.确认

第四步

Visual Studio 10.0设置引用HalconDotNet.dll

01.选择“工具箱”

02.选择“所有工具”或任意工具控件,右键

03.选择“选择项”

第五步

Visual Studio 10.0设置引用HalconDotNet.dll

选择Halcon图像控件

Visual Studio 10.0设置引用HalconDotNet.dll

还有VB的设置,如下图:

Visual Studio 10.0设置引用HalconDotNet.dll

01.选择项目名称

02.点击显示全部文件,取消隐藏,就可以看到引用

03.引用,邮件

04.添加,之后的步骤和C#一样

Visual Studio 10.0设置引用HalconDotNet.dll

选择工具控件,步骤和C#基本一样。

VB的第二张图,步骤如下

01.选择“工具箱”

02.选择“所有工具”或任意工具控件,右键

03.选择“选择项”

04.在“.net framwork组件”的选项卡中,选择浏览

05.出来的对话框中,选择X:\Program Files\MVTec\HALCON-10.0\bin\dotnet20

06.选择“HalconDotNet.dll”

07.确认

08.这时候的工具栏的控件是HWinwow 控件。

kamuixiao :

X:\Program Files\MVTec\HALCON-10.0\bin\dotnet20

路径下的无法使用,在.net framework组件无法找到

X:\Program Files\MVTec\HALCON-10.0\bin\dotnet35

路径下的可用,在.net framework组件下可以找到,并且在工具箱上能够找到并使用,但是功能无法实现,如下图

我不作其他动作,程序代码内容仅是运行时候读取一张图片,

在调试的时候能够运行,但读不到图片……楼主在VB.NET环境下正常运行了吗?求解~

Visual Studio 10.0设置引用HalconDotNet.dll

x8515618 :

定义错了

dim m_hWindow As Htuple '这是一个句柄,不是窗体控件

x8515618 :

Dim m_hWindow As Htuple = Nothing

kamuixiao :

谢谢楼上的建议,但是我试了下发现仍然不行,我觉得问题不是出在这里,不知道使用VB.NET的各位有没有遇到过,反正我是没能正常实现过一次的,输出显示的错误情况如图:

Visual Studio 10.0设置引用HalconDotNet.dll

x8515618 :

你只是读取了图片,都没有显示图片呢

灵峤 lencue :

你最开始新建项目的时候选择的“.net框架”版本是多少的?.net 2.0就用dotnet20文件夹,3.5就用dontnet35文件夹,你再查看一下,会不会是这个问题,看能不能解决。

irun999 :

请问楼主,用在VS2008中用C#读入一直比较大的图片的时候只是显示部分图片,如何解决?

灵峤 lencue :

dev_resize_window_fit_image(ho_Image, 0, 0, 300, 400)

用这个算子,在C#的program.cs中可以用的,后面的300,400就是显示这个图片的大小的,会被缩放到这个比例。

irun999 :

请问在VS 2005 C# 处理视频,程序老是死掉,怎么办?视频无法实时显示。 是不是视频太大了,VS2005处理不够来?该怎么办?

灵峤 lencue :

采用C#的多线程,具体怎么使用,我还在学习中,要是有进展,再一起讨论。

好吧,我写漏了,但事实上我把显示补上,然后按照兄台所说修改定义后仍然没能成功!~附图:

Visual Studio 10.0设置引用HalconDotNet.dll

irun999 :

今天下午发现视频无法显示是因为hdevelop导出程序的死循环函数里没有 HOperatorSet.DispObj 显示函数。但是关闭程序就会出现vshost.exe无响应。这个问题可能得多线程解决了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11581615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存