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

Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA

94 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Tác giả Nguyen Ngoc Minh
Người hướng dẫn ThS. Phan Dinh Duy
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Kỹ thuật máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 94
Dung lượng 28,63 MB

Cấu trúc

  • 2.1. Giới thiệu tong quan về các thuật toán phát hiện khuôn mặt [4] (0)
    • 2.1.1. Phương pháp dựa trên đặc trưng của bức anh.. 2.1.2. Phương pháp dựa trên thông tin hình anh (17)
    • 2.1.3. So sánh 2 cách tiếp cận 2.2. Thử nghiệm giải thuật phát hiện khuôn mặt dựa trên màu da [5] (21)
    • 2.2.1. Chuyển đổi sang hệ màu YCbCr.. 2.2.2. Trích xuất màu da...............................................cccccccrrrrrrrrrrrrirrrrrrree 25 2.2.3. Lấy ngưỡng màu da (thresholding) và chuyền sang ảnh nhị phan (23)
    • 2.2.4. Xử lý hình thái ảnh............................ ¿+ + k kg vy 27 2.2.5. Thực hiện gan nhãn ........................... - ¿c5 SE rey 30 2.2.6. Kếtluận............................................ciiiiiiiiiirirrrrrrrrrrrrrre 31 2.3. Thử nghiệm giải thuật của Viola-JOnes...........................---- reer dl 2.3.1. Thurc hién 1 1... ............... 2.3.2. Tính toán Integral Image và Sqare Integral Image (27)
    • 2.3.3. Phát hiện khuôn mặt dựa trên Haar-like feature (35)

Nội dung

Muc tiêu của khóa luận Mục tiêu của khóa luận này là tìm hiểu một số giải thuật nhận diện khuôn mặt và thử nghiệm trên phần mềm, sau đó hiện thực hóa giải thuật nhận diện gương mặtphù hợ

Giới thiệu tong quan về các thuật toán phát hiện khuôn mặt [4]

Phương pháp dựa trên đặc trưng của bức anh 2.1.2 Phương pháp dựa trên thông tin hình anh

**' Active shape model (ASM) Ý tưởng của phương pháp này là tạo một khuôn đặc trưng cho gương mặt, và đặt nó vào điểm mà nó cho là mốc Sau đó thực hiện biến dạng khuôn này cho tới khi khớp nhất với hình dáng gương mặt trong bức ảnh Do đó quá trình training model này diễn ra bằng cách tạo ra mô hình gương mặt làm chuẩn cùng với các mốc được gắn nhãn thủ công tại các vị trí quan trọng như mắt, mũi, lông mày Có 3 biến thể chính của phương pháp ASM Đó là phương pháp Snakes, Point Distribution Model (PDM) và deformable templates.

— Phương pháp Snakes: Được sử dụng vào việc phát hiện đường bao của đầu người Ban đầu một khuôn mẫu được khởi tạo dé bao xung quanh vùng viền của đầu, sau đó khuôn này được co lại về phía đường viền đầu và cuối cùng đưa ra hình dạng giả định của vùng đầu Phương pháp này có một số điểm yếu như, đường viền thường bị mắc kẹt vào các đặc trưng không phải là viền đầu và rắn không phù hợp trong việc trích xuất các đặc trưng không lồi.

— Phương pháp Point Distribution Model (PDM): được phat trién độc lập với việc sử dung thị giá máy tính và bằng cách phát triển các mô hình thống kê về hình dang của khuôn mặt Y tưởng là một khi người ta có thé biểu điễn các hình ảnh dưới dạng vectơ, sau đó áp dụng phương pháp thống kê tiêu chuẩn cho chúng giống như bat kỳ đối tượng đa biến nào khác Các mô hình này học các tập hợp điểm tạo nên hình dạng từ dữ liệu huấn luyện và sử dụng nguyên tắc thành phần dé xây dựng một mô hình, được gọi là Mô hình phân phối điểm (PDM).

— Phương pháp Deformable templates: phương pháp này là một bước cải tiến của phương pháp Snakes đã được trình bày Định vị ranh giới khuôn mặt không phải là một nhiệm vụ dễ dàng vì bằng chứng về các cạnh trên khuôn mặt rất khó tổ chức thành một thực thể hợp lý chỉ bằng cách sử dụng các đường viền của bức ảnh Độ tương phản sáng thấp xung quanh vị trí này cũng làm cho quá trình phát hiện cạnh gặp vấn đề Ý tưởng kết hợp thêm thông tin về vùng mắt đề cải thiện độ tin cậy của quá trình khai thác thông tin Ngoài các thông tin cạnh, còn sử dụng thêm các thông tin như độ sáng, peak, valley.

Phương pháp này chi sử dung các đặc trưng rất cơ bản của bức ảnh thé thực hiện phát hiện khuôn mặt, bao gồm cạnh, thông tin mức xám, thông tin màu sắc, chuyền động, tính đối xứng của đối tượng.

— Phương pháp Edge base: phương pháp dựa trên đường viền cạnh được xem là phương pháp đơn giản và lâu đời nhất Phát hiện gương mặt dựa trên cạnh lần đầu tiên được giới thiệu vào năm 1972 bởi Sakai Bằng cách dựa trên các cạnh của bức ảnh đề đưa ra định vị các đặc trưng của khuôn mặt.

— Phương pháp Gray scale base: các đặc điểm trên khuôn mặt như lông mày và môi thường có màu sắc đậm hơn so với xung quanh vùng mặt Các hình ảnh đầu vào được gia tăng độ tương phản và hình thái mức xám đề làm cải thiện các vùng tối cục bộ và do đó làm cho việc phát hiện dé dang hon.

— Phương pháp dựa trên chuyển động: phương pháp này dùng chuyên biệt cho đầu vào là video Chuyền động trong bức ảnh được cô lập lại và sử dụng để định vị đối tượng Từ đó gương mặt và body có thể trích xuất bằng cách đặt ngưỡng.

— Phương pháp dựa trên màu da: Màu sắc là một đặc trưng quan trọng của gương mặt người Đa dạng các không gian màu có thê ứng dụng như RGB, YUV,

YcbCr, HSV, Phương pháp này không phụ thuộc vào điều kiện chiếu sáng hoặc môi trường Các bước thực hiện như sau: phân nhóm vùng da dựa vào không gian màu sắc, đặt ngưỡng để lấy vùng da của gương mặt, vẽ bounding box để xác định đối tượng.

Các phương pháp thuộc nhóm này hướng đến mục đích tim ra các đặc điểm cấu trúc tồn tại trong bộ điệu, hình thái, đặc điểm chiếu sáng sau đó từ các đặc trưng này mà định vị vị trí của gương mặt Có 2 phượng pháp thuộc nhóm này Phương

— Tìm kiếm đặc trưng (Feature searching): Nôi bật trong số các phương pháp này là phương pháp của Viola-Jones Nó sử dụng Haar-like feature để làm đặc trưng cơ sở Từ đó, phương pháp so sánh sự khác nhau giữa cường độ chiếu sáng của

2 hoặc 3 vùng trong cửa số đề đưa ra dự đoán về kết quả.

— Phân tích chòm sao (Constellation method): Tat cả những phương pháp chúng ta đã tìm hiểu cho tới nay đều có thê định vị khuôn mặt, nhưng trong các trường hợp có ngoại cảnh phức tạp, việc đó thực sự khó khăn Để giảm khó khăn này, các nhà phát triển đã sử dụng một loạt các đặc điểm gương mặt và chuyển chúng thành hình dáng giống như chòm sao Sau đó, họ sử dụng các mô hình toán học mạnh mẽ như phân tích thống kê để định vị khuôn mặt.

2.1.2 Phương pháp dựa trên thông tin hình ảnh

Input image Evwaedwindow Corrected lighting Histogram equalized pyramid (0 x20 pixels) a je ie ee ay

Preprocessing ‘Neural network pa fields Hidden units

Hình 2.2 Mô hình mang no ron cua Rowley

Mang no-ron đã được áp dụng khá thành công trong các bài toán nhận dang mẫu, chẳng hạn như nhận dạng ký tự, đối tượng, robot tự động vận hành Một lợi thế của việc sử dụng mạng nơ-ron dé xác định khuôn mặt là tính khả thi của hệ thống học khi có sự phức tạp trong lớp của các mẫu khuôn mặt Tuy nhiên, một trở ngại của phương pháp này là các kiến trúc mạng đều là tổng quát, và khi áp dụng, chúng ta phải xác định rõ ràng số lượng tầng, số lượng node, tỷ lệ học, và các tham số khác cho từng trường hợp cụ thể Hình ảnh mô tả một mô hình được đề xuất bởiRowley Hiện nay có rất nhiều mô hình dựa trên mạng nơ ron được đưa ra, chẳng hạn như mô hình FaceNet, YOLO, MTCNN Mỗi mô hình đều có ưu nhược điểm riêng về độ phức tạp và độ chính xác.

“> Kỹ thuật Linear sub-space

Kỹ thuật cơ ban của phương pháp này là sử dung một số lượng nhỏ ảnh được mã hóa tuyến tính Tập hợp các vector cơ sở tối ưu được gọi là ảnh Eigen vì chúng chỉ là các vector riêng của ma trận hiệp phương sai tính từ khuôn mặt đã được vector hóa. s* Phương pháp thống kê

Có hai kỹ thuật chính trong nhóm này là Support vector machine (SVM) và

So sánh 2 cách tiếp cận 2.2 Thử nghiệm giải thuật phát hiện khuôn mặt dựa trên màu da [5]

Trong các phương pháp dựa trên đặc trưng (feature-based), các nhà nghiên cứu đã nỗ lực tìm ra các đặc điểm bat biến trên khuôn mặt dé phát hiện Giả thuyết của họ dựa trên sự thật rằng con người có thé dễ dàng nhận biết khuôn mặt và vật thé ở các tư thế và điều kiện ánh sáng khác nhau, do đó phải tồn tại đặc điểm hoặc tính chất bat biến nào đó trên các đối tượng này Nhiều phương pháp đã được đề xuất để phát hiện các đặc điểm trên khuôn mặt và từ đó suy ra sự hiện diện của một khuôn mặt Các đặc điểm trên khuôn mặt, chẳng hạn như màu da, lông mày, mắt, mũi, miệng và đường chân tóc, thường được trích xuất từ thông tin cạnh trong bức ảnh. Dựa trên các đặc trưng được trích xuất, một mô hình thống kê được xây dựng dé mô tả mối quan hệ giữa chúng và xác định sự tồn tại của một khuôn mặt Tuy nhiên,một vấn dé của các tính năng dựa trên đặc trưng là chúng có thể bị ảnh hưởng

Trong phương pháp dựa trên thông tin anh (image-based), các mẫu được học từ các hình ảnh huấn luyện Các phương pháp thuộc nhóm này sử dụng các kỹ thuật như phân tích thông kê hay học máy đề tìm ra mối tương quan giữa các đặc trưng của bức ản| h có gương mặt và không có gương mặt.

Bảng 2.1 So sánh phương pháp phát hiện khuôn mat Phương pháp dựa trên đặc trưng

Phương pháp dựa trên thông tin anh (image base)

Kỹ thuật Sử dụng các đặc điểm bất biến của khuôn mặt dé làm cơ sở cho việc phát hiện Các đặc điểm của khuôn mặt như màu da, lông mày, mặt, mũi, miệng, đường chân tóc thường được trích xuất từ do tìm cạnh trong bức ảnh Từ các đặc trưng được trích xuất như trên, họ xây dựng một mô hình thống kê mô tả lại mối liên kết giữa chúng và từ đó ta có một mô hình có khả năng phát hiện khuôn mặt.

Mô hình được xây dựng bằng cách học hỏi trên các mẫu huấn luyện.

Nhìn chung, các phương pháp thuộc nhóm này thường sử dụng các phương pháp như phân tích thống kê hoặc học máy để huấn luyện mô hình Các đặc điểm đã học được biểu diễn dưới dạng mô hình phân phối hoặc hàm phân biệt.

Ví dụ Phương pháp trích xuất màu da, cạnh, chuyển động, giải thuật của Viola-Jones,

M6 hinh mang no ron, HMM, SVM,

Dac diém Dé cai dat hon Kho cai dat hon

Các đặc trưng dé bi hư hỏng do chiếu sáng, nhiễu hay bị che khuất Ngoài ra, xuất hiện các

Một tập dữ liệu high-dimension lại thường chứa các feature kém (không đóng góp nhiều vào kết quả) dẫn đến bóng shadow trên bức ảnh có thé | việc giảm hiệu năng của mô hình. làm nhiễu loạn thông tin cạnh, | Và việc lựa chọn trong rất nhiều thứ có thể khiến các thuật toán | feature để chọn ra feature có ảnh nhóm này trở nên vô dụng hưởng lớn đến kết quả cũng trở nên khó khăn hơn.

2.2 Thử nghiệm giải thuật phát hiện khuôn mặt dựa trên màu da [5]

Giải thuật phát hiện khuôn mặt dựa trên màu da bao gồm 3 bước cụ thê như sau: chuyền đổi ảnh từ không gian màu RGB sang YCbCr, trích xuất màu da từ bức ảnh, đánh dấu vùng chứa gương mặt Tổng quát các bước được thể hiện như hình dưới:

Chuyển ảnh sang hệ mẫu YCbCr

Thực hiện phép oian rư dm

‘Banh dầu vùng chữa gương mặt

[Tao bounding box xung| quanh đổi tượng

Loại bỏ các đối tượng nhỏ

Hình 2.3 Mô tả các bước thực hiện

Chuyển đổi sang hệ màu YCbCr 2.2.2 Trích xuất màu da .cccccccrrrrrrrrrrrrirrrrrrree 25 2.2.3 Lấy ngưỡng màu da (thresholding) và chuyền sang ảnh nhị phan

Ảnh đầu vào được biểu diễn đưới dạng RGB, tuy nhiên đặc điểm của hệ màu này là bị ảnh hưởng mạnh khi điều kiện ánh sáng thay đổi, vì vậy có thể khiến việc phát hiện khuôn mặt bi ảnh hưởng Trong khi đó, không gian màu YCbCr giúp loại bỏ những ảnh hưởng từ độ sáng trong quá trình xử lý.

Hình 2.4 Ảnh đầu vào được thé hiện thông qua 2 hình ảnh. Đề chuyển đổi từ không gian màu từ RGB sang YCbCr, ta sử dụng công thức như sau:

— Y: đại diện cho thành phần độ sáng của bức ảnh

—_ Cb,Cr: đại diện cho thành phần màu của bức ảnh

Bước này có nhiệm vụ loại bỏ những vùng không phải là màu da người, giữ lại những vùng có màu sắc tương tự màu da người Quá trình thực hiện được thể hiện như hình, gồm các bước như sau: lay ngưỡng màu da (thresholding), chuyển đổi sang ảnh nhị phân và xử lý hình thái của ảnh (morphological)

Hình 2.6 Quá trình thực hiện trích xuất màu đa 2.2.3 Lấy ngưỡng màu da (thresholding) và chuyển sang ảnh nhị phân

Sau khi bức ảnh được chuyền đổi từ không gian màu RGB sang YCbCr, ta thực hiện công việc lấy ngưỡng màu sắc sao cho các vùng lấy được là các vùng da người Những vùng thuộc vào ngưỡng sẽ được gán giá trị lớn nhất 255, ngược lại vùng nằm ngoài ngưỡng sẽ được gán giá trị bằng 0 Ngưỡng được đề xuất các giá trị như sau:

Ngưỡng trên thu được từ việc phân tích biểu dé histogram của các bức ảnh chứa

Hình 2.7 Giá trị Cb và Cr của gương mặt (trên), giá trị của cả bức ảnh (dưới)

Sau khi lấy ngưỡng, kết quá được thể hiện như hình dưới đây.

Thu hẹp vùng ngưỡng làm gia tăng khả năng các pixel thu được thật sự là vùng da mặt và các vùng background sẽ dễ được loại bỏ Nhưng nó cũng làm tăng khả năng mat mát thông tin vùng da mặt trong một số trường hợp Trong khi đó, mở rộng vùng ngưỡng có thé thu được hầu hết vùng da người, nhưng cũng có thé xuất hiện các vùng không mong muốn Giá trị ngưỡng như trên, cho chúng ta kết quả tốt nhất.

Sau đó các giá trị pixel được chuyển đổi về dạng binary, tương ứng giá trị 255 được chuyền thành 1 và giá trị 0 được giữ nguyên.

Xử lý hình thái ảnh ¿+ + k kg vy 27 2.2.5 Thực hiện gan nhãn - ¿c5 SE rey 30 2.2.6 Kếtluận ciiiiiiiiiirirrrrrrrrrrrrrre 31 2.3 Thử nghiệm giải thuật của Viola-JOnes reer dl 2.3.1 Thurc hién 1 1 2.3.2 Tính toán Integral Image và Sqare Integral Image

Bao gồm 3 bước chính: làm co đối tượng (erosion), làm dãn đối tượng (dilation), và loại bỏ vùng nhỏ.

Làm co đối tượng (erosion): hình ảnh sau đây biêu diễn phép làm co ma trận.

Hinh 2.9 Phép lam co ma tran

Erosion hay còn gọi là xói mòn là một trong hai toán tử co bản trong lĩnh vực hình thái toán học (mathematical morphology) Nó thường được áp dụng trong những hình ảnh nhị phân Mục đích của phương pháp này sẽ giúp:

— Loại bỏ những pixel nhiễu cô lập

— Loại bỏ những pixel nhiễu xung quanh đối tượng giúp cho phần viền (cạnh) của đôi tượng trở nên mịn hơn

— Loại bỏ lớp viền (cạnh) của đối tượng giúp đối tượng trở nên nhỏ hơn và đặt những pixel viền đó trở thành lớp nền của đối tượng

Dưới đây là hình ảnh sau khi được thực hiện phép làm co ma trận.

“ Làm dan đối tượng (delation): dưới đây là hình ảnh biểu diễn phép làm dãn

Input image Structuring Dilated image element ma tran.

Hinh 2.11 Phép lam dan ma tran

Dilation hay còn còn là sự giãn nở là toán tử còn lại mà nó ngược lại với erosion cũng được áp dụng trong các ảnh nhị phân Mục đích của phương pháp này sẽ giúp:

— Với những hình ảnh bị đứt nét có thé giúp nói liền ảnh lại

— Với những pixel nhiễu xung quanh đối tượng sẽ trở thành viền của đối tượng

Hình ảnh sau khi được thực hiện phép làm dãn ma trận.

Hình 2.12 Hình ảnh sau khi được làm dãn

“+ Loại bỏ vùng nhỏ: Hình ảnh sau khi loại bỏ vùng nhỏ.

Những vùng ảnh có diện tích nhỏ hơn SOpixel sẽ được loại bỏ vì khả năng cao vùng đó không chứa thông tin về gương mặt.

Sau khi trải qua các bước trích xuất đặc trưng của bức ảnh, bước cuối cùng là gán nhãn các vùng màu trắng có khả năng cao chứa gương mặt người Thuật toán bao gồm 2 bước chính: trích xuất thông tin cạnh, tạo buonding box xung quanh cạnh Ảnh sau khi trích xuất thông tin cạnh và sau khi tạo buonding box được thé hiện thông qua 2 hình dưới đây.

Sau khi nhóm thử nghiệm phát hiện gương mặt bằng giải thuật trích xuất màu da, mà đã được trình bày như trên, bằng cách sử dụng thư viện OpenCV ngôn ngữ Python trên 241 bức ảnh ngẫu nhiên trong tập dữ liệu [16] thì kết quả thu được với độ chính xác 52% Trong đó, có 241 gương mặt thì số gương mặt nhận dạng chính xác là 125 Tuy vậy, giải thuật vẫn nhận dạng nhằm vào các vùng khác như mắt, tay, chân rất nhiều, đơn cử như hình dưới đây.

Hình 2.16 Nhận diện nhằm vào các vùng không phải gương mặt

2.3 Thử nghiệm giải thuật của Viola-Jones

Nhìn chung, giải thuật của Viola-Jones trải qua các bước như hình dưới đây.

Trong đó, các bước quan trọng của giải thuật bao gồm các bước chính như sau: thực hiện scale bức ảnh, tính ma trận Integral Image, thực hiện công việc detect gương mặt dựa trên Haar-like feature trên từng cửa số và lặp lại cho tới khi hoàn tất tẤt cả cửa sô trên bức ảnh và sau đó lặp lại tat cả những bước trên cho bức ảnh được scale với hệ số khác nhau cho tới khi bức ảnh phải nhỏ hơn cửa số detect [6]

Khời tạo hé số scale = 1

“Thực hiện trên từng cửa số

Tớnh Haarlke featue ô+ ——— nhân hộ số scale với

Di chuyển sang cùa. số kế tên

[Lưu giá tị đa chỉ của| lova số và hệ số scal| hiện tại

Hình 2.17 Các bước của giải thuật Viola-Jones 2.3.1 Thực hiện scale ảnh

Một điểm cần lưu ý khi sử dụng thuật toán Viola-Jones đó là nhạy cảm với tỷ lệ Một bộ classifier được thiết kế hoàn hảo cho gương mặt có kích thước cố định.

Ví dụng nếu Haar-like feature có kích cỡ 24x24 thì nó sẽ dễ dàng phát hiện được gương mặt nằm gọn trong cửa số đó Nhưng chúng ta đều biết rằng, đối tượng có thể nằm xa hoặc gần, lớn hoặc nhỏ, rất đa dạng về kích cỡ Và điều bắt buộc là chúng ta phải phát hiện được đối tượng bat kể kích thước của chúng Đề thực hiện điều này, chúng ta có thể thực hiện scale bức ảnh hoặc feature để có thể phát hiện được đối tượng.

Hình 2.18 Hình ảnh minh họa Scale pyramid [6]

Vấn dé trên có thé giải quyết bằng cách tạo ra các bức ảnh có kích cỡ khác nhau Hình 2.18 thể hiện một kim tự tháp gồm các bức ảnh được scale từ ảnh góc.Việc nhận diện ban đầu sẽ được thực hiện trên ảnh gốc, sau đó kích thước ảnh được giảm xuống lần lượt với hệ số scale Việc scale được lặp lại cho đến khi bức ảnh phải lớn hơn kích cỡ của Haar-feature Bằng cách chọn tỷ lệ scale lớn, thì tốc độ sẽ nhanh hơn, nhưng có thể bỏ rơi một số đối tượng với kích cỡ scale xác định Cần phải lựa chọn hệ số thỏa đáng tốc độ lẫn độ chính xác.

Thuật toán được dùng để scale bức ảnh là thuật toán nôi suy lân cận gần nhất

(Nearest-neighbor interpolation) Đây được xem là phương pháp scale ảnh đơn giản nhất, mỗi một pixel đầu vào sẽ được thay thể bởi pixel lân cận gần nhất sau khi thực hiện tính toán dia chỉ tương ứng Cụ thể, một pixel tại địa chỉ (x, y) ở bức ảnh output sẽ là giá tri pixel (x/scale_x, y/scale_y) ở bức anh input Dĩ nhiên, không phải tất cả giá trị đều tồn tại dạng số nguyên, nên chúng ta sẽ đưa giá trị về số nguyên gần nhất của nó Hình trên đây minh họa một ví dụ.

2.3.2 Tính toán Integral Image và Sqare Integral Image

Vi dụ về ma trận ii va sii được tính toán từ ma trận gốc:

Ma tran gắc Ma trên Integral Image

Ma trận Square Integral Image

Hình 2.20 Ví dụ về ma trận Integral Image và Sqaure Integral ImageGiải thuật của Viola-Jones hoạt động trên bức ảnh grayscale — mỗi pixel ảnh được biểu diễn bằng 8 bit màu sắc Dé ma tăng hiệu suất của giải thuật, giá trị tích phân được tính trên toàn bộ bức anh (Integral Image) Ảnh tích phân — Integral

Image (II) là biểu diễn trung gian của bất kỳ ảnh xám nào Nó sử dụng trong giải thuật của Viola-Jones vì nó giúp tính toán diện tích các ma trận con hình chữ nhật trong bức ảnh được nhanh hơn Ảnh tích phân được định nghĩa là giá trị tại ii(x, y) tại pixel P bằng tổng tất cả các pixel của bức ảnh gốc tại vị trí bên trái trên cùng cho tới P, bao gồm cả P Tương tư cách tinh sii sử dụng tổng giá tri pixel bình phương thay vì chỉ là giá trị pixel Giá trị tại vị trí ii(x,y),sii(x,y) được biểu diễn bằng biểu thức như sau [6]: li(x,y) = Xx= stagethreshold) stage_ vai = 1 else stage_val=0

(s0 > Cs a, 4 sn —” Ca) bà, ` sf S }— > " n

/ o_weak val o_weak val o_weak_val

S1->Sn: sum = sum + o_weak_vai

Hình 2.25 Mô tả các bước tính tổng stage

— o_weak_val: là giá trị tính Haar-like feature từ bước trên

— sum: tông tat cả Haar-like feature của stage

— stage_val: giá trị trả về của stage c Cascade classifier

Vì trong bức ảnh, hầu hết các vùng được quét qua không phải là đối tượng cần tìm (gương mặt), nên việc tính toán tất cả các Haar-like feature trên tất cả VỊ trí của bức ảnh là dư thừa Nếu cửa số hiện tại chắc chắn không phải là gương mặt thì nên kết thúc ngay và chuyên sang vùng kế tiếp của bức ảnh [6]

Nếu việc tính tổng stage ở bước trên trả về kết quả 0 thì mô hình kết luận cửa số hiện tại không chứa gương mặt và di chuyển sang cửa sé kế tiếp Ngược lại, nếu tổng stage trả về giá trị 1 thì nó sẽ thực hiện tiếp stage kế tiếp và sẽ kết luận là gương mặt nếu cửa số hiện tại vượt qua được tất cả 25 stage.

Chỉ tiết có thể tham khảo mô hình dưới đây:

( so ) ( sim) S92 mà stage_val stage_val stage_ val n= num stages

$1>Sn: res = res & stage_val

Hình 2.26 Mô ta cách hoạt động cua cascade classifier Trong do:

— stage_0al: 0 hoặc 1 Là giá trị từ bước tinh toán trước

Do đó, bằng cách tổ chức các Haar-like feature vào các tầng (stage) và huấn luyện một mô hình phân loại (cascade classifier) theo các tầng thì giảm thiểu được các xử lý không cần thiết Các vùng nền (background) thường được loại bỏ ngay 1 hoặc 2 stage tính toán đầu tiên [6] d.Lighting Correction

Một đặc điểm nữa của giải thuật Viola-Jones đó là nhạy cảm với ánh sáng Một bức ảnh có thé được chụp lại ở nhiều điều kiện sáng khác nhau, điều mà có thé gây trở ngại đối với giải thuật này [14]

Hình 2.27 Ảnh quá sáng Hình 2.28 Ảnh quá tối

Hình 2.27, Hình 2.28 cho thấy 2 gương mặt không phát hiện được bởi do điều kiện ánh sáng bắt lợi Hình 2.27 nguyên nhân từ việc gương mặt được chiếu sáng quá đà Trong khi Hình 2.28 không phát hiện được do ánh sáng yếu Đề giải quyết vấn đề nhạy cảm với độ sáng của giải thuật, chúng ta có thể tính toán độ lệch chuẩn của cửa sé detect, điều này có thể hữu dụng trong một số trường hợp, đối với trường hợp quá nghiêm trọng như ví dụ trên thì không có tác dụng.

Công thức tính stddev được đề xuất như sau [15]

Stddev = JSii2? — Ssii x FEATURE_WIDTH * FEATURE_HEIGHT (28)

Sử = ii(A) + ii(D) — ii(B) — ii(C)

Ssii = sii(A) + sii(D) — sii(B) — sii(C)

— Sii là tổng giá trị pixel của cửa số detect

— Ssii là tông giá tri pixel bình phương của cửa số detect

— sii tương ứng giá trị ma trận square integral image tại các vị trí A, B, C, D

Sau khi có được giá trị stddev, nó sẽ được bổ sung lại vào bước tính toán Haar- like feature như sau

Ha lld Mb Ile wi Ha lld Ib Ic W2 IIa Ild IIb llc W3 Ỷ Y,Y Y, | VY YY Y, | | Ỷ Ỷ Y | nh |i pepe |

‘ara aX OX aa ars ee

Hinh 2.29 So dé tinh Haar-feature.

Sau khi nhóm thử nghiệm phát hiện gương mặt bằng giải thuật của Viola-Jones mà đã được trình bày như trên, bằng chương trình sử dụng ngôn ngữ C trên 241 bức ảnh ngẫu nhiên trong tập dữ liệu [16] thì kết qua thu được với độ chính xác 82%. Trong đó, có 241 gương mặt thì số gương mặt nhận dạng chính xác là 197 Tuy vay, có xuất hiện hiện tượng chồng lấn các cửa số lên nhau do bức ảnh thực hiện trên nhiều tỷ lệ scale nhỏ dần Qua thử nghiệm bằng phần mềm trên cả 2 phương pháp, giải thuật của Viola-Jones cho kết quả chính xác và có giá trị sử dụng cao hơn phương pháp trích xuất màu da.

Hình 2.30 Hiện tượng chồng lắn do thực hiện trên nhiều tỷ lệ scale.

Dựa trên việc tìm hiéu, phân tích, thử nghiệm cả 2 phương pháp bằng ngôn ngữ lập trình Python và C, phương pháp thích hợp nhất sẽ được lựa chọn để hiện thực hóa trên chip FPGA.

Bảng 2.3 So sánh 2 phương pháp đã tìm hiểu Ưu điểm Nhược điểm

Trích mau da xuất Đơn giản trong việc hiện thực

Hiệu quả trên hình ảnh có background đơn điệu

Tốc độ xử lý rất nhanh

— Với những bức ảnh có hậu cảnh phức tạp hay trùng với màu đa thì kết quả nhận diện sai nghiêm trọng

Không linh hoạt, mỗi cấu hình chỉ tối ưu cho ngữ cảnh cố định

Vùng da tay, chân cũng bị

Thuật toán | — Độ chính xác cao hơn trong | — Trải qua nhiều bước tính toán của Viola- trường hợp background hơn, phức tạp hơn trong quá Jones phức tap trình hiện thực

— Tốc độ xử lý nhanh — Độ chính xác, hiệu năng phụ

— Linh hoạt, sử dụng tốt trong thuộc đa phân vào model sử nhiều ngữ cảnh khác nhau dụng

Cuối cùng, nhóm nhận thấy phương pháp phát hiện khuôn mặt dựa trên giải thuật của Viola-Jones phù hợp và được lựa chọn để được thực hiện ở những bước kế tiếp dựa trên những ưu và khuyết điểm mà đã phân tích phía trên đây và hơn hết là kết quả thực nghiệm trên Python và OpenCV.

Ngày đăng: 23/10/2024, 01:09

HÌNH ẢNH LIÊN QUAN

Hình 2.6 Quá trình thực hiện trích xuất màu đa 2.2.3. Lấy ngưỡng màu da (thresholding) và chuyển sang ảnh nhị phân - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình 2.6 Quá trình thực hiện trích xuất màu đa 2.2.3. Lấy ngưỡng màu da (thresholding) và chuyển sang ảnh nhị phân (Trang 25)
Hình 2.7 Giá trị Cb và Cr của gương mặt (trên), giá trị của cả bức ảnh (dưới) - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình 2.7 Giá trị Cb và Cr của gương mặt (trên), giá trị của cả bức ảnh (dưới) (Trang 26)
Hình 2.16 Nhận diện nhằm vào các vùng không phải gương mặt - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình 2.16 Nhận diện nhằm vào các vùng không phải gương mặt (Trang 31)
Hình 3.18 Kiến trúc khối Square Integral WindowBuffer 3.8. Khối Stddev - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình 3.18 Kiến trúc khối Square Integral WindowBuffer 3.8. Khối Stddev (Trang 62)
Hình dưới đây thể hiện kiến trúc của khối. Tính tổng giá trị của các pixel được thực hiện bằng các khối sum - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình d ưới đây thể hiện kiến trúc của khối. Tính tổng giá trị của các pixel được thực hiện bằng các khối sum (Trang 63)
Hình 3.19 Mô tả kiến trúc của khối Stddev trước khi pipeline Nhóm thực hiện cải tiến khối này bằng cách thực hiện pipeline để gia tăng cơ hội đạt được tan số tối đa lớn hơn - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình 3.19 Mô tả kiến trúc của khối Stddev trước khi pipeline Nhóm thực hiện cải tiến khối này bằng cách thực hiện pipeline để gia tăng cơ hội đạt được tan số tối đa lớn hơn (Trang 63)
Hình 3.22 Mô tả kiến trúc khối Feature_mems - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình 3.22 Mô tả kiến trúc khối Feature_mems (Trang 64)
Hình 3.21 Biểu diễn cách sắp xếp của 4 điểm trong hình chữ nhật Quan sát hình trên, tọa độ 4 điểm A, B, C, D có thể suy ra chỉ từ các tọa độ của A(A,yA) và D(xD,yD) do đó ta chỉ cần lưu trữ 4 giá trị này - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình 3.21 Biểu diễn cách sắp xếp của 4 điểm trong hình chữ nhật Quan sát hình trên, tọa độ 4 điểm A, B, C, D có thể suy ra chỉ từ các tọa độ của A(A,yA) và D(xD,yD) do đó ta chỉ cần lưu trữ 4 giá trị này (Trang 64)
Hình 3.23 Mô tả kiến trúc khối Classifier Hình sau là mô phỏng cách tính feature sum từ các giá trị của khối Integral - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình 3.23 Mô tả kiến trúc khối Classifier Hình sau là mô phỏng cách tính feature sum từ các giá trị của khối Integral (Trang 66)
Hình 3.24 Mô phỏng khối feature_sum Sau khi có giá trị tổng của features, nó sẽ được dùng để so sánh với giá trị ngưỡng, nếu nhỏ hơn giá trị ngưỡng thì leaf_val sẽ là giá trị đến từ khối leaf0_ROM, ngược lại leaf_val là giá trị từ khối leaƒ1_ROM. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình 3.24 Mô phỏng khối feature_sum Sau khi có giá trị tổng của features, nó sẽ được dùng để so sánh với giá trị ngưỡng, nếu nhỏ hơn giá trị ngưỡng thì leaf_val sẽ là giá trị đến từ khối leaf0_ROM, ngược lại leaf_val là giá trị từ khối leaƒ1_ROM (Trang 67)
Hình 3.25 Mô phỏng kết quả giá trị leaf_ val - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình 3.25 Mô phỏng kết quả giá trị leaf_ val (Trang 67)
Hình 3.26 Mô phỏng kết quả của stage - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình 3.26 Mô phỏng kết quả của stage (Trang 68)
Bảng 3.2 Thống kê số chu kỳ xử lý của khối Classifier Trường | Có gương |Số stage | Số feature | Thời gian xử lý sau | Trước cải hợp mặt Vượt qua xử lý cải tiến (số chu kỳ) | tiến - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Bảng 3.2 Thống kê số chu kỳ xử lý của khối Classifier Trường | Có gương |Số stage | Số feature | Thời gian xử lý sau | Trước cải hợp mặt Vượt qua xử lý cải tiến (số chu kỳ) | tiến (Trang 69)
Hình 3.27 Trinh tự thực hiện và thời gian thực hiện - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình 3.27 Trinh tự thực hiện và thời gian thực hiện (Trang 70)
Bảng 3.4 Số lượng cửa sô thực hiện ở mỗi lần scale - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Bảng 3.4 Số lượng cửa sô thực hiện ở mỗi lần scale (Trang 71)
Hình dưới mô phỏng lại thời gian ké từ lúc pixel đầu tiên được đưa vào khối IMG buffer cho tới khi hoàn tất việc lưu trữ - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình d ưới mô phỏng lại thời gian ké từ lúc pixel đầu tiên được đưa vào khối IMG buffer cho tới khi hoàn tất việc lưu trữ (Trang 72)
Hình 3.28 Mô phỏng khối IMG buffer trước (trên) và sau (dưới) cải tiến. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình 3.28 Mô phỏng khối IMG buffer trước (trên) và sau (dưới) cải tiến (Trang 72)
Hình 3.30 Mô phỏng Integral WindowBuffer trước (trên) và sau (dưới) cải tiền - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình 3.30 Mô phỏng Integral WindowBuffer trước (trên) và sau (dưới) cải tiền (Trang 73)
Hình dưới mô phỏng thời gian tạo ra một cửa số detection Window ở khối Integral WindowBuffer mỗi khi di chuyên sang cửa số kế tiếp. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình d ưới mô phỏng thời gian tạo ra một cửa số detection Window ở khối Integral WindowBuffer mỗi khi di chuyên sang cửa số kế tiếp (Trang 73)
Hình 3.32 Mô phỏng khối Stddev. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, hiện thực giải thuật phát hiện khuôn mặt trên FPGA
Hình 3.32 Mô phỏng khối Stddev (Trang 74)