classify_fruit_deep_learning.hdev 逐段分析
展示如何训练一个水果分类器。
初始化
dev_update_off ()
dev_close_window ()
WindowWidth := 800
WindowHeight := 600
dev_open_window_fit_size (0, 0, WindowWidth, WindowHeight, -1, -1, WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
设置随机种子
set_system ('seed_rand', 42)
展示介绍文字“dev_disp_introduction_text”。(仅作可视化展示作用)
dev_disp_introduction_text ()
*** 这是个封装函数,鼠标右击算子点击“显示函数”查看函数具体内容
stop ()
dev_close_window ()
dev_resize_window_fit_size (0, 0, WindowWidth, WindowHeight, -1, -1)
dev_clear_window ()
网络及训练数据设置
read_dl_classifier ('pretrained_dl_classifier_compact.hdl', DLClassifierHandle)
*** “pretrained_dl_classifier_compact.hdl” 是halcon自带的一个分类网络,另外还有“pretrained_dl_classifier_enhanced.hdl”和“pretrained_dl_classifier_resnet50.hdl”,参数量依次增大,自行根据实际情况选择。
RawDataFolder := 'food/' + ['apple_braeburn','apple_golden_delicious','apple_topaz','peach','pear']
*** 训练图像路径,不同类别的图片在不同文件夹内;输出是
read_dl_classifier_data_set (RawDataFolder, 'last_folder', RawImageFiles, Labels, LabelIndices, Classes)
*** 这是个封装函数,鼠标右击算子点击“显示函数”查看函数具体内容
*** 读取训练图像数据并进行分类,输出是后面几个:RawImageFiles, Labels, LabelIndices, Classes;
*** RawImageFiles:图片的详细路径:比如'C:/Users/Public/Documents/MVTec/HALCON-18.11-Steady/examples/images/food/apple_braeburn/apple_braeburn_001.png'
*** Labels:RawImageFiles对应的标签
*** LabelIndices:标签的序号
*** Classes:类别的名称
PreprocessedFolder := 'fruit_preprocessed'
*** 图像预处理后,得到的图像的保存路径
OverwritePreprocessingFolder := false
*** 一个判断标志(当存在PreprocessedFolder ,是否需要再次进行图像预处理操作,可结合后面代码理解)
RemovePreprocessingAfterEx