4. Đề nghị cho bảo vệ hay không?
4.1 Thành phần phần cứng
4.1.1 Camera Logitech C270
Đó là một webcam USB có thể dễ dàng kết nối với Jetson Nano Kit. Nó khá nhỏ và dễ điều chỉnh. Với 30 khung hình mỗi giây, chất lượng video mượt mà, trong khi hình ảnh sắc nét, đầy màu sắc và tương phản. Ngay cả khi làm việc trong môi trường xung quanh mờ, C270 điều chỉnh theo các điều kiện ánh sáng để tạo ra hình ảnh tương phản sáng hơn.
Thông số kỹ thuật: - Độ phân giải: 720p/30fps - Loại Focus: fixed focus - Công nghệ Lens: standard - FoV: 60°
- Chiều dài cáp: 1.5m
4.1.2 Cảm biến vật cản hồng ngoại
Cảm biến vật cản hồng ngoại E3F-DS30C4 NPN 6-36V điện áp làm việc: DC 6-36VDC. Khoảng cách phát hiện: 10-30cm có thể điều chỉnh.
Hình 4.3 Cảm biến vật cản hồng ngoại E3F-DS30C4 NPN 6-36V
• Kích thước đường kính ngoài: 18mm (mm)
• Phát hiện: vật cản
• Khoảng cách phát hiện: 10-30cm có thể điều chỉnh
• Điện áp làm việc: DC 6-36VDC
• NPN Sơ đồ chân:
- Màu nâu: VCC, nguồn dương 6 – 36VDC. - Màu xanh dương: GND, nguồn âm 0VDC
- Màu đen: Chân tín hiệu ngõ ra cực thu hở NPN, cần phải có trở kéo để tạo thành mức cao.
Hình 4.4 Kích thước của cảm biến
4.1.3 NVIDIA Jetson Nano Developer Kit
Sức mạnh của AI hiện đại hiện có sẵn cho các nhà sản xuất, người học và nhà phát triển nhúng ở khắp mọi nơi, NVIDIA® Jetson Nano ™ Developer Kit là một máy tính nhỏ, mạnh mẽ có thể chạy song song nhiều mạng thần kinh cho các ứng dụng như phân loại hình ảnh, phát hiện đối tượng, phân đoạn, và xử lý lời nói. Tất cả trong một nền tảng dễ sử dụng chỉ hoạt động trong khoảng 5 watt, chỉ cần lắp thẻ nhớ microSD với hình ảnh hệ thống, khởi động bộ công cụ dành cho nhà phát triển, JetPack tương thích với nền tảng AI hàng đầu thế giới của NVIDIA để đào tạo và triển khai phần mềm AI, và giảm độ phức tạp và nỗ lực cho các nhà phát triển bằng cách hỗ trợ nhiều khung công tác AI phổ biến, như TensorFlow, PyTorch, Caffe và MXNet. Nó cũng bao gồm một môi trường Linux để bàn đầy đủ và hỗ trợ ngoài luồng cho nhiều thiết bị ngoại vi, tiện ích bổ sung và các dự án sẵn sàng sử dụng. Khả năng tương thích hoàn toàn với các khung này và nền tảng AI hàng đầu của NVIDIA NVIDIA giúp việc triển khai khối lượng công việc suy luận dựa trên AI đến Jetson dễ dàng hơn bao giờ hết. Jetson Nano mang đến tầm nhìn và suy luận máy tính theo thời gian thực trên nhiều mô hình Mạng lưới thần kinh sâu (DNN) phức tạp.
Hình 4.5 NVIDIA Jetson Nano Developer Kit
Những khả năng này cho phép robot tự động đa cảm biến, thiết bị IoT có phân tích thông minh và hệ thống AI tiên tiến. Ngay cả việc học chuyển cũng có thể được đào tạo lại các mạng cục bộ trên Jetson Nano bằng cách sử dụng ML. Bộ công cụ được xây dựng xung quanh Mô-đun hệ thống theo mô-đun SODIMM (SoM) 260 chân, được hiển thị trong Hình 4.5. SoM chứa bộ xử lý, bộ nhớ và mạch quản lý năng lượng. Mô-đun tính toán Jetson Nano có kích thước 45x70mm và sẽ được phát hành vào tháng 6 năm 2019 để các nhà thiết kế nhúng tích hợp vào các hệ thống sản xuất. Mô- đun tính toán sản xuất sẽ bao gồm 16GB eMMC lưu trữ trên bo mạch và I / O nâng cao với PCIe Gen2 x4 / x2 / x1, MIPI DSI, GPIO bổ sung và 12 làn MIPI CSI-2 để kết nối với ba camera x4 hoặc tối đa bốn camera trong cấu hình x4 / x2. Hệ thống con bộ nhớ hợp nhất Jetson, được chia sẻ giữa CPU, GPU và các công cụ đa phương tiện, cung cấp các đường ống xử lý hiệu quả và cảm biến ZeroCopy được sắp xếp hợp lý.
Hình 4.6 Jetson Nano
Bảng 4.1 Thông số kỹ thuật của NVIDIA Jetson Nano GPU 128-core Maxwell
CPU Quad-core ARM A57 @ 1.43 GHz Bộ nhớ RAM 4 GB 64-bit LPDDR4 25.6 GB/s Lưu trữ MicroSD
Video Encode 4K @ 30 | 4x 1080p @ 30 | 9x 720p @ 30 (H.264/H.265) Video Decode 4K @ 60 | 2x 4K @ 30 | 8x 1080p @ 30 | 18x 720p @ 30
(H.264/H.265)
Kết nối Gigabit Ethernet, M.2 Key E Hiển thị HDMI 2.0 and eDP 1.4
USB 1xUSB 3.0, 3xUSB 2.0 Micro-B Khác GPIO, I2C, I2S, SPI, UART
Hình 4.7 Sơ đồ chân NVIDIA Jetson Nano
Jetson Nano có thể chạy rất nhiều mạng tiên tiến, bao gồm các phiên bản gốc đầy đủ của ML phổ biến như TensorFlow, PyTorch, Caffe / Caffe2, Keras, MXNet và các phiên bản khác. Các mạng này có thể được sử dụng để xây dựng các máy tự trị và hệ thống AI phức tạp bằng cách triển khai các khả năng mạnh mẽ như nhận dạng hình ảnh, phát hiện và định vị đối tượng, ước tính tư thế, phân đoạn ngữ nghĩa, tăng cường video và phân tích thông minh. Hình 4.14 cho thấy kết quả từ điểm chuẩn suy luận trên các mô hình phổ biến có sẵn trực tuyến. Xem ở đây để biết hướng dẫn để chạy các điểm chuẩn này trên Jetson Nano. Cuộc thảo luận đã sử dụng chính xác kích thước lô 1 và độ chính xác của FP16, sử dụng thư viện máy gia tốc NVIDIA NVIDIA TensorRT đi kèm với JetPack 4.2. Jetson Nano đạt được hiệu suất thời gian thực trong nhiều tình huống và có khả năng xử lý nhiều luồng video độ nét cao.
Hình 4.8 Hiệu suất của các mạng khác nhau với Jetson Nano và TensorRT
4.1.4 Mạch Opto Cách Ly 4 Kênh TLP281
Mạch Opto cách ly 4 kênh TLP281 được sử dụng để chuyển mức tín hiệu Digital hoặc cách ly tín hiệu với các nguồn nhiễu qua Opto, mạch có thiết kế nhỏ gọn với Opto chuyên dụng TLP281 từ Tosiba, các ngõ ra được đệm transistor giúp điện áp ngõ ra có thể giao tiếp tối đa lên đến 24VDC.
Thông số kỹ thuật:
- Input: IN1 IN2 IN3 IN4 3.3~5VDC
- Output: OUT1 OUT2 OUT3 OUT4 0~24VDC - Iout: tối đa 500mA
- HVCC: nguồn cho ngõ ra, tối đa 24VDC - HGND: mass ngõ ra.
Hình 4.10 Sơ đồ mạch của TLP281
4.1.5 Module PLC S7-1200 1214c DC/DC/DC
CPU của PLC S7-1200 được kết hợp với 1 vi xử lý, một bộ nguồn tích hợp, các tín hiệu đầu vào/ra, thiết kế theo nền tảng Profinet, các bộ đếm/phát xung tốc độ cao tích hợp trên than, điều khiển vị trí (motion control), và ngõ vào analog đã làm cho PLC S7-1200 trở thành bộ điều khiển nhỏ gọn nhưng mạnh mẽ. Sau khi download chương trình xuống, CPU vẫn lưu giữ những logic cần thiết để theo dõi và kiểm soát các thiết bị thông tin trong ứng dụng của người lập trình. CPU giám sát ngõ vào và những thay đổi của ngõ ra theo logic trong chương trình người dung, có thể bao gồm các phép toán logic của đại số Boolean, những bộ đếm, bộ định thì, các phép toán phức tạp, và những giao tiếp truyền thông với những thiết bị thông minh khác. PLC S7-1200 được tích hợp sẵn một cổng Profinet để truyền thông mạng Profinet. Ngoài ra, PLC S7-1200 có thể truyền thông Profibus, GPRS, RS485 hoặc RS232 thông qua các module mở rộng.
Hình 4.11 PLC S7-1200 1214c DC/DC/DC - Bộ điều khiển mở rộng từ S7 với phương án mở rộng linh hoạt:
• 1 bo mạch tín hiệu (SB) và 1 bo mạch truyền thông (CB)
• 8 module tín hiệu (SM)
• Có thể có lớn nhất 3 module truyền thông (CM) - Cổng truyền thông Profinet (Ethernet) được tích hợp sẵn:
• Dùng để kết nối máy tính, với màn hình HMI hay truyền thông PLC-PLC
• Dùng kết nối với các thiết bị khác có hỗ trợ chuẩn Ethernet mở
• Đầu nối RJ45 với tính năng tự động chuyển đổi đấu chéo
• Tốc độ truyền 10/100 Mbits/s
• Hỗ trợ 16 kết nối ethernet
• TCP/IP, ISO on TCP, và S7 protocol
- Các tính năng về đo lường, điều khiển vị trí, điều khiển quá trình:
• 6 bộ đếm tốc độ cao (high speed counter) dùng cho các ứng dụng đếm và đo lường, trong đó có 3 bộ đếm 100kHz và 3 bộ đếm 30kHz
• 2 ngõ ra PTO 100kHz để điều khiển tốc độ và vị trí động cơ bước hay bộ lái servo (servo driver)
• Ngõ ra điều rộng xung PWM, điều khiển tốc độ động cơ, vị trí valve, hay điều khiển nhiệt độ…
• 16 bộ điều khiển PID với tính năng tự động xác định thông số điểu khiển (auto- tune functionality)
- Thiết kế linh hoạt:
• Mở rộng tín hiệu vào/ra bằng board tín hiệu mở rộng (signal board), gắn trực tiếp phía trước CPU, giúp mở rộng tín hiệu vào/ra mà không thay đổi kích thước hệ điều khiển
• Mỗi CPU có thể kết nối 8 module mở rộng tín hiệu vào/ra
• Ngõ vào analog 0-10V được tích hợp trên CPU
• 3 module truyền thông có thể kết nối vào CPU mở rộng khả năng truyền thông, vd module RS232 hay RS485
• 50KB work memory, 2MB load memory
• Card nhớ SIMATIC, dùng khi cần rộng bộ nhớ cho CPU, copy chương trình ứng dụng hay khi cập nhật firmware
Bảng 4.2 Thông số của các dòng PLC S7-1200
4.2 Sơ đồ nối dây phần cứng
Các chân GPIO của Jetson Nano có mức điện áp ngõ ra cũng như mức điện áp nhận vào tối đa là 3.3VDC. Để giao tiếp với PLC thì ta cần tín hiệu điện áp 24VDC cấp vào input PLC, vì vậy nếu muốn truyền tín hiệu từ Jetson Nano vào PLC qua các chân GPIO, ta phải chuyển đổi mức điện áp từ 3.3VDC sang 24VDC.
Ta sử dụng module TLP281 vì điểm chính của opto là cách ly điện giữa các mạch đầu vào và đầu ra. Tiếp xúc duy nhất giữa đầu vào và đầu ra ở opto là một chùm ánh sáng. Điện trở cách li giữa hai mạch lên tới hàng ngàn MΩ. Sự cách ly này rất hữu ích trong các ứng dụng có điện áp cao và điện thế của hai mạch có thể khác nhau tới vài nghìn vôn, vì vậy ta có thể đảm bảo được an toàn cho mạch GPIO.
Hình 4.13 Sơ đồ dây cho Jetson Nano GPIO input
Hình 4.14 Sơ đồ nối dây phần cứng
Trong hình, hai Camera kết nối với Jetson Nano qua cổng USB. Khi cảm biến phát hiện được vật, PLC sẽ gửi tín hiệu chụp hình về Jetson Nano và thu được ảnh thông qua hai Camera. Sau đó Jetson Nano sẽ xử lý tín hiệu từ hai Camera và gửi tín hiệu đến PLC nếu phát hiện sản phẩm lỗi để điều khiển các cơ cấu chấp hành khác.
Chương 5
KẾT QUẢ, SO SÁNH, THỰC NGHIỆM, PHÂN TÍCH, TỔNG HỢP
Trong chương này, dữ liệu được sử dụng để huấn luyện kiến trúc mạng trong chương 3 và kết quả thí nghiệm được trình bày. Điều này bao gồm (1) thu thập dữ liệu, (2) một số phương pháp để tăng dữ liệu, (3) quá trình đào tạo và (4) kết quả của quá trình đào tạo và thử nghiệm.
5.1 Thu thập dữ liệu
Chuẩn bị dữ liệu là cần thiết khi làm việc với các mạng học sâu, tôi đã tự tạo một bộ dữ liệu hình ảnh đối tượng là các lon bị lỗi (móp, méo, biến dạng) và lon bình thường. Lon sẽ được chụp ngay trên băng tải và trong một buồng ảnh để lấy ánh sáng cố định, tương tự như trong một môi trường sản xuất. Các lon bị lỗi ở đây sẽ có năm trường hợp, đó là lỗi móp đầu, móp trên, móp giữa, móp dưới và móp một bên
Hình 5.1 Các trường hợp bị lỗi
Vì mạng VGG16 yêu cầu ảnh đầu vào có kích thước là 224 x224, nên khi chỉnh lại kích thước ảnh bình thường thành ảnh vuông thì các đặc điểm nhận dạng lon lỗi sẽ không còn như trước nữa mà sẽ ít đi rất nhiều. Để giải quyết vấn đề này, tôi đã chia lon thành ba phần gồm: top, bot, mid thành ba ảnh khác nhau và chỉnh lại kích thước mỗi ảnh thành kích thước phù hợp với mạng VGG16. Công việc này được thực hiện với toàn bộ dữ liệu đã được chụp và từ đó tạo ra một bộ dữ liệu hoàn toàn mới, sau đó tự dán nhãn cho bộ dữ liệu với hai nhãn là 1 cho phần ta nhìn thấy được lỗi và 0 cho phần ta không nhìn ra được lỗi. Dữ liệu ta vừa tạo sẽ là bộ dữ liệu chính cho mạng học sâu.
Hình 5.2 Ba ảnh tách biệt được cắt ra từ ảnh gốc
Khi chạy mô hình, ảnh sẽ được chia làm ba phần riêng biệt là top, bot, mid giống như lúc chuẩn bị bộ dữ liệu và được đưa lần lượt vào mô hình nhận dạng. Nếu một trong ba phần bị phát hiện có lỗi, ta sẽ đưa ra tín hiệu phát hiện lon lỗi vào PLC và lon sẽ được xem là bình thường nếu như không phần nào bị phát hiện lỗi.
5.2 Làm giàu dữ liệu
Mô hình học sâu có xu hướng quá khớp (overfitting) với tập dữ liệu nhỏ vì có quá ít ví dụ để đào tạo, dẫn đến một mô hình có hiệu suất kém. Tăng dữ liệu là một kỹ thuật để tạo ra nhiều trường hợp dữ liệu huấn luyện hơn bằng cách tạo các mẫu mới thông qua chuyển đổi ngẫu nhiên các dữ liệu hiện có. Phương pháp này giúp tăng kích thước của tập huấn luyện. Các phép biến đổi phổ biến là lật ngang, điều chỉnh độ sáng được minh họa trong Hình 6.5 Ngoài ra, việc tăng dữ liệu chỉ được thực hiện trên dữ liệu huấn luyện, không phải xác thực hoặc tập kiểm tra.
Hình 5.4 Làm giàu dữ liệu bằng cách thay đổi độ sáng
5.3 Quá trình đào tạo
Dữ liệu được lưu trữ sau đó được sao chép vào máy tính, được trang bị Core-i5 9300H, 2.4GHz, Ram 8GB, tôi đã đào tạo mạng để tăng tốc độ đào tạo. Với mô hình phân loại, tôi chia tập dữ liệu thành hai tập con: tập huấn luyện (85%) và tập kiểm thử (15%). Tập dữ liệu đào tạo chứa 900 mẫu, bộ kiểm tra chứa 150 mẫu.
Tôi đã sử dụng app Visual Studio Code để viết chương trình huấn luyện mạng thần kinh nhân tạo cho mô hình nhận dạng. Đây là một ứng dụng rất dễ dùng và giúp đơn giản việc debug rất nhiều.
Hình 5.5 Giao diện lập trình với Visual Studio Code
Trước khi chạy huấn luyện mô hình thì chúng ta cần thiết lập những thông số sau: Image size = 224: Mạng VGG16 yêu cầu kích thước ảnh đầu vào là 224 x 224. Batchsize: 8. Đây là số lượng mẫu dữ liệu trong một batch.
Hình 5.6 Thiết lập batchsize và imagesize
Optimizer: RMSprop. Đây là một phương thức tối ưu việc cập nhật các trọng số của mô hình.
Number of Epochs : 50. Đây là số lần thông qua toàn bộ tập dữ liệu đào tạo. Learning rate: 1e-5. Đây là một siêu tham số kiểm soát trọng số của mạng, điều chỉnh độ mất mát.
Hình 5.7 Khai báo các thông số cần thiết
Hình 5.8 Mô hình đang được huấn luyện
Hình 5.10 Thay đổi độ chính xác trong suốt quá trình đào tạo
5.4 Kết quả thực nghiệm
Sau khi được đào tạo trên máy tính, mô hình đã được sao chép trở lại Jetson Nano. Sau đó được đưa vào hệ thống Machine Vision được thiết kế từ trước và chạy đồng thời cùng PLC, hệ thống bang tải và cơ cấu chấp hành, sau khi cảm biến phát hiện được vật thì khoảng thời gian từ lúc camera chụp hình đến lúc xử lý xong ảnh là ~1.5-2s/sp. Do camera và máy tính nhúng không phải dùng cho công nghiệp nên tốc độ xử lý sẽ không được lý tưởng. Hình ảnh thử nghiệm cho dự đoán của mô hình có thể nhìn thấy trong hình 5.12.
Mô hình được đào tạo đã có thể đạt được một độ chính xác gần như tuyệt đối,