Thuật toá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ự hoàn tất.
Sau khi tách dòng chúng tôi đề xuất thuật toán 3.11 để tách ký tự, hình 3.7
Có thể bạn quan tâm!
- Mạng Nơron Truyền Thẳng Nhiều Lớp
- Xây Dựng Thuật Toán Phân Tích Thẻ Căn Cước Công Dân
- Đặc Trưng Các Trường Thông Tin Ở Mặt Trước Cccd
- Hệ thống trích xuất tự động thông tin từ ảnh căn cước công dân - 10
- Hệ thống trích xuất tự động thông tin từ ảnh căn cước công dân - 11
Xem toàn bộ 96 trang tài liệu này.
Thuật toá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
− 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 toán .12 để tim ký tự
Thuật toá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 ngang tiếp theo.
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. Quá trình tìm giới hạn kí tự
Sau quá trình 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, hình 3.9.
Thuật toá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
− Ánh xạ điểm đầu (x,0) và điểm cuối (x,C_cao) của ảnh kí tự tương ứng với giá trị đầu (x,0) và giá trị cuối (x,x’) của ma trận
− Chia nhỏ chiều cao thành x giá trị tương ứng Để đưa giá trị vào mạng nơ ron, chúng ta cầnchuyển ma trận điểm ảnh sang ma trận giá trị.
Hình 3.9. Quá trình chia lưới kí tự
Sau đã ánh xạ vào ma trận trong mạng nơ ron chúng tôi đề xuất tiếp thuật toán 3.14 để chuyển ma trận thành điểm ảnh, hình 3.10.
Thuật toán 3.14. Chuyển ma trận điểm ảnh sang ma trận giá trị
Bước 1: Bắt đầu từ phần tử (0,0)
Bước 2: Tăng x giữ nguyên giá trị y cho tới khi bằng chiều rộng của ma trận
− Ánh xạ mỗi phần tử tới một phần tử của mảng tuyến tính
+ Nếu là điểm đen thì nhận giá trị bằng 1
+ Ngược lại nhận giá trị bằng 0
− Nếu x = chiều rộng thì khởi động lại x và tăng y Lặp lại cho tới khi (x,y)=( C_Rong, C_Cao)
Hình 3.10. Quá trình ánh xạ từ ma trận điểm sang ma trận giá trị
Sau khi chuyển ma trận điểm ảnh sang ma trận giá trị chúng tôi đề xuất thuật toán 3.15 để huấn luyện mạng nơ ron.
Thuật toán 3.15. Huấn luyện mạng nơ ron
Bước 1: Xây dựng mạng tương ứng với mô hình tham số
Bước 2: Khởi tạo giá trị trọng số với giá trị ngẫu nhiên. Nạp file huấn luyện (cả ảnh đầu vào và ảnh đầu ra mong muốn)
Bước 3: Phân tích ảnh và ánh xạ tất cả kí tự tìm thấy vào các mảng một chiều Bước 4: Đọc giá trị đầu ra mong muốn từ file và chuyển đổi từng kí tự tới giá trị nhị phân Unicode và lưu trữ riêng biệt
Bước 5: Với mỗi kí tự:
− Tính toán giá trị đầu ra của mạng Feed ForWard
− So sánh với giá trị đầu ra mong muốn tương ứng với từng kí tự và tính toán lỗi
− Truyền ngược giá trị từ đầu và với mỗi liên kết điều chỉnh trọng số liên kết
Bước 6: Chuyển sang kí tự tiếp theo và lặp lại “6” cho tới khi hết các kí tự
Bước 7: Tính toán trung bình lỗi cho tất cả các kí tự
Bước 8: Lặp lại từ bước 6 đến 8 cho tới khi đạt số đưa vào của số lần lặp tối đa
− Với phạm vi lỗi đạt đến ngưỡng. Nếu như vậy thì bỏ lặp lại
− Ngược lại tiếp tục lặp lại
Sau khi huấn luyên mạng nơ ron chúng tôi đề xuất thuật toán 3.16 để nhận
dạng ảnh ký tự.
Thuật toán 3.16. Nhận dạng ảnh kí tự
Bước 1: Nạp file ảnh
Bước 2: Phân tích ảnh cho các dòng kí tự
Bước 3: Với mỗi dòng tách các kí tự liên tiếp
− Phân tích và xử lý ảnh kí tự cho việc ánh xạ vào một vectơ đầu vào
− Đưa giá trị vector đầu vào cho mạng nơ ron và tính toán giá trị đầu ra
− Chuyển đổi mã Unicode đầu ra từ nhị phân tới kí tự tương ứng và trả ra dưới dạng textbox vi lỗi đạt đến ngưỡng.
Hậu xử lý dữ liệu
Giai đoạn này làm nhiệm vụ chuyển đổi giá trị Unicode sang dạng ký tự tương ứng. Đây là giai đoạn sau cùng, giai đoạn này làm nhiệm vụ chuyển đổi giá trị sang dạng ký tự tương ứng và sắp xếp lại các ký tự dưới dạng văn bản theo dạng văn bản ban đầu.
3.4. Kết luận chương
Chương này đã mô tả chi tiết phương pháp phân tích ảnh CCCD để tách các trường thông tin yêu cầu. Đối với mặt trước dựa vào việc tìm trường Số CCCD chỉ chứa số mầu đỏ, còn ở mặt sau dựa vào phân tích cấu trúc bảng. Sau khi tiền xử lý dữ liệu đưa và hệ thống mạng nơron huấn luyện tìm ký tự trích xuất thông tin. Trong chương tiếp theo sẽ mô tả quá trình cài đặt và đánh giá kết quả thực nghiệm của giải pháp đưa ra trên tập ảnh CCCD thu thập được.
CHƯƠNG IV: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN
Trong chương này chúng tôi sẽ mô tả một cách chi tiết quá trình cài đặt thử nghiệm thuật toán, cũng như đánh giá các kết quả đạt được trên các bộ dữ liệu khác nhau. Dựa trên nội dung chi tiết về quy trình cũng như phương pháp, thuật toán đã trình bày ở chương 1,2 và 3 trong chương 4 này tiến hành xây dựng, cài đặt chương trình thử nghiệm. Sau khi thử nghiệm sẽ đưa ra nhận xét, so sánh và đánh giá kết quả nhận dạng ký tự rút trích thông tin từ động từ thẻ CCCD.
4.1. Xây dựng bộ dữ liệu
Chúng tôi xây dựng tập dữ liệu A có 100 ảnh CCCD được chụp hoặc quét hai mặt trước sau với độ phân giải 1024 dpi, kiểu ảnh màu. Các mẫu CCCD được lấy từ nhiều tỉnh thành khác nhau.Trong tập dữ liệu 100 ảnh CCCD gồm có 29 ảnh thẻ CCCD là nữ, 71 ảnh thẻ CCCD là nam, số ảnh thẻ CCCD được chụp từ máy chụp ảnh là 15 ảnh, số ảnh thẻ CCCD chụp từ điện thoại di động là 20 ảnh, số ảnh thẻ CCCD được quét từ máy quét là 65 ảnh.
Trong tập dữ liệu A gồm có 100 ảnh thẻ CCCD được chia thành hai tâp dữ liệu nhỏ tập gồm có tập A1 là 74 ảnh chuẩn, chụp, hoặc quét đúng kích thước, dữ liệu trong các ảnh đầy đủ. Tập A2 gồm có 26 ảnh là những ảnh chụp, quét không đúng chuẩn, không đúng kích thước, bị lem mực, mất màu sắc, bị mờ...vv.
Trong tập dữ liệu A1 (74 ảnh) chúng tôi chia ra gồm có 10 ảnh chụp bằng máy ảnh, 15 ảnh chụp bằng diện thoại di động, 49 ảnh quét bằng máy. Trong tập A1 chúng tôi tiếp tục phân ra làm hai tập dữ liệu nhỏ là tập dữ liệu ảnh CCCD nam là 50 ảnh và tập dữ liệu ảnh CCCD nữ là 24 ảnh. Trong 50 ảnh CCCD nam gồm có 10 ảnh chụp bằng máy ảnh, 15 ảnh chụp bằng diện thoại di động, 20 ảnh quét bằng máy, trong 24 ảnh nữ có có 4 ảnh chụp bằng máy ảnh, 5 ảnh chụp bằng diện thoại di động, 15 ảnh quét bằng máy.
Trong tập dữ liệu A2 (26 ảnh) chúng tôi tiếp tục phân ra làm hai tập dữ liệu nhỏ là tập dữ liệu ảnh CCCD nam là 21 ảnh và tập dữ liệu ảnh CCCD nữ 5
ảnh. Trong 21 ảnh CCCD nam gồm có 3 ảnh chụp bằng máy ảnh, 5 ảnh chụp bằng diện thoại di động, 13 ảnh quét bằng máy, trong 5 ảnh nữ có có 1 ảnh chụp bằng máy ảnh, 1 ảnh chụp bằng diện thoại di động, 3 ảnh quét bằng máy. Khi chụp bị mờ là 5 ảnh, số ảnh bị nhòe là 18 ảnh, số ảnh bị cong vênh là 1 ảnh , số ảnh bị biến dạng là 2 ảnh. Các trường thông tin tập A2 có thể bị lệch so với dòng chuẩn hoặc đè lên phần tiêu đề đã được in trước.
+ Nét chữ không đều nhau giữa các CCCD, trong cùng một CCCD có thể có chữ quá đậm hoặc quá mờ.
+ CCCD có thể bị ố, mờ, gãy, cong, biến dạng…
+ Ở mặt trước CCCD, trong một số trường hợp hoa văn nền khá rõ nét trong khi nét chữ lại quá mờ, khó có thể phân biệt đâu là nét chữ đâu là hoa văn nền, các dòng số CCCD, họ và tên, nơi trường trú...vv bị in lệch dòng như hình 4.1.
Hình 4.1 Ảnh mặt trước CCCD bị nhòe
+ Ở mặt sau CCCD trong khá nhiều trường hợp đặc điểm nhận dạng chữ quá nhỏ, bị mờ, bị lem mực, chữ viết dính liền không có khoảng cách, chữ in các dòng không đều, phần Ngày cấp hay bị in lệnh dòng.như hình 4.2.
Hình 4.2. Ảnh mặt sau CCCD bị nhòe
Hình 4.2. ảnh CCCD chụp bị mờ, không rõ, mất màu, vùng đặt điểm nhận dạng in lệch dòng.
+ Trong vùng dữ liệu, tập dữ liệu A2 có các vùng dữ liệu khác nhau như
:Vùng quê quán có 23 ảnh chiếm hai dòng 3 ành chiếm một dòng. Nơi cư trú 26/26 ảnh chiếm hai dòng. Đặt điểm nhận dạng có 4 ảnh một dòng 22 ảnh hai dòng. Vùng số CCCD có 14/26 ảnh bị in lệnh dòng.Vùng Họ và tên có 13/26 ảnh bị in lệnh dòng. Vùng Ngày sinh có 6/26 ảnh bị in lệnh dòng. Vùng Giới tính có 5/26 ảnh bị in lệnh dòng. Vùng Quốc tịch có 3/26 ảnh bị in lệnh dòng. Vùng Quê quán có 9/26 ảnh bị in lệnh dòng. Vùng Nơi cư trú có 20/26 ảnh bị in lệnh dòng. Vùng Ngày hết hạn có 4/26 ảnh bị in lệnh dòng. Vùng Đặt điểm nhận dạng có 14/26 ảnh bị in lệnh dòng. Vùng ngày cấp có 3/26 ảnh thẻ có bị in lệnh dòng.
Mặc dù CCCD được in theo mẫu chung nhưng vẫn có sự khác nhau giữa các đơn vị cấp về kích thước kiểu chữ, vị trí tương đối giữa các trường thông tin có sự khác nhau.