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à ở đâu và bao 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.
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ể.
Inspection Type
A named bucket. Holds one shared dataset, one shared list of classes, and one trained AI model.
Classes
The vocabulary of possible outcomes for this inspection. Defined once on the type.
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 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:
- 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:
| Class | Coverage |
|---|---|
| background | 93.5% |
| scratch | 3.1% |
| dent | 1.4% |
| stain | 2.0% |
Ba điều cần ghi nhớ từ ví dụ này:
- 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.
- 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. - 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ộtbackgroundngầ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.
- Đị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. - 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. - Một class cho mỗi pixel. Tô bằng
dentlên mộtscratchsẽ thay thế nhãn, các classes không thể chồng lên nhau trên một pixel duy nhất. - 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
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.
- 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.
- 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ế.
- 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ỏ.
- 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.
- Đầ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.
- Capture toàn bộ frame với ROI được đánh dấu.
- Crop ROI thành một hình ảnh duy nhất, được giữ ở hoặc dưới 512 × 512 px.
- Segmenter model dự đoán một class cho mỗi pixel sử dụng kiến trúc encoder-decoder.
- 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.
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.
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.
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.
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.
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.
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
- Understanding Classifier, trang anh em về các mô hình chọn dropdown.
- Regions of Interest (ROIs), hướng dẫn thực hành để vẽ ROIs.
- Training Your AI, quy trình gán nhãn và huấn luyện.