.13 Tách cạnh vùng vát mép trên lỗ 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 44)

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 TỐN PHÁT HIỆN LỖI XƯỚC

3.1 Thuật tố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ựđốn. Dự đố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ựđố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ựđố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 ơ vng 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ựđoá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ự đoá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 tố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ựđoá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ủ toà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 q 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 TỐ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 khuôn 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à quá 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 q 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 qt 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 của bộ mã tựđộng là một phép chiếu trực giao lên không gian con này. Trọng số của bộ mã tự động khơng bằng với các thành phần chính và thường khơng trực giao, nhưng các thành phần chính có thểđược khơi phục từ chúng bằng cách sử dụng phân rã giá trịđơn lẻ .

45 Tuy nhiên, tiềm năng của Autoencoders nằm ở tính khơng tuyến tính của chúng, cho phép mơ hình tìm hiểu những khái quát mạnh mẽhơn so với PCA và tái tạo lại đầu vào với mức mất thông tin thấp hơn đáng kể.

Truy xut thông tin

Việc truy xuất thông tin được hưởng lợi đặc biệt từ việc giảm kích thước trong việc tìm kiếm có thể trở nên cực kỳ hiệu quả trong một số loại không gian chiều thấp nhất định. Tựđộng mã hóa thực sựđã được áp dụng cho băm ngữnghĩa , được đề xuất bởi Salakhutdinov và Hinton vào năm 2007. Nói tóm lại, đào tạo thuật tốn để tạo ra mã nhị phân chiều thấp, sau đó tất cả các mục cơ sở dữ liệu có thểđược lưu trữ trong bảng băm ánh xạvectơ mã nhịphân đến các mục nhập. Sau đó, bảng này sẽ cho phép thực hiện truy xuất thông tin bằng cách trả về tất cả các mục nhập có cùng mã nhị phân với truy vấn hoặc các mục nhập tương tựhơn một chút bằng cách lật một số bit từ mã hóa của truy vấn.

Phát hin bất thường

Một lĩnh vực ứng dụng khác cho mã tựđộng là phát hiện bất thường. Bằng cách học cách tái tạo các đặc điểm nổi bật nhất trong dữ liệu huấn luyện theo một số ràng buộc được mơ tảtrước đây, mơ hình được khuyến khích học cách tái tạo chính xác các đặc điểm thường xuyên nhất của các quan sát. Khi đối mặt với sự bất thường, mơ hình sẽ làm giảm hiệu suất tái tạo của nó. Trong hầu hết các trường hợp, chỉ dữ liệu với các phiên bản bình thường được sử dụng đểđào tạo trình mã tựđộng; trong những trường hợp khác, tần suất dịthường quá nhỏ so với toàn bộ quần thể quan sát, nên có thể bỏ qua sựđóng góp của nó đối với biểu diễn mà mơ

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 44)

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

(84 trang)