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无响应。这个问题可能得多线程解决了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)