Bối cảnh và vấn đề nghiên cứu

Trong công tác quản trị và an ninh hiện đại, việc xác thực và định danh con người đóng vai trò then chốt trong nhiều lĩnh vực từ kiểm soát an ninh, điều tra tư pháp, y tế cho đến cung ứng dịch vụ. Các phương pháp nhận dạng sinh trắc học truyền thống như vân tay, mống mắt hay hình học bàn tay dù đạt độ chính xác cao nhưng vẫn tồn tại những hạn chế nhất định: đòi hỏi đối tượng phải tiếp xúc vật lý trực tiếp với thiết bị, tạo tâm lý bị giám sát cưỡng bức và phụ thuộc vào phần cứng chuyên dụng của bên thứ ba. Nhận dạng khuôn mặt xuất hiện như một hướng tiếp cận khắc phục các điểm yếu trên nhờ khả năng thu thập dữ liệu từ xa một cách tự nhiên qua hệ thống camera giám sát, không làm gián đoạn hành vi của đối tượng và có tốc độ xử lý nhanh nhờ năng lực tính toán của các hệ thống máy tính hiện đại.

Tại Việt Nam, Ngân hàng Thương mại Cổ phần Công thương Việt Nam (VietinBank) là một trong những định chế tài chính thương mại hàng đầu, giữ vai trò chủ lực trong nền kinh tế. Tính đến thời điểm nghiên cứu, VietinBank sở hữu mạng lưới hoạt động rộng khắp với 148 chi nhánh, 07 công ty thành viên, 03 đơn vị sự nghiệp và hơn 1.000 phòng giao dịch trên toàn quốc, cùng các chi nhánh quốc tế tại Đức (Frankfurt, Berlin) và Lào (Vientiane). Trước áp lực cạnh tranh gay gắt từ hơn 100 ngân hàng trên thị trường, VietinBank đặt trọng tâm vào việc tối ưu hóa quy trình giao dịch, nâng cao chất lượng phục vụ và phân loại khách hàng tại quầy. Tuy nhiên, quy trình phục vụ tại các điểm giao dịch vẫn còn nhiều điểm nghẽn thủ công trong việc xác thực danh tính, tra cứu lịch sử giao dịch và nhận diện khách hàng thân thiết. Đề tài "Ứng dụng nhận diện khuôn mặt trong bài toán chăm sóc khách hàng tại ngân hàng VietinBank sử dụng OpenCV" được thực hiện nhằm xây dựng giải pháp kỹ thuật giải quyết bài toán thực tiễn này.

Mục tiêu và nhiệm vụ nghiên cứu: Mục tiêu tổng quát của khóa luận là nghiên cứu, thiết kế và thử nghiệm ứng dụng nhận diện khuôn mặt phục vụ công tác chăm sóc khách hàng tại ngân hàng VietinBank dựa trên thư viện thị giác máy tính OpenCV. Để hoàn thành mục tiêu này, tác giả xác định ba nhiệm vụ nghiên cứu cụ thể:

  1. Nghiên cứu tổng quan về cơ sở lý thuyết và các công nghệ nhận diện khuôn mặt.
  2. Khảo sát thực trạng quy trình phục vụ và xác định các tiêu chí quản lý, chăm sóc khách hàng tại các điểm giao dịch của VietinBank.
  3. Xây dựng và cài đặt thử nghiệm hệ thống nhận diện khuôn mặt khách hàng sử dụng ngôn ngữ Python và thư viện OpenCV.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Các tiêu chí xác định, nhận diện khách hàng thân thiết của ngân hàng VietinBank; hệ thống thông tin cung cấp dữ liệu khách hàng nhằm tối ưu hóa thời gian phục vụ tại quầy giao dịch.
  • Phạm vi không gian: Tập trung khảo sát và nghiên cứu thực nghiệm chủ yếu trên địa bàn thành phố Hà Nội.
  • Phạm vi thời gian: Thu thập và xử lý tập dữ liệu hình ảnh trong điều kiện thời gian thực (real-time).
  • Phạm vi nội dung: Đánh giá các yếu tố kỹ thuật ảnh hưởng đến độ chính xác của quá trình nhận diện khuôn mặt và đề xuất quy trình tự động hóa nhận diện khách hàng đến giao dịch.

Cơ sở lý thuyết và phương pháp

Khóa luận kết hợp phương pháp nghiên cứu định tính và định lượng để đánh giá thực trạng hoạt động chăm sóc khách hàng tại các phòng giao dịch VietinBank, đồng thời tiến hành thực nghiệm kỹ thuật xây dựng thuật toán xử lý ảnh.

Khung lý thuyết về hệ thống nhận diện khuôn mặt

Hệ thống nhận dạng mặt người là hệ thống tiếp nhận đầu vào là ảnh tĩnh hoặc chuỗi khung hình từ video, thực hiện tính toán để xác định danh tính của đối tượng trong ảnh (thuộc tập cơ sở dữ liệu đã biết hoặc người lạ). Về mặt kỹ thuật, hệ thống bao gồm 4 giai đoạn chính kết hợp cùng khâu tiền xử lý:

Giai đoạn Kỹ thuật / Mô hình tác giả trình bày Mục đích kỹ thuật
Tiền xử lý Cân bằng sáng, tách ngưỡng, bó cụm, chuyển thang độ xám Chuẩn hóa mức sáng, giảm độ chênh lệch điểm ảnh để tăng độ chính xác rút trích đặc trưng
Phát hiện khuôn mặt (Face Detection) Mô hình màu da, đặc trưng Haar-like Định vị và tách vùng khuôn mặt ra khỏi khung cảnh nền của ảnh
Phân đoạn / Chuẩn hóa (Face Alignment) Mô hình dáng điệu tích cực (Active Shape Model) Căn chỉnh tư thế khuôn mặt, giảm sai số do góc nghiêng hoặc che khuất
Rút trích đặc trưng (Feature Extraction) Phân tích thành phần chính (PCA), LDA, LBP/LBPH Giảm số chiều không gian dữ liệu, giữ lại các đặc trưng đại diện của khuôn mặt
So khớp, phân lớp (Face Classification) Khoảng cách Euclides (Euclidean Distance), Mạng nơ-ron So sánh vector đặc tính đầu vào với dữ liệu mẫu trong cơ sở dữ liệu để đưa ra kết luận danh tính

Tác giả phân tích các yếu tố ảnh hưởng trực tiếp đến kết quả nhận dạng gồm: điều kiện chiếu sáng, cự ly từ đối tượng đến camera, biểu cảm khuôn mặt (gây nhiễu đặc trưng), tư thế đứng (xoay, nghiêng) và phụ kiện/trang phục (kính mắt, mũ, khẩu trang).

Tổng quan tình hình ứng dụng thực tế

Khóa luận đã tổng hợp các trường hợp ứng dụng công nghệ nhận diện khuôn mặt tiêu biểu trong nước và quốc tế để làm căn cứ thực tiễn:

Đơn vị / Quốc gia Lĩnh vực ứng dụng Thông số / Kết quả ghi nhận
FPT Telecom (R&D) Dự án Workforce Attendance (thuộc Workforce Management) Triển khai cho 13 trung tâm/phòng ban với hơn 2.000 nhân viên; xử lý gần 3.000 yêu cầu nghỉ phép, đi muộn trong năm 2015
Đại học Thăng Long Điểm danh và giám sát sinh viên Áp dụng thử nghiệm cho các lớp Toán Tin K31 với độ chính xác đạt 99,78% ở chế độ thời gian thực
Vinpearl Nha Trang Dịch vụ du lịch, khách sạn (triển khai từ 15/4/2019) Tự động hóa thủ tục check-in trong 3 giây, tích hợp mở cửa phòng và thanh toán
Hoa Kỳ / Đức / Singapore Kiểm soát an ninh sân bay So khớp khuôn mặt với ảnh visa; cảnh sát Berlin lắp camera nhận diện đối tượng khủng bố (8/2017); sân bay Changi ứng dụng tại nhà ga mới (10/2017)
Macao (Trung Quốc) Rút tiền mặt tại máy ATM Yêu cầu nhìn thẳng camera trong 6 giây để đối chiếu danh tính, ngăn chặn rửa tiền

Thiết kế và triển khai

Hệ thống nhận diện khuôn mặt khách hàng được thiết kế dưới dạng ứng dụng máy tính trực tiếp (desktop application), tích hợp các thành phần mã nguồn mở để xử lý luồng dữ liệu hình ảnh từ camera.

Công nghệ và công cụ sử dụng

  • Môi trường phát triển & Ngôn ngữ: Ngôn ngữ lập trình Python phiên bản 3; môi trường phát triển tích hợp PyCharm Community Edition (JetBrains).
  • Thư viện thị giác máy tính OpenCV: Bản quyền mã nguồn mở BSD, hỗ trợ xử lý đa lõi cho các tác vụ thời gian thực. Hệ thống khai thác các module chuyên biệt: Core (cấu trúc dữ liệu nền tảng), Imgproc (xử lý và biến đổi không gian màu), Highgui (giao diện hiển thị hình ảnh/video), Features2d (trích xuất đặc trưng), Objdetect (phát hiện khuôn mặt), cùng các module Calib3d, Video và tăng tốc phần cứng GPU.
  • Các thư viện bổ trợ: NumPy (thao tác mảng nhiều chiều ndarray và đại số tuyến tính), Pandas (quản lý, ánh xạ dữ liệu khách hàng), PIL (xử lý hình ảnh), Tkinter và PyQt5 (thiết kế giao diện đồ họa người dùng GUI).

Quy trình xử lý ảnh và trích xuất đặc trưng

Quy trình kỹ thuật được thiết lập theo chuỗi xử lý nghiêm ngặt:

  1. Thu thập dữ liệu: Tiếp nhận hình ảnh từ webcam/camera an ninh với độ phân giải chuẩn $600 \times 600$ pixel.
  2. Tiền xử lý hình ảnh: Thực hiện tách khuôn mặt ra khỏi nền; lọc nhiễu; chuẩn hóa ánh sáng và mức xám; căn chỉnh tư thế khuôn mặt theo trục thẳng đứng (mũi thẳng, xoay ngang theo đường nối hai mắt); chuẩn hóa kích thước khuôn mặt về mức cố định $230 \times 230$ pixel.
  3. Trích chọn đặc trưng bằng PCA:
    • Tập hợp $M$ ảnh huấn luyện, mỗi ảnh kích thước $R \times C$ được chuyển thành vector $N = R \times C$ chiều.
    • Tính toán ảnh trung bình và ma trận sai lệch của các ảnh so với ảnh trung bình.
    • Xác định tập hợp $M$ vector trực giao (được gọi là Eigenfaces) biểu diễn chiều phân bố mạnh nhất của tập dữ liệu.
    • Chiếu ảnh cần nhận dạng vào không gian Eigenfaces để thu được vector đặc tính có số chiều nhỏ hơn đáng kể so với không gian ảnh gốc.
  4. Mô hình nhị phân cục bộ (LBPH): Sử dụng toán tử LBP (Local Binary Patterns) dựa trên vùng lân cận $3 \times 3$ (hoặc mở rộng $P$ điểm mẫu trên bán kính đường tròn $R$ với phép nội suy song tuyến) để mã hóa cấu trúc vi mô bề mặt thành chuỗi nhị phân $2^8 = 256$ trạng thái, giúp thuật toán bất biến với các phép biến đổi thang độ xám đơn điệu.
  5. Phân loại bằng khoảng cách Euclides: Vector đặc tính của khuôn mặt đầu vào được đối chiếu tuần tự với các vector đặc trưng đã lưu trong cơ sở dữ liệu. Kết quả nhận dạng tương ứng với mẫu có khoảng cách ngắn nhất.

Quy trình nghiệp vụ 4 bước tại phòng giao dịch

  • Bước 1 (Nhập liệu): Giao dịch viên nhập thông tin định danh của khách hàng khi phát sinh giao dịch đầu tiên.
  • Bước 2 (Tạo CSDL ảnh): Camera an ninh tự động chụp, tách khuôn mặt, xử lý đưa về định dạng ảnh đen trắng và lưu vào hệ thống ứng với mã khách hàng.
  • Bước 3 (Huấn luyện): Hệ thống trích xuất vector đặc trưng từ tập ảnh và thực hiện huấn luyện mô hình để lưu trữ tập trọng số.
  • Bước 4 (Nhận diện thời gian thực): Khi khách hàng bước vào phòng giao dịch, camera ghi nhận khung hình, trích xuất đặc trưng và so khớp với CSDL. Nếu khớp, hệ thống hiển thị thông tin khách hàng cũ để giao dịch viên chủ động chào đón; nếu không khớp, hệ thống thông báo chưa có dữ liệu để giao dịch viên hướng dẫn thủ tục cho khách hàng mới.

Nội dung chính theo từng chương

Chương 1: Cơ sở lý luận về hệ thống nhận diện khuôn mặt và tổng quan tình hình nghiên cứu

Chương 1 khái quát hóa lý thuyết nền tảng của thị giác máy tính trong bài toán định danh sinh trắc học. Tác giả phân tích chi tiết quy trình 4 giai đoạn của hệ thống nhận diện mặt người cùng khâu tiền xử lý, làm rõ cơ chế phát hiện khuôn mặt qua màu da và đặc trưng Haar-like, kỹ thuật chuẩn hóa bằng Active Shape Model, các phương pháp trích chọn đặc trưng (PCA, LDA) và kỹ thuật phân lớp. Chương này cũng phân loại 5 nhóm yếu tố gây nhiễu trong môi trường thực tế (ánh sáng, cự ly, cảm xúc, tư thế, trang phục) và tổng hợp thực tiễn ứng dụng tại FPT Telecom, Đại học Thăng Long, Vinpearl cũng như các hệ thống an ninh hàng không, ngân hàng quốc tế.

Chương 2: Thực trạng phát triển và quản lý trong công tác phục vụ khách hàng tại ngân hàng VietinBank và công nghệ nhận dạng khuôn mặt

Chương 2 phân tích cấu trúc tổ chức và quy trình phục vụ khách hàng hiện tại của VietinBank. Tác giả chỉ ra quy trình gồm 4 bước (hỏi nhu cầu, hướng dẫn hồ sơ, kiểm tra hệ thống, thực hiện giao dịch) đang bộc lộ nhiều điểm nghẽn: xác thực thủ công qua chứng minh thư nhân dân và chữ ký dễ bị làm giả, khách hàng thân thiết chỉ được nhận biết khi đã ngồi vào quầy, tình trạng quá tải xảy ra thường xuyên khi lượng khách dồn cục bộ. Từ đó, chương đề xuất 5 tiêu chí cải tiến quy trình (tính thuận tiện, khả năng truy xuất dữ liệu, độ an toàn dữ liệu, môi trường đặt camera, năng lực cạnh tranh) và giới thiệu các công nghệ dự kiến sử dụng (Python, OpenCV, NumPy, Pandas, Tkinter, giải thuật LBP/LBPH).

Chương 3: Ứng dụng OpenCV nhận diện khách hàng tại ngân hàng VietinBank và cách thức cài đặt hệ thống

Chương 3 trình bày toàn bộ quy trình thiết kế, cài đặt và thử nghiệm phần mềm nhận diện khuôn mặt. Nội dung tập trung mô tả chi tiết các bước tiền xử lý ảnh (đưa về chuẩn $230 \times 230$ pixel), giải thuật toán học PCA để trích xuất Eigenfaces và phương pháp so khớp khoảng cách Euclides. Tác giả hướng dẫn thiết lập môi trường lập trình (cài đặt PyCharm, Python, OpenCV, PyQt5, Tkinter), xây dựng giao diện ứng dụng và công bố kết quả kiểm thử trên bộ dữ liệu ảnh mẫu thực tế, đồng thời phân tích các trường hợp nhận diện đúng và sai.


Kết quả và đóng góp

Kết quả kiểm thử thực nghiệm

  • Bộ dữ liệu kiểm thử: Được chụp trực tiếp qua camera với tập mẫu gồm 50 ảnh/người, bao gồm nhiều góc mặt khác nhau để phục vụ trích xuất đặc trưng đa chiều.
  • Đầu ra hệ thống: Trả về "Thông tin đối tượng được nhận dạng" hoặc "Không nhận dạng được".
  • Phân loại kết quả nhận dạng thành công:
    • Nhận diện dễ: Tốc độ phản hồi tức thì, độ chính xác cao khi khách hàng nhìn thẳng, điều kiện ánh sáng ổn định và không có phụ kiện che khuất.
    • Khó nhận dạng: Xuất hiện khi có sự biến thiên nhẹ về góc nghiêng hoặc ánh sáng, đòi hỏi phải kết hợp thêm các đặc trưng phụ (khoảng cách mắt, lông mày) để khẳng định kết quả.
  • Phân loại và nguyên nhân lỗi nhận diện:
    • Sai hoàn toàn và sai do vượt ngưỡng: Xảy ra khi camera không bắt được tư thế chuẩn (khách đứng nghiêng góc lớn, tóc che khuất một phần mặt) hoặc trạng thái khuôn mặt thay đổi đáng kể so với tập dữ liệu huấn luyện (nheo mắt, đeo kính, cau mày).
    • Không nhận diện được: Do thuật toán không phát hiện được vùng mắt khi đối tượng nhắm mắt hoặc quay nghiêng, dẫn đến việc mất tính cân đối của hai mắt trên trục khuôn mặt.

Đóng góp của đề tài

  1. Về mặt kỹ thuật: Hiện thực hóa quy trình nhận diện khuôn mặt hoàn chỉnh dựa trên nền tảng mã nguồn mở Python và OpenCV; kết hợp kỹ thuật tiền xử lý chuẩn hóa kích thước ($230 \times 230$ pixel), mức xám và căn chỉnh trục mắt với thuật toán trích xuất vector đặc trưng PCA/LBP phục vụ nhận dạng thời gian thực.
  2. Về mặt nghiệp vụ ngân hàng: Xây dựng mô hình ứng dụng công nghệ sinh trắc học vào quy trình đón tiếp khách hàng tại quầy giao dịch VietinBank. Giải pháp cho phép nhận diện tự động khách hàng cũ ngay khi bước vào cửa, giúp giao dịch viên cá nhân hóa giao tiếp, rút ngắn thời gian xác thực hồ sơ và hỗ trợ phát hiện khách hàng mới để phân luồng hướng dẫn kịp thời.

Hạn chế và hướng nghiên cứu tiếp

  • Hạn chế: Nghiên cứu được thực hiện trong thời gian giới hạn nên mô hình chưa đạt độ chính xác tuyệt đối trong các tình huống phức tạp (khách hàng cử động nhanh, thay đổi biểu cảm lớn, đeo kính râm hoặc góc quay lệch nhiều so với trục camera). Dữ liệu kiểm thử mới dừng lại ở quy mô mẫu thực nghiệm, chưa đánh giá tải trên cơ sở dữ liệu khách hàng quy mô lớn của toàn hệ thống ngân hàng.
  • Hướng nghiên cứu tiếp:
    • Tích hợp thêm các phương pháp đối sánh chi tiết các vùng đặc trưng thứ cấp (đo đạc khoảng cách giữa hai mắt, tỉ lệ chân mày, sống mũi) để tăng độ tin cậy trong các trường hợp khó nhận dạng.
    • Mở rộng ứng dụng công nghệ nhận diện khuôn mặt kết hợp mã PIN vào hệ thống máy giao dịch tự động (ATM) trên toàn quốc nhằm tăng cường an ninh giao dịch và phòng chống giả mạo giấy tờ tùy thân.

Giá trị tham khảo

Khóa luận là tài liệu tham khảo phù hợp cho sinh viên, học viên thuộc các ngành Hệ thống thông tin quản lý, Công nghệ thông tin, Khoa học dữ liệu hoặc Công nghệ tài chính (Fintech).

Nội dung có giá trị tham khảo ứng dụng cao bao gồm:

  • Toàn bộ chuỗi xử lý ảnh từ bước thu nhận webcam, chuẩn hóa ma trận điểm ảnh, căn chỉnh hình học cho đến cài đặt giải thuật toán học PCA trích xuất Eigenfaces bằng Python và OpenCV.
  • Bộ 5 tiêu chí đánh giá và phương pháp tái cấu trúc quy trình chăm sóc khách hàng tại điểm giao dịch của ngân hàng thương mại khi tích hợp công nghệ thị giác máy tính.

Câu hỏi thường gặp

1. Khóa luận sử dụng giải thuật nào để thực hiện trích chọn đặc trưng khuôn mặt? Khóa luận sử dụng giải thuật Phân tích thành phần chính (PCA - Principal Component Analysis) để giảm số chiều dữ liệu và tạo ra không gian vector đặc tính (Eigenfaces), kết hợp cùng lý thuyết toán tử mô hình nhị phân cục bộ (LBP/LBPH) để phân tích cấu trúc vi mô điểm ảnh.

2. Kích thước và thông số kỹ thuật chuẩn hóa ảnh trong hệ thống là bao nhiêu? Ảnh gốc thu nhận trực tiếp từ camera/webcam có độ phân giải $600 \times 600$ pixel. Qua công đoạn tiền xử lý, khuôn mặt được tách nền, cân bằng sáng, chuyển thang độ xám, căn chỉnh trục hai mắt theo phương ngang và chuẩn hóa về kích thước cố định $230 \times 230$ pixel trước khi đưa vào khối trích xuất đặc trưng.

3. Quy trình phục vụ khách hàng truyền thống tại VietinBank có những nhược điểm cụ thể nào được tác giả chỉ ra? Tác giả chỉ ra 4 nhược điểm chính: việc xác thực danh tính thủ công qua chứng minh thư và chữ ký tiềm ẩn rủi ro giả mạo; khách hàng thân thiết chỉ được nhận diện khi đã ngồi vào quầy; quy trình lấy số thứ tự thời gian thực chưa áp dụng đồng bộ trên toàn mạng lưới; và tình trạng quá tải cục bộ khiến khách hàng phải chờ đợi lâu khi lượng người đến giao dịch tăng đột biến.

4. Dữ liệu thử nghiệm của khóa luận được tổ chức như thế nào? Tập dữ liệu kiểm thử được thu thập trực tiếp thông qua camera với số lượng 50 ảnh chụp cho mỗi đối tượng ở nhiều góc độ khuôn mặt khác nhau, nhằm cung cấp dữ liệu huấn luyện cho việc trích xuất vector đặc trưng từ các phía của gương mặt.

5. Những nguyên nhân chính nào khiến hệ thống nhận diện sai hoặc không nhận diện được? Lỗi nhận diện phát sinh do: camera không ghi nhận được tư thế khuôn mặt thuận lợi (góc đứng quá nghiêng, tóc che mặt); trạng thái khuôn mặt thay đổi lớn so với mẫu huấn luyện (nheo mắt, đeo kính, cau mày); hoặc không định vị được vùng mắt khi đối tượng nhắm mắt/nghiêng đầu làm mất tính đối xứng của hai mắt.


Kết luận

Khóa luận của tác giả Đặng Thị Ngọc Mai đã giải quyết bài toán ứng dụng công nghệ thị giác máy tính mã nguồn mở OpenCV và ngôn ngữ Python vào công tác chăm sóc khách hàng tại Ngân hàng TMCP Công thương Việt Nam (VietinBank). Đề tài đã hệ thống hóa cơ sở lý thuyết xử lý ảnh, xây dựng hoàn chỉnh quy trình tiền xử lý, trích xuất đặc trưng PCA và thử nghiệm mô hình nhận diện khuôn mặt phục vụ phân luồng khách hàng tại quầy giao dịch. Mặc dù còn hạn chế trong việc nhận dạng ở các góc chụp phức tạp, công trình đã đề xuất được giải pháp kỹ thuật có tính ứng dụng thực tiễn cao nhằm nâng cao chất lượng dịch vụ và bảo mật giao dịch ngân hàng.