Phần mềm thực hiện: 1.1 Ngôn ngữ Python và phần mềm Pycharm: 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
Trang 1TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
KHOA: ĐIỆN- ĐIỆN TỬBỘ MÔN ĐIỀU KHIỂN HỌC
BÁO CÁO BÀI TẬP LỚN Môn: Xử lý ảnh trong công nghiệp và giao thông.
Đề tài: Nhận diện người đeo khẩu trang.Người thực hiện: Đàm Hoàng Nam.Mã sinh viên: 211611369.
Lớp: Kỹ thuật điều khiển và Tự động hóa 2 – K62.Giảng viên hướng dẫn: Nguyễn Hoàng Vân.
Hà Nội, 12/2023
Trang 2Mục Lục
I Giới thiệu và lý do thực hiện đề tài 3
1 Giới thiệu đề tài 3
2 Lý do thực hiện đề tài 3
II Phần mềm, thuật toán và thư viện dùng trong đề tài 3
1 Phần mềm thực hiện: 3
1.1 Ngôn ngữ Python và phần mềm Pycharm: 3
2 Thư viện OpenCV: 3
2.1 OpenCV là gì? 3
2.2 Ứng dụng của OpenCV: 4
3 Thuật toán YOLO: 4
3.1 YOLO là gì? 4
3.2 Thuật toán YOLO có một số ưu điểm nổi bật, bao gồm: 4
3.3 Kiến trúc của thuật toán YOLO bao gồm ba lớp: 5
3.4 Quá trình phát hiện đối tượng của thuật toán YOLO được thực hiện theo các bước sau: 5
III, Nội dung thực hiện 5
1, Sơ đồ thuật toán: 5
Trang 3I Giới thiệu và lý do thực hiện đề tài.1 Giới thiệu đề tài.
Đề tài này tập trung vào việc phát triển một hệ thống nhận diện để xácđịnh xem một người có đang đeo khẩu trang hay không
2 Lý do thực hiện đề tài.
Trong bối cảnh đại dịch toàn cầu như COVID-19, việc đeo khẩu trang làmột biện pháp hiệu quả để ngăn chặn sự lây lan của virus Để hỗ trợ quản lý antoàn và giám sát tình hình sức khỏe cộng đồng, việc phát triển hệ thống nhậndiện người đeo khẩu trang trở nên quan trọng
II Phần mềm, thuật toán và thư viện dùng trong đề tài.1 Phần mềm thực hiện:
1.1 Ngôn ngữ Python và phần mềm Pycharm: 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 (ML) 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ấtcả các loại hệ thống và tăng tốc độ phát triển
Pycharm là một nền tảng kết kết hợp được JetBrains phát triển như một IDE
(Môi trường phát triển tích hợp) để phát triển các ứng dụng cho lập trình trong
Python Một số ứng dụng lớn như Tweeter, Facebook, Amazon và Pinterest sử dụng Pycharm để làm IDE Python của họ
2 Thư viện OpenCV: 2.1 OpenCV là gì?
OpenCV là tên viết tắt của open source computer vision library – có thể được hiểu là một thư viện nguồn mở cho máy tính Cụ thể hơn OpenCV là kho lưu trữ các mã nguồn mở được dùng để xử lý hình ảnh, phát triển các ứng dụng đồ họa trong thời gian thực
OpenCV cho phép cải thiện tốc độ của CPU khi thực hiện các hoạt động realtime Nó còn cung cấp một số lượng lớn các mã xử lý phục vụ cho quy trình của thị giác máy tính hay các learning machine khác.
Trang 42.2 Ứng dụng của OpenCV:
OpenCV được cho là một phần mềm đa nhiệm Nó được ứng dụng trong rấtnhiều trường hợp khác nhau Ví dụ, ta sẽ nói về các phần mềm định vị, bản đồ nóichung Hẳn rằng trong chúng ta ai cũng đã có ít nhất một lần cần sử dụng đến cácmap online đúng không Bạn sử dụng các map để tìm đường, tra cứu tình hình giaothông hoặc đơn giản là xem xét các hình ảnh thực tế của địa điểm cần đến Nhữnglúc như vậy, OpenCV đóng vai trò là nhà cung cấp dữ liệu hình ảnh cho các app vềMap này OpenCV sẽ đem đến cho người dùng hình ảnh về đường phố hay các cănnhà, con người xung quanh địa điểm được chỉ định
OpenCV còn được dùng để khởi tạo ra những hình ảnh 3 chiều phức tạp.Hoạt động này rất được yêu thích, nhất là trong thời đại trí tuệ nhân tạo AI pháttriển như thế này
Đối với các công nghệ hiện đại, OpenCV cũng là một yếu tố không thểthiếu Tất cả những ứng dụng công nghệ như robot, xe tự lái, bảng cảm ứng thôngminh… đều có sự góp mặt của OpenCV trong khâu xử lý hình ảnh Ví dụ gần gũinhất trong cuộc sống có thể kể đến hệ thống mở khóa điện thoại bằng cách nhậndiện khuôn mặt người dùng
3 Thuật toán YOLO:3.1 YOLO là gì?
Thuật toán YOLO (You Only Look Once) là một thuật toán phát hiện đối tượng trong hình ảnh sử dụng mạng nơ-ron tích chập (CNN – Convolutional Neural Network) Thuật toán này được giới thiệu lần đầu tiên trong bài báo "YOLO: Real-Time Object Detection" của Joseph Redmon và Ali Farhadi vào năm2015
3.2 Thuật toán YOLO có một số ưu điểm nổi bật, bao gồm:
Tốc độ nhanh: Thuật toán YOLO chỉ cần nhìn qua hình ảnh một lần để phát hiện tất cả các đối tượng Điều này giúp thuật toán này có tốc độ nhanh hơn nhiều so với các thuật toán phát hiện đối tượng truyền thống
Trang 5Độ chính xác cao: Thuật toán YOLO đã đạt được độ chính xác cao trong các bài kiểm tra thực tế
Đơn giản: Thuật toán YOLO có cấu trúc đơn giản, dễ hiểu và dễ triển khai
3.3 Kiến trúc của thuật toán YOLO bao gồm ba lớp:
Lớp đầu tiên: Lớp này thực hiện việc trích xuất các đặc trưng từ hình ảnh Lớp thứ hai: Lớp này thực hiện việc dự đoán các hộp chứa đối tượng Lớp thứ ba: Lớp này thực hiện việc dự đoán các nhãn của đối tượng Lớp đầu tiên của thuật toán YOLO sử dụng một mạng CNN để trích xuất các đặc trưng từ hình ảnh Các đặc trưng này sau đó được sử dụng bởi lớp thứ hai để dự đoán các hộp chứa đối tượng
Lớp thứ hai của thuật toán YOLO sử dụng một mạng CNN khác để dự đoán cáchộp chứa đối tượng Hộp chứa đối tượng được biểu thị bởi bốn số thực: x_min, y_min, x_max, và y_max Các số này xác định vị trí và kích thước của hộp Lớp thứ ba của thuật toán YOLO sử dụng một mạng CNN khác để dự đoán các nhãn của đối tượng Nhãn của đối tượng là một số nguyên xác định loại đối tượng
3.4 Quá trình phát hiện đối tượng của thuật toán YOLO được thực hiện theo các bước sau:
Hình ảnh được đưa vào lớp đầu tiên để trích xuất các đặc trưng Các đặc trưng được sử dụng bởi lớp thứ hai để dự đoán các hộp chứa đối tượng
Các hộp chứa đối tượng được sử dụng bởi lớp thứ ba để dự đoán các nhãn của đối tượng
III, Nội dung thực hiện.1, Sơ đồ thuật toán:
Bắt Đầu
Tạo đối tượngđể
Trang 62, Thực hiện:2.1 Custom Dataset:
Truy cập Roboflow để tải Dataset:
Sau khi tải xuống Dataset có dạng:
Trong đó:
- File ‘test’ để kiểm thử model sau khi hoàn tất quá trình học máy - File ‘train’ dùng cho quá trình học máy, trích xuất đặc trưng của đối tượng cần phát hiện
- File ‘valid’ là tập các giá trị để kiểm thử độ chính xác của model trong quá trình học máy
- File ‘data.yaml’để tổng hợp dữ liệu - Trong mỗi file ‘test’, ‘train’, ‘valid’ có chứa 2 file con ‘images’ chứaảnh và ‘labels’ chứa tên của đối tượng + tọa độ điểm của hộp bao đối tượng
Trang 7Tải các file vừa tải lên drive cá nhân:
Dùng googlecolab để huấn luyện model:Truy cập googlecolab mở sổ tay mới
Trang 8Kết nối googlecolab với Drive.
Chọn thời gian chạy rồi bấm “ Thay đổi thời gian chạy”
Trang 9Chọn thời gian chạy là “T4 GPU” và lưu.
Gõ các lệnh sau trên googlecolab để kiểm tra và cài đặt tài nguyên cần thiết
Trang 10Gõ lệnh để bắt đầu huấn luyện model.
Kết quả sau quá trình huấn luyện
Truy cập file run theo hướng dẫn tải file best về máy là hoàn thành
Trang 112.2 Source code:
Trang 122.3 Hình ảnh minh họa:
a, Khi không đeo khẩu trang:
b, Khi đeo khẩu trang:
Trang 13IV, Hoàn thiện.1, Khả năng ứng dụng vào hệ thống thực.
Kiểm tra An Toàn Tại Cổng: Cài đặt hệ thống nhận diện khẩu trang tại cổng ra vào của các cơ sở kinh doanh, trường học, bệnh viện, sân bay, và các địa điểm công cộng khác Hệ thống có thể cảnh báo người không đeo khẩu trang hoặc cung cấp cảnh báo nếu khẩu trang được đeo không đúng cách
Điều Khiển Cửa Tự Động: Kết hợp ứng dụng với hệ thống cửa tự động để mở cửa chỉ khi người dùng đeo khẩu trang Điều này giúp ngăn chặn sự lây nhiễm và tăng cường an toàn trong các khu vực công cộng
Ghi Nhận và Báo Cáo: Hệ thống có thể ghi lại dữ liệu về số lượng người đeokhẩu trang và không đeo khẩu trang Các dữ liệu này có thể được sử dụng để theo dõi xu hướng và đánh giá hiệu suất của biện pháp an toàn
Tích hợp với Hệ Thống Quản Lý An Ninh: Kết hợp ứng dụng với hệ thống an ninh tổng thể để cung cấp thông tin ngay lập tức và tự động kích hoạt cảnh báo khi phát hiện người không đeo khẩu trang
Hỗ Trợ Theo Dõi Sức Khỏe: Mở rộng chức năng để nhận diện các triệu chứng bệnh lý khác, chẳng hạn như sốt, có thể giúp trong việc theo dõi và ngăn chặn sự lây lan của bệnh truyền nhiễm
Ứng Dụng Trong Ngành Y Tế: Trong bối cảnh y tế, hệ thống nhận diện khẩutrang có thể tích hợp với hồ sơ bệnh nhân để theo dõi sức khỏe và bảo vệ cả nhân viên y tế và bệnh nhân
Trang 14Tích hợp với Trạm Kiểm Soát An Toàn: Sử dụng hệ thống nhận diện khẩu trang trong các trạm kiểm soát an toàn, nơi mà việc đảm bảo mọi người đều đeo khẩu trang là quan trọng, chẳng hạn như trên các phương tiện giao thông công cộng.
2, Định hướng phát triển.
Tối Ưu Hóa Hiệu Suất:Nâng cao khả năng nhận diện và tốc độ xử lý của hệ thống.Tối ưu hóa cho nhiều loại thiết bị, từ camera di động cho đến các hệ thống giám sát lớn
Tích Hợp Công Nghệ Nâng Cao:Sử dụng công nghệ nhận diện khuôn mặt tiên tiến để cải thiện độ chính xác.Xem xét tích hợp học máy để phân loại các tình huống khác nhau
Phát Triển Ứng Dụng Di Động:Xây dựng ứng dụng di động để cung cấp tính năng nhận diện trên nền tảng di động.Kết hợp với công nghệ di động như Bluetooth để tối ưu hóa trải nghiệm người dùng
Hỗ Trợ Nhiều Ngôn Ngữ và Văn Hóa:Đảm bảo ứng dụng hỗ trợ nhiều ngôn ngữ và văn hóa.Kiểm tra và điều chỉnh mô hình để hoạt động hiệu quả với đa dạng về đặc điểm khuôn mặt và khẩu trang
Bảo Mật và Quyền Riêng Tư:Tăng cường lớp bảo mật để đảm bảo dữ liệu nhận diện được bảo vệ.Tuân thủ nghiêm ngặt các quy định về quyền riêng tư và an ninh thông tin
Kết Hợp Với Hệ Thống Có Sẵn:Tích hợp ứng dụng với hệ thống quản lý an ninh và các hệ thống giám sát có sẵn.Hỗ trợ giao tiếp với các hệ thống khác để tối ưu hóa hiệu suất và tương tác
Hướng Dẫn và Tư Vấn:Cung cấp chức năng hướng dẫn và tư vấn để người dùng cóthể sử dụng ứng dụng một cách dễ dàng.Xem xét tích hợp tính năng giáo dục về việc đeo khẩu trang đúng cách