考慮使用MLP 分類器
有時候問題不好用簡單的邏輯判斷
建議使用機器學習的方法 只要抓取有效特徵 分類效果通常不錯 而且僅使用CPU
訓練很快 推論也很快 不需要 高貴顯卡
- dev_close_window()
- dev_open_window(0, 0, 512, 512, 'black', WindowHandle)
- read_image (TopDefect, 'C:/Users/genel/OneDrive/桌面/塑膠件瑕疵/top_defect.png')
- read_image (Normal01, 'C:/Users/genel/OneDrive/桌面/塑膠件瑕疵/normal_01.jpg')
- decompose3(Normal01, Image1, Image2, Image3)
- get_top(Image3, top1, base_edge, base_region)
- shape_trans (top1, RegionTrans, 'ellipse')
- smallest_rectangle1(RegionTrans, Row11, Column11, Row2, Column2)
- partition_rectangle (RegionTrans, Partitioned, (Column2-Column11)/20.0, (Row2-Row11))
- area_center(Partitioned, Area, Row_p, Column_p)
- gen_cross_contour_xld(Cross, Row_p, Column_p, 6, 0)
- **ref row
- area_center(base_region, Area2, Row_ref, Column_ref)
- dif:=Row_ref-Row_p
- ***----------------------------
- decompose3(TopDefect, Image11, Image21, Image31)
- get_top(Image31, top11, base_edge1, base_region1)
- shape_trans (top11, RegionTrans1, 'ellipse')
- smallest_rectangle2(RegionTrans1, Row1, Column1, Phi1, Length11, Length21)
- smallest_rectangle1(RegionTrans1, Row12, Column12, Row21, Column21)
- partition_rectangle (RegionTrans1, Partitioned1, (Column21-Column12)/20.0, (Row21-Row12))
- area_center(Partitioned1, Area1, Row_p1, Column_p1)
- gen_cross_contour_xld(Cross1, Row_p1, Column_p1, 6, 0)
- area_center(base_region1, Area2, Row_ref1, Column_ref1)
- dif1:=Row_ref1-Row_p1
- ***分兩類: 0--> 正常 , 凹陷-->1
- create_class_mlp (22, 10, 2, 'softmax', 'normalization', 10, 42, MLPHandle)
- add_sample_class_mlp(MLPHandle, [Row_ref,Column_ref,Row_p], 0)
- add_sample_class_mlp(MLPHandle, [Row_ref1,Column_ref1,Row_p1], 1)
- train_class_mlp(MLPHandle, 200, 1, 0.01, Error, ErrorLog)
复制代码
正常
凹陷
|