Xử lý dữ liệu (phân tích ảnh)

Một phần của tài liệu Nghiên cứu mạng nơron nhân tạo và ứng dụng vào bài toán nhận dạng ảnh ký tự (Trang 49)

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).

3.2.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 của hàng tìm thấy (0, giới hạn trên).

4. Quét đến hết chiều rộng của ảnh trên một giá trị y của ảnh.

 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.

50

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 3.2: Quá trình tách dòng kí tự

3.2.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.

 Nếu phát hiện điểm đen đánh dấu x là phía trái của kí tự.

Ảnh đầu vào

Quá trình tách dòng

Giới hạn trên Gới hạn dƣới

51 (adsbygoogle = window.adsbygoogle || []).push({});

 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 3.3: Quá trình tách kí tự

3.2.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

x y Quá trình tách kí tự (0,0) Giới hạn phải kí tự Giới hạn trái kí tự

52

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

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

Quá trình tìm giới hạn Giới hạn trên ký tự Giới hạn dƣới ký tự

53

Hình 3.4: Quá trình tìm giới hạn kí tự

3.2.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. (adsbygoogle = window.adsbygoogle || []).push({});

Á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.

0 15 0 10 (0,0) (10,15)

54

Hình 3.5: Quá trình chia lưới kí tự

Để đƣa giá trị vào mạng nơron 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 3.6: Quá trình ánh xạ từ ma trận điểm sang ma trận giá trị

3.2.3. Huấn luyện mạng nơron

Một mạng nơron đã đƣợ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 nơron sẽ đọc giá trị đã đƣợc huấn luyện.

55

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). (adsbygoogle = window.adsbygoogle || []).push({});

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.

56

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.

57

Hình 3.7: Sơ đồ khối quá trình huấn luyện mạng nơron

S Đ Khởi tạo trọng số Các kí tự sẵn sàng Đ S Đọc đầu ra mong muốn Đ S Đ S Đ S BẮT ĐẦU Xây dựng mạng Nạp file huấn luyện Phân tích ảnh Phát hiện kí tự tiếp theo Các kí tự sẵn sàng ? Tính đầu ra của mạng Tính lỗi Các kí tự sẵn sàng ? Lỗi < ngƣỡng ? Số lần lặp =max epochs ? Tính trung bình lỗi Vector đầu vào tiếp theo KẾT THÚC

58

Một phần của tài liệu Nghiên cứu mạng nơron nhân tạo và ứng dụng vào bài toán nhận dạng ảnh ký tự (Trang 49)