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

đề tài nhận diện người đeo khẩu trang sử dụng raspberry pi

32 0 0

Đ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

Công nghê v nhâ vn dạng khuôn mă vt.Nhâ 9n d;ng khuôn mă 9t là một Gng dHng mCy tZnh tự động xCc đVnh hoặc nhận d;ng một người nào đA từ một bGc hgnh dnh kI thuật sQ hoặc một khung hgnh

Trang 1

ĐẠI HỌC ĐÀ NẴNG

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬTKHOA ĐIỆN – ĐIỆN TỬ

ĐỒ ÁN 2

NGÀNH: KỸ THUẬT ĐIỆN TỬ VIỄN THÔNGCHUYÊN NGÀNH: ĐIỆN TỬ VIỄN THÔNG

ĐỀ TÀI: NHẬN DIỆN NGƯỜI ĐEO KHẨUTRANG SỬ DỤNG RASPBERRY PI Người hướng dẫn : Nguyễn Linh Nam

Sinh viên thực hiện : Bùi Xuân Quang 1911505410148 Trần Duy Tân 1911505410153 Lớp: 19DT1

Đà Nẵng,…/2022

Trang 2

1.4 Nội dung thực hiện 3

CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT42.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.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 253.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ƯƠNG4: 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

Trang 4

MỞ ĐẦU

Trang 5

Ngày nay khoa h7c công nghê 9 ngày càng đ;t đư<c nh=ng thành tựu to lớn, k?o theo đA là sự phCt triDn vư<t bâ 9c trong cCc ngành nghF cA Gng dHng khoa h7c kI thuâ 9t Nh=ng năm gần đây, khCi niê 9m vF Internet of thing (IoT) không cOn xa l; trong cuô 9c sQng cRa chSng ta n=a NhTt là khi hiê 9n nay, cCc thiUt bV IoT đW đư<c sX dHng tràn ngâ 9p, rô 9ng rWi khYp thU giới ĐiFu đA cho ta thTy đư<c l<i Zch cRa cCc thiUt bV này như thU nào trong cuô 9c sQng con người.

Với sự phCt triDn nhanh chAng cRa h7c sâu, đặc biệt là m;ng nơ-ron tZch chập (CNN), thV giCc mCy tZnh đW đ;t đư<c nh=ng tiUn bộ đCng kD trong nh=ng năm gần đây vF nhận d;ng và phCt hiện đQi tư<ng [2][3].

Viê 9c kUt h<p mô 9t sdn phem IoT cA Gng dHng cRa trZ tuê 9 nhân t;o là tTt yUu cfng là xu hướng hiê 9n nay Với đF tài “Phát hiện người đeokhẩu trang ” cRa nhAm chSng em đang thực hiê 9n, chZnh là sự kUt h<p đA với mong muQn tgm hiDu và phCt triDn mô 9t sdn phem công nghê 9 theo xu hướng nhưng Gng dHng hiê 9u qud trong ngành y tU nAi riêng và ngành y tU nAi chung.

Trang 6

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

I Tsng quan

1 Lí do chtn đề tài:

Việc đeo kheu trang nơi công cộng đW gAp phần h;n chU đư<c sự lây lan cRa dVch bệnh covid 19 trên toàn cầu GiCm sCt người dân thực hiện đSng chR trương, chZnh sCch cRa Nhà nước trong việc đeo kheu trang nơi công cộng hoàn toàn cA thD đư<c thực hiện một cCch tự động Bằng việc Gng dHng công nghệ xX lý dnh, nhAm em đW cùng nhau xây dựng nên chương trgnh phCt hiện người dân cA đeo kheu trang hay không và nhYc nhở Chương trgnh dựa trên ngôn ng= python và một sQ thư viện mW nguồn mở như Open CV, Keras, Mô hgnh đư<c thực hiện đ;t độ chZnh xCc cao lên đUn 98, 99% khi tiUn hành phCt hiện người đeo kheu trang trên tập d= liệu thX nghiệm.

2 Vấn đề cun giả quyết:

Với đF tài này chSng ta xCc đVnh mHc tiêu là người cA đeo kheu trang hay không Yêu cầu đă 9t ra này gồm cCc tiêu chZ:

- Nhâ 9n diê 9n cA đô 9 chZnh xCc cao

- Cho ph?p lưu khuôn mă 9t vào d= liê 9u hê 9 thQng.

- TQc đô 9 xX lý nhanh, khi cA người không đeo kheu trang đGng trong khung hgnh cRa camera lập tGc cA kOi bCo

- Sdn phem cA tZnh them mI,nhỏ g7n.

3 Nô vi dung thwc hiê vn:

SX dHng cCc kiUn thGc đW h7c trong 2 h7c phần môn vi điFu khiDn và trZ tuê 9 nhân t;o đD tgm hiDu:

- TiUn hành thiUt lâ 9p sơ đồ khQi hê 9 thQng.

- XX lZ cCc quC trgnh nhâ 9n diê 9n và thông bCo đSng lSc.

- Thực hiê 9n lYp đă 9t phần cGng và viUt n;p code theo yêu cầu chGc năng.

4

Trang 7

II Công nghê v nhâ vn dạng khuôn mă vt.

Nhâ 9n d;ng khuôn mă 9t là một Gng dHng mCy tZnh tự động xCc đVnh hoặc nhận d;ng một người nào đA từ một bGc hgnh dnh kI thuật sQ hoặc một khung hgnh video từ một nguồn video Một trong nh=ng cCch đD thực hiện điFu này là so sCnh cCc đặc điDm khuôn mặt ch7n trước từ hgnh dnh và một cơ sở d= liệu vF khuôn mặt.

Hệ thQng này thường đư<c sX dHng trong cCc hệ thQng an ninh và cA thD đư<c so sCnh với cCc d;ng sinh trYc h7c khCc như cCc hệ thQng nhận d;ng vân tay hay trOng mYt.

- Nhâ vn dạng truyền thống.

Một sQ thuật toCn nhận d;ng khuôn mặt xCc đVnh cCc đặc điDm khuôn mặt bằng cCch trZch xuTt cCc ranh giới, hoặc đặc điDm, từ một hgnh dnh khuôn mặt cRa đQi tư<ng VZ dH, một thuật toCn cA thD phân tZch cCc vV trZ tương đQi, kZch thước, và/hoặc hgnh d;ng cRa mYt, mfi, gO mC, và cằm Nh=ng tZnh năng này sau đA đư<c sX dHng đD tgm kiUm cCc hgnh dnh khCc với cCc tZnh năng phù h<p CCc thuật toCn bgnh thường hAa một bộ sưu tập cCc hgnh dnh khuôn mặt và sau đA n?n d= liệu khuôn mặt, chỉ lưu d= liệu hgnh dnh nào là h=u Zch cho việc nhận d;ng khuôn mặt Một hgnh dnh mẫu sau đA đư<c so sCnh với cCc d= liệu khuôn mặt Một trong nh=ng hệ thQng thành công sớm nhTt dựa trên cCc kI thuật phù h<p với mẫu Cp dHng cho một tập h<p cCc đặc điDm khuôn mặt nổi bật, cung cTp một d;ng đ;i diện cRa khuôn mặt đư<c n?n.

CCc thuật toCn nhận d;ng cA thD đư<c chia thành hai hướng chZnh, là hgnh h7c, đA là nhgn vào tZnh năng phân biệt, hoặc trYc quang (đo sCng), là sX dHng phương phCp thQng kê đD 'chưng cTt' một hgnh dnh thành nh=ng giC trV và so sCnh cCc giC trV với cCc mẫu đD lo;i bỏ chênh lệch.

- Nhâ vn dạng 3D

Một xu hướng mới nổi lên, tuyên bQ cdi thiện đư<c độ chZnh xCc, là nhận d;ng khuôn mặt ba chiFu KI thuật này sX dHng cCc cdm biUn 3D đD nYm bYt thông tin vF hgnh d;ng cRa khuôn mặt Thông tin này sau đA đư<c sX dHng đD xCc đVnh cCc tZnh năng đặc biệt trên bF mặt cRa một khuôn mặt, chẳng h;n như cCc đường viFn cRa hQc mYt, mfi và cằm

5

Trang 8

Một l<i thU cRa nhận d;ng khuôn mặt 3D là nA không bV dnh hưởng bởi nh=ng thay đổi trong Cnh sCng như cCc kI thuật khCc NA cfng cA thD xCc đVnh một khuôn mặt từ một lo;t cCc gAc nhgn, trong đA cA gAc nhgn nghiêng CCc điDm d= liệu ba chiFu từ một khuôn mặt cdi thiện lớn độ chZnh xCc cho nhận d;ng khuôn mặt Nghiên cGu 3D đư<c tăng cường bởi sự phCt triDn cRa cCc bộ cdm biUn tinh vi giSp nYm bYt hgnh dnh chHp khuôn mặt 3D đư<c tQt hơn CCc cdm biUn ho;t động bằng cCch chiUu Cnh sCng cA cTu trSc lên gương mặt Hàng chHc hoặc nhiFu hơn n=a cCc bộ cdm biUn hgnh dnh này cA thD đư<c đặt lên trên cùng một con chip CMOS-mỗi cdm biUn sẽ thu một phần khCc nhau cRa hgnh dnh

6

Trang 9

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

I.Hê v thống nhâ vn diê vn khuôn mă vt1 Cấu trúc chương trình

Hê 9 thQng nhâ 9n d;ng mă 9t người là mô 9t hê 9 thQng nhâ 9n vào mô 9t dnh hoă 9c đo;n video (mô 9t dOng gồm cCc dnh liên tHc) Qua quC trgnh xX lZ, tZnh toCn hê 9 thQng xCc đVnh vV trZ mă 9t người cA trong dnh và xCc đVnh là người nào trong sQ nh=ng người mà hê 9 thQng biUt (qua quC trgnh h7c) hoă 9c người l;.

CTu trSc chương trgnh gồm 3 bước đư<c thD hiện trên Hgnh 1 Bước 1: Thu thập d= liệu: SX dHng mW nguồn mở OpenCV đD phCt hiện, lưu tr= 500 bGc dnh cRa người đeo kheu trang và 500 bGc dnh cRa người không đeo kheu trang

Bước 2: SX dHng nguồn d= liệu đW thu thập đư<c ở bước 1 đD huTn luyện mô hgnh dựa trên mô hgnh m;ng nơron tZch chập CNN

Bước 3: PhCt hiện người đeo kheu trang hay không Bước này sẽ tiUn hành so sCnh d= liệu đư<c trZch xuTt từ camera (sau khi đW đư<c xX lý d= liệu đầu vào) với d= liệu đW đư<c huTn luyện đD trZch xuTt kUt qud và cdnh bCo bằng gi7ng nAi.

2 Những tham số của hình ảnh khuôn mă vt

Khuôn mă 9t con người vQn d} đa d;ng ĐiFu này khiUn cho hgnh dnh thu đư<c cRa khuông mă 9t rTt phong phS, cA thD chỉ ra mô 9t sQ tham sQ cho cCc hgnh dnh này như:

- GAc quay xung quanh trHc thẳng đGng: tham sQ này dnh hưởng tới tZnh đQi xGng cRa khuôn mă 9t, đồng thời che lTp mô 9t con mYt và làm thay đổi hgnh dnh hiDn thV cRa nh=ng chi tiUt khCc trên khuôn mă 9t.

- GAc quay xung quanh trHc nằm ngang: Gng với tư thU ngeng hay cSi đầu cRa đQi tư<ng thu nhâ 9p trước mCy quay, tham sQ này dnh hưởng tới sự hiê 9n diê 9n cRa mô 9t sQ chi tiUt quan tr7ng trên khuôn mă 9t như đôi mYt, vùng trCn hay vùng miê 9ng.

7

Trang 10

- GAc quay xung quanh trHc nQi liFn khuôn mă 9t với mCy quay: tham sQ này không biDu hiê 9n đUn nh=ng chi tiUt trên khuôn mă 9t và cA thD khôi phHc vF vV trZ thẳng đGng bằng ph?p xX lZ quay hgnh.

- KZch thước khuôn mă 9t

- Tỉ lê 9 cRa cCc chiFu cRa khuôn mă 9t

- Cdm xSc cRa khuôn mă 9t: tham sQ này làm thay đổi hgnh dnh hiDn thV cRa nh=ng chi tiUt trên khuôn mă 9t.

3 Giới thiệu về Raspberry Pi

3.1Raspberry Pi Foundation, một tổ chGc từ thiện ở Anh đư<c hỗ tr<

bởi Khoa Khoa h7c mCy tZnh trường đ;i h7c Cambridge và hWng chip Broadcom,

đW thiUt kU Raspberry Pi, với mong muốn thúc đẩy việc đưa khoa htc máy tính vào trường htc và giúp trẻ em ở các nước phát triển có "máy tính giá rẻ" để htc tập Raspberry Pi chZnh thGc trgnh làng công nghệ từ 2012, kD từ đA đUn nay

cCc phiên bdn Raspberry Pi đW đư<c đưa ra với cCc cdi thiện khCc nhau

-Raspberry Pi là tên cRa một chuỗi cCc sdn phem thuộc dOng mCy tZnh đơn

board (single board computer) ch;y hệ điFu hành Linux.

-Raspberry Pi là một mCy tZnh bdng đơn nhỏ Bằng cCch kUt nQi cCc thiUt bV

ngo;i vi như Bàn phZm, chuột, màn hgnh với Raspberry Pi, nA sẽ ho;t động như một mCy tZnh cC nhân mini.

-Raspberry Pi đư<c sX dHng phổ biUn cho XX lý hgnh dnh/video thời gian

thực, Gng dHng dựa trên IoT và Gng dHng Robotics.

-Raspberry Pi chậm hơn mCy tZnh xCch tay hoặc mCy tZnh đD bàn nhưng vẫn là

một mCy tZnh cA thD cung cTp tTt cd cCc tZnh năng hoặc khd năng mong đ<i với mGc tiêu thH điện năng thTp.

8

Trang 11

Hệ điFu hành Raspbian là Hệ điFu hành chZnh thGc đư<c cung cTp miễn phZ Hệ điFu hành này đư<c tQi ưu hAa hiệu qud đD sX dHng với Raspberry Pi Raspbian cA GUI bao gồm cCc công cH đD Duyệt web, lập trgnh Python, văn phOng, trO chơi, v.v.

Raspberry Pi không chỉ là mCy tZnh vg nA cung cTp quyFn truy cập vào phần cGng trên chip, tGc là GPIO đD phCt triDn Gng dHng Bằng cCch truy cập GPIO, chSng ta cA thD kUt nQi cCc thiUt bV như đèn LED, động cơ, cdm biUn, v.v và cfng cA thD điFu khiDn chSng.NA cA SoC Bộ xX lý Broadcom dựa trên ARM cùng với GPU trên chip (Bộ xX lý đồ h7a).TQc độ CPU cRa Raspberry Pi thay đổi từ 700 MHz đUn 1,2 GHz Ngoài ra, nA cA SDRAM tZch h<p trong khodng từ 256 MB đUn 1 GB.Raspberry Pi cfng cung cTp cCc mô-đun SPI, I2C, I2S và UART trên chip.

Phun cứng Raspiberry Pi

3.2 Raspberry Pi dùng để làm gì ?

Với khd năng tùy biUn cao, Raspberry Pi cA thD biUn thành rTt nhiFu thiUt bV từ phần cGng đUn phần mFm, cA thD kD đUn một sQ công dHng như sau:

- Đầu coi phim HD giQng như TV Box, hỗ tr< KODI đầy đR.

- MCy chơi game cầm tay, console, game thùng Chơi như mCy điện tX băng ngày xưa, gid lập đư<c nhiFu hệ mCy.

- CYm mCy tdi Torrent 24/24.

9

Trang 21

2 OpenCV

- OpenCV là thư viện nguồn mở hàng đầu cho Computer Vision và Machine Learning, và hiện cA thêm tZnh năng tăng tQc GPU cho cCc ho;t động theo real-time.

- NA cA trên cCc giao diện C++, C, Python và Java và hổ tr< Windows,

Linus, Mac OS, OpenCV đư<c thiUt kU đD hổ tr< hiệu qud vF tZnh toCn và chuyên dùng cho cCc Gng dHng real-time (thời gian thực) NUu đư<c viUt trên C/C++ tQi ưu, thư viện này cA thD tận dHng đư<c bộ cX lý đa lõi( multi-core processing ).

Chức năng:

- OpenCV đa d;ng, khC nhiFu vF tZnh năng như:

+ XX lý và hiDn thV hgnh dnh/Video/I/O( core, imgpoc, highgui) + PhCt hiện cCc vật thD ( objdetect, features2d, nonfree) + Machine learning và clustering (ml, flann)

+ CUDA acceleration

- OpenCV hiện đư<c Gng dHng rộng rWi trên toàn cầu, với nhiFu mHc

đZch và tZnh năng khCc nhau từ interactive art, đUn khai thCc web map

19

Trang 22

hoặc robotic cao cTp Tuy nhiên ở trong đF tài chỉ sX dHng OpenCv đD xX lý và hiDn thV hgnh dnh.

3 Ngôn ngữ Python

Python là một ngôn ng= lập trgnh đư<c sX dHng rộng rWi trong cCc Gng dHng web, phCt triDn phần mFm, khoa h7c d= liệu và mCy h7c (ML) CCc nhà phCt triDn sX dHng Python vg nA hiệu qud, dễ h7c và cA thD ch;y trên nhiFu nFn tdng khCc nhau Phần mFm Python đư<c tdi xuQng miễn phZ, tZch h<p tQt với tTt cd cCc lo;i hệ thQng và tăng tQc độ phCt triDn.

Một số thư viện Python Matplotlib

CCc nhà phCt triDn sX dHng Matplotlib đD hiDn thV d= liệu dưới d;ng đồ h7a hai và ba chiFu (2D và 3D) chTt lư<ng cao Thư viện này thường đư<c sX dHng trong cCc Gng dHng khoa h7c Với Matplotlib, b;n cA thD trực quan hAa d= liệu bằng cCch hiDn thV d= liệu dưới d;ng cCc biDu đồ khCc nhau, chẳng h;n như biDu đồ cột và biDu đồ đường B;n cfng cA thD hiDn thV nhiFu biDu đồ cùng lSc và cCc chi tiUt đồ h7a cA thD đư<c di chuyDn qua m7i nFn tdng.

Pandas cung cTp cTu trSc d= liệu đư<c tQi ưu hAa và linh ho;t mà b;n cA thD sX dHng đD thao tCc với d= liệu chuỗi thời gian và d= liệu cA cTu trSc, chẳng h;n như bdng và nhAm VZ dH, b;n cA thD sX dHng Pandas đD đ7c, ghi, h<p nhTt, l7c và nhAm d= liệu Thư viện này đư<c nhiFu người sX dHng cho cCc tCc vH khoa h7c d= liệu, phân tZch d= liệu và ML.

NumPy là một thư viện phổ biUn mà cCc nhà phCt triDn sX dHng đD dễ dàng t;o và qudn lý nhAm, thao tCc với cCc hgnh d;ng logic và thực hiện cCc ph?p toCn đ;i sQ tuyUn tZnh NumPy hỗ tr< tZch h<p với nhiFu ngôn ng= như C và C ++.

Thư viện Requests cung cTp nhiFu hàm h=u Zch cần thiUt đD phCt triDn web B;n cA thD sX dHng thư viện này đD gXi cCc yêu cầu HTTP, bổ sung tiêu

20

Trang 23

đF, thêm tham sQ URL, bổ sung d= liệu và thực hiện nhiFu tCc vH khCc khi giao tiUp với cCc Gng dHng web

OpenCV-Python là một thư viện mà cCc nhà phCt triDn sX dHng đD xX lý hgnh dnh cho cCc Gng dHng thV giCc mCy tZnh Thư viện này cung cTp nhiFu hàm cho cCc tCc vH xX lý hgnh dnh như đ7c và ghi hgnh dnh cùng lSc, xây dựng môi trường 3D từ môi trường 2D cfng như chHp và phân tZch hgnh dnh từ video.

Keras là thư viện m;ng nơ-ron chuyên sâu cRa Python với khd năng hỗ tr< tuyệt vời cho việc xX lý d= liệu, trực quan hAa và hơn thU n=a Keras hỗ tr< nhiFu m;ng nơ-ron Thư viện này cA cTu trSc mô-đun mang l;i sự linh ho;t cho việc lập trgnh cCc Gng dHng sCng t;o.

21

Trang 24

CHƯƠNG III: PHÂN TÍCH THIẾT KẾ HÊv THỐNG I Thuật toán thu thập dữ liệu.

Hgnh 1.Thuật toCn thu thập d= liệu

ĐD thu thập d= liệu, thay vg lTy nguồn d= liệu trên m;ng, nhAm tCc gid đW thực hiện thu thập bằng chương trgnh đư<c viUt trên ngôn ng= python, sX dHng thư viện mW nguồn mở OpenCV đD phCt hiện khuôn mặt người

Hgnh 1 ThD hiện thuật toCn thu thập d= liệu D= liệu sau khi thu thập dưới d;ng file dnh jpg sẽ đư<c lưu tr= ở hai file riêng biệt: Một file chGa 500 bGc dnh mô td khuôn mặt đeo kheu trang và file cOn l;i chGa 500 bGc dnh mô td khuôn mặt không đeo kheu trang Mỗi file d= liệu trên sẽ đư<c chia làm hai phần chZnh nhờ hàm split trong python, bao gồm:

- Tập d= liệu phHc vH quC trgnh thX nghiệm cuQi cùng - Testing set (chiUm 20%); - Tập d= liệu phHc vH quC trgnh huTn luyện (chiUm 80%).

22

Trang 25

II Thuật toán huấn luyện mô hình

viện cần thiUt

Nhập cCc thư viện cần thiUt như OpenCV, Keras, Numpy (đD xX lý d= liệu), Os (đD qudn lý file),…

2 XX lý tiFn d= liệu và xX lý d= liệu

Việc tiFn xX lý d= liệu nhằm đưa tTt cd cCc dnh vF cùng kZch thước, sau đA cCc dnh này sẽ đư<c chuyDn đổi đD phHc vH cho quC trgnh xX lý dnh ở bước sau

3 Xây dựng cCc lớp cho mô hgnh

CCc lớp đư<c xây dựng dựa trên mô hgnh m;ng nơron tZch chập CNN (m;ng nơron tZch chập đư<c thiUt kU đặc biệt đD xX lý d= liệu đầu vào) KiUn trSc cRa CNN cA ba phần chZnh:

-Một lớp phGc h<p trZch xuTt cCc đặc trưng từ một hgnh dnh nguồn ĐD trZch xuTt đặc tZnh từ dnh ban đầu, ta tiUn hành tZch chập hai ma trận bao gồm ma trận dnh nguồn và bộ l7c với kZch thước 3x3.

-Một lớp tổng h<p đD gidm kZch thước cRa nơron đi và tập trung vào cCc phần tX quan tr7ng nhTt Trong phần này ta sX dHng lớp pooling cA kZch thước (2x2) và sX dHng kiDu max pooling hay lTy giC trV lớn nhTt.

23

Ngày đăng: 20/04/2024, 09:32

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w