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(畢竟是免費的嘛),會不定期分享一些案例與學習心得,大家相互學習,交流!