1. Trang chủ
  2. » Luận Văn - Báo Cáo

xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người

66 0 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 Ứng dụng Trí Tuệ Nhân Tạo Nhận Dạng Cử Chỉ Bàn Tay Người
Tác giả Trần Hồng Thu
Người hướng dẫn TS. Mai Xuân Tráng
Trường học Trường Đại Học Phenikaa
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 66
Dung lượng 3,55 MB

Nội dung

Tính cấp thiết của đề tài: Đề tài thể hiện năng lực của sinh viên trong tiếp cận, học hỏi, và thực hành với các thuật toán Trí tuệ nhân tạo và các công cụ để xây dựng một ứng dụng đơn gi

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC PHENIKAA

ĐỒ ÁN TỐT NGHIỆP

XÂY DỰNG ỨNG DỤNG TRÍ TUỆ NHÂN TẠO NHẬN DẠNG CỬ CHỈ BÀN TAY NGƯỜI

Sinh viên: Trần Hồng Thu

Mã số sinh viên: 19010031 Khóa: K13 Ngành: Công nghệ thông tin Hệ: Chính quy Giảng viên hướng dẫn: TS Mai Xuân Tráng

Trang 2

TRƯỜNG ĐẠI HỌC PHENIKAA

ĐỒ ÁN TỐT NGHIỆP

XÂY DỰNG ỨNG DỤNG TRÍ TUỆ NHÂN TẠO NHẬN DẠNG CỬ CHỈ BÀN TAY NGƯỜI

Sinh viên: Trần Hồng Thu

Mã số sinh viên: 19010031 Khóa: K13 Ngành: Công nghệ thông tin Hệ: Chính quy Giảng viên hướng dẫn: TS Mai Xuân Tráng

Hà Nội – Năm 2024

Copies for internal use only in Phenikaa University

Trang 3

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC PHENIKAA

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập - Tự do - Hạnh phúc

NHẬN XÉT ĐỒ ÁN/KHÓA LUẬN TỐT NGHIỆP

CỦA GIẢNG VIÊN HƯỚNG DẪN

Giảng viên hướng dẫn: TS Mai Xuân Tráng Bộ môn: Khoa học máy tính

Tên đề tài: Xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người

Sinh viên thực hiện: Trần Hồng Thu Lớp: K13-CNTT-KHDL

NỘI DUNG NHẬN XÉT

I Nhận xét ĐAKLTN:

Nhận xét về hình thức: Đồ án tốt nghiệp có bố cục tốt, rõ ràng với các chương và mục tiêu các chương rõ ràng cho một dự án phát triển phần mềm Nội dung các chương được sắp xếp khoa học Đinh dạng các chương, mục, hình ảnh đúng chuẩn

Tính cấp thiết của đề tài: Đề tài thể hiện năng lực của sinh viên trong tiếp cận, học hỏi, và thực hành với các thuật toán Trí tuệ nhân tạo và các công cụ để xây dựng một ứng dụng đơn giản để nhận diện cử chỉ bàn tay người Việc thực hiện đề tài này giúp sinh viên hiểu được quy trình thực hiện một sản phẩm sử dụng công nghệ thông tin để phục

vụ lĩnh vực khác

Mục tiêu của đề tài: Mục tiêu của đề tài là xây dựng hệ thống thông minh sử dụng các thuật toán học sâu để nhận diện cử chỉ bàn tay người, phục vụ trong các tác vụ trong lớp học

Nội dung của đề tài: Đề tài thực hiện việc nghiên cứu và sử dụng các thuật toán học sâu (Yolo, VGG) để xây dựng một ứng dụng thông minh đơn gian Sinh viên đã tiến hành khảo sát yêu cầu, phân tích, thiết kế và xây dựng hệ thống Sinh viên tiến hành thu tập dữ liệu, gắn nhãn dữ liệu và huấn luyện các mô hình học sâu

Tài liệu tham khảo: Tài liệu tham khảo đầy đủ, được tổ chức đúng chuẩn

Phương pháp nghiên cứu: Sinh viên tiến định nghĩa các cử chỉ tay người, tiến hành thu tập dữ liệu và gắn nhãn cho các cử chỉ Sử dụng dữ liệu để huấn luyện và tối ưu các mô hình học sâu Sử dụng các mô hình đã huấn luyện để xây dựng ứng dụng web nhận diện cử chỉ bàn tay người

Tính sáng tạo và ứng dụng: Sinh viên sáng tạo, chủ động phát triển các chức năng

Copies for internal use only in Phenikaa University

Trang 4

quan trọng trong hệ thống Dự án có tính ứng dụng trong thực tiễn

II Nhận xét tinh thần và thái độ làm việc của sinh viên:

Sinh viên có thái độ và tinh thần làm việc tốt, luôn có ý thức học hỏi, và tự giác báo cáo tiến độ cho giảng viên hướng dẫn Có ý thức hoàn thành hết các yêu cầu được giao về chức năng của hệ thống

III Kết quả đạt được:

Đồ án đáp ứng các yêu cầu về mặt phân tích, thiết kế và phát triển hệ thống, xây dựng mô hình demo và đáp ứng được cơ bản các yêu cầu của giảng viên hướng dẫn

Đồ án đáp ứng yêu cầu của đồ án tốt nghiệp ngành Công nghệ thông tin

IV Kết luận: Đồng ý cho bảo vệ: Không đồng ý cho bảo vệ:

Hà Nội, ngày 21 tháng 3 năm 2024

Trang 5

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC PHENIKAA

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập - Tự do - Hạnh phúc

NHẬN XÉT ĐỒ ÁN/KHÓA LUẬN TỐT NGHIỆP

CỦA GIẢNG VIÊN PHẢN BIỆN

Giảng viên phản biện: Bộ môn: Khoa học máy tính

Tên đề tài: Xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người

Sinh viên thực hiện: Trần Hồng Thu Lớp: K13-CNTT-KHDL

Giảng viên hướng dẫn: TS Mai Xuân Tráng

NỘI DUNG NHẬN XÉT I Nhận xét ĐAKLTN: - Bố cục, hình thức trình bày:

- Đảm bảo tính cấp thiết, hiện đại, không trùng lặp:

- Nội dung:

- Mức độ thực hiện:

II Kết quả đạt được:

III Ưu nhược điểm:

IV Kết luận: Đồng ý cho bảo vệ: Không đồng ý cho bảo vệ: Hà Nội, ngày tháng năm 20

GIẢNG VIÊN PHẢN BIỆN

(Ký, ghi rõ họ tên)

Copies for internal use only in Phenikaa University

Trang 6

LỜI CAM ĐOAN

Tên tôi là: TRẦN HỒNG THU

Mã sinh viên: 19010031 Lớp: CNTT-KHDL K13 Ngành: Công nghệ thông tin Tôi đã thực hiện đồ án/khóa luận tốt nghiệp với đề tài:

Xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người

Tôi xin cam đoan đây là đề tài nghiên cứu của riêng tôi và được sự hướng dẫn của: TS Mai Xuân Tráng

Các nội dung nghiên cứu, kết quả trong đề tài này là trung thực và chưa được các tác giả khác công bố dưới bất kỳ hình thức nào Nếu phát hiện có bất kỳ hình thức gian lận nào tôi xin hoàn toàn chịu trách nhiệm trước pháp luật

TS Mai Xuân Tráng Trần Hồng Thu

Copies for internal use only in Phenikaa University

Trang 7

Trong quá trình làm đồ án, em đã cố gắng hết mình, vì thời gian có hạn, khả năng nghiên cứu và kinh nghiệm thực tế còn hạn chế nên bài báo cáo sẽ có nhiều thiếu sót

Em rất mong nhận đƣợc sự đóng góp cũng nhƣ cảm thông, chia sẻ của quý Thầy cô và các bạn để em có điều kiện bổ sung, nâng cao kiến thức tốt hơn cho việc học tập, nghiên cứu và công việc sau này

Cuối cùng em kính chúc quý Thầy cô dồi dào sức khỏe để tiếp tục sự nghiệp cao quý của mình và truyền đạt nhiều kiến thức cho thế hệ mai sau

Em xin trân trọng cảm ơn!

Hà Nội, ngày 21 tháng 3 năm 2024

Sinh viên thực hiện Trần Hồng Thu

Copies for internal use only in Phenikaa University

Trang 8

MỤC LỤC

Danh sách hình vẽ viii

Danh sách bảng – biểu đồ x

Danh sách tên viết tắt xi

MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 2

1.1 Giới thiệu về đề tài 2

1.1.1 Đặt vấn đề 2

1.1.2 Mục tiêu nghiên cứu 3

1.1.3 Phương pháp nghiên cứu 4

1.2 Khái niệm về cử chỉ tay 4

1.3 Phân tích bài toán nhận diện vùng tay 7

1.4 Phân tích bài toán phân loại cử chỉ tay 8

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 10

2.1 Deep learning 10

2.2 Thị giác máy tính 11

2.1.1 Khái niệm về thị giác máy tính 11

2.1.2 Các bài toán lớn trong thị giác máy tính 13

2.1.3 Thư viện OpenCV 15

2.3 VGG-16 17

2.4 Object Detection 18

2.5 YOLO 19

2.6 FLASK - API 26

CHƯƠNG 3: GIẢI PHÁP VÀ TRIỂN KHAI THỰC NGHIỆM 29

3.1 Lựa chọn giải pháp 29

3.1.1 Giải pháp 29

3.1.2 Thuật toán và hướng giải quyết 31

3.2 Triển khai thực nghiệm 33

3.2.1 Bài toán nhận diện vùng tay 33 Copies for internal use only in Phenikaa University

Trang 9

3.2.2 Bài toán phân loại cử chỉ tay 40

3.2.3 Triển khai và deploy flask web app 47

CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 51

4.1 Kết luận 51

4.2 Hướng phát triển 52

TÀI LIỆU THAM KHẢO 53

Copies for internal use only in Phenikaa University

Trang 10

Hình 2.3: Hình ảnh minh họa về nhận diện đối tượng (Object Detection)

Hình 2.4: Hình minh họa về kết quả của Phân loại hình ảnh Image Classification

Hình 2.5: Hình ảnh minh họa về Phân tích vùng (Image Segmentation)

Hình 2.6: Hình ảnh minh họa về Nhận diện khuôn mặt (Face Detection)

Hình 2.7: Hình ảnh minh họa về Theo dõi đối tượng (Object Tracking)

Hình 2.8: OpenCV

Hình 2.9: Kiến trúc VGG-16

Hình 2.10: Khái quát về YOLO

Hình 2.11: Kiến trúc output của mô hình YOLO

Hình 2.12: Xác định anchor box cho một vật thể

Hình 2.13: Thời gian YOLO phát triển ra mắt các phiên bản

Hình 2.14: So sánh số lượng tham số đầu vào (Parameters) và Tốc độ xử lý ảnh (nguồn: Hình ảnh từ kho lưu trữ Ultralytics YOLOv8)

Hình 2.15: Kiến trúc mô hình YOLOv8

Hình 2.16: Cấu trúc Luồng xử lý

Hình 3.1: Cấu trúc luồng xử lý của hệ thống

Hình 3.2: Một số dữ liệu của bài toán nhận diện vùng tay

Hình 3.3: Ví dụ về data của bài toán nhận diện vùng tay

Hình 3.4: Thực hiện gán nhãn

Hình 3.5: Thư mục chứa ảnh và label của từng ảnh

Hình 3.6: Cân bằng màu sắc và ánh sáng của ảnh

Hình 3.7: Trước và sau khi loại bỏ nhiễu của ảnh

Hình 3.8: Train model YOLOv8 với 100 epochs

Copies for internal use only in Phenikaa University

Trang 11

Hình 3.10: Ví dụ về data của bài toán phân loại cử chỉ tay

Hình 3.11: Tăng giảm độ sáng của ảnh

Hình 3.12: Lật ảnh theo chiều ngang,dọc

Hình 3.13: Xoay ảnh

Hình 3.14: Làm méo ảnh ngẫu nhiên

Hình 3.15: Kết quả phân loại trả về

Hình 3.16: Kết quả của cử chỉ tay hỗ trợ (help)

Hình 3.17: Kết quả của cử chỉ tay đồng ý (agree)

Hình 3.18: Kết quả của cử chỉ tay có câu hỏi (question)

Hình 3.19: Kết quả của cử chỉ tay muốn uống nước (drink)

Hình 3.20: Kết quả của cử chỉ tay đi wc (restroom)

Hình 3.21: Kết quả của cử chỉ tay không đồng ý (disagree)

Hình 3.22: Kết quả của cử chỉ tay xong bài tập (done)

Copies for internal use only in Phenikaa University

Trang 12

Danh sách bảng – biểu đồ

Biểu đồ 3.1: Biểu đồ Tổng hợp số lượng Dữ liệu chia thành tập train ,val ,test

Biểu đồ 3.2: Biểu đồ thể hiện mối tương quan giữa số epoch và giá trị Loss, mAP tương ứng của mô hình yolov8n sau khi train với 100 epoch

Biểu đồ 3.3: Biểu đồ F1-Confidence Curve

Biểu đồ 3.4: Biểu đồ Tổng hợp số lượng Dữ liệu chia thành tập train, test

Biểu đồ 3.5: Biểu đồ accuracy và loss

Copies for internal use only in Phenikaa University

Trang 13

Danh sách tên viết tắt

Networks

Copies for internal use only in Phenikaa University

Trang 14

MỞ ĐẦU

Trong thời đại số hóa ngày nay, việc kết hợp công nghệ trí tuệ nhân tạo vào lĩnh vực giáo dục đang trở thành xu hướng phổ biến, mang lại những cơ hội mới và tiềm năng lớn cho quá trình học tập và giảng dạy Trong bối cảnh đó, đồ án “Xây dựng ứng dụng trí

tuệ nhân tạo nhận dạng cử chỉ bàn tay người” ra đời với mục tiêu cung cấp một công cụ

hữu ích và hiệu quả cho việc học và thực hành các cử chỉ tay trong lớp học

Ứng dụng này không chỉ là một công cụ nhận diện các cử chỉ tay mà còn là một nền tảng học tập tương tác, cho phép học sinh tiếp cận và thực hành các kỹ năng giao tiếp không ngôn ngữ một cách dễ dàng và hiệu quả Việc sử dụng trí tuệ nhân tạo trong việc nhận diện và học cử chỉ tay không chỉ giúp nâng cao khả năng giao tiếp của học sinh mà còn tạo ra một môi trường học tập tích cực và đa dạng

Trong báo cáo này, em sẽ trình bày quá trình phát triển và triển khai của ứng dụng, bao gồm cả quá trình thiết kế, xây dựng Bằng cách kết hợp giữa công nghệ trí tuệ nhân tạo và giáo dục, em hy vọng rằng đồ án này sẽ góp phần vào việc tạo ra một môi trường học tập hiện đại, sáng tạo và tích cực, đồng thời nâng cao khả năng giao tiếp và hiểu biết của các học sinh

Việc sử dụng trang web để học và thực hành các cử chỉ tay giúp giảm lượng giấy tiêu thụ, bởi vì không cần in ra tài liệu học Điều này giúp giảm lượng rác thải và tiết kiệm tài nguyên tự nhiên.Sử dụng trang web không chỉ giúp tiết kiệm giấy mà còn giúp tiết kiệm năng lượng Không có cần phải in và vận chuyển tài liệu, điều này giúp giảm lượng năng lượng tiêu thụ và khí thải liên quan đến quá trình in ấn và vận chuyển

Việc sử dụng công nghệ trực tuyến trong giáo dục có thể khuyến khích ý thức về bảo vệ môi trường trong cộng đồng giáo dục Học sinh có thể trở thành những nhà lãnh đạo trong việc thúc đẩy các hành động bảo vệ môi trường thông qua việc sử dụng công nghệ để học và làm việc.Giảm lượng giấy tiêu thụ cũng đồng nghĩa với việc giảm lượng rác thải và giữ cho môi trường học trở nên sạch sẽ hơn Điều này có thể tạo ra một môi trường học tích cực và thuận lợi cho quá trình học tập Copies for internal use only in Phenikaa University

Trang 15

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI

1.1 Giới thiệu về đề tài

1.1.1 Đặt vấn đề

Giáo viên thường phải đối mặt với vấn đề học sinh la hét khi đọc to hoặc làm gián đoạn bài học nhóm nhỏ và hội nghị đọc sách để xin đi vệ sinh, uống nước, cần sự hỗ trợ hoặc đặt câu hỏi Những sự gián đoạn này thường khiến các học sinh khác mất tập trung

và không tập trung vào bài giảng

Đôi khi, học sinh đặt những câu hỏi phá vỡ toàn bộ cấu trúc mà giáo viên đang làm việc (Ai đã từng đặt câu hỏi và được yêu cầu nghỉ đi vệ sinh? Câu trả lời là tất cả mọi người!), học sinh đặt câu hỏi không đúng lúc Dù thế nào đi nữa, việc thể hiện cử chỉ tay của người quản lý lớp học sẽ giành lại quyền kiểm soát lớp học của mình

Có rất nhiều tín hiệu tay của người quản lý lớp học, từ tín hiệu giơ tay đơn giản hoặc giơ ngón tay cái lên,… Tại đồ án này em sẽ lựa chọn một số cử chỉ tay cơ bản như như đồng ý (agree), không đồng ý(disagree), xong bài tập (done), muốn uống nước (drink), có câu hỏi (question), đi wc (restroom), cần hỗ trợ (help)

Về cơ bản, thay vì một học sinh giơ tay, chờ được chú ý và gọi tên, sau đó bằng lời nói yêu cầu đi vệ sinh, cần sự hỗ trợ hoặc uống nước, thay vào đó, học sinh đó giơ một số ngón tay cụ thể (cử chỉ tay cụ thể) Điều này cho giáo viên thấy những gì học sinh đó cần

và giáo viên có thể chỉ cần gật đầu thừa nhận học sinh đó Việc này có hiệu quả trong suốt quá trình học và đặc biệt hữu ích khi đang quản lý với 1 nhóm nhỏ hay là một lớp lớn có rất nhiều học sinh

Trong giáo dục, việc giao tiếp không chỉ bằng lời nói mà còn thông qua các cử chỉ tay là một phần quan trọng của quá trình học và truyền đạt kiến thức Việc sử dụng các cử chỉ tay thường được coi là một cách hiệu quả để giao tiếp và truyền đạt ý kiến một cách rõ ràng và nhanh chóng

Với nhận thức về tầm quan trọng của việc này, do đó việc xây dựng một ứng dụng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay ra đời với mục đích cung cấp cho học sinh một công cụ hữu ích để học, ghi nhớ và áp dụng các cử chỉ cơ bản một cách hiệu quả và thú vị nhất

Tăng cường khả năng nhận biết: Học sinh sẽ được tiếp xúc và thực hành nhận biết các cử chỉ tay thông qua việc sử dụng ứng dụng trang web này Việc lặp lại quá trình này

Copies for internal use only in Phenikaa University

Trang 16

giúp củng cố và tăng cường khả năng nhận biết của họ đối với các cử chỉ tay cụ thể

Phát triển kỹ năng ghi nhớ: Bằng cách thực hành nhận biết và ghi nhớ các cử chỉ tay trên trang web của bạn, học sinh có thể phát triển kỹ năng ghi nhớ hiệu quả Việc lặp lại quá trình này giúp họ tăng cường khả năng nhớ lâu dài các cử chỉ tay đã học

Tăng cường tính tương tác: Trang web của bạn cung cấp một nền tảng tương tác giữa học sinh và nội dung học tập Việc tham gia vào việc tương tác với các cử chỉ tay trên trang web giúp học sinh tăng cường sự tương tác và tham gia tích cực trong quá trình học

Hỗ trợ cho việc áp dụng trong lớp học: Khi học sinh đã học và ghi nhớ các cử chỉ tay trên ứng dụng trang web, học sinh có thể áp dụng những kỹ năng này vào lớp học thực

tế Điều này giúp học sinh tăng cường sự tự tin và tính hiệu quả trong việc sử dụng giao tiếp không ngôn ngữ trong lớp học

1.1.2 Mục tiêu nghiên cứu

Mục tiêu nghiên cứu của đề tài “Xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người” được xác định như sau:

 Xây dựng tập dữ liệu phục vụ cho quá trình giải quyết bài toán

 Nghiên cứu và huấn luyện mô hình YOLOv8 để nhận diện vùng bàn tay người tốt nhất

 Nghiên cứu và huấn luyện mô hình VGG-16 để nhận diện cử chỉ tay

 Ứng dụng nền tảng Flask để xây dựng ứng dụng Web nhận diện cử chỉ tay người kết hợp hai mô hình đã huấn luyện

Mục tiêu của nghiên cứu là tạo ra một nền tảng trực tuyến giúp học sinh học và ghi nhớ các cử chỉ tay, sau đó áp dụng chúng vào lớp học là rất cần thiết và mang lại nhiều lợi ích quan trọng Đồ án này không chỉ giúp tăng cường kỹ năng giao tiếp của học sinh mà còn tạo ra một môi trường học tích cực và hỗ trợ cho việc áp dụng thực tế trong lớp học

Phát triển kỹ năng giao tiếp không ngôn ngữ:

Học sinh có cơ hội học và thực hành các cử chỉ tay thông qua ứng dụng này Việc này giúp họ phát triển kỹ năng giao tiếp không ngôn ngữ, một kỹ năng quan trọng trong việc tương tác và giao tiếp hiệu quả không chỉ trong lớp học mà còn trong cuộc sống hàng ngày

Copies for internal use only in Phenikaa University

Trang 17

Tăng cường tính tương tác và tham gia:

Bằng cách tham gia vào việc học và thực hành các cử chỉ tay trên ứng dụng, học sinh có thể tăng cường tính tương tác và tham gia vào quá trình học một cách tích cực Điều này giúp tạo ra một môi trường học tích cực và hỗ trợ sự tiếp nhận thông tin và kiến thức

Tạo ra một phương tiện học tập linh hoạt:

Ứng dụng này cung cấp một phương tiện học tập linh hoạt cho học sinh, giúp họ có thể học và thực hành bất kỳ lúc nào và ở bất kỳ đâu Điều này tạo điều kiện cho việc học tập linh hoạt và thuận tiện, từ đó tăng cường tính chủ động và sự tự quản lý trong việc học

Áp dụng kiến thức vào thực tế:

Mục tiêu cuối cùng của đồ án là tạo điều kiện cho học sinh áp dụng những kỹ năng

họ học được thông qua ứng dụng vào thực tế trong lớp học Việc này giúp họ trở thành những người học có khả năng áp dụng kiến thức và kỹ năng một cách linh hoạt và hiệu quả

1.1.3 Phương pháp nghiên cứu

Ứng dụng mô hình học máy YOLOv8 và VGG-16 để hỗ trợ giải quyết vấn đề nhận diện và phân loại cử chỉ tay

Từ đó triển khai và phát triển nền tảng Flask để xây dựng ứng dụng Web nhận diện

cử chỉ tay người kết hợp hai mô hình đã huấn luyện

Tối ưu hóa các tham số trong mô hình học máy để cải thiện độ chính xác và hiệu suất của hệ thống

Áp dụng các kỹ thuật xử lý ảnh nhằm xác định vùng vật thể, đặc biệt là vùng tay,

để làm nền tảng cho việc nhận diện và phân loại cử chỉ tay

1.2 Khái niệm về cử chỉ tay

Cử chỉ tay là hành động hoặc sự chuyển động của tay, cổ tay và ngón tay để diễn đạt ý nghĩa, truyền đạt thông điệp hoặc tương tác với người khác Cử chỉ tay có thể được

sử dụng trong giao tiếp để bổ sung hoặc thay thế cho từ ngữ, hoặc để truyền đạt cảm xúc,

ý kiến, ý định, hoặc chỉ dẫn Có nhiều loại cử chỉ tay khác nhau, bao gồm cử chỉ như vuốt tóc, đưa tay ra để chỉ đường, hoặc cử chỉ như việc gật đầu, bắt tay để biểu thị sự đồng tình hoặc sự chấp nhận Cử chỉ tay thường được xem là một phần không thể thiếu trong giao

Copies for internal use only in Phenikaa University

Trang 18

tiếp non-verbal, giúp tăng cường hiểu biết và giao tiếp hiệu quả giữa con người

Hình 1.1 Ngôn ngữ kí hiệu tay

Hình 1.2 Ký hiệu các số bằng cử chỉ tay

Copies for internal use only in Phenikaa University

Trang 19

Hình 1.3 Ký hiệu cử chỉ tay khi nhảy dù

Mặc dù thực tế có rất nhiều cử chỉ tay, tuy nhiên, em đã tập trung vào một số cử chỉ cơ bản phổ biến nhất và thường được sử dụng trong lớp học Bao gồm đồng ý(agree), không đồng ý(disagree), làm xong bài (done), muốn uống nước(drink), đi wc (restroom), cần hỗ trợ (help), có câu hỏi (question) Bằng cách tham gia vào việc học và thực hành các cử chỉ tay trên ứng dụng, học sinh có thể tăng cường tính tương tác và tham gia vào quá trình học một cách tích cực Điều này nhằm mục đích một môi trường học tích cực và

Copies for internal use only in Phenikaa University

Trang 20

giúp học sinh tập trung vào việc học và áp dụng các cử chỉ cơ bản một cách hiệu quả và thú vị nhất

Tập trung vào vùng quan trọng:

Bằng cách xác định vùng tay trước khi phân loại cử chỉ, chúng ta có thể giảm độ phức tạp của bài toán nhận diện và tối ưu hóa quá trình phân loại Thay vì phải quét toàn

bộ hình ảnh hoặc video để tìm kiếm bàn tay, việc đã biết được vị trí của tay giúp chúng ta tập trung vào vùng quan trọng này, tăng tốc độ xử lý và giảm bớt tài nguyên tính toán cần thiết

Cải thiện hiệu suất và chính xác:

Nhận diện vùng tay trước khi phân loại cử chỉ giúp cải thiện hiệu suất và chính xác của hệ thống Bằng cách tập trung vào vùng tay, chúng ta có thể tối ưu hóa các thuật toán phân loại và giảm độ phức tạp của bài toán, từ đó nâng cao độ tin cậy của hệ thống trong việc nhận diện các cử chỉ bàn tay thường gặp trong môi trường lớp học

Trong tổng thể, phân tích bài toán nhận diện vùng tay là một phần quan trọng của quy trình xây dựng hệ thống nhận diện cử chỉ bàn tay, giúp tối ưu hóa quá trình nhận diện

và cải thiện hiệu suất của hệ thống trong ứng dụng thực tế

Copies for internal use only in Phenikaa University

Trang 21

Nghiên cứu sẽ xem xét các phương pháp và công nghệ nhận diện hình ảnh, chẳng hạn như mạng nơ-ron YOLO (You Only Look Once) hoặc các phương pháp khác của Trí Tuệ Nhân Tạo để thực hiện

1.4 Phân tích bài toán phân loại cử chỉ tay

Mục Tiêu Của Bài Toán:

Mục tiêu chính của bài toán phân loại cử chỉ tay là nhận diện và phân loại một loạt các cử chỉ tay phổ biến được sử dụng trong lớp học, bao gồm một số cử chỉ cơ bản sau : đồng ý(agree), không đồng ý(disagree), làm xong bài (done), muốn uống nước(drink), đi

wc (restroom), cần hỗ trợ (help), có câu hỏi (question), học sinh thường sử dụng trong quá trình học tập trong lớp học

Dữ Liệu Đầu Vào:

Dữ liệu đầu vào cho đồ án bao gồm ảnh của các cử chỉ tay trong lớp học, được gắn nhãn tương ứng với tên folder là các loại cử chỉ tương ứng như đồng ý(agree), không đồng ý(disagree), làm xong bài (done), muốn uống nước(drink), đi wc (restroom), cần hỗ trợ (help), có câu hỏi (question), Đảm bảo rằng dữ liệu đa dạng và đầy đủ, với nhiều góc chụp, điều kiện ánh sáng và tình huống khác nhau để huấn luyện mô hình nhận diện cử chỉ tay một cách chính xác và hiệu quả

Các thách thức:

Sự thay đổi về điều kiện ánh sáng và nền phòng học có thể ảnh hưởng đến việc nhận diện cử chỉ tay Điều này đòi hỏi mô hình phải được huấn luyện và kiểm tra trên các tình huống ánh sáng và nền khác nhau

Giải Pháp Trí Tuệ Nhân Tạo (AI):

Sử dụng AI và máy học, đặc biệt là Deep Learning, đã giúp cải thiện khả năng nhận diện và phân loại cử chỉ.Cụ thể, Mạng nơ-ron tích chập (CNN) và mạng VGG16 đã trở thành một công cụ quan trọng trong việc phân loại cử chỉ, nó có những ưu điểm sau: Hiệu suất cao: VGG-16 là một trong những kiến trúc CNN hiệu suất cao và đã được chứng minh là hiệu quả trong nhiều nhiệm vụ nhận diện hình ảnh khác nhau Sử dụng VGG-16 giúp đảm bảo rằng mô hình có thể đạt được độ chính xác cao trong việc nhận diện cử chỉ tay trong lớp học

Dễ triển khai: VGG-16 có một kiến trúc đơn giản và dễ hiểu, điều này làm cho việc triển khai mô hình trở nên dễ dàng hơn Có thể sử dụng các trọng số được huấn luyện

Copies for internal use only in Phenikaa University

Trang 22

trước của VGG16 hoặc huấn luyện lại mô hình trên dữ liệu cá nhân một cách dễ dàng Khả năng tái sử dụng: VGG-16 đã được huấn luyện trước trên một tập dữ liệu lớn

và đa dạng, do đó nó có khả năng tổng quát hóa tốt trên các nhiệm vụ nhận diện hình ảnh khác nhau Bằng cách sử dụng VGG-16, có thể tái sử dụng kiến thức đã học được từ các nhiệm vụ khác để cải thiện hiệu suất của mô hình nhận diện cử chỉ tay trong lớp học Tóm lại, mục đích của việc sử dụng VGG-16 trong giải pháp trí tuệ nhân tạo là đảm bảo hiệu suất cao, dễ triển khai và khả năng tái sử dụng, giúp cải thiện khả năng nhận diện cử chỉ tay trong môi trường lớp học

Các Bước Thực Hiện:

● Thu thập dữ liệu đầu vào từ camera và cắt ảnh để lấy mỗi vùng tay

● Tạo một mạng CNN sử dụng kiến trúc của VGG-16, có thể sử dụng trọng số được huấn luyện trước từ tập dữ liệu ImageNet (pre-trained weights) Đóng băng các layer, tạo model mới, thêm các layer fully connected và dropout

● Lưu trọng số của mô hình sau mỗi epoch trong quá trình huấn luyện

Copies for internal use only in Phenikaa University

Trang 23

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1 Deep learning

Deep Learning (học sâu) có thể được xem là một lĩnh vực con của Machine

Learning (học máy) – ở đó các máy tính sẽ học và cải thiện chính nó thông qua các thuật toán Deep Learning được xây dựng dựa trên các khái niệm phức tạp hơn rất nhiều, chủ yếu hoạt động với các mạng nơ-ron nhân tạo để bắt chước khả năng tư duy và suy nghĩ của bộ não con người

Deep Learning là một phương pháp của Machine Learning Mạng nơ- ron nhân tạo trong Deep Learning được xây dựng để mô phỏng khả năng tư duy của bộ não con người

Bộ não con người đã trở thành nguồn cảm hứng cho kiến trúc mạng Nơ-ron Các

tế bào não, hay còn gọi là Nơ-ron, trong não con người tạo thành một mạng lưới phức tạp, với tính liên kết cao và khả năng truyền tín hiệu điện để xử lý thông tin Tương tự, mạng Nơ-ron nhân tạo được tạo ra từ các tế bào Nơ-ron nhân tạo, hoạt động cùng nhau

để giải quyết các vấn đề Các Nơ-ron nhân tạo là các thành phần phần mềm, được gọi là Node (các nút), và mạng Nơ-ron nhân tạo là các chương trình phần mềm hoặc thuật toán,

sử dụng hệ thống máy tính để thực hiện các phép toán

Hình 2.1 Mô hình mạng Nơ-ron

Copies for internal use only in Phenikaa University

Trang 24

Về cơ bản kiến trúc mạng Nơ-ron gồm 3 phần, đó là: Lớp đầu vào (Input), Lớp ẩn (Hidden) và Lớp đầu ra (Output), cụ thể như sau:

1) Lớp đầu vào: Có nhiệm vụ tiếp nhận dữ liệu đầu vào, phân loại lượng dữ liệu

này và chuyển tiếp tới lớp ẩn

2) Lớp ẩn: Số lượng lớp ẩn được thiết lập tùy theo độ phức tạp của dữ liệu cần xử

lý Các lớp này có nhiệm vụ xử lý dữ liệu rồi chuyển tiếp qua lớp tiếp theo

3) Lớp đầu ra: Lớp này hiển thị kết quả sau quá trình tính toán Số lượng note sẽ

tùy thuộc vào yêu cầu đầu ra của bài toán cần xử lý Ví dụ bài toán cần trả lời câu hỏi đúng hay sai, số lượng note sẽ là 2 trả về theo dạng nhị phân 0 hoặc 1

2.2 Thị giác máy tính

2.1.1 Khái niệm về thị giác máy tính

Thị giác máy tính [2] (Computer vision) là một lĩnh vực bao gồm các phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân tích và nhận dạng các hình ảnh và, nói chung

là dữ liệu đa chiều từ thế giới thực để cho ra các thông tin số hoặc biểu tượng, ví dụ trong các dạng quyết định Nói một cách đơn giản hơn, thị giác máy tính nhằm tạo ra một hệ thống nhân tạo có thể tiếp nhận các hình ảnh thu được hay tập dữ liệu đa chiều để phân tích, xử lí nó theo ý muốn

Máy móc ngày càng thông minh, nó không chỉ thay thế con người làm những công việc tính toán đơn giản đến khó khăn, mà nó còn có khả năng bắt chước động vật và con người Một trong số những khả năng đó là nhận biết được thế giới qua “mắt” của nó Bằng việc kết hợp các mô hình khác như: máy học, mạng noron, … giúp cho chúng dần tiến tới một hệ thống nhân tạo có những quyết định linh hoạt và chính xác hơn

Thị giác máy tính bao gồm các lĩnh vực sau:

● Xử lí hình ảnh: Phát triển các thuật toán xử lí ảnh như tăng/giảm chất lượng ảnh, lọc nhiễu

● Nhận diện mẫu: Giải thích các kỹ thuật khác nhau để phân loại mẫu

Quang trắc: Liên quan đến việc thu thập các số đo chính xác từ hình ảnh

Copies for internal use only in Phenikaa University

Trang 25

Hình 2.2 Computer Vision

Thị giác máy tính là một chuyên ngành đã phát triển khá lâu và có nhiều ứng dụng rộng rãi trong đời sống, giúp cho máy tính “nhìn” được như con người Nó đã được ứng dụng rộng rãi trong nhiều lĩnh vực, các thành tựu nổi bật đáng kể đến như:

Trong y học, các thuật toán xử lí ảnh cho phép biến đổi hình ảnh được tạo ra từ nguồn bức xạ X-ray hay nguồn bức xạ siêu âm hình ảnh quang học trên bề mặt phim x-quang hoặc trực tiếp lên bề mặt màn hình hiển thị Hình ảnh các cơ quan chức năng của con người được xử lí tiếp nâng cao độ tương phản, lọc, tách các phần cần thiết hay tạo ra hình ảnh không gian 3 chiều (siêu âm ba chiều) Mới nhất hiện nay, thị giác máy tính tạo

ra ứng dụng giúp hỗ trợ thị giác cho người mù…

Trong lĩnh vực địa chất, kỹ thuật làm nổi đường biên và khôi phục hình ảnh giúp nâng cao chất lượng vệ tinh tạo ra bản đồ địa hình 3D với độ chính xác cao

Trong khí tượng học, ảnh thông qua vệ tinh, đưa ra các thông tin Trái Đất trên một vùng rộng lớn, giúp cho việc dự báo thời tiết chính xác hơn

Trong lĩnh vực hình sự và bảo mật, kiểm soát truy cập, trong quá trình xử lí nhận dang vân tay, khuôn mặt hay nhận dạng biển số xe giúp phát hiện nhanh đối tượng nghi vấn, cũng như nâng cao quá trình bảo mật, giám sát hay nhận dạng mục tiêu trong lĩnh vực quân sự

Không chỉ thế, thị giác máy tính ứng dụng trong việc điều khiển tiến trình như các robot trong công nghiệp, hay các thiết bị, xe tự hành hay trong các quá trình kiểm tra trong môi trường công nghiệp, …

Copies for internal use only in Phenikaa University

Trang 26

Ngoài ra, thị giác máy tính còn có vai trò tương tác (đóng vai trò làm đầu vào cho thiết bị trong quá trình tương tác giữa người và máy)

2.1.2 Các bài toán lớn trong thị giác máy tính

Nhận diện đối tượng (Object Detection)[5,6]: Xác định vị trí và phân loại các đối tượng trong một hình ảnh hoặc video

Hình 2.3: Hình ảnh minh họa về nhận diện đối tượng (Object Detection)

Phân loại hình ảnh (Image Classification)[7,8,9]: Gán một nhãn hoặc lớp cho một hình ảnh từ một tập các lớp cho trước

Hình 2.4: Hình minh họa về kết quả của Phân loại hình ảnh Image Classification

Phân tích vùng (Image Segmentation)[10]: Phân chia hình ảnh thành các vùng hoặc đối tượng riêng biệt

Copies for internal use only in Phenikaa University

Trang 27

Hình 2.5: Hình ảnh minh họa về Phân tích vùng (Image Segmentation)

Nhận diện khuôn mặt (Face Detection): Xác định và xác minh vị trí của khuôn mặt trong một hình ảnh hoặc video

Hình 2.6: Hình ảnh minh họa về Nhận diện khuôn mặt (Face Detection)

Theo dõi đối tƣợng (Object Tracking): Theo dõi sự di chuyển của đối tƣợng qua các khung hình trong video

Copies for internal use only in Phenikaa University

Trang 28

Hình 2.7: Hình ảnh minh họa về Theo dõi đối tượng (Object Tracking)

Nhận diện hành động (Action Recognition)[13]: Nhận diện và phân loại các hành động hoặc sự tương tác trong video

Điều khiển động cơ (Visual Motor Control): Điều khiển các thiết bị dựa trên thông tin từ hình ảnh

Nhận diện vị trí và định vị (Localization and Pose Estimation): Xác định vị trí và hướng của đối tượng trong không gian 3D

2.1.3 Thư viện OpenCV

Project OpenCV được bắt đầu từ Intel năm 1999 bởi Gary Bradsky OpenCV (Open Source Computer Vision Library) là thư viện nguồn mở hàng đầu cho Computer Vision [2] và Machine Learning, và hiện có thêm tính năng tăng tốc GPUcho các hoạt động theo real-time.OpenCV được phát hành theo giấy phép BSD, do đó nó miễn phí cho

cả họctập và sử dụng với mục đích thương mại Nó có trên các giao diện C, C++, Pythonvà Java hỗ trợ Windows, Linux, macOS, iOS và Android OpenCV được thiết kế đểhỗ trợ hiệu quả về tính toán và chuyên dùng cho các ứng dụng real-time (thời gianthực) Nếu được viết trên C/C++ tối ưu, thư viện này có thể tận dụng được bộ xửlý

đa lõi (multi-core processing).OpenCV có một cộng đồng người dùng khá hùng hậu hoạt động trên khắp thếgiới bởi nhu cầu cần đến nó ngày càng tăng theo xu hướng chạy đua về

sử dụng Computer Vision [2] của các công ty công nghệ OpenCV hiện được ứng dụng

Copies for internal use only in Phenikaa University

Trang 29

rộng rãi toàn cầu, với cộng đồng hơn 47.000 người, với nhiều mục đích và tính năng khác nhau từ interactive art, đến khai thác mỏ, khai thác web map hoặc qua robotic cao cấp

Hình 2.8: OpenCV

OpenCV có cấu trúc module, tức là nó bao gồm cả những thư viện liên kết tĩnh lẫn thư viện liên kết động Nắm rõ các module của OpenCV sẽ giúp bạn đọc hoàn toàn thấu hiểu OpenCV là gì

Core functionality (core): Module này sở hữu cơ chế rất nhỏ gọn Nó được dùng

để định hình các cấu trúc của cơ sở dữ liệu cơ bản, bao gồm cả những mảng đa chiều Ngoài ra nó còn xác định các chức năng của những module đi kèm khác nữa

Image Processing (imgproc): Đây là module được dùng cho quá trình xử lý hình ảnh Nó cho phép người dùng thực hiện các hoạt động như lọc hình ảnh tuyến tính và phi tuyến, thực hiện phép biến hình, thay đổi không gian màu, xây dựng biểu đồ và rất nhiều thao tác khác liên quan

Video Analysis (video): Giống như tên gọi của nó, module này cho phép phân tích các video Kết quả được trả về bao gồm các ước tính chuyển động, thực hiện tách nền và các phép toán theo dõi vật thể

Camera Calibration and 3D Reconstruction (calib3d): Module này cung cấp các thuật toán hình học đa chiều cơ bản và hiệu chuẩn máy ảnh single và stereo Ngoài ra nó

Copies for internal use only in Phenikaa University

Trang 30

còn đưa ra các dự đoán kiểu dáng của đối tượng và sử dụng thuật toán thư tín âm thanh nổi cùng các yếu tố tái tạo 3D

2D Features Framework (features2d): Module này giúp phát hiện các tính năng nổi trội của bộ nhận diện, bộ truy xuất thông số và thông số đối chọi

Ngoài ra còn có rất nhiều module khác với đa dạng tính năng, ví dụ như: FLANN, Google test wrapper…

2.3 VGG-16

Với VGG-16[11], quan điểm về một mạng nơ ron sâu hơn sẽ giúp ích cho cải thiện

độ chính xác của mô hình tốt hơn Về kiến trúc thì VGG-16[11], vẫn dữ các đặc điểm của AlexNet nhưng có những cải tiến:

● Kiến trúc VGG-16 sâu hơn, bao gồm 13 layers tích chập 2 chiều (thay vì 5 so với AlexNet) và 3 layers fully connected

● Lần đầu tiên trong VGG-16[11], chúng ta xuất hiện khái niệm về khối tích chập (block) Đây là những kiến trúc gồm một tập hợp các layers CNN được lặp lại giống nhau Kiến trúc khối đã khởi nguồn cho một dạng kiến trúc hình mẫu rất thường gặp ở các mạng CNN kể từ đó

● VGG-16[11] kế thừa lại hàm activation ReLU ở AlexNet

● VGG-16[11] cũng là kiến trúc đầu tiên thay đổi thứ tự của các block khi xếp nhiều layers CNN + max pooling thay vì xen kẽ chỉ một layer CNN + max pooling Một bạn có câu hỏi tại Forum Machine Learning Cơ Bản về sự thay đổi này sẽ giúp cho VGG net cải thiện hơn như thế nào? Các layers CNN sâu hơn có thể trích lọc đặc trưng tốt hơn so với chỉ 1 layers CNN

● VGG-16[11], chỉ sử dụng các bộ lọc kích thước nhỏ 3x3 thay vì nhiều kích thước

bộ lọc như AlexNet Kích thước bộ lọc nhỏ sẽ giúp giảm số lượng tham số cho mô hình và mang lại hiệu quả tính toán hơn VD: Nếu sử dụng 2 bộ lọc kích thước 3x3 trên một featurs map (là output của một layer CNN) có độ sâu là 3 thì ta sẽ cần n_filters x kernel_size x kernel_size x n_channels = 2 x 3 x 3 x 3 = 54 tham số Nhưng nếu sử dụng 1 bộ lọc kích thước 5 x 5 sẽ cần 5 x 5 x 3 = 75 tham số 2 bộ lọc 3 x 3 vẫn mang lại hiệu quả hơn so với 1 bộ lọc 5 x 5

Mạng VGG-16 sâu hơn so với AlexNet và số lượng tham số của nó lên tới 138

Copies for internal use only in Phenikaa University

Trang 31

triệu tham số Đây là một trong những mạng mà có số lượng tham số lớn nhất Kết quả của nó hiện đang xếp thứ 2 trên bộ dữ liệu ImageNet validation ở thời điểm public Ngoài

ra còn một phiên bản nữa của VGG-16[11], là VGG-19 tăng cường thêm 3 layers về độ sâu

Bắt đầu từ VGG-16[11], một hình mẫu chung cho các mạng CNN trong các tác

vụ học có giám sát trong xử lý ảnh đã bắt đầu hình thành đó là các mạng trở nên sâu hơn

và sử dụng các block dạng [Conv2D*n + Max Pooling]

Hình 2.9: Kiến trúc VGG-16

2.4 Object Detection

Một trong những lĩnh vực quan trọng của Trí tuệ nhân tạo (Artificial Intelligence)

là thị giác máy tính [2] (Computer Vision) Computer Vision [2] là một lĩnh vực bao gồm các phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân tích và nhận dạng các hình ảnh, phát hiện các đối tượng, tạo ảnh, siêu phân giải hình ảnh và nhiều hơn vậy Object Detection [2] có lẽ là khía cạnh sâu sắc nhất của thị giác máy do số lần sử dụng trong thực tế

Object Detection [2] đề cập đến khả năng của hệ thống máy tính và phần mềm để định vị các đối tượng trong một hình ảnh và xác định từng đối tượng Object Detection [2] đã được sử dụng rộng rãi để phát hiện khuôn mặt, phát hiện xe, đếm số người đi bộ,

hệ thống bảo mật và xe không người lái Có nhiều cách để nhận diện đối tượng có thể được sử dụng cũng như trong nhiều lĩnh vực thực hành Giống như mọi công nghệ khác, một loạt các ứng dụng sáng tạo và tuyệt vời của Object Detection [2] sẽ đến từ các lập trình viên và các nhà phát triển phần mềm

Bắt đầu sử dụng các phương pháp nhận diện đối tượng hiện đại trong các ứng dụng và hệ thống, cũng như xây dựng các ứng dụng mới dựa trên các phương pháp này Việc triển nhận diện đối tượng sớm liên quan đến việc sử dụng các thuật toán cổ điển, giống như các thuật toán được hỗ trợ trong OpenCV, thư viện Computer vision [2] phổ

Copies for internal use only in Phenikaa University

Trang 32

biến Tuy nhiên, các thuật toán cổ điển này không thể đạt được hiệu suất đủ để làm việc trong các điều kiện khác nhau

Việc áp dụng đột phát và nhanh chóng của deep learning vào năm 2012 đã đưa vào sự tồn tại các thuật toán và phương pháp phát hiện đối tượng như R-CNN, Fast-RCNN, Faster-RCNN, RetinaNet, SSD và YOLO Sử dụng các phương pháp và thuật toán này, dựa trên deep learning và cũng dựa trên việc học máy đòi hỏi rất nhiều kiến thức về toán học và việc học sâu Có hàng triệu chuyên gia lập trình và các nhà phát triển phần mềm muốn tích hợp và tạo ra các sản phẩm mới sử dụng Object detection [2] Nhưng công nghệ này xa tầm tay của họ và phức tạp để hiểu và sử dụng thực tế của nó

Các mô hình Object detection [2] dựa trên Region-Base Convolutional Neural Network (R-CNNs) gồm các lớp mô hình: R-CNN, Fast R-CNN và Faster R- CNN là những mô hình sơ khai, có tốc độ xử lý chậm Thuật toán dựa trên 2 phần xử lý riêng biệt

là phát hiện các region proposal và phân loại hình ảnh

2.5 YOLO

Lớp các mô hình YOLO[3] có tốc độ thời gian xử lý thực Là công nghệ state-of-art nhất hiện nay có tốc độ xử lý realtime, phát hiện được lên tới 9000 loại đối tượng 1.2.7 YOLO

YOLO[3] là một mô hình mạng CNN cho việc phát hiện, nhận dạng, phân loại đối tượng YOLO[3] được tạo ra từ việc kết hợp giữa các convolutional layers và connected layers Trong đó các convolutional layers sẽ trích xuất ra các feature của ảnh, còn full-connected layers sẽ dự đoán ra xác suất đó và tọa độ của đối tượng

So với họ mô hình R-CNN, YOLO[3] và SSD có tốc độ được cải thiện rất nhiều Các thuật toán này coi việc phát hiện đối tượng như một bài toán hồi quy, chỉ dùng một

mô hình để xác định đồng thời tọa độ đường bao và xác suất của nhóm đối tượng tương ứng Nếu để ý, tên của các mô hình này đều nói đến việc chúng chỉ dùng mô hình 1 bước thay vì mô hình 2 bước xuất hiện trước đó (You Only Look Once - Bạn chỉ nhìn một lần

và Single Shot Detectors - máy phát hiện chỉ dùng một ảnh)

Copies for internal use only in Phenikaa University

Trang 33

Về cơ bản, YOLO[3] chia ảnh đầu vào thành các ô nhỏ, mô hình sẽ dự đoán xác xuất đối tượng trong các đường bao (bounding-box) xung quanh mỗi ô nhỏ này Những đường bao có xác xuất cao sẽ được giữ lại và sử dụng cho nhiệm vụ xác định vị trí của

đối tượng trong ảnh

Output của mô hình YOLO[3] là một véc tơ sẽ bao gồm các thành phần:

Trong đó:

● : là xác suất dự báo vật thể xuất hiện trong bounding box

và là kích thước rộng, dài của bounding box

Việc hiểu output khá là quan trọng để cấu hình tham số chuẩn xác khi huấn luyện

Hình 2.10: Khái quát về YOLO

Copies for internal use only in Phenikaa University

Ngày đăng: 17/07/2024, 10:53

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Goodfellow, Ian, Yoshua Bengio, and Aaron Courville. Deep learning. MIT press, 2016. Deep Learning Sách, tạp chí
Tiêu đề: Deep learning
[2] AMIT, Yali; FELZENSZWALB, Pedro; GIRSHICK, Ross. Object detection. Computer Vision: A Reference Guide, 2020, 1-9 Sách, tạp chí
Tiêu đề: Computer Vision: A Reference Guide
[3] JIYANG, Peiyuan, et al. A Review of Yolo algorithm developments. Procedia Computer Science, 2022, 199: 1066-1073 Sách, tạp chí
Tiêu đề: Procedia Computer Science
[6] GRINBERG, Miguel. Flask web development: developing web applications with python. " O'Reilly Media, Inc.", 2018 Sách, tạp chí
Tiêu đề: O'Reilly Media, Inc
[7] MUFID, Mohammad Robihul, et al. Design an mvc model using python for flask framework development. In: 2019 International Electronics Symposium (IES). IEEE, 2019. p. 214-219 Sách, tạp chí
Tiêu đề: 2019 International Electronics Symposium (IES)
[4] Ultralytics, NEW - YOLOv8 in PyTorch, 2023 [Trực tuyến] https://github.com/ultralytics/ultralytics Link
[5] Ultralytics, Ultralytics YOLOv8 Docs, 2023 [Trực tuyến] https://docs.ultralytics.com/ Link
[8] HumanSignal, LabelImg is now part of the Label Studio community, 2018, [Trực tuyến] https://github.com/HumanSignal/labelImg Link
[9] phamdinhkhanh, YOLO You Only Look Once, 09 Mar 2020, [Trực tuyến], https://phamdinhkhanh.github.io/2020/03/09/DarknetAlgorithm.html#5-anchor-box Link
[10] Shyiskawaii, Mô Hình Nhận Dạng Vật Thể YOLOv8, 2023, [Trực tuyến] https://hackmd.io/@58ZC49ZfS86wYX--LRGGOg/Viewperm Link
[11] Tammina S., 2019. Transfer learning using VGG-16 with Deep Convolutional Neural Network for Classifying Images. International Journal of Scientific and Research Publications, Volume 9, Issue 10, pp.143-150 Khác

HÌNH ẢNH LIÊN QUAN

Hình 2.3: Hình ảnh minh họa về nhận diện đối tượng (Object Detection) - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 2.3 Hình ảnh minh họa về nhận diện đối tượng (Object Detection) (Trang 26)
Hình 2.4: Hình minh họa về kết quả của Phân loại hình ảnh Image Classification - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 2.4 Hình minh họa về kết quả của Phân loại hình ảnh Image Classification (Trang 26)
Hình 2.5: Hình ảnh minh họa về  Phân tích vùng (Image Segmentation) - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 2.5 Hình ảnh minh họa về Phân tích vùng (Image Segmentation) (Trang 27)
Hình 2.6: Hình ảnh minh họa về  Nhận diện khuôn mặt (Face Detection) - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 2.6 Hình ảnh minh họa về Nhận diện khuôn mặt (Face Detection) (Trang 27)
Hình 2.7: Hình ảnh minh họa về  Theo dõi đối tƣợng (Object Tracking) - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 2.7 Hình ảnh minh họa về Theo dõi đối tƣợng (Object Tracking) (Trang 28)
Hình 2.8: OpenCV - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 2.8 OpenCV (Trang 29)
Hình 2.10: Khái quát về YOLO - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 2.10 Khái quát về YOLO (Trang 33)
Hình 2.11: Kiến trúc output của mô hình YOLO - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 2.11 Kiến trúc output của mô hình YOLO (Trang 34)
Hình 2.12: Xác định anchor box cho một vật thể. - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 2.12 Xác định anchor box cho một vật thể (Trang 35)
Hình 2.13: Thời gian YOLO phát triển ra mắt các phiên bản. - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 2.13 Thời gian YOLO phát triển ra mắt các phiên bản (Trang 37)
Hình 2.14: So sánh số lượng tham số đầu vào (Parameters) và Tốc độ xử - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 2.14 So sánh số lượng tham số đầu vào (Parameters) và Tốc độ xử (Trang 37)
Bảng 1.1: Bảng Thống kê so sánh các mô hình yolov8 detection với tập dữ liệu - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Bảng 1.1 Bảng Thống kê so sánh các mô hình yolov8 detection với tập dữ liệu (Trang 38)
Hình 2.16: Cấu trúc Luồng xử lý. - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 2.16 Cấu trúc Luồng xử lý (Trang 40)
Hình 3.5: Thư mục chứa ảnh và label của từng ảnh - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 3.5 Thư mục chứa ảnh và label của từng ảnh (Trang 49)
Hình 3.9: Hình ảnh thực tế nhận diện vùng tay khi train mô hình YOLOv8 với 100 epoch. - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 3.9 Hình ảnh thực tế nhận diện vùng tay khi train mô hình YOLOv8 với 100 epoch (Trang 53)
Hình 3.10 Ví dụ về data của bài toán phân loại cử chỉ tay - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 3.10 Ví dụ về data của bài toán phân loại cử chỉ tay (Trang 54)
Hình 3.16: Kết quả của cử chỉ tay hỗ trợ (help) - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 3.16 Kết quả của cử chỉ tay hỗ trợ (help) (Trang 61)
Hình 3.18: Kết quả của cử chỉ tay có câu hỏi (question) - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 3.18 Kết quả của cử chỉ tay có câu hỏi (question) (Trang 62)
Hình 3.20: Kết quả của cử chỉ tay đi wc (restroom) - xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Hình 3.20 Kết quả của cử chỉ tay đi wc (restroom) (Trang 63)

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

TÀI LIỆU LIÊN QUAN

w