GIỚI THIỆU
Tổng quan
Ngành công nghiệp điện tử nói chung và ngành bán dẫn nói riêng đang có bước phát triển nhanh và nổi bật trong nhiều thập kỷ qua Trong đó, không thể không kể tới sự cạnh tranh gay gắt trong việc sản xuất chip bán dẫn do nhu cầu tăng cao trong thời kỳ công nghệ và chuyển đổi số Theo thống kê, giá trị thị trường của ngành công nghiệp bán dẫn đạt 452.25 tỉ đô vào năm 2021 dự báo tăng lên 483 tỉ đô la Mỹ trong năm 2022 và còn tiếp tục tăng nhanh trong những năm tiếp theo [1]
Hình 1.1 Dự báo tăng trưởng của ngành công nghiệp bán dẫn châu Á theo Business Insights
Do nhu cầu tăng cao, cuộc chạy đua công nghệ nhằm giành lấy thị phần từ các công ty là rất mạnh mẽ Để có thể thu hút được khách hàng, ngoài việc cung cấp các tính năng vượt trội, các nhà sản xuất chip còn phải tập trung kiểm soát chất lượng sản phẩm nhằm đảm bảo đầu ra uy tín và duy trì hình ảnh của doanh nghiệp Để làm được điều đó, các quy trình kiểm tra chất lượng sản phẩm phải rất nghiêm ngặt và đạt độ chính xác cao, một trong số đó là các quy trình kiểm tra ngoại quan sản phẩm (visual inspection) Trong các nhà máy sản xuất, hầu hết ở mỗi quy trình đều có công đoạn kiểm tra ngoại quan Các công đoạn này đảm bảo sản phẩm lỗi sẽ bị loại bỏ ra trước khi lô sản phẩm được xử lý ở các công đoạn tiếp theo sau Một trong những vấn đề thường gặp phải ở các xưởng
2 sản xuất lớn là việc một số công đoạn kiểm tra không có đủ khả năng để phát hiện các lỗi lạ so với thiết kế ban đầu của nhà sản xuất, và do đó tiêu tốn rất nhiều chi phí để nâng cấp hoặc thay đổi quy trình Trong phạm vi đề tài, chúng ta tập trung tìm hiểu các lỗi thường xảy ra ở một công đoạn sản xuất, các phương pháp đã và đang được áp dụng để giải quyết vấn đề và đề xuất các phương pháp thích hợp để xử lý bài toán một cách hiệu quả hơn.
Tình hình nghiên cứu trong và ngoài nước
Có rất nhiều nghiên cứu liên quan trong và ngoài nước về chủ đề phát hiện và phân loại lỗi sản phẩm trong sản xuất linh kiện và vi mạch điện tử
Một trong các cách có thể kể đến như việc ứng dụng công nghệ học sâu (Deep Learning) với kiến trúc CNN (Convolutional Neural Network) Trong [2], tác giả sử dụng kiến trúc Darknet-53, một mạng tích chập với 53 lớp dùng để định vị trí và phân loại đối tượng tương tự như cách làm việc của kiến trúc YOLO (You Only Look Once) Ưu điểm của phương pháp này là thời gian tính toán nhanh, phù hợp với nhu cầu trong sản xuất Tuy nhiên, nhược điểm của phương pháp là cần nhiều thời gian cho giai đoạn huấn luyện (training) và có thể ở tại thời điểm huấn luyện, mô hình cũng không tổng quát hóa được toàn bộ các lỗi có thể xảy ra Ở nghiên cứu [3], tác giả đề xuất sử dụng kiến trúc Two-Stage object detection, phương pháp này tương tự như các mô hình RCNN (Region-proposed Convolution Neural Network) [4] Ưu điểm của phương pháp này là cho độ chính xác cao, tuy nhiên thời gian và tài nguyên cho quá trình training là rất lớn Các phương pháp tương tự sử dụng FPN (Feature Pyramid Network) [5], [6] [Multi-scale defect detection of printed circuit board based on feature pyramid network] cũng dựa trên cơ sở là họ RCNN Để có thể giải quyết được bài toán phát hiện lỗi, trong khi chưa có đủ bộ dữ liệu đại diện cho tất cả các trường hợp, giải pháp lúc này có thể sử dụng phương pháp học không giám sát (Unsupervised Learning) Điển hình là phương pháp Auto Encoder [7] Trong đó,
3 một mạng tích chập được sử dụng để trích xuất đặc trưng của bộ dữ liệu mẫu (bao gồm các sản phẩm không bị lỗi) gọi là Encoder và một mạng tích chập được sử dụng để tái cấu trúc lại vật thể [Automated Surface Defect Inspection Based on Autoencoders] Với hầu hết các sản phẩm bình thường, sai số từ việc tái cấu trúc sẽ nhỏ so với các sản phẩm bị lỗi
Hình 1.2 Mô hình Auto Encoder
Tuy nhiên, thực nghiệm cho thấy các mô hình Auto Encoder hoạt động hiệu quả với các sản phẩm bị lỗi lớn và nhảy cảm với các lỗi có kích thước nhỏ Do đó, ta cần sử dụng một mô hình Unsupervised Learning hiệu quả hơn.
Mục tiêu và nhiệm vụ của luận văn
- Hiểu được đặc tính và các lỗi ngoại quan thường gặp trong sản xuất chip bán dẫn
- Tiền xử lý ảnh thô được tạo ra trong quá trình sản xuất
- Vận dụng các phương pháp xử lý ảnh và học sâu để giải quyết bài toán phát hiện lỗi sản phẩm
- Thiết kế hệ thống thu nhận dữ liệu và cảnh báo.
Nội dung luận văn
Chương 1 của luận văn trình bày tổng quan về đề tài, tình hình nghiên cứu trong và ngoài nước
Chương 2 trình bày các phương pháp, cơ sở lý thuyết và thuật toán sử dụng để phát hiện lỗi sản phẩm
Chương 3 trình bày các thí nghiệm, lý do và kết quả mong muốn đạt được
Chương 4 trình bày các kết quả thí nghiệm, các thông số đánh giá và nhận xét Chương 5 kết luận các kết quả đạt được, những vấn đề chưa được giải quyết và hướng phát triển
CƠ SỞ LÝ THUYẾT
Đặc điểm các lỗi ngoại quan trong thường gặp trong sản xuất chip bán dẫn
Trong các dây chuyền sản xuất chip bán dẫn, có rất nhiều lỗi ngoại quan có thể bắt gặp và được nhìn thấy dưới kính hiển vi (có độ phóng đại 30 lần trở lên) hoặc thậm chí bằng mắt thường Trong đó có thể kể đến các lỗi điển hình như: mất linh kiện, linh kiện bị lệch, vỡ hoặc chất bẩn dính trên bề mặt linh kiện hoặc tấm nền (substrates) Có rất nhiều nguyên nhân dẫn đến các linh kiện gắn trên bề mặt chip gặp phải các vấn đề nêu trên có thể kể đến như:
- Các sai số trong quá trình gắp và đặt các linh kiện dẫn tới việc linh kiện đó không được kết dính đầy đủ với kem hàn (solder paste) và sau khi qua quá trình nung (soldering) thì các linh kiện này bị lệch và không còn được kết nối chắc chắn với vùng đệm bằng đồng (copper pad) dẫn tới việc các kết nối giữa linh kiện tới bề mặt substrate bị yếu và có thể rơi ra ngoài trong các công đoạn tiếp theo
Hình 2.1 Linh kiện đúng vị trí (bên trên) và linh kiện lệch vị trí (bên dưới)
- Dưới tác động của các kết cấu cơ khí bị lỗi sau khi một quá trình dài vận hành, bề mặt substrates có thể bị trầy xước hoặc nứt Tùy vào kích thước mà các vết nứt
6 này có thể nhìn thấy bằng mắt thường và ảnh hưởng trực tiếp đến các công đoạn lắp ráp phía sau Trong trường hợp vết nứt hoặc trầy xước nhỏ, khó nhìn thấy bằng mắt thường thì công đoạn kiểm tra ngoại quan bằng mắt thường có thể bỏ sót sản phẩm lỗi gây ra tiêu tốn thời gian và nguồn lực cho các công đoạn kiểm tra phía sau
Hình 2.2 Một đường nứt/trầy xuất hiện trên bề mặt sản phẩm
- Môi trường vận hành bị nhiễm bẩn, máy móc trong quá trình sản xuất tạo ra các chất có thể dính lên bề mặt của sản phẩm Loại lỗi này có thể dễ dàng phát hiện được bằng mắt thường nhưng chúng cần được phát hiện sớm để các vết bẩn không bị dính lên các bộ phận cơ khí của các công đoạn phía sau
Hình 2.3 Một vết bẩn dính trên bề mặt sản phẩm
Hầu hết các nhà máy sản xuất chip bán dẫn đều có rất nhiều công đoạn kiểm tra tự động bằng máy (automated optical inspection) Các công đoạn kiểm tra này giúp sớm phát hiện và loại bỏ những sản phẩm lỗi (có thể gây ra bởi quy trình hiện tại hoặc trước đó), tránh ảnh hưởng đến việc lắp ráp của các công đoạn tiếp theo Tuy nhiên, không phải bộ phận kiểm tra chất lượng nào của một quy trình (quality control) đều được tối ưu, đặc biệt là với các quy trình lớn, việc thay đổi và tối ưu chất lượng kiểm tra ngoại quan cần nhiều thời gian và công sức Hơn nữa, nếu các lỗi liên quan không được phát hiện sớm để dừng quy trình thì sẽ gây ra hàng loạt sản phẩm bị thải bỏ gây ra thiệt hại lớn cho nhà máy sản xuất
Sơ đồ hệ thống trong một nhà máy lắp ráp sản xuất chip bán dẫn có thể được tóm gọn như hình bên dưới Trong đó, phần kiểm tra bổ sung sẽ được thiết kế và vận hành ở cuối công đoạn lắp ráp trước khi đưa vào kiểm tra tính năng (test) vì các lỗi sản phẩm nếu có và chưa được phát hiện sẽ nằm ở công đoạn này, hơn nữa nếu để các sản phẩm lỗi đến công đoạn test, rất có thể chúng sẽ gây ra hư hại cho các bảng mạch test và gây ra thiệt hại lớn (các thiết bị test thường có giá thành đắt hơn rất nhiều so với các thiết bị lắp ráp)
Hình 2.4 Quy trình lắp ráp và kiểm tra trong sản xuất chip bán dẫn
Hệ thống kiểm tra ngoại quan và những ứng dụng, phần mềm đi kèm thường được thiết kế, đóng gói sẵn từ nhà sản xuất nên không thể chỉnh sửa, thay đổi từ phía người dùng Với hệ thống hiện tại đang được đề cập, một số vùng trên sản phẩm nằm ngoài ROI của hệ thống chính nên hệ thống không có khả năng phát hiện các lỗi ở những khu vực này
Do đó, ứng dụng sẽ được xây dựng là một ứng dụng bổ sung, hỗ trợ cho hệ thống chính và sử dụng hình ảnh có sẵn từ hệ thống chính để xử lý như đã đề cập ở chương 1.
Một số phương pháp xử lý ảnh phát hiện lỗi trong công nghiệp
Hiện nay, việc áp dụng các phương pháp xử lý ảnh truyền thống để xử lý và phát hiện lỗi trong các dây chuyển sản xuất là rất phổ biến, trong đó có thể kể đến như: template matching, ROI, Deep Learning,
Cụ thể với phương pháp template matching, người ta sẽ lựa chọn ra một hoặc một vài mẫu (template) cho mỗi loại linh kiện cần kiểm tra Sau đó, các template này sẽ trượt trên hình cần kiểm tra và so sánh độ tương đồng Phương pháp này thường được áp dụng để đếm số lượng linh kiện
Hình 2.5 Phương pháp Template Matching trong bài toán đếm số lượng linh kiện
Nhược điểm của Template Matching là số lượng template sẽ tăng theo số loại linh kiện và do đó thời gian xử lý sẽ tăng lên Phương pháp này chỉ thích hợp cho bài toán phát hiện linh kiện bị mất hoặc kiểm tra trùng khớp các đặc trưng của sản phẩm (ví dụ như chuỗi ký tự)[8]
Với phương pháp sử dụng ROI, người ta sẽ định nghĩa các ROI ở những vùng cần phát hiện lỗi, sau đó bằng các phương pháp xử lý lọc nhiễu và phân ngưỡng (thresholding), ta xác định được kích thước tương đối của vật thể Các thông số này sau đó được lưu lại như là công thức (recipe) để sử dụng cho hình thật Một nhước điểm của phương pháp này là nhạy cảm với nhiễu và độ sáng Trong trường hợp độ sáng tăng hoặc giảm (vấn đề xảy ra khi máy vận hành trong thời gian dài), thì các thông số threshold cần phải được điều chỉnh cho phù hợp Hơn nữa các lỗi không phải lúc nào cũng có mức threshold rõ ràng so với thông số được định nghĩa trước và do đó việc phát hiện các lỗi này là rất khó khăn
Hình 2.6 Một vết bẩn nhỏ và mờ trên bề mặt sản phẩm Ở phương pháp sử dụng các mô hình học sâu, phổ biến hiện nay là các mô hình YOLO và các họ RCNN sử dụng các mẫu sản phẩm bị lỗi để huấn luyện mô hình Tuy nhiên, phương pháp này gặp phải một vấn đề khó khăn là các lỗi sản phẩm thường chiếm tỉ lệ rất ít và chúng cũng không cố định một loại, do đó rất khó để có thể thu thập đủ dữ liệu phục vụ cho việc huấn luyện
Hiện nay, xu hướng sử dụng mạng CNN (Convolutional Neural Network) để trích xuất đặc trưng và sau đó sự dụng các phép toán trong thống kê để tổng hợp và phân tích bộ dữ liệu, phương pháp này có ưu điểm là chỉ cần huấn luyện trên tập dữ liệu sản phẩm bình thường không bị lỗi và cũng không cần quá nhiều tài nguyên phục vụ cho việc huấn luyện Do đó, nó đang dần trở thành xu hướng được áp dụng trong công nghiệp
Một đặc điểm quan trong trọng bài toán này là các hình ảnh được tạo ra có độ phân giải cao, tuy nhiên để áp dụng mô hình Deep Learning, ta thường phải giảm kích thước của ảnh cho phù hợp với đầu vào của một mạng CNN nào đó Do đó, các linh kiện trở nên rất nhỏ và khó phát hiện được trong trường hợp bị lệch Vì vậy, ta sẽ kết hợp hai phương pháp để có thể giải quyết được bài toán trên Cụ thể như sau:
- Đối với bài toán phát hiện vết bẩn, trầy xước: sử dụng mô hình phân phối các đặc trưng sẽ đề cập ở mục 4
- Đối với bài toán phát hiện linh kiện bị lệch hoặc mất: sử dụng phương pháp xử lý ảnh truyền thống (Template Matching, ROI, )
Phương pháp Template Matching
Template Matching là một kỹ thuật thị giác máy được sử dụng để tìm kiếm vật thể trong ảnh đầu vào dựa trên ảnh mẫu có sẵn Ứng dụng nâng cao hơn của Template Matching là tìm kiếm các vật thể có trong ảnh ở nhiều vị trí, kích thước và hướng khác nhau Thuật toán ứng dụng trong Template Matching được mô tả như sau:
- Trượt ảnh mẫu trên ảnh đầu vào
- Ảnh mẫu sẽ được dùng để đánh giá độ tương đồng so với cửa sổ trượt bằng các công thức tính độ tương đồng (similarity) Một trong những biểu thức tính độ tương đồng được sử dụng trong thư viện openCV là:
• I là hình ảnh đầu vào
• T là ảnh mẫu có kích thước là 𝑤 × ℎ
• R là thông số độ tương đồng
Một trong những nguyên nhân khiến nhiều mô hình học sâu hoạt động chưa hiệu quả là do hình ảnh chưa được xử lý trước khi đưa vào huấn luyện Vấn đề tương tự gặp phải khi sử dụng hình ảnh sản phẩm chip đầu vào chưa được căn chỉnh ở vị trí giữa như hình 2.7 Vì vị trí của sản phẩm trong hình nằm lệch nhưng không cố định nên không thể áp
12 dụng phương pháp cắt ảnh theo một thông số cố định, giải pháp cần sử dụng ở đây là Template Matching
Hình 2.7 Hình ảnh thô ban đầu chưa được căn chỉnh
Vì mục tiêu của bài toán chỉ quan tâm đến những lỗi xuất hiện trên bề mặt sản phẩm mà không cần xử lý những vùng khác trong ảnh, do đó Template Matching được sử dụng để tách vùng quan tâm (ROI) ra khỏi ảnh gốc
Hình 2.8 Từ trái qua phải, ảnh gốc đầu vào và ảnh mẫu (template)
Kiến trúc Residual Neural Network (ResNet) cho bài toán nhận dạng vật thể
Được tạo ra vào năm 2015, mô hình học sâu ResNet [9] ra đời với mục đích là để có thể xây dựng được mạng với hàng trăm lớp tích chập và tránh được hiện tượng Vanishing Gradient [10], một hiện tượng phổ biến khi cập nhật thông số bằng Gradient Descent trong các mô hình Deep Learning trước đó
Trong ResNet, người ta thêm vào các kết nối tắt (Residual Block) giữa những khối tích chập Theo hình bên dưới, khối đầu vào sẽ được bổ sung vào kết quả đầu ra của các lớp tích chập, việc này làm cho tránh được trường hợp đạo hàm bằng 0, do kết quả đã được cộng thêm giá trị của đầu vào
ResNet đã được phát triển với rất nhiều phiên bản khác nhau như: ResNet18, ResNet34, ResNet101, các số sau mỗi tên ResNet thể hiện số lớp tích chập được sử dụng Khi so sánh hiệu quả của ResNet với các mô hình khác trong tập dữ liệu ImageNet, người ta nhận thấy ResNet cho độ chính xác rất cao
Hình 2.10 So sánh Error Rate của ResNet và các mô hình phân loại khác
Do đó, ta sẽ sử dụng ResNet là mô hình để trích xuất các đặc trưng, cụ thể là ResNet18 vì mô hình này sử dụng ít lớp tích chập nhất nhưng vẫn mang lại độ chính xác cao và vì thế thời gian huấn luyện cũng như kiểm tra sẽ nhanh hơn và phụ hợp với các ứng dụng trong công nghiệp.
Phương pháp mô hình hóa phân phối các đặc trưng (Patch Distribution Modeling - PaDiM)
Với những đặc điểm như đã nêu ở mục 2, bài toán phát hiện lỗi sản phẩm là bài toán phân loại nhị phân (binary classification) giữa sản phẩm bình thường và sản phẩm bị lỗi
Mô hình học có giám sát sẽ không phù hợp với bài toán này do không đủ dữ liệu huấn luyện (training)
Phương pháp PaDiM [11], [12] có đặc điểm như sau:
- Mỗi điểm trên một ảnh đầu vào sẽ được thể hiện bằng phân phối Gauss nhiều chiều
- Các feature map được tạo ra từ mỗi ảnh sẽ được kết nối với nhau theo từng điểm trên ảnh đầu vào
- Với mỗi điểm tương ứng trên hình và với N hình ảnh đầu vào, ta sẽ tính được trung bình (mean) và hiệp phương sai (covariance) của cả tập dữ liệu
- Giá trị trung bình và hiệp phương sai này sau đó được sử dụng để so sánh với dữ liệu mới
Hình 2.11 Mô hình hóa phân phối đặc trưng (Patch Distribution Modeling)
Theo mô hình phân phối đặc trưng, 3 layer đầu của mô hình Deep Learning được sử dụng để trích xuất thông tin, cụ thể trong trường hợp này sử dụng ResNet18 mỗi điểm trên tấm ảnh giả sử có tọa độ (𝑖, 𝑗), sau khi qua 3 layer đầu và liên kết với nhau, ta được vector 𝑋 𝑖𝑗 = {𝑥 𝑖𝑗 𝑘 , 𝑘 ∈ [1, 𝑁]} với N là tổng số mẫu trong tập dữ liệu huấn luyện Do đó phân phối Gauss nhiều chiều trên tập dữ liệu này sẽ là 𝑁(𝜇 𝑖𝑗 , ∑ ) 𝑖𝑗 Trong đó 𝜇 𝑖𝑗 là trung bình của 𝑋 𝑖𝑗 và ma trận hiệp phương sai ∑ 𝑖𝑗 Ma trận hiệp phương sai được tính như sau:
N k k T ij ij ij ij ij k x u x u I
Số hạng 𝜀𝐼 có tác dụng làm cho ma trận hiệp phương sai khả nghịch Vì mô hình sử dụng
3 layer làm cho các vector liên kết đặc trưng chứa đựng thông tin từ nhiều tầng ngữ nghĩa khác nhau và do đó ma trận hiệp phương sai cũng là mối liên kết giữa các layer
Sau khi có được giá trị làm đại diện cho tập dữ liệu huấn luyện (𝜇 𝑖𝑗 , ∑ ) 𝑖𝑗 , với mỗi điểm (𝑖, 𝑗) trên mẫu dữ liệu kiểm tra (test), người ta sử dụng khoảng cách Mahalanobis để
16 kiểm tra sự khác biệt Trong bộ dữ liệu đa biến, khoảng cách Euclid thường không chính xác nếu các biến có sự tương quan
Hình 2.12 a) Các biến không có sự tương quan b) Các biến có sự tương quan
Như hình trên, ta nhận thấy trong trường hợp b, mặc dù khoảng cách của 2 điểm đến tâm của bộ dữ liệu là bằng nhau, tuy nhiên chỉ có điểm thứ 1 là thuộc về bộ dữ liệu Do đó, công thức tính khoảng cách Euclid là không chính xác Bằng cách áp dụng khoảng cách Mahalanobis [13] với công thức như sau:
Trong đó, khoảng cách giữa hai điểm sẽ được nhân với nghịch đảo của ma trận hiệp phương sai, điều đó có nghĩa là nếu các chiều của bộ dữ liệu có liên kết mật thiết với nhau (ở đây là mỗi điểm ảnh trong toàn bộ tập dữ liệu) thì hiệp phương sai sẽ có giá trị lớn Do đó, khi nhân với nghịch đảo của ma trận hiệp phương sai thì khoảng cách sẽ giảm đi đáng kể và ngược lại Nói cách khác, vì ma trận hiệp phương sai chứa mối tương quan giữa các biến trong toàn bộ vector liên kết và của các điểm trong tập dữ liệu nên khoảng cách từ một điểm bất kỳ (có cùng số chiều với số chiều của dữ liệu) sẽ thể hiện được mối tương quan của điểm đó đến toàn bộ tập dữ liệu
Giả sử mỗi điểm có tọa độ M i j ( , )trên ảnh sau khi trích xuất đặc trưng ở 3 layer đầu của mô hình ResNet18 với độ dài n và với N hình ảnh trong tập huấn luyện ta được một bộ vector ngõ ra như sau:
Do đó, vector trung bình u ij có giá trị: u ij = + + + z 1 z 2 z n
Do đó, ma trận hiệp phương sai có dạng:
N k k T ij ij ij ij ij k
T T N N T ij ij ij ij ij ij ij ij ij ij ij ij n n n n x u x u
18 var cov cov cov cov cov var cov cov cov cov cov cov cov cov cov cov var cov cov cov cov cov var
Có thể thấy ma trận hiệp phương sai có kích thước (nxn) Do đó theo công thức tính khoảng cách Mahalanobis, ta được giá trị của điểm M i j ( , ) là một số m như bên dưới Thông số m trên mỗi điểm ảnh đại diện cho sự khác biệt của điểm ảnh đó trong hình test so với bộ dữ liệu huấn luyện Dựa vào thông số này ta có thể xác định được vị trí bất thường xuất hiện trên ảnh
T ij ij ij ij ij n n e
Ứng dụng xử lý ảnh trong phát hiện lỗi lệch/thiếu linh kiện
Một khó khăn khi sử dụng mô hình Deep Learning cho bài toán phát hiện vật thể là hình ảnh đầu vào phải được giảm kích thước cho đúng với kích thước đầu vào của mô hình đó
Hình 2.13 Hình ảnh mẫu sản phẩm trước và sau khi thực hiện giảm kích thước
Như hình trên, các linh kiện trong ảnh sau khi được xử lý giảm kích thước (224 x 224), thì hình dạng của linh kiện không còn như ban đầu và hiện tượng vỡ ảnh xảy ra Khi đó, việc trích xuất đặc trưng của các loại linh kiện sử dụng Deep Learning là không hiệu quả Vì vậy, ta cần sử dụng kết hợp với phương pháp xử lý ảnh truyền thống để giải quyết bài toán Cụ thể hơn, ta sẽ vẽ các đường bao xung quanh các loại linh kiện có cùng kích thước, sau đó sử dụng các phương pháp xử lý ảnh để lấy được thông tin của linh kiện
Hình 2.14 Sử dụng ROI xung quanh các nhóm linh kiện có cùng đặc trưng
Một số phương pháp tiền xử lý ảnh áp dụng cho bài toán CNN
Tiền xử lý ảnh là một trong những khâu quan trọng khi trước khi huấn luyện dữ liệu với các mô hình CNN Ví dụ như khi hình ảnh đầu vào quá tối làm cho các lỗi trên bề mặt sản phẩm không được rõ ràng hoặc hình ảnh quá mờ khiến mô hình CNN hoạt động kém hiệu quả Do đó, một vài phương pháp tiền xử lý nhằm tăng chất lượng ảnh trước khi huấn luyện được sử dụng:
- Bộ lọc Gauss: bộ lọc được sử dụng để xấp xỉ nhiễu trong nhiều ứng dụng Mật độ phân bố xác suất của nhiễu là hàm Gauss
- Enhance Image: là phương pháp tăng sáng đi kèm với tăng độ sắc nét hình ảnh
- Adjust Gamma: dùng để tăng giảm độ tương phản bằng biến đổi sử dụng hàm mũ
Hình 2.15 Sử dụng gamma correction để tăng giảm độ tương phản
QUÁ TRÌNH THỰC HIỆN
Cấu trúc của hệ thống
Vì yêu cầu trong nhà máy sản xuất là cần phát hiện lỗi càng sớm càng tốt nên một hệ thống đáp ứng được cần phải có thời gian xử lý nhanh, chính xác, tiêu tốn ít tài nguyên máy tính Như đã đề cập ở chương II, chúng ta sử dụng hình ảnh sản phẩm được tạo ra sau khi dây chuyền kết thúc một lô sản phẩm Vì vậy, tất cả các dây chuyền sẽ được chạy ứng dụng bổ sung ngay sau khi có tín hiệu kết thúc Các kết quả sau khi xử lý sẽ được chuyển đến một máy chủ để có thể truy xuất và gửi thông tin cảnh báo
Hình 3.1 Hệ thống kiểm tra và cảnh báo đến người vận hành
Trình tự các bước được xử lý như sau:
Hình 3.2 Sơ đồ khối hoạt động của hệ thống
Phân loại bài toán
3.2.1 Lỗi vết bẩn hoặc trầy xước trên bề mặt Ở trên bề mặt substrates, các vết bẩn và trầy xước có thể xuất hiện đa dạng với nhiều kích thước và màu sắc khác nhau Trong đó có thể phân thành 2 loại chính là:
- Loại 1: Các vết bẩn hoặc trầy xước xuất hiện cố định tại một vị trí với hình dáng và kích thước tương đồng và xảy ra với một loạt sản phẩm do các kết cấu cơ khí hoặc một lỗi nào đó trong một quy trình cụ thể
- Loại 2: Xuất hiện ngẫu nhiên trong quá trình sản xuất và không gây ra lỗi hàng loạt tại một vị trí xác định, các lỗi này thường không gây ảnh hưởng quá nhiều đến quy trình và cũng khó để xác định nguyên nhân đến từ một quy trình cụ thể nào
Hình 3.3 Hai loại lỗi sản phẩm trong một quy trình
Từ định nghĩa ở trên, có thể thấy việc phát hiện lỗi sản phẩm loại 1 là rất cần thiết, giúp sớm phát hiện và dừng một công đoạn bị lỗi để sửa chữa, tránh việc dừng hàng loạt quy trình không cần thiết Các sản phẩm loại là loại 1 sẽ được cảnh báo đến người vận hành, các sản phẩm loại 2 sẽ được lưu lại cho mục đích phân tích sau này
3.2.2 Lỗi lệch và mất linh kiện
Khác với các lỗi bẩn và trầy xước trên bề mặt substrates, lỗi lệch và mất linh kiện lại không được gây ra bởi một nguyên nhân cố định nào mà là kết quả của một quá trình tương tác với các quy trình khác nhau của linh kiện [14] Do đó, mục tiêu của bài toán là phát hiện và loại bỏ những sản phẩm bị lỗi để tránh gây ra ảnh hướng đến các sản phẩm bình thường khác khi đi đến quy trình kiểm tra (test) như đã đề cập ở chương 2.
Tiền xử lý ảnh
Như đã đề cập ở chương 2, tiền xử lý ảnh là một khâu rất quan trọng trong bài toán học sâu Do đó 3 phương pháp tiền xử lý ảnh được dùng để thử nghiệm là: Gamma Correction, Enhance Image và Sharpeness
Trong đó Gamma Correction sử dụng thông số gamma để điều chỉnh tương phản trong ảnh, Enhance Image sử dụng tăng sáng và làm sắc nét, còn Sharpeness sử dụng bộ lọc Gauss và sử dụng một mặt nạ tích chập 2D để tăng độ sắc nét cho ảnh.
Thu thập dữ liệu huấn luyện và đánh giá
Đối với bài toán sử dụng CNN, ta cần thu thập một bộ dữ liệu phục vụ cho việc huấn luyện và đánh giá chất lượng mô hình Cụ thể như sau:
- Dữ liệu huấn luyện (training set): Như đã đề cập ở chương 2, các dữ liệu huấn luyện là các sản phẩm hoàn chỉnh, không bị lỗi về mặt ngoại quan Do đó, các dữ liệu này sẽ được lấy bằng cách kiểm tra các sản phẩm ở công đoạn cuối cùng và truy ngược lại công đoạn hiện tại (công đoạn cần xử lý hình ảnh) để lấy ra bộ dữ liệu bình thường (normal)
- Dữ liệu kiểm định (validation set): Là một bộ dữ liệu trộn lẫn giữa hình bình thường và hình bị lỗi (các hình bị lỗi được trích xuất ra từ các công đoạn phía sau) và được gán nhãn tương ứng
- Dữ liệu kiểm tra (test set): Là một loạt các lô sản phẩm bất kỳ được xử lý qua công đoạn hiện tại
Cụ thể tập dữ liệu như bảng sau:
Sản phẩm Training Data Validation Data Test Data
A < 700 2 lô sản phẩm 8 lô sản phẩm
B < 700 2 lô sản phẩm 8 lô sản phẩm
C < 700 2 lô sản phẩm 8 lô sản phẩm
D 1 2 lô sản phẩm 8 lô sản phẩm
E 1 2 lô sản phẩm 8 lô sản phẩm
F 1 2 lô sản phẩm 8 lô sản phẩm
Trong đó mỗi lô sản phẩm bao gồm khoảng 1000 hình sẽ được xử lý (Tập dữ liệu huấn luyện nhỏ hơn trong tập validaton và tập test là bơi vì các lô sản phẩm thực chất là tập test) Trong đó 3 sản phẩm D, E và F sẽ thuộc bài toán nhận dạng linh kiện bị lệch, do đó sẽ chỉ cần 1 hình ảnh cho việc huấn luyện
Bài toán phân loại ở đây là bài toán phân loại nhị phân (binary classification), có nghĩa là mô hình sẽ nhận dạng sản phẩm là có bị lỗi hoặc không
Do đó, để đánh giá chất lượng của mô hình CNN và phương pháp xử lý ảnh, ngoài việc sử dụng các thông số quan trọng như Precision, Recall đối với tập dữ liệu kiểm định ta cũng cần kiểm định lại kết quả trong tập dữ liệu kiểm tra Công việc này được thực hiện bằng cách kiểm định các kết quả đã được phát hiện bằng mắt thường với các tiêu chuẩn đã được định sẵn và so sánh với kết quả nhận dạng
Trong đánh giá mô hình phân loại, các chỉ số TP, FP, TN, FN được sử dụng trong đó:
- TP (True Positive) là tổng số trường hợp dự báo đúng là sản phẩm lỗi
- TN (True Nagative) là tổng số trường hợp được dự báo đúng không phải sản phẩm lỗi
- FP (False Positive) là tổng số trường hợp dự báo các sản phẩm bình thường là sản phẩm lỗi
- FN (False Nagative) là tổng số trường hợp dự báo sản phẩm bị lỗi là sản phẩm bình thường
Khi đó độ chính xác của mô hình (accuracy) sẽ là:
𝑇ổ𝑛𝑔 𝑐á𝑐 𝑚ẫ𝑢 Độ chính xác càng cao thể hiện một mô hình nhận dạng càng chuẩn xác Tuy nhiên, hạn chế của accuracy là nó được đo trên tất cả các nhãn mà không quan tâm đến độ chính xác của từng nhãn cụ thể Trong trường hợp nhận dạng sản phẩm lỗi, thì nhãn là sản phẩm lỗi sẽ được ưu tiên hơn Nói cách khác, việc phân loại chính xác một sản phẩm là lỗi quan trọng hơn việc phân loại một sản phẩm không phải là lỗi
Trong trường hợp này, người ta sẽ sử dụng Precision để đo độ chính xác của mô hình Precision sẽ cho biết trong số các trường hợp được dự báo là positive thì có bao nhiêu trường hợp là đúng Do đó, Precision càng cao thì mô hình phân loại càng tốt Công thức tính Precision như sau:
Một thông số khác được dùng để đánh giá mô hình là Recall Nó là tỉ lệ số mẫu được phát hiện là True Positive trong số toàn bộ mẫu thực sự là True Positive (True Positive + False Nagative), hay nói cách khác Recall càng cao đồng nghĩa với việc bỏ sót các sản phẩm bị lỗi càng thấp Công thức tính Recall như sau [15]:
Phát hiện sản phẩm bị lệch sử dụng OpenCV
Như đã trình bày ở chương 2, để có thể phân loại được linh kiện bị lỗi, cần lấy được thông tin kích thước linh kiện và trình tự được thực hiện như sau:
- Chuyển từ ảnh màu thành ảnh xám, lọc nhiễu bằng bộ lọc Gauss và các phương pháp dilation và erosion
- Đối với mỗi vùng ROI trong hình, lấy các đường bao quanh mỗi linh kiện bằng hàm findContours của OpenCV, sau đó ta định nghĩa một bounding box quanh mỗi đường bao này Vì bounding box là hình chữ nhật và đại diện cho kích thước của linh kiện (dài, rộng) nên nó được lấy làm thông số cho linh kiện đó
- Trong mỗi ROI, ta sẽ tính được độ dài và rộng tối thiểu cũng như tối đa của một linh kiện
Nhận xét: Với chiều dài và rộng của linh kiện được tính như trên, trong trường hợp một linh kiện bị lệch hoặc hoặc mất thì kích thước của nó sẽ tăng lên hoặc giảm đi
Từ đó ta xác định được linh kiện bị lỗi Hình bên dưới thể hiện chi tiết về phương pháp này
Hình 3.4 Từ trái qua phải, kích thước linh kiện bình thường so với lúc bị lệch và mất
Có thể thấy kích thước của chiều rộng của linh kiện tăng lên đáng kể trường hợp bị méo hoặc lệch Đối với trường hợp linh kiện bị rơi ra khỏi vị trí, kích thước của lớp đệm đồng (copper pad) cũng sẽ nhỏ hơn so với thông số được định nghĩa ban đầu
Một đặc trưng của sản phẩm làm cho việc nhận dạng linh kiện bị lệch hoặc mất trở nên dễ dàng hơn, ngay cả khi góc lệch là nhỏ hoặc linh kiện tịnh tiến trong mặt phẳng 2D đó là nhờ vào copper pad như đề cập ở trên Nói cách khác, vị trí của copper pad là cố định trong mọi trường hợp Do đó, kích thước đường bao quanh linh kiện sẽ to hơn hoặc nhỏ đi khi sản phẩm lỗi
Hình 3.5 Từ trái sang phải, linh kiện bình thường nằm trên copper pad, linh kiện bị lệch và linh kiện mất
Như đề cập ở trên, để phát hiện link kiện bị lệch hoặc mất, nhiều vùng quan tâm (ROI) sẽ được sử dụng để xác định kích thước của linh kiện, cụ thể thuật toán như sau:
- Đọc vị trí của các ROI đã được lưu sẵn
- Cắt các ROI thành các ảnh nhỏ khác nhau
- Trên mỗi ROI, thực hiện nhị phân hóa (thresholding) và sử dụng opening
(erosion và dilation) Tìm kiếm đường bao quanh các linh kiện bằng (contours)
- Sau khi có được các contours, tiến hành vẽ các đường bao hình chữ nhật xung quanh mỗi linh kiện Kích thước của hình chữ nhật chính là kích thước (dài, rộng) của linh kiện
- So sánh với kích thước đã được định sẵn để đưa ra kết quả Để kết quả phát hiện được chính xác hơn, ta sử dụng một điểm cố định (base fiducial) trên hình để tham chiếu đến vị trí của các ROI, điều này sẽ hạn chế được sai sót khi ảnh bị xoay hoặc bị lệch
Hình 3.6 Điểm tham chiếu trong ô chữ nhật màu đỏ
Ba loại sản phẩm như hình bên dưới được dùng để đánh giá linh kiện lệch
Hình 3.7 Từ trái sang phải, ba loại sản phẩm dùng để đánh giá linh kiện lệch
Phát hiện các vết bẩn hoặc trầy xước trên bề mặt sử dụng CNN
Để mô hình trích xuất đặc trưng được hoạt động hiệu quả, ta sử dụng kết hợp các phương pháp tiền xử lý ảnh và Template Matching để có thể tạo ra mẫu dữ liệu tối ưu nhất cho việc huấn luyện Cụ thể thuật toán như sau:
- Sử dụng template để cắt lấy khu vực cần xử lý trên ảnh đầu vào bằng Template Matching
- Hình ảnh đã crop sẽ được tiền xử lý bằng các phương pháp lọc nhiễu, tăng sáng, tương phản,
- Đưa hình ảnh qua mô hình CNN (ResNet18) để trích xuất đặc trưng
- Vector đặc trưng sẽ được so sánh với vector đặc trưng đại diện cho dữ liệu huấn luyện bằng công thức tính khoảng cách Mahalanobis, ta có được vector ngõ ra
- Giá trị lớn của vector ngõ ra là một điểm bất thường trên ảnh và ngược lại
Ba loại sản phẩm như hình bên dưới được dùng để đánh giá phương pháp CNN
Hình 3.8 Từ trái sang phải, ba loại sản phẩm được dùng để đánh giá mô hình CNN
Cụ thể hơn, ở bước đầu tiên, chúng ta lần lượt so sánh hình ảnh đầu vào của 1 lô sản phẩm với một loạt các template đã được tạo sẵn, mỗi template tương ứng với một bộ thông số đã được huấn luyện
Sau khi có được template khớp với hình ảnh đầu vào, toàn bộ ảnh trong tập dữ liệu sẽ được lần lượt so sánh với template hiện tại để cắt đúng vị trí mong muốn phân tích Sau đó, ta tiến hành giảm kích thước hình đúng với kích thước đầu vào mô hình CNN và áp dụng các phương pháp tiền xử lý ảnh trên ảnh
Tiếp theo, mỗi ảnh được đưa qua mô hình CNN để trích xuất đặc trưng, ở đây dùng 3 layer của ResNet18 với 3 khối tương ứng Như đã đề cập ở chương 2, kết nối các feature map (hay còn gọi là embedded vector), kết hợp với tính khoảng cách Mahalanobis chính là hai thành phần quan trọng nhất của phương pháp PaDim (Patch Distribution
Modeling) Việc kết nối các khối (block) trong từng layer với nhau được thực hiện như sau:
Hình 3.9 Kiến trúc của ResNet18
- 3 layer được sử dụng có kích thước lần lượt là (64, 56, 56), (128, 28, 28) và (256,
14, 14) Các layer được nối với nhau để được một khối đầu ra với kích thước (448,
56, 56) Trong đó, khối đầu tiên với kích thước (64, 56, 56) được mở (unfold) như sau:
• Với input tensor có kích thước (N, C, *) trong đó N là số chiều của batch,
C là số kênh (chanel), * là kích thước không gian tùy ý Một kernel có kích thước cố định trượt trong mỗi khối để chuyển các khối về dạng vector cột
• Theo [16] ta được vector output 3-D có kích thước (𝑁, 𝐶 ×
∏(𝑘𝑒𝑟𝑛𝑎𝑙 𝑠𝑖𝑧𝑒), 𝐿) Trong đó 𝐶 × ∏(𝑘𝑒𝑟𝑛𝑎𝑙 𝑠𝑖𝑧𝑒) là tổng số giá trị trong mỗi block nhỏ có kích thước ∏(𝑘𝑒𝑟𝑛𝑎𝑙 𝑠𝑖𝑧𝑒) và mỗi block này có C vector đại diện cho mỗi kênh Ví dụ, khi sử dụng kernel có kích thước (2, 2) với đầu vào là (N, 64, 56, 56) thì 𝐶 × ∏(𝑘𝑒𝑟𝑛𝑎𝑙 𝑠𝑖𝑧𝑒) = 64 × 2 × 2 = 256 L chính
33 là tổng số vector cột được tạo ra và được tính như sau (với stride là bước của kernel):
- Sau khi có được vector trải phẳng (flattened) có kích thước (N, 256, 784) với L 784 được tính từ công thức ở trên, một vector rỗng kích thước (N, 192, x, 28, 28) được tạo ra có cùng kích thước không gian với khối thứ 2 Dễ thấy x = 4 Từ đó tensor đầu ra có kích thước (N, 192, 4, 28, 28) Sau đó tiến hành đóng gói (fold) để tạo ra tensor có kích thước (N, 192, 56, 56) Từ đây, ta có được tensor được nối từ 2 tensor đầu vào và giữ nguyên kích thước không gian Lặp lại các bước ở trên cho tensor thứ 3 ta được tensor cuối cùng có kích thước (N, 448, 56, 56) chính là vector dùng để so sánh với vector đặc trưng trong tập huấn luyện
- Việc tính khoảng cách giữa 2 vector đặc trưng đã được trình bày ở chương 2.
Thiết kế giao diện phục vụ cho việc huấn luyện
Để quá trình huấn luyện được dễ dàng, 2 giao diện người dùng được thiết kế bằng Window Form (C#) hỗ trợ việc tạo ảnh mẫu (template) cũng như vẽ các ROI cho bài toán phát hiện lệch linh kiện
Hình 3.10 Giao diện hỗ trợ vẽ ROI
Các chức năng chính của giao diện là:
- Vẽ ROI cho base fiducial (dùng được cả fiducial tam giác và fiducial tròn)
- Vẽ ROI cho mỗi khu vực tụ
- Thiết lập các thông số về threshold, offset cho các khu vực tụ
- Điều chỉnh các thông số và xem kết quả phát hiện trên hình mẫu
- Lưu các thiết lập vào file recipe để sử dụng
Hình 3.11 Giao diện hỗ trợ huấn luyện mô hình học sâu và tạo template
Các chức năng chính của giao diện là:
- Vẽ ROI, từ đó cắt hình tạo Template
KẾT QUẢ THỰC HIỆN VÀ ĐÁNH GIÁ
Kết quả nhận dạng khi huấn luyện mô hình CNN với số lượng hình ảnh đầu vào thay đổi
Để đánh giá chính xác số lượng hình ảnh cần sử dụng cho việc huấn luyện, tránh tiêu tốn tài nguyên máy tính và phù hợp với nhu cầu thực tế, ta tiến hành thử nghiệm với số lượng hình ảnh đầu vào thay đổi với các mẫu lần lượt là: 100, 300, 500, 700
Hình 4.1 Một vết trầy hình số 4 trên bề mặt sản phẩm được phát hiện
Hình 4.2 Một vết bẩn ở cùng một vị trí trên nhiều sản phẩm được phát hiện
Các kết quả nhận dạng tương tự cho sản phẩm 2 và 3 được trình bày ở phần phụ lục
Kết quả nhận dạng: Accuracy
Hình 4.3 Kết quả nhận dạng accuracy khi training dataset thay đổi sản phẩm 1
Kết quả nhận dạng: Precision
Hình 4.4 Precision của sản phẩm 1 khi training data set thay đổi
Kết quả nhận dạng: Recall
Hình 4.5 Recall của sản phẩm 1 khi training dataset thay đổi
- Với cả 3 thông số accuracy, precision và recall, mô hình nhận dạng tăng dần độ chính xác theo kích thước của tập huấn luyện đối với cả 3 sản phẩm Tuy nhiên, độ chính xác không thay đổi nhiều khi tiếp tục tăng kích thước tập huấn luyện
- Một số lô sản phẩm có accuracy thấp hơn vì những lô đó có số lượng sản phẩm ít hơn
Kết luận: Sử dụng 500-700 hình ảnh cho tập huấn luyện để đạt tối ưu tài nguyên tính toán cũng như độ chính xác.
Kết quả nhận dạng khi huấn luyện mô hình CNN với các phương pháp tiền xử lý ảnh khác nhau 39
xử lý ảnh khác nhau
Tiền xử lý ảnh luôn là một khâu quan trọng đảm bảo hình ảnh đầu vào được chuẩn hóa trước khi đưa vào các mô hình huấn luyện Thực tế cho thấy, để cải thiện mô hình huấn
40 luyện tiền xử lý ảnh là một phương pháp được áp dụng đầu tiên Do đó, ta tiến hành thử nghiệm với 3 phương pháp tiền xử lý ảnh khác nhau:
- Sử dụng Template Matching và Enhance Image
- Sử dụng Template Matching và bộ lọc Gauss
- Sử dụng Template Matching và Adjust Gamma
Các kết quả nhận dạng tương tự cho sản phẩm 2 và 3 được trình bày ở phần phụ lục
Kết quả nhận dạng: Accuracy
Hình 4.6 Kết quả accuracy khi phương pháp tiền xử lý ảnh thay đổi sản phẩm 1
Kết quả nhận dạng: Precision
Hình 4.7 Kết quả precision khi thay đổi phương pháp tiền xử lý ảnh sản phẩm 1
Kết quả nhận dạng: Recall
Hình 4.8 Kết quả recall khi thay đổi phương pháp tiền xử lý ảnh sản phẩm 1
- Accuracy trong phương pháp Enhance Image là cao hơn so với Adjust Gamma và Gaussian Filter cho cả 3 sản phẩm
- Tương tự, 2 thông số Precision và Recall cho thấy mô hình có khả năng phát hiện lỗi chính xác với phương pháp Enhance Image và tỉ lệ bỏ sót sản phẩm lỗi thấp
- Sử dụng phương pháp Enhance Image cho phần tiền xử lý ảnh.
Kết quả nhận dạng khi huấn luyện mô hình CNN với kích thước vector đặc trưng khác nhau
Như đã đề cập ở chương 2, việc sử dụng mô hình Resnet để trích xuất đặc trưng từ 3 lớp đầu tiên sẽ cho ra kết quả là một vector có độ dài 448 như hình bên dưới
Hình 4.9 Vector đặc trưng có kích thước 448
Ta tiến hành thử nghiệm giảm chiều dữ liệu bằng cách chọn ngẫu nhiên một số các phần tử từ vector đặc trưng và so sánh kết quả nhận dạng Mục đích của thử nghiệm này là tìm ra độ dài của vector đặc trưng tối ưu để giảm thời gian huấn luyện cũng như khi áp dụng vào thực tế Bên cạnh đó, ta cũng so sánh thời gian và tài nguyên máy tính khi áp dụng với các kích thước vector đặc trưng khác nhau
Các kết quả nhận dạng tương tự cho sản phẩm 2 và 3 được trình bày ở phần phụ lục
Kết quả nhận dạng: Accuracy
Hình 4.10 Kết quả nhận dạng accuracy khi kích thước vector đặc trưng thay đổi sản phẩm 1
Kết quả nhận dạng: Precision
Hình 4.11 Kết quả nhận dạng precision khi kích thước vector đặc trưng thay đổi sản phẩm 1
Kết quả nhận dạng: Recall
Hình 4.12 Kết quả nhận dạng recall khi kích thước vector đặc trưng thay đổi sản phẩm 1
Kết quả thời gian thực thi trên mỗi lô sản phẩm
Lô Thời gian xử lý
(giây) – Kích thước vector đặc trưng
Thời gian xử lý (giây) - Kích thước vector đặc trưng
- Ở cả 3 sản phẩm, kích thước của vector đặc trưng tỉ lệ thuận với số sản phẩm lỗi nhận dạng được từ mô hình Trong đó, khi tăng kích thước vector đặc trưng lên lớn nhất ta nhận được kết quả cao nhất
- Thời gian thực thi trên mỗi hình tăng dần theo kích thước của vector đặc trưng
- Để cân bằng giữa độ chính xác cũng như thời gian thực thi cho phù hợp với thực tế, chúng ta có thể cân nhắc lựa chọn vector đặc trưng có kích thước nhỏ sao cho đáp ứng được yêu cầu về độ chính xác
Kết quả phát hiện lệch/thiếu linh kiện
Hình 4.13 Từ trái sang phải, kết quả phát hiện lệch và thiếu linh kiện
Kết quả nhận dạng: Accuracy
Hình 4.14 Kết quả nhận dạng accuracy của linh kiện bị lỗi
Kết quả nhận dạng: Precision
Hình 4.15 Kết quả nhận dạng precision của linh kiện bị lỗi
Nhận xét: Precsion một số lô sản phẩm khá thấp là bởi vì có trường hợp False
Positive, nguyên nhân là do có bụi bẩn dính lên bề mặt của tụ như hình bên dưới
Kết quả nhận dạng: Recall
Hình 4.16 Kết quả nhận dạng recall của linh kiện bị lỗi
Kết quả thời gian thực thi trên mỗi lô sản phẩm:
Sản phẩm Lô Thời gian xử lý (giây) Số mẫu FPS
- Tỉ lệ phát hiện linh kiện bị mất hoặc lệch vị trí là cao cho cả 3 sản phẩm
- Thông số recall bằng 1 cho thấy tất cả các sản phẩm bị lỗi đều được phát hiện
- Ở một số lô sản phẩm, thông số precision thấp vì hệ thống nhận dạng sai một số sản phẩm có dính kèm vết bẩn trên bề mặt Tuy nhiên, precision thấp trong trường
51 hợp này không làm ảnh hưởng đến khả năng phát hiện của hệ thống khi tỷ lệ số sản phẩm bị lỗi trên mỗi lỗ sản phẩm là rất thấp (0.1%)
Hình 4.17 Một vết bụi nằm gần khu vực tụ
- Thời gian xử lý trên mỗi hình của cả 3 sản phẩm là tương đồng với FPS (Frame Per Second) khoảng 18, và mỗi lô sản phẩm xử lý khoảng 2 phút chứng tỏ hệ thống phù hợp với yêu cầu xử lý thực tế
Kết luận: Hệ thống có khả năng phát hiện nhiều sản phẩm bị mất hoặc lệch linh kiện với độ chính xác cao