Tiền xử lý để xác định khung hình

Một phần của tài liệu nghiên cứu về mạng neural convolutional, áp dụng vào bài toán nhận dạng đối tượng trong lĩnh vực thị giác máy tính (Trang 63)

Để tính tốn mơ tả HOG, ta tính tốn độ dốc trên trục Ox và Oy. Độ dốc được tính bằng phép nhân chập ảnh gốc với véc tơ hai chiều tương ứng là:

Đối với hình ảnh màu, độ dốc của ba màu cơ bản (đỏ, xanh lá và xanh da trờii) được tính tốn. Độ lớn của dốc tại một điểm ảnh là giá trị lớn nhất của cường độ dốc của ba kênh màu.

Trong đó:

Hình 3.5: Độ dốc sau khi tính tốn

Hình bên Trái: giá trị tuyệt đối của độ dốc theo x. Hình ở giữa: giá trị tuyệt đối của độ dốc theo y. Hình bên phải: độ lớn của độ dốc

Dựa vào độ dốc, trên mỗi ơ, ta tính tốn các véc tơ đặt trưng theo hướng trên từng ơ. Trong đó ta chia không gian hướng thành p chiều vector đặt trưng của ơ. Sau đó chúng ta rời rạc hóa góc hướng nghiêng tại mỗi điểm ảnh vào trong các chiều véc tơ đặc trưng của ơ

Hình 3.6: Kết quả sau khi tính tốn véc tơ đặc trưng cho từng ơ

Trong đó:

Hình bên Trái: dữ liệu hình ảnh được chia theo từng ô 8x8. Hình ở giữa: độ dốc được biểu diễn trên hình ảnh bằng mũi tên. Hình bên phải: cường độ dốc và hướng dốc được biểu thị bằng số. 4. Chuẩn hóa khối(ví dụ 2x2 ơ)

Bằng cách tính một ngưỡng cường độ trong một khối và sử dụng giá trị đó để chuẩn hóa tất cả các ơ trong khối, các biểu đồ cục bộ sẽ được chuẩn hóa về độ tương phản để tăng cường khả năng nhận dạng. Kết quả sau bước chuẩn hóa sẽ là một vector đặc trưng được tính theo tỉ lệ ánh sáng, do đó nó có tính bất biến cao hơn đối với các thay đổi về điều kiện ánh sáng.

5. Tính tốn vector HOG

Với một ơ, ta sẽ có một véc tơ có kích thước là 9 x 1. Với một khối chứa 2x2 ô, ta sẽ có một véc tơ có kích thước là 9 x 1 x 4 = 36 x 1. Tương tự, với ví dụ một khung hình có 7 khối ngang và 15 khối dọc, khi nối toàn bộ các véc tơ trong khối lại, ta sẽ thu được một vec tơ HOG với kích thước là 36 x 1 x 7 x 15 = 3780 x 1.

Hình 3.7: Biểu diễn các véc tơ chỉ hướng theo HOG thu được sau khi tính tốn

Sau khi hồn thiện các bước trên, ta có thể sử dụng véc tơ HOG để tính tốn và nhận diện đối tượng.

3.2.4 So sánh khả năng nhận diện của hệ thống nhận diện người vào/ra sử dụng mạng nơ ron tích chập với phương pháp HOG đã có dụng mạng nơ ron tích chập với phương pháp HOG đã có

Dựa trên thử nghiệm thực tế, ta thu được hình ảnh là kết quả của hai phương pháp HOG và CNN như sau:

Hình 3.9: Hình ảnh nhận diện bằng phương pháp CNN

So sánh hai phương pháp, ra có thể rút ra được một số kết luận sau:

 Ở phương pháp HOG, ta có thể thấy phương pháp này khơng thể nhận diện tồn bộ người xuất hiện trong bức hình, trong đó có nhận diện nhầm vị trí nơi em bé thành một người.

 Ở phương pháp CNN, ta có thể thấy phương pháp này nhận diện gần như tồn bộ số người có trong bức hình (trừ một người áo hồng đứng ở cửa hàng). Ngồi ra, hệ thống CNN vẫn có thể nhận diện người với độ lỗi mất hình rất lớn (một người đứng sau cột điện)

Bảng 3.1 Kết quả so sánh nhận diện người giữa phương pháp mạng nơ ron tích chập và phương pháp HOG trên kết quả trung bình của dữ liệu thực tế của hệ thống

Trường hợp thử nghiệm Kết quả phương pháp CNN Kết quả phương pháp HOG

Bức ảnh rõ người 95% 73% Kích cỡ người trong bức ảnh rất lớn 96% 62% Kích cỡ người trong bức ảnh rất nhỏ 93% 43% Bức ảnh có người bị che khuất 92% 13%

Có thể thấy rằng, về độ chính xác, phương pháp nhận diện bằng CNN có khả năng nhận diện đối tượng người tốt hơn nhiều so với phương pháp HOG.

3.2.5 Mô tả cơ chế chạy nhận diện người trong lõi máy chủ tính tốn

Bước 1: Dữ liệu là các video được đầy vào hệ thống để xử lý. Hệ thống trích xuất các hình ảnh từ video

Hình 3.10: Hệ thống sử dụng ffmpeg để trích xuất các khung hình trong video

Bước 2: Các hình ảnh lần lượt được đẩy vào lõi nhận diện đối tượng để lấy thông số nhận diện. Thơng số nhận diện gồm có: vị trí và kích cỡ đối tượng được phát hiện

Hình 3.11: Các khung hình lần lượt được hệ thống trích xuất và đưa vào lõi để xử lý.

Bước 3: Sau khi có được thơng số kích cỡ, vị trí và thời gian nhận diện đối tượng của từng khung hình, lõi tính tốn để theo dõi đường đi của đối tượng, xác định đối tượng

có đi qua vùng đếm hay không, và đếm số người ra hoặc vào trong vùng đếm. Sau đó, hệ thống đẩy thơng tin vào cơ sở dữ liệu và xuất ra một video để báo cáo. (adsbygoogle = window.adsbygoogle || []).push({});

Hình 3.12: Dữ liệu số người vào/ra được nhập vào cơ sở dữ liệu, và video báo cáo được hệ thống tự động xuất ra để làm đối chiếu.

3.2.6 Mơ tả q trình sử dụng hệ thống ở giao diện người dùng để hiển thị kết quả

Bước 2: Người sử dụng nhận báo cáo số liệt kê số người vào/ra, cũng như tải video được báo cáo tự động để đối chiếu

Hình 3.14: Kết quả dữ liệu đã được thêm vào cơ sở dữ liệu và hiển trị trên web.

Bước 3: Người sử dụng có thể xem video được báo cáo để đối chiếu và đánh giá độ chính xác của hệ thống.

3.3 Áp dụng mạng nơ ron tích chập để xây dựng hệ thống nhận diện khuôn mặt và đánh giá thực nghiệm, so sánh với phương pháp HOG khuôn mặt và đánh giá thực nghiệm, so sánh với phương pháp HOG

3.3.1 Xây dựng hệ thống nhận diện khuôn mặt

Mơ tả bài tốn: Hiện nay, camera cá nhân rất thơng dụng và được lắp ở mọi nơi, ví dụ như webcam của laptop, hoặc camera của điện thoại thông minh. Tuy nhiên, cũng giống như camera dân dụng, camera chỉ có thể thực hiện được chức năng chụp hình hoặc ghi video cơ bản. Do đó, giải pháp hướng đến là xây dựng một hệ thống website nhận diện khn mặt, có thể chạy trên mọi hệ điều hành, và mọi thết bị từ máy tính cho tới điện thoại.

Về tính ứng dụng, hệ thống có thể sử dụng các điện thoại thơng minh hoặc một máy tính để bàn cùng webcam để làm hệ thống nhận diện khn mặt. Hệ thống có thể trở thành một phần phụ trợ đối với các mơ hình kinh doanh, như hệ thống nhận diện khách hàng quen biết để tăng độ thân thiện cho nhân viên bán hàng, giúp nhân viên bán hàng chào đúng tên khách khi khách hàng quay lại lần sau. Hoặc kết hợp với các hệ thống khác, như thống kê cùng các đơn hàng khách hàng đã mua, việc gán nhãn đó có thể mở ra một mơ hình khai phá dữ liệu lớn, hứa hẹn có thể cải tiến nhiều cho mơ hình kinh doanh.

Hệ thống này được xây dựng theo kiến trúc như sau:

Trong đó:

1. Hệ thống tính tiền: Giả định một hệ thống tính tiền của siêu thị được tích

hợp vào hệ thống nhận diện khuôn mặt.

2. Hệ thống camera: hệ thống camera nhận diện khuôn mặt được đặt.

3. Máy chủ xử lý nhận diện: một máy chủ mạnh thực hiện nhận diện khn

mặt cho khách hàng thanh tốn. Nhận diện được khách hàng và gửi thông tin về máy chủ trung tâm.

4. Quản trị viên: kết nối, nhập liệu khuôn mặt, duyệt cơ sở dữ liệu và trích

xuất báo cáo. Dựa vào các báo cáo để nắm được trạng thái và làm báo cáo. 5. Hệ thống nhập liệu khuôn mặt: hệ thống nhập liệu để quản trị viên thêm

người dùng vào kho cơ sở dữ liệu.

6. Cơ sở dữ liệu: chứa thông tin nhận diện khuôn mặt, cùng các thông tin khác

tùy vào việc áp dụng hệ thống với mơ hình tương ứng.

3.3.2 Giới thiệu cơ chế của máy chủ xử lý nhận diện

Máy chủ xử lý nhận diện khuôn mặt được xử lý theo ba bước như sau:

 Bước 1: Phát hiện vị trí khn mặt trong bức ảnh, sử dụng dlib với bộ dữ liệu nhận diện mmod_human_face_detector.dat.

 Bước 2: Sau khi phát hiện khn mặt, hệ thống xử lý đề dị tìm các điểm đặc trưng trên khuôn mặt. Sử dụng bộ dữ liệu

shape_predictor_68_face_landmarks.dat, ta thu được điểm mốc trên khn

mặt.

Hình 3.18: Hình ảnh 68 điểm mốc trên khn mặt được sử dụng trên bộ thư viện dlib

 Bước 3: Sau khi có các điểm mốc trên khn mặt, ta thực hiện so sánh với các khuôn mặt đã được huấn luyện, và đưa ra khn mặt có tỉ lệ chính xác cao nhất.

3.3.3 Giới thiệu sơ lược về phương pháp phát hiện khuôn mặt sử dụng HOG sẽđược dùng để so sánh được dùng để so sánh (adsbygoogle = window.adsbygoogle || []).push({});

Tổng quan về các bước:

Bước 1: Tiền xử lý: từ hình ảnh gốc, ta sử dụng phương pháp phát hiện khn mặt và trích xuất khn mặt khỏi bức hình

Hình 3.20: Khn mặt được sử dụng để nhận dạng

Hình 3.21: Khn mặt được trích xuất

Bước 2: Lọc theo bộ lọc Gabor: Bộ lọc Gabor phân tích các thay đổi về ánh sáng và kết cấu để phân tích hình ảnh: thay đổi cạnh và kết cấu trong một hình ảnh làm nổi bật các đặc tính của bức ảnh. Điều này giúp loại bỏ chi tiết khơng mong muốn, do đó các chi tiết mà chúng ta thực sự mong muốn như các đường viền của mơi, mắt, lơng mày và vị trí của chúng trong bức ảnh sẽ rõ ràng hơn. Bộ lọc Gabor được sử dụng để phóng đại hướng của hình ảnh khn mặt, ví dụ Gabor biến nụ cười thành hình tam giác như trong hình minh họa. Các cạnh được phóng đại và sắc nét hơn, các đặc điểm khuôn mặt trở nên rõ ràng và đơn giản hơn so với hình ảnh gốc, do đó nó tăng cường độ chính xác cho HOG

HOG lấy hình ảnh được chuyển đổi từ Bộ lọc Gabor và tìm hướng nổi bật nhất cho từng nhóm điểm ảnh, được tính tốn theo ơ. HOG tính tốn hướng dốc và cường độ của hình ảnh Gabor để cung cấp một mơ tả tốn học rõ ràng về hình ảnh, tạo ra một véc tơ để mơ tả hình ảnh, phục vụ cho việc nhận diện khn mặt.

Hình 3.23: Các đặc trưng được trích xuất bằng HOG

Bước 3: Phân loại: véc tơ lấy được từ HOG sẽ được sử dụng theo SVM để tính tốn và phân tích, lưu trữ, và sử dụng để tính tốn kết phân loại khn mặt

3.3.4 So sánh hệ thống nhận diện khuôn mặt với phương pháp HOG đã có

3.3.4.1 So sánh khả năng phát hiện khuôn mặt giữa HOG và CNN 1. Kết quả phát hiện khn mặt khi khn mặt ở góc trực diện

Kết quả phát hiện khn mặt với HOG:

Hình 3.24: Phát hiện khn mặt sử dụng HOG

Độ chính xác: phát hiện gần như chính xác; Thời gian phát hiện của HOG: 0,37s

Kết quả phát hiện với CNN:

Hình 3.25: Phát hiện khn mặt sử dụng CNN

Độ chính xác: phát hiện gần như chính xác Thời gian phát hiện của CNN: 42s

2. Kết quả phát hiện khn mặt khi khn mặt bị nghiêng một góc lớn(khoảng 70 độ):

Kết quả phát hiện với phương pháp HOG:

Hình 3.26: Phát hiện khn mặt sử dụng HOG với góc nghiêng lớn

Phương pháp hồn tồn khơng thể phát hiện được. Độ chính xác: khơng thể phát hiện được;

Kết quả phát hiện với CNN:

Hình 3.27: Phát hiện khn mặt sử dụng CNN với góc nghiêng lớn

Với phương pháp CNN: phát hiện được với kết quả gần như chính xác Thời gian nhận diện 27.30s

Bảng 3.2: Kết quả so sánh phát hiện khn mặt giữa phương pháp mạng nơ ron tích chập và phương pháp HOG trên kết quả trung bình của dữ liệu thực tế của hệ thống

Trường hợp thử nghiệm Kết quả phương pháp CNN

Kết quả phương pháp HOG

Mặt nhìn trực diện vào camera 100% 100%

Kích cỡ khn mặt trong bức ảnh rất lớn 100% 78%

Kích cỡ khn mặt trong bức ảnh rất nhỏ 98% 38%

Khuôn mặt trong bức ảnh bị xoay 30 độ theo phương ngang (adsbygoogle = window.adsbygoogle || []).push({});

99% 55%

Khuôn mặt trong bức ảnh bị xoay 50 độ theo phương ngang

95% 20%

Khuôn mặt trong bức ảnh bị xoay 70 độ theo phương ngang

85% 1%

Khuôn mặt trong bức ảnh bị xoay 90 độ theo phương ngang

Qua phép so sánh, ta có thể thấy tuy HOG có khả năng tính tốn rất nhanh vì tính chất đơn giản. Tuy nhiên với những hình ảnh có độ phức tạp cao, CNN thể hiện rõ khả năng phát hiện khuôn mặt vượt trội so với công nghệ HOG.

3.3.4 So sánh khả năng nhận diện khuôn mặt giữa HOG và CNN

1. Kết quả nhận diện khn mặt khi khn mặt ở góc trực diện Kết quả phát hiện khn mặt với HOG:

Hình 3.28: Kết quả nhận diện khn mặt với HOG

Độ chính xác: phát hiện gần như chính xác;

Kết quả phát hiện với CNN:

2. Kết quả nhận diện khn mặt khi khn mặt bị nghiêng một góc lớn(khoảng 70 độ) Kết quả phát hiện với phương pháp HOG:

Hình 3. 30: Nhận diện khn mặt sử dụng HOG với góc nghiêng lớn

Độ chính xác: khơng thể nhận diện được;

Kết quả phát hiện với CNN:

Hình 3.31: Phát hiện khn mặt sử dụng CNN với góc nghiêng lớn

Bảng 3.3: Kết quả so sánh nhận diện khuôn mặt giữa phương pháp mạng nơ ron tích chập và phương pháp HOG trên kết quả trung bình của dữ liệu thực tế của hệ thống

Trường hợp thử nghiệm Kết quả phương pháp CNN

Kết quả phương pháp HOG

Mặt nhìn trực diện vào camera 100% 100%

Kích cỡ khn mặt trong bức ảnh rất lớn 100% 62%

Kích cỡ khn mặt trong bức ảnh rất nhỏ 98% 35%

Khuôn mặt trong bức ảnh bị xoay 30 độ theo phương ngang

95% 51%

Khuôn mặt trong bức ảnh bị xoay 50 độ theo phương ngang

35% 0%

Khuôn mặt trong bức ảnh bị xoay 70 độ theo phương ngang

12% 0%

Khuôn mặt trong bức ảnh bị xoay 90 độ theo phương ngang (adsbygoogle = window.adsbygoogle || []).push({});

0% 0%

Qua phép so sánh, ta có thể thấy, ở những hình ảnh có độ phức tạp như khn mặt có góc nghiêng lớn, xử lý bằng HOG gần như khơng thể nhận diện được. Nhưng xử lý bằng CNN có sự vượt trội và chính xác hơn.

3.2.5 Kết quả hệ thống web nhận diện khn mặt

3.2.5.1 Giao diện hệ thống

Vì hệ thống web có thể chạy trên 2 nền tảng: nền tảng máy tính và nền tảng thiết bị di động, nên ta có các giao diện hệ thống sau:

Hình 3.32: Giao diện hệ thống trên web (hai hình trên) và giao diện hệ thống trên mobile (hai hình dưới)

3.2.5.2 Kết quả chức năng nhận diện khuôn mặt

Ở hệ thống nhận diện khuôn mặt, kết quả báo cáo được lấy từ thực tế khi sử dụng với dữ liệu được nhận diện bằng camera: Ở phần huấn luyện, dữ liệu đầu vào là một người dùng ngồi trước camera. Hệ thống sẽ nhận diện mơt lượng khung hình của người dùng. Sau đó, ở phần nhận diện, hệ thống sẽ sử dụng dữ liệu đã được huấn luyện trước đó để nhận diện người sử dụng được ghi hình. Các bước kết quả sẽ được báo cáo lần lượt qua các hình ảnh sau:

Hình 3.34: Kết quả nhận diện sau khi huấn luyện

Ở kết quả nhận diện khuôn mặt, ta có thể thấy hệ thống đã nhận diện tốt với khn măt với góc nhìn thẳng, khn mặt với góc nhìn nghiêng xuống dưới 45 độ so với chiều thẳng đứng, khn mặt với góc nhìn nghiêng lên trên 30 độ so với chiều thẳng đứng, khn mặt với góc nhìn nghiêng sang trái 45 độ và khn mặt với góc nhìn nghiêng sang

Một phần của tài liệu nghiên cứu về mạng neural convolutional, áp dụng vào bài toán nhận dạng đối tượng trong lĩnh vực thị giác máy tính (Trang 63)