Halcon提供三种类型神经网络:
1、Classification(分类)
2、Object Detection(目标检测)
3、Semantic Segmentation(语义分割)
工作流程:
一、准备网络和数据
- 使用的网络:可以使用预训练过的网络或者创建一个新的网络,我使用的是18.11.1.0版本有三种网络供选择:
'pretrained_dl_classifier_compact.hdl':需要图像格式为'real',该网络不包含全连接层,要求最小图片尺寸大于15*15
'pretrained_dl_classifier_enhanced.hdl':比上个能处理更复杂的图像,需要图像格式为'read',最小尺寸要求大于47*47,
'pretrained_dl_classifier_resnet50.hdl':需要图像格式为'real',最小尺寸要求大于32*32.
上述三种网络均需要设置基本参数:'image_width','image_height','image_num_channels','image_range_min','image_range_max‘,即图像宽高、通道数、灰度范围。 - 准备数据:分类好训练样本的种类
- 准备对应需求的大量图片(例如:图像维度、灰度范围等),在原图基础上还需要进行预处理,剔除背景影响,最大程度突出主体部分。
预处理操作:阈值化,提取特征roi,转换图像格式到'real',合成3通道图像等等。 - 做好训练集、验证集、测试集:一般地按照70%,15%,15%比例分类。
二、训练网络和评估训练进度
- 设置超参数适用任务和系统
set_dl_classifier_param:设置'batch_size','batch_size_device','classes','gpu','image_width','image_height‘,'image_num_channels','image_dimensions','learning_rate','momentum’,'runtime','runtime_init','weight_prior'参数名 名称 定义 运用 批量大小 batch_size 批处理中图像(和相应标签)的数量,即在一次训练迭代中同时处理的图像数量。 set_dl_classifier_param(DLClassifierHandle,'batch_size‘,Batch_Size)
批量大小设备
batch_size_device 传输到设备存储器的批处理中的图像数目。设置为小于等于批量大小。 set_dl_classifier_param
(DLClassifierHandle,'batch_size_device‘,Batch_Size)