Halcon深度学习-企业项目实战(核酸管外观缺陷检测)
1、项目需求
缺陷1:
缺陷描述:组装不良,底部塑胶局部凸出,超过上塑胶弧线部分。
评判标准:明显肉眼可见为不良,微小凸出部分可忽略。
风险点:微小漏出部分或者有杂质刚好在这个位置容易造成误判。
缺陷2:
缺陷描述:组装不良,塑胶与白色壳边缘未贴合或者覆盖上方。
评判标准:塑胶与白色凸出部之间有间隙或者覆盖到上方都NG。
风险点:轻微覆盖时容易造成误判。
缺陷3:
缺陷描述:塑胶品表面刮伤。
评判标准:塑胶表面刮伤,造成实质破损。
风险点:杂质或者塑胶上本身的不规则纹路容易造成误判
缺陷4:
缺陷描述:漏装橡胶件
评判标准:无橡胶件
缺陷5:
缺陷描述:橡胶件卷起
评判标准:不可以有卷起
提示:卷起必然会塑胶件白色凸起有间隙
缺陷6:
缺陷描述**:白色塑胶件凸起有破损
评判标准:不可有破损
2、收集相关的缺陷图片:
OK图片地址:
链接:OK图片 提取码:8ylg (链接失效私信联系)
NG图片地址:
链接:NG图片提取码:7exv (链接失效私信联系)
3、缺陷图片分析、标注图像:
标注过程视频地址:
标注文件地址:
CSDN下载
链接:标注文件提取码:azwb (链接失效私信联系)
4、Halcon深度学习代码:
总体代码
dev_update_off ()
*读数据
read_dict ('新项目.hdict', [], [], DictHandle)
*Xml
* Xml_To_Dict_DeepBool ('Train_Images/JPEGImages', 'Train_Images/Temp', 'Xml', DictHandle)
*Dict_To_Xml
* Dict_To_Xml_DeepBool (DictHandle, 'Voc', 'Temp')
*by_num
* Cut_Images_bynum (DictHandle, 2, 2, 'png', 255, DictHandle)
*by_size
* Cut_Images_bysize (DictHandle, 800, 800, 'png', 255, DictHandle)
*[570,517,3]
*数据预处理
Data_preprocessing_Rectangle1 (640, 512, 1, 'compact', DictHandle, 0, 'png', 255)
*训练
Data_Train_Rectangle1 (2, 0.0005, 0.9, 300, 0.0005, 1, false, 'gpu', [], [])
stop ()
*模型评估
Data_Evaluate_Rectangle1 (0.5, 2, true, 0.7, 0.2, 0.5)
*推理初始化
Data_Infer_Init_Rectangle1 (1, 0.5, true, 0.2, 0.7, DLModelHandle, DLPreprocessParam)
*Data_Infer_Online
dev_get_window (WindowHandle_now)
dev_clear_window ()
set_display_font (WindowHandle_now, 16, 'mono', 'true', 'false')
get_dict_tuple (DictHandle,'class_names' , class_names)
list_files ('ng', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1
read_image (Image, ImageFiles[Index])
Data_Infer_OnLine_Rectangle1 (Image, Rectangle, DictHandle, DLPreprocessParam, DLModelHandle, bbox_row1, bbox_col1, bbox_row2, bbox_col2, bbox_class_id, bbox_confidence)
dev_clear_window ()
dev_display (Image)
ifelse (|bbox_class_id|)
gen_rectangle1 (Rectangle, bbox_row1, bbox_col1, bbox_row2, bbox_col2)
boundary (Rectangle, Rectangle, 'inner')
dev_display (Rectangle)
* dev_disp_text (class_names[bbox_class_id]+' : '+bbox_confidence, 'image', bbox_row1, bbox_col1, 'red', 'box', 'false')
dev_disp_text ('ng: '+bbox_confidence, 'image', bbox_row1, bbox_col1, 'red', 'box', 'false')
*stop ()
else
dev_disp_text ('ok_ok_ok_ok_ok_ok', 'image', 300, 600, 'red', 'box', 'false')
endif
wait_seconds (0.2)
endfor
5、训练结果展示:
已训练模型下载:
演示效果:
6、C# 引擎加载Halcon深度学习Demo:
7、项目资料下载地址:
链接:项目资料提取码:1he9 (链接失效私信联系)