Skip to main content

AI-POWERED DOCS

What do you want to know?

Segmentation: nhãn cho mọi pixel

Một segmenter nhìn vào 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 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.

Cấu trúc được xây dựng 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 nghĩ về nó giống như một bộ tô màu theo số. Inspection Type là bộ kit (bảng màu cộng với khung hình). Classes là các màu sơn bạn chọn từ đó. ROIs là những 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.

Recipes 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ợ recipes đa model. Kết hợ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 inspection. Xem Understanding Classifier cho phần 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ả khả thi là gì, và cách mỗi crop nên được đánh giá. Ba câu hỏi đó ánh xạ tớ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 đóng đó là các ROIs. Mỗi ROI cùng 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à 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ô, không phải chọn

Một segmenter lấy mỗi crop ROI và làm đ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 tô các lỗi lên các 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, định vị, và đếm.

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

Hãy tưởng tượng một bề mặt kim loại đã được chải với 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ư thế này:

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 lỗi với màu của class tương ứng. Đầu ra mô hình là một mask, được phân tích theo từng class:

ClassCoverage
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ô từng pixel lỗi mộ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 bên trong ROI và gán nhãn cho mỗi pixel. Diện tích bề mặt nhiều hơn = nhiều pixel hơn để đánh giá. Vẫn tuân thủ quy tắc 512 × 512, sử dụng lưới tiles nếu vùng quá lớn.
  3. Classes là 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.

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

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

Trong một segmenter, classes không phải là nhãn bạn chọn từ dropdown, chúng là sơn bạn áp dụng. Chọn một class, và cọ vẽ của bạn bắt đầu viết 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à đặt cho nó một màu. Mỗi ROI thuộc type này bây giờ có màu đó sẵn trong bảng màu.
  2. Background là miễn phí. Bạn không tô các pixel "không có gì sai ở đây". Bất kỳ pixel chưa tô nào tự động là background.
  3. Một class cho mỗi pixel. Tô bằng dent lên một scratch sẽ thay thế nhãn, các classes 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 classes lỗi thường vượt trội hơn sáu classes mơ hồ. Hợp nhất các lỗi tương tự cho đến khi mô hình gặp khó khăn trong việc phân biệt chúng, rồi sau đó tách ra.

Đào sâu: cách các 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 điểm. 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 điểm chiếm ưu thế trong crop thay vì bị mất trong background, và không có gì bị thu nhỏ.

Vẫn nhỏ, vẫn cụ thể, ngay cả đối với segmenters

Sẽ thật cám dỗ 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 bị thu nhỏ để vừa với đầu vào mô hình giống như của một 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 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 bị mất vĩnh viễn do thu nhỏ. Các lỗi nhỏ trở nên vô hình.
  2. Crops chặt chẽ nghĩa là masks chặt chẽ. Một ROI nhỏ giữ mỗi pixel ở độ phân giải đầy đủ, do đó mask khớp với ranh giới lỗi thực tế.
  3. Bề mặt lớn? Sử dụng lưới tiles. Đừng kéo dài một ROI trên cả một panel. Đặt một lưới các ROIs nhỏ hơn để mỗi tile giữ được độ phân giải đầy đủ và mô hình có thể nhìn thấy các lỗi nhỏ.
  4. Masks tồn tại theo từng lần chụp. Mỗi hình ảnh huấn luyện lưu trữ mask đã 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 cho từng class, bounding boxes cho mỗi vùng lỗi, và các 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ề với một mask, không phải nhãn

Tại runtime, 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 cho mỗi pixel, một mask cùng kích thước trong đó mỗi pixel mang một class. Từ mask đó camera dẫn xuất 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. Capture toàn bộ frame với ROI được đánh dấu.
  2. Crop ROI thành một hình ảnh duy nhất, được giữ ở hoặc dưới 512 × 512 px.
  3. Segmenter model dự đoán một class cho mỗi pixel sử dụ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 cho mỗi class, cộng với bounding boxes cho mỗi vùng được kết nối. Các quy tắc pass/fail chạy trên đầu các con số đó trong IO Block.

Sáng tạo lên: 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ị mắc kẹt với 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ể dẫn xuất các phép đo, đếm số, khoảng cách, và mối quan hệ không gian. Điều đó mở khóa cả một danh mục các inspections trông không 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 bạn huấn luyện. Nếu mỗi điều này đều đúng, segmenter của bạn sẽ có nền tảng vững chắc.

  • Một Inspection Type cho mỗi bề mặt. Đang kiểm tra hai loại vật liệu khác nhau hoặc các họ lỗi khác nhau? Cung cấp cho mỗi loại một type riêng để chúng có classes, tập dữ liệu, và mô hình 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 loại là một 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". Bất cứ thứ gì chưa tô đều thuộc về background.
  • ROIs có kích thước cẩn thận. Bao phủ vùng quan tâm, nhưng giữ dưới 512 × 512 px cho mỗi ROI. Sử dụng lưới tiles 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 mô hình rằng chúng là background, bài học tệ nhất có thể cho một bài 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 xem trước trực tiếp, thêm các hình ảnh có mục tiêu 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