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)}")
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:
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:
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: