Skip to main content

AI-POWERED DOCS

What do you want to know?

Segmentation: một 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ỉ cái gì ở đây, mà còn ở đâ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 nằm trong khay? Nó đánh đổi tốc độ của classifier để lấy một mask từng pixel — chi tiết không gian mà bạn cần để đo lường, đếm hoặc định vị các lỗi.

Thiết lập được xây dựng trên cùng hệ thống phân cấp như một 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 từ đó. ROIs là các khung tranh mà bạn tô lên mỗi lần chụp, và mỗi pixel được tô sẽ được gán vào đúng một class, bao gồm cả background ngầm định.

Các recipe của OV80i có thể kết hợp segmenters và classifiers

OV80i là camera duy nhất trong dòng sản phẩm hỗ trợ multi-model recipes. Ghép một segmenter (cho masks, đếm và đo lường) với một classifier (cho phán quyết về các danh mục đã biết) trong cùng một lần kiểm tra. Xem Understanding Classifier để biết về nửa còn lại.

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ể là gì, và cách đánh giá mỗi vùng cắt. 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ó giữ một tập 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 dấu đó là các ROIs. Mọi ROI cùng type đều thừa hưởng các classes giống nhau 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: một nhãn cho mỗi pixel, được tô vẽ, không phải chọn lựa

Một segmenter lấy mỗi vùng cắt ROI và thực hiện điều gì đó phong phú hơn việc chọn một class: nó gán nhãn mọi pixel. Thay vì chọn một câu trả lời từ dropdown, bạn quét 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 mỗi class. Đầu ra cho mỗi ROI là một mask — một bản đồ từng 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 bóng 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ô từng lỗi 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ô vẽ, không phải chọn lựa. Thay vì chọn một nhãn cho toàn bộ ROI, bạn tô từng pixel lỗi. Mô hình học hình dạng của mỗi 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 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 phải tôn trọng 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 thứ riêng biệt mà bạn muốn định vị: 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 viết các pixel bằng màu của class đó. Mọi pixel trong ROI đều được gán cho chính xác 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à cho nó một màu. Mọi ROI thuộc type này giờ đây đã có sẵn màu đó trên bảng màu của nó.
  2. Background là miễn phí. Bạn không cần tô các pixel "không có gì sai ở đây". Bất kỳ pixel nào không được tô đều tự động là background.
  3. Một class trên mỗi pixel. Tô bằng 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.
  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 chúng, sau đó 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 sẽ thắng. Hãy làm cho mỗi ROI vừa đủ lớn để chứa đặc trưng. ROI nhỏ hơn có nghĩa là ít dữ liệu huấn luyện hơn, lặp lại nhanh hơn, và các 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ả đối với segmenter

Rất hấp dẫn khi vẽ một ROI khổng lồ trên toàn bộ một bề mặt, nhưng Quy Tắc Vàng vẫn được áp dụng. ROI của một segmenter sẽ bị thu nhỏ để phù hợp với đầu vào của model 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á mức đó, chi tiết sẽ vĩnh viễn bị mất do thu nhỏ. Các lỗi nhỏ trở nên vô hình.
  2. Vùng cắt sát nghĩa là mask sát. Một ROI nhỏ giữ mỗi pixel ở độ phân giải đầy đủ, do đó mask sẽ khớp với ranh giới lỗi thực tế.
  3. Bề mặt lớn? Chia thành lưới. Đừng kéo dài một ROI trên toàn bộ một tấm. Hãy đặt một lưới gồm các ROI nhỏ hơn để mỗi ô vẫn giữ độ phân giải đầy đủ và model có thể nhìn thấy các lỗi tinh vi.
  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 tô riêng của nó cho ROI; model học từ tất cả chúng.
  5. Đầu ra phong phú. Trên mỗi ROI, bạn nhận được số lượng pixel cho mỗi class, bounding box cho mỗi vùng lỗi, và các diện tích đo lường đượ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 đều quay lại với một mask, không phải một nhãn

Trong thời gian chạy, camera cắt ROI ra khỏi hình ảnh đầy đủ, đưa nó vào segmenter đã được huấn luyện, và nhận lại một dự đoán trên mỗi pixel, một mask có 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 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 xuống thành một hình ảnh duy nhất, được giữ ở mức bằng hoặc dưới 512 × 512 px.
  3. Model segmenter dự đoán một class cho mỗi pixel bằng cách 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 trên mỗi 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 số này 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 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, nghĩa là bạn có thể suy ra các phép đo, số lượng, khoảng cách và quan hệ không gian. Điều đó mở ra cả một danh mục 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ả.

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.

Lỗi thường gặp: 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 các khuyết tật mà nó được cho xem. Huấn luyện nó trên các tạp chất nhỏ và một mảng lớn của cùng class khuyết tật đó sẽ thường xuyên đi qua chuyền sản xuất mà chỉ có các cạnh hoặc các mảng rải rác được tô — phần lớn của khuyết tật không được mask.

Chế độ 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 ví dụ nhỏ về một khuyết tật, model sẽ coi phiên bản lớn là "hầu hết là background với vài mảng nhỏ hình dạng khuyết tật". Mask trông loang lổ hoặc chỉ đánh dấu các cạnh/góc của khuyết tật thực thay vì bao phủ nó.

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

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

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

Một danh sách kiểm tra nhanh trước khi bạn 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 vật liệu hoặc nhóm khuyết tật khác nhau? Cho mỗi loại một type riêng để chúng có classes, dataset và model riêng.
  • Classes đại diện cho loại khuyết tật, 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 các pixel "tốt". Bất kỳ phần nào 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 mỗi ROI. Chia lưới nếu bề mặt lớn hơn.
  • Tô mọi khuyết tật nhìn thấy được. Khuyết tật 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 việc kiểm tra chất lượng.
  • Dữ liệu huấn luyện trải đều toàn bộ phạm vi kích thước khuyết tật mà bạn dự kiến trong sản xuất (xem lỗi thường gặp ở trên). Một model được huấn luyện trên các ví dụ nhỏ sẽ không tổng quát hóa được cho các ví dụ lớn.
  • Bắt đầu với 10 đến 15 hình ảnh mỗi class. Huấn luyện, chạy live preview, thêm hình ảnh có mục tiêu vào nơi mask bị sai, huấn luyện lại. Hai đến bốn vòng lặp là điển hình.

Tiếp theo là gì