2.5.1. Khái niệm
Mạng nơ ron tích chập là một trong những mạng truyền thẳng đặc biệt. Mạng nơ ron tích chập là một mô hình học sâu phổ biến và tiên tiến nhất hiện nay. Hầu hết các hệ thống nhận diện và xử lý ảnh hiện nay đều sử dụng mạng nơ ron tích chập vì tốc độ xử lý nhanh và độ chính xác cao. Trong mạng nơ ron truyền thống, các tầng được coi là một chiều, thì trong mạng nơ ron tích chập, các tầng được coi là 3 chiều, gồm: Chiều cao, chiều rộng và chiều sâu. Mạng nơ ron tích chập có hai khái niệm quan trọng: Kết nối cục bộ và chia sẻ tham số. Những khái niệm này góp phần giảm số lượng trọng số cần được huấn luyện, do đó tăng nhanh được tốc độ tính toán.[1]
2.5.2. Mô hình mạng nơ rơn tích chập
Có ba tầng chính để xây dựng kiến trúc cho một mạng nơ ron tích chập: Tầng tích chập (Convolulion Layer) ; tầng gộp (Pooling Layer); tầng được kết nối đầy đủ (Fully- connected Layer). Ở các mạng nơ ron tích chập, tầng kết nối đầy đủ giống như các mạng nơ ron thông thường, và tầng chập thực hiện tích chập nhiều lần trên tầng trước. Tầng gộp có thể làm giảm kích thước mẫu trên từng khối 2x2 của tầng trước đó. Các lớp này liên kết với nhau theo một thứ tự nhất định. Thông thường, một ảnh sẽ được lan truyền qua tầng tích chập, sau đó ma trận tính toán được sẽ lan truyền qua tầng gộp, bộ đôi tầng tích chập và tầng gộp có thể được lặp lại nhiều lần trong mạng. Và cuối cùng được lan truyền qua tầng kết nối đầy đủ để tính xác xuất ảnh đó chứa vật thể gì.[1]
35
Hình 2.17. Kiến trúc mạng CNN 2.5.3. Tầng tích chập (Convolutional layer)
Tầng tích chập (Convolutional Layer) là lớp quan trọng nhất cũng là lớp đầu tiên của mô hình mạng CNN. Tầng này có chức năng chính là trích xuất các đặc trưng có tính không gian hiệu quả của ảnh bao gồm góc cạnh, màu sắc hoặc đặc trưng phức tạp hơn như kết cấu của ảnh. Trong tầng này có 4 đối tượng chính là: ma trận đầu vào, bộ Filters (ma trận tích chập), và Receptive Field (ma trận tương ứng ) , Feature Map.
36 Tầng tích chập này nhận đầu vào là một ma trận ba chiều và một bộ Filters. Bộ Filters này sẽ trượt qua từng vị trí trên bức ảnh để tính tích chập giữa bộ Filter và phần tương ứng trên bức ảnh. Phần tương ứng này trên bức ảnh gọi là Receptive Field, tức là vùng mà một nơ ron có thể nhìn thấy để đưa ra quyết định, và ma trận cho ra bởi quá trình này được gọi là Feature Map.
Vì bộ Filter quét qua toàn bộ bức ảnh, nên những đặc trưng này có thể nằm ở vị trí bất kì trong bức ảnh, cho dù ảnh bị xoáy trái/phải thì những đặc trưng này vẫn bị phát hiện. Kích thước Filter của tầng tích hầu hết đều là số lẻ, ví dụ như 3x3 , 5x5 hoặc 7x7 . Với kích thước Filter lẻ, các giá trị của Feature Map sẽ xác định một tâm điểm ở tầng phía trước.[1]
Hình 2.19. Tích chập ma trận 2.5.4. Tầng gộp
Tuy đã sử dụng các mạng được kết nối cục bộ và chia sẻ tham số, tuy nhiên số lượng tham số trong mạng nơ ron vẫn là quá lớn. So với một tập dữ liệu tương đối nhỏ, nó có thể gây ra tình trạng quá khớp. Vì vậy, mạng nơ ron nhân tạo thường chèn các tầng gộp vào mạng. Tầng gộp (Pooling Layer) sẽ giảm kích cỡ của hình ảnh ngay sau khi thực hiện tích chập, giúp giữ lại các đặc điểm, tính chất nổi bật nhất của ảnh. Điều này cho phép cải thiện thời gian tính toán trong mạng nơ ron, đồng thời không làm mất đi các đặc điểm quan trọng của ảnh.
37 Tầng gộp áp dụng lấy mẫu xuống cho tầng trước bằng cách sử dụng hàm max. Tầng gộp hoạt động độc lập trên mỗi tầng trước đó. Ngoài ra, có thể đặt lượng pixel khi YOLO di chuyển cửa sổ trượt hoặc bước nhảy, như làm với tầng tích chập.
Hình 2.20. Tầng gộp
Ở hình 2.15, kích thước cửa sổ trượt là 2x2 và bước nhảy mỗi lần trượt là 2. Tại mỗi cửa sổ, hàm max (tìm giá trị lớn nhất) sẽ lấy giá trị tối đa để đại diện cho giá trị của tầng tiếp theo. Các mạng nơ ron thường sử dụng kích thước cửa sổ cùng kích thước bước nhảy trong gộp chung và sử dụng kích thước cửa sổ cùng kích thước bước nhảy là 2 trong gộp nhóm, vì nếu tăng kích cỡ cửa sổ sẽ rất dễ làm mất các đặc tính của dữ liệu. Ngoài việc gộp sử dụng hàm max, người ta có thể sử dụng các hàm khác. Ví dụ người ta có thể sử dụng hàm tính trung bình của cửa sổ trượt để tính toán giá trị cho tầng tiếp theo, được gọi là gộp trung bình.[1]
2.5.5. Tầng kết nối đầy đủ
Tầng thứ ba là tầng kết nối đầy đủ. Tầng này giống như mạng nơ ron truyền thống: các nơ ron ở tầng trước sẽ kết nối với một nơ ron ở tầng tiếp theo và tầng cuối cùng là đầu ra. Để có thể đưa hình ảnh từ những tầng trước vào, dữ liệu phải dàn phẳng ra thành một véc tơ nhiều chiều. Cuối cùng là sử dụng hàm Softmax để thực hiện phân loại đối tượng.
38
Hình 2.21. Tầng kết nối đầy đủ 2.5.6. Vấn đề đầu vào của mạng
Với cấu trúc mạng nơ ron tích chập chặt chẽ thì yêu cầu đầu vào mạng cũng phải phù hợp với cấu hình mạng. Mạng nơ ron tích chập có rất nhiều cấu hình mạng nhưng số lượng cấu hình mạng mô hình YOLO lại bị giới hạn. Hiện tại, YOLO đang hỗ trợ hai đầu vào chính là 416x416 và 608x608. Mỗi một đầu vào sẽ có một thiết kế các tầng riêng biệt phù hợp với cấu hình đầu vào. Vì thế các bức ảnh trước khi đi vào mô hình sẽ được qua bước tiền xử lý để chỉnh sửa độ tương phản, đưa tỷ lệ của bức ảnh hiện tại về tỷ lệ phù hợp với cấu hình mạng.
2.6. Nhiệm vụ các lớp Extra Layers
2.6.1. Đầu ra của mạng nơ ron tích chập
Với cấu trúc phức tạp của mạng nơ ron tích chập, thực hiện tính toán qua nhiều tầng lớp, đầu ra của mô hình là một yếu tố rất quan trọng cần được nguyên cứu. Theo trình bày các bước thực hiện xây dựng cấu trúc mạng ở trên, các bức ảnh được vào mô hình mạng, trải qua các tầng tích chập, tầng gộp, tầng kết nối đầy đủ và cuối cùng cho ra đầu ra là một vectơ bao gồm các thành phần như hình dưới đây:
39
Hình 2.22. Cấu trúc đầu ra của mạng CNN
Trong đó:
– 𝑝0 là xác xuất dự đoán vật thể xuất hiện trong Bounding Box.
– 𝑡𝑥, 𝑡𝑦, 𝑡𝑤, 𝑡ℎ giúp xác định Bounding Box. Trong đó 𝑡𝑥, 𝑡𝑦 lần lượt là tọa độ tâm Bounding Box và 𝑡𝑤, 𝑡ℎ lần lượt là chiều rộng và chiều cao của Bounding Box.
– 𝑝1, 𝑝2, … , 𝑝𝑐 lần lượt là vectơ phân phối xác xuất dự đoán của các Classes.
2.6.2. Dự đoán trên nhiều Feature maps
Sau khi đi qua các tầng tích chập thì kích thước ma trận giảm dần theo cấp số nhân là 2, cuối cùng ma trận đầu ra của thuật toán là được một Feature Map có kích thước tương đối nhỏ để dự báo vật thể trên từng ô của Feature Map.
Như đã đề cập ở trên, mô hình YOLO hiện tại chỉ hoạt động chính trên hai cấu hình đầu vào là 416x416 và 608x608. Với mỗi cấu hình đầu vào, Feature Map sẽ có kích thước khác nhau. Đối với đầu vào là 416x416 thì Feature Map có các kích thước là 13x13, 26x26, 52x52. Và đối đầu vào là 608x608 thì Feature Map có các kích thước là 19x19, 38x38, 72x72. Việc chia ra nhiều Feature Map với mỗi cấu hình có ý nghĩa đối với đầu ra của thuật toán. Với những Feature Map ban đầu có kích thước nhỏ giúp dự báo được các vật thể có kích thước lớn. Những Feature Map sau có kích thước lớn hơn trong khi sẽ giúp dự báo các vật thể kích thước nhỏ.[1]
40
2.6.3. Dự đoán Bounding Box
Việc dự đoán Bounding Box cho một vật thể, YOLO dựa vào hai dữ liệu chính là Anchor Box và Cell. Vì thế, để hiểu được nguyên tắc vận hành của dự doán chúng tôi sẽ đi sâu vào hai dữ liệu trên.
2.6.3.1. Khái niệm Cell và Archon Box
Cell chính là từng ô trên Feature Map. Trên mỗi một Cell của các Feature Map YOLO sẽ áp dụng ba Anchor Box với kích thước khác nhau lần lượt là Box 1, Box 2, Box 3 để dự đoán vật thể. Số lượng Anchor Box sử dụng trên mỗi Cell đều được chúng tôi cài đặt trong thuật toán.
Hình 2.24. Cấu trúc đầu ra mô hình YOLO
Trên đây là một cấu trúc đầu ra thuật toán YOLO trên một Cell. Hình ảnh gốc được là một Feature Map có kích thước 13x13, trên Cell này YOLO lựa chọn ba Anchor Box là Box 1, 2, 3 sao cho tâm các Anchor Box trùng cới Cell. Sau khi thực hiện dự đoán Bounding Box, YOLO sẽ được một đầu ra thuật toán là một vectơ “ghép” thông số của ba Bounding Box được lựa chọn như trên.[1]
Để tìm được Bounding Box cho vật thể, thuật toán YOLO sẽ cần các Anchor Box làm cơ sở ước lượng. Những Anchor Box này sẽ được xác định trước và bao quanh vật thể một cách tương đối chính xác. Sau này thuật toán hồi quy – Regresstion Bounding Box sẽ tinh chỉnh lại Anchor Box để tạo ra Bounding Box dự đoán cho vật thể. Trong một mô hình
41 YOLO, mỗi một vật thể trong hình ảnh huấn luyện được phân bố về một Anchor Box. Trong trường hợp có từ hai Anchor Box trở lên cùng bao quanh vật thể thì YOLO sẽ xác định Anchor Box mà có chỉ số IoU ( giữa Anchor Box và Truth Bounding Box) cao nhất.
Chẳng hạn hình 2.16 miêu tả cách xác định Anchor Box cho một vật thể. Từ Cell i xác định được ba Anchor Box viền xanh như trong hình. Cả ba Anchor Box này đều giao nhau với Bounding Box của vật thể. Tuy nhiên chỉ duy nhất một Anchor Box có đường viền dày nhất màu xanh được lựa chọn làm Anchor Box cho vật thể bởi nó có IoU cao nhất.[1]
Hình 2.25. Dự đoán Bounding Box bằng Anchor Box và Cell
Chỉ số IoU là một chỉ số để đo độ chính xác của công cụ phát hiện vật thể trên tập dữ liệu cụ thể. Để áp dụng được IoU đánh giá một công cụ phát hiện vật thể bất kì cần:
– Những Ground-truth Bounding Box (Bounding Box đúng của đối tượng, ví dụ như Bounding Box của đối tượng được khoanh vùng và đánh nhãn bằng tay sử dụng trong tập kiểm tra).
– Những Predict Bounding Box được mô hình sinh ra.
42
Hình 2.26. Chỉ số IoU
Ở tử số là Area of Overlap (diện tính phần chồng lên nhau giữa Predicted Bounding Box và Ground-truth Bounding Box). Phần mẫu số là Area of Union (Diện tích phần hợp hay đơn giản hơn là diện tích mà hai Bounding box này đang chiếm). Chia diện tích phần chồng (giao) cho diện tích phần hợp sẽ thu được giá trị mong muốn -Intersection over Union (IoU).
Thêm vào đó, mỗi một vật thể trong hình ảnh huấn luyện được phân bố về một Cell trên Feature Map nơi mà chứa tâm (Mid Point) của vật thể. Chẳng hạn như hình chú chó trong hình 2.15 sẽ được phân về cho Cell màu đỏ vì tâm của ảnh chú chó rơi vào đúng Cell này. Từ Cell sẽ xác định các Anchor Box bao quanh hình ảnh chú chó.
Như vậy khi xác định một vật thể YOLO sẽ cần xác định hai thành phần gắn liền với nó là (Cell, Anchor Box). Không chỉ riêng mình Cell hoặc chỉ mình Anchor Box.
2.6.3.2. Cách thức dự đoán Bounding Box
Để dự báo Bounding Box cho một vật thể YOLO dựa trên một phép biến đổi từ Anchor box và Cell.
Cho một Anchor Box có kích thước (𝑝𝑤, 𝑝ℎ) tại Cell nằm trên Feature Map với góc trên cùng bên trái của nó là (𝑐𝑥, 𝑐𝑦), mô hình dự đoán 4 tham số (𝑡𝑥, 𝑡𝑦, 𝑡𝑤, 𝑡ℎ) trong đó hai tham số đầu là độ lệch so với góc trên cùng bên trái của Cell và hai tham số sau là tỷ lệ so với Anchor Box. Các tham số này sẽ giúp xác định Bounding Box có tâm (bx, by) và kích thước (𝑏𝑤, 𝑏ℎ) thông qua hàm Sigmoid và hàm Exponential như các công thức bên dưới:
43
Hình 2.27. Tọa độ Bounding Box
Ngoài ra do các tọa độ đã được hiệu chỉnh theo độ dài và chiều rộng của bức ảnh nên luôn có giá trị nằm trong ngưỡng [0, 1]. Do đó khi áp dụng hàm Sigmoid giúp YOLO giới hạn được tọa độ không vượt quá xa các ngưỡng này.[1]
Hình 2.22 miêu tả cách thức dự đoán Bounding Box. Hình chữ nhật nét đứt bên ngoài là Anchor Box có kích thước là (𝑝𝑤, 𝑝ℎ). Tọa độ của một Bounding Box sẽ được xác định dựa trên đồng thời cả Anchor Box và Cell mà nó thuộc về. Điều này giúp kiểm soát vị trí của Bounding Box dự đoán đâu đó quanh vị trí của Cell và Bounding Box mà không vượt quá xa ra bên ngoài giới hạn này.
Hình 2.28. Công thức ước lượng Bounding Box từ Anchor Box. 2.6.4. Non-max Suppression
Mô hình YOLO dự đoán ra rất nhiều Bounding Box trên một bức ảnh nên đối với những Cell có vị trí gần nhau, khả năng các khung hình bị chồng chéo lên nhau là rất cao. Trong trường hợp đó, YOLO sẽ cần đến bước Non-max suppression để giảm bớt số lượng các khung hình được sinh ra một cách đáng kể.
44
Hình 2.29. Kết quả thực hiện Non-max suppression
Đầu tiên thuật toán tìm cách giảm bớt số lượng các Bounding Box bằng cách lọc bỏ toàn bộ những Bounding Box có xác suất chứa vật thể nhỏ hơn một ngưỡng nào đó, thường là 0.5.[1]
Đối với các Bounding Box giao nhau, Non-max suppression sẽ lựa chọn ra một Bounding Box có xác xuất chứa vật thể là lớn nhất. Sau đó tính toán chỉ số giao thoa IoU với các Bounding Box còn lại.
Nếu chỉ số này lớn hơn ngưỡng thì điều đó chứng tỏ mật độ hai Bounding Box đang chồng lên nhau rất lớn. Thuật toán sẽ xóa các Bounding Box có có xác xuất thấp hơn và giữ lại Bounding Box có xác xuất cao nhất. Cuối cùng, đầu ra cuối cùng YOLO thu được một Bounding Box duy nhất cho một vật thể.
45
Chương 3
TỔNG QUAN PHẦN CỨNG VÀ PHẦN MỀM 3.1. Phần cứng
3.1.1. Giới thiệu xe mô hình RC
Xe RC được hiểu một cách chính xác là Remoted Control Car, tức là xe điều khiển từ xa.
Có hai dòng xe RC được chơi nhiều nhất hiện nay là xe on-road và off-road. Xe on- road thường chạy trên đường bằng phẳng, gầm thấp và chạy bằng pin. Còn xe off-road là các dạng xe chạy địa hình có gầm cao, trong đó xe Buggy là một trong những loại xe off- road được nhiều người chơi nhất.
46 Ưu điểm:
– Đa dạng kiểu dáng mức giá, giúp mọi người dễ dàng sở hữu được 1 sản phẩm. – Cấu tạo sản phẩm đơn giản, dễ dàng sửa chữa và thay phụ tùng.
– Pin bền, thời gian chơi khá lâu từ 15 – 60p ( chạy liên tục) mỗi lần sạc. – Khoảng cách điều khiển xa khoảng 100m do sử dụng sóng 2.4ghz. – Nhiều kỹ thuật được thể hiện như trên xe thật.
– Mẫu xe đẹp do dc thiết kế theo tỉ lệ 1:10 1:12 hoặc 1:18 từ các nguyên mẫu thật. Nhược điểm:
– Có giá thành sản phẩm cao.
– Người chơi phải tự biết sửa chữa xe. – Khó điều khiển do tốc độ khá cao.
3.1.2. Khung xe tự hành
Khung xe tự hành có kiểu hình Buggy offroad 1/10 (đa địa hình) 4WD. Kết cấu Khung sườn nhôm dày 3,5mm với 2 mép gấp dập khung tăng độ cứng, ngoài ra còn có 2 thanh chống sườn (trước & sau). Với kích thước dài 40cm, rộng 25cm, cao 15cm.
Truyền động 2 cầu 4 bánh chủ động toàn phần (4WD) – toàn bộ truyền động bạc đạn tốc độ cao. Các chi tiết truyền động trong visai và bánh răng làm bằng thép. Toàn bộ láp truyền động (dog-bone shaft driver) bằng thép.