Halcon在19.11版本中推出了深度学习异常值检测方法,该方法属于无监督式的深度学习方法,使用该算法可以在只有正样本的情况下训练模型。据官方介绍,该方法具有以下优点:
1 无需标注
2 只需少量正样本即可进行训练
3 可以在CPU下进行训练
4 具有较快的推断速度
官方的例程中,分为四个步骤:
1 数据准备
通过read_dl_dataset_anomaly 和 split_dl_dataset 读取与分割样本, set_dl_model_param设置模型的一些初始化参数,
2 模型训练
通过set_dict_tuple 和 create_dl_train_param设置训练的超参数(例如正则化噪声、每个epoch大小等);之后 train_dl_model训练模型得到结果,通过write_dl_model进行保存。之后通过compute_dl_anomaly_thresholds计算分类阈值,这个算子比较关键,可以得出训练时的分类标准(异常值分割阈值和分类阈值)这两个值作为后续的判定标准。
3 模型评估
4 模型推理
read_dl_samples读取数据,apply_dl_model初始化模型,通过threshold_dl_anomaly_results得到模型推理的值,通过与之前训练得到阈值进行比较,从而得到最终的判定结果。
友情提示:在一个苹果客户的项目中试验使用过,但效果并不理想,也可能是苹果的要求比较严(′⌒`),该方法还是比较适合缺陷较为明显的项目。
所在公司以Halcon为主,个人同时也在学习使用OpenCV(毕竟是免费的嘛),会不定期分享一些案例与学习心得,大家相互学习,交流!
关注公众号,更多知识内容