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 nhận dạng hình ảnh. Cụ thể ở đây là phân loại ảnh
nhận dạng ảnh căn cước công dân. Mặc dù trình 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 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. hình này đã cho thấy hiệu suất tốt trong
việc nhận dạng hình ảnh n cước công dân xác định
được những thông tin 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 rất cần thiết ngày nay việc thu
nhận xử thông tin với khối lượng ngày 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
đượ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 nhận dạng thông tin trên căn cước
công dân đã đang được phát triển bởi nhiều nhóm nghiên
cứu khác bởi lợi ích 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 chính xác hơn. Đã 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 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
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 thuật toán xử ảnh
nên mục tiêu của hình phát hiện 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 chất lượng hình ảnh cao. Ngoài ra, CNN còn
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, hình mạng neural tích chập
(CNN) 1 trong những hình để nhận dạng và phân loại
hình ảnh. Trong đó, xác định đối tượng nhận dạng khuôn
mặt 1 trong số những lĩnh vực 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 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 trong lĩnh vực thị giác máy tính xử ả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
khả năng nhận diện 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. 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 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 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, 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 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 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.
hình này gọi mạng kết nối đầy đủ (fully connected
layer) hay mạng toàn vẹn (affine layer). Còn trong 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 kết quả convolution từ layer trước đó,
nhờ vậy mà ta đượ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 hàng trăm hàng nghìn filter như vậy kết hợp
kết quả của chúng lại. Ngoài ra 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á trqua 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 hình CNN 2 khía cạnh cần quan tâm nh
bất biến (Location Invariance) 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) 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 trừu tượng hơn
thông qua convolution từ các filter.
Đó do tại sao CNN cho ra 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 giá trị xác suất giữa 0 1. Hình dưới đây
toàn bộ luồng CNN để xử hình ảnh đầu vào 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) 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ử 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 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 biến dạng: CNN
tính bất biến đối với dịch chuyển 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 đã trnê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 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 đề 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 các kiến trúc kết
hợp khác nhau, cho phép tạo ra các hình phức tạp
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 y
làm cho chúng trở thành công cụ 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 thử nghiệm
các 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
ron tích chập CNN phát hiện 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 học sâu.
Đây sẽ sở để các nghiên cứu về phân loại ảnh 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.