2.3.1. Thiết kế mạng nơron
Mạng nơron nhân tạo là một mô phỏng xử lý thông tin, đƣợc nghiên cứu ra từ hệ thống thần kinh của sinh vật, giống nhƣ bộ não để xử lý thông
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
tin. Nó bao gồm số lƣợng lớn các mối gắn kết cấp cao để xử lý các yếu tố làm việc trong mối liên hệ giải quyết vấn đề rõ ràng. Mạng nơ-ron nhân tạo giống nhƣ con ngƣời, đƣợc học bởi kinh nghiệm, lƣu những kinh nghiệm hiểu biết và sử dụng trong những tình huống phù hợp.
Mỗi nơron là một đơn vị xử lý thông tin của mạng nơron, đồng thời là yếu tố cơ bản để cấu tạo nên mạng. Đây là hƣớng tiếp cận hiện đại và tỏ ra ƣu việt hơn các cách tiếp cận trên. Nó cho phép chƣơng trình ghi nhớ mẫu rất tốt sau một số lƣợt học. Ngay cả khi đầu vào có lỗi, chƣơng trình vẫn có thể tìm ra đƣợc kết quả phù hợp.
Luận văn đề cập đến hƣớng tiếp cận nhận dạng kí tự bằng mạng Back Propagation.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Trong đề tài này, tôi đã tạo một mạng nơron có 3 tầng. Số phần tử nơron trên mỗi tầng phụ thuộc vào ngƣời dùng lựa chọn. Thông thƣờng, có một tầng input, một tầng output và một tầng hidden.
Trên tầng input có 35 phần tử nơron. Có nghĩa là mỗi một ảnh đƣợc nhận dạng bởi 35 điểm ảnh đặc trƣng. Kích thƣớc của ảnh phụ thuộc vào chiều cao và độ rộng của kí tự. Cuối cùng, tất cả các ảnh cần nhận dạng đƣợc trích rút đặc trƣng và đƣa về kích thƣớc chuẩn: M*N.
Số nơron trên tầng hidden tùy thuộc vào lựa chọn của ngƣời dùng. Nó có thể lấy giá trị từ 10 đến 1000 hoặc nhiều hơn. Nhƣng để lấy đƣợc kết quả tốt nhất chúng ta phải thực hiện phƣơng pháp thử và sửa sai.
Trên tầng output có 10 phần tử nơron. Mỗi một nơron tƣơng ứng với các số từ 0 đến 9.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
2.3.2. Lƣợc đồ huấn luyện mạng
Hình 2.14: Lược đồ thuật toán huấn luyện mạng
- Tạo mạng nơron tƣơng ứng với các thông số đầu vào. - Giá trị các trọng số đƣợc khởi tạo ngẫu nhiên.
- Sau khi xây dựng đƣợc mạng, chúng ta phải xử lý ảnh đầu vào. Ở đề tài này bao gồm: Loại bỏ nhiễu và chuyển đổi sang ảnh nhị phân.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
- Lấy mẫu đầu tiên.
- Phân tích mẫu đầu vào và phân tách mẫu này thành các mảng tuyến tính. - Thiết lập tổng số lỗi = 0
- Huấn luyện mẫu đó.
- Tính toán lỗi sau khi huấn luyện.
- Cộng giá trị lỗi cho mỗi nơron rồi cộng vào tổng lỗi. - Nếu mẫu kế tiếp sẵn sang thì load tiếp và lặp lại bƣớc 6.
- Nếu không còn mẫu nào nữa thì tính toán MSE (Mean Square Error). - Nếu MSE <= Threshold thì dừng lại.
- Nếu MSE > Threshold thì kiểm tra số lần lặp có thể. - Nếu số lần lặp <> Maximum Epoch thì lặp lại bƣớc 4. - Nếu số lần lặp = Maximum thì dừng lại.
2.3.3. Thuật toán BackPropagation[9]
BackPropagation là một phƣơng pháp phổ biến đƣợc dùng để huấn luyện mạng nơron làm thế nào để thực hiện mục đích. Trong đề tài này tôi sử dụng cách huấn luyện có giám sát.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Hình 2.15: Lược đồ thuật toán BackPropagation.
Khởi tạo trọng số.
-Giá trị của trọng số liên kết giữa các nơron đƣợc khởi tạo ngẫu nhiên.
Feed Fordward:
-Mỗi nơron trên mỗi tầng đƣợc tính tổng trọng số của các tín hiệu vào. -Sử dụng hàm activation để tính giá trị ra từ nơron.
Tổng trọng số của các tín hiệu đầu vào
Khởi tạo trọng số
Thông tin lỗi đƣợc tính Bắt đầu
Cập nhật giá trị trọng số
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Back Propagation của lỗi. -Thông tin lỗi đƣợc tính.
-Ta sử dụng giá trị này để tính toán thông tin lỗi trên mỗi nơron còn lại.
Cập nhật giá trị trọng số.
-Chúng ta sử dụng thông tin lỗi trên mỗi node để tính toán và cập nhật lại giá trị mới cho trọng số liên kết giữa các nơron.
2.3.4. Nhận dạng và đƣa vào cơ sở dữ liệu
* Thuật toán: Các bƣớc cơ bản trong giai đoạn nhận dạng có thể đƣợc
tóm tắt qua một số bƣớc sau:
Lựa chọn ảnh mà ta mong muốn nhận dạng.
Phân tích ảnh thành các dòng và ánh xạ ảnh sang mảng các kí tự.
Mỗi dòng lại đƣợc phân tách ra thành các kí tự riêng biệt: + Điều chỉnh lại kích thƣớc thành M*N
+ Phân tích và xử lý ảnh kí tự để ánh xạ sang một vector. + Đƣa vào mạng nơron và tính toán output.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Hình 2.16: Lược đồ thuật toán nhận dạng kí tự
CHƢƠNG 3: CHƢƠNG TRÌNH THỬ NGHIỆM 3.1. Huấn luyện
3.1.1. Lựa chọn mẫu
Chƣơng trình nhận dạng các kí tự chữ số viết tay đƣợc thu nhận qua máy quét có thể có nhiều kí tự trên nhiều hàng khác nhau.
Luận văn đi xây dựng chƣơng trình thử nghiệm áp dụng thuật toán BackPropagation để nhận dạng chữ số phục vụ cho việc nhập điểm tự động.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Xây dựng lớp kí tự số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Do một số kí tự chữ số chỉ khác nhau về mặt kích thƣớc, đối với những kí tự này ta có thể xét thêm kích thƣớc của chữ số.
Bƣớc đầu thử nghiệm, đi xây dựng bộ mẫu dữ liệu là các chữ số viết tay của các Giảng viên trong trƣờng Cao đẳng Cộng Đồng Bắc Kạn. Các tập mẫu đƣợc dùng để huấn luyện chính là các chữ số viết tay của các giảng viên trong trƣờng. Việc thu thập mẫu chữ viết tay của các giảng viên trong trƣờng đƣợc thực hiện bằng cách sử dụng máy quét.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
3.1.2. Kết quả huấn luyện
Tập dữ liệu huấn luyện sau khi qua các khâu tiền xử lý và trích chọn đặc trƣng sẽ đƣợc đƣa vào mạng nơron. Sau khi kết thúc quá trình huấn luyện, hệ thống sẽ lƣu lại giá trị các tham số để phục vụ cho việc nhận dạng sau này để ra kết luận từ bộ dữ liệu mẫu đƣa vào thu đƣợc bao nhiêu tham số dựa trên mạng.
3.2. Nhận dạng chữ số
* Quy trình hệ thống nhận dạng:
Đầu tiên, một tập dữ liệu huấn luyện gồm những chữ số viết tay đƣợc đọc vào chƣơng trình. Mỗi mẫu trong tập dữ liệu huấn luyện đã đƣợc gán giá trị tƣơng ứng với các số từ 0 đến 9. Sử dụng phƣơng pháp ngƣỡng toàn cục và phƣơng pháp xác định ngƣỡng của Otsu để xác định ngƣỡng và chuyển đổi ảnh xám sang ảnh nhị phân.
Sử dụng bộ lọc trung vị để loại bỏ nhiễu. Việc sử dụng bộ lọc trung vị để lọc nhiễu là phƣơng pháp hiệu quả và đƣợc áp dụng rộng rãi. Sau khi lọc nhiễu sử dụng phƣơng pháp Projection Hozirontal để thực hiện tách dòng và trích rút vùng dữ liệu cần lấy.
Sau khi huấn luyện, ta có thể tiến hành thử nghiệm nhận dạng số viết tay. Chức năng nhận dạng số viết tay đƣợc xây dựng gồm 3 vùng chính: vùng viết số (sử dụng chuột máy tính), vùng biểu đồ hiện thị kết quả phân lớp, vùng kết quả nhận dạng tìm đƣợc.
* Chức năng nhận dạng phiếu điểm gồm 3 công đoạn: - Chọn phiếu điểm: Lựa chọn phiếu điểm cần nhận dạng.
- Xử lý phiếu điểm: Loại bỏ nhiễu trên ảnh phiếu điểm, trích chọn vùng hiển thị điểm trên ảnh.
- Nhận dạng: Sử dụng phƣơng pháp Projection Hozirontal đã tạo để nhận dạng điểm trên phiếu.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
3.3. Phân tích và lựa chọn công cụ 3.3.1. Phân tích và chọn công cụ 3.3.1. Phân tích và chọn công cụ
a. Phân tích và chọn công cụ
Sau khi đã có ảnh của phiếu điểm đƣợc quét đúng cách, việc nhận dạng phiếu điểm thực hiện lần lƣợt các bƣớc nhƣ sau:
- Tiền xử lý: Ảnh của phiếu điểm sau khi quét thƣờng có nhiễu, một phần nhiệm vụ của bƣớc này sẽ là lọc nhiễu. Sau đó ảnh phải đƣợc biến đổi về ảnh nhị phân để tạo điều kiện cho phân đoạn ở bƣớc tiếp theo.
- Phân đoạn và trích chọn đặc trƣng: Tách ảnh đã qua tiền xử lý thành các hàng, mỗi hàng bao gồm các cột. Sau đó từ các cột sẽ tách ra kí tự cần nhận dạng, rồi trích chọn đặc trƣng của nó.
- Huấn luyện và nhận dạng: Xây dựng các support vector nhận dạng từ các phiếu điểm. Trƣớc khi nhận dạng, quá trình huấn luyện đƣợc thực hiện trƣớc dựa trên một tập mẫu có sẵn.
- Hậu xử lý: Tổng hợp các kí tự đƣợc nhận dạng riêng lẻ thành dữ liệu để cập nhật vào cơ sở dữ liệu
Chƣơng trình đƣợc phát triển trên hệ điều hành Windows, lập trình bằng công cụ Visual C#. Mẫu nhận dạng đƣợc thu thập từ các văn bản in, viết tay và quét vào bằng máy quét ảnh với các kích cỡ và định dạng khác nhau, thiết kế chƣơng trình theo thuật toán đã nghiên cứu.
b. Chuẩn hoá dữ liệu
- Input: Tập dữ liệu huấn luyện gồm các chữ số từ 0 đến 9, các phiếu điểm. - Output: Nhận dạng giá trị điểm trên các phiếu điểm.
Tập dữ liệu huấn luyện: là ảnh của những chữ số viết tay đã đƣợc nhị phân hóa, có kích thƣớc M*N
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Hình 3.1: Một mẫu dữ liệu huấn luyện mạng
Phiếu điểm cần nhận dạng: Là những ảnh scan của các phiếu điểm đang đƣợc sử dụng tại trƣờng Cao Đẳng Cộng Đồng- Bắc Kạn.
3.3.2. Chƣơng trình thử nghiệm
Sau khi xây dựng phân lớp giữa các chữ số từ 0 đến 9, ta tiến hành nhận dạng với bộ dữ liệu test gồm 500 chữ số. Kết quả nhƣ sau:
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Hình 3.3: Ấn nút học mạng, bắt đầu quá trình học
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Hình 3.5: Tiến hành nhận dạng, chọn ảnh thử nghiệm
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Hình 3.7: Kết quả nhận dạng
Với bộ dữ liệu này, chƣơng trình nhận dạng ra 95% giá trị trùng với giá trị của ảnh.
Ở đây các tập mẫu đƣợc dùng để huấn luyện chính là các chữ số viết tay của các giảng viên trong trƣờng. Việc thu thập mẫu chữ viết tay của các giảng viên trong trƣờng đƣợc thực hiện bằng cách sử dụng máy quét.
Sau khi đã thu thập mẫu, ta xây dựng mạng nơron và huấn luyện mạng dựa trên mẫu đã thu thập đƣợc. Việc huấn luyện mạng đã đƣợc tôi thiết kế thành một module riêng trong chƣơng trình cho phép ngƣời dùng tạo các kiểu mạng nơron theo kiến trúc khác nhau.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
PHẦN KẾT LUẬN
Việc sử dụng mạng nơron cho quá trình nhận dạng làm công việc nhận dạng đơn giản đi rất nhiều và độ chính xác cũng cao (có thể nói đạt tới 100%) nếu đƣợc nhận dạng các mẫu đã đƣợc học. Hơn nữa việc sử dụng mạng nơron còn có thể nhận dạng đƣợc những mẫu mang tính chất gần giống kiểu với những chữ đã lấy mẫu.
Một trong những ƣu điểm tuyệt vời của việc sử dụng mang nơron đó là nhanh chóng đƣa ra quyết định. Không phải duyệt và so sánh đối với dữ liệu mẫu trong CSDL, điều này làm tăng tốc độ nhận dạng của chƣơng trình.
Chƣơng trình hoàn toàn có thể ứng dụng vào thực tế. Bởi theo tôi đƣợc biết hiện tại trong trƣờng đang phải nhập dữ liệu bằng tay. Điều này thực sự khó khăn đối với những giáo vụ hoặc là các môn mà thi tập trung, việc nhập điểm có thể lên tới hàng nghìn sinh viên.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
KẾT LUẬN VÀ KIẾN NGHỊ
I. Những kết quả chính của luận văn
1. Luận văn trình bày một số những hiểu biết về quản lý và nhập tự động, quy trình thực hiện của hệ thống nhập điểm tự động.
2. Luận văn khai thác các Kỹ thuật nhận dạng chữ số dựa vào mạng nơron trong nhập điểm tự động.
3. Khai thác Kỹ thuật nhận dạng chữ số dựa vào mạng nơron trong nhập điểm tự động.
II. Hƣớng phát triển tiếp theo của luận văn
1. Tích hợp thêm các thuật toán nâng cao chất lƣợng ảnh nhằm tăng khả năng phát hiện nhận dạng chữ số trong nhập điểm tự động.
2. Cài đặt các phƣơng pháp nhận dạng chữ số dựa vào mạng nơron trong nhập điểm tự động.
3. Thực hiện phát hiện nhận dạng chữ số dựa vào mạng nơron trong nhập điểm tự động trên mọi loại ảnh văn bản.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
TÀI LIỆU THAM KHẢO Tài liệu Tiếng Việt
[1]. Đỗ Năng Toàn, Phạm Việt Bình (2007), Giáo trình xử lý ảnh, NXB KH kỹ thuật.
[2]. Đỗ Năng Toàn, Phạm Văn Dũng, Phạm Việt Bình (2005), “Ứng dụng chu tuyến trong phát hiện gúc nghiêng văn bản”, Kỷ yếu Hội thảo Quốc gia lần thứ 7 - Một số vấn đề chọn lọc của Công nghệ Thông tin và Truyền thông, Đà Nẵng 18-20/08 /2004, Nxb KH&KT, Hà Nội 2005, 432-441.
[3]. Đỗ Năng Toàn, Ngô Quốc Tạo, Một số phương pháp nâng cao hiệu quả nhận dạng phiếu điều tra dạng dấu phục vụ cho thiết kế hệ nhập liệu tự động markread, Tạp chí Tin học và Điều khiển học, Tập 15, số 4, năm 1999. [4]. Lƣơng Mạnh Bá, Nguyễn Thanh Thuỷ (1999), Nhập môn xử lý ảnh số, NXB Khoa học kỹ thuật.
[5]. Nguyễn Đình Thúc (2000), Mạng nơron phương pháp và ứng dụng, NXB Giáo dục.
Tài liệu Tiếng Anh
[6]. Pelin CORGEL, Oguzhan OZTAS, Handwritten character recognition system using artificial Neural Networks, Computer Engineering Department, Engineering Faculty, Istanbul University, Avcilar, Istanbul, TURKEY
[7]. U.-V. Marti and H. Bunke, Text Line Segmentation and word recognition in a system for general writer Independent Handwriting Recognition, IEEE (February 5, 2001).
[8]. Wojciech Kacalak, New methods for handwriting recognition using artificial neural networks, Technical university of Koszalin, Department of Mechanical Engineering, Raclawicka 15-17, 75-620 Koszalin,Poland.