Mơ hình DeepFace (Facebook, CVPR 2014)

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 54)

2.5 Kết quả các thuật toán sử dụng mạng nơron nhân tạo

2.5.3Mơ hình DeepFace (Facebook, CVPR 2014)

Sơ lược kiến trúc DeepFace: DeepFace sử dụng căn chỉnh 3D để xử lý khn mặt. Sau đó đầu vào được bộ lọc tích chập-gộp chung, tiếp theo được xử lý bởi ba tầng được kết nối cục bộ và hai tầng được kết nối đầy đủ. Màu sắc minh họa dựa trên đặc trưng được xử lý ở mỗi tầng. Mạng bao gồm hơn 120 triệu tham số, trong đó hơn 95% đến từ các lớp cục bộ và được kết nối đầy đủ.

Hình 2.13: Kiến trúc của DeepFace

Bảng 2.4: Kết quả của khi so sánh DeepFace với các công nghệ hiện đại trên bộ dữ liệu LFW

Có thể thấy, mơ hình DeepFace đạt kết quả rất cao, lên đến 0.95 tới 0.97, gần ở mức tiệm cận con người.

2.5.4 Mơ hình FaceNet (Google 2015)

FaceNet là một mơ hình được tạo ra từ google, và được huấn luyện bởi 260 triệu bức ảnh. FaceNet có 2 mơ hình CNN: mơ hình lấy cảm hứng từ Zeiler & Fergus, và mơ hình GoogLeNet.

Hình 2.14: Hình ảnh: Mơ hình lấy cảm hứng từ Zeiler & Fergus

Bảng 2.5: Bảng so sánh hiệu suất của kiến trúc mạng trên FaceNet

Qua bảng trên ta có thể thấy kiến trúc NN2 và NN1 có độ chính xác cao nhất.

Bảng 2.6: Bảng so sánh độ chính xác dựa trên số lượng dữ liệu đào tạo

Quả bảng so sánh độ chính xác dựa trên dữ liệu đào tạo, ta có thể thấy độ chính xác được cải thiện rõ rệt khi dữ liệu tăng lên đáng kể. Do đó, ngồi kiến trúc mạng hợp lý, dữ liệu được sử dụng để đào tạo cũng là một nhân tố góp phần tạo nên độ chính xác cao cho mơ hình.

2.5.5 Mơ hình Baidu (2015)

Mơ hình Baidu, 2015, là mơ hình được tạo ra bởi hãng Baidu, Trung Quốc. Với nguồn lực và lượng thông tin cá nhân lớn, Baidu đã xây dựng được một hệ thống nhận diện khuôn mặt với tỉ lệ lỗi rất thấp.

Bảng 2.7: Tỉ lệ lỗi trên lượng dữ liệu khác nhau

Có thể thấy, ở mơ hình của Baidu, với lượng người càng lớn và số khuôn mặt càng nhiều, hệ thống càng trở nên chính xác.

2.6 Kết luận

Bài tốn nhận dạng đã có từ rất lâu với nhiều phương pháp khác nhau. Tuy nhiên, với các kỹ thuật mới, ta có thể thấy rằng độ chính xác của các phương pháp ngày càng tăng trong khi chi phí tính tốn ngày càng giảm.

Hình 2.17: Thống kê các mơ hình, số lượng bộ dữ liệu sử dụng, và các mốc thời gian xuất bản

Qua cách thức hoạt động và các mơ hình được sử dụng trong bài tốn nhận dạng, ta có thể thấy dữ liệu là chìa khóa rất quan trọng trong việc đào tạo. Nếu mơ hình cịn hạn

thiện ở mức đáng kể. Có thể thấy, các mơ hình có độ chính xác cao trên 97% đều sử dụng trên 100 nghìn ảnh để huẩn luyện. Ngồi ra, việc xử lý nhiều phần khn mặt cũng giúp ích rất nhiều cho độ chính xác của nhận diện, tuy nhiên hệ thống sẽ cần số lượng tính tốn lớn hơn để có thể nhận diện.

Các phương pháp nhận dạng bằng mạng nơ ron tích chập hiện nay có độ sai số rất nhỏ và nằm trong ngưỡng chấp nhận được. Nên việc áp dụng mạng nơ ron tích chập để xây dựng một hệ thống nhận diện là hồn tồn khả thi và có thể đáp ứng nhiều nhu cầu khi chúng ta đang dần tiến tới cách mạng công nghiệp 4.0.

CHƯƠNG 3.

SỬ DỤNG MẠNG NƠ RON TÍCH CHẬP TRONG NHẬN DẠNG ĐỐI TƯỢNG

3.1 Sơ lược về áp dụng mạng nơ ron tích chập vào các giải pháp thôngminh trong thực tế minh trong thực tế

Hiện nay, xã hội đang tiến dần đến kỷ nguyên cách mạng công nghiệp 4.0. Với cách mạng công nghiệp 4.0, các mức tự động hóa, cũng như học máy đều ở mức cao, có thể thay thế con người khỏi nhiều việc, nhằm góp phần giải phóng sức lao động. Ngồi ra, việc khai phá dữ liệu cũng đem lại nhiều tối ưu cho các mơ hình kinh doanh, cũng như cho xã hội. Để hướng đến cách mạng công nghiệp 4.0, rất cần các giải pháp tự động hóa cho các mơ hình cơng hoặc mơ hình kinh doanh như bệnh viện, cửa hàng hoặc siêu thị. Ở các giải pháp này, hệ thống thơng minh sẽ tự động phân tích số lượng người ra/vào, hay nhận diện thời điểm xuất hiện của khách hàng thân thiết.

Ở phạm vi của đề tài, luận văn áp dụng hai giải pháp về nhận diện người và nhận diện khuôn mặt sử dụng CNN để áp dụng xây dựng các hệ thống thực tế. Các phương pháp nhận diện người cũng như khuôn mặt qua thực tế đã có độ chính xác và có khả năng thương mại hóa cao.

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

3.2.1 Giới thiệu hệ thống nhận diện và đếm lượt người vào/ra sử dụng mạngnơ ron tích chập nơ ron tích chập

Mơ tả bài tốn: Hiện nay, camera rất thông dụng và được lắp ở mọi nơi. Tuy nhiên, camera dân dụng thơng thường chỉ có chức năng chụp ảnh hoặc ghi hình mà khơng có chức năng thơng minh nào khác. Do đó, giải pháp hướng đến là lập nên một hệ thống có chức năng thống kê người vào/ra. Hệ thống có thể áp dụng cho nhiều địa điểm như các cổng ra vào ở bệnh viện, trường học, siêu thị, ... Dựa trên kết quả thống kê, người dùng có thể nắm được các thông tin về trạng thái hiện tại của khu vực đặt camera. Hệ thống này được xây dựng theo kiến trúc như trong hình. Trong đó:

2. Máy chủ xử lý nhận diện và đếm lượng người: máy chủ có cấu hình mạnh,

tốc độ xử lý cao, có thể xử lý toàn bộ dữ liệu của hệ thống camera, tạo thành báo cáo để đẩy vào hệ thống trích xuất dữ liệu. (adsbygoogle = window.adsbygoogle || []).push({});

3. Hệ thống trích xuất dữ liệu và hình ảnh đối chiếu: sau khi được xử lý qua

máy chủ xử lý, dữ liệu được gom nhóm kèm video, và được lưu trữ ở đây trước khi được đẩy về máy chủ trung tâm.

4. Cơ sở dữ liệu chứa thông tin nhận diện đối tượng: đây là dữ liệu bao gồm

số liệu và hình ảnh và video của hệ thống nhận diện đối tượng.

5. Quản trị viên: quản trị viên là người kết nối lên máy chủ tổng, là người xem

xét dữ liệu để nắm được thông tin số lượng người ra/vào theo khung giờ, và lập các báo cáo cần thiết.

Hình 3.1: Hình ảnh thiết kế của hệ thống nhận diện đối tượng

3.2.2 Giới thiệu kiến trúc của máy chủ xử lý nhận diện và đếm lượng người

Máy chủ xử lý nhận diện và đếm lượng người được sử dụng trong hệ thống là mơ hình YOLO sử dụng kiến trúc mạng nơ ron tích chập. Mơ hình YOLO là một cách tiếp cận mới để phát hiện đối tượng. Với phương pháp này, ta có thể huấn luyện mạng với bộ dữ liệu được gán nhãn. Sau đó, khi sử dụng để nhận diện, phương pháp này xác định và đóng khung đối tượng qua một cửa sổ phân tách trong hình ảnh, kèm theo xác suất của các đối tượng liên quan được phát hiện.

Mơ hình mạng YOLO sử dụng một mạng thần kinh duy nhất để dự đoán các hộp giới hạn và xác suất nhãn trực tiếp từ tồn bộ hình ảnh trong một lần chạy. Vì tồn bộ hệ thống phát hiện là một mạng duy nhất, nên nó được tối ưu hóa từ đầu đến cuối, dựa trên hiệu suất phát hiện. Kiến trúc đơn của YOLO rất nhanh, với mơ hình thường, mạng có thể xử lý được trong thời gian thực với 45 khung hình trên giây, cịn với mơ hình nhỏ hơn là FastYOLO, hệ thống có thể xử lý tới 155 khung hình trên giây.

Hình 3.2: Phương pháp mạng YOLO sử dụng để nhận diện đối tượng.

Mơ hình YOLO được thiết kế với 24 tầng nơ ron tích chập và 2 tầng nơ ron được kết nối đầy đủ. Các lớp chập 1x1 xen kẽ làm giảm dữ liệu từ các tầng trước. Các lớp tích chập được sử dụng để trích xuất các đặc điểm từ hình ảnh, các lớp kết nối đầy đủ được sử dụng để dự đoán xác suất và tọa độ đầu ra. Kiến trúc YOLO được lấy cảm hứng từ mơ hình GoogLeNet cho phân loại hình ảnh

Hình 3.3: Mơ hình mạng yolo

Ở hệ thống nhận diện đối tượng, hệ thống sử dụng mơ hình YOLO, cùng bộ dữ liệu trọng số đã được huấn luyện là yolov3.weights, có sử dụng thêm tối ưu bằng học tăng cường để: tăng cường độ chính xác bằng cách huấn luyện thêm bộ dữ liệu đã có.

3.2.3 Giới thiệu sơ lược về phương pháp mô tả đặc trưng HOG sẽ được dùng để so sánh

HOG trở nên phổ biến vào năm 2005 khi Navneet Dalal và Bill Triggs, các nhà nghiên cứu của Viện Nghiên cứu Khoa học và Tự động hóa Quốc gia Pháp cho thấy cơng việc của họ trên HOG, đây là một giải pháp đáng tin cậy. Thuật tốn cũng là một trình trích xuất các tính năng cho mục đích phát hiện đối tượng. Thay vì xem xét cường độ điểm ảnh như phương pháp Viola Jones, kỹ thuật này đếm các lần xuất hiện của vectơ độ dốc biểu thị hướng ánh sáng để định vị các phân đoạn hình ảnh. Phương pháp sử dụng chuẩn hóa tương phản cục bộ chồng chéo để cải thiện độ chính xác.

3.2.1.1 Giới thiệu sơ lược về phương pháp HOG sử dụng để phát hiện đối tượng

Có 5 bước cơ bản để xây dựng một vector HOG phát hiện đối tượng cho hình ảnh, bao gồm:

1. Tiền xử lý

Bước tiền xử lý sẽ, cắt hình ảnh thành các khối, chuyển kích thước về kích thước chuẩn, sau đó sử dụng các khối để tính tốn đặc trưng ở các bước tiếp theo.

2. Tính độ dốc

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

Để 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 đó: (adsbygoogle = window.adsbygoogle || []).push({});

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 toà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ư toàn bộ số người có trong bức hình (trừ một người áo hồng đứng ở cửa hàng). Ngoà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.

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 (adsbygoogle = window.adsbygoogle || []).push({});

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

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 54)