So sánh, đánh giá các model – Lựa chọn model phù hợp

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 101)

Để so sánh và đánh giá các model cần phải dựa vào 2 tiêu chí chủ yếu là: Độ chính xác và tốc độ khung hình (FPS) của từng model. Model nào có thể trung hòa được 2 yếu tố trên là đạt yêu cầu đối với bài toán nhận dạng đối tượng trong thời gian thực. Để làm được điều đó thì cần trải qua các bước sau:

– Chọn một đối tượng để thực hiện gán nhãn và train dữ liệu trên Google Colab. – Chọn một máy tính để chạy chương trình nhận diện đối tượng cho từng model. Do các model phải cùng chạy trên một cấu hình máy tính thì mới có thể đánh giá tổng quan được các model.

– Lập trình để hiển thị FPS trên khung hình và kết hợp với chương trình nhận diện vật thể.

Sau khi thực hiện các bước thì được kết quả như sau:

92

Hình 4.24. Nhận diện đối tượng model YOLOv3

93

Hình 4.26. Nhận diện đối tượng model YOLOv4

94

Nhận xét:

– Độ chính xác: các model đều nhận diện được đối tượng, nhưng ở các model YOLOv4 thì nhận diện tốt hơn các model YOLOv3 với độ chính xác lớn hơn 90% và nhận diện được nhiều đối tượng cùng một lúc.

– Tốc độ khung hình: các model YOLO – tiny có tốc độ khung hình cao hơn nhiều so với các model YOLO, trong đó cao nhất là model YOLOv4 – tiny với khoảng 10 FPS.

Qua việc so sánh và đánh giá về độ chính xác, tốc độ khung hình của các model thì thấy rằng có 2 model thích hợp cho các yêu cầu của bài toán đó là YOLOv3 – tiny và YOLOv4 – tiny vì có thể trung hòa được cả 2 yếu tố là độ chính xác và FPS. Nhưng nhìn chung thì YOLOv4 – tiny vẫn tốt hơn YOLOv3 – tiny về mặt FPS (khoảng 20%) và độ chính xác (khoảng 8%). Do vậy ở bài toán nhận diện đối tượng của đề tài này thì model YOLOv4 – tiny là phù hợp nhất.

95

Chương 5

THỰC NGHIỆM VÀ KẾT QUẢ 5.1. Tổng quan

Trong chương này, chúng tôi thiết kế một hệ thống phát hiện các đối tượng bằng camera áp dụng mô hình phát hiện vật thể YOLOv4 – tiny. Từ dữ liệu đầu ra của mô hình, chúng tôi kiểm tra liệu đối tượng có đang nằm ở trong vùng điều khiển hay không và từ đó đưa ra tín hiệu điều khiển xe theo từng giai đoạn phù hợp với khoảng cách hiện tại của đối tượng và xe.

Tiếp theo, chúng tôi tiến hành lắp đặt và thử nghiệm hệ thống trên xe nhằm kiểm tra liệu hệ thống của chúng tôi có đáp ứng được mục tiêu đã định ra ban đầu hay không, hệ thống chạy trên thời gian thực có ổn định hay không, có độ trễ xảy ra hay không và cuối cùng kiểm tra xem độ chính xác khi xử lý tín hiệu có phù hợp hay không để từ đó chúng tôi điều chỉnh thuật toán một cách chính xác hơn.

96

Hình 5.2. Sơ đồ chân mô hình xe tự hành

97

Hình 5.4. Mô hình xe tự hành hướng nhìn từ trên xuống 5.2. Xử lý nhận diện đối tượng

5.2.1. Giới thiệu

Điểm cốt lõi của hệ thống chính là vấn đề nhận dạng các đối tượng, nếu hệ thống phát hiện đối tượng chính xác và đạt được hiệu quả cao thì hệ thống sẽ đáp ứng được chỉ tiêu về tín hiệu xử lý. Vì vậy việc lựa chọn thuật toán và mô hình cần phải được khảo sát kỹ và đưa vào thực nghiệm để đánh giá độ ổn định và đáp ứng của mô hình. Do đó, dựa trên cơ sở so sánh các thuật toán và mô hình được đề cập ở phần trước, chúng tôi chọn mô hình YOLOv4 – tiny làm cơ sở cho việc tìm kiếm và phát hiện đối tượng của hệ thống.

Mô hình YOLOv4 – tiny là một trong những mô hình phát hiện vật thể nhanh nhất hiện tại với độ chính xác tương đối ổn. Dựa vào tốc độ phát hiện vật thể của mô hình, hệ thống có thể đáp ứng được tiêu chí chạy được trong thời gian thực. Phiên bản này được phát hành vào ngày 25 tháng 6 năm 2020, nó cải thiện được độ chính xác cũng như tốc độ phát hiện và một số tính năng khác. Vì vậy, đồ án lần này của chúng tôi sử dụng mô hình YOLOv4 – tiny trên môi trường ngôn ngữ Python.

98

5.2.2. Thực hiện nhận diện đối tượng

Nhận diện 5 đối tượng trong thời gian thực thông qua camera trên mô hình xe tự hành bằng chương trình nhận diện đối tượng ở phần trước.

Hình 5.5. Nhận diện người trong thời gian thực

99

Hình 5.7. Nhận diện biển báo hiệu lệnh rẽ trái trong thời gian thực

100

Hình 5.9. Nhận diện biển báo STOP trong thời gian thực Nhận xét:

– Phát hiện các đối tượng nhanh và nhận diện các đối tượng với độ chính xác cao (trên 95%).

– Khi xe di chuyển thì việc nhận diện các đối tượng có giảm về mặt độ chính xác nhưng không đáng kể, hầu hết độ chính xác đều trên 90%.

5.3. Xử lý tránh vật cản 5.3.1. Tổng quan 5.3.1. Tổng quan

Chúng tôi kết hợp sử dụng thuật toán nhận diện vật thể và ước lượng khoảng cách từ xe đến các đối tuọng để tiến hành điều khiển xe dừng lại hoặc tránh vật cản. Đầu tiên hệ thống sẽ kiểm tra xem có đối tượng nào phía trước xe hay không thông qua những hình ảnh mà camera ghi lại và được xử lý bằng chương trình nhận diện đối tượng. Nếu có, hệ thống sẽ ước lượng khoảng cách từ xe đến đối tượng và điều khiển xe dừng lại (đối với đối tượng là người và biển báo STOP), điều khiển xe tránh vật cản (đối với đối tượng là xe), điều khiển xe rẽ sang trái hoặc phải (đối với đối tượng là biển báo hiệu lệnh rẽ trái và biển báo cấm rẽ trái – đi thẳng) khi khoảng cách phù hợp với yêu cầu đặt ra trước đó.

101

Hình 5.10. Sơ đồ giải thuật hoạt động khi phát hiện đối tượng là người/STOP

Bắt đầu Ảnh từ camera Xử lý nhận diện S Phát hiện người/STOP Ước lượng khoảng cách đối với xe Đ Đ Khoảng cách dưới 10cm

Điều khiển xe dừng lại

Kết thúc

102 Bắt đầu Ảnh từ camera Xử lý nhận diện S Phát hiện biển báo Ước lượng khoảng cách đối với xe Đ Đ Khoảng cách phù hợp

Đánh lái xe theo khoảng cách và hiệu lệnh biển báo

Kết thúc

S

103

5.3.2. Xử lý tránh vật cản

5.3.2.1. Đối tượng “Person” và “Biển báo STOP”

Đối với đối tượng là người và biển báo STOP: Nếu khi hệ thống phát hiện ra đối tượng mà khoảng cách giữa xe và đối tượng chưa đạt yêu cầu thì xe vẫn sẽ chạy tiếp, đến khi khoảng cách giữa xe và đối tượng đạt yêu cầu thì chúng tôi sẽ điều khiển xe dừng lại.

Hình 5.12. Phát hiện “Person” và xe vẫn tiếp tục chạy

104

Hình 5.14. Phát hiện “Biển báo STOP” và xe vẫn tiếp tục chạy

105

5.3.2.2. Đối tượng “Biển báo hiệu lệnh rẽ trái” và “Biển báo cấm rẽ trái – đi thẳng” đi thẳng”

Ở hai đối tượng này, ban đầu chúng tôi sẽ cho xe chạy thẳng. Nếu khi hệ thống phát hiện ra đối tượng mà khoảng cách giữa xe và đối tượng chưa đạt yêu cầu thì xe vẫn sẽ chạy tiếp, đến khi khoảng cách giữa xe và đối tượng phù hợp yêu cầu thì chúng tôi sẽ điều khiển xe đánh lái một góc tương ứng với khoảng cách giữa xe và đối tượng để cho xe rẽ trái (đối với đối tượng “Biển báo hiệu lệnh rẽ trái”) hoặc rẽ phải (đối với đối tượng “Biển báo cấm rẽ trái – đi thẳng”).

Hình 5.16. Phát hiện “Biển báo hiệu lệnh rẽ trái” và xe tiếp tục chạy

106

Hình 5.18. Phát hiện “Biển báo hiệu lệnh rẽ trái” và xe đánh lái một góc 450

107

Hình 5.20. Phát hiện “Biển báo cấm rẽ trái – đi thẳng” và xe đánh lái một góc 100

108

5.3.2.3. Đối tượng “Xe hơi trên đường”

Trong đối tượng này, ban đầu xe vẫn đang chạy thẳng. Nếu khi hệ thống phát hiện ra đối tượng mà khoảng cách giữa xe và đối tượng chưa đạt yêu cầu thì xe vẫn sẽ chạy tiếp, đến khi khoảng cách giữa xe và đối tượng phù hợp yêu cầu thì chúng tôi sẽ điều khiển xe đánh lái một góc tương ứng với khoảng cách giữa xe và đối tượng để cho xe rẽ trái (nếu đối tượng lệch về bên phải) hoặc rẽ phải (nếu đối tượng lệch về bên trái). Sau khi đánh lái và vượt qua đối tượng thì xe sẽ trả lái và tiếp tục chạy thẳng.

Hình 5.22. Phát hiện “CAR” và xe tiếp tục chạy

109

Hình 5.24. Phát hiện “CAR” và xe đánh lái một góc 300

Nhận xét:

– Độ chính xác khi nhận diện các đối tượng vẫn cao (hầu hết trên 90%) khi chạy chương trình xử lý tránh vật cản.

– Tốc độ khung hình khá ổn định (16 – 21 FPS) giúp cho tốc độ xử lý ở những khúc xe đánh lái khá trơn tru.

– Ở một số chỗ hệ thống bị nhiễu về mặt đo khoảng cách giữa xe và đối tượng do trong quá trình xe di chuyển thì camera bị rung lắc. Tuy nhiên điều này không ảnh hưởng nhiều đến qua trình điều khiển xe đánh lái.

110

Chương 6

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1. Kết luận

Sau khoảng thời gian tìm hiểu và nghiên cứu, nhóm chúng tôi đã hoàn thành được hầu hết các mục đích ban đầu mà đề tài đặt ra. Qua đó tích lũy được cho bản thân vốn kiến thức có ích về thiết kế và chế tạo, cụ thể là mô hình xe tự hành và hệ thống nhận diện đối tượng. Bên cạnh đó là sự tiếp cận về ngôn ngữ lập trình hiện đại Python, kiến thức căn bản và nâng cao xử lý ảnh cũng như là các kiến thức liên quan đến lập trình nhúng mà chúng tôi đã được học qua môn học “Hệ thống điều khiển tự động trên ô tô”. Các mục tiêu cụ thể mà nhóm đã đạt được trong đề tài là:

– Nghiên cứu, tìm hiểu về các mô hình phát hiện vật thể nói riêng và lĩnh vực xử lý ảnh nói chung.

– Thực thi mô hình phát hiện vật thể YOLOv4 – tiny áp dụng cho mạng nơ ron tích chập.

– Lập trình nhúng để điều khiển DC Motor và Servo (góc đánh lái của xe), từ đó điều khiển mô hình xe tự hành.

– Xử lý dữ liệu từ đầu ra mô hình YOLOv4 – tiny để tiến hành điều khiển xe tránh vật cản.

– Đồng bộ hóa hai chương trình phát hiện vật thể bằng mô hình YOLOv4 – tiny và điều khiển mô hình xe tự hành.

– Truyền dữ liệu giữa hai chương trình.

Thông qua lần làm đồ án tốt nghiệp này, nhóm chúng tôi đã có cơ hội cũng cố lại khối kiến thức đã được học trong khoảng thời gian 4 năm qua. Vận dụng và áp dụng khá thành công những kiến thức này vào tình hình thực tế, cụ thể là các kiến thức liên quan đến các môn học như “Ứng dụng máy tính (Điện ô tô)”, “Hệ thống an toàn và tiện nghi trên ô tô”, “Hệ thống điều khiển tự động trên ô tô”,…Cũng thông qua sự hỗ trợ nhiệt tình và ân cần của thầy Đỗ Văn Dũng, nhóm chúng tôi đã nắm bắt được cách tổ chức, làm việc hiệu quả, thay đổi các suy nghĩ theo lối mòn, bước ra khỏi các khuôn khổ giới hạn để được

111 những thành quả mới, tạo thành những hành trang hữu ích cho quá trình làm việc sau này. Một lần nữa, nhóm chúng tôi xin gởi lời cảm ơn chân đến thầy Đỗ Văn Dũng.

6.2. Hạn chế của đề tài

Bên cạnh những thành quả đạt được, nhóm cũng còn một số yếu điểm và thiếu sót trong quá trình thực hiện. Cụ thể như sau:

– Đầu tiên là hạn chế về kiến thức liên quan.

– Chưa nâng cao hiệu quả hoạt động của hệ thống khi trao đổi dữ liệu giữa các chương trình trong chạy đa luồng.

– Thử nghiệm chỉ dừng ở môi trường nhất định, chưa thử nghiệm hệ thống trên đường bộ.

– Hệ thống còn xảy ra độ trễ giữa dữ liệu từ camera (hình ảnh đã được xử lý thông qua chương trình nhận diện vật thể) và Servo (chương trình điều khiển mô hình xe tự hành) do hạn chế về phần cứng.

Trên đây là những hạn chế mà nhóm vẫn còn thiếu sót. Tuy nhiên nhìn chung kết quả đạt được vẫn có thể chấp nhận được.

6.3. Hướng phát triển của đề tài

Với sự phát triển ngày càng mạnh của các lĩnh vực an toàn và tiện nghi trên ô tô, hệ thống nhận dạng đối tượng và điều khiển xe tránh vật cản không chỉ dừng lại ở mô hình xe tự hành. Chúng tôi kiến nghị hướng phát triển tiếp theo của dự án này sẽ là làm dữ liệu đầu vào trở nên phong phú hơn nữa (nhiều đối tượng hơn), nâng cấp phần cứng và kết hợp với hệ thống Tracking Lane để xe có thể tự hành một cách tốt hơn. Từ việc một mô hình xe tự hành có thể hoạt động hoàn toàn một cách tự dộng sẽ phát triển dần lên các hệ thống trên một chiếc xe thật, đặc biệt là hệ thống phanh theo từng giao đoạn để xe có thể vận hành một cách an toàn cho cả người trên xe và người tham gia giao thông khác khi trở thành một chiếc xe tự hành thực thụ. Nhóm chúng tôi hi vọng kết quả đề tài sẽ là tài liệu hữu ích cho các nguyên cứu về hệ thống an toàn và tự động trên ô tô trong trường Đại học Sư phạm kỹ thuật nói riêng và ngành ô tô Việt Nam nói chung.

112

DANH MỤC TÀI LIỆU THAM KHẢO

[1]. Nguyễn Ngọc Thạch – Trần Lê Đức Huy, 7/2020, Nghiên cứu thiết kế hệ thống phát hiện và cảnh báo người đi bộ trên xe ô tô, Trường Đại học Sư phạm Kỹ thuật TP.Hồ Chí Minh.

[2]. When Maths Meet Coding, 16/10/2020, “how to train YOLO v3, v4 for custom objects detection and using colab free GPU”, Youtube.com and Github.com/jakkcoder, https://www.youtube.com/watch?v=hTCmL3S4Obw&list=WL&index=10&t=1s

[3]. eMaster Class Academy, 14/5/2020, “Python: Real Time Object Detection (Image, Webcam, Video files) with Yolov3 and OpenCV”, Youtube.com and buymeacoffee.com, https://www.youtube.com/watch?v=1LCb1PVqzeY&list=WL&index=14&t=783s

[4]. tech zizou, 25/2/2021, “TRAIN A CUSTOM YOLOv4-tiny DETECTOR USING GOOGLE COLAB ( FREE GPU )”, Youtube.com/techzizou and Github.com/techzizou https://www.youtube.com/watch?v=H3SJcwttTi4&list=WL&index=16&t=368s

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 101)

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

(122 trang)