Skip to main content

AI-POWERED DOCS

What do you want to know?

Segmentation: gán nhãn cho từng pixel

Một segmenter xem xét một vùng đã được cắt và trả lời một câu hỏi phong phú hơn: không chỉ cái gì ở đây, mà ở đâubao nhiêu. Vết xước nằm chính xác ở đâu? Vết bẩn lớn cỡ nào? Có bao nhiêu viên thuốc trong khay? Nó đánh đổi tốc độ của classifier để có được một mask chi tiết theo từng pixel, mức độ chi tiết không gian mà bạn cần để đo lường, đếm hoặc định vị các lỗi.

Cấu trúc được xây dựng dựa trên cùng một hệ thống phân cấp như classifier: Types sở hữu Classes, và Types được đóng dấu lên hình ảnh dưới dạng ROIs.

Hãy hình dung như một bộ tô màu theo số. Inspection Type là bộ kit (bảng màu cộng với các đường viền hình dạng). Classes là các màu sơn bạn chọn. ROIs là các tấm canvas mà bạn tô lên cho mỗi lần chụp, và mỗi pixel được tô đều được gán cho đúng một class, bao gồm cả background ngầm định.

Ba khái niệm

Trước khi bạn có thể huấn luyện một mô hình AI, camera cần biết ở đâu để nhìn, những kết quả có thể xảy ra là gì, và mỗi vùng cắt nên được đánh giá như thế nào. Ba câu hỏi đó tương ứng với ba khái niệm, và chúng lồng vào nhau theo một cách rất cụ thể.

01 / Concept

Inspection Type

A named bucket. Holds one shared dataset, one shared list of classes, and one trained AI model.

02 / Concept

Classes

The vocabulary of possible outcomes for this inspection. Defined once on the type.

03 / Concept

Region of Interest (ROI)

A rectangle drawn on the image. Many ROIs can share one type and, therefore, one dataset and one model.

Mô hình tư duy: một type sở hữu các classes và các ROIs

Inspection Type là một cái thùng. Nó chứa một dataset chung, một danh sách classes chung, và một mô hình AI đã huấn luyện. Sau đó bạn đóng dấu cái thùng đó lên hình ảnh ở nhiều vị trí, những dấu đóng đó chính là ROIs. Mỗi ROI cùng một type đều kế thừa cùng các classes và được đánh giá bởi cùng một mô hình.

INSPECTION TYPEone bucket1 dataset · 1 model · N ROIsCLASSES · DEFINED ONCEclass_aclass_bclass_c+ addAdd or edit classes here andevery ROI on this type updates.Single source of truth.ROIs · PLACED ON IMAGEroi_1roi_2roi_3roi_4roi_5+ add ROIEach ROI is a tight crop at a specificlocation, evaluated by the same model.All share one dataset.classes applied to ROIs
  • Inspection Type là cái thùng.
  • Classes là vốn từ vựng kết quả.
  • ROI là một vị trí trên hình ảnh.

Đối với segmenter: gán nhãn cho từng pixel, tô vẽ chứ không chọn

Một segmenter lấy mỗi vùng cắt ROI và làm điều phong phú hơn việc chọn một class: nó gán nhãn cho từng pixel. Thay vì chọn một câu trả lời từ dropdown, bạn dùng cọ vẽ các lỗi lên hình ảnh huấn luyện, và mô hình học hình dạng của từng class. Đầu ra cho mỗi ROI là một mask, một bản đồ pixel-by-pixel mà bạn có thể đo lường, định vị và đếm.

Ví dụ trực tiếp: phát hiện lỗi bề mặt

Hãy tưởng tượng một bề mặt kim loại đánh xước có hai vết xước, một vết lõm, và một vết bẩn. Bạn sẽ cấu hình như sau:

Surface_Top · segmentbrush · scratch
  • Type: Surface Quality (1 ROI, segmenter)
  • Classes: background (ngầm định), scratch, dent, stain
  • ROI: Surface_Top (bao phủ vùng có thể kiểm tra)

Thay vì chọn một nhãn duy nhất cho toàn bộ vùng, bạn tô từng lỗi với màu của class đó. Đầu ra của mô hình là một mask, được phân tích theo từng class:

ClassĐộ bao phủ
background93.5%
scratch3.1%
dent1.4%
stain2.0%

Ba điều cần ghi nhớ từ ví dụ này:

  1. Tô vẽ, không phải chọn. Thay vì chọn một nhãn duy nhất cho toàn bộ ROI, bạn tô từng pixel lỗi. Mô hình học hình dạng của từng class, không chỉ là sự hiện diện của nó.
  2. ROI là lãnh thổ pixel. Segmenter nhìn vào bên trong ROI và gán nhãn cho từng pixel. Diện tích bề mặt càng lớn = càng nhiều pixel để đánh giá. Vẫn tuân thủ quy tắc 512 × 512, chia lưới nếu khu vực quá lớn.
  3. Classes là các loại lỗi. Không phải pass/fail, mỗi class là một đối tượng riêng biệt mà bạn muốn định vị: scratch, dent, stain. Cộng với một background ngầm định.

Đào sâu: cách classes hoạt động

Mỗi class là một màu trên bảng màu

Trong segmenter, classes không phải là các nhãn bạn chọn từ dropdown, chúng là sơn bạn tô. Chọn một class, và cọ của bạn bắt đầu vẽ các pixel theo màu của class đó. Mỗi pixel trong ROI đều được gán cho đúng một class, bao gồm cả background mặc định.

CLASS PALETTEbackgroundscratchdentstain+ add classpick a class →brush loads its colorPAINT IN THE ROIeverything unpainted = background
  1. Định nghĩa một lần trên type. Thêm một class (ví dụ burn_mark) và gán cho nó một màu. Mỗi ROI của type này giờ đây đều có màu đó sẵn trên bảng màu.
  2. Background là miễn phí. Bạn không cần tô các pixel "không có gì sai". Bất kỳ pixel nào không được tô đều tự động là background.
  3. Một class cho mỗi pixel.dent lên trên scratch sẽ thay thế nhãn, các classes không thể chồng lên nhau trên cùng một pixel.
  4. Bắt đầu đơn giản. Hai hoặc ba class lỗi thường hoạt động tốt hơn sáu class mơ hồ. Gộp các lỗi tương tự cho đến khi mô hình khó phân biệt được, rồi mới tách ra.

Đào sâu: cách ROIs hoạt động

Quy Tắc Vàng của ROIs

Vùng nhỏ hơn thắng. Làm cho mỗi ROI vừa đủ lớn để chứa đặc trưng. ROIs nhỏ hơn nghĩa là ít dữ liệu huấn luyện hơn, lặp lại nhanh hơn, và quyết định AI chính xác hơn, đặc trưng chiếm ưu thế trong vùng cắt thay vì bị mất trong nền, và không có gì bị thu nhỏ.

Vẫn nhỏ, vẫn cụ thể, ngay cả với segmenter

Sẽ rất hấp dẫn khi vẽ một ROI khổng lồ trên toàn bộ bề mặt, nhưng Quy Tắc Vàng vẫn áp dụng. ROI của một segmenter cũng được thu nhỏ để vừa với đầu vào mô hình giống như của classifier, và một lỗi chỉ rộng 20 pixel sẽ biến mất khi bạn thu nhỏ một ROI rộng 2000 pixel xuống còn 512.

GOOD · TIGHT ROIfull resolution preservedHUGE SURFACE · GRID TILEeach tile stays full-resPER-ROI OUTPUTMASK · Surface_Topbackground93.5%scratch3.1%dent1.4%stain2.0%largest regionscratch · 280 × 38 pxdefect count3
  1. Giữ mỗi ROI dưới 512 × 512 px. Vượt quá đó, chi tiết sẽ bị mất vĩnh viễn do thu nhỏ. Các lỗi nhỏ trở nên vô hình.
  2. Vùng cắt chặt nghĩa là mask chặt. Một ROI nhỏ giữ mỗi pixel ở độ phân giải đầy đủ, nên mask khớp với ranh giới lỗi thực tế.
  3. Bề mặt lớn? Chia lưới. Đừng kéo dãn một ROI trên cả tấm panel. Đặt một lưới các ROI nhỏ hơn để mỗi ô vẫn ở độ phân giải đầy đủ và mô hình có thể nhìn thấy các lỗi tinh tế.
  4. Masks được lưu cho mỗi lần chụp. Mỗi hình ảnh huấn luyện lưu mask được tô của riêng nó cho ROI; mô hình học từ tất cả chúng.
  5. Đầu ra phong phú. Cho mỗi ROI bạn nhận được số lượng pixel theo từng class, bounding boxes cho mỗi vùng lỗi, và diện tích có thể đo được, đủ cho các quy tắc pass/fail dựa trên kích thước.

Luồng dữ liệu: mỗi ROI trả về một mask, không phải một nhãn

Tại runtime, camera cắt ROI ra khỏi hình ảnh đầy đủ, đưa vào segmenter đã huấn luyện, và nhận lại một dự đoán cho từng pixel, một mask cùng kích thước trong đó mỗi pixel mang một class. Từ mask đó, camera suy ra số lượng pixel, các vùng lỗi, và bounding boxes.

1 · CAPTUREFull frame + ROI2 · CROP≤ 512 × 512 px crop3 · SEGMENTER MODELSurface Quality · trainedencode → bottleneck → decodepredicts a class per pixel4 · MASK OUTPUTscratch3.1%dent1.4%stain2.0%total defect6.5%ruleFAIL > 2%
  1. Chụp toàn bộ khung hình với ROI được đánh dấu.
  2. Cắt ROI thành một hình ảnh duy nhất, giữ ở mức 512 × 512 px hoặc nhỏ hơn.
  3. Mô hình segmenter dự đoán một class cho mỗi pixel sử dụng kiến trúc encoder-decoder.
  4. Đầu ra mask là một bản đồ pixel có màu cộng với số lượng pixel theo từng class, cộng với bounding boxes cho mỗi vùng kết nối. Các quy tắc pass/fail chạy trên các số liệu đó trong IO Block.

Sáng tạo: một mask là một đối tượng hình học

Khi segmenter trả về một mask, bạn không bị giới hạn ở pass/fail. Bạn có hình dạng và vị trí chính xác của mỗi class, có nghĩa là bạn có thể suy ra các phép đo, đếm, khoảng cách, và mối quan hệ không gian. Điều đó mở khóa cả một lớp các kiểu kiểm tra không hề giống "tìm vết xước", và cùng một segmenter có thể phục vụ tất cả chúng.

AREA4.8 mm²
01 / Measure

Area & coverage

Pixel counts become mm² on a calibrated camera. Set pass/fail in real-world units, "reject if stain > 3 mm²", instead of fuzzy percentages.

1234COUNT · scratch4
02 / Count

Distinct blobs

Four small pits tell a different story than one big one. Count connected regions per class to flag defect frequency, not just total coverage.

L = 52 mmWL × W52 × 4 mm
03 / Measure

Dimensions & shape

Length, width, aspect ratio, orientation, all fall out of the mask. Flag long scratches, ignore micro ones. Or flag round dents and ignore elongated ones.

24.6 mmDIST · blob → blob24.6 mm
04 / Relate

Blob-to-blob distance

Euclidean gap between two painted regions, centroid-to-centroid or nearest-edge. Useful for component spacing, pin pitch, weld-to-weld gaps, or detecting defect clusters.

edge8.2 mmDIST · defect → edge8.2 mm
05 / Relate

Distance to a reference

Paint a second class for your reference (edge, fiducial, adjacent component) then measure how far the defect sits from it. A defect 8 mm inside might be fine; 0.5 mm from the edge might be a reject.

COUNT · pills12
06 / Expand

Not just defects

Paint whatever you want to find: pills in a blister, screws in a tray, weld beads, gaps, fiducials, cells on a slide. Segmentation is a general-purpose scalpel, not a defect-only tool.

Tóm tắt thiết lập

Một danh sách kiểm tra nhanh trước khi huấn luyện. Nếu mỗi mục dưới đây đều đúng, segmenter của bạn sẽ có một nền tảng vững chắc.

  • Một Inspection Type cho mỗi bề mặt. Kiểm tra hai loại vật liệu hoặc họ lỗi khác nhau? Hãy tạo type riêng cho mỗi loại để chúng có classes, dataset, và mô hình riêng.
  • Classes đại diện cho các loại lỗi, không phải mức độ nghiêm trọng. scratch, dent, stain, mỗi cái là một thực thể trực quan riêng biệt. Mức độ nghiêm trọng và pass/fail đến từ số lượng pixel của mask ở phía sau.
  • Background là ngầm định. Bạn không bao giờ tô hoặc gán nhãn các pixel "tốt". Mọi thứ không được tô đều thuộc về background.
  • ROIs có kích thước hợp lý. Bao phủ vùng quan tâm, nhưng giữ dưới 512 × 512 px cho mỗi ROI. Chia lưới nếu bề mặt lớn hơn.
  • Tô mỗi lỗi nhìn thấy được. Lỗi bị bỏ sót trong dữ liệu huấn luyện sẽ dạy mô hình rằng chúng là background, bài học tệ nhất có thể cho việc kiểm tra chất lượng.
  • Bắt đầu với 10 đến 15 hình ảnh cho mỗi class. Huấn luyện, chạy live preview, thêm các hình ảnh mục tiêu nơi mask bị sai, huấn luyện lại. Hai đến bốn lần lặp là điển hình.

Tiếp theo là gì