Inspection
mindrecord
mindrecord模型评估的参数名、类型、取值范围、默认值及说明如下表所示。
参数名 |
类型 |
取值范围 |
默认值 |
说明 |
---|---|---|---|---|
--config |
str |
- |
None |
可选,参数配置文件路径,权限须设置为400。 |
--ratio |
float |
(0 ,1) |
0.8 |
训练集的划分比例。 |
--input_chip_id |
str |
- |
无 |
芯片ID。 |
--input_setup_id |
str |
- |
"" |
芯片层。 |
--minddata_train |
str |
- |
"" |
训练集MindRecord的保存路径。 |
--minddata_val |
str |
- |
"" |
验证集MindRecord的保存路径。 |
--rgb_dir |
str |
- |
rgb_ref/ |
RGB参考图目录路径。 |
--gray_dir |
str |
- |
gray_ref/ |
灰度图目录路径。 |
--mask_dir |
str |
- |
mask_ref/ |
掩码图目录路径。 |
--train_flag |
bool |
True 或 False |
True |
训练集数据平衡开关。 |
--data_txt |
str |
- |
None |
配准的txt文件。 |
--num_threads |
int |
[1,8] |
2 |
使用的进程数。 |

“rgb_dir”、“gray_dir”、“mask_dir”目录下的图片必须按指定格式命名。参考如下:
当“input_chip_id”为001,“input_setup_id”为M1时,须将“rgb_dir”下的参考图命名为001_M1_rgb_golden_die.png,“gray_dir”下的灰度图命名为001_M1_gray_golden_die.png,“mask_dir”下的掩码图命名为001_M1_viaconductor_mask.png。
输入参数中依赖的“data_txt”必须是一个txt文件,描述了机台拍摄图片的相关信息,需遵循以下规则进行编写。
- 一行对应一张图片。
- 每行共有12个字段。
- 字段之间用一个空格分隔。
字段信息参见表2,编写示例参考如下。
新建一个“data.txt”,里面的内容为如下三行字符串。
img_1.jpg 001 M1 11224.435 12925.229 0 wafer_id1 01-08-22-13:09:22; device_id1 L21510106 model1 20 img_2.jpg 001 M1 13817.899 17822.569 0 wafer_id2 12-29-21-08:17:05; device_id1 L21510104 model2 20 img_3.jpg 001 M1 970.857 24809.092 0 wafer_id3 12-21-21-06:02:08; device_id3 L21510206 model3 20
索引值 |
类型 |
取值范围 |
说明 |
---|---|---|---|
0 |
str |
- |
图片路径。 |
1 |
str |
- |
芯片ID。 |
2 |
str |
- |
芯片层。 |
3 |
float |
[0, 100000] |
图片对应的 x 坐标。 |
4 |
float |
[0, 100000] |
图片对应的 y 坐标。 |
5 |
int |
0或2 |
图片标签。 |
6 |
str |
- |
晶圆ID。 |
7 |
str |
- |
时间戳。 |
8 |
str |
- |
机台ID。 |
9 |
str |
- |
批次编号。 |
10 |
str |
- |
机台型号。 |
11 |
int |
[1, 1000] |
放大倍率。 |
mindrecord文件生成的命令参考如下:
python3 generate_mindrecords.py --config <config_path>

<config_path>为生成mindrecord需要的参数列表。

inspection模型训练之前需要将数据集通过转化成mindrecord格式文件,不能直接将图片作为训练数据集,使用生成mindrecord格式文件用于训练。
训练参数及范围
inspection模型训练的参数名、类型、取值范围、默认值及说明如下表3所示。
参数名 |
类型 |
取值范围 |
默认值 |
说明 |
---|---|---|---|---|
--config |
str |
- |
None |
可选,参数配置文件路径,权限须设置为400。 |
--training_data |
str |
- |
./xxx/yyy/zzz" |
训练集MindRecord的路径。如有多个,以英文逗号分隔。 |
--validation_data |
str |
- |
./xxx/yyy/zzz" |
验证集MindRecord的路径。如有多个,以英文逗号分隔。 |
--save_checkpoint_dir |
str |
- |
'./ckpt' |
ckpt保存路径。 |
--save_fnfp |
str |
"yes", "no" |
no |
是否保存预测错误的图片。 |
--fnfp_path |
str |
- |
./saved_fnfp_images |
fn&fp图片保存路径。 |
--recall |
float |
(0 ,1) |
0.99 |
召回率。 |
--device_target |
str |
"Ascend"或“GPU |
"Ascend" |
训练平台。 |
--steps_per_eval |
int |
[1, 10000] |
1000 |
评估间隔数。 |
--epochs |
int |
[1, 10000] |
300 |
训练次数。 |
--batch_size |
int |
[1, 128] |
16 |
训练batch数。 |
--ref_type |
str |
"rgb", "gray" |
'rgb' |
参考图类型。 |
--ref_dir |
str |
- |
'./xxx/yyy/zzz' |
参考图目录路径。 |
--bytes_dataset |
str |
"yes", "no" |
'yes' |
是否拼接参考图。 |
--chip_setups |
str |
- |
"" |
芯片ID及芯片层,如有多个,用英文逗号分隔。 |
--auto_balance |
str |
"filter", "sampler", "yes", "no" |
'filter' |
数据平衡方式。 |
--use_val_filter |
int |
[0, 10000] |
2000 |
验证集使用的pass数量限制。 |
--input_res |
int |
[256, 1024] |
256 |
图像分辨率。 |

“ref_dir”目录下要新建两个子目录“rgb_ref”和“gray_ref”,子目录下的文件要按指定格式命名。参考如下:
当“chip_setups”为001M1时,须将“rgb_ref”下的参考图命名为001_M1_rgb_golden_die.png,“gray_ref”下的灰度图命名为001_M1_gray_golden_die.png。
训练命令参考
inspection模型训练的命令参考如下:
python3 inspection_train.py --config <config_path>

<config_path>为检测模型训练需要的参数列表。
模型训练过程存在随机性,最终以评估精度为准。训练精度结果参考如下:
训练结束后会在“--save_checkpoint_dir”参数指定的输出目录中生成.ckpt模型文件,参考如下代码生成AIR模型,最后使用模型转换工具ATC即可将air模型转化成推理使用的OM模型。