Quá trình phân tích ảnh để tìm ra đặc tính của kí tự bởi việc kiểm tra điểm ảnh nó là giá trị đầu vào cho cả quá trình huấn luyện và quá trình kiểm tra. Quá trình phân tích này dựa trên việc nhận dạng từ ảnh đầu vào bằng phương pháp tính giá trị màu. Giới hạn của giá trị là điểm đen RGB(0,0,0) hoặc điểm trẳng
RGB(255,255,255). Những ảnh đầu vào được định dạng bitmap(*.bmp). 2.3.2.1. Tách dòng kí tự.
Sự liệt kê các dòng của kí tự trong một ảnh kí tự hay một trang văn bản là một trong yếu tố quan trọng trong quá trình tìm giới hạn của kí tự, khi tìm giới hạn của kí tự tiếp theo chúng ta không cần quét trên toàn bộ ảnh.
Thuật toán:
1. Bắt đầu từ điểm ảnh x, y đầu tiên (0,0), và đặt là dòng 0. 2. Quét đến hết chiều rộng của ảnh trên một giá trị y của ảnh.
3. Nếu là phát hiện điểm đen thì lưu giá trị y là đỉnh của hàng đầu tiên:
Nếu không xét tiếp điểm tiếp theo.
Nếu không thấy điểm đen nào thì tăng y và khởi động lại x để quét dòng ngang tiếp theo.
Bắt đầu từ đỉnh cuả hàng tìm thấy (0,giới hạn trên).
Nếu không phát hiện điểm đen nào thì đánh dấu giá trị y-1 là giới hạn dưới của hàng. Và tăng số dòng, xét dòng tiếp theo.
Nếu vẫn phát hiện thấy điểm đen tăng y và khởi động lại x xét hàng ngang tiếp theo.
5. Bắt đầu từ giới hạn dưới của hàng ngang tìm thấy sau cùng lặp lại từ bước 1 đến bước 4 tìm dòng kế tiếp.
6. Nếu y bằng chiều cao của ảnh thì dừng.
Hình 2.2: Quá trình tách dòng kí tự
2.3.2.2. Tách kí tự.
Thuật toán
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. 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.
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ự) .
4. Quét đến giới hạn dưới của dòng, giữ nguyên x.
Ảnh đầu vào Quá trình tách dòng Giới hạn trên Gới hạn dưới
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.
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).
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 2.3: Quá trình tách kí tự
2.3.2.3. Tìm giới hạn kí tự.
Trong một số trường hợp quá trình tách kí tự có thể không phải là giới hạn thực tế của kí tự. Ở đây xuất hiện vấn đề không sắp xếp kí tự theo quy luật như sắp xếp dòng kí tự. Tức là đỉnh của một hàng không tất yếu là đỉnh của tất cả và tương tự đáy của của một hàng cũng không là đáy của tất cả các kí tự trên một dòng. Từ đây cần có một thủ tục tìm giới hạn kí tự. Thuật toán x y Quá trình tách kí tự (0,0) Gới hạn phải kí tự Gới hạn trái kí tự f
1. Bắt đầu từ đỉnh của dòng hiện thời và bên trái của kí tự. 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.
3. Bắt đầu từ giới hạn dưới của dòng và bên trái của kí tự. 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.
Hình 2.4: Quá trình tìm giới hạn kí tự Quá trình tìm giới hạn Gới hạn trên ký tự Gới hạn dưới ký tự
2.3.2.4. Ánh xạ vào ma trận
Bước tiếp theo là ta phải ánh xạ ảnh của kí tự vào một ma trận nhị phân hai chiều tương ứng. Một việc rất quan trọng ở đây là việc quyết định cỡ của ma trận. Nếu các điểm ảnh của kí tự được ánh xạ vào ma trận. tuy nhiên việc này dẫn đến việc xử lý các ma trận rất lớn. Để cho cân bằng hợp lý ta sẽ chuẩn hóa cỡ của ma trận bằng 10x15 với 150 phần tử.
Thuật toán:
1. Đối với chiều rộng:
Khởi tạo với 10 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 (10,y) của ma trận.
Chia nhỏ chiều rộng thành 10 giá trị tương ứng. 2. Đối với chiều cao:
Khởi tạo với 15 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,15) của ma trận.
Chia nhỏ chiều cao thành 15 giá trị tương ứng.
Hình 2.5: Quá trình chia lưới kí tự
0 15 0 10 (0,0) (10,15)
Để đưa giá trị vào mạng neural ta cần chuyển ma trận điểm ảnh sang ma trận giá trị.
Thuật toán:
1. Bắt đầu từ phần tử (0,0).
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 2.6: Quá trình ánh xạ từ ma trận điểm sang ma trận giá trị.
2.3.3. Huấn luyện mạng neural.
Một mạng neural đã được xây dựng sẽ phải được huấn luyện trên một không gian đầu vào đã được chuẩn bị trước. Khi hoạt động mạng neural sẽ đọc giá trị đã được huấn luyện.
Một vài vấn đề cẩn thiết cho việc huấn luyện mạng:
Tại sao lại có sự khác nhau của không gian đầu vào? Môi một đầu vào khác nhau giá trị ngẫu nhiên và trong một phạm vi giới hạn không có giá trị luồng nào dự đoán được giữa các giá trị của nó.
Tại sao có sự phức tạp của các tham số cho việc huấn luyện mạng? Các tham số phức tạp là các kí tự thường thường bởi các đặc trưng chồng lấp và kích cỡ dữ liệu cao.
Cái gì cần được sử dụng cho những giá trị của : Tốc độ học.
Hệ số góc Sigmoid. Trọng số kết nối cơ sở.
Có bao nhiêu lần lặp cần thiết cho việc huấn luyện mạng của một tập đầu vào?
Giá trị ngưỡng của lỗi là bao nhiêu được sử dụng để so sánh tương phản trong việc xác định quá trình dừng của việc lặp lại nếu có nhu cầu xuất hiện.
Sự phức của các dữ liệu tham số riêng lẻ cũng là vấn đề khác trong quá trình nhận dạng. Mỗi một kí tự lại có một số lớn đặc tính phân biệt mà cần phải tính toán để nhận dạng nó một cách chính xác. Sự loại bỏ một số đặc tính có thể có kết quả của trong sự tương đồng của các mẫu. Sự tối thiểu của dữ liệu yêu cầu cho nó là một trong những phần phức tạp nhất của không gian đầu vào trong việc nhận dạng.
Thuật toán:
1. Xây dựng mạng tương ứng với mô hình tham số.
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à đầu ra mong muốn).
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. 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. 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.
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ự. 7. Tính toán trung bình lỗi cho tất cả các kí tự.
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.
Hình 2.7: Sơ đồ khối quá trình huấn luyện mạng neural