Junliangwangdhu / WaferMap

78 stars 13 forks source link

Several "Near-Full" wafer maps have issues #2

Open faris-k opened 1 year ago

faris-k commented 1 year ago

Binary wafer maps can only have three distinct pixel values corresponding to passing die, failing die, and non-wafer area. Therefore, wafer maps should only have values {0, 1, 2}, or {0, 128, 255} when scaled to the RGB pixel value domain. However, 105 wafer maps have unique values {0, 1, 2, 3}, all of which are "near-full" type single label.

Here's an example of one of these problematic wafers:

# Show the number of unique pixel values in the uncleaned data
unique_pixels = set()
bad_wafers = []
for wafer in wafers:
    vals = np.unique(wafer).tolist()
    if len(vals) > 3:
        bad_wafers.append(wafer)
    unique_pixels.update(vals)

print(f"Unique pixel values before cleaning: {unique_pixels}")
print(f"Number of bad wafers: {len(bad_wafers)}")

image

I think all 105 of these wafers just have a single bad pixel in them, which can easily be changed by doing something like the following:

for wafer in wafer_maps:
    wafer[wafer == 3] = 2