1. Trang chủ
  2. » Mẫu Slide

Luận Văn Thạc Sĩ Khoa Học Dữ Liệu Xây Dựng Mô Hình Trí Tuệ Nhân Tạo Hỗ Trợ Dji Tello Drone Nhận Diện Các Vật Thể Có Dạng Hình Học Cơ Bản

112 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng Mô hình Trí tuệ Nhân tạo Hỗ trợ DJI Tello Drone Nhận diện các Vật thể có Dạng Hình học Cơ bản
Tác giả Nguyễn Quang Phú
Người hướng dẫn TS. Hồ Quốc Dũng
Trường học Đại học Huế, Khoa Kỹ thuật và Công nghệ
Chuyên ngành Ứng dụng Khoa học Dữ liệu
Thể loại Luận văn Thạc sĩ
Năm xuất bản 2023
Thành phố Huế
Định dạng
Số trang 112
Dung lượng 12,23 MB

Cấu trúc

  • PHẦN I MỞ ĐẦU (14)
    • 1. Lý do chọn đề tài (14)
    • 2. Mục tiêu nghiên cứu (15)
      • 2.1. Mục tiêu tổng quát (15)
      • 2.2. Mục tiêu cụ thể (15)
    • 3. Đối tượng và phạm vi nghiên cứu (16)
      • 3.1. Đối tượng nghiên cứu (16)
      • 3.2. Phạm vi nghiên cứu (17)
    • 4. Phương pháp nghiên cứu (18)
    • 5. Cấu trúc của luận văn (19)
  • PHẦN II NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU (20)
  • CHƯƠNG I: CƠ SỞ LÝ THUYẾT (20)
    • 1.1 Tổng quan về drone (20)
      • 1.1.1 Giới thiệu về drone (20)
      • 1.1.2 Ứng dụng của drone (22)
      • 1.1.3 Giới thiệu về DJI Tello Drone (22)
    • 1.2 Tổng quan về học máy (23)
      • 1.2.1 Giới thiệu về học máy (23)
      • 1.2.2 Phân loại các phương pháp học máy (23)
      • 1.2.3 Ứng dụng của học máy (27)
      • 1.2.4 Một số phương pháp đánh giá hệ thống phân loại (28)
        • 1.2.4.1 Ma trận nhầm lẫn (Confusion Matrix) (28)
        • 1.2.4.2 True/False Positive/Negative (30)
        • 1.2.4.3 Độ chính xác (Precision) và Độ nhạy (Recall) (32)
    • 1.3 Tổng quan về học sâu (34)
      • 1.3.1 Giới thiệu về học sâu (34)
      • 1.3.2 Cách thức hoạt động của học sâu (36)
      • 1.3.3 Ứng dụng của học sâu (37)
    • 1.4 Tổng quan mạng thần kinh tích chập (40)
      • 1.4.1 Giới thiệu về mạng thần kinh tích chập (40)
      • 1.4.2 Kiến trúc mạng thần kinh tích chập (42)
      • 1.4.3 Ứng dụng của mạng thần kinh tích chập trong nhận diện vật thể (48)
    • 1.5 Ngôn ngữ lập trình Python cho học máy (51)
      • 1.5.1 Giới thiệu chung (51)
      • 1.5.2 Các thư viện Python phổ biến hỗ trợ học máy (52)
      • 1.5.3 DjiTelloPy – Bộ thư viện hỗ trợ điều khiển DJI Tello Drone (53)
      • 1.5.4 Nền tảng trực tuyến Google Colab (54)
    • 1.6 Các công trình nghiên cứu liên quan (58)
  • CHƯƠNG II: HUẤN LUYỆN THIẾT BỊ BAY KHÔNG NGƯỜI LÁI NHẬN DẠNG VẬT THỂ CÓ DẠNG HÌNH HỌC CƠ BẢN (62)
    • 2.1. Tổng quan phương pháp (62)
      • 2.1.1. Sơ đồ tổng thể phương pháp (62)
      • 2.1.2. Giải thích các bước trong sơ đồ tổng thể phương pháp (62)
    • 2.2. Mô tả và xây dựng bộ dữ liệu hình ảnh vật thể (65)
      • 2.2.1. Giới thiệu tổng quan về bộ dữ liệu hình ảnh vật thể (65)
      • 2.2.2. Xây dựng thuật toán hỗ trợ việc xây dựng bộ dữ liệu hình ảnh (67)
    • 2.3. Ứng dụng thuật toán mạng thần kinh tích chập trong việc giải quyết bài toán nhận diện vật thể có dạng hình học cơ bản (72)
    • 2.4. Nhận diện vật thể có dạng hình học cơ bản thông qua camera (74)
  • CHƯƠNG III: KẾT QUẢ THỰC NGHIỆM VÀ BÀN LUẬN (76)
    • 3.1. Kết quả thực nghiệm (76)
      • 3.1.1. Kết quả nhận diện vật thể hình chữ nhật (81)
      • 3.1.2. Kết quả nhận diện vật thể hình tam giác (82)
      • 3.1.3. Kết quả nhận diện vật thể hình tròn (83)
      • 3.1.4. Kết quả nhận diện vật thể hình ngũ giác đều (84)
  • PHẦN III KẾT LUẬN (85)
    • 1. Kết quả thu được (85)
    • 2. Hạn chế (85)
    • 3. Hướng phát triển của bài toán (86)
  • TÀI LIỆU THAM KHẢO (87)

Nội dung

Luận Văn Thạc Sĩ Khoa Học Dữ Liệu Xây Dựng Mô Hình Trí Tuệ Nhân Tạo Hỗ Trợ Dji Tello Drone Nhận Diện Các Vật Thể Có Dạng Hình Học Cơ Bản Học sâu cũng được áp dụng trong lĩnh vực dự đoán, ví dụ như trong lĩnh vực tài chính và giao dịch. Các phương pháp như Direct Deep Reinforcement Learning được sử dụng để biểu diễn tín hiệu tài chính và thực hiện giao dịch [30]. Các lĩnh vực ứng dụng khác của học sâu bao gồm nhận dạng đối tượng, xử lý giọng nói và âm thanh, truy xuất thông tin và xử lý ngôn ngữ tự nhiên. Các thuật toán như Deep Belief Network (DBN), Deep Boltzmann Machines (DBM) và Deep Stacking Networks (DSN) được áp dụng để giải quyết các vấn đề trong các lĩnh vực này [31]. Học sâu có thể được áp dụng trong nhiều lĩnh vực mới, đáng chú ý như ảnh y khoa, tạo ra âm thanh bằng deep learning, sáng tạo nghệ thuật thông qua deep learning, tạo ra hiệu ứng ảo trên máy tính, áp dụng trong robot học, dự đoán, trò chơi điện tử, xe tự lái và xử lý dữ liệu lớn. Ngoài ra, học sâu cũng giúp giải quyết một số vấn đề hiện có trong các lĩnh vực khác. Ví dụ, việc tô màu tự động, dịch máy tự động, tạo ra văn bản tự động, viết chữ viết tự động, nhận dạng hình ảnh, tạo chú thích tự động cho hình ảnh. Deep learning cũng có thể ứng dụng trong lĩnh vực quảng cáo, tạo ra quảng cáo dựa trên dữ liệu, đấu giá quảng cáo theo thời gian thực (RTB) để hiển thị quảng cáo một cách chính xác và nhắm đúng đối tượng khách hàng. Ngoài ra, deep learning còn có khả năng dự đoán động đất và nhiều ứng dụng khác. Từ những áp dụng đa dạng này, học sâu mang lại tiềm năng vô tận trong việc nghiên cứu và phát triển trong tương lai. 1.4 Tổng quan mạng thần kinh tích chập 1.4.1 Giới thiệu về mạng thần kinh tích chập Mạng thần kinh nhân tạo (Artificial Neural Network) được tạo ra bằng cách mô phỏng cấu trúc và hoạt động của não bộ sinh vật. Mô hình này bao gồm các lớp nơ ron được kết nối theo một mô hình cụ thể. Trong quá trình huấn luyện, mạng nơ ron nhân tạo hấp thụ kinh nghiệm và sử dụng những kinh nghiệm đó để xử lý thông tin mới [32]. Ứng dụng phổ biến của mạng nơ ron nhân tạo là giải quyết các bài toán nhận dạng mẫu và dự đoán. Nhờ khả năng học tập và khái quát hóa, mạng thần kinh nhân tạo có thể phân loại đối tượng, nhận dạng hình ảnh, dự đoán kết quả, và thậm chí tạo ra những dự đoán về sự xuất hiện của các sự kiện như động đất. Ngoài ra, mạng thần kinh nhân tạo còn có thể được áp dụng trong nhiều lĩnh vực khác như y học, nghệ thuật, tự động hóa và trò chơi điện tử. Với sự phát triển của công nghệ, mạng nơ ron nhân tạo ngày càng trở nên quan trọng trong việc giải quyết các vấn đề phức tạp và khám phá những tiềm năng mới. Mạng thần kinh tích chập (CNN - Convolutional Neural Network) là một trong những mô hình mạng học sâu phổ biến nhất hiện nay, với khả năng xuất sắc trong việc nhận dạng và phân loại hình ảnh, thậm chí vượt trội hơn cả con người trong nhiều trường hợp [33]. Mô hình này đã và đang được phát triển và áp dụng trong các hệ thống xử lý ảnh quy mô lớn của các công ty như Facebook, Google và Amazon, với mục đích đa dạng như tự động gán nhãn, tìm kiếm ảnh và đề xuất sản phẩm cho người dùng. Sự ra đời của mạng CNN dựa trên ý tưởng cải tiến cách thức mà các mạng nơ- ron truyền thống học thông tin từ hình ảnh. Với việc sử dụng các kết nối địa phương giữa các điểm ảnh và các nút, mạng nơ ron truyền thẳng (Feedforward Neural Network) gặp hạn chế đáng kể do kích thước của ảnh. Khi kích thước ảnh tăng lên, số lượng kết nối tăng nhanh chóng và dẫn đến một lượng tính toán lớn. Ngoài ra, việc sử dụng kết nối đầy đủ cũng gây lãng phí vì thông tin chính thường phụ thuộc vào sự liên quan giữa các điểm ảnh gần nhau, không quan tâm nhiều đến các điểm ảnh xa nhau. Mạng CNN ra đời với kiến trúc thay đổi, cho phép xây dựng kết nối chỉ sử dụng một phần cục bộ của ảnh để kết nối với các nút trong lớp tiếp theo, thay vì toàn bộ ảnh như trong mạng nơ ron truyền thẳng. Điều này giúp mạng CNN có khả năng hiệu quả hơn trong việc xử lý ảnh, giảm bớt khối lượng tính toán và tận dụng tối đa thông tin quan trọng trong hình ảnh. Mô hình này đã mở ra nhiều cánh cửa cho việc ứng dụng học sâu trong lĩnh vực xử lý ảnh và có sự ảnh hưởng sâu rộng trong công nghệ và cuộc sống hàng ngày của chúng ta. Mạng thần kinh tích chập (CNN), được giới thiệu lần đầu tiên bởi Fukushima [34] vào năm 1998, có ứng dụng rộng rãi trong hoạt động nhận dạng [35], [36], phân loại câu [37], nhận dạng văn bản [38], nhận dạng khuôn mặt [39], phát hiện đối tượng và bản địa hóa [38], [40] , đặc tính hình ảnh [41], v.v… 1.4.2 Kiến trúc mạng thần kinh tích chập Trong một mạng CNN, có một số lớp cơ bản mà chúng ta sử dụng để xây dựng kiến trúc. Các lớp này gồm: Lớp tích chập (Convolutional), Lớp kích hoạt phi tuyến ReLU (Rectified Linear Unit), Lớp tổng hợp (Pooling) và Lớp kết nối đầy đủ (Fullyconnected). Nhưng chúng ta có thể điều chỉnh số lượng và cách sắp xếp của các lớp này để tạo ra các mô hình huấn luyện phù hợp cho các bài toán khác nhau.

CƠ SỞ LÝ THUYẾT

Tổng quan về drone

Máy bay không người lái hay còn thường được gọi là drone hay UAVs (Unmanned aerial vehicles) hay phương tiện bay không người lái nhỏ gọn (Micro aerial vehicles – MAVs), được sử dụng cho nhiều ứng dụng và nhiệm vụ dân sự và quân sự [5] Máy bay không người lái có khả năng hoạt động với nhiều mức độ tự động khác nhau, bao gồm: điều khiển từ xa bởi người điều khiển, tự động hoàn toàn hoặc theo một chế độ không liên tục, được điều khiển bởi một máy tính trên máy bay Các máy bay không người lái này có thể được trang bị với nhiều loại cảm biến khác nhau, tuỳ thuộc vào nhiệm vụ mà chúng được giao Các cảm biến này bao gồm âm thanh, hình ảnh, hóa học, và sinh học để tăng cường hiệu suất và hiệu quả của drone Các nhà nghiên cứu đã tập trung vào tối ưu hóa thiết kế để phát triển và sản xuất nhiều loại phương tiện bay đa dạng

Máy bay không người lái có lịch sử sử dụng bắt đầu từ Chiến tranh Đầu tiên của Ý (1849) Đế quốc Áo phát triển hệ thống khinh khí cầu không người lái để thả bom xuống Venice Sự phát triển này dẫn đến việc sử dụng khinh khí cầu và diều gắn thông tin trao đổi trong các cuộc chiến như Chiến tranh Nội binh Mỹ và Chiến tranh Mỹ-Tây Ban Nha Kể từ đó, máy bay không người lái đã tiếp tục được phát triển cho mục đích quân sự Trong thời kỳ Chiến tranh Lạnh, Mỹ bắt đầu một chương trình nghiên cứu về máy bay không người lái dưới tên mã "Red Wagon" Đồng thời, GPS (Global Positioning System) dựa trên hệ thống định vị toàn cầu đã được giới thiệu Máy bay không người lái thương mại đầu tiên được tạo ra bởi DJI vào năm 2006 [6] Các drone thường được phân loại theo đa dạng tùy thuộc vào nhiệm vụ mà chúng được giao và dựa trên cấu hình của chúng [7] Drone có thể chia thành thành chín loại khác nhau, ví dụ như drone cánh cố định, drone cánh quạt quay, drone cánh đập, drone cánh quạt nghiêng, drone quạt có ống, trực thăng, chim cánh cụt và các loại drone không thông thường khác [7]

Hình 1.1 Các phân loại drone khác nhau

Hình 1.2 Hình ảnh về một số loại drone cánh quạt và cánh cứng

Theo báo cáo của Drone Industry Insights, khối lượng giao dịch thị trường drone vào năm 2018 lên đến 14,1 tỷ đô la với triển vọng tăng trưởng gấp ba lần vào năm

2024 [8] Doanh số drone kỳ vọng sẽ tăng đều đặn hàng năm, điều này được thể hiện

9 qua việc triển khai thương mại của máy bay không người lái với tốc độ phát triển rất nhanh, với lý do việc ứng dụng của drone đa dạng, từ dịch vụ vận chuyển hàng hóa, taxi drone, đến việc áp dụng trong nông nghiệp, cứu trợ thiên tai, đánh giá rủi ro và giám sát các cơ sở hạ tầng quan trọng [8]

Drone là một hệ thống mang lại nhiều ứng dụng khác nhau, bao gồm cả ứng dụng trong lĩnh vực quân sự và dân sự Drone có thể thực hiện nhiều nhiệm vụ khác nhau cả trong môi trường ngoài trời và những địa hình phức tạp Việc trang bị các cảm biến và máy ảnh khác nhau trên drone giúp cho nó có thể thực hiện được các nhiệm vụ tình báo, giám sát và trinh sát Các ứng dụng của drone có thể được phân loại theo nhiều tiêu chí khác nhau, bao gồm tính chất nhiệm vụ (quân sự/dân sự), vùng bay (ngoài trời/trong nhà) và môi trường (dưới nước/trên mặt nước/trên mặt đất/trên không gian) [10] Ví dụ, trong lĩnh vực dân sự, drone được sử dụng trong tìm kiếm cứu nạn, giám sát, chữa cháy, giám sát thời tiết và khảo sát [11], giám sát hạ tầng điện [12], quy hoạch, quản lý đô thị [13], giám sát môi trường xây dựng [11], giao thông đô thị [14], [15], giám sát sinh thái và môi trường [16], mô hình hóa phân bố các loài [17], sinh thái dân số [17], cũng như giám sát và bảo tồn sinh thái [18], nghiên cứu kiến trúc và di sản văn hóa [19]…

1.1.3 Giới thiệu về DJI Tello Drone

DJI Tello Drone là một sản phẩm máy bay không người lái của tập đoàn sản xuất máy bay không người lái lớn nhất thế giới DJI Sản phẩm lần đầu tiên ra mắt tại thị trường thế giới từ tháng 3 năm 2018 [20] Là một chiếc drone nhỏ gọn và giá thành rẻ 150 $, DJI Tello drone được trang bị một camera nằm ở mũi máy có khả năng chụp ảnh 5 MP và truyền video HD 720p Với ưu điểm dễ cài đặt, chỉ cần tải ứng dụng từ các cửa hàng ứng dụng Appstore hoặc Google Play là có thể dễ dàng sử dụng để bay DJI Tello drone còn có khả năng tự động cất cánh bay lên không trung và các cánh quạt được bảo vệ giúp việc điều hướng di chuyển máy bay được an toàn khi sử dụng để tránh va chạm vật thể trên đường bay gây nguy hiểm

Với các ưu điểm trên, DJI Tello drone là một sản phẩm dễ tiếp cận, dễ sử dụng

10 và vẫn đảm bảo các tính năng đầy đủ phù hợp cho mục đích nghiên cứu, thử nghiệm nhiều đáp ứng phục vụ tìm hiểu sâu các vấn đề thực tiễn đang mắc phải trong đề tài nghiên cứu nhân diện hình dạng các vật thể bằng drone.

Tổng quan về học máy

1.2.1 Giới thiệu về học máy

Học máy (Machine learning) là một phương pháp phân tích dữ liệu giúp tự động hóa quá trình phân tích và tìm ra những đặc trưng quan trọng trong tập dữ liệu Thay vì được lập trình cụ thể, học máy sử dụng các thuật toán trừu tượng để học từ dữ liệu, cho phép máy tính khám phá những thông tin ẩn sâu trong dữ liệu mà không thể dễ dàng đạt được bằng cách thông thường Khi được tiếp xúc với dữ liệu mới, học máy có khả năng thích ứng nhanh chóng và độc lập để tạo ra những dự đoán và phân loại chính xác

Hơn nữa, học máy là một công nghệ được phát triển từ lĩnh vực Trí tuệ Nhân tạo tiên tiến nhất hiện nay Để đảm bảo tính chính xác và tránh sự xuất hiện của dữ liệu giả, quá trình nghiên cứu và lựa chọn các kỹ thuật phân tích dữ liệu từ con người vẫn là cần thiết

Học máy đã trở nên ngày càng phổ biến trên toàn cầu Sự gia tăng đáng kể của dữ liệu lớn (Big Data) và các thuật toán Machine Learning đã cải thiện đáng kể độ chính xác của các mô hình và khả năng dự đoán trong tương lai

Trong mỗi bài toán Học máy, có hai giai đoạn quan trọng, đó là giai đoạn huấn luyện (training phase) và giai đoạn kiểm thử (test phase) Giai đoạn huấn luyện sử dụng chỉ dữ liệu huấn luyện, trong khi giai đoạn kiểm thử sử dụng chỉ dữ liệu trong tập kiểm thử

1.2.2 Phân loại các phương pháp học máy

Dựa trên đặc điểm của tập dữ liệu, học có giám sát và học không giám sát là hai nhóm chính trong thuật toán học máy [21] Ngoài ra, học bán giám sát và học củng cố cũng là hai nhóm thuật toán đang thu hút sự chú ý gần đây [21]

1.2.2.1 Học có giám sát (Supervised Learning)

Học có giám sát (Supervised Learning) là một nhóm thuật toán trong machine

11 learning Đặc trưng của học có giám sát là xây dựng mô hình dự đoán mối quan hệ giữa đầu vào và đầu ra dựa trên các cặp dữ liệu đã biết trước đó trong quá trình huấn luyện Cụ thể, học có giám sát sẽ dự đoán kết quả (outcome) của một dữ liệu mới (new input) dựa trên các cặp (input, outcome) đã được biết trước [22]

Các cặp dữ liệu này còn được gọi là (data, label) hay (dữ liệu, nhãn) Chính những cặp này sẽ giúp mô hình học có giám sát hiểu và tìm ra mẫu, quy tắc để dự đoán đầu ra chính xác cho dữ liệu mới

Học có giám sát đóng vai trò quan trọng trong việc xác định tín hiệu tốt nhất để dự báo xu hướng và lợi nhuận trong tương lai, đặc biệt trong lĩnh vực cổ phiếu và chứng khoán Nhờ vào thuật toán supervised learning, chúng ta có thể phân loại dữ liệu vào các nhóm khác nhau (classification) hoặc dự đoán giá trị số liệu cụ thể (regression)

Phân loại (Classification): Thuật toán phân loại giúp chúng ta xác định và phân loại dữ liệu vào các nhóm, lớp khác nhau Ví dụ, trong lĩnh vực cổ phiếu, chúng ta có thể sử dụng phân loại để xác định xem một cổ phiếu có tiềm năng tăng giá (nhóm A) hay giảm giá (nhóm B)

Hồi quy (Regression): Thuật toán hồi quy giúp chúng ta dự đoán và tìm ra mối quan hệ, xu hướng của dữ liệu Với dữ liệu về giá cổ phiếu trong quá khứ, chúng ta có thể sử dụng thuật toán hồi quy để dự đoán giá trị cổ phiếu trong tương lai

Học có giám sát là một nhóm thuật toán phổ biến nhất trong học máy (machine learning) và được sử dụng rộng rãi trong các ứng dụng thực tế Với khả năng phân loại và dự đoán chính xác, học có giám sát đã tạo nên những thành tựu đáng kể trong nhiều lĩnh vực, bao gồm dự báo thị trường tài chính, phân loại dữ liệu y tế, nhận dạng khuôn mặt và nhiều ứng dụng khác Sự kết hợp giữa dữ liệu huấn luyện và mô hình học có giám sát giúp chúng ta hiểu rõ hơn về dữ liệu và tạo ra những dự đoán có giá trị trong thực tế

1.2.2.2 Học không giám sát (Unsupervised Learning)

Học không giám sát (Unsupervised Learning) là một nhóm thuật toán trong machine learning Trái ngược với học có giám sát, trong học không giám sát, dữ liệu

12 huấn luyện không đi kèm với các đầu ra tương ứng Thay vào đó, các thuật toán học không giám sát tìm cách trích xuất thông tin quan trọng dựa trên mối liên quan giữa các điểm dữ liệu [22]

Trong học không giám sát, chúng ta không có mục tiêu cụ thể để dự đoán hay phân loại, mà thay vào đó, chúng ta muốn tìm hiểu cấu trúc, mô hình ẩn trong tập dữ liệu Các thuật toán học không giám sát giúp chúng ta phát hiện các nhóm, cụm dữ liệu tương đồng, các mẫu xu hướng, hay đặc trưng nổi bật trong tập dữ liệu

Một ví dụ điển hình của học không giám sát là thuật toán phân cụm (clustering), nơi chúng ta cố gắng phân chia dữ liệu vào các nhóm riêng biệt dựa trên đặc điểm tương đồng Các thuật toán học không giám sát còn được sử dụng trong việc giảm chiều dữ liệu, khám phá luật liên kết trong dữ liệu, xác định các điểm ngoại lệ, và nhiều ứng dụng khác

Với khả năng trích xuất thông tin và khám phá cấu trúc trong tập dữ liệu mà không cần sự hướng dẫn, học không giám sát đóng vai trò quan trọng trong nghiên cứu và ứng dụng thực tế của machine learning

1.2.2.3 Học bán giám sát (Semi-Supervised Learning)

Tổng quan về học sâu

1.3.1 Giới thiệu về học sâu

Học sâu (Deep Learning) là một lĩnh vực độc đáo thuộc học máy, trong đó mạng nơ ron nhân tạo (Artificial Neural Networks) được sử dụng để giải quyết những vấn đề mà tính toán truyền thống không thể xử lý, chẳng hạn như dữ liệu trừu tượng, dữ liệu mờ, hoặc dữ liệu không rõ ràng Sự đặc biệt này của học sâu đã cho phép ứng dụng rộng rãi của nó trong các lĩnh vực như nhận diện hình ảnh, nhận diện giọng nói, xử lý ngôn ngữ tự nhiên, cũng như dự đoán và dự báo Bằng cách tận dụng khả năng học tập và tự điều chỉnh, mạng thần kinh nhân tạo trong học sâu đã chứng tỏ được sự hiệu quả và khả năng thích ứng linh hoạt với các bài toán phức tạp

Các nhà nghiên cứu về mạng thần kinh đã không ngừng nỗ lực để đưa thêm những tiến bộ vào lĩnh vực này Một bước khởi đầu đáng chú ý là sự ra đời của mạng thần kinh tự tổ chức (Self-organizing neural networks) vào năm 1980 Mạng này đã được áp dụng để phân nhóm các mẫu đầu vào thành các nhóm có mẫu tương tự, với mục đích tạo ra những "bản đồ" phản ánh một cấu trúc tương tự về mặt địa chất giữa

22 các đơn vị nhóm Điều đáng chú ý là mạng này cũng có khả năng ánh xạ trọng số vào dữ liệu đầu vào, góp phần làm tăng hiệu quả của quá trình Tiếp đó, mạng Kohonen đã đưa ra khái niệm về tự tổ chức và học không giám sát, mở ra những triển vọng mới trong lĩnh vực này [25]

Vào những năm 1980, Kunihiko Fukushima đã đưa ra mô hình neocognitron - một mạng thần kinh nhân tạo phân cấp, đa tầng - nhằm giải quyết vấn đề nhận dạng ký tự viết tay và các nhiệm vụ nhận dạng mẫu khác Cùng với sự tiến bộ đó, mạng thần kinh tích chập (Convolutional neural networks - CNN) đã được phát triển Sau sự phát triển của các thuật toán học nhanh cho Restricted Boltzmann Machine (RBM) do Geoffrey Hinton và các đồng nghiệp đề xuất vào giữa những năm

2000, RBM đã trở thành một mạng thần kinh nhân tạo đặc biệt, có khả năng sinh ra ngẫu nhiên và học một phân phối xác suất trên tập hợp các đầu vào Điều này đã làm cho RBM trở nên phổ biến trong cộng đồng nghiên cứu

Mạng thần kinh hồi quy (Recurrent neural network - RNN) có vai trò quan trọng trong việc khôi phục mẫu đã lưu trữ từ phiên bản bị hỏng và là cơ sở cho máy Boltzmann hạn chế và bộ mã hóa tự động Vào năm 1986, Michael Jordan đã phát minh ra mạng Jordan, một kiến trúc ban đầu được sử dụng cho việc học có giám sát trên chuỗi dữ liệu

Mạng thần kinh tích chập đầu tiên (Convolutional neural network - CNN) - kiến trúc LeNet - được giới thiệu lần đầu bởi LeCun và đồng nghiệp trong bài báo năm

1998 của họ, "Học dựa trên độ dốc áp dụng vào nhận dạng tài liệu" Nó chủ yếu được sử dụng để nhận dạng ký tự và các ký tự trong tài liệu

Mạng thần kinh hai chiều hồi quy (Bidirectional recurrent neural network - BRNN) được giới thiệu bởi Mike Schuster và Kuldip Paliwal vào năm 1997 Nó hoạt động bằng cách đào tạo mạng đồng thời theo cả hướng thời gian dương và âm Long Short-Term Memory (LSTM) được giới thiệu bởi Hochreiter và Schmidhuber vào năm 1997 LSTM có khả năng học cầu nối các độ trễ thời gian tối thiểu vượt quá 1000 bước thời gian rời rạc bằng cách áp dụng luồng lỗi không đổi qua các đơn vị "luồng lỗi không đổi" Các đơn vị cổng nhân tạo học cách mở và đóng

23 quyền truy cập vào luồng lỗi không đổi LSTM có tính cục bộ trong không gian và thời gian; độ phức tạp tính toán cho mỗi bước thời gian và trọng số là O

Deep Belief Networks được tiếp nối bởi Deep Boltzmann Machines vào cùng năm 2006 Mạng nơ ron Dropout được phát triển vào năm 2012 bởi Hinton Mạng thần kinh đối nghịch sinh (Generative Adversarial Networks - GANs) là các kiến trúc mạng thần kinh sâu được phát minh vào năm 2014 bởi Goodfellow Mạng thần kinh tổ hợp (Capsule Neural Networks) là các tiến bộ gần đây trong học sâu do Hinton đưa ra

Sự phổ biến của học sâu ngày nay xuất phát chủ yếu từ ba nguyên nhân chính được xác định Thứ nhất, đó là khả năng xử lý mạnh mẽ của chip, như đơn vị GPU (Graphic Processing Unit), đã có một sự tăng đáng kể Điều này cho phép các mô hình học sâu được huấn luyện và triển khai hiệu quả hơn trên cấu trúc phần cứng mạnh mẽ này Thứ hai, chi phí của phần cứng tính toán đã giảm đáng kể, giúp tạo điều kiện thuận lợi cho việc tiếp cận và áp dụng học sâu Cuối cùng, tiến bộ gần đây trong nghiên cứu học máy và xử lý tín hiệu/thông tin đã tạo ra những bước tiến quan trọng trong việc phát triển và tối ưu hóa các thuật toán học sâu Những tiến bộ này đã cung cấp các phương pháp mới và hiệu quả để xử lý dữ liệu và trích xuất thông tin từ đó [26]

1.3.2 Cách thức hoạt động của học sâu

Học sâu (Deep Learning) dựa trên mạng thần kinh nhân tạo (Artificial Neural Networks) để học và hiểu dữ liệu Nó được gọi là "sâu" vì sử dụng mạng nơ-ron với nhiều tầng ẩn (hidden layers), cho phép nó rút trích các đặc trưng phức tạp từ dữ liệu đầu vào

Cách thức hoạt động của học sâu bắt đầu từ xây dựng một mô hình mạng nơ- ron Mô hình này bao gồm các tầng nơ-ron kết nối với nhau bằng các liên kết trọng số Mỗi nơ-ron trong mạng nơ-ron nhận đầu vào từ các nơ-ron ở tầng trước đó và tính toán một giá trị đầu ra dựa trên các trọng số kết nối và hàm kích hoạt (activation function)

Quá trình huấn luyện của học sâu bắt đầu bằng việc đưa dữ liệu huấn luyện vào

24 mô hình Dữ liệu này được chia thành các tập mini-batch và truyền qua mạng nơ-ron để tính toán đầu ra dự đoán Sau đó, sử dụng một hàm mất mát (loss function) để so sánh giữa đầu ra dự đoán và giá trị thực tế của dữ liệu Mục tiêu là điều chỉnh các trọng số của mạng nơ-ron sao cho hàm mất mát đạt được giá trị nhỏ nhất Để điều chỉnh trọng số, học sâu sử dụng thuật toán gradient descent Thuật toán này tính toán đạo hàm của hàm mất mát theo từng trọng số và điều chỉnh các trọng số theo hướng ngược lại của đạo hàm để giảm thiểu hàm mất mát Quá trình này được lặp lại qua nhiều vòng lặp, được gọi là epochs, cho đến khi hàm mất mát đạt được giá trị tối ưu hoặc hội tụ

Một yếu tố quan trọng của học sâu là khả năng rút trích đặc trưng từ dữ liệu Các tầng ẩn trong mạng nơ-ron cho phép mô hình học cách biểu diễn các đặc trưng phức tạp từ dữ liệu đầu vào Ở các tầng đầu tiên, mạng nơ-ron học các đặc trưng cơ bản, như đường viền, góc, hoặc màu sắc đơn giản Khi tiến đến các tầng sâu hơn, mạng nơ-ron có khả năng học được các đặc trưng phức tạp hơn, như khuôn mặt, vật thể, ngôn ngữ tự nhiên, và các quan hệ phức tạp giữa chúng Để đạt được kết quả tốt, học sâu yêu cầu một lượng lớn dữ liệu huấn luyện Điều này đòi hỏi sự hiện diện của hệ thống tính toán mạnh mẽ, như các đơn vị xử lý đồng thời (Graphic Processing Unit - GPU) hoặc cụm máy tính song song (cluster computing), để có thể xử lý các phép tính phức tạp trên dữ liệu lớn

Tổng quan mạng thần kinh tích chập

1.4.1 Giới thiệu về mạng thần kinh tích chập

Mạng thần kinh nhân tạo (Artificial Neural Network) được tạo ra bằng cách mô phỏng cấu trúc và hoạt động của não bộ sinh vật Mô hình này bao gồm các lớp nơ ron được kết nối theo một mô hình cụ thể Trong quá trình huấn luyện, mạng nơ ron nhân tạo hấp thụ kinh nghiệm và sử dụng những kinh nghiệm đó để xử lý thông tin mới [32] Ứng dụng phổ biến của mạng nơ ron nhân tạo là giải quyết các bài toán nhận dạng mẫu và dự đoán Nhờ khả năng học tập và khái quát hóa, mạng thần kinh nhân tạo có thể phân loại đối tượng, nhận dạng hình ảnh, dự đoán kết quả, và thậm

28 chí tạo ra những dự đoán về sự xuất hiện của các sự kiện như động đất Ngoài ra, mạng thần kinh nhân tạo còn có thể được áp dụng trong nhiều lĩnh vực khác như y học, nghệ thuật, tự động hóa và trò chơi điện tử Với sự phát triển của công nghệ, mạng nơ ron nhân tạo ngày càng trở nên quan trọng trong việc giải quyết các vấn đề phức tạp và khám phá những tiềm năng mới

Mạng thần kinh tích chập (CNN - Convolutional Neural Network) là một trong những mô hình mạng học sâu phổ biến nhất hiện nay, với khả năng xuất sắc trong việc nhận dạng và phân loại hình ảnh, thậm chí vượt trội hơn cả con người trong nhiều trường hợp [33] Mô hình này đã và đang được phát triển và áp dụng trong các hệ thống xử lý ảnh quy mô lớn của các công ty như Facebook, Google và Amazon, với mục đích đa dạng như tự động gán nhãn, tìm kiếm ảnh và đề xuất sản phẩm cho người dùng

Sự ra đời của mạng CNN dựa trên ý tưởng cải tiến cách thức mà các mạng nơ- ron truyền thống học thông tin từ hình ảnh Với việc sử dụng các kết nối địa phương giữa các điểm ảnh và các nút, mạng nơ ron truyền thẳng (Feedforward Neural Network) gặp hạn chế đáng kể do kích thước của ảnh Khi kích thước ảnh tăng lên, số lượng kết nối tăng nhanh chóng và dẫn đến một lượng tính toán lớn Ngoài ra, việc sử dụng kết nối đầy đủ cũng gây lãng phí vì thông tin chính thường phụ thuộc vào sự liên quan giữa các điểm ảnh gần nhau, không quan tâm nhiều đến các điểm ảnh xa nhau Mạng CNN ra đời với kiến trúc thay đổi, cho phép xây dựng kết nối chỉ sử dụng một phần cục bộ của ảnh để kết nối với các nút trong lớp tiếp theo, thay vì toàn bộ ảnh như trong mạng nơ ron truyền thẳng Điều này giúp mạng CNN có khả năng hiệu quả hơn trong việc xử lý ảnh, giảm bớt khối lượng tính toán và tận dụng tối đa thông tin quan trọng trong hình ảnh Mô hình này đã mở ra nhiều cánh cửa cho việc ứng dụng học sâu trong lĩnh vực xử lý ảnh và có sự ảnh hưởng sâu rộng trong công nghệ và cuộc sống hàng ngày của chúng ta Mạng thần kinh tích chập (CNN), được giới thiệu lần đầu tiên bởi Fukushima

[34] vào năm 1998, có ứng dụng rộng rãi trong hoạt động nhận dạng [35], [36], phân loại câu [37], nhận dạng văn bản [38], nhận dạng khuôn mặt [39], phát hiện đối tượng

29 và bản địa hóa [38], [40] , đặc tính hình ảnh [41], v.v…

1.4.2 Kiến trúc mạng thần kinh tích chập

Trong một mạng CNN, có một số lớp cơ bản mà chúng ta sử dụng để xây dựng kiến trúc Các lớp này gồm: Lớp tích chập (Convolutional), Lớp kích hoạt phi tuyến ReLU (Rectified Linear Unit), Lớp tổng hợp (Pooling) và Lớp kết nối đầy đủ (Fully- connected) Nhưng chúng ta có thể điều chỉnh số lượng và cách sắp xếp của các lớp này để tạo ra các mô hình huấn luyện phù hợp cho các bài toán khác nhau

Hình 1.8 Kiến trúc cơ bản của một mạng thần kinh tích chập Để thực hiện quá trình huấn luyện (train) và kiểm tra (test) trong mạng thần kinh tích chập, mỗi ảnh đầu vào sẽ trải qua các giai đoạn xử lý khác nhau Đầu tiên, ảnh sẽ được đưa qua các lớp tích chập với bộ lọc (Filter), sau đó là lớp tổng hợp (Pooling), tiếp theo là lớp kết nối đầy đủ (Fully connected layers), và cuối cùng là thực hiện hàm softmax để phân loại đối tượng Quá trình này được mô tả chi tiết trong Hình 1.9, bao gồm từ việc nhận dữ liệu cho đến quá trình phân loại đối tượng

Hình 1.9 Mạng nơ ron với nhiều lớp chập Tầng kết nối đầy đủ tương tự như các mạng nơ ron thông thường, trong khi tầng

30 chập thực hiện các phép tích chập lặp đi lặp lại trên tầng trước Tầng gộp có nhiệm vụ giảm kích thước của mẫu bằng cách áp dụng phép gộp lên các khối 2x2 của tầng trước Trong mạng thần kinh tích chập, các tầng này thường được xếp chồng lên nhau để tạo thành một kiến trúc đầy đủ Dưới đây là một ví dụ minh họa về kiến trúc mạng nơ-ron tích chập đầy đủ

Hình 1.10 Ví dụ về cấu trúc CNN – LeNet – 5

1.4.2.1 Lớp tích chập (Convolutional layer)

Lớp tích chập đóng vai trò quan trọng trong việc nhận dạng các đặc điểm nổi bật từ một bức ảnh đầu vào Bằng cách học từ dữ liệu đầu vào thông qua việc xử lý các ô nhỏ, lớp tích chập nhận biết mối tương quan giữa các điểm ảnh Quá trình này đơn giản được thực hiện thông qua phép toán tích chập, trong đó mỗi ô nhỏ trong ảnh được nhân với một bộ lọc Đầu vào là một ma trận hình ảnh 3 chiều (thể tích) có kích thước (h  w  d)

* Một bộ lọc (fh  fw  d)

* Kết quả đầu ra là thể tích có 3 chiều là (h – fh + 1)  (w – fw + 1)  1

Hình 1.11 Ma trận ảnh nhân ma trận bộ lọc

Ví dụ trong hình 1.12: Xét một phần ảnh có kích cỡ 55 và một ma trận bộ lọc

31 có kích cỡ 33 Sau đó thực hiện tích chập nhân ma trận 55 với ma trận bộ lọc 33 và ra được feature map

Feature map là kết quả hiển thị sau mỗi lần bộ lọc quét qua dữ liệu đầu vào (Input) Cứ mỗi lần quét như vậy, chúng ta sẽ thấy sự xuất hiện của quá trình tính toán được xảy ra Một lớp chứa đầy các nơ ron sử dụng cùng một bộ lọc sẽ xuất ra một Feature map, Feature map làm nổi bật các khu vực trong hình ảnh kích hoạt bộ lọc nhiều nhất

Hình 1.12 Ma trận đầu ra Thực hiện tích chập một ảnh với các bộ lọc khác nhau có thể tạo ra các kết quả khác nhau như phát hiện các đường biên, làm mờ hay làm nét hơn các chi tiết của ví dụ một số bộ lọc phổ biến trong hình 1.13 gồm: identity, edge detection, sharpen, box blur, gaussian blur

Hình 1.13 Một số bộ lọc phổ biến

Bước nhảy (Stride): Là số bước nhảy mỗi lần di chuyển để lấy một phần kích cỡ ảnh đầu vào Khi stride là 1 thì di chuyển bộ lọc đi 1 pixel, stride là 2 thì bước nhảy là 2 pixel Hình 1.14 mô tả quá trình thực hiện tích chập với bước nhảy bằng 2 pixel

* Đường viền ( Padding ): Nhược điểm của stride là không thể cover hết bức ảnh một cách toàn diện Những đặc điểm ngoài biên sẽ được quét ít hơn ở trung tâm Điều này gây mất mát dữ liệu khi các đặc điểm quan trọng của bức ảnh nằm ở ngoài biên Nhược điểm thứ 2 là ảnh sẽ càng ngày càng nhỏ tùy vào bước nhảy của chúng ta, cách giải quyết là thêm một hoặc nhiều lớp biên ngoài cùng với giá trị mỗi pixel bằng 0 sau đó thực hiện tích chập như bình thường

1.4.2.2 Lớp chuyển đổi (ReLU layer)

Lớp chuyển đổi ReLU trong mạng thần kinh tích chập có chức năng quan trọng trong việc đảm bảo tính phi tuyến của mô hình huấn luyện sau khi đã thực hiện một loạt các phép tính toán tuyến tính qua các lớp Tích chập Mục đích của lớp này là giới hạn phạm vi biên độ cho phép của giá trị đầu ra bằng cách sử dụng các hàm kích hoạt phi tuyến như ReLU, sigmoid, tanh và các hàm tương tự

Trong số các hàm kích hoạt phi tuyến, hàm ReLU được lựa chọn do tính đơn giản và tốc độ xử lý nhanh mà vẫn đảm bảo tính toán hiệu quả Hàm ReLU đơn giản chỉ cần chuyển tất cả các giá trị âm thành giá trị 0, trong đó f(x) = max(0, x)

Thường thì lớp ReLU được áp dụng ngay sau lớp Tích chập trong mạng thần kinh tích chập Kết quả đầu ra của lớp ReLU là một ảnh mới có kích thước giống với ảnh đầu vào, và các giá trị điểm ảnh giữ nguyên, chỉ loại bỏ các giá trị âm

1.4.2.3 Lớp tổng hợp (Pooling layer)

Ngôn ngữ lập trình Python cho học máy

Python là một ngôn ngữ lập trình được sử dụng rộng rãi trong các ứng dụng web, phát triển phần mềm, khoa học dữ liệu và máy học (Machine learning) [53] Các nhà phát triển sử dụng Python vì nó hiệu quả, dễ học và có thể chạy trên nhiều nền tảng khác nhau Phần mềm Python được tải xuống miễn phí, tích hợp tốt với tất cả các loại hệ thống và tăng tốc độ phát triển

Python là ngôn ngữ mã nguồn mở, hoàn toàn miễn phí cho bất kỳ ai sử dụng Chúng ta có thể sử dụng Python mà không gặp bất kỳ vấn đề nào và điều đó đưa chúng ta đến tính năng di động và hỗ trợ di động, có nghĩa là bạn có thể viết mã lập trình của bạn và chia sẻ với bất kỳ ai bạn muốn

Ngoài ra, Python hỗ trợ tính năng thêm mã từ các ngôn ngữ khác vào chính nó để chạy hai chức năng, điều đó khiến nó trở nên mạnh mẽ hơn

Python cũng tích hợp tính năng thông dịch từng dòng, điều đó có nghĩa là quản lý bộ nhớ và bộ xử lý trung tâm (Central Processing Unit – CPU) cũng như gỡ lỗi mã trở nên đơn giản hơn nhiều Nếu bạn muốn bắt đầu viết mã, Python có thư viện hỗ trợ rất lớn giúp bạn giải quyết các vấn đề một cách dễ dàng Bạn có thể bắt đầu ngay trên đó mà không cần phải làm nhiều công việc Để tóm lại, Python có nhiều tính năng tuyệt vời cho chúng ta Đây là một số tính năng của Python Programming: đơn giản, mã nguồn mở, di động, hỗ trợ thêm mã từ các ngôn ngữ khác, thông dịch từng dòng, thư viện hỗ trợ phong phú và hướng đối tượng [54]

1.5.2 Các thư viện Python phổ biến hỗ trợ học máy

Thư viện là một tập hợp các mã thường xuyên được sử dụng mà các nhà phát triển có thể bao gồm trong những chương trình Python của họ để không phải lập trình từ đầu Theo mặc định, Python đi kèm với Thư viện chuẩn, chứa rất nhiều các hàm có thể tái sử dụng Ngoài ra, hơn 137.000 thư viện Python có sẵn cho các ứng dụng khác nhau, bao gồm phát triển web, khoa học dữ liệu và máy học (Machine learning)

Python có nhiều thư viện phổ biến và mạnh mẽ được sử dụng rộng rãi trong các lĩnh vực khác nhau Dưới đây là một số thư viện phổ biến của Python:

NumPy là một dự án mã nguồn mở nhằm tạo điều kiện cho tính toán số học trong môi trường ngôn ngữ lập trình Python Dựa trên những nền tảng hoạt động ban đầu của các thư viện Numeric và Numarray, Numpy chính thức ra mắt vào năm 2005 Numpy cam kết duy trì tình trạng mã nguồn mở và miễn phí, phục vụ cộng đồng[55] Thư viện NumPy cung cấp hỗ trợ cho các phép tính số học và đại số tuyến tính Nó là một trong những thư viện quan trọng trong việc làm việc với mảng đa chiều và tính toán khoa học

Pandas cung cấp các công cụ và cấu trúc dữ liệu mạnh mẽ để xử lý và phân tích dữ liệu [56] Nó được sử dụng rộng rãi trong việc làm việc với dữ liệu dạng bảng, như các tệp CSV hoặc các bảng trong cơ sở dữ liệu

Matplotlib là một thư viện giúp tạo ra các đồ thị, biểu đồ trực quan, tạo ra các hình ảnh tĩnh, động và tương tác trong Python [57] Nó hỗ trợ các loại đồ thị khác nhau như đường, cột, scatter, histogram và nhiều loại khác

TensorFlow là một thư viện mạnh mẽ cho việc xây dựng và huấn luyện mô hình học máy, đặc biệt là các mạng nơ-ron [58] Keras là một giao diện cao cấp cho TensorFlow, giúp đơn giản hóa quá trình xây dựng mô hình và huấn luyện

Scikit-learn là một thư viện học máy mã nguồn mở hỗ trợ việc học có giám sát và không giám sát Nó cũng cung cấp nhiều công cụ cho việc tìm mô hình, tiền xử lý dữ liệu, lựa chọn mô hình, đánh giá mô hình, và nhiều tiện ích khác [59]

OpenCV (Open Source Computer Vision) là một thư viện mã nguồn mở cho xử lý ảnh và thị giác máy tính [60] Nó cung cấp các công cụ và thuật toán cho việc nhận dạng đối tượng, xử lý ảnh, phân tích video và nhiều ứng dụng khác liên quan đến thị giác máy tính Đây chỉ là một số thư viện phổ biến của Python và còn rất nhiều thư viện khác hỗ trợ trong việc phát triển ứng dụng và nghiên cứu trong lĩnh vực học máy và khoa học dữ liệu

1.5.3 DjiTelloPy – Bộ thư viện hỗ trợ điều khiển DJI Tello Drone

DjiTelloPy là một bộ thư viện Python mã nguồn mở được phát triển bởi công ty DJI, nhằm hỗ trợ việc điều khiển DJI Tello Drone thông qua giao diện lập trình ứng

41 dụng (API) Điều này cho phép người dùng tạo các ứng dụng tùy chỉnh để điều khiển và tương tác với drone

Bằng cách sử dụng DjiTelloPy, bạn có thể lập trình các chức năng như điều khiển chuyển động của drone, chụp ảnh, quay video, đọc thông tin trạng thái, và thậm chí tạo các chức năng tùy chỉnh khác dựa trên nhu cầu của bạn

DjiTelloPy hỗ trợ các tính năng như điều khiển tốc độ, hướng, độ cao và xoay drone, chụp ảnh và quay video, xem ảnh trực tiếp từ drone, và nhiều tính năng khác

Các công trình nghiên cứu liên quan

Hiện nay, chủ đề về học máy đặc biệt và trí tuệ nhân tạo nói chung đang ngày càng thu hút sự quan tâm rộng rãi Có nhiều nghiên cứu và bài báo từ các tác giả ở cả trong nước và quốc tế đã xuất hiện với đề tài này, và chúng bao phủ nhiều lĩnh vực khác nhau

Trong đề tài “Nghiên cứu về mạng Neural Convolutional, áp dụng vào bài toán nhận dạng đối tượng trong ĩnh vực thị giác máy tính”, tác giả Nguyễn Mạnh Hùng đã bước ứng dụng mô hình mạng thần kinh tích chập để xây dựng mô đun nhận dạng đối tượng với hệ thống đếm người vào/ ra cũng như hệ thống web nhận diện khuôn mặt Kèm với đó, nghiên cứu cũng phân tích và so sánh với hệ thống cũng đang được sử dụng cho chức năng nhận diện đối tượng và nhận diện khuôn mặt trước đây là HOG (Histogram of Oriented Gradients – biểu đồ dốc định hướng) Hệ thống mới được nghiên cứu trong đề tài này có khả năng nhận diện với các dữ liệu lỗi, nhiễu với tỉ lệ chính xác cao hơn so với hệ thống HOG [62]

Tác giả Lê Thị Thu Hằng trong đề tài thạc sĩ “Nghiên cứu về mạng neural tích chập và ứng dựng cho bài toán nhận dạng biển số xe” đã giải quyết bài toán phân loại biển số xe tự động bằng việc ứng dụng mô hình mạng tích cập CNN trong phân lớp ảnh Mô hình xây dựng được với ưu điểm là khả năng tì được vùng biển số và cách ly kí tự với tỉ lệ thành công cao, tỉ lệ nhận dạng có thể đạt tới hơn 70 % với các ảnh biển số sạch sẽ, rõ ràng, không chứa các phụ kiện gắn trên biển [63]

Nghiên cứu về bài toán nhận dạng cử chỉ bàn tay dùng mạng nơ ron tích chập của nhóm tác giả Lê Minh Thành với khả năng nhận diện trên 6 lớp mẫu khác nhau bao gồm “ năm ngón tay khép kín” , “ năm ngón tay mở”, “ cử chỉ của bốn ngón tay mở”, “bàn tay nắm”, “cử chỉ có ba ngón tay mở” và “cử chỉ có hai ngón tay mở” với 27,600 mẫu Kết quả thực nghiệm của quá trình cho thấy hệ thống có thể nhận dạng đạt độ chính xác lên đến 98,6 % [64] Ở quốc tế, “Detection and Classification of Geometric Shape Objects for Industrial Application” là một bài báo phát hiện và phân loại các hình dạng đối tượng vật thể như hình tròn, hình chữ nhật, hình tam giác Mô hình sẽ có khả năng phát hiện nhiều đối tượng từ một hình ảnh, đếm số lượng các đối tượng đã phát hiện, tách những đối tượng này thành các hình ảnh riêng biệt thông qua quá trình chuyển đổi sang mức xám, ngưỡng hóa, phát hiện biên, tìm các điểm góc của đối tượng Quá trình phân loại được thực hiện thông qua ANN (Artificial neural network) và SVM (Support vector machine) bằng cách sử dụng các tập dữ liệu tổng hợp Giải pháp đề xuất này

47 đã đạt được độ chính xác phân loại 95 % bằng ANN và từ 95 % đến khoảng 100 % bằng SVM ANN và SVM đã học cũng có thể phân loại các đối tượng mới được phát hiện từ một hình ảnh [65]

Trong luận văn thạc sĩ “Manoeuvring Drone (Tello ans Tello EDU) Using Body Poses or Gestures”, tác giả Tushar Saini đã tập trung và việc sử dụng các máy bay không người lái Tello và Tello EDU, tạo ra một nền tảng kiểm soát chuyển động của máy bay không người lái thông qua nhận diện tư thế cơ thể con người Nền tảng Tello SDK được sử dụng với nhiều lớp dữ liệu và phương thức nhằm kiểm soát máy bay không người lái Tello và MediaPipe BlazePóe GHUM & GHUML python API cung cấp nền tảng kiến trúc mạng nơ ron tích nhập cho việc ước tính tư thế con người và tùy chỉnh việc ước tính thời gian thực trên các thiết bị di động và thiết bị có cấu hình thấp [66]

Tác giả Chenfan Sun cùng các cộng sự trong quá trình nghiên cứu bài báo

“Object Detection from the Video Taken by Drone via Convolutional Neural Networks” đã dự trên việc nhận diện đối tượng từ video thu được từ máy bay không người lái, thông qua mạng nơ ron tích chập đã cho phép máy bay không người lái nhận diện một số loại đối tượng như tòa nhàm ô tô, cây cỏ và con người Nghiên cứu đã cho thấy kết quả độ chính xác của hai mô hình Single Shot Detector (SSD) và Faster R-CNN đối với tòa nhàm cây cỏ, ô tô và con người rất cao, trung bình trên 85

% và tối đa là 99 % Các mô hình SSD chú tâm nhiều hơn đến tỷ lệ và vị trí lấy mẫu dự đoán hơn là Faster R-CNN, thời gian trung bình của mỗi khung hình là 115 ms, nhưng tỷ lệ nhận diện đối tượng thấp Tuy nhiên, Faster R-CNN chính xác hơn và tìm thấy nhiều đối tượng hơn từ cảnh quan, gần 95% tất cả các đối tượng trong hình ảnh có thể được nhận biết, nhưng thời gian trung bình của mỗi khung hình ít nhất là 140 ms [67] Ở một nghiên cứu khác trong bài báo “Convolutional Neural Network-Based Real-Time Object Detection and Tracking for Parrot AR Drone 2”, tác giả Ali Rohan, Mohammed Rabad và Sung-ho Kim đã trình bày một phương pháp phát hiện và theo dõi đối tượng mục tiêu đang di chuyển hoặc đứng yên cho máy bay không người lái

Parrot AR từ việc ứng dụng mô hình mạng nơ ron tích chập Kết quả nhận diện đối tượng cho thấy rằng CNN phát hiện và phân loại đối tượng với mức độ chính xác cao (98%) Đối với việc theo dõi thời gian thực, thuật toán theo dõi phản ứng nhanh hơn so với các phương pháp thông thường được sử dụng, hiệu quả trong việc theo dõi đối tượng đã được nhận diện mà không mất mục tiêu khỏi tầm nhìn Các tính toán dựa trên một số lần lặp trình bày rằng hiệu suất đạt được cho việc theo dõi mục tiêu là 96,5% [68]

HUẤN LUYỆN THIẾT BỊ BAY KHÔNG NGƯỜI LÁI NHẬN DẠNG VẬT THỂ CÓ DẠNG HÌNH HỌC CƠ BẢN

Tổng quan phương pháp

2.1.1 Sơ đồ tổng thể phương pháp

Phương pháp nghiên cứu của đề tài này bao gồm hai quá trình chính Quá trình đầu tiên là xây dựng và tìm hiểu bộ dữ liệu để huấn luyện mô hình nhận diện vật thể trên DJI Tello Drone Trong giai đoạn này, một bộ dữ liệu chứa các hình ảnh các vật thể có dạng hình học cơ bản như hình tròn, tam giác, hình chữ nhật và ngũ giác đều sẽ được xây dựng Bộ dữ liệu này sẽ được gắn nhãn với các đối tượng tương ứng để huấn luyện mô hình nhận diện

Quá trình thứ hai là huấn luyện DJI Tello Drone để nhận diện và phân loại các vật thể có dạng hình học cơ bản Với việc sử dụng bộ dữ liệu đã xây dựng ở giai đoạn trước, các kỹ thuật học máy và mô hình học sâu như Convolutional Neural Network (CNN) sẽ được áp dụng để huấn luyện drone Mô hình sẽ được huấn luyện trên dữ liệu và được điều chỉnh để nhận diện và phân loại chính xác các vật thể hình học cơ bản trong môi trường bay của DJI Tello Drone

Sơ đồ 2.1 hiển thị đầy đủ sơ đồ tổng thể về phương pháp nghiên cứu của đề tài

Sơ đồ 2.1 Sơ đồ tổng thể phương pháp

2.1.2 Giải thích các bước trong sơ đồ tổng thể phương pháp

Bước tiếp theo trong phương pháp nghiên cứu của đề tài là xây dựng các vật thể đối tượng nghiên cứu Trong nghiên cứu này, đề tài sẽ tập trung vào việc xây dựng vật thể với các hình dạng cơ bản bao gồm hình tròn, hình tam giác, hình chữ nhật và hình ngũ giác đều

Vật thể được dự định xây dựng bằng các nguyên vật liệu thông thường như giấy màu và bìa cứng Bìa cứng sẽ cắt và gấp bìa giấy thành các hình dạng tương ứng, tạo ra các vật thể có kích thước, hình dạng khác nhau và được dán các mảnh giấy màu

50 đỏ, lục lam để tạo ra vật thể với các màu sắc phân biệt rõ ràng khác nhau

Việc xây dựng các vật thể này sẽ cung cấp bộ dữ liệu đa dạng để huấn luyện mô hình nhận diện vật thể trên DJI Tello Drone Điều này giúp mô hình có khả năng nhận diện và phân loại chính xác các vật thể có dạng hình học cơ bản và màu sắc khác nhau trong quá trình bay của drone

2.1.2.2 Xây dựng bộ dữ liệu ảnh nhận diện

Bước tiếp theo trong phương pháp nghiên cứu của đề tài là xây dựng bộ dữ liệu ảnh nhận diện để huấn luyện mô hình Bộ dữ liệu này sẽ được xây dựng với hệ màu trắng đen Trong quá trình nhận diện vật thể, máy bay không người lái sẽ nhận diện các vật thể dưới dạng màu trắng Điều này có nghĩa là các vật thể được nhận diện sẽ hiển thị trong màu trắng trong hình ảnh

Tuy nhiên, để đảm bảo sự nhất quán và tạo sự phân biệt rõ ràng giữa các vật thể và phần còn lại của hình ảnh, tất cả các vật thể khác nằm trong phạm vi nhận diện của máy bay không người lái sẽ được chuyển đổi sang màu đen Điều này giúp tạo ra sự tương phản mạnh mẽ và giúp mô hình nhận diện vật thể dễ dàng phân biệt và tập trung vào các vật thể quan trọng

Việc xây dựng bộ dữ liệu ảnh với hệ màu trắng đen này sẽ giúp đảm bảo rằng mô hình nhận diện vật thể trên DJI Tello Drone có khả năng phân loại và định vị chính xác các vật thể trong một cảnh quan

2.1.2.3 Xây dựng mô hình nhận diện vật thể với CNN

Bước tiếp theo trong phương pháp nghiên cứu là xây dựng mô hình nhận diện vật thể sử dụng mạng thần kinh tích chập (Convolutional Neural Network - CNN)

Mô hình này sẽ được huấn luyện trên bộ dữ liệu ảnh đã được xây dựng trước đó để nhận diện các vật thể có dạng hình học cơ bản như hình tròn, hình tam giác, hình chữ nhật và hình ngũ giác đều

Trong quá trình xây dựng mô hình, chúng tôi sẽ xác định kiến trúc CNN, bao gồm số lượng lớp tích chập, kích thước kernel và số lượng đặc trưng Chúng tôi cũng sẽ tinh chỉnh các thông số khác như hàm kích hoạt, hàm mất mát và thuật toán tối ưu hóa để đạt được hiệu suất tốt nhất trong việc nhận diện vật thể

Sau khi xây dựng mô hình, chúng tôi sẽ tiến hành quá trình huấn luyện bằng cách đưa dữ liệu ảnh vào mô hình và điều chỉnh trọng số của các lớp mạng thần kinh để tối ưu hóa hiệu suất nhận diện Việc này đòi hỏi việc sử dụng một phương pháp tối ưu hóa như gradient descent và kỹ thuật backpropagation để cập nhật trọng số Kết quả của quá trình huấn luyện sẽ là một mô hình CNN có khả năng nhận diện vật thể có dạng hình học cơ bản trên ảnh Mô hình được sử dụng để nhận diện và phân loại các vật thể trong ứng dụng máy bay không người lái

2.1.2.4 Tích hợp mô hình đã được huấn luyện vào DJI Tello drone để phân loại và nhận diện vật thể

Việc tích hợp mô hình nhận diện vật thể sử dụng mạng thần kinh tích chập (Convolutional Neural Network - CNN) là trực tiếp vào DJI Tello Drone để thực hiện nhận diện vật thể Quá trình này giúp drone có khả năng nhận diện và phân loại chính xác các vật thể có dạng hình học cơ bản ngay trong quá trình bay

Tích hợp mô hình CNN trực tiếp vào drone đòi hỏi phần cứng và phần mềm của drone để có thể xử lý hình ảnh và thực hiện các phép nhận diện một cách nhanh chóng và hiệu quả Điều này đảm bảo rằng drone có khả năng thực hiện nhận diện trực tiếp trong thời gian thực, mà không cần truyền hình ảnh về máy tính để xử lý

Quá trình tích hợp mô hình CNN vào drone bao gồm cài đặt phần mềm trên drone và cấu hình các giao thức và API tương ứng Mô hình CNN được tải lên drone và được sử dụng để xử lý dữ liệu hình ảnh trực tiếp từ camera trên drone

Khi drone bay, hình ảnh từ camera sẽ được truyền vào mô hình CNN Mô hình sẽ xử lý hình ảnh và trả về kết quả nhận diện các vật thể có dạng hình học cơ bản Điều này cho phép drone nhận diện và phân loại các vật thể ngay trong quá trình bay mà không cần truyền dữ liệu về máy tính ngoại vi

Mô tả và xây dựng bộ dữ liệu hình ảnh vật thể

2.2.1 Giới thiệu tổng quan về bộ dữ liệu hình ảnh vật thể

Bộ dữ liệu hình ảnh được xây dựng dựa trên với kích thước 240 pixel × 180 pixel với màu sắc trắng đen để có thể phân biệt vật thể chính với các vật còn lại trong khung hình Vật thể cần nhận diện sẽ có màu trắng còn toàn bộ các vật thể còn lại sẽ được chuyển thành màu đen Bộ dữ liệu bao gồm 5 dạng hình học cơ bản bao gồm:

- Hình tròn: Nhận diện vật thể với nhãn là hình tròn (circle) Bộ dữ liệu hình ảnh vật thể có dạng hình tròn bao gồm các hình tròn có kích thước khác nhau từ nhỏ tới lớn và nằm ở đa dạng các vị trí khác nhau trong ảnh để tối ưu khả năng nhận diện hình tròn chính xác

Hình 2.1 Minh họa về bộ dữ liệu hình tròn (circle)

- Hình tam giác: Nhận diện vật thể với nhãn là hình tam giác (triangle) Bộ dữ liệu hình ảnh vật thể có dạng hình tam giác bao gồm nhiều dạng hình tam giác khác nhau như tam giác nhọn, tam giác tù, tam giác cân, tam giác vuông với nhiều kích thước đa dạng khác nhau từ nhỏ tới lớn và kèm với đó là nhiều góc độ quay và vị tí khác nhau của hình tam giác trong hình ảnh bộ dữ liệu

Hình 2.2 Minh họa về bộ dữ liệu hình tam giác (triangle)

- Hình chữ nhật: Nhận diện vật thể với nhãn là hình chữ nhật (rectangle) Bộ dữ liệu hình ảnh vật thể có dạng hình chữ nhật bao gồm nhiều dạng hình chữ nhật với tỉ lệ chiều dài và chiều rộng khác nhau, nằm ở nhiều vị trí khác nhau trong khung ảnh

Hình 2.3 Minh họa về bộ dữ liệu hình chữ nhật (rectangle)

- Hình ngũ giác đều: Nhận diện vật thể với nhãn là hình ngũ giác đều (pentagon)

Bộ dữ liệu hình ảnh vật thể có dạng hình ngũ giác đều bao gồm nhiều hình ngũ giác đều với kích thước khác nhau, với nhiều góc độ quay và vị trí khác nhau trong khung ảnh

Hình 2.4 Minh họa về bộ dữ liệu hình ngũ giác đều (pentagon)

2.2.2 Xây dựng thuật toán hỗ trợ việc xây dựng bộ dữ liệu hình ảnh Đầu tiên, một hình ảnh gốc với vật thể dạng hình học cơ bản nằm ở vị trí góc trên bên trái được xây dựng bằng ứng dụng Draw.io [69] Từ ứng dụng trên, bộ dữ liệu hình ảnh với dạng hình học hình tròn, hình tam giác, hình chữ nhật, hình ngũ giác đều ban đầu nằm góc trên bên trái được xây dựng

Sau đó, một thuật toán hỗ trợ việc xây dựng bộ dữ liệu ảnh trong đề tài được

55 thực hiện bằng việc sử dụng một đoạn mã code Python Mã này sử dụng thư viện OpenCV và matplotlib để xử lý và hiển thị hình ảnh, tạo ra các hình ảnh nhằm di chuyển vật thể trong khung ảnh sang phải, đi xuống phía dưới và cả sang phải đi xuống phía dưới khung hình ảnh Phần thuật toán này sẽ được biểu diễn bằng các mã code đính kèm sau đây

// Đọc ảnh đầu vào img = cv2.imread("")

// Chuyển ảnh sang ảnh xám gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

// Áp dụng ngưỡng để chuyển đổi sang ảnh nhị phân blackAndWhiteImage = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)

// Lấy kích thước của ảnh nhị phân height, width = blackAndWhiteImage.shape

// Di chuyển ảnh sang phải for i in range(1, 80):

// Tạo một ảnh mới để lưu trữ ảnh đã được di chuyển img_new = blackAndWhiteImage.copy()

// Duyệt qua từng pixel theo hàng và cột (theo chiều từ phải sang trái) for h in range(height): for w in range(width - 1, -1, -1):

// Kiểm tra nếu pixel không phải là màu đen if blackAndWhiteImage[h][w] != 0:

// Di chuyển pixel sang phải

// nếu di chuyển sang phải 10 pixels chưa vượt qua giới hạn ảnh

// điểm ảnh hiện tại đổi sang màu đen img_new[h][w] = 0

// điểm ảnh ở vị trí dịch chuyển sang 10 pixel sang màu trắng img_new[h][w + 10] = 255

// nếu di chuyển sang phải 10 pixels là vượt qua giới hạn ảnh else:

// điểm ảnh ở vị trí hiện tại đổi sang màu đen img_new[h][w] = 0

// Lưu ảnh mới vào tệp file_name = "" + str(i) + ".jpg" cv2.imwrite(file_name, img_new)

Thuật toán 2.1 Mã code mô tả thuật toán di chuyển hình ảnh vật thể sang phải // Đọc ảnh đầu vào img = cv2.imread("")

// Chuyển ảnh sang ảnh xám gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

// Áp dụng ngưỡng để chuyển đổi sang ảnh nhị phân blackAndWhiteImage = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)

// Lấy kích thước của ảnh nhị phân height, width = blackAndWhiteImage.shape

// Di chuyển ảnh xuống phía dưới for i in range(1, 30):

// Tạo một ảnh mới để lưu trữ ảnh đã được di chuyển

// Duyệt qua từng pixel theo hàng (từ dưới lên trên) for h in range(height - 1, -1, -1):

// Duyệt qua từng pixel theo cột for w in range(width):

// Kiểm tra nếu pixel không phải là màu đen if blackAndWhiteImage[h][w] != 0:

// Di chuyển pixel xuống phía dưới

// Nếu chuyển xuống phía dưới 10 pixel không đi qua giới hạn của ảnh if h + 10 < height:

// điểm ảnh hiện tại đổi sang màu đen img_new[h][w] = 0

// điểm ảnh ở vị trí dịch chuyển xuống 10 pixel sang màu trắng img_new[h + 10][w] = 255

// Nếu chuyển xuống phía dưới 10 pixel đi qua giới hạn của ảnh else:

// điểm ảnh hiện tại đổi sang màu đen img_new[h][w] = 0

// Lưu ảnh mới vào tệp file_name = "" + str(i) + ".jpg" cv2.imwrite(file_name, img_new)

Thuật toán 2.2 Mã code mô tả thuật toán di chuyển hình ảnh vật thể xuống phía dưới // Đọc các ảnh đầu vào của các hình ảnh sang phải for j in range(1, 22): img = cv2.imread("" + str(j) + ".jpg")

// Chuyển ảnh sang ảnh xám gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

// Áp dụng ngưỡng để chuyển đổi sang ảnh nhị phân blackAndWhiteImage = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)

// Lấy kích thước của ảnh nhị phân height, width = blackAndWhiteImage.shape

// Di chuyển ảnh xuống phía dưới for i in range(1, 16):

// Tạo một ảnh mới để lưu trữ ảnh đã được di chuyển img_new = blackAndWhiteImage.copy()

// Duyệt qua từng pixel theo hàng (từ dưới lên trên) for h in range(height - 1, -1, -1):

// Duyệt qua từng pixel theo cột for w in range(width):

// Kiểm tra nếu pixel không phải là màu đen if blackAndWhiteImage[h][w] != 0:

// Di chuyển pixel xuống phía dưới

// Nếu di chuyển ảnh xuống dưới 10 pixel không đi qua giới hạn của ảnh if h + 10 < height:

// điểm ảnh hiện tại đổi sang màu đen img_new[h][w] = 0

// điểm ảnh ở vị trí dịch chuyển xuống 10 pixel sang màu trắng img_new[h + 10][w] = 255

// Nếu chuyển xuống phía dưới 10 pixel đi qua giới hạn của ảnh else:

// điểm ảnh hiện tại đổi sang màu đen img_new[h][w] = 0 // Đổi thành màu đen

// Lưu ảnh mới vào tệp file_name = ""-" + str(i) + ".jpg" cv2.imwrite(file_name, img_new)

Thuật toán 2.3 Mã code mô tả thuật toán di chuyển hình ảnh vật thể vừa sang phải và vừa xuống phía dưới Sau khi tiến hành xây dựng bộ ảnh dữ liệu bằng sự hỗ trợ của các thuật toán trên, cần tiến hành loại bỏ một số hình ảnh không phù hợp hoàn toàn với yêu cầu là hình ảnh vật thể được giữ nguyên vẹn trong khung hình

Phương pháp kết hợp việc di chuyển hình ảnh và lọc bỏ những hình ảnh không phù hợp, giúp xây dựng bộ ảnh chính xác và đáng tin cậy cho quá trình chuẩn bị huấn luyện và xây dựng mô hình mạng thần kinh tích chập CNN để nhận diện vật thể có dạng hình học cơ bản.

Ứng dụng thuật toán mạng thần kinh tích chập trong việc giải quyết bài toán nhận diện vật thể có dạng hình học cơ bản

Phát triển mô hình và phương pháp huấn luyện phù hợp để thiết bị bay không người lái có nhận diện các vật thể có dạng hình tròn, hình chữ nhật, hình tam giác và hình ngũ giác đề Mô hình này sử dụng mạng thần kinh tích chập (CNN) để phân loại, nhận diện các vật thể với các dạng hình học cơ bản

Sử dụng mạng thần kinh tích chập (CNN) phù hợp và có độ chính xác cao để huấn luyện thiết bị bay không người lái nhận diện vật thể dựa trên thông tin từ hình ảnh Mạng CNN sẽ học cách nhận biết và phân loại các hình ảnh chứa vật thể với các dạng hình học cơ bản khác nhau

Sử dụng mạng thần kinh tích chập (CNN) trong việc hỗ trợ thiết bị bay không người lái (drone) nhận diện vật thể với các dạng hình học cơ bản:

Convolutional Neural Network (CNN) là một loại kiến trúc Deep Learning (học sâu) và là một công cụ được sử dụng để phân loại hình ảnh Dữ liệu được sử dụng

60 cho CNN đào tạo có thể được hiểu là một hình ảnh, và hình ảnh có thể được hiểu là một ma trận ba chiều với các hàng, cột và các kênh RGB – red green blue (đỏ - lục – lam)

Mô hình CNN bao gồm ba lớp tích chập hai chiều (conv2D) và ba lớp tổng hợp tối đa (maxpool) Mục tiêu của đề tài là đề xuất một phương pháp hỗ tợ thiết bị bay không người lái nhận diện các vật thể có dạng hình học cơ bản như hình tròn, hình chữ nhật, hình tam giác, hình ngũ giác đều với khả năng được thực hiện trong thời gian thực Do đó, đề tài xem xét kiến trúc CNN cơ bản vì sự phức tạp về thời gian Tổng thể kiến trúc của mô hình CNN được minh họa như trong Hình 2.5, và các chi tiết của cấu hình mô hình cũng như số lượng các tham số được liệt kê trong Bảng 2.5 Hình ảnh có kích thước 240 × 180 × 1 được sử dụng làm lớp đầu vào của mô hình mạng thần kinh tích chập CNN

Hình 2.5 Tổng thể kiến trúc CNN được sử dụng

Bảng 2.4 Cấu hình mô hình CNN

Layer Network Description Output size

Input Bộ dữ liệu ảnh 240×180×1 conv2D1 32 filters 3×3, stride 1 240×180×32

61 maxpool1 pool size 2×2, stride 2 120×90×32 conv2D2 64 filters 3×3, stride 1 120×90×64 maxpool2 pool size 2×2, stride 2 60×45×64 conv2D3 128 filters 3×3, stride 1 60×45×128 maxpool3 pool size 2×2, stride 2 30×22×128 fc1 flatten 84480 fc2 fully connected layer 128 fc3 fully connected layer 64 softmax softmax layer 4

Lớp conv2D đầu tiên là bộ lọc 32 kênh với bước nhảy (2, 2) và kích thước bộ lọc là 3 × 3 Sau đó, thông tin đi qua một lớp chuẩn hóa hàng loạt và đơn vị tuyến tính được chỉnh sửa (ReLU), đó là một lớp kích hoạt (activation function) Từ Kiến trúc CNN, số lượng tham số có thể học được (trainable params) là 10.914.886 Số lượng epochs được sử dụng để huấn luyện là 10, số lượng batch size là 32 Bộ dữ liệu gốc được chia thành 80 % cho bộ bộ dữ liệu huấn luyện (training dataset) và 20 % được dùng để làm bộ dữ liệu kiểm thử (validation dataset).

Nhận diện vật thể có dạng hình học cơ bản thông qua camera

Xây dựng phương pháp nhận diện vật thể hỗ trợ cho thiết bị bay không người lái (drone) thông qua camera

Hình ảnh từ camera của drone sẽ được chuyển thành hệ ảnh màu đen trắng bằng cách nhận diện 1 trong 3 màu sắc đặc trưng (đỏ, lục, lam) sau đó chuyển thành màu trắng phần còn lại trong khung hình sẽ được chuyển thành màu đen Các vật thể được xây dựng dựa trên 1 trong 3 màu sắc này để drone có thể nhận diện vật thể hình tròn, hình chữ nhật, hình tam giác hay hình ngũ giác đều, đề tài này cũng yêu cầu không gian xung quanh không có 1 trong 3 màu này Ví dụ, nếu chọn nhận diện màu đỏ thì vật thể phải có màu đỏ và xung quanh không được có màu đỏ (vẫn có thể có màu lục, lam)

Sau khi nhận diện vật thể và chuyển khung hình camera của drone thành hệ màu

62 đen trắng, drone sẽ nhận diện và gán nhãn cho vật thể dựa trên 1 trong 4 dạng hình học cơ bản là hình tròn, hình tam giác, hình chữ nhật hay hình ngũ giác đều

KẾT QUẢ THỰC NGHIỆM VÀ BÀN LUẬN

Kết quả thực nghiệm

Phần này sẽ tiến hành phân tích và bàn luận kết quả của quá trình huấn luyện mô hình mạng thần kinh tích chập (CNN) trên tập dữ liệu Kết quả này sẽ trình bày dưới dạng các chỉ số về độ lỗi và độ chính xác trên tập huấn luyện và tập kiểm tra, cùng với thời gian xử lý trung bình mỗi mẫu

Hình 3.1 Hình ảnh kết quả huấn luyện

- Trong hình 3.1, kết quả nhận thấy được: o Tập huấn luyện bao gồm 101380 mẫu và tập kiểm thử bao gồm 25345 mẫu o Loss (độ lỗi): Là điểm số thể hiện mức độ sai lệch giữa dự đoán của mô hình và giá trị thực tế Thường là mục tiêu để được giảm thiểu trong quá trình huấn luyện o Accuracy (độ chính xác): Tỷ lệ phần trăm các dự đoán đúng trên tổng số mẫu Đây là một chỉ số quan trọng để đánh giá hiệu suất của mô hình o Trong epoch (chu kỳ huấn luyện) đầu tiên, loss trên tập huấn luyện là 0,2124 và accuracy là 0,9132 Điều này thể hiện rằng mô hình đã bắt đầu với một mức độ khá tốt trên tập huấn luyện o Qua các epoch (chu kỳ huấn luyện) tiếp theo, loss trên tập huấn luyện giảm đáng kể xuống 0,0056; còn accuracy tăng lên 0,9986 Điều này cho thấy mô hình đang học rất tốt và đã thể hiện khả năng dự đoán rất chính xác

64 Đồ thị 3.1 Đồ thị biểu diễn kết quả huấn luyện của mô hình CNN Kết quả của mô hình sau mỗi epoch đã được ghi lại và trình bày trong bảng 3.1 dưới đây:

Bảng 3.1 Kết quả huấn luyện

Epoch Độ Lỗi (Loss) trên Tập Huấn

Luyện Độ Chính Xác (Accuracy) trên Tập Huấn Luyện Độ Lỗi (Loss) trên Tập Kiểm Tra Độ Chính Xác (Accuracy) trên Tập Kiểm Tra

Từ kết quả trên bảng 3.1 cho thấy mô hình CNN đã đạt được hiệu suất đáng kể trong quá trình huấn luyện Kích thước độ lỗi trên cả tập huấn luyện và tập kiểm tra giảm theo từng epoch, đồng thời độ chính xác tăng lên một cách ấn tượng Đặc biệt, mô hình đã đạt đến mức độ chính xác cao hơn 99 % trên tập kiểm tra, cho thấy khả năng phân loại chính xác của mô hình trên các dữ liệu mới

Một điểm đáng chú ý khác là mô hình không có dấu hiệu quá khớp (overfitting), mặc dù độ chính xác trên tập huấn luyện đã đạt mức rất cao Điều này cho thấy mô hình có khả năng tổng quát hóa tốt trên dữ liệu không được sử dụng trong quá trình huấn luyện

Thời gian trung bình mỗi mẫu xử lý qua mô hình trong mỗi epoch là khoảng

433 microseconds (us/sample) Thời gian này cho thấy mô hình đang được huấn luyện một cách hiệu quả và có khả năng xử lý nhanh chóng

Bảng 3.2 Kết quả mô hình phân loại

- Kết quả mô hình phân loại được thể hiện trong bảng 3.2 cho thấy chỉ số precision, recall, f1-score và support, từ việc phân tích các chỉ số cho thấy các các kết quả sau: o Chỉ số precision (độ chính xác) đo lường tỷ lệ các dự đoán đúng về một lớp cụ thể trên tổng số các dự đoán của lớp đó Trong trường hợp này, tất cả các lớp ("circle", "triangle", "rectangle", "pentagon") đều có giá trị precision bằng 1.00, nghĩa là tất cả các dự đoán đều đúng cho tất cả các lớp

66 o Chỉ số recall (độ nhạy) đo lường tỷ lệ các dự đoán đúng về một lớp cụ thể trên tổng số mẫu thực tế thuộc lớp đó Tương tự như precision, tất cả các lớp đều có recall bằng 1,00, chỉ ra rằng tất cả các mẫu thực tế của các lớp đều được dự đoán chính xác o Chỉ số F1-score kết hợp giữa precision và recall và thường được sử dụng để đánh giá hiệu suất của mô hình phân loại Với precision và recall đạt giá trị 1.00, F1-score cũng sẽ đạt giá trị 1,00 cho tất cả các lớp o Chỉ số Support thể hiện số lượng mẫu thực tế thuộc mỗi lớp Trong trường hợp này, các lớp "circle", "triangle", "rectangle", và "pentagon" có số lượng mẫu tương ứng là 19411, 36372, 31990 và 38952 o Chỉ số Accuracy (độ chính xác tổng thể) là tỷ lệ phần trăm các dự đoán đúng trên tổng số mẫu Trong bảng 3.2, accuracy là 1.00, tức là tất cả các mẫu đều được dự đoán chính xác o Macro Average và Weighted Average: Cả hai chỉ số này tính trung bình của các chỉ số precision, recall và f1-score qua tất cả các lớp Trong trường hợp này, vì tất cả các lớp đều có giá trị precision, recall và f1-score là 1,00, nên cả hai macro average và weighted average cũng sẽ là 1,00

Kết quả đánh giá từ bảng 3.2 cho thấy mô hình phân loại đã thể hiện hiệu suất ấn tượng trên toàn bộ các lớp dữ liệu Độ chính xác cao của precision, recall và f1- score cho thấy mô hình có khả năng phân loại chính xác mọi trường hợp Số lượng mẫu thực tế trong từng lớp cũng thể hiện mức độ đa dạng và đại diện của tập dữ liệu

Biểu đồ 3.1 Ma trận nhầm lẫn không chuẩn hóa (Unnormalized Confusion Matrix) và ma trận nhầm lẫn chuẩn hóa (Normalized Confusion Matrix)

Từ biểu đồ 3.1, các ma trận không chuẩn hóa và không chuẩn hóa thể hiện sự tương quan giữa kết quả dự đoán và kết quả thực tế trên tập dữ liệu kiểm tra Từ việc phân tích chi tiết về biểu đồ màu sắc và đường chéo chính của ma trận, hiệu suất phân loại của mô hình được đánh giá cụ thể Đối với ma trận nhầm lẫn không chuyển hóa (Unnormalized Confusion Matrix), các ô màu đậm biểu thị giá trị cao và màu sắc đậm hơn trên đường chéo chính thể hiện giá trị lớn hơn Ma trận trên cho thấy các ô kết quả dự đoán chính xác màu đậm đều tập trung trên đường chéo chính, các ô kết quả còn lại có màu sắc nhạt và các dự đoán sai lẫn nhau giữa các lớp là rất ít Đối với ma trận nhầm lẫn chuẩn hóa (Normalized Confusion Matrix), các ô trên đường chéo chính được màu sắc đậm thể hiện giá trị 1.00, chỉ ra rằng mô hình đã dự đoán chính xác cho tất cả các mẫu trong từng lớp Các ô còn lại, có giá trị 0.00 và màu sắc nhạt, cho thấy rằng không có dự đoán sai lẫn giữa các lớp

Từ kết quả phân tích ma trận nhầm lẫn trên, mô hình trí tuệ nhân tạo hỗ trợ DJI Tello drone nhận diện vật thể có dạng hình tròn, hình chữ nhật, hình tam giác, hình ngũ giác đều có khả năng dự đoán chính xác và độ tin tưởng về khả năng phân loại của mô hình trên

3.1.1 Kết quả nhận diện vật thể hình chữ nhật

- Kết quả nhận diện vật thể hình chữ nhật:

Hình 3.2 Kết quả nhận diện vật thể hình chữ nhật o Độ chính xác: Kết quả thử nghiệm trên 50 hình ảnh vật thể với tỷ lệ giữa chiều dài và chiều rộng khác nhau và vật thể nằm ở nhiều vị trí trong khung hình thì khả năng nhận diện hình dạng vật thể là gần như chính xác o Thời gian phát hiện của mô hình CNN: khoảng 80 mili giây

3.1.2 Kết quả nhận diện vật thể hình tam giác

- Kết quả nhận diện vật thể hình tam giác:

Hình 3.3 Kết quả nhận diện vật thể hình tam giác o Độ chính xác: Kết quả thử nghiệm trên 50 hình ảnh vật thể với nhiều hình dạng tam giác khác nhau như tam giác cân, tam giác vuông, tam giác tù, tam giác nhọn và vật thể nằm ở nhiều vị trí trong khung hình thì khả năng nhận diện hình dạng vật thể là gần như chính xác o Thời gian phát hiện của mô hình CNN: khoảng 80 mili giây

3.1.3 Kết quả nhận diện vật thể hình tròn

- Kết quả nhận diện vật thể hình tròn:

Hình 3.4 Kết quả nhận diện vật thể hình tròn o Độ chính xác: Kết quả thử nghiệm trên 50 hình ảnh vật thể nằm ở nhiều vị trí khác nhau trong khung hình camera drone cho kết quả nhận diện hình dạng vật thể gần như chính xác o Thời gian phát hiện của mô hình CNN: khoảng 80 mili giây

3.1.4 Kết quả nhận diện vật thể hình ngũ giác đều

- Kết quả nhận diện vật thể hình ngũ giác đều:

Hình 3.5 Kết quả nhận diện vật thể hình ngũ giác đều o Độ chính xác: Kết quả thử nghiệm trên 50 hình ảnh vật thể nằm ở nhiều vị trí khác nhau trong khung hình camera drone cho kết quả nhận diện hình dạng vật thể gần như chính xác o Thời gian phát hiện của mô hình CNN: khoảng 80 mili giây

Ngày đăng: 27/04/2024, 15:08

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN