.5 Lỗi lệch trục chính

Một phần của tài liệu Hệ thống tự động kiểm tra ngoại quan sản phẩm rocker arm dựa trên xử lý ảnh và công nghệ học sâu (Trang 42)

Qui trình kiểm tra lỗi lệch trục:

- Chụp ảnh với hướng camera vng góc lỗ trục cần kiểm tra và cắt ảnh phần chứa lỗ trục cần kiểm tra.

Hình 2.6 Ảnh chụp rocker arm hướng vng góc lỗ trục

- Thơng qua các thuật tốn đểtìm đường trịn bên trong lỗvà đường trịn viền bên ngồi ở bề mặt trên. Các thuật toán làm mờ, làm sắc cạnh, tìm đường bao để loại bỏ nhiễu và làm nối bật cạnh trên hai đường trịn cần tìm. Sử dụng thuật tốn RANSAC đểtìm hai đường trịn từ các cạnh được tách phía trên.

Hình 2.7 Ảnh tách cạnh và phát hiện đường trịn trên lỗ trục chính

- Sau khi tìm được hai đường trịn, tính tốn các thơng số độ lệch tâm giữa hai đường tròn e, khoảng cách lớn nhất ∆𝑅𝑅𝑚𝑚𝑚𝑚𝑚𝑚 , khoảng cách nhỏ nhất ∆𝑅𝑅𝑚𝑚𝑚𝑚𝑛𝑛 và khoảng cách trung bình ∆𝑅𝑅𝑚𝑚𝑚𝑚𝑚𝑚. Từđó so sánh với giá trịđúng ∆𝑅𝑅𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡 để phát hiện lỗi lệch trục.

33

Hình 2.8 Qui trình kiểm tra lỗi lệch trục

Hình 2.9 Cơng thức tính các giá trị ∆𝑅𝑅

2.3 Phát hiện lỗi vát mép

34

Hình 2.11 Lỗi lệch vát mép lỗ trục chính

Lỗi vát mép gồm hai loại là lệch vát mép và vát mép sâu. Lỗi lệch vát mép là hiện tượng độ rộng vùng vát mép khơng đều trên lỗ trục chính như hình 2.10. Lỗi vát mép sâu là hiện tượng độ sâu vùng vát mép lớn hơn tiêu chuẩn dẫn đến độ rộng vùng vát mép trên hình ảnh lớn hơn nhiều so với hình ảnh vát mép tiêu chuẩn. Thuật tốn để kiểm tra lỗi vát mép tương tựnhư thuật toán kiểm tra lỗi lệch trục.

- Đầu tiên chụp ảnh vng góc với bề mặt vát mép và cắt ảnh chưa vùng vát mép trên lỗ trục chính.

Hình 2.12 Vát mép trên lỗ trục chính

- Tiếp theo là q trình xử lý ảnh với các thuật tốn làm mịn, làm sắc cạnh, tìm cạnh để loại bỏ nhiễu và giữ lại phần cạnh trên vùng vát mép. Tìm đường trịn trong và ngồi của viền vát mép thơng qua thuật tốn RANSAC.

35

Hình 2.14 Tìm đường trịn vùng vát mép trên lỗ trục chính

- Từ2 đường trịn vừa tìm được, tính tốn các thơng sốtương quan giữa hai đường tròn: độ lệch tâm giữa hai đường tròn e, khoảng cách lớn nhất ∆𝑅𝑅𝑚𝑚𝑚𝑚𝑚𝑚 , khoảng cách nhỏ nhất ∆𝑅𝑅𝑚𝑚𝑚𝑚𝑛𝑛 và khoảng cách trung bình ∆𝑅𝑅𝑚𝑚𝑚𝑚𝑚𝑚. Từđó so sánh với giá trị đúng ∆𝑅𝑅𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡 để kết luận vát mép đạt yêu cầu hay sản phẩm lỗi.

36

CHƯƠNG 3. THUẬT TOÁN PHÁT HIỆN LỖI XƯỚC

3.1 Thuật toán YOLO3.1.1 Khái nim 3.1.1 Khái nim

Yolo là một mơ hình mạng tích chập cho việc phát hiện, nhận dạng, phân loại đối tượng. Yolo được tạo ra từ việc kết hợp giữa các lớp tích chập và các lớp kết nối. Trong đó các lớp tích chập sẽ trích xuất ra các đặc trưng của ảnh, còn các lớp được kết nối đầy đủ sẽ dựđoán ra xác suất và tọa độ của đối tượng đó.

Hình 3.1. Ví dụ yolo

3.1.2 Mơ hình

Hình 3.2. Ví dụ một mơ hình yolo đơn giản

Đầu vào của mơ hình là một ảnh, mơ hình sẽ nhận dạng ảnh đó có đối tượng nào hay khơng, sau đó sẽ xác định tọa độ của đối tượng trong bức ảnh. Ảnh đầu vào được chia thành thành S×S ơ, thường sẽ là 3x3, 7x7, 9x9... việc chia ơ này có ảnh hưởng tới việc mơ hình phát hiện đối tượng.

37

Hình 3.3. Chia lưới trong yolo

Với đầu vào là 1 ảnh, đầu ra mơ hình là một ma trận 3 chiều có kích thước S×S×(5×N+M) với sốlượng tham số mỗi ơ là (5×N+M) với N và M lần lượt là số lượng hộp giới hạn và lớp mà mỗi ô cần dựđoán. Dự đoán mỗi hộp giới hạn gồm 5 thành phần: (x, y, w, h, prediction) với (x, y) là tọa độ tâm của hộp giới hạn, (w, h) lần lượt là chiều rộng và chiều cao của hộp giới hạn, prediction được định nghĩa Pr(Object)∗IOU(pred, truth). Trong đó Pr(Object) là xác suất có vật, IOU (Intersection Over Union) là hàm đánh giá độ chính xác của object detector trên tập dữ liệu cụ thể.

𝐼𝐼𝐼𝐼𝐼𝐼 =𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑜𝑜𝑜𝑜 𝐼𝐼𝑂𝑂𝐴𝐴𝐴𝐴𝑂𝑂𝐴𝐴𝑝𝑝𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑜𝑜𝑜𝑜 𝐼𝐼𝑈𝑈𝑈𝑈𝑜𝑜𝑈𝑈 PT 3.1 Trong đó Area of Overlap là diện tích phần giao nhau giữa hộp giới hạn dựđoán với hộp giới hạn thực, cịn Area of Union là diện tích phần hợp giữa hộp giới hạn dựđoán với hộp giới hạn thực. Những hộp giới hạn thực được đánh nhãn bằng tay trong tập dữ liệu đào tạo và dữ liệu kiểm tra. Nếu IOU > 0.5 thì prediction được đánh giá là tốt.

Hàm lỗi trong YOLO được tính trên việc dựđốn và nhãn mơ hình để tính. Cụ thể hơn nó là tổng độ lỗi của 3 thành phần con sau:

- Classifycation loss - độ lỗi của việc dựđoán loại nhãn của object, hàm lỗi này chỉ tính trên những ơ vng có xuất hiện object, cịn những ơ vng khác ta khơng quan tâm. Classifycation loss được tính bằng công thức sau: 𝐿𝐿𝑐𝑐𝑐𝑐𝑚𝑚𝑐𝑐𝑐𝑐𝑚𝑚𝑐𝑐𝑚𝑚𝑐𝑐𝑚𝑚𝑡𝑡𝑚𝑚𝑐𝑐𝑛𝑛 =� 𝜋𝜋𝑚𝑚𝑐𝑐𝑜𝑜𝑜𝑜� (𝑝𝑝𝑚𝑚(𝑐𝑐) 𝑐𝑐∈𝑐𝑐𝑐𝑐𝑚𝑚𝑐𝑐𝑐𝑐 𝑐𝑐2 𝑚𝑚=0 − 𝑝𝑝̂𝑚𝑚(𝑐𝑐))2 PT 3.2

Trong đó 𝜋𝜋𝑚𝑚𝑐𝑐𝑜𝑜𝑜𝑜 : bằng 1 nếu ơ vng đang xét có object, ngược lại bằng 0. 𝑝𝑝̂𝑚𝑚(𝑐𝑐): là xác xuất của lớp c tại ô vuông tương ứng mà mơ hình dựđốn

- Localization loss là hàm lỗi dùng để tính giá trị lỗi cho boundary box được dựđốn bao gồm tọa độ tâm, chiều rộng, chiều cao của so với vị trí thực tế từ dữ liệu huấn luyện của mơ hình. Giá trị hàm Localization

38 loss được tính trên tổng giá trị lỗi dự đốn toạ độ tâm (x, y) và (w, h) của hộp giới đoạn dựđoán với hộp giới hạn thực.

𝐿𝐿𝑐𝑐𝑐𝑐𝑐𝑐𝑚𝑚𝑐𝑐𝑚𝑚𝑙𝑙𝑚𝑚𝑡𝑡𝑚𝑚𝑐𝑐𝑛𝑛 =𝜆𝜆𝑐𝑐𝑐𝑐𝑐𝑐𝑡𝑡𝑚𝑚� � 𝜋𝜋𝑚𝑚𝑜𝑜𝑐𝑐𝑜𝑜𝑜𝑜��𝑥𝑥𝑚𝑚 − �𝑥𝑥�𝑚𝑚�2 𝐵𝐵 𝑜𝑜=0 (�𝑦𝑦𝑚𝑚 𝑆𝑆2 𝑚𝑚=0 − �𝑦𝑦�𝑚𝑚)2 +𝜆𝜆𝑐𝑐𝑐𝑐𝑐𝑐𝑡𝑡𝑚𝑚� � 𝜋𝜋𝑚𝑚𝑜𝑜𝑐𝑐𝑜𝑜𝑜𝑜��𝑤𝑤𝑚𝑚 𝐵𝐵 𝑜𝑜=0 𝑆𝑆2 𝑚𝑚=0 − �𝑤𝑤�𝑚𝑚�2(�ℎ𝑚𝑚 − �ℎ�𝑚𝑚)2 PT 3.3 -

Hình 3.4. Ví dụ bouding box trong yolo

- Confidence loss là độ lỗi giữa dựđoán nhãn hộp giới hạn chứa object so với nhãn thực tế tại ơ vng đó. 𝐿𝐿𝑐𝑐𝑐𝑐𝑛𝑛𝑐𝑐𝑚𝑚𝑚𝑚𝑡𝑡𝑛𝑛𝑐𝑐𝑡𝑡 =� �𝐵𝐵 𝜋𝜋𝑚𝑚𝑜𝑜𝑐𝑐𝑜𝑜𝑜𝑜(𝐶𝐶𝑚𝑚 − 𝐶𝐶̂𝑚𝑚)2 𝑜𝑜=0 𝑆𝑆2 𝑚𝑚=0 +𝜆𝜆𝑛𝑛𝑐𝑐𝑐𝑐𝑜𝑜𝑜𝑜𝑡𝑡𝑐𝑐𝑡𝑡� 𝜋𝜋𝑆𝑆2 𝑚𝑚𝑜𝑜𝑛𝑛𝑐𝑐𝑐𝑐𝑜𝑜𝑜𝑜(𝐶𝐶𝑚𝑚− 𝐶𝐶̂𝑚𝑚)2 𝑚𝑚=0 PT 3.4 Tổng lại chúng ta có hàm lỗi là tổng của 3 hàm lỗi trên: 𝐿𝐿𝑡𝑡𝑐𝑐𝑡𝑡𝑚𝑚𝑐𝑐 =𝐿𝐿𝑐𝑐𝑐𝑐𝑚𝑚𝑐𝑐𝑐𝑐𝑚𝑚𝑐𝑐𝑚𝑚𝑐𝑐𝑚𝑚𝑡𝑡𝑚𝑚𝑐𝑐𝑛𝑛 + 𝐿𝐿𝑐𝑐𝑐𝑐𝑐𝑐𝑚𝑚𝑐𝑐𝑚𝑚𝑙𝑙𝑚𝑚𝑡𝑡𝑚𝑚𝑐𝑐𝑛𝑛 + 𝐿𝐿𝑐𝑐𝑐𝑐𝑛𝑛𝑐𝑐𝑚𝑚𝑚𝑚𝑡𝑡𝑛𝑛𝑐𝑐𝑡𝑡 PT 3.5

3.1.3 Cu trúc và đặc điểm mô hình yolov3 áp dng phát hin lỗi xước trên rocker arm trên rocker arm

Trong khi mơ hình YOLOv1 thì sử dụng 24 lớp chập, sang YOLOv2 thì sử dụng backbone là darknet19 cộng với 11 lớp chập nữa để nhận dạng, thì mơ hình YOLOv3 sử dụng darknet53 làm backbone, với 53 lớp tích chập được đào tạo trên ImageNet. Đối với nhiệm vụ phát hiện, 53 lớp khác được chồng lên nó, mang lại kiến trúc phức hợp 106 lớp tích chập cho YOLOv3.

39

Hình 3.5 Cấu trúc darknet53

Hình 3.6 Kiến trúc mạng YOLOv3

Đối với YOLOv1, chúng ta đã biết thuật toán này chia bức ảnh thành các ơ lưới với kích thước SxS với S =3,5 hoặc 7. Cịn đối với YOLOv2 thì kích thước này là 13. Nhưng đối với các kích thước đó, vẫn chưa đủ để có thể tìm kiếm những đối tượng có kích thước nhỏ trong bức hình. Vậy nên YOLOv3 đã xử lý bằng cách là nhận dạng 3 lần trên một bức ảnh với kích thước khác nhau.

40 Giả sử ta có bức ảnh đầu vào có kích thước: 416×416: Tại lớp tích chập thứ 82: Bức ảnh được chia thành các ô lưới với kích thước 13×13 (bức ảnh đã được chia lưới với kích thước 32). Tại đây, các ơ lưới sẽ có trách nhiệm tìm các vật thể có kích thước lớn trong bức hình. Tại lớp tích chập thứ 94: Bức ảnh được chia thành các ơ lưới với kích thước 26 x26 (bức ảnh được chia với kích thước 16) và có trách nhiệm tìm các vật thể có kích thước trung bình. Tương tự, tại lớp tích chập 106, bức ảnh được chia thành các ơ lưới với kích thước 52×52 (ảnh được chia với kích thước 8) và có trách nhiệm tìm các vật thểcó kích thước bé.

YOLO v3 sử dụng binay cross-entropy để tính tốn lỗi phân loại cho mỗi nhãn trong khi độ tin cậy của đối tượng và dựđốn lớp được dựđốn thơng qua hồi quy logistic.

3.2 Phát hiện lỗi xước

Để phát hiện lỗi xước trên bề mặt và cạnh đề xuất sử dụng thuật toán YOLOv3 với các bước thực hiện là:

Bước 1: Thu thp d liu

Để tạo tập dữ liệu cho bước đào tạo, chúng tôi đã chụp ảnh với độ phân giải cao (6000x4000 pixel) với 7 hướng xung quanh rocker arm, đảm bảo bao phủ tồn bộ bề mặt ngồi rocker arm. Sau đó, mỗi hình ảnh sẽđược chia thành các hình ảnh nhỏhơn bằng cách trượt hình chữ nhật có kích thước w x h dọc theo hướng x với bước w / 2 và hướng y với bước h / 2 (Hình 4.6). Bằng cách này, chúng tơi có thể giảm sốlượng hình ảnh đã chụp được sử dụng đểđào tạo. Điều này có thể tiết kiệm rất nhiều thời gian.

41

Hình 3.8 Quá trình chia nhỏ ảnh

Bước 2: Gán nhãn

Sau khi thu thập các hình ảnh có chứa khuyết tật, chúng tơi sẽ cần chú thích chúng. Đối với YOLO, mỗi hình ảnh phải có một tệp văn bản tương ứng có cùng tên tệp với tên của hình ảnh trong cùng thư mục. Mỗi hàng trong tệp văn bản tương ứng với một hộp giới hạn duy nhất của lỗi và phải có thơng tin sau:

<object-class-id> <x-center> <y-center> <width> <height> Ởđây:

<object-class-id> một số nguyên từ0 đến (lớp - 1) tương ứng với các lớp trong tệp names

Height, Width- chiều cao và chiều rộng thực tế của hình ảnh x, y - tọa độ tâm của hộp giới hạn

h, w - chiều cao và chiều rộng của hộp giới hạn <x-center>: x / Width

<y-center>: y / Height <width>: w / Width <height>: h / Height

Điều này có thểđược thực hiện với YOLO Mark, một cơng cụ chú thích hình ảnh đồ họa tạo tệp .txt cho hình ảnh ởđịnh dạng YOLO.

Bước 3: Đào tạo

Khi đào tạo mơ hình chia ngẫu nhiên các hình ảnh được chú thích thành các tập đào tạo và thử nghiệm theo tỷ lệ 80:20. Trong khi huấn luyện hình ảnh, trọng số của mạng thần kinh được cập nhật lặp đi lặp lại. Chúng tơi có thể sử dụng các tập huấn luyện lớn khiến việc cập nhật trọng số cho toàn bộ tập huấn luyện trong một lần lặp lại sẽ tốn tài nguyên. Chúng ta có thể tiếp tục đào tạo cho đến khi tổn thất đạt đến một ngưỡng nhất định. Theo mặc định, trọng số cho bộ dò tùy chỉnh được lưu cho mỗi 100 lần lặp cho đến 1000 lần lặp và sau đó tiếp tục lưu cho mỗi 10000 lần lặp. Khi quá trình đào tạo hồn tất, chúng tơi có thể sử dụng các trọng sốđã tạo để thực hiện phát hiện.

42

Hình 3.9 Q trình đào tạo mơ hình

Bước 4: Kim tra với mơ hình đào tạo được

Sau khi kiểm tra độ chính xác của mơ hình được đào tạo trước, chúng tơi có thể áp dụng nó để phát hiện lỗi thời gian thực. Quá trình kiểm tra lỗi xước được thể hiện trong hình dưới đây.

43

CHƯƠNG 4. THUẬT TOÁN PHÁT HIỆN LỖI NHÁM

4.1 Thuật toán Autoencoder4.1.1 Khái nim 4.1.1 Khái nim

Autoencoder là một dạng mạng thần kinh nhân tạo được dùng để học các mã hóa dữ liệu hiệu quả theo cách học khơng có giám sát. Mục tiêu của một bộ tự mã hóa là học một học đặc tính từ một tập dữ liệu, thơng thường dành cho giảm chiều dữ liệu , bằng cách huấn luyện mạng thần kinh bỏ qua các tín hiệu "lỗi". Cùng với mặt rút gọn, một mặt tái tạo cũng được học, trong đó bộ tự mã hóa cố gắng tạo ra từ mã hóa rút gọn một thể hiện gần nhất có thể với đầu vào ban đầu của nó. Một vài biến thể tồn tại đối với mơ hình cơ bản, với mục đích ép buộc các thể hiện đã được học của đầu vào để giảđịnh các thuộc tính hữu ích. Các ví dụ là các bộ tự mã hóa chính quy (thưa thớt, giảm nhiễu, và các bộ tự mã hóa có tính chất co rút), chứng minh là hiệu trong các thể hiện học dành cho các tác vụ phân loại theo sau, và các bộ tự mã hóa đa dạng, với các ứng dụng gần đây là các mơ hình sinh mẫu. Các bộ tự mã hóa có hiệu quả khi dùng cho việc giải quyết nhiều vấn đề có tính ứng dụng, từ hệ thống nhận dạng khn mặt cho đến tiếp thu ý nghĩa ngữ nghĩa của các từ vựng.

4.1.2 Kiến trúc cơ bản

Hình 4.1 Kiến trúc cơ bản autoencoder

Hình thức đơn giản nhất của autoencoder là một feedforward, phi mạng thần kinh tái phát tương tựnhư lớp đơn perceptron tham gia vào perceptron nhiều lớp (MLP) - sử dụng một lớp đầu vào và một lớp đầu ra nối với nhau bằng một hoặc lớp ẩn hơn. Lớp đầu ra có cùng số lượng nút (nơ-ron) với lớp đầu vào. Mục đích của nó là tái tạo lại các đầu vào (giảm thiểu sự khác biệt giữa đầu vào và đầu ra) thay vì dựđốn giá trị mục tiêu Y đầu vào nhất định X. Vì vậy, mã tựđộng là mơ hình học tập không được giám sát.

Một bộ mã tự động bao gồm hai phần, bộ mã hóa và bộ giải mã, có thể được định nghĩa là q trình chuyển đổiɸ và ψ:

ɸ: 𝑋𝑋 → 𝐹𝐹 ψ : 𝐹𝐹 → 𝑋𝑋

ɸ, ψ = 𝐴𝐴𝐴𝐴𝑎𝑎𝑎𝑎𝑈𝑈𝑈𝑈 ‖𝑋𝑋 −(ψ ∙ ɸ)∙ 𝑋𝑋‖2

44 Trong trường hợp đơn giản nhất, với một lớp ẩn, giai đoạn mã hóa của trình mã tự động lấy đầu vào 𝑥𝑥 ∈ 𝑅𝑅𝑚𝑚 =𝑋𝑋 và ánh xạ nó tới ℎ ∈ 𝑅𝑅𝑝𝑝 =𝐹𝐹:

ℎ = 𝜎𝜎(𝑊𝑊𝑥𝑥+𝑏𝑏) PT 4.2

Trong đó h thường được gọi là mã , biến tiềm ẩnhoặcđại diện tiềm ẩn, 𝜎𝜎 là mộthàm kích hoạtphần tửnhư một hàm sigmoid hoặc mộtđơn vị tuyến tính được chỉnh lưu. W là một ma trận trọng lượng và b là một vector. Trọng lượng và độ lệch thường được khởi tạo ngẫu nhiên, sau đó được cập nhật lặp đi lặp lại trong quá trình đào tạo thơng qua lan truyềnngược. Sau đó, giai đoạn giải mã của bản đồ tự động mã hóah để tái thiết𝑥𝑥′ có cùng hình dạng với x:

𝑥𝑥′ = 𝜎𝜎(𝑊𝑊′ℎ+𝑏𝑏′) PT 4.3

𝜎𝜎′,𝑊𝑊′,𝑏𝑏′đối với bộ giải mã có thểkhơng liên quan đến 𝜎𝜎,𝑊𝑊,𝑏𝑏 cho bộ mã hóa. Tự động mã được đào tạo để giảm thiểu các lỗi xây dựng lại (chẳng hạn nhưlỗi bình phương), thường được gọi là "mất mát ":

𝐿𝐿(𝑥𝑥,𝑥𝑥′) = ‖𝑥𝑥 − 𝑥𝑥′‖2 PT 4.4

Như đã đề cập trước đây, quá trình đào tạo mã tự động được thực hiện thông qua việc truyền ngược lỗi, giống như mộtmạng thần kinh chuyển tiếpthơng thường.

4.1.3 ng dng

Hai ứng dụng chính của mã tựđộng từ những năm 80 là giảm kích thước và truy xuất thông tin, nhưng các biến thể hiện đại của mơ hình cơ bản đã được chứng minh là thành công khi áp dụng cho các lĩnh vực và nhiệm vụ khác nhau.

Giảm kích thước

Giảm kích thước là một trong những ứng dụng đầu tiên của học sâu và là một trong những động lực ban đầu để nghiên cứu mã tự động. Tóm lại, mục tiêu là tìm ra một phương pháp chiếu thích hợp, ánh xạ dữ liệu từkhông gian đặc trưng cao sang không gian đặc trưng thấp. Biểu diễn dữ liệu trong khơng gian chiều thấp hơn có thể cải thiện hiệu suất trên các tác vụ khác nhau, chẳng hạn như phân loại. Thật vậy, nhiều hình thức giảm số chiều đặt các ví dụ liên quan về mặt ngữnghĩa gần nhau, hỗ trợ cho sự tổng quát hóa.

Mi quan h vi phân tích thành phn chính (PCA)

Nếu kích hoạt tuyến tính được sử dụng hoặc chỉ một lớp ẩn sigmoid duy nhất, thì giải pháp tối ưu cho bộ mã tự động liên quan chặt chẽđến phân tích thành phần chính (PCA). Trọng lượng của một bộ mã tựđộng với một lớp ẩn duy nhất có kích thước p (ởđây p nhỏ hơn kích thước của đầu vào) mở rộng cùng một không gian con vectơ như không gian con được kéo dài bởi p các thành phần chính và đầu ra

Một phần của tài liệu Hệ thống tự động kiểm tra ngoại quan sản phẩm rocker arm dựa trên xử lý ảnh và công nghệ học sâu (Trang 42)

Tải bản đầy đủ (PDF)

(84 trang)