Kết quả phát hiện mẫu trên ảnh IJB-A bằng phương pháp tháp sâu

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

2.4.2 Phát hiện các điểm quan trọng trên khuôn mặt

Khi các khn mặt được phát hiện, thuật tốn thực hiện phát hiện các điểm quan trọng để căn chỉnh khn mặt. Thuật tốn sẽ tìm cách khơi phục mặt về hình dáng mặc định ban đầu: gọi khn mặt là I, hình dạng ban đầu là S0, thuật tốn sẽ tính tốn mức tăng hình dạng ∆S từ các mơ tả sâu (deep descriptors) và cập nhật bằng cơng thức sau:

Các tính năng CNN (được biểu thị là Φ trong công thức trên) được thiết kế với bước nhảy và cách gộp hợp lý, được sử dụng làm các tính năng để thực hiện tính tốn. Ở đây, kiến trúc CNN được sử dụng tương tự như Alexnet với các trọng số được xử lý trước cho bộ dữ liệu ImageNet như trong hình sau:

Hình 2.7: Kiến trúc DCNN được sử dụng để trích xuất các mơ tả cục bộ cho nhiệm vụ phát hiện các điểm mốc trên khn mặt

Vì mục tiêu mạng CNN này là phát hiện khn mặt. Do đó, mạng sẽ được căn chỉnh để xử lý dữ liệu khuôn mặt tốt hơn. Các dữ liệu đầu ra ở từng tầng sẽ là dữ liệu đầu vào ở tầng tiếp theo. Trong hình trên, chúng ta có thể thấy có 5 tầng. Sau khi hồn thành

phát hiện các mốc, khuôn mặt sẽ được căn chỉnh theo tọa độ bằng cách sử dụng phép biến đổi và các điểm mốc.

Điều này giúp mạng tìm hiểu các đặc điểm cụ thể đối với khuôn mặt. Hơn nữa, mạng áp dụng hồi quy theo tầng, trong đó đầu ra được tạo bởi giai đoạn đầu tiên sẽ được sử dụng làm đầu vào cho giai đoạn tiếp theo, tổng là năm giai đoạn tích chập được áp dụng trong hệ thống. Các bộ lọc được chọn để trích xuất tính năng được tinh chỉnh trong các giai đoạn sau để cải thiện việc chuẩn hóa các mốc trên khn mặt. Sau khi hồn thành phát hiện các mốc trên khuôn mặt, mỗi khuôn mặt được căn chỉnh theo tọa độ chính tắc bằng cách sử dụng biến đổi tương tự và các điểm mốc.

Hình 2.8: Ví dụ về các điểm mốc trên khn mặt

2.4.3 Liên kết khn mặt

Vì có nhiều đối tượng xuất hiện trong các khung hình của video, nên việc thực hiện liên kết khuôn mặt để gán từng khuôn mặt cho đối tượng tương ứng là một bước quan trọng để chọn đúng đối tượng khi xác minh khn mặt. Do đó, khi một khn mặt trong khung hình của video được phát hiện, hệ thống theo dõi khn mặt bằng cách tích hợp các kết quả từ trình phát hiện khn mặt, trình theo dõi khn mặt và bước liên kết khuôn mặt.

Hệ thống áp dụng thuật tốn nhận diện khn mặt trong mọi khung hình bằng phương pháp nhận diện khn mặt được trình bày trong phần trước. Vùng phát hiện khuôn mặt được coi như một khn mặt mới nếu khơng có tỷ lệ trùng lặp với bất kỳ vùng phát hiện nào trong các khung hình trước. Tỷ lệ trùng lặp của một vùng phát hiện được phát hiện và vùng phát hiện trong khung hình trước được xác định là:

Qua thực nghiệm, ngưỡng 0,2 là đủ để coi như xuất hiện khuôn mặt mới, do các khung hình của video cách nhau chỉ một phần nhỏ của giây. Để theo dõi khuôn mặt, các nhà khoa học sử dụng giải thuật Kanade-Lucas-Tomasi (KLT) để theo dõi các khuôn mặt giữa hai khung hình liên tiếp. Hệ thống cập nhật các vùng phát hiện trong quá trình theo dõi dựa vào khung hình mới nhất. Vùng phát hiện sẽ thay thế cho vùng phát hiện nếu nhỏ hơn ngưỡng (0,2). Q trình theo dõi khn mặt sẽ bị chấm dứt nếu khơng có phát hiện khn mặt tương ứng chồng chéo với nó cho nhiều hơn khung hình. Hệ thống thường đặt giới hạn bằng 4 khung hình, dựa trên cơ sở thực nghiệm. Hình ảnh kết quả của phương pháp liên kết khn mặt cho các video của JANUS CS2:

Hình 2.9: Kết quả mẫu của phương pháp liên kết khuôn mặt cho các video của JANUS CS2, là bộ dữ liệu mở rộng của IJB-A

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

2.5.1 Mơ hình DeepID 2 (NIPS 2014)

Cách thức hoạt động của mơ hình DeepID 2:

Trong q trình huấn luyện, 200 phần khn mặt được cắt với các vị trí, tỉ lệ và kênh màu sắc khác nhau. Mỗi phần khuôn mặt và phần đối xứng được đưa vào ConvNet. Hai vector 160 chiều được trích xuất từ phần khn mặt và phần đối xứng. Chọn 25 phần khn mặt tốt nhất.

Hình 2.10: Kiến trúc mạng của mơ hình DeepID 2

Một ví dụ về 25 phần khn mặt tốt nhất:

Hình 2.11: 25 phần khn mặt tốt nhất được chọn để trích xuất đặc điểm

Kết quả của mơ hình thể hiện trong bảng.

Bảng 2.1: Thống kê xác minh độ chính xác của khn mặt bằng DeepID2 khi tăng dần số lượng của các phần khuôn mặt

Qua bảng 2.1, ta có thể thấy, khi sử dụng 25 phần khn mặt để trích xuất đặc điểm, độ chính xác của phương pháp rất cao, xấp xỉ tới 99%. Tuy nhiên, khi nhận diện với 25 phần khn mặt, máy tính cần mất 0.035 giây để tính tốn. Mặt khác, với việc chỉ sử dụng một phần khn mặt để trích xuất đặc trưng, thời gian xử lý rất nhanh, chỉ 0,0017 giây, tuy nhiên độ chính xác chỉ cịn 95,43%. Dựa trên bảng thống kê này, các nhà phát triển có thể căn chỉnh số phần khuôn mặt để tối ưu cho bài tốn thực tế. Ví dụ như, nếu cần một hệ thống phản hồi nhanh mà khơng q ưu tiên độ chính xác, có thể chỉ sử dụng một phần khn mặt để trích xuất đặc trưng, ngược lại, ta có thể tăng số phần khn mặt nhằm tăng độ chính xác.

Bảng 2.2: So sánh độ chính xác của mơ hình DeepID2 với các kết quả mơ hình trước đó trên bộ thư viện LFW

Qua bảng so sánh trên, ta có thể thấy mơ hình DeepID2 khi sử dụng trên bộ thư viện LFW có độ chính xác rất cao, lên tới hơn 99%. Với độ chính xác cao như vậy, DeepID2 có thể đưa ra làm sản phẩm và thương mại hóa.

2.5.2 Mơ hình DeepID3 (arXiv 2015)

Hình 2.12: Kiến trúc mạng của mơ hình DeepID3

DeepID3 là mơ hình nâng cấp của DeepID2+

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

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ố khn 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à hoàn toà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ư khn 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ý tồ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.

3. Hệ thống trích xuất dữ liệu và hình ảnh đối chiếu: sau khi được xử lý qua (adsbygoogle = window.adsbygoogle || []).push({});

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.

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