Professional Documents
Culture Documents
ĐỒ ÁN 2
NGÀNH: KỸ THUẬT ĐIỆN TỬ VIỄN THÔNG
CHUYÊN NGÀNH: ĐIỆN TỬ VIỄN THÔNG
Đà Nẵng,…/2022
MỤC LỤC
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1
1.1. Tổng quan......................................................................................................1
1.2. Lý do chọn đề tài........................................................................................2
1.3. Vấn đề giải quyết.......................................................................................3
1.4. Nội dung thực hiện....................................................................................3
CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT4
2.1 Giới thiệu là Máy tính nhúng Raspiberry Pi 3 Model B+ và Camera
5MP.......................................................................................................................4
2.1.1 Raspberry Pi là gì ?................................................................................4
2.1.2 Raspberry Pi dùng để làm gì ?..............................................................5
2.1.3 Một số hệ điều hành chạy trên Raspiberry Pi....................................6
2.1.4 Ưu điểm của Rasberry Pi là gì ?...........................................................7
2.2 Giới thiệu về Raspiberry pi 3 B+.................................................................7
2.3 Rasberry Camera........................................................................................12
2.3.1 Khái niệm..............................................................................................12
2.3.2 Ứng dụng...............................................................................................13
2.4 Một số khái niệm cơ bản về xử lý ảnh ......................................................13
2.4.1 Xử lý ảnh...............................................................................................13
2.4.2 Nhận dạng hình ảnh.............................................................................15
2.5 Giới thiệu về ngôn ngữ lập trình Python và OpenCV..............................15
2.5.1 Giới thiệu OpenCV...............................................................................15
2.5.2 Ngôn ngữ Python..................................................................................16
CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 25
3.1 Thuật toán thu thập dữ liệu........................................................................25
3.2 Thuật toán huấn luyện mô hình.................................................................32
3.3 Thuật toán phát hiện người đeo khẩu trang.............................................32
CHƯƠNG 4: Chạy mô phỏng và kết quả...........................................................32
4.1 Chương trình mô phỏng.............................................................................33
4.1.1 Chương trình mô phỏng......................................................................33
4.1.2 Kết quả..................................................................................................34
MỞ ĐẦU
Ngày nay khoa học công nghệ ngày càng đạt được những thành
tựu to lớn, kéo theo đó là sự phát triển vượt bậc trong các ngành nghề có
ứng dụng khoa học kỹ thuật. Những năm gần đây, khái niệm về Internet
of thing (IoT) không còn xa lạ trong cuộc sống của chúng ta nữa. Nhất là
khi hiện nay, các thiết bị IoT đã được sử dụng tràn ngập, rộng rãi khắp
thế giới. Điều đó cho ta thấy được lợi ích của các thiết bị này như thế
nào trong cuộc sống con người.
Với sự phát triển nhanh chóng của học sâu, đặc biệt là mạng nơ-
ron tích chập (CNN), thị giác máy tính đã đạt được những tiến bộ đáng
kể trong những năm gần đây về nhận dạng và phát hiện đối tượng [2][3].
Việc kết hợp một sản phẩm IoT có ứng dụng của trí tuệ nhân tạo
là tất yếu cũng là xu hướng hiện nay. Với đề tài “Phát hiện người đeo
khẩu trang ” của nhóm chúng em đang thực hiện, chính là sự kết hợp
đó với mong muốn tìm hiểu và phát triển một sản phẩm công nghệ theo
xu hướng nhưng ứng dụng hiệu quả trong ngành y tế nói riêng và ngành
y tế nói chung.
CHƯƠNG I: TỔNG QUAN ĐỀ TÀI
I. Tổng quan
1. Lí do chọn đề tài:
Việc đeo khẩu trang nơi công cộng đã góp phần hạn chế được sự lây lan của
dịch bệnh covid 19 trên toàn cầu. Giám sát người dân thực hiện đúng chủ trương,
chính sách của Nhà nước trong việc đeo khẩu trang nơi công cộng hoàn toàn có thể
được thực hiện một cách tự động. Bằng việc ứng dụng công nghệ xử lý ảnh, nhóm
em đã cùng nhau xây dựng nên chương trình phát hiện người dân có đeo khẩu
trang hay không và nhắc nhở. Chương trình dựa trên ngôn ngữ python và một số
thư viện mã nguồn mở như Open CV, Keras,... Mô hình được thực hiện đạt độ
chính xác cao lên đến 98, 99% khi tiến hành phát hiện người đeo khẩu trang trên
tập dữ liệu thử nghiệm.
2. Vấn đề cần giả quyết:
Với đề tài này chúng ta xác định mục tiêu là người có đeo khẩu trang hay
không. Yêu cầu đặt ra này gồm các tiêu chí:
- Nhận diện có độ chính xác cao
- Cho phép lưu khuôn mặt vào dữ liệu hệ thống.
- Tốc độ xử lý nhanh, khi có người không đeo khẩu trang đứng trong khung
hình của camera lập tức có kòi báo .
- Sản phẩm có tính thẩm mỹ,nhỏ gọn.
4
II. Công nghệ nhận dạng khuôn mặt.
Nhận dạng khuôn mặt là một ứng dụng máy tính tự động xác định hoặc nhận
dạng một người nào đó từ một bức hình ảnh kỹ thuật số hoặc một khung hình
video từ một nguồn video. Một trong những cách để thực hiện điều này là so sánh
các đặc điểm khuôn mặt chọn trước từ hình ảnh và một cơ sở dữ liệu về khuôn
mặt.
Hệ thống này thường được sử dụng trong các hệ thống an ninh và có thể được so
sánh với các dạng sinh trắc học khác như các hệ thống nhận dạng vân tay hay tròng
mắt.
- Nhận dạng truyền thống.
Một số thuật toán nhận dạng khuôn mặt xác định các đặc điểm khuôn mặt bằng
cách trích xuất các ranh giới, hoặc đặc điểm, từ một hình ảnh khuôn mặt của đối
tượng. Ví dụ, một thuật toán có thể phân tích các vị trí tương đối, kích thước,
và/hoặc hình dạng của mắt, mũi, gò má, và cằm. Những tính năng này sau đó được
sử dụng để tìm kiếm các hình ảnh khác với các tính năng phù hợp. Các thuật toán
bình thường hóa một bộ sưu tập các hình ảnh khuôn mặt và sau đó nén dữ liệu
khuôn mặt, chỉ lưu dữ liệu hình ảnh nào là hữu ích cho việc nhận dạng khuôn mặt.
Một hình ảnh mẫu sau đó được so sánh với các dữ liệu khuôn mặt. Một trong
những hệ thống thành công sớm nhất dựa trên các kỹ thuật phù hợp với mẫu áp
dụng cho một tập hợp các đặc điểm khuôn mặt nổi bật, cung cấp một dạng đại diện
của khuôn mặt được nén.
Các thuật toán nhận dạng có thể được chia thành hai hướng chính, là hình học,
đó là nhìn vào tính năng phân biệt, hoặc trắc quang (đo sáng), là sử dụng phương
pháp thống kê để 'chưng cất' một hình ảnh thành những giá trị và so sánh các giá trị
với các mẫu để loại bỏ chênh lệch.
- Nhận dạng 3D
Một xu hướng mới nổi lên, tuyên bố cải thiện được độ chính xác, là nhận dạng
khuôn mặt ba chiều. Kỹ thuật này sử dụng các cảm biến 3D để nắm bắt thông tin
về hình dạng của khuôn mặt. Thông tin này sau đó được sử dụng để xác định các
tính năng đặc biệt trên bề mặt của một khuôn mặt, chẳng hạn như các đường viền
của hốc mắt, mũi và cằm.
5
Một lợi thế của nhận dạng khuôn mặt 3D là nó không bị ảnh hưởng bởi những
thay đổi trong ánh sáng như các kỹ thuật khác. Nó cũng có thể xác định một khuôn
mặt từ một loạt các góc nhìn, trong đó có góc nhìn nghiêng. Các điểm dữ liệu ba
chiều từ một khuôn mặt cải thiện lớn độ chính xác cho nhận dạng khuôn mặt.
Nghiên cứu 3D được tăng cường bởi sự phát triển của các bộ cảm biến tinh vi giúp
nắm bắt hình ảnh chụp khuôn mặt 3D được tốt hơn. Các cảm biến hoạt động bằng
cách chiếu ánh sáng có cấu trúc lên gương mặt. Hàng chục hoặc nhiều hơn nữa các
bộ cảm biến hình ảnh này có thể được đặt lên trên cùng một con chip CMOS-mỗi
cảm biến sẽ thu một phần khác nhau của hình ảnh.
6
CHƯƠNG II: CƠ SỞ LÝ THUYẾT
Cấu trúc chương trình gồm 3 bước được thể hiện trên Hình 1.
Bước 1: Thu thập dữ liệu: Sử dụng mã nguồn mở OpenCV để phát
hiện, lưu trữ 500 bức ảnh của người đeo khẩu trang và 500 bức ảnh của
người không đeo khẩu trang.
Bước 2: Sử dụng nguồn dữ liệu đã thu thập được ở bước 1 để huấn
luyện mô hình dựa trên mô hình mạng nơron tích chập CNN.
Bước 3: Phát hiện người đeo khẩu trang hay không. Bước này sẽ tiến
hành so sánh dữ liệu được trích xuất từ camera (sau khi đã được xử lý dữ
liệu đầu vào) với dữ liệu đã được huấn luyện để trích xuất kết quả và cảnh
báo bằng giọng nói.
-Raspberry Pi là tên của một chuỗi các sản phẩm thuộc dòng máy tính đơn
board (single board computer) chạy hệ điều hành Linux.
-Raspberry Pi là một máy tính bảng đơn nhỏ. Bằng cách kết nối các thiết bị
ngoại vi như Bàn phím, chuột, màn hình với Raspberry Pi, nó sẽ hoạt động như
một máy tính cá nhân mini.
-Raspberry Pi được sử dụng phổ biến cho Xử lý hình ảnh/video thời gian
thực, ứng dụng dựa trên IoT và ứng dụng Robotics.
-Raspberry Pi chậm hơn máy tính xách tay hoặc máy tính để bàn nhưng vẫn là
một máy tính có thể cung cấp tất cả các tính năng hoặc khả năng mong đợi với
mức tiêu thụ điện năng thấp.
8
Hệ điều hành Raspbian là Hệ điều hành chính thức được cung cấp miễn
phí. Hệ điều hành này được tối ưu hóa hiệu quả để sử dụng với Raspberry
Pi. Raspbian có GUI bao gồm các công cụ để Duyệt web, lập trình Python, văn
phòng, trò chơi, v.v.
Raspberry Pi không chỉ là máy tính vì nó cung cấp quyền truy cập vào phần
cứng trên chip, tức là GPIO để phát triển ứng dụng. Bằng cách truy cập GPIO,
chúng ta có thể kết nối các thiết bị như đèn LED, động cơ, cảm biến, v.v. và cũng
có thể điều khiển chúng.Nó có SoC Bộ xử lý Broadcom dựa trên ARM cùng với
GPU trên chip (Bộ xử lý đồ họa).Tốc độ CPU của Raspberry Pi thay đổi từ 700
MHz đến 1,2 GHz. Ngoài ra, nó có SDRAM tích hợp trong khoảng từ 256 MB đến
1 GB.Raspberry Pi cũng cung cấp các mô-đun SPI, I2C, I2S và UART trên chip.
Phần cứng Raspiberry Pi
Với khả năng tùy biến cao, Raspberry Pi có thể biến thành rất nhiều thiết bị từ
phần cứng đến phần mềm, có thể kể đến một số công dụng như sau:
- Đầu coi phim HD giống như TV Box, hỗ trợ KODI đầy đủ.
- Máy chơi game cầm tay, console, game thùng. Chơi như máy điện tử băng ngày xưa,
giả lập được nhiều hệ máy.
9
- Dùng làm VPN cá nhân.
- Hiển thị thời tiết, hiển thị thông tin mạng nội bộ…
- Làm thành một cái máy Terminal di động có màn hình, bàn phím, pin dự phòng để sử
dụng mọi lúc mọi nơi, dò pass WiFi…
- Làm thiết bị điều khiển SmartHome, điều khiển mọi thiết bị điện tử trong nhà.
Trên đây chỉ là một vài ứng dụng dễ thấy của Raspberry Pi, chúng có thể được sử dụng
cho vô vàn những mục đích khác nhau.
Raspberry Pi được thiết kế cho hệ điều hành Linux, và nhiều bản phân phối Linux
hiện cũng có phiên bản tối ưu hóa Raspberry Pi. Hai trong số các lựa chọn phổ biến nhất
là Raspbian Jessie, dựa trên hệ điều hành Debian, và Pidora, dựa trên hệ điều hành
Fedora.
Trên thực tế cả 2 tùy chọn này đều hoạt động tốt, lựa chọn Raspbian Jessie hay Pidora là
do sở thích của mỗi người. Khi khởi động đầu tiên từ thẻ SD, bạn sẽ được cung cấp menu
có nhiều phân phối (bao gồm cả Raspbian và Pidora) để lựa chọn.
Chúng ta vẫn còn những lựa chọn khác: OpenELEC và RaspBMC là 2 hệ điều hành phân
phối dựa trên Linux, nhắm mục tiêu hướng tới sử dụng Raspberry Pi làm trung tâm
truyền thông. Ngoài ra còn có các hệ thống không phải Linux, chẳng hạn như RISC OS,
chạy trên Pi
10
3.4 Ưu điểm của Rasberry Pi là gì ?
Giá rẻ: chỉ từ 5 USD thôi là bạn đã mua được một cái Pi. • Đơn giản, dễ dùng, tiết
kiệm không gian: dùng làm các công việc văn phòng đơn giản, gõ Word, Excel hay tạo
PowerPoint, lướt web. • Tiêu thụ rất ít điện • Có tính di động cao: có thể bỏ vào túi mang
đi khắp nơi, thích hợp để làm máy nghe nhạc di động, máy đọc ebook, máy dò pass Wi-
Fi, máy chơi game cầm tay. Raspberry Pi 3 có cấu hình cao nhất hiện nay (trước đó có Pi,
Pi 2, ngoài ra còn có bản siêu nhỏ: Pi Zero và Pi Zero W). Pi 3 có giá chỉ 35 USD nhưng
thường là chúng ta sẽ mua thêm các phụ kiện ví dụ như case cho Pi 3, tản nhiệt cho chip,
adapter nguồn, thẻ nhớ.
Giới thiệu về Raspiberry pi 3 B+
Raspberry Pi 3 Model B+ là một phiên bản nâng cấp của Raspberry Pi 3 Model B
Cụ thể, điểm nâng cấp chính của Raspberry Pi 3 Model B+ là vi xử lý và kết nối mạng.
Model B+ dùng vi xử lý Broadcom BCM2837B0 4 nhân 1.4GHz (cao hơn so với
BCM2837 1.2GHz trên Pi 3 Model B).
Với các công việc đòi hỏi tốc độ mạng nhanh, Pi 3 Model B+ có thể đáp ứng với kết nối
Wi-Fi 2 băng tần 2.4GHz và 5GHz (dual band), Ethernet gigabit (qua cổng USB 2.0) tốc
độ lên đến 300Mbps, gấp 3 lần so với Pi 3 Model B. Thiết bị cũng hỗ trợ Bluetooth 4.2
và Bluetooth LE giúp kết nối tốt hơn với các thiết bị thông minh khác.
Cuối cùng, Model B+ còn có Power over Ethernet (PoE) giúp cung cấp nguồn điện cho
thiết bị thông qua dây cắm Ethernet nhưng phải thông qua một HAT mở rộng.
11
Cấu hình chi tiết Raspberry Pi 3 Model B+:
Một số Thành phần Phần cứng hiển thị ở trên được đề cập bên dưới:
12
1. HDMI (Giao diện đa phương tiện độ nét cao): Nó được sử dụng để truyền dữ
liệu âm thanh kỹ thuật số hoặc video không nén tới Màn hình máy tính, TV kỹ
thuật số, v.v. Nói chung, cổng HDMI này giúp kết nối Raspberry Pi với TV kỹ
thuật số.
2. Giao diện máy ảnh CSI: Giao diện CSI (Giao diện nối tiếp máy ảnh) cung cấp
kết nối giữa Bộ xử lý Broadcom và máy ảnh Pi. Giao diện này cung cấp các kết
nối điện giữa hai thiết bị.
3. Giao diện hiển thị DSI: Giao diện hiển thị DSI (Giao diện nối tiếp hiển thị)
được sử dụng để kết nối LCD với Raspberry Pi bằng cáp ruy băng 15 chân. DSI
cung cấp giao diện hiển thị độ phân giải cao nhanh được sử dụng đặc biệt để gửi
dữ liệu video trực tiếp từ GPU đến màn hình LCD.
4. Đầu ra âm thanh và video tổng hợp: Cổng đầu ra âm thanh và video tổng hợp
mang video cùng với tín hiệu âm thanh đến hệ thống âm thanh/video.
5. Đèn LED nguồn: Đó là đèn LED màu ĐỎ được sử dụng để chỉ báo Nguồn. Đèn
LED này sẽ BẬT khi Nguồn được kết nối với Raspberry Pi. Nó được kết nối trực
tiếp với 5V và sẽ bắt đầu nhấp nháy bất cứ khi nào điện áp nguồn giảm xuống
dưới 4,63V.
6. ACT PWR: ACT PWR là đèn LED màu xanh lá cây hiển thị hoạt động của thẻ
SD.
14
MISO (Master In Slave Out): Chân này được sử dụng để nhận dữ liệu từ slave đến
master.
CE (Chip Enable): Chúng tôi cần kết nối một chân CE cho mỗi thiết bị slave (hoặc
các thiết bị ngoại vi) trong mạch của chúng ta. Theo mặc định, chúng ta có hai
chân CE nhưng chúng ta có thể cấu hình nhiều chân CE hơn từ các chân GPIO có
sẵn khác.
15
Camera Module có thể được sử dụng để quay video độ nét cao, cũng như chụp
hình ảnh tĩnh. Nó cũng khá dễ dàng để sử dụng cho người mới bắt đầu, nhưng cũng có rất
nhiều giải pháp mở rộng để cung cấp cho người dùng yêu cầu cao. Có rất nhiều demo của
người dùng về công dụng của Camera Module như chụp Time-Lapse, SlowMotion và rất
nhiều ứng dụng khác. Raspberry Pi Camera Module V2 là một bước nhảy vọt về chất
lượng hình ảnh, màu sắc trung thực và hiệu suất ánh sáng thấp. Đặc biệt nó hỗ trợ video
lên tới 1080P30, 720P60 và video Iode VGA90, cũng như chế độ chụp hình. Dĩ nhiên, nó
vẫn sử dụng đoạn cáp 15cm qua cổng CSI trên Raspberry Pi.
Ống kính tiêu cự cố định - Cảm biến độ phân giải 8 megapixel cho khả năng
chụp ảnh kích thước 3280 x 2464.
Hỗ trợ video 1080p30, 720p60 và 640x480290.
Kích thước 25mm x 23mm x 9mm.
Trọng lượng chỉ hơn 3g. Kết nối với Raspberry Pi thông qua cáp ribbon đi
kèm dài 15cm
16
2.3.2 Ứng dụng.
Bạn có thể dùng Camera và Raspberry để thiết lập hệ thống phát hiện chuyển
động. Hệ thống hoạt động bằng cách sử dụng hình ảnh từ Camera kết hợp với chương
trình xử lý hình ảnh và đưa ra lệnh điều khiển nếu phát hiện thấy có chuyển động. Đặt
biệt hữu ích với các bạn yêu thích làm phim, bạn có thể sử dụng để quay những góc quay
khó hoặc những cảnh quay độc mà chỉ với máy quay gọn nhẹ nhất mới làm được. Ngoài
ra, bạn có thể sử dụng camera để quay các đoạn phim tinue-lapse (ghép nhiều hình lại với
nhau) đang được rất nhiều người dùng trên thế giới thực hiện
2.4 Một số khái niệm cơ bản về xử lý ảnh .
2.4.1 Xử lý ảnh
Xử lý ảnh là lĩnh vực với nhiều kiến thức cơ sở khác nhau được áp dụng vào trong
công việc tăng cường và xử lý ảnh thu nhận được từ các thiết bị như camera, webcam….
Vì vậy, xử lý ảnh đã được ứng dụng và phát triển trong các nhiều lĩnh vực như:
Trong lĩnh vực quân sự được sử dụng để xử lí ảnh và nhận dạng ảnh, xử lý
âm thanh đồ họa
Trong lĩnh vực an toàn bảo mật dùng nhận diện khuôn mặt người, nhận diện
vân tay hay là mẫu mắt…
Trong các lĩnh vực giải trí như trò chơi điện tử
Trong lĩnh vực y tế áp dụng vào chụp chụp X quang, MRI…
Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng: nâng cao chất lượng và
phân tích ảnh. Vấn đề nâng cao chất lượng ảnh có ảnh hưởng đến tới phân bố mức
sáng và độ phân giải của ảnh. Máy tính phát triển nhanh tạo điều kiện cho quá trình
xử lí ảnh được thuận tiện và sắc nét nhiều màu hơn. Năm 1964, máy tính đã có
chức năng xử lý và nâng cao được chất lượng ảnh của mặt trăng và vệ tinh như:
làm nổi đường biên, lưu lại ảnh. Từ năm 1964 đến nay, các thiết bị xử lý, nâng cao
về chất lượng, nhận dạng hình ảnh phát triển không ngừng. Các phương pháp liên
quan đến tri thức nhân tạo như mạng Nơ-ron nhân tạo, các công cụ nén ảnh, thuật
17
toán xử lý hiện đại, được cải tiến và ngày một áp dụng rộng rãi và đem lại nhiều
kết quả khả quan.
Sau đây, ta sẽ xét các bước cần thiết cho quá trình xử lí ảnh. Đầu tiên từ thế
giới bên ngoài được thu nhận qua các thiết bị thu như (Camera, máy chụp ảnh).
Gần đây với sự phát triển của khoa học công nghệ, các ảnh màu hoặc đen trắng
được lấy ra từ Camera, sau đó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho
việc xử lý tiếp theo. Ngoài ra, ảnh có thể quét từ vệ tinh chụp trực tiếp bằng máy
quét ảnh.
Nhiều cải tiến công nghệ mới gần đây dựa vào công nghệ nhận dạng hình ảnh –
Image Recognition. Công nghệ đằng sau tính năng nhận dạng khuôn mặt trong điện thoại
thông minh của chúng ta, chế độ tự hành trong xe tự lái và chẩn đoán hình ảnh trong
chăm sóc sức khỏe,… đã có những bước tiến lớn trong những năm gần đây. Tất cả chúng
đều sử dụng các giải pháp giúp cảm nhận về các vật thể trước mặt chúng. Những máy
tính này có thể đưa ra quyết định chính xác dựa trên những gì chúng nhìn thấy.
Bản chất của nhận dạng các vật thể có trong hình là trong việc cung cấp một thuật
toán có thể lấy một hình ảnh đầu vào và sau đó nhận ra những gì trên hình ảnh này và
hiển thị rõ từng vật thể lên. Cần lưu ý rằng máy móc không thể nhìn thấy và cảm nhận
hình ảnh như chúng ta làm. Đối với máy, đó là tất cả về toán học, và bất kỳ đối tượng nào
sẽ trông như thế này:
18
2. OpenCV
19
hoặc robotic cao cấp. Tuy nhiên ở trong đề tài chỉ sử dụng OpenCv để
xử lý và hiển thị hình ảnh.
3. Ngôn ngữ Python
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ất cả các loại hệ thống và tăng tốc độ
phát triển.
Một số thư viện Python
Matplotlib
Các nhà phát triển sử dụng Matplotlib để hiển thị dữ liệu dưới dạng đồ
họa hai và ba chiều (2D và 3D) chất lượng cao. Thư viện này thường được sử
dụng trong các ứng dụng khoa học. Với Matplotlib, bạn có thể trực quan hóa dữ
liệu bằng cách hiển thị dữ liệu dưới dạng các biểu đồ khác nhau, chẳng hạn như
biểu đồ cột và biểu đồ đường. Bạn cũng có thể hiển thị nhiều biểu đồ cùng lúc
và các chi tiết đồ họa có thể được di chuyển qua mọi nền tảng.
Pandas
Pandas cung cấp cấu trúc dữ liệu được tối ưu hóa và linh hoạt mà bạn có
thể sử dụng để thao tác với dữ liệu chuỗi thời gian và dữ liệu có cấu trúc, chẳng
hạn như bảng và nhóm. Ví dụ, bạn có thể sử dụng Pandas để đọc, ghi, hợp nhất,
lọc và nhóm dữ liệu. Thư viện này được nhiều người sử dụng cho các tác vụ
khoa học dữ liệu, phân tích dữ liệu và ML.
NumPy
NumPy là một thư viện phổ biến mà các nhà phát triển sử dụng để dễ
dàng tạo và quản lý nhóm, thao tác với các hình dạng logic và thực hiện các
phép toán đại số tuyến tính. NumPy hỗ trợ tích hợp với nhiều ngôn ngữ như C
và C ++.
Requests
Thư viện Requests cung cấp nhiều hàm hữu ích cần thiết để phát triển
web. Bạn có thể sử dụng thư viện này để gửi các yêu cầu HTTP, bổ sung tiêu
20
đề, thêm tham số URL, bổ sung dữ liệu và thực hiện nhiều tác vụ khác khi giao
tiếp với các ứng dụng web.
OpenCV-Python
OpenCV-Python là một thư viện mà các nhà phát triển sử dụng để xử lý
hình ảnh cho các ứng dụng thị giác máy tính. Thư viện này cung cấp nhiều hàm
cho các tác vụ xử lý hình ảnh như đọc và ghi hình ảnh cùng lúc, xây dựng môi
trường 3D từ môi trường 2D cũng như chụp và phân tích hình ảnh từ video.
Keras
Keras là thư viện mạng nơ-ron chuyên sâu của Python với khả năng hỗ
trợ tuyệt vời cho việc xử lý dữ liệu, trực quan hóa và hơn thế nữa. Keras hỗ trợ
nhiều mạng nơ-ron. Thư viện này có cấu trúc mô-đun mang lại sự linh hoạt cho
việc lập trình các ứng dụng sáng tạo.
21
CHƯƠNG III: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Để thu thập dữ liệu, thay vì lấy nguồn dữ liệu trên mạng, nhóm tác giả đã
thực hiện thu thập bằng chương trình được viết trên ngôn ngữ python, sử dụng thư
viện mã nguồn mở OpenCV để phát hiện khuôn mặt người.
Hình 1 Thể hiện thuật toán thu thập dữ liệu. Dữ liệu sau khi thu thập dưới
dạng file ảnh .jpg sẽ được lưu trữ ở hai file riêng biệt: Một file chứa 500 bức ảnh
mô tả khuôn mặt đeo khẩu trang và file còn lại chứa 500 bức ảnh mô tả khuôn mặt
không đeo khẩu trang. Mỗi file dữ liệu trên sẽ được chia làm hai phần chính nhờ
hàm split trong python, bao gồm:
- Tập dữ liệu phục vụ quá trình thử nghiệm cuối cùng - Testing set (chiếm 20%);
- Tập dữ liệu phục vụ quá trình huấn luyện (chiếm 80%).
22
II. Thuật toán huấn luyện mô hình
23
-Một lớp được kết nối đầy đủ làm phẳng các đối tượng được xác định trong
các lớp trước đó thành một vectơ và dự đoán xác suất mà hình ảnh có thể thuộc về
nhãn nào đó.
III. Thuật toán phát hiện người đeo khẩu trang trong thời gian thực.
Để phát hiện khuôn mặt, sử dụng thuật toán phát hiện khuôn mặt trong
chương trình thu thập dữ liệu
Sau khi ảnh được cắt từ video, nó sẽ được định dạng lại kích thước giống
với kích thước của dữ liệu trong mô hình huấn luyện. Sau đó, ảnh này sẽ được
chuyển đổi thành những tham số có định dạnh giống mô hình mẫu. Khi đó các
tham số sinh ra được từ tập dữ liệu huấn luyện sẽ được sử dụng để thẩm định lại
tính thích hợp của mô hình trên tập dữ liệu của hình ảnh vừa được trích xuất. Dựa
vào kết quả thu được ta tiến hành hiển thị lên màn hình kết quả người dân có đeo
khẩu trang hay không.
Nếu người đó không đeo khẩu trang thì sẽ lập tức nhắc nhở người đó đeo
khẩu trang thông qua lời nói trực tiếp. Việc nhắc nhở này sẽ được thực thi nhờ sự
24
hỗ trợ của thư viện “pyttxs3” - thư viện hỗ trợ chuyển đổi văn bản thành giọng nói
trong python.
Chương trình đã thực hiện kiểm tra trong nhiều điều kiện khác nhau, bao
gồm cả những hình ảnh khuôn mặt được hiển thị cho ra kết quả khá chính xác.
25
CHƯƠNG IV. CHẠY CHƯƠNG TRÌNH VÀ KẾT QUẢ
26
# plot the training loss and accuracy
N = EPOCHS
plt.style.use("ggplot")
plt.figure()
plt.plot(np.arange(0, N), H.history["loss"], label="train_loss")
plt.plot(np.arange(0, N), H.history["val_loss"], label="val_loss")
plt.plot(np.arange(0, N), H.history["accuracy"], label="train_acc")
plt.plot(np.arange(0, N), H.history["val_accuracy"], label="val_acc")
plt.title("Training Loss and Accuracy")
plt.xlabel("Epoch #")
plt.ylabel("Loss/Accuracy")
plt.legend(loc="lower left")
plt.savefig("plot.png")
detect_mask_video.py
1.3. Nhận dạng khuôn mặt trong khung hình có đeo khẩu trang hay
không.
# do a bit of cleanup
cv2.destroyAllWindows()
vs.stop()
28
CHƯƠNG V : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
I. Kết luận
Đề tài đã xây dựng thành công phát hiện và nhắc nhở người không đeo
khẩu trang nhằm hổ trợ công tác giám sát người dân thực hiện đúng quy
định.Dựa vào kết quả thu được để xây dựng hệ thống giám sát và nhắc nhở
người dân đeo khẩu trang ở những nơi đông người như: trung tâm thương
mại, trường học,...
II. Hướng phát triển
Sau đây là một số các cải tiến có thể được thực hiện trong tương lai của hệ
thống này:
o Sản phẩm độc lập: Nó có thể được thực hiện như một sản phẩm độc
lập, có thể được cài đặt thành một thiết bị, có đèn màn hình hiển thị
hoặc nút bấm, mà không cần sử dụng tới trình duyệt.
o Nâng cao bảo mật bằng công nghệ mới, sử dụng camera 3D là phương
án tốt nhất để hạn chế về vấn đề bảo mật.
o Có thể hoạt động tốt hơn trong môi trường thiếu sáng
29
TÀI LIỆU THAM KHẢO
[1] REAL TIME FACE MASK DETECTION, tạp chí khoa học công nghệ hàng
hải.
30