Skip to main content

AI-POWERED DOCS

What do you want to know?

Segmentation: nhãn cho mọi 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ỉ là cái gì ở đây, mà còn ở đâubao nhiêu. Vết xước chính xác ở đâu? Vết bẩn lớn cỡ nào? Có bao nhiêu viên thuốc nằm trong khay? Nó đánh đổi tốc độ của classifier để lấy mask pixel-by-pixel, chi tiết không gian mà bạn cần để đo lường, đếm hoặc xác định vị trí khuyết tật.

Thiết lập được xây dựng trên cùng một cấu trúc 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 nghĩ về nó 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 canvas mà bạn tô lên 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 nơi cần xem, các kết quả có thể xảy ra là gì, và mỗi vùng cắt sẽ đượ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

Một Inspection Type là một thùng chứa. Nó chứa một bộ dữ liệu chung, một danh sách classes chung, và một mô hình AI đã được huấn luyện. Sau đó bạn đóng dấu thùng chứa đó lên hình ảnh ở nhiều vị trí, những con dấu đó chính là các ROIs. Mỗi ROI của cùng một type 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à thùng chứa.
  • Classes là từ vựng kết quả.
  • ROI là một vị trí trên hình ảnh.

Đối với một segmenter: nhãn cho mọi pixel, được tô vẽ, không phải được chọn

Một segmenter lấy mỗi vùng cắt ROI và làm điều gì đó phong phú hơn so với việc chọn một class: nó gán nhãn cho mọi pixel. Thay vì chọn một câu trả lời từ dropdown, bạn quét các khuyết tật lên hình ảnh huấn luyện, và mô hình học hình dạng của mỗi 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, xác định vị trí, và đếm.

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

Hãy tưởng tượng một bề mặt kim loại được chải 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 nó 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 cho toàn bộ vùng, bạn tô mỗi khuyết tật bằng màu của class tương ứng. Đầu ra của mô hình là một mask, được phân tích theo từng class:

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

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

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

Tìm hiểu sâu: cách các class hoạt động

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

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

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à đặt màu cho nó. Mọi ROI của type này giờ đều có sẵn màu đó trên bảng màu.
  2. Background là miễn phí. Bạn không cần sơn các pixel "không có lỗi ở đây". Bất kỳ pixel nào không được sơn đều tự động là background.
  3. Một class cho mỗi pixel. Sơn dent lên một scratch sẽ thay thế nhãn, các class không thể chồng lên nhau trên một pixel duy nhất.
  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ồ. Hợp nhất các lỗi tương tự cho đến khi model gặp khó khăn trong việc phân biệt, sau đó mới tách ra.

Tìm hiểu sâu: cách các ROI hoạt động

Quy Tắc Vàng của ROI

Vùng nhỏ hơn thắng. Làm cho mỗi ROI chỉ vừa đủ lớn để chứa đặc trưng cần phát hiện. ROI 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ị lạc trong nền, và không có gì bị giảm kích thước.

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

Thậ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 bị giảm kích thước để phù hợp với đầu vào của model giống như 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á kích thước này, chi tiết bị mất vĩnh viễn do giảm kích thước. 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 đủ, vì vậy 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ài một ROI trên toàn bộ tấm. Đặt một lưới các ROI nhỏ hơn để mỗi ô vẫn ở độ phân giải đầy đủ và model có thể nhìn thấy các lỗi nhỏ.
  4. Mask được lưu cho mỗi lần chụp. Mỗi hình ảnh huấn luyện lưu trữ mask được sơn riêng cho ROI; model học từ tất cả chúng.
  5. Đầu ra phong phú. Mỗi ROI bạn nhận được số lượng pixel theo class, bounding box cho mỗi vùng lỗi, và diện tích có thể đo lường, đủ 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 thời điểm chạy, camera cắt ROI từ hình ảnh đầy đủ, đưa vào segmenter đã được huấn luyện, và nhận lại dự đoán theo từng pixel, một mask có cùng kích thước trong đó mỗi pixel mang một class. Từ mask đó, camera tính toán số lượng pixel, các vùng lỗi và bounding box.

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. Capture toàn bộ khung hình với ROI được đánh dấu.
  2. Crop ROI thành một hình ảnh duy nhất, giữ ở hoặc dưới 512 × 512 px.
  3. Segmenter model dự đoán một class cho mỗi pixel bằng kiến trúc encoder-decoder.
  4. Mask output là một bản đồ pixel có màu cộng với số lượng pixel theo class, cộng với bounding box cho mỗi vùng được kết nối. Các quy tắc pass/fail chạy trên các con số đó trong IO Block.

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

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

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.

Cạm bẫy phổ biến: huấn luyện ở quy mô bạn sẽ kiểm tra

Một segmenter chỉ học kích thước và kết cấu của lỗi mà nó được cho xem. Huấn luyện nó trên các vết bẩn nhỏ và một mảng lớn của cùng loại lỗi đó khi đi qua dây chuyền thường chỉ được tô sáng ở các cạnh hoặc các mảng rải rác — phần lớn lỗi không được mask.

Lỗi "huấn luyện nhỏ, kiểm tra lớn"

Nếu tập huấn luyện của bạn chỉ có các mẫu nhỏ của một lỗi, model sẽ coi phiên bản lớn là "chủ yếu là background với một vài mảng nhỏ có hình dạng lỗi." Mask trông loang lổ hoặc chỉ đánh dấu các cạnh/góc của lỗi thực tế thay vì bao phủ nó.

Khắc phục: bao gồm các mẫu huấn luyện trải dài toàn bộ phạm vi kích thước bạn dự kiến trên dây chuyền. Một số ít hình ảnh lỗi lớn cùng với các hình ảnh nhỏ thường là đủ. Nguyên tắc tương tự áp dụng cho sự biến đổi về kết cấu và màu sắc — huấn luyện trên sự đa dạng bạn sẽ thấy trong sản xuất.

Không có mẫu lỗi lớn? Sử dụng Defect Creator Studio để tạo hình ảnh huấn luyện tổng hợp của cùng một lỗi ở các kích thước, vị trí và hướng khác nhau — không cần phải chờ một vết bẩn lớn thực sự xuất hiện trên dây chuyền.

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. Đang kiểm tra hai vật liệu hoặc nhóm lỗi khác nhau? Cho mỗi loại có type riêng để chúng có classes, dataset và model riêng.
  • Classes đại diện cho 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 ở các bước sau.
  • Background là ngầm định. Bạn không bao giờ tô hoặc gán nhãn cho pixel "tốt". Bất kỳ vùng nào không được tô đều thuộc về background.
  • ROIs được định 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. Các lỗi bị bỏ sót trong dữ liệu huấn luyện sẽ dạy model rằng chúng là background, bài học tệ nhất có thể cho một bước kiểm tra chất lượng.
  • Dữ liệu huấn luyện trải dài toàn bộ phạm vi kích thước lỗi mà bạn dự kiến trong sản xuất (xem cảnh báo về cạm bẫy ở trên). Một model được huấn luyện trên các mẫu nhỏ sẽ không tổng quát hóa được cho các mẫu lớn.
  • 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 có chủ đích ở nơi mask sai, huấn luyện lại. Hai đến bốn lần lặp là điển hình.

Bước tiếp theo