ĐẠI HỌC SÀI GÒN OF SAIGON UNIVERSITY
Số 75 (03/2021) No. 75 (03/2021)
Email: [email protected] ; Website: http://sj.sgu.edu.vn/
ỨNG DỤNG THUẬT TOÁN MẠNG NEURAL TÍCH CHẬP ĐỂ NHẬN DẠNG BÌA SÁCH
Application of convolutional neural network algorithm to recognize a complex book cover
ThS. Trần Hoàn(1), ThS. Hồ Nhựt Minh(2), TS. Văn Tấn Lượng(3)
(1),(3)Trường Đại học Công nghiệp thực phẩm TP.HCM
(2)Học viện Bưu chính Viễn thông, cơ sở tại TP.HCM
TÓM TẮT
Vấn đề lưu trữ thông tin số trong các thư viện sách hiện nay rất được quan tâm. Do số lượng đầu sách nhiều nên khi cần tra cứu cùng lúc sẽ gặp khó khăn. Do vậy, nếu có một chương trình tự động nhận dạng thông tin sách sẽ giúp người quản lý rất nhiều trong việc sắp xếp, quản lý sách thích hợp, cũng như giúp người đọc có thể tìm đến quyển sách một cách nhanh chóng. Nghiên cứu này đã đề xuất một phương pháp để trích xuất văn bản tự động từ bìa màu dựa trên các thuật toán tiền xử lý và thuật toán CNN. Kết quả cho thấy phương pháp đề xuất có thể phát hiện chính xác 97% văn bản đối với ảnh bìa có nền phức tạp hoặc màu kí tự gần trùng với màu nền. Phương pháp trên có tiềm năng cao trong việc ứng dụng lưu trữ thông tin sách tự động ở các thư viện sách hiện nay.
Từ khóa: bìa sách, mạng neural tích chập (CNN), nhận dạng kí tự, trích xuất vùng kí tự ABSTRACT
Nowadays, the issue of storing digital information in the book libraries is much-paid attention. It is challenging to lot people search at the same time since there are so many books in the library. Thus, if there is an automatic program to identify the book's information, this study could suggest an excellent way to manage the books appropriately in a library, as well as improve the readers to find the books quickly. In this study, a method to extract the text automatically from colourful covers is proposed according to pre-processing algorithms and convolutional neural network (CNN) algorithms. The effectiveness of the proposed method was verified by accurately detection capacity (approximately 97%) of the text for the cover images with their complex backgrounds or character colours. These methods are very potential to improve the automatic detection system in the library.
Keywords: book cover, convolutional neural network (CNN), optical character recognition (OCR), text region extraction
1. Giới thiệu
Ngày nay, sự tăng trưởng nhanh chóng về số lượng tài liệu trong các thư viện sách làm cho việc tìm kiếm ngày càng khó khăn hơn. Sự phức tạp của bìa tài liệu như màu chữ gần trùng với màu nền, các họa tiết
màu xen lẫn hoặc ảnh nền phức tạp làm cho việc tự động truy xuất thông tin liên quan từ các bìa tài liệu như tên tài liệu, tác giả, số chỉ mục, v.v. là một nhiệm vụ đầy thách thức. Ngoài ra, các yếu tố văn bản cũng gây thêm khó khăn không chỉ về màu
sắc, phông chữ và kích thước, mà còn ở sự liên kết và định hướng. Vì thế việc hướng tới phát triển một ứng dụng tự động nhận dạng tiêu đề sách để xây dựng kho dữ liệu thông tin số về nguồn tài liệu ở các thư viện sách được nhanh chóng và tiện lợi là một việc rất cần thiết.
Có rất nhiều phương pháp nhận dạng bìa sách đã được công bố. Các phương pháp nhị phân ảnh khác nhau đã được áp dụng để có được hình ảnh nhị phân đưa trực tiếp vào bộ nhận dạng ký tự quang học (OCR) có sẵn [1-3]. Tuy nhiên, do sự khác biệt nhiều về độ phân giải, điều kiện chiếu sáng, kích thước và kiểu phông chữ giữa văn bản trong hình ảnh tự nhiên và văn bản trong tài liệu được scan thông thường nên kết quả nhị phân ảnh thường khó nhận dạng được ký tự. Ngoài ra, việc mất thông tin trong quá trình nhị phân ảnh là gần như không thể phục hồi. Do đó, nếu kết quả nhị phân ảnh quá kém thì khả năng phát hiện chính xác văn bản là rất nhỏ.
Bên cạnh đó, thuật toán SIFT được đề xuất để trích xuất các đặc trưng quan trọng từ ảnh chụp biển số xe hay thuật toán Maximally Stable Extremal Region (MSER) được sử dụng với ảnh chụp cảnh tự nhiên [4, 5]. Hai giải thuật này đều sử dụng ảnh đầu vào chụp từ điện thoại và đạt được độ chính xác cao với ảnh có nền đơn hoặc màu kí tự khác biệt với màu nền. Tuy nhiên với ảnh có nền phức tạp hoặc có màu kí tự gần trùng với màu nền thì kết quả bị giảm độ chính xác rất nhiều.
Một giải thuật nhận dạng kí tự trong hình ảnh cảnh tự nhiên như ảnh bìa sách, biển báo đường, biển quảng cáo và hộp đóng gói đã được đề xuất [6]. Với giải thuật này, các kí tự được trích xuất tốt bằng phương pháp trích xuất và chọn thành phần được kết nối. Tuy nhiên, còn tồn tại một số
vùng mà trong đó văn bản và nền có màu tương tự hoặc văn bản nằm trong một nền phức tạp khó chuyển đổi ảnh hưởng đến hiệu quả của giải thuật. Ngoài ra, một hệ thống sử dụng Modest AdaBoost không đối xứng để phát hiện văn bản trong cảnh tự nhiên cũng được đề xuất [7]. Trong đó, 59 đặc trưng trên 16 thang không gian đã được trích xuất để tạo CART như một bộ phân loại yếu của Modest AdaBoost, nhờ đó nâng cao kết quả nhận dạng văn bản.
Bên cạnh đó, một phương pháp phân tách cảnh tự nhiên thành các thành phần nền và văn bản bằng cách sử dụng phân tích thành phần hình thái (MCA) được đề xuất [9].
Điều này sẽ làm giảm các tác động bất lợi của nền phức tạp lên kết quả phát hiện.
Ngoài ra, một mạng thần kinh đệ quy với mô hình chú ý (R2AM) được đề xuất để nhận dạng văn bản trong cảnh tự nhiên [10]. Tuy nhiên, những giải thuật này đều đòi hỏi một quá trình huấn luyện với lượng lớn bộ nhớ [8-10].
Trong bài báo này, các thuật toán tiền xử lý ảnh được đề xuất để làm tăng độ chính xác khi tách các phần ảnh chứa kí tự, loại bỏ ảnh hưởng của màu nền bìa sách phức tạp hoặc màu nền bìa trùng với màu kí tự. Sau đó kết hợp thuật toán CNN phân loại và nhận dạng các kí tự quang học để trích xuất thông tin cần thiết trên ảnh chụp bìa sách. Ngoài ra, giải thuật này cũng sẽ không bị hạn chế nhiều về tốc độ xử lý, hay đòi hỏi bộ nhớ lớn khi huấn luyện.
2. Giải thuật đề xuất
Lưu đồ giải thuật nhận dạng bìa sách được thể hiện trong Hình 1. Đầu tiên, bìa sách được scan hoặc chụp lại từ camera để làm ảnh đầu vào. Tiếp theo, ảnh bìa sách được hiệu chỉnh độ nghiêng để đảm bảo các hàng chữ không bị lệch so với lề chuẩn một góc bất kì. Sau đó, giải thuật tiền xử lý ảnh
và MSER được áp dụng để phân đoạn vùng chứa thông tin sách như tựa sách, tên tác giả… Cuối cùng, vùng kí tự này được tách thành những kí tự riêng lẻ và đem đi phân loại với thuật toán CNN để thu được thông tin bìa sách.
Ảnh bìa sách Hiệu chỉnh góc nghiêng Phân đoạn vùng
chứa văn bản
Phân loại CNN
Hình 1. Lưu đồ giải thuật nhận dạng bìa sách
2.1. Ảnh bìa sách
Giải thuật đề xuất được thực hiện trên Python 3.7.4. Ảnh bìa sách đầu vào là ảnh được tải lên từ cơ sở dữ liệu trong máy, hoặc là ảnh được chụp trực tiếp từ camera trong môi trường tự nhiên. Trong cả hai trường hợp, ảnh đầu vào đều là ảnh màu RGB và được resize lại với chiều cao là 1000 pixel để tăng tốc độ xử lý.
2.2. Hiệu chỉnh góc nghiêng
Do bìa sách khi scan không cẩn thận hoặc do góc nghiêng khi chụp ảnh, các hàng chữ có thể bị lệch so với lề chuẩn một góc bất kỳ. Điều này gây khó khăn trong việc tách chữ và nhận dạng chữ, đôi khi không thể tách được hoặc không nhận dạng được. Vì vậy, bước đầu tiên sau khi chọn ảnh đầu vào là hiệu chỉnh góc nghiêng.
Đối với bìa sách, chữ in trên đó thường có phương thẳng đứng, tức là cùng phương với gáy sách. Do đó, để hiệu chỉnh góc nghiêng của chữ, chúng tôi đề xuất
hiệu chỉnh góc nghiêng của đoạn thẳng dài nhất được tìm thấy trong ảnh, thường là gáy sách hoặc một phần cạnh gáy sách, cạnh của chữ hoặc cạnh của họa tiết trên bìa sách. Giải thuật được đề xuất ở Hình 2 có thể giải quyết vấn đề về hiệu chỉnh sai lệch góc nghiêng với độ chính xác 90%.
Chuyển ảnh màu RGB sang ảnh xám Phát hiện cạnh Phát hiện đoạn thẳng Tìm đoạn thẳng dài nhất Tìm góc của đoạn thẳng
Tìm góc cần xoay Xoay ảnh
Hình 2. Lưu đồ giải thuật hiệu chỉnh góc nghiêng
2.3. Phân đoạn vùng chứa văn bản Thuật toán MSER trong [5] được đề xuất để phân đoạn vùng chứa văn bản trên ảnh bìa sách đã hiệu chỉnh góc nghiêng. Về cơ bản, MSER sẽ trích xuất các vùng có màu sắc nhất quán và độ tương phản cao.
Tuy nhiên, thuật toán này chỉ chính xác khi màu kí tự khác biệt với màu nền hoặc màu họa tiết gần quanh kí tự. Do đó, để cải thiện kết quả, chúng tôi đề xuất sử dụng các thuật toán tiền xử lý ảnh để loại bỏ ảnh hưởng của màu sắc trên ảnh, với mục tiêu hướng tới là biến ảnh bìa sách thành ảnh trắng đen gồm các vùng trắng là vùng chứa chữ hoặc họa tiết kín, còn vùng đen là vùng chứa nền và các họa tiết hở. Quá trình phân đoạn ảnh được mô tả trong lưu đồ giải thuật ở Hình 3.
Chuyển ảnh màu sang ảnh xám Phát hiện cạnh Phép hình thái học
MSER Bộ lọc hình thái học
Nối các khung bao
Hình 3. Lưu đồ giải thuật phân đoạn vùng chứa văn bản
Trong thực tế, ngoài tựa sách và tên tác giả, bìa sách còn chứa thông tin của nhà xuất bản, số tái bản, các giải thưởng và nhận xét.v.v. Những thông tin này không cần thiết đối với mục tiêu trích xuất thông tin bìa sách để lập mục lục sách. Do đó, một bộ lọc dựa trên vị trí và kích thước của kí tự được chúng tôi đề xuất để loại bỏ các vùng chứa thông tin không cần thiết trên.
Để tăng cường độ chính xác khi nhận dạng kí tự, một thuật toán tách các kí tự nằm trên cùng một dòng trong khung giới hạn ở bước trên thành các kí tự riêng lẻ được đề xuất [8]. Sau đó, mỗi kí tự này được đặt ở trung tâm của khung vuông giới hạn nhỏ nhất, được chuyển thành ảnh xám và thay đổi kích thước về 28x28 pixel. Ảnh này được sử dụng làm đầu vào cho bộ phân loại CNN đã được huấn luyện nhận dạng để tìm ra kết quả nhận dạng kí tự cuối cùng.
2.4. Phân loại CNN
Bước cuối cùng là nhận dạng kí tự.
Trong bài báo này, thuật toán CNN được đề xuất sử dụng vì nó là một trong những mô hình Deep Learning tiên tiến giúp cho chúng ta xây dựng được những hệ thống thông minh với độ chính xác cao như hiện nay.
Mạng neural tích chập (CNN) điển hình bao gồm một hoặc nhiều khối lớp lấy mẫu (sampling layer), kèm theo sau đó là một hoặc nhiều lớp kết nối đầy đủ (fully connected layer) và một lớp đầu ra (output layer) như trong Hình 4.
Convolution Pooling Convolution Pooling
Input Convolution Pooling Fully Connected Output
Hình 4. Sơ đồ khối của một mạng CNN điển hình
Lớp tích chập (convolutional layer) là phần trung tâm của mạng CNN. Đối với ảnh tĩnh, sự tổ chức ở một phần bất kì của ảnh cũng giống như ở bất kì phần nào còn lại trên ảnh. Do đó, đặc trưng học được ở một khu vực ảnh có thể phù hợp với đặc trưng ở những khu vực còn lại. Trong một ảnh lớn, chúng tôi lấy một phần nhỏ và dịch chuyển nó qua tất cả các điểm trong ảnh lớn (đầu vào). Khi vượt qua bất kỳ một điểm nào, việc kết hợp chúng vào một vị trí duy nhất (đầu ra) đã được thực hiện. Mỗi phần nhỏ của hình ảnh đi qua hình ảnh lớn được gọi là bộ lọc (kernel). Các bộ lọc sau đó được cấu hình dựa trên kỹ thuật lan truyền ngược.
Hình 5. Lớp tích chập (convolutional layer) Lớp tổng hợp (pooling layer) làm giảm số lượng tham số được tính. Có nhiều kỹ thuật gộp khác nhau như gộp tối đa (max pooling), gộp chung (mean pooling), gộp trung bình (average pooling), v.v. Gộp tối
đa (max pooling) chiếm giá trị pixel lớn nhất của một vùng như trong Hình 6.
Hình 6. Phép gộp tối đa (max pooling) Phần cuối của mạng CNN về cơ bản là các lớp kết nối đầy đủ (fully connected layer) như mô tả trong Hình 7. Lớp này lấy đầu vào từ tất cả các neural ở lớp trước và thực hiện hoạt động với từng neural riêng lẻ trong lớp hiện tại để tạo đầu ra.
Hình 7. Lớp kết nối đầy đủ (fully connected layer)
Mô hình mạng CNN được chúng tôi đề xuất như trong Hình 8, bao gồm hai lớp tích chập (convolutional layer), hai lớp tổng hợp (pooling layer), và hai lớp kết nối đầy đủ (fully connected layer). Các lớp lớp tích chập (convolutional layer) có 32 bộ lọc (kernel) với kích thước 3x3, sử dụng hàm ReLU để kích hoạt các trọng số trong các node. Các lớp tổng hợp (pooling layer) có kích thước cửa sổ là 2x2. Lớp flatten chuyển từ tensor sang vector, cho phép đầu ra được xử lý bởi các lớp kết nối đầy đủ
(fully connected layer) tiêu chuẩn. Sau đó, mạng có một lớp kết nối đầy đủ (fully connected layer) với 128 node và dùng hàm ReLU để kích hoạt. Cuối cùng là lớp đầu ra (output layer) với 62 node sử dụng hàm softmax để chuyển sang xác suất.
C ONV 3 * 3 POOL 2 * 2 C ONV 3 * 3 POOL 2 * 2 FLATT EN
2 8* 2 8 2 8* 2 8* 3 2 1 4* 1 4* 3 2 1 4* 1 4* 3 2 7 *7 * 32
FC 1: 1 28 FC 2: 6 2
Ou tp ut
Hình 8. Kiến trúc end-to-end cho cơ sở nhận dạng kí tự trên CNN 3. Kết quả mô phỏng
3.1. Hiệu chỉnh góc nghiêng
Trong Bảng 1, một tập dữ liệu bao gồm 100 ảnh bìa sách với các góc quay khác nhau (từ -450 đến +450) được tạo ra.
Với thuật toán được đề xuất, kết quả hiệu chỉnh góc nghiêng chính xác là 97/100 (97%) hình ảnh.
Bảng 1. Kết quả hiệu chỉnh góc nghiêng Mẫu Thành
công Thất bại Độ chính xác (%)
100 97 3 97
Lý do chính của các trường hợp không thành công là do màu nền hoặc chất lượng ảnh và độ tương phản của ảnh kém. Do đó, thuật toán không thể phát hiện chính xác đường dài nhất, thường là mép bìa sách.
3.2. Phân đoạn vùng chứa văn bản So sánh với các nghiên cứu trước đó, phương pháp được đề xuất có thể phân đoạn vùng chứa văn bản chính xác hơn [4], [5] và [6] trong trường hợp nền phức tạp hoặc màu nền gần trùng với màu văn bản.
Kết quả phân đoạn vùng chứa thông tin sách trong trường hợp nền đơn sắc, nền phức tạp và màu chữ gần trùng với màu nền lần lượt được thể hiện trong Hình 9, Hình 10 và Hình 11.
(a) (b) Hình 9. Phân đoạn vùng chứa văn bản
trong trường hợp nền đơn sắc (a) Ảnh màu bìa sách
(b) Phân đoạn vùng chứa thông tin sách
(a) (b)
Hình 10. Phân đoạn vùng chứa văn bản trong trường hợp nền phức tạp (a) Ảnh màu bìa sách
(b) Phân đoạn vùng chứa thông tin sách
(a) (b)
Hình 11. Phân đoạn vùng chứa văn bản trong trường hợp màu nền gần trùng với
màu văn bản (a) Ảnh màu bìa sách
(b) Phân đoạn vùng chứa thông tin sách
Ở Bảng 2, một tập dữ liệu 100 ảnh scan bìa sách bao gồm 50 bìa có nền đơn sắc, 50 bìa có nền phức tạp và bìa có màu nền gần trùng với màu văn bản để tính toán độ chính xác của thuật toán đã được tạo ra.
Kết quả được chia thành 5 mức độ:
• Mức 1: các vùng chứa tựa sách và tên tác giả được phát hiện.
• Mức 2: vùng chứa tựa sách được phát hiện.
• Mức 3: vùng chứa tên tác giả được phát hiện.
• Mức 4: không thể phát hiện vùng chứa tựa sách và tên tác giả.
Bảng 2. Kết quả phân đoạn vùng chứa văn bản
Mức Độ chính xác (%)
Mức 1 92%
Mức 2 4%
Mức 3 3%
Mức 4 1%
Độ chính xác 92%
Các trường hợp không thành công rơi vào các ảnh scan bìa sách có nền phức tạp, trong đó vùng nền xung quanh vùng văn bản chứa các họa tiết phức tạp xen lẫn vào chữ như Hình 12.
Hình 12. Ảnh không phân đoạn được vùng chứa thông tin sách
3.3. Phân loại CNN
Do không có cơ sở dữ liệu chữ đánh máy có sẵn, chúng tôi thực hiện thu thập một tập hợp các kí tự gồm 44640 mẫu từ 720 font thuộc 5 nhóm font chữ thường gặp và được sử dụng nhiều trong in ấn, đó là nhóm Geometric Sans, nhóm Humanist San, nhóm Old Style, nhóm Transitional Modern và nhóm Slab Serifs.
Mỗi bộ kí tự của một font chữ có 62 mẫu, bao gồm 10 chữ số, 26 chữ viết hoa và 26 chữ viết thường như trong Hình 13.
Để kiểm tra mô hình đề xuất, cơ sở dữ liệu kí tự được chia thành hai phần. 37200 mẫu được sử dụng cho giai đoạn huấn luyện và 7440 mẫu được sử dụng cho giai đoạn thử nghiệm. Quá trình huấn luyện mô hình CNN đề xuất như trong Bảng 3 tốn khoảng 4 tiếng trên máy tính xách tay cấu hình CPU i7-4600U, Ram 8GB, ko có GPU. Kết quả huấn luyện đạt độ chính xác 97.69%.
Hình 13. 62 mẫu thu thập từ font chữ Verdana
Bảng 3. Cấu tạo của mạng CNN
Lớp Kiểu Mạng
0 input 28x28
1 convolutional 32@3x3
2 maxpool 2x2
3 convolutional 32@3x3
4 maxpool 2x2
5 fully connected 128 6 fully connected 62
4. Kết luận
Bài báo này đề xuất một phương pháp phân loại nhận dạng kí tự dựa trên cơ sở kết hợp thuật toán tiền xử lý ảnh và thuật toán CNN trong trường hợp nền phức tạp hoặc màu kí tự gần trùng với màu nền.
Tính khả thi của phương pháp đề xuất được xác minh bằng kết quả mà có thể phát hiện chính xác 97% văn bản của những ảnh bìa có nền phức tạp.
TÀI LIỆU THAM KHẢO
[1] Xiangrong Chen and Alan L. Yuille (2004), “Detecting and reading text in natural scenes”, Proceedings of the 2004 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, pages 366-373
[2] Minoru Yokobayashi and Toru Wakahara (2005), “Segmentation and recognition of characters in scene images using selective binarization in color space and gat correlation”, Eighth International Conference on Document Analysis and Recognition (ICDAR'05), pp. 167-171.
[3] Lukás Neumann and Jiri Matas (2012), “Real-time scene text localization and recognition”, 2012 IEEE Conference on Computer Vision and Pattern Recognition, pages 3538-3545.
[4] Wing Teng Ho, Hao Wooi Lim, and Yong Haur Tay (2009), “Two-stage license plate detection using gentle Adaboost and SIFT-SVM”, 2009 First Asian Conference on Intelligent Information and Database Systems, pages 109-114.
[5] Huizhong Chen, Sam S. Tsai, Georg Schroth, David Chen, Radek Grzeszczuk, Bernd Girod (2011), “Robust text detection in natural images with edge-enhanced maximally stable extremal regions”, 2011 18th IEEE International Conference on Image Processing, pages 2609-2612.
[6] Wai-Lin Chan and Chi-Man Pun (2011), “Robust Character Recognition Using Connected-Component Extraction”, 2011 Seventh International Conference on Intelligent Information Hiding and Multimedia Signal Processing, pages 310-313.
[7] Jung-Jin Lee, Pyoung-Hean Lee, Seong-Whan Lee, Alan Yuille and Christof Koch (2011), “AdaBoost for Text Detection in Natural Scene”, 2011 International Conference on Document Analysis and Recognition, pages 429-434.
[8] Amit Choudharya, Rahul Rishib and Savita Ahlawat (2013), “A New Approach to Detect and Extract Characters from Off-Line Printed Images and Text”, Procedia Computer Science, volume 17, pages 434–440.
[9] Shuping Liu, Yantuan Xian, Huafeng Li and Zhengtao Yu (2017), “Text detection in natural scene images using morphological component analysis and Laplacian dictionary”, IEEE/CAA Journal of Automatica Sinica, Volume 7, Issue 1, pages 214- 222.
[10] Chen-Yu Lee and Simon Osindero (2016), “Recursive Recurrent Nets with Attention Modeling for OCR in the Wild”, 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 2231-2239.
Ngày nhận bài: 23/9/2019 Biên tập xong: 15/3/2021 Duyệt đăng: 20/3/2021