TT Kí hiệu Nội dung
1 Tầng mạng
3 Chuyển tiếp nội dung
4 Kết hợp nội dung
5 Sao chép nội dung
Bảng 4.1 Các kí hiệu
Để giải thích rõ tại sao LSTM làm việc hiệu quả, tơi xin trình bày sơ qua về các thành phần trong mỗi khối mạng
Trạng thái của các khối mạng như một băng chuyền, nó chuyền từ khối này sang khối tiếp theo trong mạng. Gần như thơng tin ít bị thay đổi bởi ở các mắt xích chỉ tương tác tuyến tính.
Hình 4.0.4 Hình minh họa thơng tin được truyền đi
thiết bằng các cổng của nó, điều này được thực hiện bởi tầng mạng � ��� ��� và một phép nhân
Hình 4.0.5 Tầng mạng và phép nhân
Số lượng thơng tin có thể đi qua được quyết định bởi hàm số ������� , miền giá
trị của hàm ������� nằm trong khoảng [0,1]. Nếu là 0 thì khơng cho thơng tin đi qua, nếu là 1 nghĩa là cho tất cả thông tin đi qua
Để cho tiết hơn về LSTM sẽ đi sâu vào bên trong LSTM
Đầu tiên là đưa ra quyết định nhưng thông tin cần bỏ từ khối. Điều này được thực hiện bởi hàm �������, hay gọi với một tên khác là “tầng cổng quên”. Với đầu vào là ℎ�−1 và �� đi qua hàm �������, vậy kết quả của hàm ������� là một số thuộc [0, 1] quyết định lượng thơng tin đi qua.
Hình 4.0.6 Hình minh họa cổng qn
Sau khi quyết định thông tin đi qua cổng hay không thì bước tiếp theo sẽ là xem xét thơng tin nào sẽ lưu lại trong khối. Ở bước này được chia thành hai phần
• Sử dụng sigmoid để quyết định thông tin được cập nhật, biến đổi thông tin bằng cách sử dụng hàm tạo ra giá trị mới để cập nhật trạng thái.
• Sử dụng kết quả trên để cập nhật trạng thái của khối
Hình 4.0.7 Hình mơ tả cập nhật khối
�� = (((((((((((((((�. [ℎ�−1, ��] + ��)PT 5.2
�̃� = tanh (��. [ℎ�−1, ��] + ��)
Như vậy trạng thái ��−1 cũ trước đó được cập nhật thành trạng thái mới �� . Bằng cách nhân trang thái cũ với ft, bởi ft quyết định lượng thông tin sẽ quên, sau đó thêm thơng tin mới vào, tức là cộng thêm �� ∗ �̃� . Như vậy trạng thái mới phụ thuộc nhiều vào quyết định trước đó
Hình 4.0.8 Hình mơ tả q trình cập nhật trạng thái mới
Phương trình tương đương
�� = �� ∗ ��−1 +
�� ∗ �̃�
PT5.4
Mỗi một trạng thái của khối sẽ quyết định giá trị đầu ra, để xác định giá trị đầu ra cần thực hiện các bước sau
• Dùng tầng sigmoid để xác định thơng tin cần đưa ra từ khối, sử dụng hàm ���ℎ chuyển trạng thái tế bào về khoảng [-1, 1]
• Thực hiện phép nhân của kết quả thực hiện bởi hàm tanh ở trên với giá trị đầu ra
Tầng transcription là q trình chuyển mỗi kết quả dự đốn của RNN sang chuỗi dự đoán. Ở đây, transcription tìm nhãn với xác suất lớn nhất trên mỗi dự đoán trên mỗi frame. Trong thực tế tồn tại hai mơ hình để thực hiện việc chuyển đổi từ xác suất dự đốn sang nhãn tương ứng, đó là lexicon-free và lexicon-based. Trong đó lexicon là một tập các chuỗi có nhãn cố định. Người ta sử dụng CTC cho quá trình đào đạo và q trình dự đốn, phương pháp này được đề xuất bởi Graves. Sau đây sẽ trình bày cơ bản về phương pháp này.
Phương pháp này bao gồm hai q trình là mã hóa và giải mã văn bản, quá trình từ chuỗi xác suất đưa ra chuỗi văn bản gọi là quá trình giải mã, bởi vì khơng giống q trình đào tạo là sử dụng mã hóa, khi đã biết nhãn của chuỗi trước đó. Q trình giả mã khác quá trình đào tạo ở chỗ chúng ta đã có một mơ hình đã được đào tạo và chúng ta sử dụng nó để nhận dạng văn bản khơng nhìn thấy trước đó, nghĩa là chúng dựa vào ma trận đầu ra của mạng để xác định chuỗi. Nhưng chúng ta chưa biết nhãn thực tế của nó, mà đang mong muốn mơ hình xác định nhãn đó. Nếu thử tất cả các trường hợp có thể nếu chỉ có một vài chuỗi cố định, nhưng thực tế thì khơng thể sử dụng cách này. Sử dụng một thuật tốn đơn giản nhưng nó cho kết quả tốt với thực tế, gồm hai bước sau
• Tìm chuỗi tốt nhất bằng cách lấy kí tự có xác suất cao nhất tại tầng frame
• Xóa bỏ nhưng tất cả nhưng “blank” từ chuỗi đó Ví dụ: Các kí tự là “a”, “b” và “-”(blank)
Nhìn vào hình dưới, giả sử có 5 đặc trưng chuỗi, áp dụng đường mã hóa tốt nhất từ ma trận, ở to kí tự phù hợp nhất là “a” tương tự với t1 , t2. blank có điểm số cao nhất tại t3 , và cuối cùng tại t4 là “b”. Như vậy kết quả nhận được là “aaa-b”, sau đó xóa bỏ đi nhưng kí tự lặp lại gần nhau thì kết quả đạt được là “a-b”, sau đó xóa bỏ đi blank kết quả sẽ thu được là “ab”. Vậy đầu ra của nhận dạng chuỗi là “ab”
Hình 4.0.10 Hình mình họa chọn các giá trị có xác suất cao nhất
Nhưng kết quả trên chỉ là một cách xấp xỉ, dễ dàng nhận được kết quả từ cách trên, tuy nhiên thuật toán xấp xỉ thường cho kết quả tốt với thực tế
4.6Hàm mất mát
Định nghĩa tập đào tạo là {{{{{{{{{{{{{{{ = {�� , �}}}}}}}}}}}}}}} trong đó �� là ảnh cho đào tạo, và �� là nhãn của ảnh tương ứng, hàm tối ưu là
� = − ∑ ((((((((((((((( � | ��)
��,,,,,,,,,,,,,,,� �� PT 5.7
Trong đó là chuỗi được sinh ra bởi recunrrent và convolution từ ��
Nhận thấy rằng đầu vào hàm mất mát của mạng là ảnh và nhãn là nội dung trên ảnh đó.
4.7Tóm tắt cấu trúc mơ hình
Kiểu Cấu hình
Transcription -
Bidirectional-LSTM hidden units:256 Bidirectional-LSTM hidden units:256
Map-to-Sequence - Convolution maps:512, k:2 × 2, s:1, p:0 MaxPooling Window:1 × 2, s:2 BatchNormalization - Convolution maps:512, k:3 × 3, s:1, p:1 BatchNormalization - Convolution maps:512, k:3 × 3, s:1, p:1 MaxPooling Window:1 × 2, s:2 Convolution maps:256, k:3 × 3, s:1, p:1 Convolution maps:256, k:3 × 3, s:1, p:1 MaxPooling Window:2 × 2, s:2 Convolution maps:128, k:3 × 3, s:1, p:1 MaxPooling Window:2 × 2, s:2 Convolution maps:64, k:3 × 3, s:1, p:1
Input W × 32 gray-scale image Bảng 4.2 Bảng các thành phần của mơ hình CRNN
4.7.1 Cách tạo dữ liệu và đào tạo
Như đề cập từ trước thành cơng của một mơ hình học máy hay học sâu phụ thuộc rất nhiều vào dữ liệu và chất lượng của dữ liệu. Đầu vào của mạng là một bức ảnh với độ cao cố định là 512, và nội dung của vùng ảnh đó.
Do hạn chế về dữ liệu và thời gian cũng như làm đa dạng dữ liệu, dữ liệu được chia thành hai phần là dữ liệu thật và dữ liệu sinh ra
4.7.2 Dữ liệu thật
Tận dụng dữ liệu đã gán nhãn của việc đào tạo mơ hình pixellink, ở đây sẽ có một chút thay đổi, bởi vì đầu vào của mạng là ảnh có chiều cao 512 và vùng nhãn là nội dung của vùng ảnh đó, nên sau khi cắt từng vùng ảnh từ ảnh gốc thì cần thay đổi kích thước vùng ảnh đó phù hợp với kích thước đầu vào.
Ví dụ về ảnh đầu vào và nhãn của của vùng đó Ảnh đầu vào:
Hình 4.0.11 Hình ví dụ ảnh đầu vào Nhãn của nó là: 459709241360
4.7.3 Dữ liệu sinh
Sử dụng các kỹ thuật xử lý ảnh để vẽ các nội dung lên một bức ảnh, nhưng quá trình này do muốn tạo sự đa dạng của dữ liệu đào tạo nên sử dụng thêm các kỹ thuật xử lý ảnh để tạo mẫu sao giống với dữ liệu thực tế nhất
Tổng số dữ liệu thật là 1000 ảnh
Dữ liệu sinh ra tự động trong lúc đào tạo với tỉ lệ xác suất dùng ảnh thật để đào tạo là 0.7, và tỉ lệ xác suất dùng ảnh sinh để đào tạo là 0.3, quá trình sinh tự động này tránh việc chiếm nhiều bộ nhớ, vì sinh ra bao nhiêu thì bấy nhiêu được đưa vào đào tạo.
Bên cạnh nhưng điểm lợi thế của q trình đào tạo cũng như dự đốn dự vào đầu vào là ảnh, nhưng bên cạnh đó mơ hình gặp một số hạn chế nhất định như các bài tốn với các phơng chữ khác nhau phải đào tạo dưới các phông tương ứng hoặc gần giống, nhưng lỗi thường gặp như dự đốn sai các kí tự có phân phối gần giống nhau như các cặp sau:
• Chữ cái “l” và số “1”
• Số “3” và số “8”
• Chữ “p” và chữ “q”
Những chữ cái trong các phơng khác nhau có phân phối gần nhau cũng thường bị nhầm, và chuỗi càng dài thì xác suất đúng tồn bộ chữ cái trong chuỗi đó bị hạn chế, nên đối với một số bài tốn thực tế ứng thì sau bước này cần phải chỉnh sửa thông tin để kết quả đạt được tốt hơn.
4.8 Kết luận chương
Trong chương 4 luận văn nghiên cứu về mạng nơ ron hồi quy xoắn, Convolution recurren neural network(CRNN) đây là mạng nơ ron sử dụng học sâu với sự kết hợp của DCNN và RNN tạo nên cấu trúc CRNN với các lợi thế hơn các cấu trúc khác:
- Có thể học trực tiếp chuỗi mà khơng cần chính xác vị trí của các phần tử trong chuỗi.
- Có thể trích xuất trực tiếp các đặc trưng từ ảnh không yêu cầu xử lý thủ công cũng như tiền xử lý.
- Có tính chất RNN có thể sinh ra một chuỗi của các đối tượng.
- Không bị ràng buộc bởi độ dài của chuỗi, chỉ yêu cầu chuẩn hóa về chiều cao trong cả hai quá trình đào tạo và kiểm tra.
CHƯƠNG 5: CÀI ĐẶT THỬ NGHIỆM VÀ KẾT QUẢ
Trong chương này của luận văn sẽ mô tả một cách quá trình cài đặt thử nghiệm thuật tốn, cũng như kết quả đạt được trên các bộ dữ liệu khác nhau.
5.1 Bài toán
Xây dựng chương trình cài đặt thử nghiệm, chương trình cho phép người dùng tải lên hình ảnh mặt trước của chứng minh thư nhân dân. Chương trình sẽ bóc tách các thơng tin trên chứng minh thư sử dụng học sâu với các thông tin:
- Số Chứng minh thư nhân dân - Họ và tên
- Ngày sinh
- Địa chỉ thường trú
Mục đích của chương trình này là hỗ trợ việc số hóa thơng tin trên chứng minh thư nhân dân sử dụng các thuật toán học sâu.
5.2Mơ hình giải quyết bài tốn
Giai đoạn tiền xử lý nhằm tăng độ chính xác của hệ thống nhận dạng. Vì khi quét ảnh thường gặp các loại nhiễu, kích thước ảnh khơng đồng nhất, hình ảnh khơng được chụp trực diện... Nên ở bước này sẽ tiến hành chuẩn hóa lại kích thước hình ảnh đầu vào, khử nhiễu để tăng độ chính xác cho thuật tốn.
Bước 2. Trích chọn đặc trưng
Để thực hiện trích chọn đặc trưng, hệ thống sử dụng thuật tốn Pixel Link để thực hiện việc chọn đặc trưng của hình ảnh đưa vào vào phần mềm.
Vì mỗi đối tượng đều có một đặc điểm riêng nên ở bước này sẽ giúp ta trích chọn được những đặc tính riêng đó để phục vụ cho bước nhận dạng phía sau.
Bước 3. Nhận dạng
Để nhận dạng phần mềm sử dụng học sâu với CRNN để thực hiện nhận dạng ký tự trong ảnh đặc trưng.
Sau khi mẫu dữ liệu đã qua các bước tiền xử lý và trích chọn đặc trưng, dựa vào giá trị các tham số thu được khi huấn luyện ta sẽ sử dụng thuật toán CRNN để thực hiện việc việc xác định và nhận dạng các ký tự trong đó.
5.3Mơi trường cài đặt
Thuật tốn thử nghiệm được cài đặt bằng ngơn ngữ lập trình Python [10] [11] [12] (Microsoft Visual Studio), sử dụng thư viện xử lý ảnh Opencv cho việc đọc/ghi ảnh và các thao tác xử lý ảnh cơ bản.
Chương trình được thử nghiệm trên máy laptop Geforce GTX 1060, core i5, bộ nhớ RAM 8,0 GB.
5.4Dữ liệu kiểm thử
Chương trình được thử nghiệm trên tập 100 ảnh CMND được quét với độ phân giải 300dpi, kiểu ảnh mầu. Các mẫu CMND được lấy từ nhiều tỉnh thành khác nhau qua mạng internet, các đơn vị cấp CMND khác nhau. Mặc dù CMND được in
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, …
5.5Kết quả thực nghiệm
Phần mềm được cài đặt và chạy thử nghiệm với các kết quả:
KẾT LUẬN
Q trình hồn thành luận văn, tơi đã nghiên cứu được nhiều kiến thức cũng như quá trình xây dựng một mơ hình học sâu, từ q trình tạo thu thập dữ liệu, đến quá trình đào tạo mơ hình và đánh giá mơ hình. Học sâu là một lĩnh vực đang phát triển mạnh mẽ cùng với sự đầu tư nghiên cứu của các nhà khoa học, bài báo liên đến kỹ thuật OCR được chú ý nhiều, qua đó giúp tơi học được cách tiếp cận cũng như cập nhật kiến thức một cách nhanh chóng và liên tục.
Qua q trình nghiên cứu tơi đã thí nghiệm bóc tách thơng tin từ chứng minh thư khi sử dụng mơ hình học sâu, tơi nhận thấy đã đạt được một số kết quả chính sau:
+ Nắm bắt được các bước chính trong một hệ thống xử lý ảnh, hiểu được các khái niệm xử lý ảnh với các thuật tốn học sâu. Thấy được vai trị quan trọng của học sâu trong xử lý ảnh đối với một hệ nhận dạng, đó là bước tiền xử lý nhằm nâng cao chất lượng của nhận dạng.
+ Tìm hiểu và tổng quát hố các phương pháp phân tích ảnh tài liệu, cũng như nắm được các ưu nhược điểm của từng phương pháp. Từ đó đưa ra được các giải pháp cho bài toán đặt ra trong luận văn.
+ Đã áp dụng thành cơng các kiến thức tìm hiểu được vào cài đặt thử nghiệm chương trình phân tích ảnh CMND. Kết quả của chương trình đạt được là tốt và có thể áp dụng vào thực tế.
Tuy nhiên, do thời gian làm luận văn hạn chế, trong khi khối lượng công việc lớn nên còn nhiều vấn đề tồn tại chưa được giải quyết:
+ Một số trường hợp các có thể bị mất một phần thơng tin hoặc coi nhiễu như một phần thơng tin của trường. Thuật tốn chỉ thất bại trong trường hợp các trường thông tin in/dập vào CMND bị lệch một góc đánh kể so với các dịng in sẵn trong CMND.
+ Chương trình mới dừng lại ở bước thử nghiệm, chưa phải là một chương trình hồn chỉnh, đầy đủ các tính năng.
+ Thuật tốn mới chỉ dừng lại ở việc phân tích ảnh CMND, chưa khái q hố cho các ảnh thẻ bất kỳ.
Hướng phát triển tiếp theo là, tiếp tục nghiên cứu hồn thiện chương trình để có thể áp dụng vào thực tế. Mở rộng các tính năng của chương trình (như thêm phần nhận dạng, kiểm lỗi chính tả) để thành một chương trình hồn chỉnh. Khái qt hố thuật tốn để có thể xử lý được ảnh thẻ khác.
TÀI LIỆU THAM KHẢO
[1] Youngmin Baek, Bado Lee, Dongyoon Han, Sangdoo Yun, Hwalsuk Lee.
Character Region Awareness for Text Detection. 2019.
[2] Zhi Tian, Weilin Huang, Tong He, Pan He, Yu Qiao. Detecting Text in
Natural Image with Connectionist Text Proposal Network. 2016.
[3] Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott
Reed, Cheng-Yang Fu, Alexander C. Berg. SSD: Single Shot MultiBox
Detector. 2015.
[4] Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi. You Only
Look Once: Unified, Real-Time Object Detection. 2015.
[5] Dan Deng, Haifeng Liu, Xuelong Li, Deng Cai. PixelLink: Detecting Scene
Text via Instance Segmentation. 2018.
[6] Chengquan, Zhang. Multi-oriented Text Detection with Fully Convolutional
Networks. 2016.
[7] Abhinav Shrivastava, Abhinav Gupta, Ross Girshick. Raining Region-
based Object Detectors with Online Hard Example Mining. 2016.