Khối Residual trong Mobilenet

Một phần của tài liệu ĐỒ án môn học cơ điện tử giới thiệu về AI (artificial intelligence) và deep learning (Trang 56)

Kiến trúc residual này ngược lại so với các kiến trúc residual truyền thống vì kiến trúc residual truyền thống có số lượng kênh ở input và output của một block lớn hơn so với các layer trung gian. Chính vì vậy nó còn được gọi là kiến trúc inverted residual block.

Tác giá cho rằng các layer trung gian trong một block sẽ làm nhiệm vụ biến đổi phi tuyến nên cần dày hơn để tạo ra nhiều phép biến đổi hơn. Kết nối tắt giữa các block được thực hiện trên những bottleneck input và output chứ không thực hiện trên các layer trung gian. Do đó các layer bottleneck input và output chỉ cần ghi nhận kết quả và không cần thực hiện biến đổi phi tuyến.

Ở giữa các layer trong một block inverted residual block chúng ta cũng sử dụng những biến đổi tích chập tách biệt chiều sâu để giảm thiểu số lượng tham số của mô hình. Đây cũng chính là bí quyết giúp họ các model MobileNet có kích thước giảm nhẹ.

G. Mạng U2-NET

Trong hai năm qua, các mạng phức hợp sâu đã hoạt động tốt hơn trạng thái nghệ thuật trong nhiều nhiệm vụ nhận dạng trực quan. Trong khi mạng phức hợp đã tồn tại trong một thời gian dài và thành công của họ bị hạn chế do kích thước của các tập huấn luyện có sẵn và kích thước của các mạng được xem xét. Các đột phá của Krizhevsky et al là do đào tạo có giám sát của một mạng với 8 lớp và hàng triệu tham số trên tập dữ liệu ImageNet với 1 triệu hình ảnh đào tạo. Kể từ đó, các mạng lớn hơn và sâu hơn đã được đào tạo .

Việc sử dụng điển hình của mạng phức hợp là trong các nhiệm vụ phân loại, trong đó đầu ra cho một hình ảnh là một nhãn lớp đơn. Tuy nhiên, trong nhiều tác vụ trực quan, đặc biệt là trong xử lý hình ảnh y sinh, đầu ra mong muốn phải bao gồm bản địa hóa, tức là, một nhãn lớp phải được gán cho mỗi pixel. Hơn nữa, hàng ngàn hình ảnh đào tạo thường nằm ngoài tầm với trong các nhiệm vụ y sinh. Do đó, các nhà khoa học đã tạo mạng trong thiết lập cửa sổ trượt để dự đoán nhãn lớp của mỗi pixel bằng cách cung cấp một vùng cục bộ (bản vá) xung quanh pixel đó

Hình 3- 35: Kiến trúc U-net (ví dụ cho 32x32 pixel ở độ phân giải thấp nhất)

Mỗi màu xanh hộp tương ứng với một bản đồ tính năng đa kênh. Số lượng kênh được biểu thị trên đầu hộp. Kích thước x-y được cung cấp ở mép dưới bên trái của hộp. trắng các hộp đại diện cho bản đồ đối tượng đã sao chép. Các mũi tên biểu thị các hoạt động khác nhau.

Cấu trúc mạng u2-net:

Kiến trúc mạng được minh họa trong hình trên. Nó bao gồm một hợp đồng đường dẫn (bên trái) và một đường mở rộng (bên phải). Đường dẫn hợp đồng theo sau kiến trúc điển hình của một mạng phức hợp. Nó bao gồm sự lặp lại ứng dụng của hai tập hợp 3x3 (các tập hợp không được đánh dấu), mỗi phần tiếp theo là một đơn vị tuyến tính được điều chỉnh (ReLU) và hoạt động gộp tối đa 2x2 với bước 2 để lấy mẫu xuống. Ở mỗi bước lấy mẫu xuống, chúng tôi tăng gấp đôi số lượng tính năng kênh truyền hình. Mỗi bước trong con đường mở rộng bao gồm việc lấy mẫu ngược bản đồ đối tượng theo sau là tích chập 2x2 làm giảm một nửa số lượng kênh tính năng, một đoạn nối với các kênh được cắt tương ứng bản đồ tính năng từ đường dẫn hợp đồng và hai tập hợp 3x3, mỗi tập hợp theo sau là một ReLU. Việc cắt xén là cần thiết do mất các pixel đường viền trong mọi tích chập. Ở lớp cuối cùng, một phép chập 1x1 được sử dụng để ánh xạ mỗi 64-vectơ đặc trưng thành phần với số lớp mong muốn. Tổng cộng mạng lưới có 23 lớp chập. Để cho phép xếp lớp liền mạch của bản đồ phân đoạn đầu ra (xem Hình 2), nó điều quan trọng là chọn kích thước ô đầu vào sao cho tất cả các hoạt động gộp tối đa 2x2 được áp dụng cho một lớp có kích thước x- và y chẵn.

Trainning:

Hình ảnh đầu vào và bản đồ phân đoạn tương ứng của chúng được sử dụng để đào tạo mạng với sự triển khai dốc nghiêng ngẫu nhiên của Caffe. Do các chập không có đệm, hình ảnh đầu ra nhỏ hơn hình ảnh đầu vào bởi chiều rộng đường viền không đổi. Để giảm thiểu chi phí và sử dụng tối đa của bộ nhớ GPU, chúng tôi ưu tiên các ô đầu vào lớn hơn kích thước lô lớn và do đó giảm hàng loạt thành một hình ảnh duy nhất. Theo đó, chúng tôi sử dụng một động lượng cao (0,99) sao cho một số lượng lớn các mẫu đào tạo đã thấy trước đây xác định cập nhật trong bước tối ưu hóa hiện tại. Hàm năng lượng được tính toán bằng soft-max theo pixel thông qua giá trị cuối cùng bản đồ đặc trưng kết hợp với hàm mất entropy chéo.

Soft-max là được định nghĩa là pk(x)=exp(ak(x))/¿

Trong đó ak(x) biểu thị kích hoạt trong kênh đặc trưng k ở vị trí pixel x ∈ Ω với Ω ⊂Z2. K là số lớp và pk(x) là hàm cực đại gần đúng.

I.e.pk(x) ≈ 1 cho k có kích hoạt lớn nhất ak(x) và pk(x) cho tất cả các k khác. Sau đó, entropy chéo sẽ phạt tại mỗi vị trí độ lệch của pl(x)(x) bằng công thức sau:

E=∑

x∈Ω⍵(x)log(¿pl(x)(x))¿

Tăng cường dữ liệu:

Tăng cường dữ liệu là điều cần thiết để dạy cho mạng sự bất biến mong muốn và đặc tính mạnh mẽ khi chỉ có một số mẫu đào tạo. Trong trường hợp của hình ảnh vết xước trên bo mạch, chúng ta chủ yếu cần sự bất biến dịch chuyển và quay cũng như độ bền đối với các biến dạng và các biến thể giá trị xám. Đặc biệt là các biến dạng đàn hồi ngẫu nhiên của các mẫu huấn luyện dường như là khái niệm chính để huấn luyện một mạng phân đoạn với rất ít hình ảnh được chú thích. Chúng tôi tạo ra suôn sẻ biến dạng sử dụng vectơ dịch chuyển ngẫu nhiên trên lưới thô 3 x 3. Các chuyển vị được lấy mẫu từ phân phối Gaussian với tiêu chuẩn 10 pixel sự lệch lạc. Sau đó, các dịch chuyển trên mỗi pixel được tính toán bằng cách sử dụng phép nội suy hai chiều. Các lớp thả ra ở cuối đường dẫn hợp đồng hoạt động ngầm hơn nữa.

3.4.4. Quá trình huấn luyện mô hình

A.Cấu hình máy tính.

Qúa trình huấn luyện mô hình nhận diện linh kiện được thực hiện trên Google Colab. Đây là hệ thống được xây dựng bởi Google cho phép việc huấn luyện mô hình diễn ra online.

Ưu điểm:

Cho phép việc huấn luyện dữ liệu online với RAM 8Gb và GPU 2Gb. So với những máy tính thông thường, cấu hình này cho phép tăng tốc quá trình huấn luyện và đánh giá mô hình.

Tiết kiệm chi phí training.

Cho phép upload và dowload file huấn luyện một cách dễ dàng. Nhược điểm:

Thời gian huấn luyện sử dụng GPU bị hạn chế. Cho phép tối đa 12h. Độ bảo mật dữ liệu không cao.

B.Thu thập dữ liệu và training.

Để huấn luyện mô hình nhận diện linh kiện, 2300 ảnh linh kiện với 13 loại linh kiện khác nhau được thu thập. Ảnh được thu thập bởi camera có độ phân giải 2 Mpx. Tập ảnh được chia ra thành file train và file test với số ảnh tương ứng là 2070 và 230 ảnh. Các ảnh được tinh chỉnh kích thước về 300x300 pixel sao cho phù hợp với đầu vào của mô hình Resnet-50.

Tập dữ liệu nhận diện linh kiện, tập dữ liệu nhận diện linh kiện ngược chiều bao gồm 3500 ảnh với 3200 ảnh train và 300 ảnh test.

55

Hình 3- 37: Tập dữ liệu ảnh huấn luyện nhận diện linh kiện

Tập dữ liệu kiểm tra viết xước trên chip và trên mạch 1500 ảnh với 1350 ảnh train và 150 ảnh test

Để giảm thiểu thời gian huấn luyện cũng như gia tăng độ chính xác cho mô hình, file weight ban đầu của mô hình được cập nhật từ “Imagenet”. Đây là file weight đã được huấn luyện qua các bộ dữ liệu cực lớn, do đó nó cho phép mô hình hội tụ nhanh hơn và tối ưu hơn. Do đó tổng thời gian để huấn luyện mô hình chỉ mất 30 phút với độ chính xác cao nhất là 98.34% trên tập test như thể hiện ở hình (3-38).

B.Kiểm chứng kết quả:

Ảnh từ camera sẽ được quay cùng hướng với ảnh mẫu ta thu được ảnh (b), sau đó chuyển ảnh sang không gian màu YUV ảnh (c), lấy kết quả đó thực hiện phép trừ ảnh với ảnh mẫu ta được ảnh (d), tiếp đó ta lọc nhiễu để bỏ các vùng lỗi nhỏ ảnh (e). Với các vùng nhiễu thỏa mãn các điều kiện về độ lớn, độ đặc, tỉ lệ dài và rộng ta sẽ lưu lại tọa độ để thực hiện các bước tiếp theo.

57

(a) (b) (c)

Kiểm tra model resnet50:

Với các tọa độ vùng lỗi thu được ở phần A ta sẽ resize về kích thước 300x300x3 để đưa vào mạng resnet50 để nhận diện linh kiện bị thiếu hoặc thừa.

Kiểm tra model mobilenet.

Tương tự ta cũng lấy dữ liệu các vùng lỗi ở phần A sau khi resize về kích thước 300x300x3 để đưa vào mạng mobilenet để kiểm tra chiều linh kiện.

Kiểm tra model U2net tương tự ta cũng lấy dữ liệu các vùng lỗi ở phần A sau khi resize về kích thước 256x256x3 để đưa vào mạng U2-net để kiểm tra vết xước

3.5 Đánh giá tổng quan đồ án:

Hệ thống đã được kiểm tra 200 lần với mỗi loại mạch và linh kiện bị hỏng trong 2 điều kiện thiếu sáng cũng như ngược sáng với 2 loại mạch là đúng hay sai. Biểu đồ được vẽ trong dựa vào file CSV sau khi xử lý mạch bao gồm độ chính xác của mỗi linh kiện trong trường hợp khác nhau.

Nhìn chung, hệ thống hoạt động ổn định trong trường hợp đủ sáng với độ chính xác với mạch đúng từ 92% - 95%, với mạch sai từ 89-92% và trong trường hợp thiếu sáng thì độ chính xác giảm mạnh khoảng 20-30%. Năng suất của hệ thống đạt tối đa là 300 mạch/giờ.

3.6 Hạn chế và phương án giải quyết: 3.6.1 Hạn chế

- Hệ thống còn phụ thuộc nhiều vào điều kiện ánh sáng do yếu tố Camera còn kém

- Năng suất hệ thống còn thấp.

- Số lượng linh kiện nhận diện còn thấp, độ chính xác chưa cao, chưa tối ưu được nhiều loại linh kiện nhỏ.

- Chưa nhận diện được các linh kiện hỏng quá nhỏ.

3.6.2 Phương án giải quyết

- Rút ngắn độ dài băng tải sẽ làm tăng năng suất hệ thống.

- Sử dụng Camera độ phân giải cao giúp làm tăng loại linh kiện có thể nhận diện. - Sử dụng mô hình U2Net để phân vùng các vùng lỗi nhỏ.

TÀI LIỆU THAM KHẢO

[1] Adrian Kaehler and Gary Bradski, “Learning OpenCV 3 Computer Vision in C++ with the OpenCV Library”, O’Reilly Media, Inc, 2017.

[2] M.A. Fischler and R.C. Bolles. Random sample consensus: A paradigm for model fitting with applications to image analysis and automated cartography. Communications of the ACM, 24(6):381–395, 1981.

[3] Rublee, Ethan; Rabaud, Vincent; Konolige, Kurt; Bradski, Gary (2011). "ORB: an efficient alternative to SIFT or SURF" (PDF). IEEE International Conference on Computer Vision (ICCV).

[4] S. Liu and W. Deng, "Very deep convolutional neural network based image classification using small training sample size," 2015 3rd IAPR Asian Conference on Pattern Recognition (ACPR), 2015, pp. 730-734, doi: 10.1109/ACPR.2015.7486599.

[5] K. He, X. Zhang, S. Ren and J. Sun, "Deep Residual Learning for Image Recognition," 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016, pp. 770-778, doi: 10.1109/CVPR.2016.90.

[6] C. Szegedy et al., "Going deeper with convolutions," 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015, pp. 1-9, doi: 10.1109/CVPR.2015.7298594.

[7] Howard, Andrew & Zhu, Menglong & Chen, Bo & Kalenichenko, Dmitry & Wang, Weijun & Weyand, Tobias & Andreetto, Marco & Adam, Hartwig. (2017). MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications.

[8] Samarth Brahmbhatt,”Practical Opencv”,2013

[9] Milan Sonka, Vaclav Hlavac, Roger Boyle“Image Processing Analysis and Machine Vision”, 2013

[10] Shams Ur Rehman, Ka Fei Thang, Nai Shyan Lai,” Automated PCB identification and defect-detection system”,Vol. 9, No.1 February 2019,pp.297-306,IJECE

[11] Richard Szeliski, “Computer vision algorithms and applications”, Springer, 2011

[12] Rowel Atienza, “Advanced Deep learning with Tensorflow 2 and Keras”, Packt, 2020

[13] Nguyễn Thanh Tuấn, “Deep learning cơ bản”, 2020

[14] David Millán Escrivá and Robert Laganiere, “Opencv 4 Computer Vision Application Programming”, 2019

PHỤ LỤC

[1] Lưu đồ thuật toán. [2] Bản vẽ gối đỡ trục quay. [3] Bản vẽ gối đỡ trục điều chỉnh. [4] Bản vẽ gá cảm biến.

[5] Bản vẽ gá đỡ động cơ băng tải. [6] Bản vẽ gối đỡ trục truyền động. [7] Bản vẽ gá động cơ tay máy 1. [8] Bản vẽ gá động cơ tay máy 2. [9] Bản vẽ hộp đèn trợ sáng. [10] Bản vẽ tấm chặn PCB lỗi. [11] Bản vẽ hộp trợ sáng. [12] Bản vẽ lắp.

Một phần của tài liệu ĐỒ án môn học cơ điện tử giới thiệu về AI (artificial intelligence) và deep learning (Trang 56)

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

(67 trang)