Lớp kích hoạt phi tuyến tính (Non-linearity Layers)

Một phần của tài liệu Lập trình thi công và phát triển robot nhện iot (internet of thing) (Trang 41)

Mạng thần kinh của chúng ta sẽ hoạt động giống như một nhận thức duy nhất b i vì tổng của tất cả các lớp v n sẽ là một hàm tuyến tính c ngh a là đầu ra c thể được tính là sự kết hợp tuyến tính của các đầu ra. Sau m i lớp chập chúng ta thường c một lớp

phi tuyến tính. Lớp này c n được gọi là lớp kích hoạt vì chúng tôi s dụng một trong các chức n ng kích hoạt. Do nếu không c lớp kích hoạt (ReLU Sigmoid…) thì mạng đơn giản ch là kết hợp của các hàm tuyến tính như đã n i trên. Khi đ hàm hợp của nhiều hàm tuyến tính v n là hàm tuyến tính. Điều này khiến cho mạng chẳng khác gì một phép biến đổi tuyến tính cả. Trong khi đ ánh xạ giữa đầu vào tới đầu ra luôn là phi tuyến. T m lại cần d ng activation layer để c được một ánh xạ phi tuyến.

Trước đây các hàm phi tuyến như sigmoid và tan đã được s dụng nhưng h a ra hàm cho kết quả tốt nhất khi n i đến tốc độ huấn luyện của mạng thần kinh là hàm ch nh lưu (Rectifier function). Vì vậy lớp này thường được gọi là lớp ReLU n được d ng để loại bỏ tính tuyến tính bằng cách đặt các giá trị nhỏ hơn 0 thì sẽ bằng 0. Hàm ReLU được diễn tả là f(x) = max(0 x). Hình 2.33. cho thấy ứng dụng của n trong một Feature map. Trên hình ảnh thứ 2 của bản đồ đặc điểm các giá trị màu đen là giá trị âm và sau khi áp dụng chức của hàm ReLU các giá trị màu bị x a khỏi tấm ảnh.

Hình 2.33. Feature map sau khi qua lớp kích hoạt 2.6.6. Lớp tổng hợp (Pooling Layers)

Sau khi tích chập chúng ta cần thường thực hiện gộp để giảm kích thước. Điều này cho phép chúng tôi giảm số lượng tham số vừa rút ng n thời gian huấn luyện vừa chống vượt lố (overfiting). Lớp Pooling làm việc độc lập với từng Feature map giảm độ dài và độ rộng nhưng v n giữ nguyên độ sâu. Lớp Pooling phổ biến nhất là Max pooling tức là ch lấy giá trị lớn nhất trong c a sổ gộp. Trái với lớp tích chập lớp Pooling không hề c tham số. N trượt 1 c a số gộp qua đầu vào của n và ch lấy giá trị lớn nhất. Tương tư như lớp tích chập chúng ta c thể chọn kích thước c a sổ (kernel size) và sải bước (stride).

Hình 2.34. Hàm max pooling. (a) Hàm max pooling đang thực hiện

(b) Feature map của ảnh sau khi qua max pooling

Trong hình 2.34. chúng ta đã s dụng bộ lọc maxpooling c kích thước 2x2 để trượt trên ảnh kích thước 4x4 với sải bước bằng 2. Bộ lọc chọn số lớn nhất của phần hình ảnh mà n bao phủ. Bằng cách này chúng ta đã c 1 feature map nhỏ hơn chứa đầy đủ thông tin đủ cho mạng thần kinh c thể đưa ra quyết định chính xác.

Trong cấu trúc mạng CNN thông thường max pooling được chọn c kích thước 2x2 sải bước 2 và không c phần đệm.Trong khi lớp tích chập thì c kích thước 3x3 sải bước 1 với phần đệm để giữa nguyên kích thước feature map.

2.6.7.Lớp làm phẳng (Flattening Layers)

Đây là một lớp đơn giản được s dụng để chuẩn bị dữ liệu đầu vào cuối c ng. Thông thường các mạng thần kinh cổ điển nhận dữ liệu theo một chiều dưới dạng một mảng các giá trị lớp này s dụng dữ liệu được truyền từ lớp tích chập hoặc lớp max pooling và chuyển đổi làm phẳng các ma trận thành các mảng. Sau đ các giá trị này được s dụng làm đầu vào cho mạng nơ ron lớp cuối c ng. Hình 2.35. biểu diễn trực quan của quá trình làm phẳng.

Hình 2.35. Quá trình làm phẳng

2.6.8.Lớp kết nối đầy đủ (Fully-Connected Layer)

Lớp cuối c ng và là lớp thực hiện phân loại thực tế được gọi là lớp kết nối đầy đủ (Fully-Conntected Layer) được mô tả trong hình 2.36. Lớp này lấy đầu vào từ quá trình làm phẳng cấp dữ liệu và chuyển tiếp n qua mạng thần kinh cổ điển (Neural Network). Lúc này bài toán quay về huấn luyện mạng nơ ron cổ điển. Những gì chúng ta làm đ là cung cấp các tính n ng đặc điểm của vật thể cho mạng.

Hình 2.36. Lớp Fully- Connected 2.7. Model nhận dạng khuôn mặt

Nhờ vào mối quan hệ chặt chẽ của nhận dạng đối tượng với phân tích video và hình ảnh n đã thu hút rất nhiều sự chú của các nhà nghiên cứu trong những n m gần đây. Phương pháp nhận dạng đối tượng thông thường được xây dựng dựa trên các tính n ng thủ công và cấu trúc huấn luyện đơn giản. Với sự phát triển nhanh ch ng của deep learning chúng ta ngày càng c thêm những công cụ mạnh mẽ c thể học các tính n ng ngữ ngh a cao cấp và đặc điểm sâu hơn nhằm giải quyết các vấn đề c n tồn đọng trong cấu trúc huấn luyện truyền thống. Trong m i model nhận dạng đối tượng sẽ c 2 phần là feature extractor và detection framework. Thứ nhất là feature extractor d ng để trích xuất các đặc điểm của object n được hiểu là cấu trúc của mạng CNN. Thứ hai là detection framewok là phần nhận dạng đối tượng (detector).

2.7.1. MobileNet V1 (2017) (Extractor)

Howard (2017) đã phát triển một nh m các mô hình nhỏ được gọi là MobileNets [3] dành cho các ứng dụng tầm nhìn được nhúng trên điện thoại. Họ đã xây dựng mô hình đ với mục đích đánh đổi độ chính xác thành tốc độ huấn luyện để ph hợp với mục đích khác nhau. Kiến trúc của MobileNets dựa trên cách tính tích chập c tên là “the depth separable convolution” để giảm kích thước mô hình đồng thời c ng giảm độ phức tạp. Do đ mô hình sẽ hữu ích khi chạy các ứng dụng trên di động và các thiết bị nhúng.

Đầu tiên tích chập cổ điển với bộ lọc c kích thước cố định (ví dụ 3x3) được áp dụng với tất cả ngõ vào và tạo ra một số Feature Map đ là tích chập theo chiều sâu (the depthwise convolution). Sau đ kết hợp với các bộ lọc 1x1 được s dụng trên m i Feature Map đ là tích chập điểm. Sau khi qua lớp chập điểm giảm được một lượng đáng kể các thông số. “ Depthwise separable convolution ” [4] hay tích chập phân tách theo chiều sâu là một tích chập theo chiều sâu (depthwise convolution) theo sau b i một pointwise convolution (tích chập điểm) được mô tả trong hình 2.37.

Hình 2.37. Cấu trúc của Depthwise separable convolution

(https: dlapplications.github.io 2018-07-06-CNN Depthwise convolution: là một channel-wise

n channels ngõ vào thì chúng ta c ng c

chúng ta c

Ở hì nh 2.37. trê n ta c 5 cha nne ls ( để

thứ 2 là phân tách 5 khối hộp ra thành ma trận [m x n]

convolution c kích thước [n x n] bước thứ 4 là kết quả sau khi tích chập thứ 5 là ráp 5 kết quả của tích chập lại ) do đ chúng ta sẽ c

convolution tương ứng với 5 channels trên.

Pointwise convolution: đơn giản là một tích chập c

Với M là số lượng input channel N là số lượng output channel Dk là kernel size Df là feature map size (với dataset ImageNet thì input c kích thước là 224 do đ feature map ban đầu c Df = 224) chúng ta c thể tính được:

Chi phí tính toán của Depthwise convolution là :

Chi phí tính toán của

(2.5)

Tổng chi phí tính toán của Depthwise Separable Convolution là:

Nếu chúng ta không s dụng Depthwise Separable Convolution mà s dụng phép tích chập như bình thường chi phí tính toán là:

Do đ chi phí tính

Giả s chúng ta

nhân d n đến giảm tính toán đi rất Chúng ta thấy rằng mô hình c

Lớp 1: Convolution layer với stride bằng 2 Lớp 2: Depthwise layer [3x3]

Lớp 3: Pointwise layer [1x1]

Lớp 4: Depthwise layer với stride bằng 2 (khác với lớp 2 c stride bằng 1) Lớp 5: Pointwise layer [1x1]

So sánh kết quả giữa Depthwise Separable Convolution và phép tích chập tiêu chuẩn trên một tập dữ liệu ImageNet Dataset (bảng 2.6.). MobileNet giảm 1% độ chính xác nhưng số lượng tham số của mô hình và số lượng phép tính toán giảm đi rất rất nhiều gần xấp x 90%.

Bảng 2.6. So sánh kết quả giữa Depthwise Separable Convolution và phép tích chập

Model Conv MobileNet

MobileNet Cấu trúc của MobileNet-v1 được thể hiện hình 2.33.

Hình 2.38. Cấu trúc của MobileNet- v1 2.7.2. Single Shot Detector (SSD) (Detector)

Tương tự với mô hình YOLO W. Liu (2016) đã phát triển ra model SSD [5] để dự đoán tất cả bounding box trong 1 lần duy nhất và xác suất của đối tượng với cấu trúc mạng CNN end-to-end. Mô hình lấy ảnh ngõ vào đi qua nhiều lớp tích chập với kích thước bộ lọc khác nhau (10x10 5x5 và 3x3).

Các feature map từ các lớp tích chập những vị trí khác nhau trong mạng được lấy ra s dụng để dự đoán các bounding box. Chúng được x l b i các lớp chập cụ thể với bộ lọc 3x3 được gọi là lớp bổ sung đặc tính (extra feature layer) để tạo ra một bộ các bounding box giống với lại các anchor box của Fast R-CNN. Hình 2.39 thể hiện cấu trúc của SSD.

Hình 2.39. Cấu trúc của model SSD

Tương tự như anchor box các box đều c 4 tham số: tọa độ trung điểm chiều dài và chiều rộng. Đồng thời n c n tạo ra một véc tơ xác suất tương ứng với độ tin cậy qua từng lớp của đối tượng. Thuật toán Non-Maximum Suppression c ng được s dụng tại điểm kết thúc của model SSD để ch giữa lại các model c liên quan tức là các box của c ng 1 đối tượng sẽ gộp lại thành 1 box duy nhất.

Ngoài ra thuật toán Hard Negative Mining (HNM) c ng được s dụng do c rất nhiều box bị âm v n được dựa đoán. N bao gồm việc ch chọn các phần phụ của box trong suốt quá trình huấn luyện. Các box này được s p xếp theo độ tin cậy và phần trên đ nh sẽ được chọn t y thuộc vào t lệ giữa box dương và âm nhiều nhất là 1 3.

W. Liu (2016) phân biệt SSD300 và SSD512 là SSD300 c thêm lớp chập để cải thiện hiệu suất dự đoán. Các model SSD tốt nhất được huấn luyện với các tập dữ liệu PASCAL VOC và COCO 2015 nhằm t ng cường dữ liệu. N đã đạt được 83.2% mAP trên PASCAL VOC 2007 và 82.2% trên PASCAL VOC 2012. Trong cuộc thi của COCO 2015 n đã đạt được 48.5% mAP cho IoU = 0.5 30.3% mAP cho IoU = 0.75 và 31.5% mAP cho số liệu chính thức. Hình 2.40. thể hiện framework của SSD.

Hình 2.40. Framework của SSD

CHƯƠNG 3: THIẾT KẾ MÔ HÌNH ROBOT

3.1. Thiết kế phần cứng

3.3.1. Thiết kế mô phỏng phần cứng

Nh m thiết kế cánh tay máy bằng phần mềm SolidWorks 2015. Vật liệu được s dụng là mica đảm bảo độ cứng cáp và tính thẩm mỹ. Các chi tiết được kết nối bằng ốc vít bulông và bạc đạn thuận tiện cho việc l p ráp s a chữa.

Hình 3.1: Mô hình Robot 4 chân trên SolidWorks 2015 3.3.2. Tiến hành thi công

Sau khoảng thời gian nghiên cứu và thiết kế. Nh m đã hoàn tất công việc thi công robot. Dưới đây là một số hình ảnh robot khi hoàn thành :

Hình 3.2: Mô hình Robot 4 chân

Bảng 3.1 Thông số kỹ thuật của Module Bluetooth HC-05

Mô tả

Chiều dài chân Chiều dài cẳng chân Khớp xoay

Thân

3.2.Lựa chọn thiết bị

3.2.1. Bộ điều khiển board arduino mega 2560

Arduino Mega 2560 ( hình 3.4 ) là một vi điều khiển dựa trên nền ATmega 2560. C 54 đầu vào đầu ra số ( trong đ c 15 đầu được s dụng như đầu ra PWM ) 16

analog 4 UARTs ( cổng nối tiếp phần cứng ) một 16 MHz dao động tinh thể

USB một jack c m điện một đầu ICSP và một nút reset. Chứa tất cả mọi thứ cần thiết để h trợ các vi điều khiển ch cần kết nối với máy tính bằng cáp USB hoặc s dụng với

một bộ chuyển đổi AC -to-DC hay pin. Arduino Mega tương thích với hầu hết các shield được thiết kế cho Arduino Duemilanove hoặc Diecimila.

Hình 3.2: Board Arduino Mega 2560

Bảng 3.2 Tóm tắt thông số Arduino Mega 2560

Microcontroller Operating Voltage

Input Voltage (recommended) Input Voltage (limits)

Digital I O Pins Analog Input Pins DC Current per I O Pin DC Current for 3.3V Pin Flash Memory

SRAM EEPROM Clock Speed

3 6

3.2.2. Shield Mega Sensor V2

Arduino Mega Sensor Shiled c với cổng COM và giao tiếp I2C c

một cách đơn giản tại mọi thời điểm. Shield Mega Sensor c nguồn cấp riêng biệt từ đ dễ dàng điều khiển các thiết bị như RC Servo cảm biến các thiết bị giao tiếp ngoại vi như Bluetooth Wifi…

Hình 3.4: Arduino Mega Sensor Shield

Hình 3.5: Sơ đồ chức năng các chân của Mega Sensor Shield 3.2.3.Động cơ RC Servo

C 3 loại động cơ thường được d ng để làm các mô hình robot là động cơ DC Servo RC Servo và động cơ bước (Step motor). Đề tài sẽ s dụng động cơ RC Servo để điều khiển Robot vì động cơ RC Servo c phần hồi tiếp trạng thái bằng biến tr được tích hợp ngay bên trong động cơ việc điều khiển được đơn giản h a ch cần duy nhất một chân phát tín hiệu PWM và mô hình này sẽ gần giống với việc s dụng những động cơ Servo

trong công nghiệp dễ dàng ứng dụng thuật toán được xây dựng trong đề tài để phát triển trong công nghiệp.

Tại sao không s dụng động cơ DC Servo và Step Motor? Hai loại động cơ này đều c một điểm khác biệt chung với động cơ RC Servo đ là vị trí Home. Với Động cơ RC Servo do s dụng biến tr cho nên vị trí Home sẽ được đặt tại một mức điện tr cố định. DC Servo và Step Motor sẽ lấy vị trị ngay lúc cấp nguồn là vị trí Home như vậy muốn kiểm soát được tọa độ của cánh tay robot ta phải s dụng thêm các cảm biến công t c hành trình … Như vậy sẽ phải s dụng nhiều hơn các chân vi điều khiển và cồng kềnh trong thiết kế.

DC Servo: phần hồi tiếp trạng thái thông dụng nhất là encoder nhưng với số lượng động cơ lớn đ i hỏi vi điều khiển phải mạnh và yêu cầu về tốc độ x l cao c ng như số lượng vector ng t lớn. Nếu không đáp ứng đủ thì dễ gây tình trạng treo vi điều khiển.

Step Motor: c momen yếu hơn DC Servo và RC Servo thiết kế to và cồng kềnh hay xảy ra tình trạng mất bước và không c phần hồi tiếp tích hợp nên sẽ gây ra sai số trong điều khiển.

Cho nên RC Servo là ph hợp nhất với các mô hình robot di chuyển không bánh xe cấu tạo bên trong của động cơ RC Servo như hình 3.6:

Hình 3.6: Cấu tọa bên trong RC Servo

1. Motor (Động cơ)

2. Electronics Board (Board điện t )

3. Positive Power Wire (Red) (Dây nguồn màu đỏ)

4. Signal Wire (Yellow or White) (Dây tín hiệu thường là màu vàng hoặc màu tr ng)

5. Negative or Ground Wire (Black) (Dây GND đen)

6. Potentiometer (Biến tr )

7. Output Shaft Gear (Trục Bánh r ng đầu ra)

8. Servo Attachment Horn Wheel Arm

9. Servo Case (Vỏ Servo)

10. Integrated Control Chip (Chip điều khiển)

Trong hệ thống này Servo là đáp ứng của một dãy các xung số ổn định. Cụ thể hơn mạch điều khiển là đáp ứng của một tín hiệu số c các xung biến đổi từ 1ms – 2ms. Các xung này được g i đi 50 lần giây. Chú rằng không phải số xung trong một giây điều khiển servo mà là chiều dài của các xung. Servo đ i hỏi khoảng 30 – 60 xung giây. Nếu số này quá thấp độ chính xác và công suất để duy trì servo sẽ giảm. Với độ dài xung 1ms Servo được điều khiển quay theo một chiều (giả s là chiều kim đồng hồ). Với độ dài xung 2ms Servo quay theo chiều ngược lại.

Điều khiển vị trí của trục ra của động cơ bằng cách điều chế độ rộng xung (Hình 3.7)

Hình 3.7: Điều khiển vị trị trục ra của động cơ bằng cách điều chế độ rộng xung

Đề tài sẽ chọn động cơ RC Servo TowerPro MG946R để ph hợp với yêu cầu của cánh tay Robot. RC Servo TowerPro MG946R như hình 3.8:

Bảng 3.3 Thông số hoạt động của RC Servo TowerPro MG946R.

Weight (Trọng lượng) Dimension (Kích thước) Stall torque

Operating speed (Tốc độ hoạt động) Operating voltage (Điện áp hoạt động) Temperature range (Khoảng nhiệt độ)

3.2.4. Module Bluetooth HC- 05

Mạch thu phát Bluetooth HC-05 đã ra chân hoàn ch nh giúp dễ dàng kết nối với các bộ điều khiển hoặc các module khác để truyền phát tín hiệu.

Bảng 3.5 Thông số kỹ thuật của Module Bluetooth HC-05

Điện áp hoạt động Baudrate

Dải tần s ng hoạt động D ng điện

3.2.5. Khối cấp nguồn Adapter

Với một số thông cần thiết như sau: Điện áp đầu vào: 100-240V 50

60Hz Điện áp đầu ra: 5v-3a Kích thước chân c m: 5.5*2.5mm

Một phần của tài liệu Lập trình thi công và phát triển robot nhện iot (internet of thing) (Trang 41)

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

(65 trang)
w