Cấu trúc đầu ra mơ hình YOLO

Một phần của tài liệu Nghiên cứu và phát triển hệ thống phát hiện đối tượng trên xe tự hành dành cho cuộc đua số của FPT đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 50)

Trên đây là một cấu trúc đầu ra thuật tố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 tố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 tố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ự đố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ự đố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ự đố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 ln 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ự đốn Bounding Box. Hình chữ nhật nét đứt bên ngồ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 sốt vị trí của Bounding Box dự đốn đâu đó quanh vị trí của Cell và Bounding Box mà khơng vượt quá xa ra bên ngồ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 2.6.4. Non-max Suppression

Mơ hình YOLO dự đố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 tốn tìm cách giảm bớt số lượng các Bounding Box bằng cách lọc bỏ tồ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 tố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 tố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, ngồ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.

Hệ thống treo với hệ càng trước kiểu BALL SUSPENSION, đây là loại càng lái tiên tiến cho góc lái rộng và nhạy. Càng treo sau cũng kiểu Ball, giúp tinh chỉnh góc bánh xe rất dễ dàng.

Visai xe được trang bị 2 bộ visai chất lượng cao và siêu bền giúp xe vận hành 4WD tuyệt hảo lúc vào cua và vượt dốc. Bộ số được trang bị bộ 2 số tới (tự động) rất nhạy giúp xe tăng tốc lên 75km/h trong nháy mắt. Phuộc giảm sốc với loại phuộc dầu 11mm - kiểu piston kèm lò xo nhún và dầu silicon đặc chủng, vận hành vơ cùng nhịp nhàng trên mọi địa hình. Bánh xe kiểu Off Road với độ bám đường rất tốt.

47

Hình 3.2. Khung xe mơ hình tự hành – Buggy 1:10 3.1.3. Motor DC giảm tốc 3.1.3. Motor DC giảm tốc

Động cơ điện một chiều hay còn gọi là motor DC ( DC là từ viết tắt của "Direct Current Motors") là động cơ điều khiển trực tiếp có cấu tạo gồm hai dây (dây nguồn và dây mass). DC motor là một động cơ một chiều với cơ năng quay liên tục.

Động cơ giảm tốc hay còn được gọi là motor giảm tốc, motor hộp số, động cơ hộp số… Đây là loại động cơ điện có tốc độ thấp. Tốc độ của motor giảm tốc đã giản đi rất nhiều so với những động cơ thơng thường có cùng số cực và cơng suất. Khi động cơ này quay với tốc độ chậm thì lực mà nó sản sinh ra sẽ mạnh hơn.

Như vậy thì Motor DC giảm tốc là một động cơ điện một chiều và có hộp giảm tốc.

48

3.1.4. Servo

Servo là một dạng động cơ điện đặc biệt. Không giống như động cơ thông thường cứ cắm điện vào là quay liên tục, servo chỉ quay khi được điều khiển (bằng xung PWM) với góc quay nằm trong khoảng bất kì từ 0 – 180 độ. Mỗi loại servo có kích thước, khối lượng và cấu tạo khác nhau. Có loại thì nặng chỉ 9g (chủ yếu dùng trên máy bay mơ mình), có loại thì sở hữu một momen lực bá đạo (vài chục N/m), hoặc có loại thì khỏe và nhơng sắc chắc chắn,...Động cơ servo được thiết kế như hệ thống hồi tiếp vịng kín. Tín hiệu ra của động cơ được nối với một mạch điều khiển. Khi động cơ quay, vận tốc và vị trí sẽ được hồi tiếp về mạch điều khiển này. Nếu có bầt kỳ lý do nào ngăn cản chuyển động quay của động cơ, cơ cấu hồi tiếp sẽ nhận thấy tín hiệu ra chưa đạt được vị trí mong muốn. Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt được điểm chính xác.

Hình 3.4. Động cơ Servo MG946R 3.1.5. Mạch cầu H 3.1.5. Mạch cầu H

Mạch cầu H dùng để tăng công suất nhằm điều khiển DC Motor thơng qua tín hiệu từ Jetson Nano.

SHB được thiết kế để điều khiển một động cơ DC có chổi than công suất lớn cho những ứng dụng trong điều khiển robot, xe điện, và những ứng dụng DIY khác. Dòng điện điều khiển liên tục đạt đến 20A và dòng đỉnh 50A, dãy điện áp hoạt động rộng từ 12V đến 30V. Sản phẩm cịn được thiết kế cho những ứng dụng có tần số PWM cao, tần số cao nhất đạt được ở 40kHz.

49 SHB còn hỗ trợ giám sát các thơng số trong q trình điều khiển bằng việc đưa ra một số tín hiệu phản hồi như: dịng điện, điện áp, nhiệt độ.

SHB hỗ trợ phần cứng tương thích với các mạch Arduino thơng dụng : Uno, Mega cũng như cung cấp các ví dụ mẫu (điều khiển PWM, tốc độ và vị trí sử dụng PID Controller).

Hình 3.5. Mạch cầu H SHB Tính năng: Tính năng:

– Điều khiển thuận nghịch cho một động cơ DC chổi than.

50 – Cấu hình mạch cầu H với MOSFET kênh N cho hiệu suất tốt hơn, đáp ứng cho những ứng dụng có cơng suất lớn.

– Tương thích với các mạch Arduino.

– Tương thích với CircleTech Motor Control Shield 32bit Microcontroller (CT – MCS).

– Cung cấp các tín hiệu phản hồi như: Dịng điện, điện áp, nhiệt độ. – Có thể gắn thêm tản nhiệt, vỏ hộp.

– Hỗ trợ 3 ngõ vào cho encoder (A, B, Z). – Hỗ trợ mã nguồn mở.

– Phù hợp cho các ứng dụng DIY, Prototype.

3.1.6. Board Jetson Nano

NVIDIA Jetson Nano Developer Kit là một máy tính nhỏ nhưng rất mạnh mẽ cho phép bạn chạy song song nhiều mạng neural sử dụng 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ý giọng nói.

51 Sản phẩm NVIDA Jetson Nano Developer Kit trang bị số lượng cổng kết nối khá đầy đủ: 4 cổng USB 3.0, cổng HDMI, DisplayPort và một cổng Ethernet, cùng với đó là những chuẩn kết nối phổ biến như SDIO, I2C, SPIO và UART. Khơng chỉ vậy, Jetson Nano cịn có cả cổng kết nối M.2, giao thức MIPI-CSI để kết nối với máy ảnh. Người dùng cũng có thể kết nối mạng cho Jetson Nano bằng Wifi nếu không muốn sử dụng dây cáp Ethernet truyền thống.

Thông số kỹ thuật :

– Hỗ trợ GPU này bao gồm 1 CPU 4 nhân 64-bit dựa trên ARM Cortex-A57, RAM 4GB và bộ xử lý video có thể xử lý lên đến 4K 30fps đối với mã hóa và 4K 60fps đối với giải mã, cùng với đó là các khe cắm PCIe và USB 3.0.

– Jetson Nano cung cấp 472 GFLOPS để chạy các thuật tốn AI hiện đại một cách nhanh chóng, với một quad-core 64-bit ARM CPU, một 128-core được tích hợp trên NVIDIA GPU, cũng như bộ nhớ 4GB LPDDR4. Có thể chạy song song nhiều mạng neural và xử lý đồng thời một số cảm biến có độ phân giải cao. Jetson Nano cũng được hỗ trợ bởi NVIDIA JetPack. Bao gồm các gói hỗ trợ board (BSP), CUDA, cuDNN và thư viện phần mềm TensorRT cho deep learning, computer vision, GPU computing, multimedia processing và nhiều ứng dụng khác. SDK cũng bao gồm khả năng cài đặt frameworks Machine Learning (ML) mã nguồn mở như TensorFlow, PyTorch, Caffe/Caffe2, Keras và MXNet, cho phép các nhà phát triển tích hợp các model AI/ framework AI yêu tích của họ vào các sản phẩm một cách nhanh chóng và dễ dàng.

– Khả năng xử lý video của Jetson Nano là khá ấn tượng. Sản phẩm này không phải phục vụ việc xem video 4K, thay vào đó, nó có thể xử lý nhiều luồng video (như các máy bay không người lái drone được tích hợp đa camera) để có thể phát hiện đối tượng, theo dõi hay tránh chướng ngại vật. Ngoài 4K 60fps, Jetson Nano cịn có khả năng giải mã 8 luồng video hay camera với độ phân giải Full HD 30fps. Các luồng này sẽ được giải mã đồng thời ngay lập tức bởi các thuật toán học máy để theo dõi đối tượng.

52

3.1.7. Webcam

Thuật ngữ Webcam (viết tắt là WC) được ghép từ Website camera chỉ những thiết bị ghi hình kỹ thuật số được kết nối với máy tính, để truyền trực tiếp hình ảnh mà nó ghi được lên một website hay một thiết bị kết nối khác thông qua hệ thống mạng internet.

Nhìn chung thì webcam sẽ giống như một máy ảnh kỹ thuật số với cơng dụng ghi hình nhưng chỉ khác ở chỗ: chức năng chính của nó do phần mềm trên máy tính điều khiển và xử lí. Đây là món phụ kiện rất phổ biến và được tích hợp (hoặc có thể mua) trên hầu hết các thiết bị công nghệ hiện nay như laptop, tablet, điện thoại (camera trước), một số mẫu màn hình máy tính và kể cả TV thông minh.

53

3.1.8. Nguồn

Nguồn được tạo thành từ các pin cell 18650 2600mAh 3.7V bằng cách mắc nối tiếp 3 cell với nhau, sau đó mắc song song 3 cell nối tiếp với 3 cell nối tiếp.

Hình 3.8. Pin cell 18650 2600mAh 3.7V

54

3.2. Phần mềm 3.2.1. Python

Python là ngôn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ, được tạo ra bởi Guido van Rossum. Nó dễ dàng để tìm hiểu và đang nổi lên như một trong những ngôn ngữ lập trình nhập mơn tốt nhất cho người lần đầu tiếp xúc với ngơn ngữ lập trình. Python hồn toàn tạo kiểu động và sử dụng cơ chế cấp phát bộ nhớ tự động. Python có cấu trúc dữ liệu cấp cao mạnh mẽ và cách tiếp cận đơn giản nhưng hiệu quả đối với lập trình hướng đối tượng. Cú pháp lệnh của Python là điểm cộng vơ cùng lớn vì sự rõ ràng, dễ hiểu và cách gõ linh động làm cho nó nhanh chóng trở thành một ngôn ngữ lý tưởng để viết script và phát triển ứng dụng trong nhiều lĩnh vực, ở hầu hết các nền tảng.

Hình 3.10. Ngơn ngữ Python Tính năng chính của Python: Tính năng chính của Python:

– Ngơn ngữ lập trình đơn giản, dễ học: Python có cú pháp rất đơn giản, rõ ràng. Nó dễ đọc và viết hơn rất nhiều khi so sánh với những ngôn ngữ lập trình khác như C++,

Một phần của tài liệu Nghiên cứu và phát triển hệ thống phát hiện đối tượng trên xe tự hành dành cho cuộc đua số của FPT đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 50)

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

(122 trang)