Tách các trường thông tin mặt trước thẻ CCCD

Một phần của tài liệu Luận văn Thạc sĩ Công nghệ thông tin: Hệ thống trích xuất tự động thông tin từ ảnh căn cước công dân (Trang 57)

Intput: Ảnh CCCD mặt trước

Output: Ảnh CCCD đã được tách các vùng thông tin Bước 1. Xác định biên cho ảnh chân dung , cắt ảnh

Bước 2. Tìm mặt nạ dịng, xác định vị trí của các dòng.

Bước 3. Tách các đối tượng thuộc mỗi dòng, phân tích các thành phần liên thơng để tìm các đối tượng thuộc mặt nạ dịng.

Bước 4. Xoá phần tiêu đề và nhiễu, loại bỏ phần tiêu đề của từng trường thông tin và các đối tượng là nhiễu, dịng khơng có ký tự.

Bước 5. Lấy lại các ký tự bị mất, thuộc dịng nhưng khơng được xét thuộc mặt

nạ dịng.

3.2.5. Tìm mặt nạ dịng

Vị trí của các dịng thơng tin cịn lại được xác định thơng qua vị trí tương đối của chúng so với dòng “CCCD” đã xác định được ở trên. Để thuận tiện, biểu diễn 9 dịng này bằng 9 hình chữ nhật – gọi là mặt nạ dịng –trong đó:

+dx, dy: khoảng các giữa vùng mặt nạ và dòng tiêu đề “CCCD” theo phương

ngang và phương dọc, tương ứng. Trong đó, dx là cố định (vì được in theo mẫu), chỉ có dy là thay đổi do dịng thơng tin dập/in vào có thể thay đổi so với dòng cơ sở (dịch lên hoặc dịch xuống): dy ϵ [dy1, dy2].

+wline, hline, dline: kích thước và khoảng cách giữa các hình chữ nhật là cố

định.

Như vậy, để xác định mặt nạ dòng chỉ cần xác định dy bằng cách dựa vào sự phân bố của các điểm ảnh trong vùng mặt nạ theo công thức (3.2)

dy = arg{maxy ϵ [dy1, dy2](count(y))} (3.2)

Trong đó: count(y) là số lượng điểm ảnh trong vùng mặt nạ, tương ứng vị trí y.

3.2.6. Tách các đối tượng thuộc mỗi dòng

Từ ảnh nhị phân thu được ở bước tiền xử lý, tách lấy các đối tượng (các thành phần liên thơng), mỗi đối tượng được biểu diễn bằng hình chữ nhật bao quanh nó, trong đó:

58 wb, hb: Kích thước của đối tượng

Để việc lọc các đối tượng được chính xác, chia các đối tượng làm 3 lớp, dựa trên kích thước của các đối tượng:

+ Nhỏ: Lớp các đối tượng là dấu của ký tự, dấu chấm của đường cơ sở,

nhiễu,… (wb < wmin hoặc hb < hmin).

+ Lớn: Lớp các đối tượng là ảnh chân dung hoặc các đường viền (wb >

wmax hoặc hb > hmax).

+ Vừa: Gồm các đối tượng cịn lại, lớp các đối tượng có thể là ký tự.

Từ các đối tượng thuộc lớp vừa, lọc lấy các đối tượng thuộc mặt nạ của mỗi dòng. Một đối tượng được cho là thuộc mặt nạ của một dịng nếu tâm của nó nằm trong hình chữ nhật của mặt nạ dịng đó. Lúc này mỗi dịng sẽ được biểu diễn bằng một danh sách các đối tượng, thuật toán 3.7. Tuy nhiên, trong danh sách này vẫn có các ký tự là tiêu đề của các trường, các nhiễu, hoặc thiếu các ký tự của phần thơng tin, do đó cần các bước hậu xử lý tiếp theo.

Thuật tốn 3.7. Tách các ký tự thuộc mỗi dịng Input:

1. Mặt nạ dòng: LMask = {bMaskk} 2. Ảnh nhị phân: IBin

Output: Danh sách các ký tự thuộc các dòng: LLine = {LChark

Bước 1. Tách lấy các thành phần liên thông từ IBin: LCCs = {bCCsi} Bước 2. Chia LCCs là 3 lớp:

a. Nhỏ: LSmall = {bCCsi | wbCCsi < wmin OR hbCCsi < hmin} b. Lớn: LLarge = {bCCsi | wbCCsi > wmax OR hbCCsi > hmax}

c. Vừa: LMean = {bMeani} = {bCCsi | bCCsi LSmall AND bCCsi LLarge}

Bước 3. Lọc lấy các ký tự thuộc mỗi dòng:

LChark = {bMeani | (xMeani, yMeani)  bMaskk}

Trong đó:

59

yMeani = ybMeani + hbMeani / 2

3.2.7. Xoá tiêu đề

Trong 7 dịng đã tìm được ở trên, có 4 dịng có chứa phần tiêu đề (tương ứng với 4 trường thơng tin), đó là các dịng thứ 1, 2, 4, 6. Để loại bỏ các phần tiêu đề này cần xác định vị trí phân tách giữa phần tiêu đề và phần thơng tin trong các dịng đó. Do phần thơng tin được dập/in vào mẫu có sẵn (đã có phần tiêu đề) nên giữa phần hai phần này có những đặc điểm khác nhau sau:

+ Chiều cao trung bình của các ký tự trong phần tiêu đề thường nhỏ hơn chiều

cao trung bình của các ký tự trong phần thông tin.

+ Theo phương dọc, phần thơng tin có thể bị lệch so với phần tiêu đề (dịch lên

hoặc dịch xuống).

+ Theo phương ngang, giữa phần thơng tin và phần tiêu đề thường có khoảng

cách lớn hơn khoảng cách giữa các ký tự (các từ) trong dòng.

+ Ký tự cuối cùng của phần tiêu đề là chữ in thường, trong khi ký tự đầu tiên

của phần thông tin là chữ in hoa nên có sự khác nhau lớn về chiều cao.

Từ các đặc điểm trên có thể tính được hàm “khoảng cách” giữa phần tiêu đề và phần thông tin theo công thức (3.3).

𝒅𝒊𝒔𝒕𝒂𝒏𝒄𝒆(𝒙, 𝒚) = 𝒅𝒉 + 𝒅𝒚 + 𝒅𝒅 + 𝒅𝒄 (3.3)

Trong đó:

dh: Chêch lệch độ cao trung bình của phần tiêu đề và phần thơng tin.

dy: Tổng chênh lệch của đường baseline và đường mean line giữa phần tiêu đề

và phần thông tin.

dd: Khoảng cách giữa phần tiêu đề và phần thông tin.

dc: Chênh lệch độ cao của hai ký tự tiếp giáp giữa phần tiêu đề và phần thơng

tin.

Như vậy, có thể dựa vào hàm khoảng cách này để xác định vị trí phân tách giữa phần tiêu đề và phần thơng tin, thuật tốn 3.8.

60

Thuật toán 3.8. Xoá phần tiêu đề Input: Input:

Mặt nạ dòng: LChar = {bChark}

Độ dài có thể của phần tiêu đề: [dTitle1, dTitle2]

Output: Danh sách các ký tự thuộc phần thông tin: LInfo = {bInfok}

Process:

Bước 1. Sắp xếp LChar theo chiều tăng dần của xbChari Bước 2. Tìm các vị trí có thể phân tách:

LSplit = {xSpliti | xSpliti ϵ [dTitle1, dTitle2] AND xSpliti ϵ [xbChark+wbChark, xbChark+1]}

Bước 3. Tính hàm khoảng cách: distance(xSpliti)

Bước 4. Chọn vị trí phân tách: split = arg{max(distance(xSpliti))} Bước 5. Xoá phần tiêu đề: LInfo = {bChark | xbChark > split}

3.2.8. Phục hồi các ký tự bị mất

Trong quá trình tách lấy các đối tượng thuộc dịng, có thể một số ký tự thuộc dịng nhưng khơng được chọn, ngun nhân là do:

Các ký tự này nằm ngoài vùng mặt nạ dịng (khơng được dập/in vào vùng thơng tin đã được định trước) do lượng thông tin quá nhiều nên “tràn” ra khỏi vùng đã được định trước.

+Các ký tự này thuộc vùng mặt nạ dịng nhưng tâm của nó khơng nằm trong mặt nạ của dịng, do các ký tự trên hai dịng dính nhau hoặc dính vào các đường viền Từ các nguyên nhân trên, có các giải pháp khác nhau để lấy lại các ký tự bị mất. Với nguyên nhân thứ nhất: Mở rộng mặt nạ dịng về hai phía, rồi lấy lại các ký tự như ở bước trên.

+Với nguyên nhân thứ hai: Tìm phần giao nhau giữa hình bao của các dịng với các đối tượng, nếu phần giao này có chiều cao lớn hơn một nửa chiều cao của dịng thì đó là ký tự bị mất.

61

3.2.9. Tách các trường thông tin ở mặt sau

Các trường thông tin cần tách ở mặt trước bao gồm: Ảnh ngón trỏ trái, Ảnh ngón trỏ phải, Đặc điểm nhận dạng, Ngày cấp. Các trường này được đặt tuần tự từ trên xuống, ở bên phải của CCCD, ngay dưới dòng vùng mã vạch màu đen, có đặc điểm được mơ tả trong Bảng 3.1.hình 3.4

Bảng 3.1. Đặc trưng các trường thông tin ở mặt trước CCCD

Tên trường Số dịng Đặc trưng

Ảnh ngón trỏ trái 1 Ảnh màu đen

Ảnh ngón trỏ phải 1 Ảnh màu đen

Đặc điểm nhận dạng 2 Màu đen

Ngày cấp 1 Màu đen

Hình 3.4. Các vùng thơng tin cần tách ở mặt sau

Mặt sau của CCCD có cấu trúc dạng bảng, các trường thông tin được phân bổ vào các ô của bảng: trường đặc điểm nhận dạng chiếm 2 dòng, trường Ngày cấp và Nơi cấp ở ô dưới cùng bên phải. Do vậy, để tách được các trường thông tin yêu cầu cần xác định được cấu trúc bảng sau đó mới tách các trường thơng tin này, thuật tốn gồm các bước: Tiền xử lý ảnh: Khử các thành phần nền của trong ảnh.

Tách các trường thông tin: Tách lấy các dịng thơng tin và loại bỏ phần tiêu đề của mỗi dòng.

62

3.2.9.1 Tiền xử lý mặt sau

Mặt sau của CCCD là đơn giản hơn mặt trước chỉ có 3 trường thơng tin Ngày cấp, đặc điểm nhận dạng và hình ảnh ngón trỏ trái, ngón trỏ phải. Mặt khác trong quá trình sử dụng ảnh cũng bị suy thoái chất lượng: bị ố, mốc… hay bị nghiêng giống như mặt trước. Do đó, cần các thao tác tiền xử lý ảnh để khử đi các thành phần nền, cũng như căn chỉnh độ nghiêng, cụ thể gồm các thao tác sau: Chuyển ảnh mầu về ảnh đa cấp xám, nhị phân hóa ảnh, hình 3.5, phân đoạn vùng dữ liệu cần tách:

+Tiền xử lý ảnh: Khử các thành phần nền của trong ảnh, đặc.

+Căn chỉnh độ nghiêng: Áp dụng phương pháp như đối với mặt trước.

+Tách các trường thông tin: Loại bỏ đi phần tiêu đề của các dòng.

(a) (b) (c)

Hình 3.5. Tiền xử lý mặt sau CCCD

(a) Ảnh đầu vào; (b) Ảnh đa cấp xám; (c) Ảnh nhị phân

3.2.9.2. Phân đoạn vùng thông tin mặt sau

Trong phần này sẽ tách lấy các vùng thông tin yêu cầu từ ảnh nhị phân thu được ở bước trước thông qua việc xác định cấu trúc của bảng, hình 3.6. Mặt khác, trong lúc dập/in thông tin và lăn tay, các ký tự hoặc dấu vân tay có thể chờm lên các đường kẻ, gây khó khăn cho việc xác định cấu trúc bảng.

Sau khi xác định được các vùng, tách lấy các vùng chứa các trường thơng tin cần tìm từ ảnh.

63

(a) ` (b)

Hình 3.6. Xác định vùng thơng tin mặt sau

(a) Ảnh phân vùng đầu vào; (b) Ảnh nhị phân

Vùng ảnh ngón trỏ trái, ngón trỏ phải: Xác định từ trên xuống từ trái sang

phải thì vùng này nằm bên trái dưới vùng mả vạch màu đen, chỉ chúa ảnh màu đen, không chứa ký tự.

Vùng đặt diểm nhận dạng: Nằm dưới vùng mã vạch từ trên xuống và trên

vùng Ngày cấp và Nơi cấp. Vùng này chứa thông tin vừa chữ vừa số vừa ký tự đặc biệt, vừa chữ thường vừa chữ hoa, có đặc điểm là chữ rất nhỏ thường viết dích liền một số ký tự, hay bị lem mực.

Vùng ngày cấp: Nằm dưới sau vùng đặc điểm nhận dạng chi chứa thông tin

đinh dạng ngày tháng năm.

Từ các vùng này, bước tiếp theo sẽ tách lấy các trường thơng tin cần tìm.

3.2.9.3. Tách trường thơng tin mặt sau

Việc tách cách trường thông tin ở mặt sau cũng tương tự như đối với mặt trước.

+Tách trường ảnh vây tay ngón trỏ trái, ngón trỏ phải + Tách trường đặc điểm nhận dạng

+ Tách trường ngày cấp CCCD

Phân thu được ở bước tiền xử lý và vị trí đã xác định ở bước trên, xác định cửa sổ “mặt nạ” của các dịng sau đó cố gắng lọc lấy các đối tượng (ký tự) thuộc mặt nạ dịng. Cụ thể, thuật tốn bao gồm các bước như thuật toán 3.9.

64

Thuật tốn 3.9. Tách thơng tin mặt sau Intput: Ảnh CCCD mặt sau Intput: Ảnh CCCD mặt sau

Output: Các vùng thông tin mặt sau CCCD đã được tách

Bước 1. Xác định biên cho ảnh ngón trỏ trái, phải , cắt lấy ảnh Bước 2. Tìm mặt nạ dịng. Xác định vị trí của các dịng.

Bước 3. Tách các đối tượng thuộc mỗi dịng, Phân tích các thành phần liên thơng để tìm các đối tượng thuộc mặt nạ dịng.

Bước 4. Xố phần tiêu đề và nhiễu, Loại bỏ phần tiêu đề của từng trường thông tin và các đối tượng là nhiễu, dịng khơng có ký tự.

Bước 5. Lấy lại các ký tự bị mất thuộc dịng nhưng khơng được xét thuộc mặt

nạ dòng.

Các thuật toán (3.4) và (3.5) và các thuật toán khác, tiền xử lý ảnh áp dụng mặt sau tương tự mặt trước.

3.3. Huấn luyện mạng nơron phân tích ảnh để nhận dạng ký tự

Sau khi tiền xử lý xong, qua các bước phân tích xác định các vùng thơng tin cần trích xuất, là q sử dụng deep learning, mạng nơ ron để huấn luyện nhận dạng các ký tự và hậu xử lý xuất ra tập tin văn bản.

Q trình phân tích ảnh để tìm ký tự, phương pháp nhận dạng

Thuật toán sử dụng để tách ký tự ra khỏi ảnh văn bản dựa trên đặc tính biên độ về độ sáng của các điểm ảnh. Phương pháp nhận dạng ký tự quang bằng mạng nơron[6] bao gồm các bước được mô tả như sau:

+Tiến hành phân tích ảnh để tìm ký tự +Tách dịng ký tự ra khỏi ảnh ký tự. +Tách từ riêng biệt ra khỏi dòng ký tự. +Tách riêng từng ký tự ra khỏi từ. +Mạng Neural nhận dạng ký tự +Hậu xử lý dữ liệu

65

Thuật tốn 3.10. Tách dịng:

Bước 1: Xác định giới hạn dưới của dòng:

Bước 2: Bắt đầu duyệt từ giới hạn trên (đỉnh) vừa tìm thấy của dòng (0,

top_line).

Bước 3: Tương tự như xác định giới hạn trên, chúng ta duyệt hết chiều

rộng của ảnh trên cùng một giá trị y.

− Nếu duyệt hết dịng mà khơng tìm thấy ký tự điểm đen nào thì ghi nhận y-1 là giới hạn dưới của dòng (bottom_line). Dừng duyệt. Tăng số dòng lên (lines++).

− Nếu chưa tìm thấy bottom_line, tiếp tục duyệt đến dịng tiếp theo (tăng y, reset x=0).

Bắt đầu từ giới hạn dưới y (bottom_line) vừa tìm thấy sau cùng, lặp lại các bước a,b để xác định các giới hạn của các dòng tiếp theo, cho đến khi duyệt hết chiều cao của ảnh thì dừng, quá trình xác định dịng ký tự hồn tất.

Sau khi tách dòng chúng tơi đề xuất thuật tốn 3.11 để tách ký tự, hình 3.7

Thuật tốn 3.11. Tách kí tự:

Bước 1: Bắt đầu từ kí tự đầu tiên của hàng trên cùng với giá trị x đầu tiên. Bước 2: Quét hết chiều rộng với một giá trị y

− Nếu phát hiện điểm đen đánh dấu y như là đỉnh của hàng đầu tiên − Nếu không xét điểm tiếp theo

Bước 3: Bắt đầu từ giới hạn trên của kí tự phát hiện được và giá trị x đầu

tiên. (0, giới hạn trên kí tự)

Bước 4: Quét đến giới hạn dưới của dòng, giữ nguyên x

− Nếu phát hiện điểm đen đánh dấu x là phía trái của kí tự − Nếu khơng xét điểm tiếp theo

66 − Nếu không thấy điểm đen nào tăng x và khởi động lại y để xét đường

thẳng đứng tiếp theo.

Bước 5: Bắt đầu từ phía trái của kí tự tìm thấy và đỉnh của dịng hiện thời,

(giới hạn trái kí tự, giới hạn trên dịng)

Bước 6: Quét hết chiều rộng của ảnh trên cùng một giá trị x

- Nếu khơng có điểm đen nào thì đánh dấu x-1 là bên phải của kí tự - Nếu phát hiện điểm đen tăng x và khởi động lại y để xét đường thẳng

đứng tiếp theo.

Hình 3.7. Quá trình tách ký tự

Sau quá trình tách ký tự chúng tơi đề xuất thuật tốn .12 để tim ký tự

Thuật tốn 3.12. Tìm giới hạn kí tự

Bước 1: Bắt đầu từ đỉnh của dịng hiện thời và bên trái của kí tự Bước 2: Quét đến bên phải của kí tự cùng một giá trị y

− Nếu phát hiện điểm đen thì đánh dấu y và thay đổi lại giới hạn trên − Nếu không xét điểm tiếp theo

− Nếu khơng tìm thấy điểm đen nào tăng y và khởi động lại x, xét đường thẳng ngang tiếp theo

Bước 3: Bắt đầu từ giới hạn dưới của dịng và bên trái của kí tự Bước 4: Quét tới bên phải của kí tự trên một giá trị y

- Nếu phát hiện điểm đen, đánh dấu y là giới hạn dưới của kí tự

- Nếu không phát hiện điểm đen giảm y và khởi động lại x xét đường thẳng

67 Sau khi tách dịng, tách ký tự, tìm giới hạn ký tự chúng tội đề xuất thuật toán 3.13 để ánh xạ vào ma trận trong mạng nơ ron, hình 3.8.

Hình 3.8. Q trình tìm giới hạn kí tự

Sau q trình tìm giới hạn kí tự chúng tơi đề xuất thuật tốn 3.13 để ánh xạ vào ma trận, hình 3.9.

Thuật tốn 3.13. Ánh xạ vào ma trận

Bước 1: Đối với chiều rộng:

− Khởi tạo với x phần tử tương ứng

− Ánh xạ điểm đầu (0,y) và điểm cuối (C_rong,y) của ảnh kí tự tương ứng với giá trị đầu (0,y) và giá trị cuối (y’,y) của ma trận

− Chia nhỏ chiều rộng thành x giá trị tương ứng

Bước 2: Đối với chiều cao:

− Khởi tạo với x’ phần tử tương ứng

Một phần của tài liệu Luận văn Thạc sĩ Công nghệ thông tin: Hệ thống trích xuất tự động thông tin từ ảnh căn cước công dân (Trang 57)

Tải bản đầy đủ (PDF)

(82 trang)