Nhận diện khuôn mặt là thuật toán xác định danh tính của một cá nhân bằng đặc trưng khuôn mặt của họ. Hệ thống nhận diện khuôn mặt thường được sử dụng để xác định một người thông qua hình ảnh hoặc video trong thời gian thực.
Công nghệ nhận diện khuôn mặt mang lại nhiều ứng dụng hữu ích và thiết thực trong cuộc sống hàng ngày như phần mềm mở khóa điện thoại, hệ thống chấm công không chạm, hay các hệ thống camera giám sát an ninh, an toàn trong các trung tâm thương mại, cửa hàng, trường học, bệnh viện… Vậy làm thế nào để phát triển công nghệ nhận diện khuôn mặt? Bài viết dưới đây sẽ cung cấp quy trình cụ thể cho bạn.
Các bước trong chu trình xây dựng thuật toán nhận diện khuôn mặt
Nhiều người đã quen thuộc với công nghệ nhận diện khuôn mặt thông qua FaceID được sử dụng để mở khóa iPhone (tuy nhiên, đây chỉ là một ứng dụng nhỏ của công nghệ này). Thông thường, tính năng nhận diện khuôn mặt với FaceID không dựa vào cơ sở dữ liệu ảnh khổng lồ để xác định danh tính của một cá nhân – nó chỉ xác định và công nhận một người là chủ sở hữu duy nhất của thiết bị, đồng thời hạn chế quyền truy cập của những người khác.
Ngoài việc mở khóa điện thoại, tính năng nhận diện khuôn mặt hoạt động bằng cách khớp khuôn mặt của những người đi ngang qua máy ảnh với hình ảnh của những người trong danh sách đang theo dõi. Danh sách theo dõi là một tập dữ liệu mở được đến từ các nguồn được cung cấp công khai. Các hệ thống công nghệ trên khuôn mặt có thể khác nhau, nhưng nhìn chung, chúng có xu hướng hoạt động theo một số bước như sau:
Bước 1: Nhận diện khuôn mặt
Máy ảnh phát hiện và định vị hình ảnh của một khuôn mặt khi đối tượng đang ở một mình hoặc trong một đám đông. Từ đó ghi nhận hình ảnh của đối tượng.
Bước 2: Phân tích khuôn mặt
Tiếp theo, hình ảnh khuôn mặt đối tượng được chụp lại và tiến hành phân tích. Hầu hết công nghệ nhận diện khuôn mặt dựa trên hình ảnh 2D thay vì 3D vì nó có thể khớp hình ảnh 2D với ảnh công khai trong cơ sở dữ liệu một cách thuận tiện và chính xác hơn. Sau đó đưa vào phần mềm để tiến hành đọc hình dạng khuôn mặt của đối tượng. Các yếu tố chính cần xử lý bao gồm khoảng cách giữa hai mắt, độ sâu của hốc mắt, khoảng cách từ trán đến cằm, hình dạng của gò má và đường viền của môi, tai và cằm. Mục đích là để xác định các điểm mốc chính trên khuôn mặt nhằm phân biệt nhiều người khác nhau
Bước 3: Chuyển đổi hình ảnh thành dữ liệu
Chuyển đổi ảnh chụp khuôn mặt thành một tập hợp thông tin kỹ thuật số (dữ liệu) dựa trên các đặc điểm khuôn mặt của người đó. Những thuộc tính khuôn mặt sẽ được xử lý dưới dạng các thuật toán và công thức, và mỗi người sẽ sở hữu một dữ liệu khuôn mặt riêng biệt.
Bước 4: Tìm kết quả nhận diện khuôn mặt phù hợp
Bước tiếp theo tiến hành so sánh với cơ sở dữ liệu khuôn mặt sẵn có. Nếu khuôn mặt được ghi lại khớp với một hình ảnh trong cơ sở dữ liệu nhận diện khuôn mặt, thì việc xác định sẽ hoàn tất.
Ứng dụng của công nghệ nhận diện khuôn mặt
Mở khóa điện thoại
Nhận diện khuôn mặt được ứng dụng trong phần mềm mở khóa của các thiết bị thông minh như điện thoại hay máy tính bảng. Phần mềm này được ưa chuộng bởi có tính bảo mật mạnh mẽ, bảo vệ dữ liệu cá nhân và đảm bảo thiết bị không thể truy cập được nếu điện thoại bị đánh cắp.
Thực thi pháp luật
Cơ quan thực thi pháp luật thường xuyên sử dụng tính năng nhận diện khuôn mặt. Cảnh sát thu thập ảnh chụp từ những người bị bắt và so sánh chúng với cơ sở dữ liệu tội phạm để dễ dàng xác định thông tin đối tượng cũng như các đồng phạm.
Sân bay và kiểm soát biên giới
nhận diện khuôn mặt đã trở thành một cảnh quen thuộc tại nhiều sân bay trên thế giới. Ngày càng có nhiều khách du lịch sở hữu hộ chiếu sinh trắc học, điều này vô cùng thuận tiện khi họ không cần xếp hàng để chờ đợi kiểm tra hộ chiếu một cách thủ công mà thay vào đó chỉ cần đi bộ qua điều khiển ePassport tự động để chuẩn bị lên máy bay. nhận diện khuôn mặt không chỉ giảm thời gian chờ đợi mà còn cho phép các sân bay cải thiện an ninh. Bộ An ninh Nội địa Hoa Kỳ dự đoán rằng nhận diện khuôn mặt sẽ được sử dụng trên 97% khách du lịch vào năm 2023. Cũng như tại các sân bay và cửa khẩu biên giới, công nghệ này được sử dụng để tăng cường an ninh tại các sự kiện quy mô lớn như Thế vận hội.
Tìm người mất tích
nhận diện khuôn mặt có thể được sử dụng để tìm người mất tích và nạn nhân của nạn buôn người. Giả sử các cá nhân bị mất tích được thêm vào cơ sở dữ liệu. Trong trường hợp đó, cơ quan thực thi pháp luật có thể được cảnh báo ngay khi họ được nhận diện bằng nhận diện khuôn mặt – cho dù đó là trong sân bay, cửa hàng bán lẻ hay không gian công cộng khác.
Giám sát an ninh tại các cửa hàng
nhận diện khuôn mặt được sử dụng để xác định những người gian lận, tội phạm trộm cắp, gây rối tại các hệ thống cửa hàng. Thông qua hệ thống camera giám sát và đối chiếu về lịch sử phạm tội, có thể đưa ra cảnh báo và ngăn chặn những hành vi xấu ngay trước khi nó xảy ra.
Cải thiện trải nghiệm bán lẻ
Công nghệ nhận diện khuôn mặt mang lại tiềm năng cải thiện trải nghiệm bán lẻ cho khách hàng. Hệ thống camera có thể nhận ra khách hàng, đưa ra đề xuất sản phẩm dựa trên lịch sử mua hàng của họ và hướng họ đi đúng hướng, đồng thời, gợi ý cho các nhân viên tư vấn/ tiếp thị có những hành động đón tiếp phù hợp. Một ứng dụng khác là công nghệ “thanh toán bằng khuôn mặt” giúp người dùng có thể thanh toán dễ dàng, nhanh chóng.
Ngân hàng
Ứng dụng công nghệ sinh trắc học vào dịch vụ ngân hàng trực tuyến là một lợi ích khác của thuật toán nhận diện khuôn mặt. Thay vì sử dụng mật khẩu một lần, khách hàng có thể xác thực giao dịch bằng nhận diện khuôn mặt thông qua điện thoại thông minh hoặc máy tính.
Chăm sóc sức khỏe
Các bệnh viện sử dụng nhận diện khuôn mặt để giúp chăm sóc bệnh nhân. Các nhà cung cấp dịch vụ chăm sóc sức khỏe đang thử nghiệm việc sử dụng nhận diện khuôn mặt để truy cập hồ sơ bệnh nhân, hợp lý hóa việc đăng ký bệnh nhân, phát hiện cảm xúc và triệu chứng của bệnh nhân, và thậm chí giúp xác định các bệnh di truyền cụ thể. AiCure đã phát triển một ứng dụng sử dụng nhận diện khuôn mặt để đảm bảo rằng mọi người uống thuốc theo đúng quy định. Khi công nghệ sinh trắc học trở nên ít tốn kém hơn, việc áp dụng trong lĩnh vực chăm sóc sức khỏe dự kiến sẽ tăng lên.
Công nghệ nhận diện khuôn mặt đã được VinBigData tích hợp trong giải pháp Camera thông minh (VisionAI). VisionAI đáp ứng mọi nhu cầu của doanh nghiệp như kiểm soát ra vào, đảm bảo an ninh, chấm công không chạm… ứng dụng cho đa dạng quy mô, với độ chính xác tới 99%, và tối ưu chi phí vận hành, tiết kiệm 50% chi phí đầu tư so với hệ thống cảm biến nhiệt.
Tìm hiểu thêm về VisionAI: Tại đây
Tư liệu tham khảo: Kaspersky
Công nghệ thị giác máy tính (Computer Vision) sử dụng các thuật toán để máy tính có khả năng mô phỏng tầm nhìn của con người, bao gồm việc chụp ảnh ban đầu, phát hiện và nhận dạng đối tượng, nhận biết bối cảnh tạm thời giữa các cảnh và phát triển sự hiểu biết ở mức độ cao về những gì đang xảy ra trong khoảng thời gian thích hợp. Tuy nhiên, một thách thức đặt ra cho máy tính khi phải xử lý với các đối tượng nhỏ hoặc rất nhỏ, vì chúng thường có kích thước và chất lượng thấp, khiến máy khó có thể xác định chính xác đặc trưng nhận dạng để chỉ rõ chúng là gì.
Bài viết dưới đây gợi ý phương thức sử dụng Mô hình mạng tính năng thiết kế dạng kim tự tháp mở rộng (Extended Feature Pyramid Network – EFPN) để phát hiện các vật thể nhỏ.
Kiến trúc của mô hình EFPN
Như thể hiện trong hình trên, kiến trúc của EFPN có 1 số đặc trưng như sau:
- EFPN bao hàm một lớp phát hiện (P2’)
- EFPN sử dụng mô-đun FTT để truyền những đặc trưng từ P2 và P3 đến P2’. Khác với những tầng trước đó chỉ sử dụng bản đồ đặc trưng ở tầng thấp hơn và liền kề để tăng kích thước, mô-đun FTT xử lí hai bản đồ đặc trưng P2 và P3 để tạo ra P3′, sau đó được sử dụng cho lớp phát hiện mới P2′.
- EFPN có thể đưa ra dự đoán ở 5 mức độ khác nhau.
Mô-đun FTT
Trong mô-đun FTT, bước đầu tiên sử dụng kỹ thuật trích xuất nội dung để trích xuất các đặc trưng ngữ nghĩa từ P3 (bước chính). Sau đó, một lớp tích chập điểm ảnh phụ được áp dụng để cải thiện đầu ra của kỹ thuật trích xuất nội dung. Tiếp theo, thông tin mới nhất được liên kết với bản đồ đặc trưng P2 (tham khảo) để tạo thành đầu vào cho công cụ trích xuất đặc thù, với kết cấu được thiết kế dành riêng cho các vật thể nhỏ. Cuối cùng, thiết lập một kết nối dư để kết hợp đặc trưng và tạo thành bản đồ đặc trưng đầu ra P3′. Áp dụng phương thức này, P3′ truyền trọn vẹn các đặc trưng được chọn lọc từ bản đồ đặc trưng nông P2 và nhận ngữ nghĩa từ lớp sâu hơn P3.
Foreground-background-balanced Loss
Foreground-background-balanced loss là hàm mất mát đa tiêu – hàm loss, bao gồm: Foreground (chứa vật thể) và Background (nền và không chứa vật thể). Các nhà nghiên cứu đã chỉ ra rằng sự mất cân bằng dữ liệu giữa các nhóm foreground-background là nguyên nhân chính dẫn tới sự kém hiệu quả trong việc phát hiện vật thể.
Các phương pháp cổ điển thường cải thiện hiệu suất phát hiện đối tượng bằng cách sử dụng ảnh đầu vào có độ phân giải cao. Khởi điểm từ nền tảng cơ bản này, các nhà nghiên cứu đã đề xuất một cơ chế đào tạo mới mang tên là Cross Resolution Distillation.
Ở đây chúng ta sử dụng mô hình để kiểm tra với đầu vào 2x (độ phân giải gấp đôi đầu vào bình thường) sau đó sử dụng đầu ra của 4 lớp trên cùng của hệ thống làm mục tiêu đào tạo. Ví dụ: P5 của đầu vào 2x có độ phân giải gấp đôi so với P5 của đầu vào ban đầu (đầu vào 1x) và có cùng độ phân giải với P4 của đầu vào ban đầu (đầu vào 1x), như được minh họa trong hình trên. Do đó, P3 và P2 của đầu vào 2x sẽ được sử dụng làm mục tiêu để đào tạo P3′ và P2′ của đầu vào ban đầu (đầu vào 1x), tương ứng.
Đào tạo mô hình EFPN bằng cách sử dụng hàm loss như sau:
Trong đó L_fbb là Foreground-background-balanced loss được đề xuất. Hàm mất mát đa tiêu bao gồm hai phần: mất mát tái tạo toàn cục L_glob và mất mát bản vá tích cực L_pos.
Trong đó P_pos thể hiện tọa độ bản đồ đối tượng (x,y) và N mô tả số lượng pixel dương. Thông tin chi tiết về các hàm được trình bày trong bài báo khoa học của Cornell University.
Hiệu quả của EFPN
So với các phương pháp hiện đại khác, các tác giả đã thử nghiệm EFPN trên tập dữ liệu biển báo giao thông nhỏ 100K trên Tsinghua-Tencent và tập dữ liệu đối tượng nhỏ của MS COCO, đã nhận được những dấu hiệu tích cực hơn với độ chính xác cao hơn.
Phát hiện vật thể là một trong những tính năng vượt trội được VinBigData tập trung phát triển trong hệ thống Camera AI giám sát thông minh – VinCamAI. VinCamAI có thể ứng dụng trên quy mô lớn, đáp ứng đa dạng nhu cầu, và phù hợp với nhiều quy mô doanh nghiệp, với độ chính xác tới 99%. Tìm hiểu thêm về VinCamAI: Tại đây |
Nguồn tham khảo: Towards Data Science
Nhận dạng ký tự quang học (Optical Character Recognition – OCR) là công nghệ hỗ trợ phát hiện, nhận dạng và trích xuất thông tin từ hình ảnh, vật thể, chữ viết tay, giấy tờ, biểu mẫu… được sử dụng phổ biến thời gian gần đây, nhằm tiết kiệm thời gian và chi phí, cũng như tối ưu hóa các chu trình xử lý thủ tục giấy tờ. Sau khi tiến hành dán nhãn, xử lý hình ảnh, thiết lập thuật toán,… để hoàn thiện mô hình OCR, các nhà nghiên cứu cần đánh giá xem mô hình này có hoạt động hiệu quả hay không, bằng cách sử dụng các chỉ số tiêu chuẩn. Bài viết này cung cấp thông tin về 2 chỉ số được sử dụng phổ biến, bao gồm Tỷ lệ lỗi ký tự (Character Error Rate – CER) và Tỷ lệ lỗi từ (Word Error Rate – WER). Sử dụng tỷ lệ lỗi để xác định mức độ khác nhau giữa văn bản được trích xuất với OCR và văn bản tham chiếu được dán nhãn thủ công.
Các nhóm lỗi cơ bản được xem xét
Với CER và WER có 3 loại lỗi cơ bản cần được xem xét bao gồm
Lỗi thay thế (Substitution): Các ký tự/ từ sai chính tả
Lỗi xóa (Deletion): Các ký tự/ từ bị mất hoặc bị thiếu
Lỗi chèn (Insertion): Các ký tự/ từ không chính xác
Vấn đề ở đây là làm thế nào để đo lường mức độ sai lệch giữa 2 chuỗi văn bản. Thông thường chúng ta sử dụng kỹ thuật Khoảng cách Levenshtein (tên tiếng Anh: Levenshtein distance). Khoảng cách Levenshtein là một kỹ thuật đo lường sự khác biệt giữa hai chuỗi, thông qua thống kê số lần chỉnh sửa một ký tự (hoặc từ) tối thiểu (bao gồm chèn, xóa hoặc thay thế) cần thiết để thay đổi một từ (hoặc câu) thành một từ (hoặc câu) khác.
Ví dụ: khoảng cách Levenshtein giữa “mitten” và “fitting” là 3 vì cần tối thiểu 3 lần chỉnh sửa để biến từ này thành từ kia.
mitten → fitten (thay thế “m” thành “f”)
fitten → fittin (thay thế “e” thành “i”)
fittin → fitting (thêm “g” ở cuối từ)
Chỉ số khoảng cách Levenshtein càng lớn thì hai chuỗi văn bản được xem xét càng có nhiều khác biệt.
Tỷ lệ lỗi ký tự (Character Error Rate – CER)
Công thức tính CER
Tính toán chỉ số CER dựa trên kỹ thuật khoảng cách Levenshtein bằng cách đếm số lượng tối thiểu các hoạt động cấp ký tự cần thiết để chuyển đổi văn bản tham chiếu đầu vào thành tệp đầu ra OCR.
CER được tính theo công thức sau:
Trong đó:
S = Số lần thay thế
D = Số lần xóa
I = Số lần chèn
N = Tổng số ký tự trong văn bản tham chiếu
Mẫu số N có thể được tính theo công thức: N = S + D + C (trong đó C = Số ký tự đúng)
Kết quả của phương trình này đại diện cho tỷ lệ phần trăm ký tự trong đầu ra OCR không chính xác so với văn bản tham chiếu đầu vào. Giá trị CER càng thấp (mô hình hoàn hảo khi CER=0), hiệu suất của mô hình OCR càng tốt.
Ý nghĩa của tỷ lệ lỗi ký tự CER
Tùy thuộc trường hợp sử dụng và điều kiện liên quan, tỷ lệ lỗi ký tự CER được sử dụng để đánh giá mức độ hiệu quả của OCR tương ứng. Các tình huống và độ phức tạp khác nhau (ví dụ: văn bản in so với văn bản viết tay, loại nội dung, v.v.) có thể dẫn đến các hiệu suất OCR khác nhau. Tuy nhiên, chúng ta có thể tham khảo đánh giá độ chính xác của một số tổ chức uy tín tại Úc như sau (đối với văn bản in):
Độ chính xác OCR tốt: CER 1‐2% (tức là chính xác 98–99%)
Độ chính xác OCR trung bình: CER 2-10%
Độ chính xác OCR kém: CER> 10% (tức là độ chính xác dưới 90%)
Đối với các trường hợp phức tạp liên quan đến văn bản viết tay có nội dung không đồng nhất và xa rời từ vựng (ví dụ: đơn đăng ký), giá trị CER cao khoảng 20% có thể được coi là đạt yêu cầu.
Tỷ lệ lỗi từ (Word Error Rate – WER)
Nếu CER thường được sử dụng trong việc phát hiện và trích xuất các tài liệu, chuỗi ký tự có trình tự cụ thể (ví dụ: biển số xe, số điện thoại…) thì WER thường được áp dụng khi liên quan đến việc phiên âm các đoạn văn và câu chứa các từ có nghĩa (ví dụ: các trang sách, báo).
Công thức tính tỷ lệ lỗi từ (WER)
Công thức của WER giống với công thức của CER, nhưng thay vào đó, WER hoạt động ở cấp độ từ. Nó thể hiện số lượng từ thay thế, xóa hoặc chèn cần thiết để chuyển một câu thành câu khác.
WER thường có mối liên quan quan mật thiết với CER (miễn là tỷ lệ lỗi không quá cao), mặc dù giá trị WER luôn luôn ghi nhận cao hơn CER.
Ví dụ: Văn bản tham chiếu gốc: “My name is kenneth”
Đầu ra OCR: “Myy nime iz kenneth”
Ở đây, tỷ lệ lỗi ký tự CER là 16.67%, trong khi tỷ lệ lỗi từ WER là 75%. Rõ ràng WER là 75% vì 3 trong số 4 từ trong câu đã bị phiên âm sai.
Bài viết trên đây đã đề cập đến các khái niệm, công thức tính tỷ lệ lỗi ký tự CER và tỷ lệ lỗi từ WER cũng như cách áp dụng chúng trong thực tế. Mặc dù CER và WER rất tiện dụng nhưng đây không phải là các chỉ số duy nhất khi đo lường sự chính xác của mô hình OCR. Độ chính xác của OCR còn phụ thuộc nhiều yếu tố như chất lượng và tình trạng của tài liệu gốc (ví dụ: tính dễ đọc của chữ viết tay, DPI hình ảnh, v.v.), thế nên các chỉ số chỉ mang tính tương đối.
VinBigData đang phát triển giải pháp VinOCR hỗ trợ việc phát hiện, nhận dạng và trích xuất thông tin từ hình ảnh, vật thể, chữ viết tay, giấy tờ, biểu mẫu… với độ chính xác cao tới 96%, tốc độ xử lý chưa đến 0,1s. Hệ thống ứng dụng cụ thể trong đa lĩnh vực, số hóa trải nghiệm người dùng, tăng tỉ lệ chuyển đổi, giảm rủi ro cho các doanh nghiệp. Tìm hiểu thêm về VinOCR tại: https://product.vinbigdata.org/vinocr/ |
Nguồn tham khảo: Towards Data Science