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

BÀI tập lớn đề tài xử lý ẢNH BẰNG MATLAB

31 6 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

Thông tin cơ bản

Tiêu đề Xử Lý Ảnh Bằng MATLAB
Tác giả Ông Bửu Khánh, Nguyễn Văn Thảo, Bùi Văn Khiêm, Phan Trí Dũng
Người hướng dẫn TS. Phan Thị Lan Anh
Trường học Đại Học Đà Nẵng
Chuyên ngành Công Nghệ Thông Tin
Thể loại bài tập lớn
Năm xuất bản 2021
Thành phố Đà Nẵng
Định dạng
Số trang 31
Dung lượng 896,87 KB

Cấu trúc

  • Chương 1: Giới thiệu (9)
    • 1.1 Tổng quan (9)
    • 1.2 Mục đích (9)
    • 1.3 Phương pháp (10)
      • 1.3.1 Đối tượng (10)
      • 1.3.2 Phạm vi nghiên cứu (10)
    • 1.4 Cấu trúc đồ án (0)
  • Chương 1.1: Nghiên cứu tổng quan (11)
    • 2.1 Các phương pháp (11)
      • 2.1.1 Bài toán nhận diện khuôn mặt (11)
      • 2.1.2 Tổng quan kiến trúc của một hệ thống nhận dạng khuôn mặt (12)
      • 2.1.3 Xác định khuôn hình khẩu trang trên khuôn mặt (12)
    • 2.2 Các công nghệ thực hiện và các khái niệm liên quan (13)
      • 2.2.1 Giới thiệu ngôn ngữ lập trình Python (14)
      • 2.2.2 Giới thiệu về thư viện OpenCV (14)
      • 2.2.3 Deep Learning (15)
      • 2.2.4 Thư viện của Deep Learning – Keras/Deep Learning (16)
    • 2.3 Hạn chế, tồn tại của các phương pháp (17)
  • Chương 3: Phân tích thiết kế hệ thống (18)
    • 3.1 Mô hình tổng quan của hệ thống nghiên cứu (18)
      • 3.1.1 Luồng hoạt động của hệ thống (18)
    • 3.2 Phân tích chi tiết luồng hoạt động của hệ thống (19)
      • 3.2.1 Giai đoạn huấn luyện dữ liệu cho hệ thống (19)
      • 3.2.2 Giai đoạn áp dụng và triển khai phân tích nhận diện của hệ thống (20)
    • 3.3 Phân tích tập dữ liệu (dataset) (21)
      • 3.3.1 Xây dựng tập dữ liệu (21)
  • Chương 4: Triển khai xây dựng (27)
    • 4.1 Cấu trúc dự án (27)
    • 4.2 Triển khai kịch bản huấn luyện (training) hệ thống nhận diện khẩu trang (27)
    • 4.3 Tiến hành huấn luyện hệ thống nhận diện khẩu trang với Keras/Tensorflow (0)
    • 4.4 Triển khai nhận diện khẩu trang với video stream qua webcam (0)
  • Chương 5: Kết luận và hướng phát triển (30)
    • 5.1 Kết luận (30)
    • 5.2 Hướng phát triển (30)

Nội dung

Giới thiệu

Tổng quan

Sự phổ biến của hình ảnh trong cuộc sống hàng ngày đã dẫn đến sự gia tăng lượng thông tin thu được từ hình ảnh Điều này đã thúc đẩy sự phát triển của lĩnh vực xử lý ảnh, với nhiều ứng dụng trong xã hội hiện đại Công nghệ xử lý ảnh không chỉ dừng lại ở việc chỉnh sửa và nâng cao chất lượng hình ảnh, mà còn có khả năng giải quyết các vấn đề như nhận dạng chữ viết, nhận dạng dấu vân tay và nhận dạng khuôn mặt.

Nhóm chúng em sẽ phát triển chương trình xử lý và lọc ảnh nâng cao, nhằm tạo nền tảng cho các đề án và giải pháp giải quyết các vấn đề trong cuộc sống hàng ngày, đặc biệt trong các lĩnh vực thương mại, giáo dục và y tế.

Mục đích

Xây dựng chương trình xử lý ảnh và lọc ảnh nâng cao là nền tảng quan trọng để phát triển các giải pháp và dự án liên quan đến các vấn đề trong cuộc sống Điều này có ý nghĩa lớn trong nhiều lĩnh vực như thương mại, giáo dục và y tế, mang lại lợi ích thiết thực cho mọi người.

Phương pháp

- Các phương pháp, thuật toán phục vụ cho việc phát hiện và nhận dạng khuôn mặt người trên ảnh.

- Bộ thư viện xử lý ảnh OpenCv

- Bộ thư viện xử lý và nhận dạng Tensorflow

- Phương pháp nhận diện và học sâu Deep Learning

- Tập trung tìm hiểu nhận dạng khuôn mặt (Face Recognition)

- Công nghệ theo dõi nhận dạng tập trung ROI (Region Of Interest)

- Xử lí ảnh khuôn mặt từ bộ dữ liệu đầu vào có sẵn và huấn luyện để nhận diện.

- Nhận dạng khuôn mặt với webcam và phát hiện mang khẩu trang hoặc không, đưa ra cảnh báo.

Cấu trung đồ án gồm 3 phần chính:

- Chương 1: Giới thiệu tổng quan

- Chương 2: Nghiên cứu tổng quan

- Chương 3: Phân tích thiết kế hệ thống

- Chương 4: Triển khai xây dựng

- Chương 5: Kết luận và hướng phát triển

Cấu trúc đồ án

2.1 Các phương pháp 2.1.1 Bài toán nhận diện khuôn mặt

Hệ thống nhận dạng khuôn mặt là công nghệ có khả năng nhận diện khuôn mặt từ ảnh, video hoặc webcam Qua quá trình xử lý và tính toán, hệ thống xác định vị trí khuôn mặt trong hình ảnh và so sánh với cơ sở dữ liệu để nhận diện người đã biết hoặc xác định người lạ.

Trước khi tiến hành nhận dạng khuôn mặt, chương trình cần chuẩn bị dữ liệu thô, bao gồm các khuôn mặt của sinh viên Sau đó, dữ liệu này sẽ được huấn luyện để trích xuất các embedding vector, phục vụ cho việc so sánh sau này Vì vậy, việc chuẩn bị dữ liệu ban đầu là cực kỳ quan trọng.

Hình 1-Hệ thống nhận diện khuôn mặt

Nghiên cứu tổng quan

Các phương pháp

Hệ thống nhận dạng khuôn mặt sử dụng ảnh, video hoặc webcam để xác định vị trí khuôn mặt Qua quá trình xử lý và tính toán, hệ thống có khả năng nhận diện người dùng từ danh sách đã học hoặc phát hiện người lạ.

Trước khi nhận diện khuôn mặt, chương trình cần chuẩn bị dữ liệu thô, bao gồm các khuôn mặt của sinh viên Sau đó, dữ liệu này sẽ được đào tạo để trích xuất các embedding vector, phục vụ cho việc so sánh sau này Vì vậy, việc chuẩn bị dữ liệu ban đầu là rất quan trọng.

Hình 1-Hệ thống nhận diện khuôn mặt

2.1.2 Tổng quan kiến trúc của một hệ thống nhận dạng khuôn mặt

Một hệ thống nhận dạng mặt người thông thường bao gồm bốn bước xử lý sau:

1 Phát hiện khuôn mặt (Face Detection).

2 Phân đoạn khuôn mặt (Face Alignment hay Segmentation).

3 Trích chọn đặc trưng (Feature Extraction).

4 Nhận dạng (Recognition) hay Phân lớp khuôn mặt (Face Clasaification).

2.1.3 Xác định khuôn hình khẩu trang trên khuôn mặt

Khi nhận diện khuôn mặt xác định vị trí và theo dõi cố dịnh trên khuôn.

Chúng ta sử dụng ROI để xác định các đặc điểm trên khuôn mặt khi đeo khẩu trang, như mắt, mũi và miệng, mà bị che khuất Hệ thống sẽ nhận diện những vùng này như là khẩu trang.

Vùng quan tâm (ROI) là khu vực trong hình ảnh mà chúng ta sẽ thực hiện các xử lý hoặc biến đổi, trong khi các vùng khác sẽ được bỏ qua.

Vùng quan tâm (ROI) trong xử lý ảnh:

ROI có thể xuất hiện dưới nhiều hình dạng khác nhau, bao gồm hình vuông, hình chữ nhật, hình tròn, hoặc thậm chí là nhiều vùng nhỏ trên ảnh Nó cũng có thể được xác định bằng các pixel riêng lẻ trong hình ảnh.

 ROI là một KHẨU TRANG mà trên đó: pixel quan tâm có giá trị 1 (màu trắng) và pixel không quan tâm có giá trị zero.

 Vùng không quan tâm trên ảnh thường là BACKGROUND (ảnh nền).

 Áp dụng ROI lên ảnh ta lấy ảnh gốc nhân với khẩu trang ROI.

Hình 2-Các bước chính trong hệ thống nhận dạng

ROI được mô tả dữ dội quá, hãy cùng Minh xem qua ảnh minh họa của ROI nhé:

 Màu trắng thể hiện vùng ảnh ta quan tâm, cần sẽ xử lý.

 Màu đen là vùng ta KHÔNG QUAN TÂM, không xử lý hoặc bỏ đi.

Khẩu trang ROI là ma trận nhị phân với các giá trị 0 và 1, để trực quan hóa thành hình ảnh, cần phải chuyển đổi giá trị về miền [0, 255] để hiển thị tốt hơn.

Các công nghệ thực hiện và các khái niệm liên quan

Để giải quyết vấn đề nhận diện khuôn mặt và nhận diện đeo khẩu trang, bài viết này áp dụng thư viện xử lý ảnh OpenCV cùng với Keras/Tensorflow, đồng thời sử dụng Deep Learning trong quá trình thực hiện.

Trong đồ án này ngôn ngữ lập trình được sử dụng là Python, được viết trên môi trường của Python là IDLE và Visual Studio Code.

2.2.1 Giới thiệu ngôn ngữ lập trình Python

Python là ngôn ngữ lập trình bậc cao đa năng do Guido van Rossum phát triển và ra mắt lần đầu vào năm 1991 Với thiết kế dễ đọc, dễ học và dễ nhớ, Python nổi bật với cú pháp sáng sủa và cấu trúc rõ ràng, phù hợp cho người mới bắt đầu lập trình Ngoài ra, Python cho phép người dùng viết mã lệnh với số lần gõ phím tối thiểu, mang lại sự tiện lợi trong quá trình lập trình.

Python là ngôn ngữ lập trình hoàn toàn kiểu động, sử dụng cơ chế cấp phát bộ nhớ tự động, tương tự như các ngôn ngữ như Perl, Ruby, Scheme, Smalltalk và Tcl Ngôn ngữ này được phát triển trong một dự án mã nguồn mở, dưới sự quản lý của tổ chức phi lợi nhuận Python Software Foundation.

Python ban đầu được phát triển để chạy trên nền Unix, nhưng đã mở rộng sang nhiều hệ điều hành khác như MS-DOS, Mac OS, OS/2, Windows và Linux Sự phát triển của Python có sự đóng góp từ nhiều cá nhân, nhưng Guido van Rossum vẫn là tác giả chính và giữ vai trò quan trọng trong việc định hướng phát triển của ngôn ngữ này.

2.2.2 Giới thiệu về thư viện OpenCV

OpenCv (Open Source Computer Vision) là thư viện mã nguồn mở nổi bật trong lĩnh vực thị giác máy, cung cấp hơn 500 hàm và hơn 2500 thuật toán tối ưu hóa về XLA Thư viện này được thiết kế để khai thác tối đa sức mạnh của các chip đa lõi, cho phép thực hiện các phép toán trong thời gian thực, đảm bảo tốc độ đáp ứng nhanh chóng cho các ứng dụng thông thường.

OpenCV là một thư viện mã nguồn mở đa nền tảng, có khả năng hoạt động trên các hệ điều hành như Windows, Linux, Mac và iOS Thư viện này tuân theo giấy phép BSD, cho phép người dùng sử dụng miễn phí cho cả mục đích thương mại và phi thương mại.

Dự án OpenCV bắt đầu vào năm 1999 và được giới thiệu tại hội nghị IEEE vào năm 2000, tập trung vào các vấn đề trong thị giác máy và nhận dạng Tuy nhiên, phiên bản chính thức OpenCV 1.0 chỉ được công bố vào năm 2006.

Phiên bản 1.1 (prerelease) của OpenCV được phát hành vào năm 2008 Đến tháng 10 năm 2009, OpenCV thế hệ thứ hai, thường được gọi là phiên bản 2.x, ra mắt với giao diện C++ mới, khác biệt so với giao diện C của phiên bản trước, cùng nhiều cải tiến đáng kể.

Thư viện OpenCV được khởi xướng với sự hỗ trợ từ Intel và sau đó nhận được sự ủng hộ từ Willow Garage, một phòng thí nghiệm chuyên nghiên cứu công nghệ robot.

OpenCV vẫn là thư viện mở, được phát triển bởi nguồn quỹ không lợi nhuận (none-profit foundation) và được sự hưởng ứng rất lớn của cộng đồng.

Trí tuệ nhân tạo (AI) đang ngày càng thâm nhập vào cuộc sống hàng ngày và có ảnh hưởng sâu rộng đến chúng ta Các thuật ngữ như "Trí tuệ nhân tạo", "Học máy" và "Học sâu" đã trở nên quen thuộc Hãy cùng xem hình minh họa để hiểu rõ hơn về mối quan hệ giữa trí tuệ nhân tạo, học máy và học sâu.

Deep learning, một nhánh quan trọng của machine learning, đang trở thành một chủ đề hot trong lĩnh vực trí tuệ nhân tạo Nó tập trung vào việc giải quyết các vấn đề liên quan đến mạng thần kinh nhân tạo, góp phần nâng cao công nghệ nhận diện giọng nói, tầm nhìn máy tính và xử lý ngôn ngữ tự nhiên Trong những năm qua, deep learning đã mang lại những tiến bộ đáng kể trong nhiều lĩnh vực như nhận thức sự vật, dịch tự động và nhận diện giọng nói, những thách thức lớn đối với các nhà nghiên cứu AI Để hiểu rõ hơn về deep learning, cần xem xét các khái niệm cơ bản về trí tuệ nhân tạo.

Trí tuệ nhân tạo được cấu thành từ nhiều lớp, với mạng thần kinh nhân tạo ở đáy, tiếp theo là machine learning và deep learning nằm ở tầng trên cùng.

Hình 3-Giới thiệu về thư viện OpenCV

2.2.4 Thư viện của Deep Learning – Keras/Deep Learning

Keras là một thư viện deep learning cấp cao, sử dụng các backend như TensorFlow, CNTK hoặc Theano So với TensorFlow, Keras có cú pháp đơn giản và dễ hiểu hơn Để tập trung vào việc giới thiệu các mô hình, tôi sẽ chọn Keras kết hợp với TensorFlow làm backend.

Những lý do nên sử dụng Keras để bắt đầu:

 Keras ưu tiên trải nghiệm của người lập trình

 Keras đã được sử dụng rộng rãi trong cộng đồng nghiên cứu

 Keras giúp dễ dàng biến các thiết kế thành sản phẩm

 Keras hỗ trợ huấn luyện trên nhiều GPU phân tán

Keras hỗ trợ nhiều backend engines, không chỉ giới hạn trong hệ sinh thái TensorFlow Trong thập kỷ qua, sự bùng nổ của Trí Tuệ Nhân Tạo (A.I.) đã thúc đẩy sự phát triển mạnh mẽ của machine learning và deep learning Hiện nay, TensorFlow là thư viện mã nguồn mở hàng đầu cho machine learning, được phát triển bởi các nhà nghiên cứu của Google Sự hỗ trợ mạnh mẽ cho các phép toán trong machine learning và deep learning đã giúp đơn giản hóa và tăng tốc quá trình giải quyết các bài toán phức tạp.

Kiến trúc TensorFlow hoạt động được chia thành 3 phần:

 Tiền xử lý dữ liệu

 Train và ước tính model Cách TensorFlow hoạt động:

TensorFlow cho phép lập trình viên xây dựng đồ thị dataflow, mô tả cách dữ liệu di chuyển qua các node xử lý Mỗi node đại diện cho một phép toán, trong khi các kết nối giữa các node là các tensor, tức là mảng dữ liệu đa chiều.

Hạn chế, tồn tại của các phương pháp

Bài toán nhận dạng khuôn mặt đã được nghiên cứu từ những năm 70, nhưng vẫn gặp nhiều khó khăn chưa được giải quyết Các yếu tố ảnh hưởng đến nhận dạng bao gồm tư thế và góc chụp, sự xuất hiện hoặc thiếu hụt các thành phần như râu và kính, biểu cảm khuôn mặt, sự che khuất bởi các đối tượng khác, biến đổi hướng ảnh, điều kiện chụp như ánh sáng và chất lượng camera, cùng với sự thay đổi theo thời gian Những thách thức này khiến cho việc phát triển công nghệ nhận dạng khuôn mặt trở nên phức tạp và là chủ đề nghiên cứu của nhiều nhóm trên thế giới.

Phân tích thiết kế hệ thống

Mô hình tổng quan của hệ thống nghiên cứu

Hệ thống nhận diện khuôn mặt đeo khẩu trang được chia thành hai giai đoạn riêng biệt, mỗi giai đoạn bao gồm các bước nhiệm vụ cụ thể để tùy chỉnh quá trình huấn luyện.

Ta có 2 giai đoạn chính như trên sơ đồ:

Giai đoạn 1: Huấn luyện dữ liệu cho hệ thống (Train Face Mask Detector)Giai đoạn 2: Triển khai nhận diện và phân tích (Apply Face Mask Detector)

Phân tích chi tiết luồng hoạt động của hệ thống

Hình 5-Sơ đồ luồng hoạt động của giai đoạn Train dữ liệu

Chúng ta sẽ tải tập dữ liệu phát hiện khẩu trang, sau đó sử dụng Keras/TensorFlow để đào tạo một mô hình trên tập dữ liệu này Cuối cùng, chúng ta sẽ tuần tự hóa trình phát hiện khẩu trang vào bộ dữ liệu.

Phân tích luồng hoạt động của giai đoạn Train dữ liệu qua thứ tự các bước:

Bước đầu tiên trong quy trình là tải tập dữ liệu mặt nạ, nơi hệ thống sẽ bắt đầu tải dữ liệu để đưa vào Dữ liệu này được lấy từ tập dữ liệu (dataset) đã chuẩn bị sẵn.

Huấn luyện bộ phân loại khẩu trang cho khuôn mặt bằng Keras/TensorFlow là một quy trình quan trọng nhằm phân loại khuôn mặt có đeo khẩu trang và không đeo khẩu trang Việc này giúp hệ thống phân tích và đưa ra hai kết quả khác nhau cho việc nhận diện khuôn mặt, từ đó nâng cao hiệu quả trong việc kiểm soát và bảo vệ sức khỏe cộng đồng.

To serialize a face mask classifier using Keras/TensorFlow, the system continuously trains on incoming data to ensure effective model training This process involves saving the trained model to disk, allowing for efficient updates and improvements as new data becomes available.

3.2.2 Giai đoạn áp dụng và triển khai phân tích nhận diện của hệ thống

Hình 6-Sơ đồ luồng hoạt động phân tích và nhận diện của hệ thống

Sau khi hoàn tất việc huấn luyện trình phát hiện khẩu trang, chúng ta có thể tải trình phát hiện này để thực hiện việc nhận diện khuôn mặt Quá trình này cho phép phân loại từng khuôn mặt thành hai nhóm: có đeo khẩu trang và không đeo khẩu trang.

Phân tích luồng hoạt động của giai đoạn áp dụng vào phân tích và nhận diện của hệ thống:

Trước khi tiến hành phân tích, hệ thống cần tải mặt nạ phân loại từ đĩa và nạp toàn bộ ảnh nhận dạng vào bộ nhớ để chúng có thể học, sau đó mới bắt đầu quá trình nhận diện và phân tích.

Phát hiện khuôn mặt trong luồng video: Sau khi tải toàn bộ hình ảnh, chúng ta chuyển sang nhận diện khuôn mặt qua video stream sử dụng webcam từ laptop.

Sau khi nhận diện khuôn mặt từ video stream, chúng ta tiến hành áp dụng ROI (Region of Interest) để trích xuất khuôn mặt một cách tập trung và chính xác nhất.

Áp dụng công cụ phân loại khẩu trang cho từng khu vực khuôn mặt (ROI) nhằm xác định tình trạng "có khẩu trang" hoặc "không có khẩu trang".

- Show results: hiển thị kết quả sau khi đã tiến hành phân tích nhận diện.

Phân tích tập dữ liệu (dataset)

Để xây dựng tập dữ liệu phục vụ cho việc huấn luyện (train) dữ liệu

Chúng tôi đã tạo ra một kho ảnh chân dung đa dạng, trong đó tất cả các khuôn mặt đều không đeo khẩu trang Tập ảnh này được sử dụng để huấn luyện mô hình nhận diện khuôn mặt với định danh là không đeo khẩu trang.

Tạo tập ảnh chân dung với khuôn mặt đeo khẩu trang bằng cách sử dụng tập ảnh không đeo khẩu trang, chúng ta có thể áp dụng Python và OpenCV để ghép hình khẩu trang vào các khuôn mặt Phương pháp này cho phép tạo ra tập dữ liệu ảnh nhân tạo nhưng vẫn giữ tính thực tế, hữu ích cho các ứng dụng liên quan đến nhận diện khuôn mặt trong bối cảnh hiện nay.

Các mốc trên khuôn mặt giúp xác định cấu trúc như đôi mắt, lông mày, mũi, mặt và khuôn hàm Để xây dựng tập dữ liệu về khuôn mặt đeo khẩu trang, chúng ta cần bắt đầu từ hình ảnh của một người không đeo khẩu trang.

Để tạo ra bộ dữ liệu về khẩu trang trong bối cảnh đại dịch COVID-19, bước đầu tiên là sử dụng một bức ảnh của một người không đeo khẩu trang.

Từ đó, chúng ta áp dụng tính năng phát hiện khuôn mặt để tính toán vị trí hộp giới hạn của khuôn mặt trong hình ảnh:

Hình 8-Nhận diện khuôn mặt trên bức ảnh nhờ Deep Learning

Chúng tôi đã áp dụng công nghệ nhận diện khuôn mặt bằng phương pháp học sâu (Deep Learning) thông qua OpenCV, như được thể hiện trong hình 3.3.2.

Hình 9-Trích xuất ROI của khuôn mặt với OpenCV và NumPy cắt

Hình 3.3.3 - Khi chúng ta biết vị trí của khuôn mặt trong hình ảnh, chúng ta có thể trích xuất Vùng ưa thích (ROI) của khuôn mặt

Và từ đó, chúng ta áp dụng các điểm mốc trên khuôn mặt, cho phép chúng ta xác định vị trí của mắt, mũi, miệng, v.v.:

Hình 10-Đánh dấu các điểm mốc trên khuôn mặt

Sau đó, chúng ta phát hiện các điểm mốc trên khuôn mặt bằng cách sử dụng dlib để chúng ta biết vị trí đặt khẩu trang trên khuôn mặt.

Tiếp theo, chúng ta cần một hình ảnh của một khẩu trang (với nền trong suốt) như hình bên dưới:

Khẩu trang ngăn chặn lây lan COVID-19 Coronavirus qua đường hô hấp được thiết kế để tự động phủ lên ROI của khuôn mặt, nhờ vào việc xác định các vị trí mốc khuôn mặt.

Khẩu trang này sẽ tự động được áp dụng cho khuôn mặt bằng cách sử dụng các điểm mốc trên khuôn mặt, đặc biệt là các điểm dọc theo cằm và mũi, để xác định vị trí chính xác của khẩu trang.

Hình 12-Hình ảnh khẩu trang được đặt lên khuôn mặt

Khẩu trang COVID-19 được áp dụng trên khuôn mặt của người trong hình ảnh, sử dụng công nghệ thị giác máy tính thông qua các mốc khuôn mặt từ OpenCV và dlib Việc này giúp nhận diện và hiển thị khẩu trang một cách tự động và chính xác.

Chúng ta có thể tiếp tục lặp lại quy trình này cho tất cả các hình ảnh đầu vào, từ đó xây dựng bộ dữ liệu khẩu trang nhân tạo của mình.

Hình 13-Bộ dữ liệu ảnh đeo khẩu trang nhân tạo

Hình ảnh khẩu trang COVID-19 nhân tạo được trình bày trong bộ dữ liệu "có khẩu trang" và "không có khẩu trang" sẽ hỗ trợ việc phát hiện khẩu trang thông qua thị giác máy tính và học sâu, sử dụng Python, OpenCV và TensorFlow/Keras.

Triển khai xây dựng

Cấu trúc dự án

Cấu trúc thư mục chính của dự án:

Tập thư mục dataset chứa dữ liệu được mô tả trong phần “Tập dữ liệu phát hiện khẩu trang COVID-19 của chúng ta”.

Ba hình ảnh examples được cung cấp để bạn có thể kiểm tra trình phát hiện khẩu trang hình ảnh tĩnh.

Tập tin train_mask_detector.py chấp nhận dữ liệu đầu vào và tinh chỉnh mô hình MobileNetV2 để tạo ra mask_detector.model Đồng thời, một hình ảnh plot.png ghi lại lịch sử huấn luyện cũng được tạo ra.

- detect_mask_image.py : Thực hiện phát hiện khẩu trang trong hình ảnh tĩnh.

- detect_mask_video.py : Sử dụng webcam của bạn, tập lệnh này áp dụng tính năng phát hiện khẩu trang cho mọi khung hình trong luồng.

Triển khai kịch bản huấn luyện (training) hệ thống nhận diện khẩu trang

Chúng ta sẽ khám phá cách sử dụng Keras và TensorFlow để xây dựng một bộ phân loại tự động phát hiện người đeo khẩu trang Nhiệm vụ này sẽ được thực hiện bằng cách tinh chỉnh kiến trúc MobileNet V2, một mô hình hiệu quả cao phù hợp cho các thiết bị nhúng với khả năng tính toán hạn chế như Raspberry Pi, Google Coral, và NVIDIA Jetson Nano.

Việc áp dụng nhận diện khẩu trang trên các thiết bị nhúng giúp giảm chi phí sản xuất cho hệ thống phát hiện khẩu trang, vì vậy chúng tôi đã quyết định sử dụng kiến trúc này.

Hình 14-Kết quả nhận diện khuôn mặt không mang khẩu trang

Hình 4.4 – Kết quả nhận diện khuôn mặt khi không đeo khẩu trang đã được hiện ra sau khi phân tích.

Hình 15-Kết quả nhận diện khuôn mặt có đeo khẩu trang

Kết quả nhận diện khuôn mặt khi đeo khẩu trang đã được phân tích và hiển thị, cho thấy máy dò khẩu trang của chúng ta hoạt động hiệu quả trong thời gian thực và đạt độ chính xác cao trong dự đoán.

Triển khai nhận diện khẩu trang với video stream qua webcam

Sau thời gian khoảng 1 tháng vừa học vừa triển khai xây dựng thì cuối cùng cơ bản hệ thống cũng hoàn thành.

Hệ thống có thể load và training dữ liệu từ tập dữ liệu đã tạo ra gồm các ảnh người có đeo khẩu trang và không đeo khẩu trang.

Công nghệ nhận diện khuôn mặt hiện nay có khả năng phân tích và phân biệt giữa khuôn mặt có đeo khẩu trang và không Hệ thống này còn hỗ trợ nhận diện theo thời gian thực thông qua việc sử dụng webcam stream của người dùng.

Tuy nhiên vì thời gian và kiến thức có hạn,nhóm em đã cơ bản hoàn thành hệ thống nên còn một vài hạn chế nhất định như sau:

- Hệ thống nhận diện hoạt động kém khi ánh sáng yếu, hoặc khoảng cách xa.

- Vì tập dữ liệu nhân tạo nên đôi khi có sự sai sót nhầm lẫn khi nhận diện các loại khẩu trang kiểu mẫu khác nhau

- Chưa thể đưa ra cảnh báo bằng âm thanh

Vì hệ thống còn một số hạn chế nên nhóm em sẽ tiếp tục cải thiện hệ thống về mặt nhận diện.

Sưu tập được bộ ảnh dữ liệu thật để nâng cao khả năng nhận diện và đưa ra kết quả chính xác hơn.

Bổ sung tính năng cho phép hệ thống đưa ra cảnh báo bằng âm thanh.

Xây dựng lắp đặt camera giám sát tích hợp việc nhận diện khuôn mặt mang khẩu trang.

Ngày đăng: 23/12/2023, 20:45

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

TÀI LIỆU LIÊN QUAN

w