Professional Documents
Culture Documents
____________________
Hà Nội, 01/2022
GVHD: TS.Ban Hà Bằng
Lời cảm ơn
Lời đầu tiên, chúng em xin được gửi lời cảm ơn chân thành đến TS.Ban
Hà Bằng. Trong quá trình hoạt động thực hiện Project I, chúng em đã luôn
nhận được sự quan tâm, sát sao và những hướng dẫn rất tận tình và tâm
huyết đến từ thầy. Thầy đã ân cần chỉ ra những khuyết điểm và đưa ra nhiều
giải pháp cho chúng em qua từng buổi họp, từ đó giúp chúng em dần hoàn
thiện Project này. Thầy đã giúp chúng em giải quyết được nhiều vấn đề mà
chúng em còn vướng bận, giúp chúng em đoàn kết hơn và từ đó có được nền
tảng vững chắc để làm việc nhóm một cách hiệu quả.
Tiếp đó em xin được gửi lời cảm ơn đến anh Tùng và anh Lâm. Với
kinh nghiệm và những kiến thức của mình, hai anh đã giải đáp rất nhiều thắc
mắc của chúng em, đồng thời cung cấp cho chúng em những tài liệu hay,
những giải pháp mới mà chúng em chưa nghĩ đến.
Một lần nữa chúng em xin chân thành cảm ơn thầy và hai anh, thông
qua môn học Project I lần này, chúng em đã học được nhiều kiến thức mới,
được tiếp cận với nhiều phương pháp, công cụ mới. Đây cũng là lần đầu
chúng em thực hiện Project nên trong quá trình hoàn thành còn nhiều thiếu
sót, rất mong nhận được những nhận xét, ý kiến đóng góp từ cô để chúng em
có thể hoàn thiện sản phẩm này hơn.
Nhóm 3 : Project I 1
GVHD: TS.Ban Hà Bằng
Mục lục
Danh mục hình ảnh ...................................................................................................3
1 Giới thiệu và mô tả về bài toán. ...........................................................................4
1.1 Lý do chọn đề tài. .............................................................................................4
1.2 Mục tiêu của đề tài. ..........................................................................................5
1.3 Phương pháp tiếp cận. ...................................................................................5
2 Các phương pháp được dùng để giải quyết bài toán. ..................................6
2.1 Cơ sở lý thuyết. ................................................................................................6
2.1.1 Computer Vision. ..................................................................... 6
2.1.2 Artificial neural network (ANN). ................................................ 7
2.1.3 Các hàm kích hoạt – activation function. .................................. 8
2.1.4 Convolutional Neural Network. ................................................. 9
2.1.5 Phương pháp training một mạng nơ ron. ............................... 12
2.1.6 Optical Character Recognition (OCR). .................................... 13
2.2 Các thử nghiệm ban đầu. ............................................................................ 14
2.2.1 Bài toán 1: Phân loại giấy tờ. ................................................. 14
2.2.2 Bài toán 2: Chuẩn hóa giấy tờ. ............................................... 16
2.2.3 Bài toán 3: Detect vùng dữ liệu và lấy thông tin. ..................... 17
2.3 Sản phẩm cuối cùng..................................................................................... 20
3 Kết luận và định hướng phát triển. .................................................................. 21
3.1 Kết quả đạt được. ......................................................................................... 21
3.2 Các khó khăn.................................................................................................. 21
3.3 Định hướng phát triển. ................................................................................ 22
Tài liệu tham khảo....................................................................................................... 23
Phân chia công việc ................................................................................................... 24
Nhóm 3 : Project I 2
GVHD: TS.Ban Hà Bằng
Nhóm 3 : Project I 3
GVHD: TS.Ban Hà Bằng
Trong thời điểm dịch bệnh ngày càng căng thẳng, việc hạn chế tiếp xúc là
điều tất yếu. Đây là lúc các công cụ trên nền tảng số phát huy sức mạnh của mình.
Các công việc trao đổi thông tin, mua sắm đều được khuyến khích thực hiện qua
internet, nhằm đảm bảo các quy định về giãn cách trong thời kì dịch bệnh. Để thuận
tiện cho các công việc cần xác thực danh tính, cụ thể là các công việc cần đến căn
cước công dân, chứng minh thư như đăng kí tuyển sinh, đăng kí tài khoản ngân
hàng,….., các tổ chức dần chuyển sang hoạt động online qua các form đăng kí trên
web.
Ví dụ ở đây là hệ thống đăng kí tuyển sinh của Trường Đại học Bách Khoa
Hà Nội:
Trong giao diện trên, ngoài việc phải chụp và gửi lại căn cước công dân hoặc
là chứng minh thư để xác thực, người đăng kí còn phải điền các trường thông tin cá
Nhóm 3 : Project I 4
GVHD: TS.Ban Hà Bằng
nhân. Việc này có thể dẫn đến xung đột do người dùng có thể điền sai thông tin mà
không để ý, dẫn đến sai khác so với trên giấy tờ. Đồng thời cũng tốn thêm thời gian
của người đăng kí. Vì vậy giải pháp ở đây là tích hợp một module cho phép đọc
thông tin trên ảnh chụp giấy tờ đã cho và điền vào trong form đăng kí, giúp người
đăng kí tiết kiệm thời gian và cũng tránh được xung đột.
Xuất phát từ nhu cầu đó, nhóm chúng em quyết định chọn đề tài “Xây dựng
một API phân loại, chuẩn hóa, xác định và đọc các trường thông tin trên giấy tờ”.
Sau khi hoàn thành 3 modul trên sẽ cần phải ghép các modul lại với nhau đẻ
tạo thành một API hoàn chỉnh, cung cấp các phương thức riêng biệt để xử lý cho
từng bài toán.
Dữ liệu nhóm em thu thập được là bộ 700 ảnh ba loại giấy tờ: chứng minh
thư, căn cước công dân, căn cước công dân gắn chip lấy từ nhiều nguồn khác nhau,
chủ yếu trên các trang mạng xã hội. Với bộ dữ liệu trên, nhóm sẽ xây dựng các mô
hình để giải quyết các bài toán.
Nhóm 3 : Project I 5
GVHD: TS.Ban Hà Bằng
2.1 Cơ sở lý thuyết.
Nhóm 3 : Project I 6
GVHD: TS.Ban Hà Bằng
nhận biết, phân loại, theo dõi vật thể,….Nhưng tất cả những thứ đó vẫn còn nhiều
hạn chế. Do kiến thức mà mô hình học được đều phụ thuộc vào dữ liệu đầu vào,
thêm vào đó là giới hạn về kích thước bộ nhớ, tốc độ xử lý nên chỉ có thể xây dựng
các mô hình với lượng kiến thức hạn chế, không thể phủ được toàn bộ các lĩnh vực.
Tuy còn nhiều hạn chế vậy nhưng với những kết quả hiện tại có thể nói là vô
cùng thành công. Computer Vision đã đem lại rất nhiều lợi ích cho con người. Ứng
dụng của nó trải khắp các lĩnh vực. Nhờ nó mà robot hiện nay đã có thể thay thế con
người trong những công việc nặng nhọc. Một vài ứng dụng khác có thể kể đến như
bảo mật khuôn mặt, nhận diện chữ viết,…
Tóm lại, Computer Vision vẫn đang còn trên đà phát triển, với những thành
công của hiện tại, ta có thể hy vọng về những ứng dụng tuyệt vời với sự đột phá của
công nghệ này trong tương lai.
2.1.2 Artificial neural network (ANN).
Mạng nơ-ron nhân tạo (ANN) bao gồm các lớp nút, trong đó chứa một lớp
đầu vào, một hoặc nhiều lớp ẩn và một lớp đầu ra. Mỗi nút hoặc mỗi nơ-ron nhân
tạo, kết nối với một nút khác và có trọng số (weights) và ngưỡng (threshold) liên
quan. Nếu đầu ra của bất kỳ một nút riêng lẻ nào vượt qua được giá trị ngưỡng chỉ
định, nút đó sẽ được kích hoạt, gửi dữ liệu đến lớp tiếp theo của mạng. Nếu không
thì không có dữ liệu nào được gửi đến nút tiếp theo của mạng.
Coi mỗi nút riêng lẻ như một mô hình hồi quy tuyến tính của chính nó, bao
gồm dữ liệu đầu vào, trọng số, độ lệch ( hoặc ngưỡng) và đầu ra. Công thức sẽ như
sau:
∑𝑚
𝑖 =1 𝑤𝑖 𝑥 𝑖 + 𝑏𝑖𝑎𝑠 = 𝑤1 𝑥 1 + 𝑤2 𝑥 2 + ⋯ + 𝑤𝑚 𝑥 𝑚 + 𝑏𝑖𝑎𝑠
Khi một lớp đầu vào được xác định, trọng số sẽ được chỉnh định. Các trọng
số này giúp xác định tầm quan trọng của bất kỳ biến nhất định nào, với những biến
đóng góp đáng kể hơn vào đầu ra so với các đầu ra khác. Tất cả các đầu vào sau
đó được nhân với trọng số tương ứng của chúng và sau đó được cộng lại. Sau đó,
đầu ra được chuyển qua một hàm kích hoạt, chức năng này sẽ xác định đầu ra . Nếu
đầu ra đó vượt qua một ngưỡng nhất định, nó sẽ “kích hoạt” nút, truyền dữ liệu đến
lớp tiếp theo trong mạng. Điều này dẫn đến kết quả đầu ra của một nút trở thành đầu
vào của nút tiếp theo.
Nhóm 3 : Project I 7
GVHD: TS.Ban Hà Bằng
Các giá trị của ma trận trọng số (weights) và giá trị của độ sai lệch (biases)
tương ứng với kiến trúc là mô hình (model).
Quá trình training model là quá trình xác định các giá trị của các weights và
biases. Các giá trị của chúng được khởi tạo với các giá trị ngẫu nhiên khi bắt đầu
training. Muốn training chúng ta cần phải định nghĩa bằng hàm lỗi của mạng. Lúc
này chúng ta sẽ nhắc đến hai giá trị đó là ground truth - tức là giá trị thực tế có trong
tập dữ liệu huấn luyện và predict_output là giá trị mà mô hình dự đoán. Lỗi được tính
bằng cách sử dụng hàm loss định nghĩa dựa trên sự khác nhau giữa hai giá trị này.
Dựa trên gíá trị của hàm loss được tính toán, các trọng số weights được điều chỉnh
tại mỗ bước trong quá trình training . Việc huân luyện mô hình được dừng lại khi lỗi
không thể giảm thêm được nữa. Quá trình training thực chất là tìm ra các đặc trưng
features trong dữ liệu đầu vào.
2.1.3 Các hàm kích hoạt – activation function.
Hàm kích hoạt được tạo ra với mục đích “bẻ gãy sự tuyến tính” của mạng nơ-
ron. Các hàm này có thể hiểu đơn giản như một bộ lọc để quyết định xem thông tin
có được qua mạng nơ-ron hay không. Trong quá trình hu ấn luyện mạng nơ-ron, các
hàm kích hoạt đóng vai trò quan trọng trong việc điều chỉnh độ dốc cảu đạo hàm.
Một số hàm kích hoạt hay dùng như sigmoid, tanh, relu, softmax, …
Sigmoid function: là một hàm rất thường dùng để chuyển đổi bất kỳ giá trị
nào về thành giá trị trong khoản 0…1. Có công thức toán học sau:
1
𝑓( 𝑥 ) =
1 + 𝑒 −𝑥
Tanh function: là hàm tiếp tuyến hyperbol, gần giống như hàm sigmoid. Hàm
tanh sẽ ánh xạ dữ liệu đầu vào về trong khoản từ -1 đến 1. Có công thức toán học
sau:
𝑒 𝑥 − 𝑒 −𝑥
𝑓( 𝑥 ) =
𝑒 𝑥 + 𝑒 −𝑥
Relu function: là hàm giữ nguyên những giá trị đầu vào lớn hơn 0 và những
giá trị đầu vào nhỏ hơn 0 thì coi là 0. Hàm này đã trở thành hàm kích hoạt mặc định
cho nhiều loại mạng nơ-ron vì mô hình sử dụng nó dễ huấn luyện hơn và có hiệu
suất cao hơn. Có công thức như sau:
𝑓 (𝑥 ) = max (0, 𝑥)
Nhóm 3 : Project I 8
GVHD: TS.Ban Hà Bằng
Softmax function: là một hàm kích hoạt, đưa các kết quả đầu ra bị ràng buộc
sao cho tổng của chúng bằng 1. Để làm được điều này thì hàm softmax chuyển đổi
giá trị đầu ra của mạng nơ-ron bằng cách chia cho tổng giá trị. Có thể thấy rõ hơn
qua công thức:
exp 𝑎𝑖
𝑠𝑜𝑓𝑡𝑚𝑎𝑥 𝑖 (𝑎) =
∑ exp 𝑎𝑖
CNN (Convolutional Neural Network) hay còn gọi là mạng nơ-ron tích chập,
là một trong những mô hình Deep Learning tiên tiến. CNN phân loại hình ảnh bằng
cách sử dụng các đặc trưng trên ảnh, từ đó phân loại hình ảnh vào các lớp dựa dựa
vào nguồn dữ liệu ảnh đã được học.
Convolution (hàm tích chập) : trong toán học hàm tích chập được định nghĩa
là một hàm tích phân đặc biệt với hai hàm số, cho ra một hàm thứ 3 thể hiện khuôn
dạng của một hàm được chỉnh sửa theo hàm còn lại.
Convolution Layer (lớp tích chập) cũng được lấy ý tưởng từ đó. Với dữ liệu
đầu vào là ma trận hình ảnh và một filter, đầu ra là một ma trận khác gọi là Feature
map. Lớp tích chập duy trì mối quan hệ giữa các điểm ảnh, từ đó giữa lại được các
đặc điểm trong ảnh.
Nhóm 3 : Project I 9