Đồ án HCMUTE: Ứng dụng Raspberry Pi trong nhận diện khuôn mặt

Khám phá đồ án HCMUTE ứng dụng kit Raspberry trong nhận dạng mặt người, công nghệ tiên tiến và tiềm năng trong lĩnh vực trí tuệ nhân tạo.

Người đăng

Ẩn danh

Thể loại

đồ án tốt nghiệp

2016

69
19
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI CẢM ƠN

1. CHƯƠNG 1: TỔNG QUAN

1.1. ĐẶT VẤN ĐỀ

1.2. MỤC TIÊU

1.3. NỘI DUNG NGHIÊN CỨU

1.4. GIỚI HẠN

1.5. BỐ CỤC

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

2.1. GIỚI THIỆU VỀ KIT RASPBERRY PI VÀ MODULE CAMERA PI

2.2. GIỚI THIỆU VỀ THƯ VIỆN OPENCV

2.3. ĐẶC TRƯNG HAAR-LIKE

3. CHƯƠNG 3: THIẾT KẾ VÀ TÍNH TOÁN

4. CHƯƠNG 4: THI CÔNG HỆ THỐNG

5. CHƯƠNG 5: KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ

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

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Giới thiệu về Hệ thống Nhận diện Khuôn mặt bằng Raspberry Pi tại HCMUTE

Đồ án tốt nghiệp "Ứng dụng Kit Raspberry nhận dạng mặt người" tại HCMUTE năm 2016 tập trung vào việc xây dựng một hệ thống nhận diện khuôn mặt sử dụng Raspberry Pi và thư viện OpenCV. Hệ thống này hướng đến mục tiêu phát hiện và nhận dạng khuôn mặt người từ ảnh chụp trực tiếp từ Camera Pi, tích hợp phát hiện khuôn mặt thời gian thực. Đồ án nhấn mạnh vào việc ứng dụng thuật toán phân tích hình ảnh khuôn mặt, cụ thể là sử dụng đặc trưng Haar-like kết hợp với thuật toán AdaBoostchuỗi các bộ phân lớp (Cascade of Classifiers). Việc lựa chọn Raspberry Pi là nền tảng thể hiện sự quan tâm đến các giải pháp nhúng, tiết kiệm chi phí và khả năng triển khai thực tế. Thành công của đồ án được đánh giá dựa trên tỉ lệ phát hiện và nhận dạng khuôn mặt, với mục tiêu tối ưu hóa tốc độ xử lý và độ chính xác.

1.1. Kiến trúc Hệ thống Nhận diện Khuôn mặt

Hệ thống được thiết kế theo cấu trúc mô-đun, bao gồm các khối chức năng chính: khối đầu vào (Camera Pi), khối xử lý đầu vào (thu nhận và tiền xử lý ảnh), khối phát hiện khuôn mặt (sử dụng thuật toán Haar-like), khối xử lý khuôn mặt được phát hiện (trích xuất đặc trưng), khối cơ sở dữ liệu (lưu trữ thông tin khuôn mặt), khối so sánh (so sánh đặc trưng với cơ sở dữ liệu) và khối kết luận. Sơ đồ nguyên lý phần cứng minh họa sự kết nối giữa các thành phần. Quá trình xử lý ảnh được mô tả chi tiết qua lưu đồ chương trình, bao gồm các bước làm mền ảnh, phát hiện khuôn mặt, trích xuất đặc trưng, và tính toán khoảng cách Euclidean. Kết hợp phần cứng và phần mềm là yếu tố quan trọng quyết định hiệu quả của hệ thống. Việc lựa chọn Raspberry PiOpenCV cho phép linh hoạt trong việc triển khai và tối ưu hóa.

1.2. Thuật toán và Thư viện OpenCV

Đồ án sử dụng thư viện OpenCV để thực hiện các thao tác xử lý ảnh. Thuật toán AdaBoost được áp dụng để huấn luyện bộ phân loại mạnh từ các bộ phân loại yếu dựa trên đặc trưng Haar-like. Chuỗi các bộ phân lớp (Cascade of Classifiers) giúp tăng tốc độ phát hiện khuôn mặt bằng cách loại bỏ nhanh chóng các vùng ảnh không phải khuôn mặt. Quá trình huấn luyện mô hình được thực hiện trên máy tính, sau đó được triển khai trên Raspberry Pi. Cài đặt OpenCV trên Raspberry Pi là một bước quan trọng trong quá trình triển khai. Đồ án cũng đề cập đến việc tối ưu hóa hệ thống, bao gồm cả phần cứng và phần mềm, nhằm giảm thiểu thời gian xử lý và nâng cao độ chính xác. Các hàm OpenCV được sử dụng một cách hiệu quả trong việc thực hiện các bước xử lý ảnh.

1.3. Kết quả và Đánh giá

Kết quả thực nghiệm cho thấy hệ thống đạt được tỉ lệ phát hiện khuôn mặt khá cao (khoảng 96%), ít phụ thuộc vào góc nhìn. Tuy nhiên, tỉ lệ nhận dạng đúng người phụ thuộc vào góc nhìn và độ sáng (khoảng 90%). Hệ thống có thể phát hiện nhiều khuôn mặt cùng lúc, nhưng chỉ có thể nhận dạng một người trong cùng một thời gian do giới hạn cơ sở dữ liệu. Kết quả quá trình huấn luyện được trình bày chi tiết trong báo cáo, bao gồm các chỉ số đánh giá hiệu quả của mô hình. Những hạn chế của hệ thống, như độ trễ trong xử lý ảnh, được phân tích kỹ lưỡng, đề xuất giải pháp tối ưu hóa hệ thống để cải thiện hiệu suất trong tương lai. So sánh các thuật toán nhận diện khuôn mặt khác có thể giúp cải tiến hệ thống trong các phiên bản tiếp theo.

01/02/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1. TỔNG QUAN kit Raspberry Pi. Nêu lên các phân tích, thiết kế về chương trình, sơ đồ khối của hệ thống, sơ đồ nguyên lý phần cứng.  Chương 4: Thi công hệ thống Các bước xây dựng chương trình, tạo tập tin huấn luyện, các hàm, lưu đồ, chương trình được sử dụng.

Viết tài liệu hướng dẫn sử dụng, quy trình thao tác.  Chương 5: Kết quả, Nhận xét và Đánh giá Nêu các kết quả đạt được khi thực thi chương trình, sau đó phân tích, nhận xét, đánh giá các kết quả thực thi được.  Chương 6: Kết luận và hướng phát triển Tóm tắt những kết quả đạt được, những hạn chế và nêu lên các hướng phát triển trong tương lai. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 3 do an CHƯƠNG 2.

CƠ SỞ LÝ THUYẾT CƠ SỞ LÝ THUYẾT 2. GIỚI THIỆU VỀ KIT RASPBERRY PI VÀ MODULE CAMERA PI Raspberry Pi–Chiếc máy tính mini bắt đầu được sản xuất bởi Quỹ Raspberry Pi vào tháng 12/2011. Chiếc máy tính này chỉ có kích cỡ bằng một chiếc thẻ tín dụng với đầy đủ các kết nối và tuỳ dung lượng RAM mà người mua lựa chọn. Trong một cuộc phỏng vấn mới đây, người đứng đầu của quỹ này là David Braben cho biết mặc dù có giá rẻ và kích cỡ nhỏ gọn nhưng máy tính của họ hoàn toàn có thể chơi những game như Quake III Arena hay chơi video độ phân giải Full-HD.1 Cấu tạo của Raspberry Pi 3 model B Trái tim của Pi là chip SOC (System-On-Chip) Broadcom BCM2837 chạy ở tốc độ 1.

Chip này tương đương với nhiều loại được sử dụng trong smartphone phổ thông hiện nay, và có thể chạy được hệ điều hành Linux. Tích hợp trên chip này là nhân đồ họa (GPU) Broadcom VideoCore IV. GPU này đủ mạnh để có thể chơi 1 số game phổ thông và phát video chuẩn full HD. 40 chân GPIO (General Purpose Input Output): đúng như tên gọi của nó, từ đây có thể kết nối và điều khiển rất nhiều thiết bị điện tử/cơ khí khác.

Ngõ HDMI: dùng để kết nối Pi với màn hình máy tính hay tivi có hỗ trợ cổng HDMI. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 4 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Ngõ RCA Video (analog): khi thiết kế Pi người ta cũng tính đến trường hợp người sử dụng ở các nước đang phát triển không có điều kiện sắm một chiếc tivi đời mới tích hợp cổng HDMI. Vì vậy cổng video analog này được thêm vào, giúp bạn có thể kết nối với chiếc tivi đời cũ mà không phải lo lắng.5mm: kết nối dễ dàng với loa ngoài hay headphone.

Đối với tivi có cổng HDMI, ngõ âm thanh được tích hợp theo đường tín hiệu HDMI nên không cần sử dụng ngõ audio này. Cổng USB: một điểm mạnh nữa của Pi là tích hợp 4 cổng USB 2. Bạn có thể kết nối với bàn phím, chuột hay webcam, bộ thu GPS,… qua đó có thể mở rộng phạm vi ứng dụng. Vì Pi chạy Linux nên hầu hết thiết bị chỉ cần cắm-và-chạy (Plug-n-Play) mà không cần cài driver phức tạp.

Cổng Ethernet: cho phép kết nối Internet dễ dàng. Cắm dây mạng vào Pi, kết nối với màn hình máy tính hay tivi và bàn phím, chuột là bạn có thể lướt web dễ dàng. Khe cắm thẻ SD: Pi không tích hợp ổ cứng. Thay vào đó nó dùng thẻ SD để lưu trữ dữ liệu.

Toàn bộ hệ điều hành Linux sẽ hoạt động trên thẻ SD này vì vậy nó cần kích thước thẻ nhớ tối thiểu 4 GB và dung lượng hỗ trợ tối đa là 32 GB. Đèn LED: trên Pi có 5 đèn LED để hiển thị tình trạng hoạt động. Jack nguồn micro USB 5V, tối thiểu 700mA: nhờ thiết kế này mà bạn có thể tận dụng hầu hết các sạc điện thoại di động trên thị trường để cấp nguồn điện cho Pi. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 5 do an CHƯƠNG 2.

CƠ SỞ LÝ THUYẾT Hình 2.2 Các chân GPIO của Raspberry Pi 3 model B Đề tài sử dụng module camera làm thiết bị chụp ảnh đầu vào. Module camera có kích thước 25mm x 20mm x 9mm và nặng 3g. Nó được kết nối trực tiếp vào cổng CSI (Camera Serial Interface) trên kit Raspberry PI thông qua cáp tín hiệu. Module sử dụng cảm biến hình ảnh CMOS QSXGA 5 Mpixel với công nghệ OmniBSI do hãng OmniVision chế tạo, có tiêu cự cố định.

Nó hỗ trợ quay video với độ phân giải full HD tốc độ 30 fps, độ phân giải HD là 60 fps và VGA là 60/90 fps BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 6 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Hình 2.4 Cách kết nối module camera với kit raspberry PI. GIỚI THIỆU VỀ THƯ VIỆN OPENCV OpenCV (Open Computer Vision library) hoàn thiện thành phiên bản 1. Phiên bản mới nhất hiện nay là 3.

Thư viện OpenCV lúc đầu được viết bằng ngôn ngữ lập trình C, về sau đã được mở rộng sang các ngôn ngữ khác như Python, C++ và tương thích với các hệ điều hành Windows, Linux, Mac OS. Trước OpenCV không có một công cụ chuẩn nào cho lĩnh vực CV. Các đoạn code đơn lẻ do các nhà nghiên cứu tự viết thường không thống nhất và không ổn định. Các bộ công cụ thương mại như Matlab, Simulink, Halcon, v.

lại có giá cao chỉ thích hợp cho các công ty phát triển các ứng dụng lớn. Ngoài ra còn có các giải pháp kèm theo thiết bị phần cứng mà phần lớn là mã đóng và được thiết kế riêng cho từng thiết bị, rất khó khăn cho việc mở rộng ứng dụng. OpenCV là công cụ hữu ích cho việc nghiên cứu, ứng dụng CV vì các ưu điểm sau:  OpenCV là công cụ chuyên dụng: Được Intel phát triển theo hướng tối ưu hóa cho các ứng dụng xử lí và phân tích ảnh, với cấu trúc dữ liệu hợp lý, thư viện tạo giao diện, truy xuất thiết bị phần cứng được tích hợp sẵn. OpenCV thích hợp để phát triển nhanh ứng dụng.

 OpenCV là công cụ mã nguồn mở: Không chỉ là công cụ miễn phí (với BSD license), việc được xây dựng trên mã nguồn mở giúp OpenCV trở thành công cụ thích hợp cho nghiên cứu và phát triển, với khả năng thay đổi và mở rộng các mô hình, thuật toán. Cấu trúc thư viện OpenCV [3] : BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 7 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT CV MLL HighGUI Các hàm về xử lý Các thuật toán học Các hàm và thủ tục ảnh và giải thuật về máy, bao gồm các làm việc với file thị giác máy tính bộ phân cụm, phân ảnh và file video loại thống kê CXCORE Các cấu trúc dữ liệu cơ bản, cấu trúc XML, các hàm về đồ họa … Hình 2.5 Cấu trúc cơ bản của OpenCV Ban đầu, phiên bản OpenCV 1.0 được viết bằng ngôn ngữ C, dữ liệu ảnh được lưu trữ trên RAM sử dụng cấu trúc C được gọi là lplImage. Điều này đem lại một bất tiện là chúng ta phải tự giải phóng vùng nhớ lưu trữ dữ liệu ảnh sau khi sử dụng.0 ra đời, kế thừa những ưu điểm đã có từ phiên bản 1.0, sử dụng ngôn ngữ C++ và toán tử cv::Mat ra đời.

Kể từ đây, tất cả các kiểu dữ liệu ảnh, các ma trận đều được lưu dưới dạng cv::Mat. Từ đây việc giải phóng vùng nhớ sau khi sử dụng được thực hiện một cách tự động. Về cơ bản, Mat là một lớp gồm 2 phần dữ liệu: hằng số header ma trận (chứa các thông tin như kích thước ma trận, phương thức sử dụng để lưu trữ và địa chỉ lưu trữ ma trận …) và con trỏ ma trận chứa giá trị các pixel.6 Minh họa kiểu dữ liệu của toán tử mat BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 8 do an CHƯƠNG 2. ĐẶC TRƯNG HAAR-LIKE Viola và Jones dùng 4 đặc trưng cơ bản để xác định khuôn mặt người.

Mỗi đặc trưng Haar–like là sự kết hợp của hai hay ba hình chữ nhật "trắng" hay "đen" như trong hình sau [5]: Hình 2.7 Bốn đặt trưng Haar-like cơ bản Để áp dụng các đặt trưng này vào việc bài toán xác định mặt người, 4 đặt trưng Haar-like cơ bản được mở rộng ra, và được chia làm 3 tập đặc trưng như sau: 1. Đặc trưng cạnh (edge features) 2. Đặc trưng đường (line features) 3. Đặc trưng xung quanh tâm (center-surround features) Hình 2.8 Các đặc trưng mở rộng của các đặc trưng Haar-like cơ sở Lợi ích của các đặc trưng Haar-like là nó diễn đạt được tri thức về các đối tượng trong ảnh (bởi vì nó biểu diễn mối liên hệ giữa các bộ phận của đối tượng), điều mà bản thân từng điểm ảnh không diễn đạt được.

Để tính giá trị các đặc trưng Haar-like, ta tính sự chênh lệch giữa tổng của các pixel của các vùng đen và các vùng trắng như trong công thức sau [5]: f(x) = Tổngvùng đen(pixel) - Tổngvùng trắng(pixel) (2.1) Sử dụng giá trị này, so sánh với các giá trị của các giá trị pixel thô, các đặc trưng Haar-like có thể tăng/giảm sự thay đổi in-class/out-of-class (bên trong hay bên ngoài lớp khuôn mặt người), do đó sẽ làm cho bộ phân loại dễ hơn. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 9 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Như vậy ta có thể thấy rằng, để tính các giá trị của đặc trưng Haar-like, ta phải tính tổng của các vùng pixel trên ảnh. Nhưng để tính toán các giá trị của các đặc trưng Haar-like cho tất cả các vị trí trên ảnh đòi hỏi chi phí tính toán khá lớn, không đáp ứng được cho các ứng dụng đòi hỏi tính run-time.

Do đó Viola và Jones đưa ra một khái niệm gọi là Integral Image để tính toán nhanh cho khác feature cơ bản. Sau này, Lienhart kế thừa gọi Integral Image là SAT – Summed Area Table và đưa ra thêm khái niệm RSAT – Rotated Summed Area Table dùng để tính toán nhanh cho các đặc trưng xoay 1 góc 450. Integral Image là một mảng 2 chiều với kích thước bằng với kích của ảnh cần tính các đặc trưng Haar-like, với mỗi phần tử của mảng này được tính bằng cách tính tổng của điểm ảnh phía trên (dòng-1) và bên trái (cột-1) của nó. Bắt đầu từ vị trí trên, bên trái đến vị trí dưới, phải của ảnh, việc tính toán này đơn thuần chỉ đựa trên phép cộng số nguyên đơn giản, do đó tốc độ thực hiện rất nhanh [5].9 Cách tính Integral Image của ảnh Sau khi đã tính được Integral Image, việc tính tổng điểm ảnh của một vùng bất kỳ nào đó trên ảnh thực hiện rất đơn giản theo cách sau: (Giả sử ta cần tính tổng điểm ảnh của vùng D như trong hình 2.3) Với A + B + C + D chính là giá trị tại điểm P4 trên Integral Image, tương tự như vậy A+B là giá trị tại điểm P2, A+C là giá trị tại điểm P3, và A là giá trị tại điểm P1.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Bài viết "Ứng dụng Raspberry Pi nhận diện khuôn mặt tại HCMUTE" giới thiệu một dự án thú vị tại Trường Đại học Công nghệ TP.HCM, nơi sinh viên sử dụng Raspberry Pi để phát triển hệ thống nhận diện khuôn mặt. Dự án không chỉ thể hiện khả năng ứng dụng công nghệ hiện đại trong việc nhận diện và phân tích hình ảnh mà còn mở ra nhiều cơ hội cho sinh viên trong việc nghiên cứu và phát triển các ứng dụng thực tiễn. Những lợi ích mà bài viết mang lại cho độc giả bao gồm cái nhìn sâu sắc về công nghệ nhận diện khuôn mặt, cũng như cách mà Raspberry Pi có thể được sử dụng trong các dự án học thuật và thực tiễn.

Nếu bạn muốn tìm hiểu thêm về các ứng dụng công nghệ trong lĩnh vực máy tính, hãy tham khảo bài viết Luận văn thạc sĩ khoa học máy tính sử dụng active learning trong việc lựa chọn dữ liệu gán nhãn cho bài toán speech recognition, nơi bạn có thể khám phá cách mà công nghệ học máy được áp dụng trong nhận diện giọng nói. Ngoài ra, bài viết Luận văn thạc sĩ khoa học máy tính nghiên cứu các phương pháp trích xuất thông tin trong ảnh tài liệu và ứng dụng sẽ giúp bạn hiểu rõ hơn về các phương pháp xử lý và phân tích hình ảnh. Cuối cùng, bạn có thể tìm hiểu về Luận văn thạc sĩ kỹ thuật điện tử ứng dụng biến đổi curvelet xử lý ảnh siêu phân giải và triển khai trên kit arm 32 bit, một nghiên cứu liên quan đến xử lý ảnh với công nghệ tiên tiến. Những tài liệu này sẽ giúp bạn mở rộng kiến thức và khám phá thêm nhiều khía cạnh thú vị trong lĩnh vực công nghệ thông tin.