Tên đề tài: Thiết kế mô hình Robot Delta ứng dụng phân loại rác thải.. Tên đề tài: Thiết kế mô hình Robot Delta ứng dụng phân loại rác thải 2.. Nguyễn Trần Bửu Thạch MSSV: 19151171 Lớp:
Trang 1THÀNH PHỐ HỒ CHÍ MINH
ĐỒ ÁN TỐT NGHIỆP NGÀNH CNKT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA
THIẾT KẾ MÔ HÌNH ROBOT DELTA
ỨNG DỤNG PHÂN LOẠI RÁC THẢI
GVHD: TS TRẦN ĐỨC THIỆN SVTH : NGUYỄN NHẬT TRƯỜNG NGUYỄN TRẦN BỬU THẠCH
S K L 0 1 1 3 2 2
Trang 2KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN
ĐỀ TÀI: THIẾT KẾ MÔ HÌNH ROBOT DELTA ỨNG
DỤNG PHÂN LOẠI RÁC THẢI
Trang 3BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN o0o
Tp Hồ Chí Minh, ngày … tháng … năm 2023
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Sinh viên thực hiện đề tài:
1 Nguyễn Nhật Trường MSSV: 19151187 Lớp: 19151CL3B
2 Nguyễn Trần Bửu Thạch MSSV: 19151171 Lớp: 19151CL3B
Ngành: Công Nghệ Kỹ Thuật Điều Khiển và Tự Động Hóa
Giảng viên hướng dẫn: TS Trần Đức Thiện ĐT: 0988862588
Ngày nhận đề tài: 06/02/2023
Ngày nộp đề tài: 30/06/2023
1 Tên đề tài:
Thiết kế mô hình Robot Delta ứng dụng phân loại rác thải
2 Các số liệu, tài liệu ban đầu:
Tìm hiểu thiết kế mô hình Robot Delta
Định hịnh đối tượng phân loại: chai nhựa và lon
Tìm hiểu về máy học, YOLO
3 Nội dung thực hiện đề tài
- Thiết kế mô hình Robot Delta trên phần mềm Solidworks 2021
- Tính toán động học cho robot, khảo sát không gian làm việc
- Ứng dụng thuật toán YOLOv5 trong hệ thống phân loại rác (chai nhựa và lon) theo thời gian thực
- Thi công mô hình Robot Delta theo bản vẽ đã thiết kế trên phần mềm Solidworks, lắp đặt tủ điện gọn gàng và an toàn theo quy chuẩn, hệ thống camera và
hệ thống cơ cấu chấp hành hút thả vật
- Lập trình điều khiển động cơ cho Robot và các thiết bị bằng phần mềm Arduino IDE, thiết kế giao diện người dùng và xử lý thuật toán phân loại trên phần mềm Visual Studio Code
Trang 44 Các sản phẩm dự kiến:
- Hệ thống phân loại rác tự động cho 2 đối tượng (Robot Delta, thị giác máy tính, băng tải)
- Tủ điện thiết bị
- Chương trình, giao diện điều khiển
- Quyển báo cáo đồ án tốt nghiệp
- Poster giới thiệu đồ án
5 Ngôn ngữ trình bày: Bản báo cáo: Tiếng Anh Tiếng Việt x
Trình bày bảo vệ: Tiếng Anh Tiếng Việt x
TRƯỞNG NGÀNH GIẢNG VIÊN HƯỚNG DẪN
(Ký, ghi rõ họ tên) (ký, ghi rõ họ tên)
Trang 5BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN o0o
Tp Hồ Chí Minh, ngày … tháng … năm 2023
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP
Sinh viên thực hiện đề tài:
1 Nguyễn Nhật Trường MSSV: 19151187 Lớp: 19151CL3B
2 Nguyễn Trần Bửu Thạch MSSV: 19151171 Lớp: 19151CL3B
Ngành: Công Nghệ Kỹ Thuật Điều Khiển và Tự Động Hóa
Giảng viên hướng dẫn: TS Trần Đức Thiện ĐT: 0988862588
06/02/2023
(1 tuần)
- Tìm hiểu tổng quan đề tài
- Tìm hiểu về các Robot phân loại rác, ưu và nhược điểm của Robot Delta trong phân loại rác
- Tìm hiểu về động cơ Step và Arduino
13/02/2023
(2 tuần)
- Thiết kế mô hình Robot Delta trên phần mềm Solidworks
- Lựa chọn động cơ
- Tìm hiểu về động học của Robot Delta
- Tìm hiểu về xử lý ảnh, computer vision
Trang 627/03/2023
(2 tuần)
- Thi công mô hình
- Điều khiển động học thuận nghịch Robot
- Tìm hiểu về mạng thần kinh nơ ron và thư viện YOLOv5
- Tìm hiểu phần mềm huấn luyện (Roboflow, Google colab)
10/04/2023
(2 tuần)
- Xây dựng tập dữ liệu huấn luyện trên Roboflow
- Huấn luyện mạng YOLOv5 trên Google Colab
24/04/2023
(2 tuần)
- Kiểm chứng kết quả huấn luyện với ảnh đầu vào và camera
- Nhúng thư viện đã huấn luyện về máy tính
08/05/2023
(2 tuần)
- Xác định vị trí của vật trên hệ tọa độ ảnh
- Chuyển đổi vị trí của vật từ hệ tọa ảnh về hệ tọa độ Robot
- Xây dựng giải thuật điều khiển hành trình Robot phân loại
- Lắp đặt cơ cấu khí nén
22/05/2023
(2 tuần)
- Chạy thực nghiệm
- Đi dây hệ thống và lắp đặt tủ điện
- Thiết kế giao diện người dùng trên phần mềm Visual Studio Code
5/06/2023
(2 tuần)
- Đánh giá, kiểm chứng động học thuận, nghịch
- Đánh giá kết quả phân loại rác với hai trường hợp ánh sáng
- Cải thiện chất lượng mạng (Tăng số lượng ảnh đầu vào)
19/06/2023
(2 tuần)
- Viết quyển báo cáo đồ án
- Hoàn thành Poster, video giới thiệu đồ án và PowerPoint trình bày
GIẢNG VIÊN HƯỚNG DẪN
(ký, ghi rõ họ tên)
Trang 7BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN o0o
Tp Hồ Chí Minh, ngày … tháng … năm 2023
PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Sinh viên thực hiện đề tài:
1 Nguyễn Nhật Trường MSSV: 19151187 Lớp: 19151CL3B
2 Nguyễn Trần Bửu Thạch MSSV: 19151171 Lớp: 19151CL3B Ngành: Công Nghệ Kỹ Thuật Điều Khiển và Tự Động Hóa
Tên đề tài: Thiết kế mô hình Robot Delta ứng dụng phân loại rác thải
Họ và tên giảng viên hướng dẫn: TS Trần Đức Thiện
Tp Hồ Chí Minh, ngày … tháng … năm 2023
Giảng viên hướng dẫn
(ký, ghi rõ họ tên)
Trang 8BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN o0o
Tp Hồ Chí Minh, ngày … tháng … năm 2023
LỜI CAM ĐOAN
Nhóm sinh viên cam kết đề tài này là do nhóm thực hiện dựa vào một số tài liệu trước đó và không sao chép từ tài liệu hay công trình đã có trước đó
Tp.HCM, ngày … tháng … năm 2023
Sinh viên thực hiện
(Ký và ghi rõ họ tên)
Trang 9
Sau khi trải qua quá trình thực hiện khóa luận tốt nghiệp trong 5 tháng, nhóm
đã nhận được nhiều sự giúp đỡ và hỗ trợ của các giảng viên trong trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh, đặc biệt là TS Trần Đức Thiện đã tận tình hướng dẫn, góp ý và tạo mọi điều kiện cho nhóm hoàn thành khóa luận tốt nghiệp một cách thuận lợi
Tiếp đến nhóm gửi lời cảm ơn đến các thành viên trong RIC LAB đã nhiệt tình
hỗ trợ và động viên trong quá trình thực hiện khóa luận tốt nghiệp này
Với thời gian cũng như sự hiểu biết còn hạn chế, nhóm gặp không ít khó khăn trong việc tiếp cận vào việc nghiên cứu để thực hiện đề tài nên đồ án này không tránh khỏi những thiếu sót không mong muốn, nhóm rất mong nhận được sự góp ý của các thầy cô để đề tài của nhóm ngày càng hoàn thiện hơn nữa
Cuối cùng, nhóm xin chúc cho thầy cô thật nhiều sức khỏe để tiếp tục trên con đường giảng dạy
Nhóm xin chân thành cảm ơn!
Tp.HCM, ngày … tháng … năm 2023
Sinh viên thực hiện
(Ký và ghi rõ họ tên)
Trang 10Sau quá trình thực hiện khóa luận tốt nghiệp với đề tài “Thiết kế mô hình Robot Delta ứng dụng phân loại rác thải” nhóm đã học hỏi được thêm nhiều kiến thức
bổ ích về Robot cũng như về xử lý ảnh và rút ra được nhiều kinh nghiệm Trong báo cáo này nhóm sẽ trình bày từng bước nhóm đã thực hiện để hoàn thành khóa luận tốt nghiệp Đầu tiên nhóm đã tìm hiểu về cấu trúc và thiết kế mô hình trên phần mềm Solidworks, sau khi thiết kế hoàn tất nhóm tiến hình thi công phần cứng Tiếp đến nhóm đã có những bước đầu điều khiển Robot và các thiết bị liên quan Bên cạnh đó nhóm cũng thiết kế giao diện người dùng trên phần mềm Visual Studio Code để có thể giám sát và điều khiển hệ thống dễ dàng hơn Để phát hiện, phân loại hai đối tượng rác thải (chai nhựa và lon) nhóm đã xây dựng và huấn luyện mô hình mạng YOLOv5 sau đó tiến hành tính toán vị trí để điều khiển Robot Delta thực hiện phân loại Cuối cùng nhóm tiến hành đánh giá kết quả phân loại hai đối tượng (chai nhựa
và lon) với số lượng 900 mẫu trong nhiều điều kiện ánh sáng khác nhau và đưa ra kết luận về độ chính xác, tốc độ xử lý của mô hình
Trang 11NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP iii
PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN v
LỜI CAM ĐOAN vi
LỜI CẢM ƠN vii
TÓM TẮT ĐỒ ÁN viii
MỤC LỤC ix
DANH MỤC BẢNG xiii
DANH MỤC HÌNH ẢNH xv
DANH MỤC CÁC TỪ VIẾT TẮT xviii
CHƯƠNG 1: TỔNG QUAN 1
1.1 Đặt vấn đề 1
1.2 Tình hình nghiên cứu 1
1.2.1 Nghiên cứu nước ngoài 1
1.2.2 Nghiên cứu trong nước 2
1.2.3 Nghiên cứu tại trường Đại học Sư Phạm Kỹ Thuật TP Hồ Chí Minh 4
1.3 Mục tiêu đề tài 5
1.4 Nội dung nghiên cứu 5
1.5 Giới hạn đề tài 5
1.6 Phương pháp đánh giá kết quả 5
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 6
2.1 Giải thuật phân loại rác và quy trình thực hiện 6
2.1.1 Giải thuật phân loại rác thải 6
2.1.2 Quy trình thực hiện phân loại rác thải 7
2.2 Giới thiệu Robot Delta 8
2.2.1 Cấu tạo Robot Delta 8
2.2.2 Nguyên lý hoạt động Robot Delta 8
Trang 122.3.2 Giới thiệu chung về động cơ bước và bộ điều khiển động cơ 10
2.4 Tổng quan thị giác máy tính, xử lý ảnh và các phần mềm 11
2.4.1 Giới thiệu về thị giác máy tính 11
2.4.2 Giới thiệu về xử lý ảnh 11
2.4.3 Giới thiệu phần mềm sử dụng trong quá trình huấn luyện 12
2.5 Giới thiệu mạng thần kinh CNN và mô hình YOLO 13
2.5.1 Cấu trúc mạng thần kinh CNN 13
2.5.2 Mô hình YOLO (You Only Look Once) 15
2.5.3 Phương pháp đánh giá mô hình phát hiện đối tượng 21
2.6 Phương pháp chuyển đổi hệ tọa độ xác định vị trí đối tượng 23
CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG PHẦN CỨNG 24
3.1 Tổng quan về hệ thống 24
3.2 Yêu cầu thiết kế phần cứng 25
3.3 Thiết kế mô hình trên phần mềm Solidworks 25
3.3.1 Đế cố định Robot 26
3.3.2 Đế di động Robot 27
3.3.3 Khớp trên Robot 28
3.3.4 Khớp hình bình hành Robot 28
3.3.5 Khung Robot 29
3.3.6 Một số chi tiết khác 29
3.4 Lựa chọn thiết bị 30
3.4.1 Động cơ 30
3.4.2 Thiết bị điện 30
3.4.3 Thiết bị điều khiển 32
3.4.4 Camera Logitech 33
3.4.5 Cơ cấu phân loại 33
3.5 Thi công phần cứng 35
Trang 133.5.3 Sơ đồ hệ thống 37
3.5.4 Thi công tủ điện 39
CHƯƠNG 4: TÍNH TOÁN ĐỘNG HỌC VÀ THIẾT KẾ PHẦN MỀM ĐIỀU KHIỂN 40
4.1 Các thông số của Robot Delta 40
4.2 Động học nghịch 41
4.3 Động học thuận 47
4.4 Không gian làm việc của Robot Delta 52
4.5 Mô tả quy trình hoạt động và lưu đồ giải thuật của hệ thống 53
4.6 Lập trình, thiết kế phần mềm điều khiển và giao diện người dùng 57
4.6.1 Lập trình điều khiển Robot và các thiết bị 57
4.6.2 Lập trình, thiết kế phần mềm điều khiển và giao diện người dùng 57
CHƯƠNG 5: PHÁT HIỆN, PHÂN LOẠI VÀ XÁC ĐỊNH VỊ TRÍ ĐỐI TƯỢNG 59
5.1 Quy trình huấn luyện mô hình YOLO 59
5.2 Chuẩn bị tập dữ liệu 59
5.2.1 Thu thập dữ liệu 59
5.2.2 Dán nhãn dữ liệu 60
5.2.3 Phân chia tập dữ liệu 61
5.2.4 Tiền xử lý dữ liệu 61
5.2.5 Làm giàu dữ liệu 61
5.3 Quá trình huấn luyện 62
5.3.1 Quá trình huấn luyện trên phần mềm Google Colab 62
5.3.2 Kết quả huấn luyện 64
5.3.3 Đánh giá huấn luyện 67
5.4 Tính toán và xác định vị trí đối tượng 68 CHƯƠNG 6: KIỂM CHỨNG VÀ ĐÁNH GIÁ KẾT QUẢ THỰC NGHIỆM 72
Trang 146.1.2 Kiểm chứng động học nghịch trên checkerboard 74
6.1.3 Kiểm chứng động học thực tế 76
6.2 Kiểm chứng YOLO 78
6.2.1 Kiểm chứng và thử nghiệm lần thứ nhất 79
6.2.2 Kiểm chứng và thử nghiệm lần thứ hai 80
6.3 Đánh giá kết quả toàn hệ thống 80
CHƯƠNG 7: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 85
7.1 Kết luận 85
7.2 Hướng phát triển 85
TÀI LIỆU THAM KHẢO 86
PHỤ LỤC 88
Trang 15Bảng 1 1: Một số Robot phân loại rác trên thế giới 2
Bảng 1 2: Một số Robot Delta ở Việt nam 3
Bảng 1 3: Đề tài Robot phân loại tại trường Đại học Sư Phạm Kỹ Thuật TP.HCM 4 Bảng 3 1: Một số chi tiết khác của Robot Delta 29
Bảng 3 2: Động cơ Nema 17 30
Bảng 3 3: Bảng danh sách các thiết bị điện 31
Bảng 3 4: Bảng danh sách các thiết bị điều khiển 32
Bảng 3 5: Thông tin về Camera Logitech C920 33
Bảng 3 6: Các thiết bị cơ cấu khí nén 34
Bảng 3 7: Các chi tiết sau gia công 35
Bảng 3 8: Thông số của băng tải 36
Bảng 3 9: Hình ảnh trước và sau thi công tủ điện 39
Bảng 4 1: Thông số các chi tiết Robot 40
Bảng 5 1: Các bước huấn luyện mô hình YOLOv5 trên Google Colab 63
Bảng 5 2: Chương trình cụ thể các bước huẩn luyện 63
Bảng 6 1: Nhập tọa độ để kiểm chứng động học TH1 72
Bảng 6 2: Nhập tọa độ để kiểm chứng động học TH2 73
Bảng 6 3: Nhập góc và vị trí kiểm chứng động học trên checkerboard 75
Bảng 6 4: Nhập tọa độ góc để kiểm chứng động học thực tế 76
Bảng 6 5: Huấn luyện với dữ liệu 515 ảnh (ánh sáng bình thường) 79
Bảng 6 6: Huấn luyện với dữ liệu 515 ảnh (ánh sáng tối) 79
Bảng 6 7: Huấn luyện với dữ liệu 1026 ảnh (ánh sáng bình thường) 80
Bảng 6 8: Huấn luyện với dữ liệu 1026 ảnh (ánh sáng tối) 80
Bảng 6 9: Quy trình giai đoạn hoạt động của hệ thống 81
Bảng 6 10: Bảng đánh giá hệ thống lần 1 83
Bảng 6 11: Bảng đánh giá hệ thống lần 2 83
Trang 17Hình 2 1: Quy trình phân loại rác 7
Hình 2 2: Một số mô hình Robot Delta 8
Hình 2 3: Arduino Mega 2560 9
Hình 2 4: Sơ đồ chân Arduino Mega 2560 9
Hình 2 5: Một số loại động cơ bước 10
Hình 2 6: Driver A4988 10
Hình 2 7: Board shield V3 11
Hình 2 8: Phần mềm Roboflow 12
Hình 2 9: Phần mềm Google Colab 12
Hình 2 10: Cấu trúc mạng CNN 13
Hình 2 11: Thuật toán của lớp tích chập 14
Hình 2 12: So sánh giữa Max Pooling và Average Pooling 14
Hình 2 13: Quá trình làm phẳng 14
Hình 2 14: Cấu tạo của lớp kết nối đầy đủ 15
Hình 2 15: Cấu trúc mô hình YOLOv5 16
Hình 2 16: Cấu trúc trích xuất đặc trưng của YOLOv5 16
Hình 2 17: Các feature map của mô hình YOLOv5 với đầu vào ảnh 416x416 17
Hình 2 18: Anchor box trong feature map 18
Hình 2 19: Công thức dự đoán Bounding box từ Anchor box 19
Hình 2 20: Thuật toán Non-max suppression 19
Hình 2 21: Công thức tính IOU 21
Hình 2 22: Confusion Matrix cho hai đối tượng 21
Hình 2 23: Quy trình chuyển đổi hệ tọa độ 23
Hình 3 1: Sơ đồ khối tổng quan hệ thống 24
Hình 3 2: Mô hình 3D Robot Delta a) Góc nhìn tổng quan; b) Góc nhìn từ ngoài vào; c) Góc nhìn từ trên xuống; d) Góc nhìn từ dưới lên 26
Trang 18Hình 3 4: Mô hình 3D đế di động Robot 27
Hình 3 5: Mô hình 3D khớp trên Robot 28
Hình 3 6: Mô hình 3D khớp hình bình hành Robot 28
Hình 3 7: Khung Robot 29
Hình 3 8: Mô hình thực tế sau khi thi công 36
Hình 3 9: Sơ đồ mạch động lực 37
Hình 3 10: Sơ đồ mạch điều khiển tổng quát 37
Hình 3 11: Sơ đồ kết nối Arduino-Board Shield V3 38
Hình 3 12: Sơ đồ kết nối Board Shield V3-Driver-Động cơ bước 38
Hình 3 13: Các thiết bị bên trong tủ điện 39
Hình 4 1: Mô hình động học của Robot Delta 40
Hình 4 2: Điểm cuối cùng của Robot và các góc 41
Hình 4 3: Giao tuyến của hình cầu và mặt phẳng yz 41
Hình 4 4: Giao điểm của 2 đường tròn 42
Hình 4 5: Hệ tọa độ mới ( ,x y z 47, )
Hình 4 6: Mô hình sau khi tịnh tiến J J J 481, 2, 3 Hình 4 7: Giao điểm 3 mặt cầu 48
Hình 4 8: Hình chiếu trên mặt phẳng xy 49
Hình 4 9: Không gian làm việc của Robot Delta trong a) Không gian 3 chiều xyz; Không gian 2 chiều b) xy; c) xz; d) yz 52
Hình 4 10: Lưu đồ tổng quan hệ thống 54
Hình 4 11: Lưu đồ khối xử lý tín hiệu 55
Hình 4 12: Lưu đồ khối điều khiển 55
Hình 4 13: Lưu đồ dự đoán Bounding box của YOLOv5 56
Hình 4 14: Lập trình điều khiển trên phần mềm Arduino IDE 57
Hình 4 15: Giao diện giới thiệu trên Visual Studio Code 58
Trang 19Hình 5 2: Tải dữ liệu lên phần mềm Roboflow 60
Hình 5 3: Dán nhãn theo Bounding box 60
Hình 5 4: Phân chia tập dữ liệu để huấn luyện 61
Hình 5 5: Dữ liệu sau khi đã được làm giàu 62
Hình 5 6: Các hình ảnh mới được tạo ra sau khi được làm giàu 62
Hình 5 7: Quá trình huấn luyện trên Google Colab 64
Hình 5 8: Kết quả huấn luyện với 185 ảnh đầu vào 65
Hình 5 9: Kết quả huấn luyện với hình ảnh 66
Hình 5 10: Kết quả huấn luyện với camera thời gian thực 66
Hình 5 11: Kết quả huấn luyện trên phần mềm Google Colab 67
Hình 5 12: Hệ tọa độ Robot Delta và không gian làm việc Camera 68
Hình 5 13: Xác định tọa độ tâm của vật từ Bounding box 68
Hình 5 14: Hệ tọa độ Pixel trong vùng làm viêc của camera 69
Hình 5 15: Hệ tọa độ Ảnh trong vùng làm viêc của camera 70
Hình 5 16: Tương quan giữa hệ tọa độ Ảnh và hệ tọa độ Robot 71
Hình 6 1: Hệ tọa độ Robot so với checkerboard 74
Hình 6 2: Camera với ánh sáng bình thường 78
Hình 6 3: Camera với ánh sáng tối 78
Trang 20Từ viết tắt Tên tiếng Anh Tên tiếng Việt
YOLOv5 You Only Look Once Version 5
GPS Global Positioning System Hệ thống định vị toàn cậu CNN Convolution Neural Network Mạng nơ-ron tích chập IOU Intersection Over Union
VCC Voltage at the common collector
UART Universal Asynchronous
Receiver-Transmitter GPU Graphics Processing Unit
TPU Tensor Processing Unit
CPU Central Processing Unit
Trang 21CHƯƠNG 1: TỔNG QUAN
Trong chương đầu tiên nhóm sẽ đưa ra thực trạng vấn đề rác thải đang là một vấn đề lớn và cực kỳ cấp thiết trên thế giới Từ những nghiên cứu trên thế giới, những nghiên cứu ở Việt Nam cũng như tại Trường Đại học Sư Phạm Kỹ Thuật TP.HCM, nhóm nhận thấy vấn đề áp dụng Robot trong phân loại rác thải vẫn chưa thực sự được
áp dụng rộng rãi và nhóm quyết định chọn đề tài này Nhóm sẽ trình bày mục tiêu nhóm đặt ra, nội dung nhóm đã thực hiện được cũng như những vấn đề còn hạn chế
và đưa ra những phương pháp đánh giá đã sử dụng
1.1 Đặt vấn đề
Trong thời điểm công nghiệp hóa, hiện đại hóa hiện nay cùng với sự gia tăng dân số nhanh chóng dẫn đến lượng rác thải công nghiệp và rác thải sinh hoạt cũng tăng lên rất nhanh Trung bình mỗi năm con người tạo ra 1,3 tỷ tấn chất thải rắn đô thị và chỉ trong năm 2020 thế giới thải ra hơn hai tỷ tấn rác thải rắn Với số lượng khổng lồ và chủng loại đa dạng, vấn đề xử lý rác thải đã và đang là một vấn đề lớn trên thế giới, đặc biệt là ở các nước đang phát triển Vấn đề này bắt buộc phải được thực hiện vì nó không chỉ ảnh hưởng tới môi trường sống bị ô nhiễm mà còn ảnh hưởng trực tiếp tới đời sống và sức khỏe của con người Việc thu gom, phân loại
và xử lý rác thủ công mất rất nhiều thời gian và công sức cũng như ảnh hưởng đến sức khỏe trực tiếp của người thực hiện công việc Chính vì thế với sự phát triển nhanh chóng và vượt bậc của quá trình công nghiệp hóa, hiện đại hóa trên thế giới, các nước lớn đang dần áp dụng quá trình tự động hóa vào trong công nghiệp và sinh hoạt Các hệ thống, dây chuyền tự động và Robot đang được ứng dụng ngày càng nhiều với ưu điểm tốc độ xử lý và thực hiện công việc nhanh gấp nhiều lần cũng như có thể thay thế hoàn toàn con người trong các công việc nguy hiểm Đây chính là giải pháp cho vấn đề phân loại rác thải
1.2 Tình hình nghiên cứu
1.2.1 Nghiên cứu nước ngoài
Trước thực trạng trên, nhiều quốc gia đang phát triển, tổ chức quốc tế, các nhóm nghiên cứu và doanh nghiệp đang đi tiên phong nỗ lực tìm kiếm những giải pháp mới hiệu quả nhằm hạn chế, thu thập và xử lý triệt tiêu lượng rác thải Một số hãng sản xuất Robot lớn trên thế giới như ABB, AMP, Machinex,… đã thiết kế và cho ra mắt các loại Robot với các tính năng và công việc khác nhau nhằm giải quyết các vấn đề rác thải Có thể nói ứng dụng Robot vào công việc xử lý rác thải sẽ là xu thế toàn cầu trong nhiều năm tiếp theo
Trang 22Bảng 1 1: Một số Robot phân loại rác trên thế giới
+ Công ty FANUC + Sản xuất năm 2021 + Nước Nhật Bản + Công suất: 55 lần nhặt/ phút + Loại rác: rác thải nhựa + Cơ cấu hút
+ Công ty CSAIL + Sản xuất năm 2019 + Nước Mỹ
+ Công suất: 10-15 lần nhặt/ phút + Loại rác: rác thải nhựa
+ Cơ cấu gắp
+ Công ty AMP + Sản xuất năm 2022 + Nước Mỹ
+ Công suất: 80 lần nhặt/ phút + Loại rác: rác thải sinh hoạt + Cơ cấu hút
1.2.2 Nghiên cứu trong nước
Tại Việt Nam, việc nghiên cứu phát triển Robot đã có những bước tiến đáng
kể trong nhiều năm qua Nhiều đơn vị trên toàn quốc thực hiện thành công các nghiên cứu về ứng dụng của Robot như: Trung tâm Tự động hóa thuộc Bộ Công nghiệp, Đại học Bách khoa Thành phố Hồ Chí Minh, Đại học Sư Phạm Kỹ Thuật Thành phố Hồ Chí Minh, Viện Khoa học và Công nghệ quân sự, Học viện Kỹ thuật Quân sự, Viện
Cơ học, Việt Nam đã có các công ty lớn, nhỏ chuyên thiết kế, sản xuất và xuất khẩu Robot có thể kể đến nổi bật như: Next Robotics, Tosy, Ngoài ra các công ty, xí nghiệp lớn cũng đang từng bước áp dụng Robot vào trong các hệ thống, dây chuyền sản xuất tự động của họ nhằm cải thiện năng suất cũng như giảm thiểu chi phí nhân
Trang 23lực Có thể kể đến một số tập đoàn lớn đã ứng dụng Robot vào trong quy trình sản xuất của họ: Vinfast với hơn 1000 Robot phục vụ cho việc sản xuất ô tô, SamSung
sử dụng các tay Robot trong sản xuất, lắp ráp linh kiện, Điều đó cho thấy Việt Nam cũng đã và đang từng bước làm chủ công nghệ Robot, không để bị bỏ xa trong lĩnh vực công nghệ này Tuy nhiên hầu hết các ứng dụng về Robot ở nước ta chủ yếu được
sử dụng trong các nhà máy sản xuất, vận chuyển hàng hóa hoặc y tế Rất ít người nghĩ đến việc ứng dụng Robot cho vấn đề phân loại rác thải, hầu hết chỉ dừng lại ở những nghiên cứu tại các trường đại học chứ chưa ứng dụng vào các nhà máy công nghiệp Đối với các ứng dụng yêu cầu về độ chính xác, tốc độ xử lý nhanh và hoạt động với công suất lớn như: phân loại rác thải, đính linh kiện, Thì các loại Robot nối tiếp thông thường không thể đáp ứng được Chính vì vậy các loại Robot song song, Robot Delta đã được thiết kế ra nhằm giải quyết các vấn đề đó Với thiết kế nhỏ gọn, tốc độ
xử lý nhanh với các đối tượng nhẹ cũng như dễ dàng lắp ráp và tích hợp vào các hệ thống khác nhau, Robot Delta chính là loại Robot phù hợp nhất trong vấn đề xử lý rác thải
Bảng 1 2: Một số Robot Delta ở Việt nam
+ Ứng dụng rộng rãi tại các nhà máy sản xuất trong các công đoạn: xử lý, phân loại và đóng gói sản phẩm với tốc độ và độ chính xác cao
+ Được dùng phổ biến trong các tác
vụ gắp thả và sắp xếp sản phẩm trên băng chuyền sản xuất công nghiệp + Mẫu Delta X phù hợp cho công việc nghiên cứu và thử nghiệm của các phòng Lab về Robotics
Trang 241.2.3 Nghiên cứu tại trường Đại học Sư Phạm Kỹ Thuật TP Hồ Chí Minh
Đã có rất nhiều nghiên cứu về Robot tại trường Đại học Sư Phạm Kỹ Thuật
TP Hồ Chí Minh trong những năm gần đây tuy nhiên chủ yếu những nghiên cứu chỉ dừng lại ở phòng thí nghiệm chứ chưa có tính ứng dụng vào môi trường công nghiệp Các đề tài về Robot chủ yếu liên quan đến phân loại sản phẩm, dò tìm đường đi, xác định vị trí,… Nhìn chung vẫn chưa có nhiều nghiên cứu về vấn đề ứng dụng Robot trong việc phân loại và xử lý rác thải
Bảng 1 3: Đề tài Robot phân loại tại trường Đại học Sư Phạm Kỹ Thuật TP.HCM
Robot Scara 3 bậc
tự do, sử dụng hệ thống thị giác máy tính phân loại rác thải nhựa
+ Còn hạn chế số lượng đối tượng phân loại, về vị trí phân loại
Thiết kế và chế tạo
hệ thống phân loại
rác tự động
Nguyễn Đức Lợi Lương Công Hiệu
Võ Nhựt Minh
Thiết kế mô hình Robot Scara phân loại rác thải
+ Tốc độ phân loại chưa cao
Phân loại sản phẩm
linh hoạt ứng dụng
Robot và xử lý ảnh
Lê Đức Kông Nguyễn Văn Thiên
Thiết kế mô hình Robot Delta phân loại sản phẩm theo màu sắc
+ Tốc độ và độ chính xác chưa cao
Sau khi tham khảo các đề tài ứng dụng Robot phân loại của một vài nhóm nghiên cứu tại trường Đại học Sư Phạm Kỹ thuật, nhóm nhận thấy nhìn chung các đề tài đã có thể thiết kế và thi công các hệ thống Robot phân loại khác nhau nhưng vẫn còn rất nhiều hạn chế như: tốc độ xử lý vẫn còn chưa cao, chỉ có thể phân loại với một số ít các đối tượng khác nhau chưa thể mở rộng thêm Bên cạnh đó, các đề tài Robot Delta ở trường cũng chỉ mới dừng lại trong việc phân loại sản phẩm Mà xu thế toàn cầu hiện nay là ứng dụng xử lý ảnh và trí tuệ nhân tạo vào trong các hệ thống
tự động hóa vẫn chưa được áp dụng nhiều dẫn đến những đề tài này vẫn chưa thể sử dụng vào trong công nghiệp Đối với vấn đề phân loại rác thải thì chỉ mới có một vài nhóm nghĩ đến và thực hiện những bước đầu tiên trong khi vấn đề rác thải trong công nghiệp không đơn giản như vậy Chính vì những yếu tố trên cũng như muốn tiếp cận thế giới trong lĩnh vực Robot, tự động hóa nhóm quyết định chọn đề tài “THIẾT KẾ
MÔ HÌNH ROBOT DELTA ỨNG DỤNG PHÂN LOẠI RÁC THẢI”
Trang 251.3 Mục tiêu đề tài
Thiết kế, thi công và điều khiển mô hình Robot Delta Xây dựng và huấn luyện
mô hình YOLOv5 phân loại 2 loại rác thải (chai nhựa và lon) Kết hợp giải thuật phân loại và xác định vị trí điều khiển Robot phân loại rác thải
1.4 Nội dung nghiên cứu
Chương 1 nhóm đã đưa ra các vấn đề liên quan, lý do chọn đề tài, tình hình nghiên cứu trong và ngoài nước cũng như mục tiêu, giới hạn của đề tài Tiếp theo nhóm trình bày các cơ sở lý thuyết đã áp dụng để thực hiện để tài về Robot Delta và
mô hình YOLOv5 trong chương 2 Ở chương 3 sẽ trình bày cách thiết kế mô hình, lựa chọn thiết bị và các công đoạn thi công Chương 4 nhóm sẽ tính toán động học, xây dựng chương trình điều khiển Robot và trình bày lưu đồ giải thuật hệ thống Tiếp theo sẽ trình bày các bước huấn luyện mô hình YOLOv5 cho 2 đối tượng rác thải ở chương 5 Chương 6 sau khi đã huấn luyện mạng thành công sẽ áp dụng vào mô hình, tiến hành chạy thực nghiệm và đánh giá kết quả phân loại Cuối cùng sẽ đưa ra kết luận và hướng phát triển trong tương lai ở chương 7
1.5 Giới hạn đề tài
Trong đề tài này vì nhóm tham khảo một số mô hình Robot Delta nhưng vì kiến thức về cơ khí còn hạn chế nên quá trình thiết kế và thi công Robot vẫn chưa tối
ưu, Robot vẫn còn bị rung lắc khi hoạt động với tốc độ cao
Ngoài ra nhóm chỉ huấn luyện mô hình YOLOv5 phân loại với 2 đối tượng (chai nhựa, lon) chưa thể phân loại với nhiều đối tượng hơn Tốc độ phân loại đối tượng chưa cao
1.6 Phương pháp đánh giá kết quả
Trong quá trình thực hiện có nhiều bước cần phải đánh giá và kiểm chứng lại quá trình thực hiện để đảm bảo sai số phải ở mức tối thiểu và tốc độ phải tối ưu Một
số cách và ứng dụng mà nhóm đã thực hiện để đánh giá lại quá trình thực hiện đề tài:
• Đánh giá tính toán động học và quy hoạch quỹ đạo: nhóm đã tiến hành lập trình điều khiển thuận nghịch cho Robot, sau đó tổng hợp và đưa ra sai số cho phép từ đó điều chỉnh phần lập trình và phần cứng
• Đánh giá quá trình huấn luyện mô hình YOLO: tiến hành ghi nhận lại
số lượng phân loại chính xác và chưa chính xác, lập ra ma trận Confusion Matrix và đánh giá mô hình huấn luyện qua các thông số Recall, Precision và F1-score
Trang 26CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Chương này trình bày tổng quan và khái quát cơ sở lý thuyết các nội dung liên quan được thực hiện trong đề tài Trình bày về các phương pháp phân loại rác Giới thiệu về cấu tạo và nguyên lý hoạt động Robot Delta Giới thiệu chung về các thiết bị
sử dụng trong đề tài Giới thiệu tổng quan về thị giác máy tính và xử lý ảnh Giới thiệu cấu trúc mạng thần kinh CNN, mô hình YOLO và các phương pháp đánh giá Cuối cùng nói về phương pháp chuyển đổi hệ tọa độ xác định vị trí đối tượng
2.1 Giải thuật phân loại rác và quy trình thực hiện
Để có thể thiết kế một hệ thống phân loại và xử lý rác thải tự động ta sẽ phải quan tâm đến hai yếu tố là giải thuật phân loại và cơ cấu thực hiện phân loại Cả hai yếu tố này đều ảnh hưởng đến độ chính xác cũng như tốc độ phân loại rác của hệ thống
2.1.1 Giải thuật phân loại rác thải
Giải thuật phân loại là phương pháp xác định ra và kiểm tra xem đó là loại rác thải nào cũng như cho biết vị trí chính xác của loại rác đó đang ở đâu trong một vùng không gian xác định
Đối với giải thuật phân loại thì có rất nhiều phương pháp khác nhau tùy thuộc vào độ sáng tạo cũng như kiến thức của người thiết kế hệ thống Chúng ta có thể sử dụng, kết hợp các công cụ khác nhau để kiểm tra, phân loại và đưa ra vị trí của loại rác thải Hiện nay có rất nhiều phương pháp để phân loại rác thải như: Sử dụng các loại cảm biến khác nhau, sử dụng camera quang phổ, huấn luyện mạng thần kinh nhân tạo
❖ Phương pháp đầu tiên cũng là phương pháp phổ biến nhất trên thế giới hiện nay là sử dụng các loại cảm biến để xác định Ta có thể sử dụng các loại cảm biến khác nhau để phân loại ra các loại rác thải khác nhau như: cảm biến kim loại với rác thải kim loại, cảm biến độ ẩm với rác thải hữu cơ,…
• Ưu điểm: tốc độ xác định, phân loại nhanh và độ chính xác cũng khá cao Ngoài ra không phải sử dụng thêm các thiết bị khác để xác định vị
trí như camera
• Nhược điểm: chỉ phân loại được một số loại rác cố định, không thể mở rộng đối tượng phân loại
❖ Một phương pháp nữa cũng được dùng để phân loại rác thải trên thế giới đó
là sử dụng camera quang quổ Phương pháp là đo sự phản xạ ánh sáng của
Trang 27các loại rác thải khác nhau để phân loại và thường được ứng dụng trong các ứng dụng phân loại rác thải trong xây dựng
• Ưu điểm: Có thể ứng dụng vào trong nhiều ứng dụng khác nhau đặc
biệt là phân loại rác thải công nghiệp và xây dựng
• Nhược điểm: Phải sử dụng song song 2 camera và phải có thêm những khâu tiền xử lý rác thải vì không thể phân biệt được những đối tượng
có chỉ số phản xạ gần bằng nhau
❖ Phương pháp cuối cùng được cho là có tính ứng dụng cao nhất là huấn luyện mạng thần kinh nhân tạo Với tập dữ liệu đã được chuẩn bị trước để tiến hành huấn luyện
• Ưu điểm: Có thể phân loại rất nhiều loại rác thải khác nhau và có thể
mở rộng số lượng rác phân loại tùy thuộc vào số lượng và chất lượng của đầu vào huấn luyện ngoài ra tốc độ phân loại gần như cũng bằng thời gian thực
• Nhược điểm: Người huấn luyện mạng phải có một số kiến thức nhất định về xử lý ảnh và mạng thần kinh nhân tạo Trong quá trình huấn luyện mạng công đoạn chuẩn bị tập dữ liệu đầu vào sẽ tốn khoảng thời gian rất lớn và có thể ảnh hưởng đến chất lượng và tốc độ phân loại Mỗi phương pháp sẽ có các ưu nhược điểm khác nhau tùy vào mục đích của người sử dụng phương pháp Vì có nhiều ưu điểm như: tính ứng dụng, linh hoạt cao, ứng dụng các kiến thức về xử lý ảnh và mạng thần kinh nhân tạo phù hợp với đề tài nên nhóm đã lựa chọn tiến hành sử dụng phương pháp huấn luyện mạng thần kinh nhân tạo để thực hiện trong đề tài phân loại rác này
2.1.2 Quy trình thực hiện phân loại rác thải
Hình 2 1: Quy trình phân loại rác Quy trình thực hiện phân loại rác thải được thực hiện qua 5 bước:
Bước 1 - Nhận tín hiệu hoạt động: Người dùng thao tác trực tiếp trên giao diện
điều khiển để điều khiển Robot và các thiết bị hoạt động
Trang 28Bước 2 - Xử lý tín hiệu đầu vào: Đưa rác thải vào băng tải, khi đối tượng đi
qua vùng làm việc của camera thì mô hình sẽ phân loại và tính toán được vị trí của đối tượng
Bước 3 - Tính toán động học: Khi có được vị trí đối tượng thì tiếp tục tính
toán động học nghịch để gửi tín hiệu điều khiển cho Robot
Bước 4 - Gửi tín hiệu điều khiển: Bộ điều khiển sẽ tiến hành cấp xung cho các
động cơ
Bước 5 - Điều khiển Robot: Khi nhận được tín hiệu xung điều khiển từ động
cơ thì Robot sẽ thực thi việc phân loại
2.2 Giới thiệu Robot Delta
2.2.1 Cấu tạo Robot Delta
Robot Delta có cấu tạo bao gồm 2 phần đế song song: đế cố định ở trên để đặt các động cơ và đế di động ở dưới đặt cơ cấu chấp hành, 2 phần đế này được kết nối qua các cánh tay có dạng hình bình hành được điều khiển qua các động cơ được gắn trên đế cố định, đây chính là ưu điểm của Robot Delta so với các loại Robot thông thường khác Robot Delta chủ yếu làm việc với những ứng dụng ở hai mặt phẳng song song như đính lính kiện, phân loại sản phẩm,… Vì có kết cấu nhỏ gọn với chất liệu nhẹ, tốc độ làm việc của Robot Delta rất nhanh nhưng bù lại không thể làm việc với những ứng dụng yêu cầu chịu tải cao
Hình 2 2: Một số mô hình Robot Delta
2.2.2 Nguyên lý hoạt động Robot Delta
Nguyên lý hoạt động của Robot Delta là sử dụng các hình bình hành để tạo chuyển động đầu cuối cùng mà vẫn giữ nguyên hướng Tức là chỉ chuyển động theo
Trang 29hướng X, Y và Z mà không bị quay hướng Đế cố định được đặt ở phía trên chứa các động cơ điều khiển các khớp trên và khớp hình bình hành
Số bậc của Robot theo số khớp của Robot, trên thế giới đã sản xuất ra các mô hình Robot Delta 4,5,6 bậc nhưng phổ biến và ứng dụng vào công nghiệp nhiều nhất vẫn là Robot Delta 3 bậc
2.3 Giới thiệu chung về các thiết bị
2.3.1 Giới thiệu chung về Arduino
Arduino là một board mạch vi điều khiển do một nhóm giáo sư và sinh viên nước Ý thiết kế và đưa ra sử dụng đầu tiên vào năm 2005 Arduino có thể thực hiện nhiều nhiệm vụ như lấy tín hiệu từ cảm biến đến điều khiển đèn, động cơ, và nhiều đối tượng khác Ngoài ra Arduino còn có khả năng kết nối, tương tác với các thiết bị GPS, Internet, Camera, điện thoại di động,…
Trên thế giới hiện này có rất nhiều loại Arduino với các kích thước và cấu hình khác nhau nhưng trong đề tài lần này nhóm sử dụng Arduino Mega 2560 vì yêu cầu kết nối với số lượng thiết bị điều khiển khá lớn và cũng cần một tốc độ xử lý nhất định
Hình 2 3: Arduino Mega 2560
Hình 2 4: Sơ đồ chân Arduino Mega 2560
Trang 302.3.2 Giới thiệu chung về động cơ bước và bộ điều khiển động cơ
2.3.2.1 Giới thiệu về động cơ bước
Động cơ bước (còn gọi là Step Motor hay Stepping Motor) là một loại động
cơ sử dụng điện Động cơ bước quay theo từng bước một tùy theo số xung được cấp vào sẽ tạo thành một góc nào đó gọi là góc bước, nên có độ chính xác rất cao, đặc biệt là về mặt điều khiển Nếu góc bước càng nhỏ thì số bước trên mỗi vòng quay của động cơ càng lớn và độ chính xác của vị trí càng lớn
Các góc bước của động cơ thường được sử dụng phổ biến nhất là góc 1,8 độ, góc 2,5 độ, góc 7,5 độ và góc 15 độ vì đây là các góc thuận lợi cho việc tính toán nhất
Hình 2 5: Một số loại động cơ bước Hiện nay, có 4 phương pháp để điều khiển động cơ bước được sử dụng phổ biến nhất, đó là:
• Điều khiển động cơ bước dạng sóng (Wave)
• Điều khiển động cơ bước đủ (Full step)
• Điều khiển động cơ nửa bước (Half step)
• Điều khiển động cơ vi bước (Microstep)
2.3.2.2 Bộ điều khiển động cơ
Bộ điều khiển động cơ bước hay driver là thiết bị không thể thiếu khi sử dụng động cơ bước Tùy vào loại động cơ, tốc độ và ứng dụng sẽ có các driver phù hợp Trong đề tài lần này nhóm chọn driver A4988 vì kết cấu nhỏ gọn, dễ dàng kết nối lắp đặt cũng như đáp ứng khá tốt trong ứng dụng cấp xung
Hình 2 6: Driver A4988
Trang 31Ngoài ra nhóm còn sử dụng thêm một thiết bị tích hợp cho Arduino và driver A4988 là Board Shield V3 nhằm giảm số lượng đấu dây cũng như có thể điều khiển cùng lúc cả 3 động cơ
Hình 2 7: Board shield V3
2.4 Tổng quan thị giác máy tính, xử lý ảnh và các phần mềm
Thị giác máy tính và xử lý ảnh là hai lĩnh vực liên quan mật thiết với nhau, áp dụng một số kỹ thuật trí tuệ nhân tạo AI và nhận dạng mẫu để lấy thông tin có ý nghĩa
từ hình ảnh, video và một vài đầu vào trực quan khác
2.4.1 Giới thiệu về thị giác máy tính
Thị giác máy tính sử dụng xử lý hình ảnh để nhận dạng và phân loại dữ liệu hình ảnh Trên thực tế, thị giác máy tính đang trở nên phổ biến hơn trong việc xác định các đối tượng từ hình ảnh so với hệ thống nhận thức thị giác con người Công nghệ này ngày càng được sử dụng rộng rãi trong nhiều ngành nghề khác nhau như: công nghiệp, chăm sóc sức khỏe, giải trí, …
Mục đích trong việc sử dụng xử lý ảnh bao gồm:
• Sử dụng một số kỹ thuật khác nhau để phân loại đối tượng
• Phát triển các thuật toán trong xử lý ảnh để tăng hoặc giảm chất lượng ảnh đầu vào, lọc nhiễu, làm sắc nét, …
Trang 322.4.3 Giới thiệu phần mềm sử dụng trong quá trình huấn luyện
Nhóm sử dụng phần mềm Roboflow cho bước chuẩn bị tập dữ liệu đầu vào, Roboflow là một công cụ cho phép người dùng xây dựng các tập dữ liệu hình ảnh hoặc truy cập các tập dữ liệu đã có sẵn trong các ứng dụng đào tạo mô hình xử lý ảnh Roboflow có đầy đủ các chức năng cần thiết để chuyển đổi, xử lý hình ảnh đầu vào thành mô hình thị giác máy tính Được tích hợp rất nhiều thư viện kinh điển như: EfficientNet, MobileNet, YOLO, TensorFlow, Pytorch,… cho phép người dùng có thể triển khai dự án trên bất kì nền tảng nào
Hình 2 8: Phần mềm Roboflow Trong quá trình đào tạo, nhóm đã sử dụng ứng dụng Colaboratory hay Google Colab là một sản phẩm của Google Research Colab cho phép chạy chương trình trực tiếp trên trình duyệt mà không cần cài đặt hoặc yêu cầu về phần cứng của máy tính
để đáp ứng các yêu cầu về khối lượng công việc nặng về CPU/GPU Hơn nữa, Colab cung cấp quyền truy cập miễn phí vào cơ sở hạ tầng điện toán như bộ lưu trữ, bộ nhớ, khả năng xử lý, đơn vị xử lý đồ họa (GPU) và đơn vị xử lý tensor (TPU)
Colab cung cấp nhiều loại GPU, thường là Nvidia K80s, T4s, P4s và P100s, tuy nhiên người dùng không thể chọn loại GPU trong Colab, GPU trong Colab thay đổi theo thời gian Vì là dịch vụ miễn phí nên Colab sẽ có những ưu tiên thứ nhất trong việc sử dụng tài nguyên hệ thống, cũng như giới hạn thời gian sử dụng, thời gian sử dụng tối đa lên tới 12 giờ
Hình 2 9: Phần mềm Google Colab
❖ Ưu điểm của Google Colab:
• Google Colab miễn phí
• Cung cấp phần cứng mạnh mẽ cho việc chạy thử chương trình từ CPU, GPU đến TPU
• Dễ dàng sử dụng và truy cập, kết nối lưu trữ trực tiếp trên Google Drive, Github
Trang 33• Sử dụng được nhiều thư viện phổ biến dành cho DeepLearning như
Keras, TensorFlow, PyTorch và OpenCV
❖ Nhược điểm của Google Colab:
• Thời gian sử dụng có giới hạn, sau 12 giờ dữ liệu của colab sẽ bị đặt lại
• Không thể tùy chọn cấu hình phần cứng, với tài khoản miễn phí
2.5 Giới thiệu mạng thần kinh CNN và mô hình YOLO
2.5.1 Cấu trúc mạng thần kinh CNN
Hình 2 10: Cấu trúc mạng CNN CNN (Convolution Neural Network) hay còn gọi là mạng nơ-ron tích chập là một trong những mô hình Deep Learning vô cùng tiên tiến ứng dụng mạng thần kinh Nơ-ron CNN cho phép xây dựng các hệ thống thông minh với độ chính xác vô cùng cao
Mạng CNN được xây dựng theo một kiến trúc tuần tự Cấu trúc mạng CNN là một chuỗi các lớp có nhiệm vụ khác nhau, bao gồm:
❖ Lớp tích chập (Convolutional Layer):
Đây là lớp quan trọng nhất của CNN, là lớp đầu tiên để trích xuất các tính năng, đặc trưng từ hình ảnh đầu vào Ma trận điểm ảnh đầu vào sẽ được nhân tích chập với các ma trận lọc (thường có kích thước 3x3, 5x5, 7x7 và phải nhỏ hơn kích thước ma trận đầu vào) để tạo ra bản đồ đặc trưng hay feature map
Công thức toán học của lớp tích chập:
Trang 34Với I là ma trận ảnh đầu vào, K là kích thước của ma trận lọc có chiều rộng w
và chiều cao h
Hình 2 11: Thuật toán của lớp tích chập
❖ Lớp gộp (Pooling Layer)
Sau khi có được bản đồ đặc trưng từ lớp tích chập ta cần thực hiện gộp để giảm
số lượng thông số, giảm khối lượng tính toán Có hai phương pháp gộp là: Max Pooling và Average Pooling
Hình 2 12: So sánh giữa Max Pooling và Average Pooling
❖ Lớp làm phẳng (Flattening Layer)
Đây là một lớp đơn giản được sử dụng để chuẩn hóa dữ liệu từ lớp trước đó làm đầu vào cho lớp cuối cùng – lớp kết nối đầy đủ (Fully Connected Layer)
Hình 2 13: Quá trình làm phẳng
Trang 35❖ Lớp kết nối đầy đủ (Fully Connected Layer)
Lớp cuối cùng thực hiện quá trình phân loại là lớp kết nối đầy đủ (Fully Connected Layer) Các giá trị từ lớp làm phẳng sẽ được đưa qua các lớp của mạng nơ-ron, mạng sẽ dự đoán ra xác suất và vị trí của từng đối tượng Cuối cùng mô hình tính toán hàm loss function và sử dụng thuật toán lan truyền ngược để cập nhật trọng
số với mục tiêu hàm loss function sẽ tiến về 0 Quá trình này được thực hiện đến khi
hết chù kỳ
Hình 2 14: Cấu tạo của lớp kết nối đầy đủ
2.5.2 Mô hình YOLO (You Only Look Once)
Mô hình YOLO đã được giới thiệu bởi Joseph Redmon vào năm 2016 là một
mô hình mạng CNN ứng dụng nhận dạng và phân loại đối tượng dựa vào dự đoán các bounding box Về độ chính xác thì YOLO có thể không phải là thuật toán chính xác nhất nhưng là thuật toán nhanh nhất trong các mô hình phát hiện đối tượng YOLO không chỉ là thuật toán phát hiện và dán nhãn cho bài toán phân loại mà còn xác định được vị trí của vật thể trong không gian
Mô hình YOLO có rất nhiều phiên bản khác nhau và được cập nhật liên tục nhưng trong đề tài này nhóm sử dụng phiên bản YOLOv5 trong việc huấn luyện phân loại vì tính chính xác cũng như tốc độ xử lý của nó
2.5.2.1 Kiến trúc mô hình YOLO
Kiến trúc mô hình YOLOv5 cũng giống như kiến trúc mạng CNN bao gồm các lớp tích chập giúp trích xuất các feature map, các lớp gộp để giảm thông số tính toán, lớp làm phẳng để chuẩn bị đầu vào cho mạng nơ-ron và lớp kết nối đầy đủ sẽ
dự đoán xác suất và vị trí của từng đối tượng
Trang 36Hình 2 15: Cấu trúc mô hình YOLOv5 Cấu trúc trích xuất đặc trưng của mô hình YOLOv5 còn gọi là cấu trúc CSPDarknet53 gồm 6 lớp convolution, 5 lớp pooling và 5 lớp CSPResblock
Hình 2 16: Cấu trúc trích xuất đặc trưng của YOLOv5
Trang 372.5.2.2 Đầu vào của YOLOv5
YOLOv5 hỗ trợ các đầu vào ảnh với 2 kích thước 416x416 và 608x608 Khi ảnh được đưa vào sẽ thu được các feature map với kích thước nhỏ hơn để dự đoán vật thể trên từng ô Với đầu vào 416x416 thì mô hình sẽ dự đoán trên 3 feature map 13x13, 26x26 và 52x52, còn với đầu vào 608x608 thì mô hình sẽ dự đoán trên 3
feature map 19x19, 38x38 và 72x72
2.5.2.3 Feature map
Mô hình YOLOv5 phát hiện vật thể dựa trên 3 bản đồ đặc trưng hay feature map khác nhau từ lớn tới nhỏ Những feature map có kích thước nhỏ giúp dự báo được các đối tượng có kích thước lớn Ngược lại những feature map có kích thước
lớn sẽ giúp dự báo các đối tượng kích thước nhỏ
Hình 2 17: Các feature map của mô hình YOLOv5 với đầu vào ảnh 416x416
2.5.2.4 Anchor box
Sau khi có được các feature map với các kích thước khác nhau YOLOv5 sẽ tạo ra các anchor box trong từng ô của feature map Dựa vào các anchor box này thuật toán regression bounding box sẽ dự đoán ra vị trí đối tượng và đóng khung lại, các khung này còn gọi là bounding box của vật thể
Số lượng anchor box sẽ được quy định, nếu số lượng anchor box trong từng ô của feature map càng nhiều thì sẽ giúp cho việc phân loại càng chính xác tuy nhiên
sẽ làm giảm tốc độ phân loại Thường thì số lượng anchor box được chọn cho mỗi ô
sẽ là 3 anchor box với kích thước khác nhau
Trang 38Hình 2 18: Anchor box trong feature map
2.5.2.5 Bounding box
Sau khi đã chọn được các anchor box cho từng ô, thuật toán sẽ dự đoán ra các bounding box cho mỗi ô dựa trên những anchor box Với anchor box có kích thước
w
( p , ph) tại ô ( ,c c x y) thuật toán sẽ dự đoán ra bounding box có kích thước ( b bw, h)
và tâm ( , b bx y) dựa vào công thức:
( ) ( ) ( )
2
x y w h
Trang 39Hình 2 19: Công thức dự đoán Bounding box từ Anchor box
2.5.2.6 Non-max suppression
Sau khi đã dự đoán thành công các bounding box của vật thể cho từng ô thì lúc này sẽ có rất nhiều bounding box bị trùng lập hoặc không liên quan Trong trường hợp đó thuật toán Non-max suppression sẽ được thực hiện để loại bỏ những bounding box với xác suất thấp hoặc trùng lập chỉ giữ lại duy nhất 1 bounding box
Hình 2 20: Thuật toán Non-max suppression
2.5.2.7 Loss Function
Hàm loss function là hàm đo độ sai số của mô hình trong quá trình huấn luyện Mục tiêu của việc huấn luyện là tìm ra bộ thông số phù hợp nhất để hàm loss function tiến về 0 nghĩa là mô hình đã được huấn luyện tốt
Hàm loss function của YOLO chia thành 2 thành phần: L loc(localization loss)
đo sai số vị trí của bounding box dự đoán và L cls(confidence loss) đo sai số của phân phối xác suất
Trang 40ij i i i i i i i i loc coord
• Cij: Điểm tin cậy của ô i
• Cˆij: Điểm tự tin dự đoán
• p c i( ): Xác suất của ô i có chứa đối tượng của lớp c trong tập C
• p cˆi( ): Xác suất có điều kiện dự đoán
2.5.2.8 Đầu ra của YOLOv5
Đầu ra mô hình YOLO là một vector:
• p0 là tỉ lệ có vật thể trong bounding box
• ( , , , ) t t t tx y w h lần lượt là vị trí tọa độ tâm, chiều rộng, chiều cao của bounding box
• ( , p p1 2, pn) là vector dự đoán sẽ có đối tượng nào trong bounding box
• Cứ mỗi 1 anchor box sẽ cho ra (n + 5) đầu ra (n là số đối tượng huấn luyện) Nếu ta sử dụng 3 anchor box cho mỗi ô và với feature map có kích thước 13x13 thì số lượng output sẽ là: 13x13x3x(n+5)