4. Đề nghị cho bảo vệ hay không?
3.4 Tối ưu hóa các mạng cần thiết
3.4.1 Các loại Gradient Descent
Huấn luyện mạng lưới thần kinh tương tự như dạy con người cách học. Chúng tôi cung cấp dữ liệu (thông tin) cho mô hình, nó dự đoán một cái gì đó và phản hồi cho chúng tôi xem dự đoán có chính xác hay không. Điều này lặp lại cho đến khi mô hình chắc chắn đạt đến một mức độ chính xác mà chúng tôi mong đợi. Mỗi lần lặp, tối ưu hóa cập nhật các tham số trọng lượng để giảm thiểu chức năng mất [7]. Để đạt được điều này, chúng ta phải sử dụng Gradient Descent (GD) hoặc các biến thể của Gradient Descent. GD là một thuật toán tối ưu hóa học máy lặp để giảm giá trị hàm mất. Một số loại GD như:
- Stochastic gradient descent (SGD) - Batch gradient descent
- Mini-batch gradient descent
3.4.1.1 Batch gradient descent
Batch Gradient Descent (Batch GD) chỉ cập nhật các tham số trọng lượng khi toàn bộ dữ liệu được tính toán. Nó có thể rất chậm và không thể truy cập được đối với các bộ dữ liệu không phù hợp với bộ nhớ [7]. Batch GD có thể cập nhật mô hình trực tuyến với các ví dụ mới đang hoạt động
𝜃 = 𝜃 − 𝜂 ∗ ∇𝜃𝐽(𝜃) (3.3)
Trong đó là tham số trọng số, 𝜂 là tốc độ học và ∇𝜃𝐽(𝜃) là độ dốc của 𝐽(𝜃).
3.4.1.2 Stochastic Gradient Descent
Thay vì đi qua tất cả các mẫu. Stochastic Gradient Descent (SGD) thực hiện cập nhật tham số trên mỗi mẫu (ví dụ: một hình ảnh trên mỗi lần lặp). Vì vậy, chúng ta phải xáo trộn tập dữ liệu huấn luyện để tránh thứ tự mẫu có sẵn [7].
𝜃 = 𝜃 − 𝜂 ∗ ∇𝜃𝐽(𝑥𝑖, 𝑦𝑖, 𝜃) (3.4) Trong đó 𝑥𝑖 là một mẫu và 𝑦𝑖là một nhãn của mẫu đó.
3.4.1.3 Minibatch Gradient Descent
Minibatch Gradient Descent tương tự như SGD, nhưng chia tập dữ liệu huấn luyện thành các lô nhỏ được sử dụng để tính toán lỗi mô hình và cập nhật các hệ số mô hình.
𝜃 = 𝜃 − 𝜂 ∗ ∇𝜃𝐽(𝑥𝑖:𝑖+𝑛, 𝑦𝑖:𝑖+𝑛, 𝜃) (3.5)
Trong đó 𝑥𝑖:𝑖+𝑛là một lô gồm n mẫu và 𝑦𝑖:𝑖+𝑛 là nhãn của n mẫu. Minibatch Gradient Descent tìm cách cân bằng giữa độ mạnh của độ dốc dốc ngẫu nhiên và hiệu quả của việc giảm độ dốc theo lô [7]. Đây là cách thực hiện phổ biến nhất của việc giảm độ dốc được sử dụng trong lĩnh vực học sâu.
3.4.2 Các loại tối ưu hóa 3.4.2.1 Momentum 3.4.2.1 Momentum
Momentum là một phương pháp giúp tăng tốc độ dốc Stochastic theo hướng có liên quan và làm giảm dao động. Nó giống như một quả bóng lăn xuống dốc. Nó thêm một phần của vectơ trọng số cập nhật của bước vừa qua vào vectơ cập nhật hiện tại [1]:
𝑣𝑡 = 𝛾 ∗ 𝑣𝑡−1+ 𝜂 ∗ ∇𝜃𝐽(𝜃), ( 𝛾 < 1) (3.6)
𝜃 = 𝜃 − 𝑣𝑡 (3.7)
Trong đó 𝛾 thường được đặt từ 0.5 đến 0.9
3.4.2.2 Nesterov Accelerated Gradient
Nesterov Accelerated Gradient (NAG) là một cách để đưa ra thuật ngữ động lực. Nó giống như một quả bóng lăn xuống đồi nhưng biết chính xác khi nào nên giảm tốc độ trước khi độ dốc của ngọn đồi tăng trở lại. Ý tưởng là để dự đoán hướng trong bước tiếp theo. Việc tính toán 𝜃 − 𝛾 ∗ 𝑣𝑡−1 cho gần đúng vị trí của các tham số [7]. Do đó, không chỉ tính toán độ dốc cho các tham số hiện tại mà còn cả vị trí tương lai gần đúng của các tham số:
𝑣𝑡 = 𝛾 ∗ 𝑣𝑡−1+ 𝜂 ∗ ∇𝜃𝐽(𝜃 − 𝛾 ∗ 𝑣𝑡−1) (3.8)
3.4.2.3 Adaptive Gradient Algorithm
Thuật toán Adaptive Gradient (Adagrad) là một phương pháp tỷ lệ học thích ứng. Nó điều chỉnh tốc độ học tập cho các tham số, thực hiện các cập nhật nhỏ hơn cho các tham số liên quan đến các tính năng thường xuyên xảy ra và các cập nhật lớn hơn cho các tham số liên quan đến các tính năng không thường xuyên [7].
3.4.2.4 Adadelta
Adadelta là một phần mở rộng của Adagrad và nó cũng cố gắng giảm Adagrad, một cách đơn điệu, giảm tốc độ học tập. Nó thực hiện điều này bằng cách giới hạn cửa sổ của gradient tích lũy trong quá khứ ở một số kích thước cố định của w. Chạy trung bình tại thời điểm t sau đó phụ thuộc vào mức trung bình trước đó và độ dốc hiện tại [7].
Δ𝜃 = −𝑅𝑀𝑆[Δ𝜃]𝑡−1
𝑅𝑀𝑆[𝑔𝑡] ∗ 𝑔𝑡 (3.10)
𝜃𝑡+1 = 𝜃𝑡+ Δ𝜃𝑡 (3.11)
Trong đó 𝑔𝑡là đạo hàm hàm mất mát theo trọng số thứ t .
3.4.2.5 Root Mean Square Propagation
Root Mean Square Propagation (RMSProp) cố gắng giải quyết triệt để tỷ lệ học tập giảm dần bằng cách sử dụng gia tốc trung bình của gradient bình phương. Nó sử dụng cường độ của các độ dốc gradient gần đây để chuẩn hóa độ dốc. Trong RMSProp tốc độ học tập được điều chỉnh tự động và nó chọn một tốc độ học tập khác nhau cho mỗi tham số. Nó cũng chia tỷ lệ học tập cho trung bình của sự phân rã theo hàm mũ của độ dốc bình phương [7].
𝜃𝑡+1 = 𝜃𝑡− 𝜂
√(1−𝛾)∗𝑔𝑡−12 +𝛾∗𝑔𝑡+𝜀
∗ 𝑔𝑡 (3.12)
3.4.2.6 Adaptive Moment Estimation
Adaptive Moment Estimation (Adam) là sự kết hợp của Adagrad hoạt động tốt trên độ dốc thưa thớt và RMSprop hoạt động tốt trong cài đặt trực tuyến và không cố định. Adam thực hiện trung bình di chuyển theo cấp số nhân của các gradient để chia tỷ lệ học tập thay vì trung bình đơn giản như trong Adagrad [7]. Nó giữ mức trung bình phân rã theo cấp số nhân của các gradient quá khứ .
Thuật toán Adam trước tiên cập nhật các đường trung bình di chuyển theo hàm mũ của gradient (m_t) và gradient bình phương (υ_t) là ước tính của khoảnh khắc thứ
nhất và thứ hai. Các tham số siêu tốc β1, 2 [0, 1) kiểm soát tốc độ phân rã theo hàm mũ của các đường trung bình di động này như dưới đây
𝑚𝑡 = 𝛽1∗ 𝑚𝑡−1+ (1 − 𝛽1) ∗ 𝑔𝑡 (3.13)
𝜐𝑡 = 𝛽2∗ 𝜐𝑡−1+ (1 − 𝛽2) ∗ 𝑔𝑡2 (3.14)
Trong đó 𝑚𝑡, 𝜐𝑡 là ước tính của khoảnh khắc thứ nhất và thứ hai tương ứng. Đường trung bình di động được khởi tạo là 0 dẫn đến ước tính thời điểm bị sai lệch khoảng 0, đặc biệt là trong các dấu thời gian ban đầu. Xu hướng khởi tạo này có thể dễ dàng bị phản tác dụng dẫn đến ước tính điều chỉnh sai lệch.
𝑚̂𝑡 = 𝑚𝑡
1−𝛽1𝑡 (3.15)
𝜐̂𝑡 = 𝜐𝑡
1−𝛽2𝑡 (3.16) Trong đó 𝑚̂𝑡, 𝜐̂𝑡 là ước tính điều chỉnh sai lệch của thời điểm đầu tiên và thứ hai tương ứng. Thông số được cập nhật như sau:
θ𝑡+1 = 𝜃𝑡− 𝜂∗𝑚̂𝑡
3.5 Lưu đồ hệ thống Machine Vision nhận biết sản phẩm lỗi với xử lý ảnh và mô hình được huấn luyện mô hình được huấn luyện
Hình 3.16 Lưu đồ quy trình xử lý tín hiệu ảnh của hệ thống
Giải thích lưu đồ: Ảnh được chụp sẽ được đưa qua các bước xử lý ảnh ban đầu. Nếu quy trình xử lý ảnh phát hiện được lon lỗi thì sẽ gửi tín hiệu phát hiện và kết thúc, còn không thì sẽ tiếp tục đưa ảnh vào mô hình nhận dạng, mô hình sẽ phân loại ảnh, nếu ảnh được phân loại là lỗi thì sẽ gửi tín hiệu phát hiện lon lỗi và kết thúc
Hình 3.17 Lưu đồ hệ thống Machine Vision phát hiện sản phẩm lỗi với xử lý ảnh và mô hình được đào tạo
Chương 4
THIẾT KẾ PHẦN CỨNG
Trong phần này, tôi cung cấp tổng quan về nền tảng phần cứng, bao gồm một máy tính, NVIDIA Jetson Nano, hai Camera Logitech, Module plc s7-1200, cảm biến vật cản hồng ngoại. Sơ đồ khối hệ thống có thể được hiển thị trong Hình 4.1.
Hình 4.1 Sơ đồ khối của hệ thống
4.1 Thành phần phần cứng 4.1.1 Camera Logitech C270 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