
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 ● 2024 85
NGHIÊN CỨU MỘT SỐ THUẬT TOÁN AI VÀ ỨNG DỤNG
TRONG BÀI TOÁN NHẬN DẠNG THÔNG TIN TRÊN CĂN CƯỚC CÔNG DÂN
RESEARCH ON SOME AI ALGORITHM AND APPLICATION IN THE PROBLEM
OF IDENTIFICATION OF INFORMATION ON CITIZEN IDENTITY
Trần Khắc Nam1, Nguyễn Quang Huy1,
Võ Quang Minh1, Nguyễn Văn Đức1,*, Nguyễn Tuấn Anh2
1Lớp KTPM 04 - K16, Khoa Công nghệ thông tin, Trường Đại học Công nghiệp Hà Nội
2Khoa Công nghệ thông tin, Trường Đại học Công nghiệp Hà Nội
*Email: mientay135@gmail.com
TÓM TẮT
Trong bài báo này, chúng tôi đã tìm cách để có thể xây dựng một ứng dụng phát hiện và nhận dạng thông tin trên căn
cước công dân. Sau quá trình sàng lọc tất cả các mô hình truyền thống và mô hình học sâu, cuối cùng chúng tôi xác định
chọn mô hình CNN. CNN cho thấy hiệu suất tốt trong việc phân loại và nhận dạng hình ảnh. Cụ thể ở đây là phân loại ảnh
và nhận dạng ảnh căn cước công dân. Mặc dù trình mô hình của chúng tôi chưa đạt chính xác quá cao, nhưng chúng tôi
vẫn có thể nhận được kết quả chính xác ở mức độ chấp nhận được và đã nhận dạng thành công thông tin có trên căn cước
công dân.
Từ khóa: Nhận dạng thông tin trên căn cước công dân; học sâu; CNN
ABSTRACT
In this paper, we sought to build an application that detects and identifies information on citizen identification cards.
After screening all traditional and deep learning models, we finally decided to choose the CNN model. CNN shows good
performance in image classification and recognition. Specifically, here is image classification and identification of citizen
identification photos. Although our model did not achieve very high accuracy, we were still able to get acceptable results
and successfully identified information on citizen identification cards.
Keywords: Identify information on citizen identification cards; deep learning; CNN
CHỮ VIẾT TẮT
AI Artificial Intelligence Trí tuệ nhân tạo
CNN Convolutional Neural Networks Mạng nơ-ron tích chập
1. GIỚI THIỆU
Bài báo này trình bày việc sử dụng mô hình mạng neural
học sâu (CNN) để phát hiện và nhận dạng thông tin trên căn
cước công dân. Mô hình này đã cho thấy hiệu suất tốt trong
việc nhận dạng hình ảnh căn cước công dân và xác định
được những thông tin có trên căn cước công dân. Việc sử
dụng các kỹ thuật học sâu để nhận dạng thông tin trên căn
cước công dân được coi là rất cần thiết vì ngày nay việc thu
nhận và xử lý thông tin với khối lượng ngày càng lớn, nhiều
lúc với những việc thủ công không đem lại hiệu quả mong
muốn, lại tốn nhiều công sức và thời gian. Cùng với sự phát
triển của phần cứng mạnh mẽ cho phép tính toán hàng tỷ
phép tính trong một giây, mạng CNN trở nên phổ biến hơn
và được áp dụng vào nhiều lĩnh vực khác nhau của đời sống
như lĩnh vực thị giác máy tính, lĩnh vực tự động nhận dạng
giọng nói, xử lý ngôn ngữ tự nhiên, lĩnh vực y khoa,...
2. CÁC NGHIÊN CỨU LIÊN QUAN
Hệ thống phát hiện và nhận dạng thông tin trên căn cước
công dân đã và đang được phát triển bởi nhiều nhóm nghiên
cứu khác bởi lợi ích mà nó mang lại trong việc lấy được
thông tin trên CCCD qua việc quét ảnh giúp cho việc lưu
trữ thông tin nhanh chóng và chính xác hơn. Đã có rất nhiều
bài toán được ứng dụng trong hệ thống này, tuy nhiên hầu
hết đều phát triển dựa trên bài toán nhận diện hình ảnh.
Cho tới thời điểm hiện tại, các thuật toán nhận diện hình
ảnh vẫn là một trong những thuật toán quan trọng nhất trong
phân ngành thị giác máy tính (Computer Vision) bởi nó là
tiền đề để giải quyết rất nhiều bài toán thực tế khác nhau.

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 ● 2024 863. PHƯƠNG PHÁP VÀ TƯ LIỆU
Trong phần này, bài báo sẽ trình bày chi tiết việc xây
dựng mạng tích chập CNN. CNN là thuật toán xử lý ảnh
nên mục tiêu của mô hình là phát hiện và phân loại thông
tin trên căn cước công dân. CNN có thể xử lý ảnh với kích
thước lớn và chất lượng hình ảnh cao. Ngoài ra, CNN còn
có thể được huấn luyện bằng GPU giúp tăng tốc độ huấn
luyện lên rất nhiều lần, với lượng dữ liệu đầu vào lớn thì
điều này rất hữu ích.
3.1. Giới thiệu về mô hình CNN
Trong mạng neural, mô hình mạng neural tích chập
(CNN) là 1 trong những mô hình để nhận dạng và phân loại
hình ảnh. Trong đó, xác định đối tượng và nhận dạng khuôn
mặt là 1 trong số những lĩnh vực mà CNN được sử dụng
rộng rãi.
CNN phân loại hình ảnh bằng cách lấy 1 hình ảnh đầu
vào, xử lý và phân loại nó theo các hạng mục nhất định (Ví
dụ: Chó, Mèo, Hổ,...). Máy tính coi hình ảnh đầu vào là 1
mảng pixel và nó phụ thuộc vào độ phân giải của hình ảnh.
Dựa trên độ phân giải hình ảnh, máy tính sẽ thấy H x W x
D (H: Chiều cao, W: Chiều rộng, D: Độ dày). Ví dụ: Hình
ảnh là mảng ma trận RGB 6x6x3
Hình 1. Bảng ma trận RGB
Mạng nơ-ron tích chập (Convolutional Neural Network
- CNN) được sử dụng cho nhiều mục đích khác nhau, chủ
yếu là trong lĩnh vực thị giác máy tính và xử lý ảnh. Dưới
đây là một số mục đích chính khi sử dụng CNN:
● Nhận dạng đối tượng (Object Recognition): CNN có
khả năng nhận diện và phân loại các đối tượng trong hình
ảnh. Các ứng dụng bao gồm nhận dạng xe hơi, động vật,
người, đồ vật trong các bức ảnh.
● Phân loại hình ảnh (Image Classification): CNN được
sử dụng để phân loại các hình ảnh vào các lớp hoặc nhóm
dựa trên nội dung của chúng. Ví dụ, phân loại hình ảnh
thành các loại động vật, loại cây cối, hoặc phân loại phong
cảnh.
● Phát hiện đối tượng (Object Detection): Khác với nhận
dạng đối tượng, phát hiện đối tượng không chỉ xác định loại
đối tượng mà còn vị trí của chúng trong hình ảnh. CNN
được sử dụng trong các ứng dụng như phát hiện khuôn mặt,
đếm đối tượng, hoặc phát hiện vật thể trong bức ảnh.
● Nhận dạng văn bản trong hình ảnh (Optical Character
Recognition - OCR): CNN có thể được sử dụng để nhận
dạng và trích xuất văn bản từ hình ảnh hoặc tài liệu quét.
Những ứng dụng trên chỉ là một phần nhỏ của các mục
đích sử dụng của CNN, và công nghệ này đang được phát
triển và mở rộng ra nhiều lĩnh vực khác nhau.
3.2. Kiến trúc mạng CNN
Kiến trúc mạng CNN là một tập hợp các lớp
Convolution chồng lên nhau và sử dụng các hàm nonlinear
activation như ReLU và tanh để kích hoạt các trọng số trong
các node. Mỗi một lớp sau khi thông qua các hàm kích hoạt
sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo.
Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo
ra các thông tin trừu tượng hơn cho các lớp tiếp theo. Trong
mô hình mạng truyền ngược (feedforward neural network)
thì mỗi nơ-ron đầu vào (input node) cho mỗi nơ-ron đầu ra
trong các lớp tiếp theo.
Mô hình này gọi là mạng kết nối đầy đủ (fully connected
layer) hay mạng toàn vẹn (affine layer). Còn trong mô hình
CNN thì ngược lại. Các layer liên kết được với nhau thông
qua cơ chế convolution.
Layer tiếp theo là kết quả convolution từ layer trước đó,
nhờ vậy mà ta có được các kết nối cục bộ. Như vậy mỗi nơ-
ron ở lớp kế tiếp sinh ra từ kết quả của filter áp đặt lên một
vùng ảnh cục bộ của nơ-ron trước đó.
Mỗi một lớp được sử dụng các filter khác nhau thông
thường có hàng trăm hàng nghìn filter như vậy và kết hợp
kết quả của chúng lại. Ngoài ra có một số layer khác như
pooling/subsampling layer dùng để chắt lọc lại các thông
tin hữu ích hơn (loại bỏ các thông tin nhiễu).
Trong quá trình huấn luyện mạng (training) CNN tự
động học các giá trị qua các lớp filter dựa vào cách thức mà
bạn thực hiện. Ví dụ trong tác vụ phân lớp ảnh, CNN sẽ cố
gắng tìm ra thông số tối ưu cho các filter tương ứng theo
thứ tự raw pixel > edges > shapes > facial > high-level
features. Layer cuối cùng được dùng để phân lớp ảnh.
Trong mô hình CNN có 2 khía cạnh cần quan tâm là tính
bất biến (Location Invariance) và tính kết hợp
(Compositionality). Với cùng một đối tượng, nếu đối tượng
này được chiếu theo các góc độ khác nhau (translation,
rotation, scaling) thì độ chính xác của thuật toán sẽ bị ảnh
hưởng đáng kể.
Pooling layer sẽ cho bạn tính bất biến đối với phép dịch
chuyển (translation), phép quay (rotation) và phép co giãn
(scaling). Tính kết hợp cục bộ cho ta các cấp độ biểu diễn

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 ● 2024 87thông tin từ mức độ thấp đến mức độ cao và trừu tượng hơn
thông qua convolution từ các filter.
Đó là lý do tại sao CNN cho ra mô hình với độ chính
xác rất cao. Cũng giống như cách con người nhận biết các
vật thể trong tự nhiên.
Mạng CNN sử dụng 3 ý tưởng cơ bản:
●
Các trường tiếp nhận cục bộ (local receptive field)
●
Trọng số chia sẻ (shared weights)
●
Tổng hợp (pooling).
3.3. Mô hình
Về kỹ thuật, mô hình CNN để training và kiểm tra, mỗi
hình ảnh đầu vào sẽ chuyển nó qua 1 loạt các lớp tích chập
với các bộ lọc (Kernals), tổng hợp lại các lớp được kết nối
đầy đủ (Full Connected) và áp dụng hàm Softmax để phân
loại đối tượng có giá trị xác suất giữa 0 và 1. Hình dưới đây
là toàn bộ luồng CNN để xử lý hình ảnh đầu vào và phân
loại các đối tượng dựa trên giá trị.
Hình 2. Mô hình CNN
3.4. Ưu điểm
Mạng nơ-ron tích chập (Convolutional Neural Network
- CNN) có nhiều ưu điểm quan trọng, giúp nó trở thành một
công cụ mạnh mẽ cho việc xử lý và phân tích hình ảnh.
Dưới đây là một số ưu điểm chính của CNN:
● Trích xuất đặc trưng tự động: CNN có khả năng tự
động học và trích xuất các đặc trưng từ dữ liệu hình ảnh mà
không cần sự can thiệp của con người. Điều này giúp giảm
bớt sự phụ thuộc vào việc thiết kế các đặc trưng thủ công,
làm cho quá trình phát triển mô hình trở nên hiệu quả hơn.
● Bất biến đối với dịch chuyển và biến dạng: CNN có
tính bất biến đối với dịch chuyển và biến dạng của đối tượng
trong hình ảnh. Điều này có nghĩa là mô hình CNN vẫn có
khả năng nhận dạng đối tượng dù chúng có thể xuất hiện ở
vị trí và góc độ khác nhau trong hình ảnh.
● Phù hợp với dữ liệu lớn: CNN thường yêu cầu một
lượng lớn dữ liệu huấn luyện để đạt được hiệu suất tốt. Tuy
nhiên, với sự phát triển của các phương pháp và công nghệ,
việc thu thập và sử dụng dữ liệu lớn đã trở nên dễ dàng hơn,
giúp CNN phát huy hiệu suất tốt hơn.
● Phát triển kiến trúc linh hoạt: CNN có thể được thiết
kế với nhiều kiến trúc khác nhau để phù hợp với nhiều loại
vấn đề và yêu cầu cụ thể. Các kiến trúc này bao gồm các
lớp tích chập, lớp gộp, lớp kích hoạt và các kiến trúc kết
hợp khác nhau, cho phép tạo ra các mô hình phức tạp và
hiệu quả.
● Hiệu suất cao trên dữ liệu hình ảnh: CNN thường cho
hiệu suất cao trên các tác vụ xử lý hình ảnh như nhận dạng
đối tượng, phân loại hình ảnh và phát hiện vật thể. Điều này
làm cho chúng trở thành công cụ lý tưởng cho nhiều ứng
dụng thị giác máy tính.
● Thích hợp cho việc huấn luyện song song: Do cấu trúc
lặp lại của CNN, chúng thích hợp cho việc huấn luyện song
song trên các GPU hoặc TPU, giúp tăng tốc độ huấn luyện
và xử lý dữ liệu lớn.
Những ưu điểm này giúp CNN trở thành một công nghệ
quan trọng và mạnh mẽ trong lĩnh vực thị giác máy tính và
xử lý hình ảnh.
4. THỰC NGHIỆM
4.1. Triển khai hệ thống
Sau khi đã hoàn thiện việc huấn luyện và thử nghiệm
các mô hình của các bài toán con, chúng tôi sẽ thực hiện
triển khai chạy hoàn chỉnh trên Google Colab. Yêu cầu về
phần cứng, chỉ cần máy tính đáp ứng tác vụ văn phòng một
cách mượt mà là được (CPU 2-4 nhân, GPU, …).
Truyền vào một ảnh từ máy tính.
Hình 3. Thêm ảnh vào hệ thống

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 ● 2024 88Sau đó bấm chạy để hệ thống nhận dạng.
Hình 4. Kết quả sau khi mô hình
4.2. Xuất thông tin nhận dạng sang file csv
Hình 5. Kết quả sau khi xuất sang file csv
5. KẾT LUẬN
Báo cáo đã đưa ra một phương pháp sử dụng mạng nơ
ron tích chập CNN phát hiện và nhận dạng thông tin trên
căn cước công dân thông qua các ảnh chụp căn cước công
dân, áp dụng các kiến thức về trí tuệ nhân tạo và học sâu.
Đây sẽ là cơ sở để các nghiên cứu về phân loại ảnh và AI
nói chung có thể được phát triển trong tương lai với những
cải tiến về tốc độ và độ chính xác cao.
TÀI LIỆU THAM KHẢO
[1]. Nguyễn Mạnh Cường, Trần Hùng Cường, 2014. Giáo trình nhập môn lý thuyết nhận dạng. Nhà xuất bản Giáo dục
Việt Nam.
[2]. Trần Hùng Cường, Nguyễn Phương Nga, 2014. Giáo trình Trí tuệ nhân tạo. Nhà xuất bản Giáo dục Việt Nam.
[3]. Nguyễn Văn Hậu, Giáo trình Python cơ bản, NXB Đại học Quốc gia Hà Nội, Hà Nội, 2014.

