Skip to main content

Silicon wafer image processing with AI-powered ellipse detection

Project description

Silicrop

A PyQt5-based application for silicon wafer image processing, featuring AI-powered ellipse detection and correction.

Overview

Silicrop is designed to process images of silicon wafers by:

  • Detecting wafer boundaries using deep learning (DeepLabV3 segmentation)
  • Fitting ellipses to wafer contours
  • Correcting perspective distortion to produce circular images
  • Detecting and handling "meplat" (flat edge) regions on 150mm wafers
  • Supporting batch processing for multiple images

Features

  • AI-Powered Detection: Uses a DeepLabV3 model with ResNet-18 backbone for wafer segmentation
  • Interactive GUI: PyQt5 interface with drag-and-drop image loading
  • Manual Adjustment: Click to add/move/remove ellipse fitting points
  • Notch Detection: Mark notch regions with 3-point triangles (press 'N' to toggle mode)
  • Batch Processing: Process multiple images in parallel
  • Mask Export: Save segmentation masks for training data

Installation

Requirements

  • Python 3.8+
  • PyQt5
  • PyTorch
  • OpenCV (cv2)
  • NumPy
  • Pillow
  • segmentation-models-pytorch
  • matplotlib
  • scipy
  • joblib
  • psutil

Install

pip install -e .

Or install dependencies directly:

pip install PyQt5 torch torchvision opencv-python numpy pillow segmentation-models-pytorch matplotlib scipy joblib psutil

Usage

Launch the Application

python -m silicrop.main

Or if installed:

silicrop

Basic Workflow

  1. Select a Model: Click "Select a model" to load a trained .pth model file
  2. Load Images: Drag and drop images into the left panel
  3. Select Scale Mode: Choose "<=150" for wafers with flat edges, ">200" for full circular wafers
  4. Process:
    • Single image: Select image and click "Run AI"
    • Batch: Click "Select All" then "Run AI (batch)"
  5. Save Results: Use "Save Image" or "Save Mask" buttons

Keyboard Shortcuts

  • N: Toggle notch drawing mode (for marking notch regions)
  • Ctrl + Drag: Pan the image view
  • Scroll: Zoom in/out

Project Structure

silicrop/
├── __init__.py          # Package version
├── main.py              # Application entry point
├── assets/
│   └── icon.png         # Application icon
├── layout/
│   ├── components.py    # Main GUI (ImageProcessorApp)
│   ├── dragdrop.py      # File drop list widget
│   ├── how_to.py        # Help popup
│   ├── styles.py        # UI stylesheets
│   └── theme.py         # Application theme
└── processing/
    ├── crop.py          # Ellipse fitting (FitAndCrop)
    ├── meplat.py        # Flat edge detection
    ├── prediction.py    # AI model (EllipsePredictor)
    ├── prediction_batch.py  # Batch processing
    ├── rotate.py        # Image rotation (Rotate)
    └── utils.py         # Mouse navigation handler

Key Classes

ImageProcessorApp

Main application window containing:

  • File list with drag-and-drop
  • Original image viewer (FitAndCrop widget)
  • Processed image viewer (Rotate widget)
  • Control buttons for processing and saving

EllipsePredictor

AI inference engine that:

  • Loads DeepLabV3 segmentation model
  • Predicts wafer masks from images
  • Extracts contours and fits ellipses
  • Handles meplat detection for 150mm wafers

FitAndCrop

Interactive widget for:

  • Displaying original images
  • Manual 5-point ellipse fitting
  • Notch region marking (3 points)
  • Perspective transformation to circular output

Rotate

Widget for:

  • Displaying processed (circular) images
  • Interactive rotation by clicking
  • Line-based rotation (150mm mode)
  • Point-to-bottom rotation (200mm mode)

Model Training

The application expects a trained DeepLabV3 model. Training code is available in training/model.py (not used at runtime).

Model Architecture

  • Encoder: ResNet-18 (pretrained on ImageNet)
  • Decoder: DeepLabV3
  • Output: Binary segmentation mask

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

silicrop-1.0.16.tar.gz (59.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

silicrop-1.0.16-py3-none-any.whl (59.4 MB view details)

Uploaded Python 3

File details

Details for the file silicrop-1.0.16.tar.gz.

File metadata

  • Download URL: silicrop-1.0.16.tar.gz
  • Upload date:
  • Size: 59.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for silicrop-1.0.16.tar.gz
Algorithm Hash digest
SHA256 40ea94015512f796a6c6032c9f591fd7ff155eb324593db6661900f9891fc5e1
MD5 514c250d78a2d2c814e5770388804a2d
BLAKE2b-256 839484dfb3693d2a04298ca932ea0edd0ca84992b090d5a58d1d51046bf6cb87

See more details on using hashes here.

File details

Details for the file silicrop-1.0.16-py3-none-any.whl.

File metadata

  • Download URL: silicrop-1.0.16-py3-none-any.whl
  • Upload date:
  • Size: 59.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for silicrop-1.0.16-py3-none-any.whl
Algorithm Hash digest
SHA256 821cbc25bcfe6c92679c28608a4cd6663c9b7f7f9824388b296a84095a4afc3b
MD5 047140d4274a9f48da10d0f93e521ad0
BLAKE2b-256 dd79b2a6143c3c617c5f2d39832fdd6133b082646323c7fb22f1ade0b75c5c9a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page