Các phương pháp Patch Distribution Modeling PaDiM, Template Matching và một số kỹ thuật trong xử lý ảnh được sử dụng kết hợp để phát hiện ra sản phẩm lỗi.. 1.3 Mục tiêu và nhiệm vụ của l
GI Ớ I THI Ệ U
Tổng quan
Ngành công nghiệp điện tử, đặc biệt là lĩnh vực bán dẫn, đang phát triển mạnh mẽ trong nhiều thập kỷ qua Sự cạnh tranh trong sản xuất chip bán dẫn ngày càng gay gắt do nhu cầu tăng cao trong thời đại công nghệ và chuyển đổi số Theo thống kê, giá trị thị trường của ngành bán dẫn đạt 452,25 tỉ đô la Mỹ vào năm 2021 và dự báo sẽ tăng lên 483 tỉ đô la Mỹ trong năm 2022, với xu hướng tiếp tục tăng trưởng trong những năm tới.
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
Cuộc chạy đua công nghệ giữa các công ty chip đang diễn ra mạnh mẽ do nhu cầu tăng cao Để thu hút khách hàng, các nhà sản xuất không chỉ cần cung cấp tính năng vượt trội mà còn phải kiểm soát chất lượng sản phẩm để duy trì uy tín Quy trình kiểm tra chất lượng, đặc biệt là kiểm tra ngoại quan, đóng vai trò quan trọng trong việc loại bỏ sản phẩm lỗi trước khi sản xuất hàng loạt Tuy nhiên, một số quy trình kiểm tra hiện tại không đủ khả năng phát hiện lỗi so với thiết kế ban đầu, dẫn đến chi phí nâng cấp cao Bài viết này sẽ tập trung vào các lỗi thường gặp trong quy trình sản xuất, các phương pháp hiện tại để giải quyết vấn đề và đề xuất các giải pháp hiệu quả hơn.
Tình hình nghiên cứu trong và ngoài nước
Nhiều nghiên cứu trong và ngoài nước đã được thực hiện về việc phát hiện và phân loại lỗi sản phẩm trong quy trình sản xuất linh kiện và vi mạch điện tử.
Một trong những phương pháp ứng dụng công nghệ học sâu là sử dụng kiến trúc CNN với Darknet-53, cho phép định vị và phân loại đối tượng nhanh chóng, phù hợp với nhu cầu sản xuất Tuy nhiên, phương pháp này cần nhiều thời gian cho giai đoạn huấn luyện và 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 cũng đề xuất kiến trúc Two-Stage object detection, tương tự như RCNN, mang lại độ chính xác cao nhưng yêu cầu thời gian và tài nguyên lớn cho quá trình training Các phương pháp khác như FPN cũng dựa trên cơ sở RCNN Để giải quyết bài toán phát hiện lỗi khi chưa có đủ dữ liệu đại diện, có thể áp dụng phương pháp học không giám sát với mạng tích chập để trích xuất đặc trưng từ dữ liệu mẫu và tái cấu trúc vật thể, giúp giảm sai số cho các sản phẩm bình thường so với sản phẩm bị lỗi.
Hình 1.2 Mô hình Auto Encoder
Các mô hình Auto Encoder đã chứng minh hiệu quả trong việc xử lý các sản phẩm có lỗi lớn, nhưng lại nhạy cảm với các lỗi nhỏ Vì vậy, cần áp dụng một mô hình Unsupervised Learning hiệu quả hơn để cải thiện kết quả.
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 quy trình sản xuất chip bán dẫn, có nhiều lỗi ngoại quan có thể quan sát được dưới kính hiển vi (phóng đại từ 30 lần trở lên) hoặc bằng mắt thường Những lỗi điển hình bao gồm mất linh kiện, linh kiện bị lệch, vỡ, hoặc bám bẩn trên bề mặt linh kiện và tấm nền (substrates) Nhiều nguyên nhân dẫn đến các vấn đề này ở linh kiện gắn trên bề mặt chip cần được xem xét.
Các sai số trong quá trình gắp và đặt linh kiện có thể dẫn đến việc linh kiện không được kết dính đầy đủ với kem hàn Sau khi qua quá trình nung, các linh kiện này có thể bị lệch và không còn kết nối chắc chắn với vùng đệm bằng đồng Điều này làm cho các kết nối giữa linh kiện và bề mặt substrate trở nên yếu, có nguy cơ rơi ra 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 một thời gian dài vận hành, bề mặt có thể bị hư hỏng và ảnh hưởng trực tiếp đến các công đoạn lắp ráp tiếp theo Những vết nứt hoặc trầy xước nhỏ, khó phát hiện bằng mắt thường, có thể bị bỏ sót trong quá trình kiểm tra ngoại quan, dẫn đến việc tiêu tốn thời gian và nguồn lực cho các công đoạn kiểm tra 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 sản xuất ô nhiễm có thể làm bẩn bề mặt sản phẩm do máy móc tạo ra Những lỗi này dễ dàng nhận thấy bằng mắt thường, nhưng cần được phát hiện sớm để tránh vết bẩn dính lên các bộ phận cơ khí trong các công đoạn tiếp theo.
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 sử dụng kiểm tra tự động bằng máy để phát hiện và loại bỏ sản phẩm lỗi, nhằm bảo vệ quy trình lắp ráp tiếp theo Tuy nhiên, không phải tất cả các bộ phận kiểm tra chất lượng đều được tối ưu, đặc biệt trong các quy trình lớn, việc cải thiện chất lượng kiểm tra ngoại quan đòi hỏi nhiều thời gian và công sức Nếu các lỗi không được phát hiện kịp thời, quy trình sản xuất có thể dẫn đến việc thải bỏ hàng loạt sản phẩm, gây thiệt hại lớn cho nhà máy.
Sơ đồ hệ thống trong nhà máy lắp ráp chip bán dẫn bao gồm một phần kiểm tra bổ sung được thiết kế ở cuối công đoạn lắp ráp Việc này nhằm phát hiện các lỗi sản phẩm trước khi đưa vào kiểm tra tính năng, tránh gây hư hại cho các bảng mạch test, vốn có giá thành cao hơn nhiều so với 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à phần mềm đi kèm thường được thiết kế và đóng gói sẵn từ nhà sản xuất, do đó không thể chỉnh sửa bởi người dùng Trong hệ thống hiện tại, một số khu vực trên sản phẩm nằm ngoài ROI của hệ thống chính, dẫn đến việc không phát hiện được các lỗi ở những khu vực này.
Ứng dụng sẽ được phát triển như một công cụ bổ sung, hỗ trợ cho hệ thống chính, và sẽ sử dụng hình ảnh có sẵn từ hệ thống này để thực hiện các quy trình đã được đề cập trong 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 sử dụng các phương pháp xử lý ảnh truyền thống như template matching, ROI và Deep Learning để phát hiện lỗi trong dây chuyền sản xuất đang trở nên phổ biến.
Phương pháp template matching cho phép lựa chọn một hoặc nhiều mẫu cho từng loại linh kiện cần kiểm tra Các mẫu này sẽ được trượt trên hình ảnh cần phân tích và so sánh độ tương đồng Phương pháp này thường được sử 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 phương pháp Template Matching là số lượng mẫu sẽ tăng theo số loại linh kiện, dẫn đến thời gian xử lý kéo dài Phương pháp này chỉ phù hợp cho việc phát hiện linh kiện bị mất hoặc kiểm tra sự trùng khớp của các đặc trưng sản phẩm, chẳng hạn như chuỗi ký tự.
Phương pháp ROI giúp xác định các vùng cần phát hiện lỗi và sử dụng các kỹ thuật lọc nhiễu cùng phân ngưỡng để xác định kích thước vật thể Các thông số này được lưu lại như công thức cho hình ảnh thực tế Tuy nhiên, phương pháp này nhạy cảm với nhiễu và độ sáng, yêu cầu điều chỉnh ngưỡng khi độ sáng thay đổi trong quá trình vận hành Hơn nữa, việc phát hiện lỗi trở nên khó khăn do không phải lúc nào cũng có ngưỡng rõ ràng so với các thông số đã định nghĩa.
Trong phương pháp sử dụng các mô hình học sâu, như YOLO và các họ RCNN, việc huấn luyện mô hình dựa trên các mẫu sản phẩm bị lỗi gặp khó khăn do tỷ lệ lỗi sản phẩm thường rất thấp và không đồng nhất Điều này dẫn đến việc thu thập đủ dữ liệu để phục vụ cho quá trình huấn luyện trở nên khó khăn.
Hiện nay, mạng CNN (Convolutional Neural Network) đang trở thành xu hướng phổ biến trong việc trích xuất đặc trưng và phân tích 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à không yêu cầu nhiều tài nguyên cho quá trình huấn luyện Do đó, CNN ngày càng được áp dụng rộng rãi trong ngành công nghiệp.
Một đặc điểm quan trọng trong bài toán này là các hình ảnh có độ phân giải cao, nhưng để áp dụng mô hình Deep Learning, cần giảm kích thước ảnh cho phù hợp với đầu vào của mạng CNN Điều này dẫn đến việc các linh kiện trở nên rất nhỏ và khó phát hiện khi bị lệch Do đó, chúng ta sẽ kết hợp hai phương pháp để giải quyết vấn đề này.
- Đố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à kỹ thuật thị giác máy giúp xác định vật thể trong ảnh đầu vào dựa trên ảnh mẫu Ứng dụng nâng cao của nó cho phép tìm kiếm vật thể ở nhiều vị trí, kích thước và hướng khác nhau Thuật toán trong Template Matching hoạt động dựa trên việc so sánh và khớp các đặc điểm của ảnh mẫu với ảnh đầu vào.
- Trượt ảnh mẫu trên ảnh đầu vào
Ảnh mẫu sẽ được sử dụng để đánh giá độ tương đồng với cửa sổ trượt thông qua các công thức tính độ tương đồng Một trong những công thức phổ biến được áp 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 chính khiến nhiều mô hình học sâu chưa đạt hiệu quả cao là do hình ảnh chưa được xử lý trước khi huấn luyện Tình trạng tương tự cũng xảy ra khi sử dụng hình ảnh sản phẩm chip đầu vào không được căn chỉnh ở vị trí giữa Vì vị trí của sản phẩm trong hình ảnh thường lệch và không cố định, phương pháp cắt ảnh theo thông số cố định không thể áp dụng Do đó, giải pháp phù hợp trong trường hợp này là sử dụng Template Matching.
Hình 2.7 Hình ảnh thô ban đầu chưa được căn chỉnh
Template Matching được áp dụng để tách vùng quan tâm (ROI) khỏi ảnh gốc, vì bài toán chỉ tập trung vào các lỗi xuất hiện trên bề mặt sản phẩm mà không cần xử lý các khu vực khác trong ảnh.
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 ể
Mô hình học sâu ResNet, được phát triển vào năm 2015, nhằm xây dựng mạng với hàng trăm lớp tích chập và khắc phục hiện tượng Vanishing Gradient, một vấn đề thường gặp trong việc cập nhật thông số bằng Gradient Descent ở các mô hình Deep Learning trước đó.
Trong ResNet, các kết nối tắt (Residual Block) được thêm vào giữa các khối tích chập, giúp cải thiện hiệu suất mạng Nhờ vào việc bổ sung đầu vào vào kết quả đầu ra của các lớp tích chập, ResNet tránh được tình trạng đạo hàm bằng 0, nhờ đó duy trì được thông tin quan trọng trong quá trình huấn luyện.
ResNet đã có nhiều phiên bản như ResNet18, ResNet34, và ResNet101, với các số này biểu thị số lượng lớp tích chập Khi so sánh với các mô hình khác trên tập dữ liệu ImageNet, ResNet cho thấy độ 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
Chúng tôi sẽ sử dụng mô hình ResNet18 để trích xuất các đặc trưng, vì nó có số lượng lớp tích chập ít nhưng vẫn đạt độ chính xác cao Điều này giúp giảm thời gian huấn luyện và kiểm tra, 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)
Bài toán phát hiện lỗi sản phẩm có thể được xem như một bài toán phân loại nhị phân, trong đó mục tiêu là phân biệt 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 trên hình và N hình ảnh đầu vào, chúng ta sẽ tính toán trung bình (mean) và hiệp phương sai (covariance) cho toàn bộ 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, ba lớp đầu của mô hình Deep Learning, cụ thể là ResNet18, được sử dụng để trích xuất thông tin từ ảnh Mỗi điểm trên tấm ảnh có tọa độ \((i, j)\), và sau khi qua ba lớp đầu, ta thu được vector \(X_{ij} = \{x_{ij}^k, k \in [1, N]\}\) với \(N\) là tổng số mẫu trong tập dữ liệu huấn luyện Phân phối Gauss nhiều chiều trên tập dữ liệu này được biểu diễn bởi \(N(\mu_{ij}, \Sigma_{ij})\), trong đó \(\mu_{ij}\) là trung bình của \(X_{ij}\) và ma trận hiệp phương sai \(\Sigma_{ij}\) được tính theo công thức cụ thể.
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
Ba lớp tạo ra 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 Do đó, ma trận hiệp phương sai cũng thể hiện mối liên kết giữa các lớp.
Sau khi xác định giá trị đại diện cho tập dữ liệu huấn luyện (𝜇𝑖𝑗, ∑ )𝑖𝑗, cần kiểm tra sự khác biệt cho từng điểm Trong các bộ dữ liệu đa biến, khoảng cách Euclid thường không chính xác khi 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
Trong trường hợp b, mặc dù khoảng cách của hai điểm đến tâm bộ dữ liệu là bằng nhau, chỉ có điểm thứ nhất thuộc về bộ dữ liệu Điều này cho thấy công thức tính khoảng cách Euclid không chính xác Để khắc phục, ta có thể áp dụng khoảng cách Mahalanobis với công thức như sau:
Khoảng cách giữa hai điểm trong không gian dữ liệu được điều chỉnh bằng cách nhân với nghịch đảo của ma trận hiệp phương sai Nếu các chiều của bộ dữ liệu có mối liên hệ chặt chẽ, ma trận hiệp phương sai sẽ có giá trị lớn, dẫn đến việc khoảng cách giữa các điểm giảm đi đáng kể khi nhân với nghịch đảo của nó Điều này cho thấy ma trận hiệp phương sai phản ánh mối tương quan giữa các biến trong vector liên kết và các điểm trong tập dữ liệu, từ đó khoảng cách từ một điểm bất kỳ sẽ được thể hiện rõ ràng hơn.
Giả sử mỗi điểm có tọa độ \(M_{ij}\) trên ảnh sau khi trích xuất đặc trưng từ 3 lớp đầ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 thu được một bộ vector đầu ra.
Do đó, vector trung bình u ij có giá trị: u ij = + + + z z 1 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
var cov cov cov cov cov var cov cov cov cov cov cov cov cov cov cov var cov cov cov cov cov var
Ma trận hiệp phương sai có kích thước (nxn) và theo công thức tính khoảng cách Mahalanobis, giá trị của điểm M i j ( , ) được xác định là một số m Thông số m này đạ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, từ đó giúp xác định 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 thách thức trong việc áp dụng mô hình Deep Learning cho bài toán phát hiện vật thể là cần phải điều chỉnh kích thước hình ảnh đầu vào sao cho phù hợp với kích thước yêu cầu 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
Khi các linh kiện được xử lý giảm kích thước xuống 224 x 224, hình dạng của chúng bị biến đổi và hiện tượng vỡ ảnh xảy ra, dẫn đến việc trích xuất đặc trưng bằng Deep Learning trở nên không hiệu quả Do đó, cần kết hợp với các phương pháp xử lý ảnh truyền thống để giải quyết vấn đề này Cụ thể, ta sẽ vẽ các đường bao quanh các linh kiện có kích thước tương đồng và áp dụng các phương pháp xử lý ảnh để thu thập thông tin cần thiết về 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 đóng vai trò quan trọng trong việc huấn luyện dữ liệu với các mô hình CNN Hình ảnh đầu vào quá tối hoặc quá mờ có thể làm giảm hiệu quả của mô hình Do đó, việc áp dụng các phương pháp tiền xử lý để cải thiện chất lượng ảnh trước khi huấn luyện là cần thiết.
- 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
Để phát hiện lỗi trong nhà máy sản xuất một cách nhanh chóng và chính xác, hệ thống cần có thời gian xử lý ngắn và 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 hoàn thành một lô sản phẩm Do đó, tất cả các dây chuyền sẽ chạy ứng dụng bổ sung ngay khi nhận tín hiệu kết thúc Kết quả xử lý sẽ được chuyển đến máy chủ để 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à:
Các vết bẩn hoặc trầy xước loại 1 thường xuất hiện cố định tại một vị trí, có hình dáng và kích thước tương đồng Chúng xảy ra trên một loạt sản phẩm do các kết cấu cơ khí hoặc lỗi trong quy trình sản xuất.
Loại 2 lỗi xuất hiện ngẫu nhiên trong quá trình sản xuất, không gây ra lỗi hàng loạt tại một vị trí cụ thể Những lỗi này thường không ảnh hưởng nhiều đến quy trình sản xuất và khó xác định nguyên nhâ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
Việc phát hiện lỗi sản phẩm loại 1 là rất quan trọng, giúp nhanh chóng nhận diện và ngừng một công đoạn bị lỗi để sửa chữa, từ đó tránh việc dừng hàng loạt quy trình không cần thiết Sản phẩm loại 1 sẽ được cảnh báo đến người vận hành, trong khi sản phẩm loại 2 sẽ được lưu lại để phục vụ cho việc 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 không phải do một nguyên nhân cố định mà là kết quả của quá trình tương tác với các quy trình khác nhau của linh kiện Mục tiêu chính là phát hiện và loại bỏ những sản phẩm bị lỗi để tránh ảnh hưởng đến các sản phẩm bình thường khác trong quy trình kiểm tra.
Ti ề n x ử lý ả nh
Tiền xử lý ảnh đóng vai trò quan trọng trong học sâu, như đã nêu ở chương 2 Ba phương pháp tiền xử lý ảnh được thử nghiệm bao gồm: Gamma Correction, Enhance Image và Sharpeness.
Gamma Correction điều chỉnh tương phản trong ảnh bằng thông số gamma, trong khi Enhance Image tập trung vào việc tăng sáng và làm sắc nét Bên cạnh đó, Sharpeness sử dụng bộ lọc Gauss và mặt nạ tích chập 2D để cải thiện độ sắc nét của ảnh.
Thu thập dữ liệu huấn luyện và đánh giá
Để giải quyết bài toán sử dụng CNN, việc thu thập một bộ dữ liệu chất lượng là rất quan trọng cho quá trình huấn luyện và đánh giá mô hình.
Dữ liệu huấn luyện, như đã nêu trong chương 2, bao gồm các sản phẩm hoàn chỉnh và không có lỗi về mặt ngoại quan Để thu thập dữ liệu này, cần kiểm tra các sản phẩm ở công đoạn cuối cùng và truy ngược lại đến công đoạn hiện tại, từ đó tạo ra bộ dữ liệu bình thường (normal) cho quá trình xử lý hình ảnh.
Dữ liệu kiểm định (validation set) là một tập hợp dữ liệu bao gồm cả hình ảnh bình thường và hình ảnh bị lỗi, trong đó các hình ảnh bị lỗi được lấy từ các giai đoạn xử lý phía sau.
- 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
Mỗi lô sản phẩm bao gồm khoảng 1000 hình ảnh sẽ được xử lý, với tập dữ liệu huấn luyện nhỏ hơn trong tập validation và tập test, vì các lô sản phẩm thực chất là tập test Đặc biệt, ba sản phẩm D, E và F sẽ được sử dụng cho bài toán nhận dạng linh kiện bị lệch, do đó chỉ cần một hình ảnh cho việc huấn luyện.
Bài toán phân loại này thuộc loại phân loại nhị phân, tức là mô hình sẽ xác định xem sản phẩm có bị lỗi hay không.
Để đánh giá chất lượng mô hình CNN và phương pháp xử lý ảnh, cần sử dụng các chỉ số như Precision và Recall trên tập dữ liệu kiểm định Ngoài ra, việc kiểm tra kết quả trên tập dữ liệu kiểm tra cũng rất quan trọng Công việc này bao gồm việc so sánh các kết quả phát hiện bằng mắt thường với các tiêu chuẩn đã được định sẵn và đối chiếu 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 đó:
- 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 cao của mô hình nhận dạng thể hiện khả năng phân loại chính xác Tuy nhiên, accuracy có hạn chế vì nó không xem xét độ chính xác của từng nhãn riêng lẻ Đặc biệt trong việc nhận dạng sản phẩm lỗi, nhãn sản phẩm lỗi cần được ưu tiên hơn Do đó, việc phân loại chính xác sản phẩm lỗi quan trọng hơn so với việc phân loại sản phẩm không phải lỗi.
Trong trường hợp này, Precision được sử dụng để đo độ chính xác của mô hình Precision cho biết tỷ lệ các trường hợp được dự báo là positive mà thực sự đúng Do đó, Precision càng cao thì mô hình phân loại càng hiệu quả Công thức tính Precision như sau:
Một thông số quan trọng để đánh giá mô hình là Recall, được định nghĩa là tỉ lệ giữa số mẫu được phát hiện là True Positive so với tổng số mẫu thực sự là True Positive (True Positive + False Negative) Recall cao cho thấy khả năng phát hiện sản phẩm lỗi tốt hơn, tức là tỷ lệ bỏ sót sản phẩm lỗi thấp Công thức tính Recall được thể hiện như sau [15]:
Phát hi ệ n s ả n ph ẩ m b ị l ệ ch s ử d ụ ng OpenCV
Để phân loại linh kiện bị lỗi, cần thu thập thông tin về kích thước của linh kiện, như đã trình bày ở chương 2 Quy trình thực hiện bao gồm các bước cụ thể để đảm bảo độ chính xác trong việc xác định lỗi.
- 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 ảnh, sử dụng hàm findContours của OpenCV để xác định các đường bao quanh từng linh kiện Tiếp theo, một bounding box được định nghĩa xung quanh mỗi đường bao này Bounding box, với hình dạng chữ nhật, đại diện cho kích thước của linh kiện (chiều dài và chiều rộng) và được sử dụng 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
Khi linh kiện có chiều dài và rộng được tính toán như trên, nếu một linh kiện bị lệch hoặc mất, kích thước của nó sẽ thay đổi, có thể 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
Kích thước chiều rộng của linh kiện có thể tăng lên đáng kể khi xảy ra tình trạng méo hoặc lệch Nếu linh kiện bị rơi ra khỏi vị trí, kích thước của lớp đệm đồng sẽ nhỏ hơn so với thông số ban đầu được định nghĩa.
Một đặc trưng của sản phẩm giúp nhận dạng linh kiện bị lệch hoặc mất trở nên dễ dàng hơn là nhờ vào copper pad Vị trí của copper pad được cố định trong mọi trường hợp, do đó kích thước đường bao quanh linh kiện sẽ thay đổi khi sản phẩm gặp 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
Để phát hiện link kiện bị lệch hoặc mất, nhiều vùng quan tâm (ROI) sẽ được áp dụng nhằm xác định kích thước của linh kiện Thuật toán được sử dụng sẽ giúp tối ưu hóa quá trình này.
- Đọ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
Sau khi xác định các contours, tiến hành vẽ các đường bao hình chữ nhật xung quanh từng linh kiện Kích thước của hình chữ nhật sẽ tương ứng với kích thước (dài, rộng) của linh kiện đó.
Để nâng cao độ chính xác trong việc phát hiện, chúng ta so sánh với kích thước đã được định sẵn và sử dụng một điểm cố định (base fiducial) trên hình ảnh làm tham chiếu cho vị trí của các ROI Phương pháp này giúp hạn chế sai sót do ảnh bị xoay hoặc 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
Để tối ưu hóa hiệu quả của mô hình trích xuất đặc trưng, chúng ta kết hợp các phương pháp tiền xử lý ảnh với Template Matching nhằm tạo ra mẫu dữ liệu tốt nhất cho quá trình huấn luyện.
- 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 thông qua công thức tính khoảng cách Mahalanobis, từ đó tạo ra 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
Ở bước đầu tiên, chúng ta so sánh hình ảnh đầu vào của một lô sản phẩm với 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ó template phù hợp với hình ảnh đầu vào, từng ảnh trong tập dữ liệu sẽ được so sánh với template để cắt đúng vị trí cần phân tích Tiếp theo, kích thước hình ảnh sẽ được điều chỉnh theo kích thước đầu vào của mô hình CNN và các phương pháp tiền xử lý ảnh sẽ được áp dụng.
Mỗi ảnh được xử lý qua mô hình CNN để trích xuất đặc trưng, sử dụng 3 lớp của ResNet18 với 3 khối tương ứng Kết nối các feature map (hay còn gọi là embedded vector) và tính khoảng cách Mahalanobis là hai thành phần quan trọng nhất trong 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:
- 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 (𝑁, 𝐶 ×
Kích thước kernel ảnh hưởng đến số lượng giá trị trong mỗi block nhỏ, được tính bằng công thức \(C \times \Pi(kernal\ size)\), trong đó \(C\) là số vector đại diện cho mỗi kênh Ví dụ, với kernel kích thước (2, 2) và đầu vào (N, 64, 56, 56), ta có \(C \times \Pi(kernal\ size) = 64 \times 2 \times 2 = 256\) Tổng số vector cột \(L\) được tạo ra sẽ được tính dựa trên stride của kernel.
Sau khi tạo ra vector trải phẳng có kích thước (N, 256, 784), một vector rỗng kích thước (N, 192, x, 28, 28) được khởi tạo, trong đó x = 4, dẫn đến tensor đầu ra có kích thước (N, 192, 4, 28, 28) Tiếp theo, tiến hành đóng gói để tạo tensor kích thước (N, 192, 56, 56), từ đó nối hai tensor đầu vào mà không thay đổi kích thước không gian Lặp lại quy trình này cho tensor thứ ba, ta thu được tensor cuối cùng có kích thước (N, 448, 56, 56), 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
Để đơn giản hóa quá trình huấn luyện, hai giao diện người dùng được phát triển bằng Window Form (C#) nhằm hỗ trợ việc tạo ảnh mẫu và 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 36 4.2 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
Để xác định chính xác số lượng hình ảnh cần thiết cho việc huấn luyện mà không lãng phí tài nguyên máy tính và phù hợp với nhu cầu thực tế, chúng tôi đã tiến hành thử nghiệm với các số lượng hình ảnh đầu vào khác nhau, cụ thể là: 100, 300, 500 và 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
Mô hình nhận dạng cho thấy độ chính xác, độ chính xác (precision) và độ nhạy (recall) đều tăng khi kích thước tập huấn luyện tăng đối với cả ba sản phẩm Tuy nhiên, độ chính xác không có sự thay đổi đáng kể khi kích thước tập huấn luyện tiếp tục được mở rộng.
- 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
4.2 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
Tiền xử lý ảnh là một bước quan trọng để chuẩn hóa hình ảnh đầu vào Chúng tôi đã tiến hành thử nghiệm với ba 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
- 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
Mô hình cho thấy khả năng phát hiện lỗi chính xác cao với phương pháp Enhance Image, đồng thời tỉ lệ bỏ sót sản phẩm lỗi cũng rất thấp, điều này được thể hiện qua hai thông số Precision và Recall.
- Sử dụng phương pháp Enhance Image cho phần tiền xử lý ảnh
4.3 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
Việc áp dụng mô hình Resnet để trích xuất đặc trưng từ ba lớp đầu tiên, như đã nêu trong chương 2, sẽ tạo ra một vector có độ dài 448, như minh họa trong hình bên dưới.
Hình 4.9 Vector đặc trưng có kích thướ c 448
Chúng tôi 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ố phần tử từ vector đặc trưng và so sánh kết quả nhận dạng Mục tiêu của thử nghiệm là xác định độ dài tối ưu của vector đặc trưng nhằm giảm thời gian huấn luyện và cải thiện hiệu suất khi áp dụng thực tế Đồng thời, chúng tôi cũng so sánh thời gian và tài nguyên máy tính khi sử dụng 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
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
Kích thước của vector đặc trưng trong cả ba sản phẩm tỉ lệ thuận với số lượng sản phẩm lỗi mà mô hình nhận dạng được Khi tăng kích thước vector đặc trưng lên mức tối đa, chúng ta đạt đượ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
Để đạt được sự cân bằng giữa độ chính xác và thời gian thực thi, chúng ta nên xem xét việc lựa chọn vector đặc trưng có kích thước nhỏ, đảm bảo đáp ứng yêu cầu về độ chính xác.
4.4 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 có độ chính xác thấp do hệ thống nhận dạng nhầm các sản phẩm có vết bẩn trên bề mặt Tuy nhiên, độ chính xác thấp này không ảnh hưởng đến khả năng phát hiện của hệ thống, vì tỷ lệ sản phẩm bị lỗi trên mỗi lô chỉ là 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ý mỗi hình ảnh của cả ba sản phẩm đạt khoảng 18 FPS (Frame Per Second), với mỗi lô sản phẩm được xử lý trong khoảng 2 phút, cho thấy hệ thống đáp ứng tốt các 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
Kết quả đạt được
Nhận dạng vết bẩn/trầy xước bề mặt:
- Khi thay đổi kích thước tập huấn luyện, độ chính xác của mô hình có xu hướng tăng dần đến một mức cố định
Khi thay đổi phương pháp tiền xử lý ảnh, mô hình cho kết quả tốt nhất với phương pháp Enhance Image Trong khi đó, hai phương pháp Adjust Gamma và Gaussian Filter lại cho kết quả nhận dạng thấp hơn.
Khi thay đổi kích thước vector đặc trưng ở ngõ ra, tỉ lệ dự đoán chính xác của mô hình tỉ lệ thuận với kích thước này Tuy nhiên, để đáp ứng nhu cầu thực tế, cần lựa chọn kích thước vector đặc trưng sao cho phù hợp với các tiêu chí về độ chính xác và thời gian xử lý.
Giao diện người dùng tối ưu hóa quy trình tạo template và huấn luyện nhiều mô hình cho các loại sản phẩm, đặc biệt là sản phẩm mới, giúp tiết kiệm thời gian hiệu quả.
- Tự động gửi thông báo đến người vận hành thông qua email trong thời gian 30 phút từ lúc hoàn tất lô sản phẩm
Khi một thông số cơ khí hoặc vật lý thay đổi, chất lượng hình ảnh sẽ bị ảnh hưởng, dẫn đến giảm độ chính xác của mô hình Hệ thống không tự động căn chỉnh lại, gây tốn thêm thời gian cho việc huấn luyện lại.
Nhận dạng linh kiện bị lệch hoặc mất:
- Hệ thống có khả năng phân loại các loại linh kiện bị lệch vị trí, mất linh kiện, dính linh kiện của nhiều loại sản phẩm khác nhau
Việc sử dụng base fiducial cho phép xác định chính xác vị trí của linh kiện trong hình ảnh, đồng thời hỗ trợ phân loại các sản phẩm bị xoay hoặc lệch.
Các thông số vị trí và kích thước của linh kiện được lưu lại trong tệp riêng biệt
Hướ ng phát tri ể n
Cải thiện liên tục hệ thống tự động thông qua việc so sánh kết quả của hệ thống với kết quả nhận dạng ở các công đoạn sau Khi phát hiện sai lệch, hệ thống sẽ sử dụng những hình ảnh bị phân loại sai hoặc chưa được phân loại để tiến hành huấn luyện lại.