设置首页收藏本站
开启左侧

[原创]C#联合Halcon深度学习源代码分享DeepLearning_MNIST_Halcon

[复制链接]
Tigger 发表于 2019-10-31 16:10:47 | 显示全部楼层 |阅读模式
本帖最后由 Tigger 于 2019-10-31 21:29 编辑

#DeepLearning_Classification_MNIST_Halcon
Key Word:C#,Halcon,DeepLearning,MNIST,Classification

本例基于Halcon深度学习,运行需要安装Halcon深度学习环境,参考https://blog.csdn.net/xuanbi8560/article/details/80911015

本文软件配置如下:
1、halcon-19.05.0.0-windows.exe
2、halcon-19.05.0.0-windows-deep-learning.exe
3、cuda_10.1.243_426.00_win10.exe
4、cudnn-10.1-windows10-x64-v7.6.4.38.zip
5、Visual Studio 2019
硬件配置:
CPU:英特尔 Core i7-6700HQ @ 2.60GHz 四核
GPU:Nvidia GeForce GTX 950M ( 2 GB / 联想 )

1 预处理图像
1.1 选择图像目录
所选目录可以是同时包含训练图像和测试图像的主目录,也可以是训练图像目录或测试图像目录,优先选择主目录.如本例提供图片选择mnist_images、Train_images或Test_images目录(不知道本例图片在哪的请先将“mnist_images.rar”解压后使用). 如果使用其它图像,需要目录格式与本例一致.

1.2 预处理图像
在进行此步图像预处理时,如果使用其它图像,可以先对图像进行裁剪、旋转、翻转或滤波等普通图像处理,然后再使用深度学习算法处理图像使其能够用于训练.参考Halcon算子描述preprocess_dl_classifier_images.
预处理后的数据会自动保存在mnist_images\Preprocessed_images文件夹内.如果提示已有预处理好的数据,可以跳过此步直接开始训练,也可以选择删除已有数据重新预处理图像.
screenshot (0).png

2 训练分类器
2.1 参数设置
建议使用不同参数设置多次进行训练,了解不同参数设置对训练的影响,可以找到更好的训练参数设置.
注意:BatchSize太大容易导致显存溢出,太小可能不收敛;NumEpochs训练次数越多需要时间越长;LearningRate学习率太大收敛速度快但可能会陷入局部最优,学习率太小收敛速度慢,所需训练次数多;TrainingPercent训练数据太少可能会过拟合;ValidationPercent用于验证的数据比例.
学习率变化曲线表达公式:LearningRate(Epoch) = InitialLearningRate * Math.Pow(LearningRateStepRatio , Math.Floor(Epoch / LearningRateStepEveryNthEpoch));
screenshot (5).png

2.2 训练分类器
训练过程时间可能较长,需要耐心等待...
screenshot (1).png
2.3 保存分类器
训练完成会自动保存训练模型结果,训练模型默认保存名称为"classifier+图像文件夹名称.hdl",默认保存目录为当前程序运行目录,点击此按钮可以手动另存到其它地方,分类器扩展名应为.hdl

2.4 误差分析
以验证数据集计算训练模型的预测值与实际值得差异,生成混淆矩阵显示.可以分析哪类数据容易被识别错误.
screenshot (2).png

3 图像识别测试
3.1 读取分类器
如果已有训练好的分类器,可以不进行前面1、2两步,直接读取已训练好的分类器进行测试.如果刚刚完成了分类器训练,此步也可以不操作,程序会默认将前面训练的结果用于测试.

3.2 测试分类器
测试图像可以手动选择新图像测试,也可以随机从测试图片文件夹中自动选择图片;注意,测试图像也需要使用训练模型时相同的深度学习算法处理预处理图像后再测试.
screenshot (3).png

除了本例图像外,还可以使用其他图像集进行训练和测试
screenshot (4).png

源代码地址:https://github.com/675491918/DeepLearning_MNIST_Halcon

本人也是初学者,练习写的,欢迎下载学习交流,转帖请引用本文地址https://www.51halcon.com/thread-3881-1-1.html









奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
知足常乐 发表于 2019-11-1 13:53:38 | 显示全部楼层
多谢多谢
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
shlucky 发表于 2019-11-29 11:23:41 | 显示全部楼层
楼主 看你的分享,下载了您的源码,提示 不存在hv_Inference_Confidences 在Test.cs 93行和97行
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| Tigger 发表于 2019-11-29 20:04:28 | 显示全部楼层
shlucky 发表于 2019-11-29 11:23
楼主 看你的分享,下载了您的源码,提示 不存在hv_Inference_Confidences 在Test.cs 93行和97行 ...

我更新test.cs,你在网页上把这个文件打开,代码全部复制下来替换一下就可以了
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
顽主gxy 发表于 2019-12-4 10:07:23 | 显示全部楼层
你好,请问一下我想用CPU运行,如果只修改了模型参数的运行环境那里为CPU的话,运行到train_dl_model_batch (DLModelHandle, DLSampleBatch, TrainResult)就会报错,说不支持CPU,请问一下还需要在哪里修改吗

点评

Halcon目前还不支持使用CPU进行训练,只是推理可以使用CPU了  发表于 2019-12-4 16:24
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
工控凌云 发表于 2020-3-21 15:19:35 | 显示全部楼层
楼主,我看你的评论中说Halcon还不支持CPU训练,但是halcon19.05 这个版本的官方介绍说是可以不依赖GPU的,怎么理解呢?
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
xingkong179 发表于 2020-7-16 10:59:02 | 显示全部楼层
楼主你好,我下载了你的文件,为什么VS打开之后出现一堆报错呢
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表