TỔNG QUAN
Một số đặc điểm của tiếng Bana
Dân tộc Bana là một trong những cư dân sinh tụ lâu đời ở Trường Sơn - Tây Nguyên đã kiến lập nên nền văn hoá độc đáo ở đây Họ là tộc người có dân số đông nhất, chiếm vị trí rất quan trọng trong các lĩnh vực văn hoá, xã hội ở các cao nguyên miền Trung nước ta Cũng như nhiều dân tộc khác ở miền núi, người Bana có những phong tục tập quán, văn hóa phong phú và giàu bản sắc Nét đẹp trong văn hóa đƣợc thể hiện ở nhiều mặt, từ hoạt động sản xuất, sinh hoạt hàng ngày đến các lễ hội
Hình 1.1 Nghi thức cúng vợt sợi bông của người Bana
Trong cộng đồng 54 dân tộc Việt Nam, cƣ trú tại 51 trên tổng số 63 tỉnh, thành phố Người Bana cư trú tập trung tại các tỉnh Gia Lai, Kon Tum, miền Tây của tỉnh Bình Định, Phú Yên, Khánh Hòa Theo số liệu thống kê từ
Kết quả toàn bộ của Tổng điều tra dân số và nhà ở năm 2019, dân số Bana khoảng 286.910 người, tập trung chủ yếu ở khu vực Tây Nguyên như: Gia Lai (12.51% dân số tỉnh), Kon Tum (12.73% dân số tỉnh), và khu vực Duyên hải miền trung nhƣ: Bình Định (1.45% dân số tỉnh), Phú Yên (0.53% dân số tỉnh),
Hình 1.2 Người Bana Đồng bào Bana có nhiều tên gọi khác nhau theo địa bàn cƣ trú hay phong tục tập quán mỗi vùng nhƣ Bơ Nâm, Roh, Kon Kđe, Ala Kông, Kpang Kông Các nhóm địa phương: Rơ Ngao, Rơ Lơng (hay Y Lăng),Tơ Lô, Gơ Lar Krem Tiếng Bana thuộc nhóm ngôn ngữ Môn-Khmer (thuộc Ngữ hệ Nam Á) Ở mỗi làng có một nhà công cộng là nhà rông to, đẹp đƣợc xây dựng ở giữa làng Đây đƣợc coi là trụ sở của làng, nơi các già làng họp bàn việc công, nơi dân làng hội họp, nơi tiến hành các nghi lễ theo phong tục của cộng đồng và cũng là nơi tiếp khách vào làng
Hình 1.3 Nhà rông của người Bana
Người Bana sống ở nhà sàn Trước đây khi chế độ gia đình lớn còn thịnh hành, ở vùng người Bana sinh sống thường có những căn nhà dài hàng trăm mét; tuy nhiên hiện nay chế độ gia đình lớn không còn nữa, mô hình các gia đình nhỏ với những căn nhà sàn gọn gàng xuất hiện ngày càng nhiều, phổ biến Nhà sàn thường dài từ 7m đến 15m, rộng từ 3m-4m, cao từ 4m-5m, sàn cách mặt đất khoảng 1m đến 1,5m Những hình thức trang trí sinh động trên nhà rông và đặc biệt những tƣợng nhà mồ v.v mộc mạc, đơn sơ, nhƣng tinh tế và sinh động như cuộc sống của người Bana
Trang phục người Bana có nhiều nét độc đáo Nam giới Bana mặc áo chui đầu, cổ xẻ Đây là loại áo cộc tay, thân áo có đường trang trí sọc đỏ chạy ngang, gấu áo màu trắng Nam mang khố hình chữ T theo lối quấn ngang dưới bụng, luồn qua háng rồi che một phần mông Ngày rét, nam giới Bana mang theo tấm choàng Trong dịp lễ bỏ mả, nam giới thường búi tóc sau gáy và cắm một lông chim công, tay mang vòng đồng
Hình 1.4 Phụ nữ Bana dệt vải
Phụ nữ mặc áo chui đầu, không xẻ cổ kết hợp với váy Váy của phụ nữa
Bana không đƣợc may lại mà nó chỉ là một tấm vải đen đƣợc quấn quanh thân dưới
Phụ nữ Bana ƣa để tóc ngang vai, có khi búi và cài lƣợc hoặc trâm bằng đồng, thiếc Có nhóm không chít khăn mà chỉ quấn bằng chiếc dây vải hay vòng cườm Nhóm địa phương ở An Khê, Mang Yang (Gia Lai) hoặc một số nơi khác họ chít khăn trùm kín đầu, khăn chàm quấn gọn trên đầu Trước đây, họ đội nón hình vuông hoặc tròn trên có thoa sáp ong để khỏi ngấm nước, đôi khi có áo tơi vừa mặc vừa che đầu
Bên cạnh đó, với người Bana, các phụ kiện là một phần không thể thiếu để tô điểm cho các bộ trang phục Phụ nữ thường đeo chuỗi hạt cườm ở cổ và vòng tay bằng đồng xoắn ốc dài từ cổ đến khủy tay (theo kiểu hình nón cụt) Nhẫn được dùng phổ biến và thường được đeo ở hai, ba ngón tay
Phụ nữ mặc áo chui đầu, không xẻ cổ kết hợp với váy Váy của phụ nữa
Bana không đƣợc may lại mà nó chỉ là một tấm vải đen đƣợc quấn quanh thân dưới
Phụ nữ Bana ƣa để tóc ngang vai, có khi búi và cài lƣợc hoặc trâm bằng đồng, thiếc Có nhóm không chít khăn mà chỉ quấn bằng chiếc dây vải hay vòng cườm Nhóm địa phương ở An Khê, Mang Yang (Gia Lai) hoặc một số nơi khác họ chít khăn trùm kín đầu, khăn chàm quấn gọn trên đầu Trước đây, họ đội nón hình vuông hoặc tròn trên có thoa sáp ong để khỏi ngấm nước, đôi khi có áo tơi vừa mặc vừa che đầu
Bên cạnh đó, với người Bana, các phụ kiện là một phần không thể thiếu để tô điểm cho các bộ trang phục Phụ nữ thường đeo chuỗi hạt cườm ở cổ và vòng tay bằng đồng xoắn ốc dài từ cổ đến khủy tay (theo kiểu hình nón cụt) Nhẫn được dùng phổ biến và thường được đeo ở hai, ba ngón tay
Hình 1.5 Đồng bào Bana chủ yếu sinh sống nhờ nương rẫy
Người Bana sinh sống nhờ sản xuất nông nghiệp, chủ yếu là canh tác nương rẫy Cùng với trồng trọt, từng gia đình thường có nuôi gia cầm, gia súc nhƣ trâu, bò, dê, lợn, gà Chó cũng đƣợc nuôi nhƣng không bị giết thịt Hầu nhƣ mỗi làng đều có lò rèn Một số nơi biết làm đồ gốm đơn giản, phụ nữ dệt vải tự túc đồ mặc trong gia đình Đàn ông đan chiếu, lưới, các loại gùi, giỏ, mủng Việc mua bán theo nguyên tắc hàng đổi hàng, xác định giá trị bằng gà, rìu, gùi thóc, lợn hay nồi đồng, ché, chiêng, cồng, trâu, v.v
Nghề dệt thổ cẩm của người Bana có từ lâu đời Các sản phẩm từ thổ cẩm đƣợc trang trí bởi những hoa văn tinh tế, đa dạng sản phẩm nhƣ: Váy - áo của phụ nữ, khăn, tấm choàng để địu con, áo - khố của đàn ông Ngoài ra, nghề đan lát, nghệ thuật chạm khắc gỗ cũng rất phát triển
Tục hôn nhân của người Bana cho phép nam nữ tự do tìm hiểu nhau, việc cưới xin đều theo nếp cổ truyền Vợ chồng trẻ ở luân phiên mỗi bên một thời gian theo thỏa thuận giữa 2 gia đình Sau khi sinh con đầu lòng thì dọn nhà riêng
Hình 1.6 Lễ hội của người Bana
Trong kho tàng văn nghệ dân gian người Bana có những làn điệu dân ca, điệu múa độc đáo trong các ngày hội, nghi lễ tôn giáo và bộ nhạc cụ đa dạng nhƣ những bộ cồng chiêng có kết cấu khác nhau: đàn t‘rƣng, klông pút, kơni; kèn: tơ nốt, arơng, tơ tiếp
Hiện nay, cùng với quá trình phát triển kinh tế - xã hội, đồng bào Bana đã từng bước loại bỏ những luật tục lạc hậu như tục cà răng căng tai, phạt vạ… Đồng thời tích cực tham gia các phong trào thi đua yêu nước như xây dựng nông thôn mới, xóa đói giảm nghèo…từng bước nâng cao đời sống vật chất, tinh thần
Tình hình nghiên cứu
1.2.1 Tình hình nghiên cứu ngoài nước a) Tình hình nghiên cứu liên quan đến bài toán nhận dạng văn bản
Trong những năm gần đây, có rất nhiều nghiên cứu liên quan đến nhận diện chữ viết từ hình ảnh Những vấn đề nổi bật có thể kể đến nhƣ: nhận diện chữ trong các văn bản (chụp, scan ), nhận diện chữ viết tay, nhận diện vùng có chữ… Tuy nhiên, trên thực tế, kết quả nhận diện bị ảnh hưởng rất nhiều bởi góc chụp/scan, định dạng văn bản, các dấu mộc, v.v Độ phân giải, độ tương phản và chất lượng chụp của tài liệu cũng là những vấn đề cần lưu tâm
Character Region Awareness For Text detection:
Một trong những hướng tiếp cận tiềm năng trong việc nhận diện vùng chữ là khảo sát độ tương quan (affinity) của từng ký tự, song song với nhận diện vùng (region) có chứa kí tự Một trong những model nổi tiếng với hướng đi này là CRAFT [1] Là một model học sâu, CRAFT [1] đƣợc thiết kế dựa trên VGG-16 kết hợp với batch normalization Sử dụng hoàn toàn kiến trúc convolution, CRAFT [1] học đƣợc các đặc trƣng nổi bật (feature) thông qua các lớp CNN Kết quả từ lớp CNN thứ 2 trở đi sẽ đƣợc kết hợp với các kết quả của các lớp up-convolution ngay đằng sau Lớp convolution 1x1 cuối cùng sẽ đưa ra output có kích thước mong muốn, biểu diễn 2 thông số đặc trưng cho vùng và độ tương quan của các chữ Việc tận dụng lợi thế chiều sâu và phương pháp đo độ tương quan giúp cho mô hình giải quyết dễ dàng các đoạn chữ có khung biến dạng bị cong hoặc có góc nghiêng, vì nhận biết đƣợc quan hệ giữa các ký tự chứa trong ấy
Một giải pháp đầy hứa hẹn trước khi nhận diện chữ là cải thiện góc nhìn đối với ảnh đầu vào Phương pháp này khá hữu ích trong việc giúp các mô hình nhận dạng không bị nhiễu bởi những vấn đề về chất lƣợng ảnh nhƣ độ phân giải hay góc nghiêng Tuy tập trung vào cải thiện khung ảnh đầu vào, STAR-Net [2] vẫn đƣa vào kiến trúc các thành phần nhận diện chữ để chứng minh hiệu suất của mình Kiến trúc của bao gồm 3 phần, phần spatial attention tập trung giải quyết khung cảnh của đoạn chữ, phần residue feature extraction rút ra các đặc trƣng, đƣa vào phần cuối cùng là connectionist temporal classification có chức năng xuất ra kết quả Ngoài ƣu điểm làm tăng chất lƣợng của góc nhìn đầu vào, thông qua affine transformation của phần spatial attention, STAR-Net [2] cũng có thể học đƣợc sự phụ thuộc của các ký tự như CRAFT [1], nhưng lại khác CRAFT [1] ở điểm thay vì dùng độ tương quan nhƣ một công cụ hỗ trợ nhận dạng và tiêu chuẩn đo chất lƣợng mô hình, STAR-Net [2] học quan hệ gián tiếp qua các lớp LSTM Tuy nhiên, nhƣ CRAFT [1], STAR-Net [2] cũng gặp phải các vấn đề với biển số đƣợc xếp theo chiều dọc Bên cạnh đó, STAR-Net [2] cũng chƣa giải quyết đƣợc các khung ảnh có độ tương phản đa dạng, ví dụ trường hợp xe container ra vào ban đêm
Hình 1.10 Kiến trúc model CRAFT
Hình 1.11 Kiến trúc model STAR
Attentional Scene Text Recognizer with Flexible Rectification: Ý tưởng của ASTER [3] hoàn toàn tương tự với STAR-Net [2], với mục tiêu là cải thiện góc nghiêng của ảnh sau khi đƣợc đƣa vào mô hình, đồng thời kết hợp các lớp RNN ở sau nhằm học được mối tương quan giữa các ký tự Mặc dù vậy, kiến trúc sử dụng trong ASTER [3] lại khác xa với STAR-Net [2] Ở mô hình rectification, ASTER [3] sử dụng biến đổi Thin- Plate-Spline, có ƣu điểm làm tăng độ mƣợt của các pixel, góp phần cho ra khung chữ đều nhau về kích thước Về mô hình recognition, ASTER [3] tận dụng luôn kiến trúc RNN để đƣa ra kết quả cuối cùng mà không dựa vào một mô hình khác (nhƣ CTC trong STAR-Net [2]) Một thế mạnh đáng chú ý của
ASTER [3] là các modules đều khả vi, điều này có nghĩa là để huấn luyện mạng rectification, ta không cần label mà có thể tận dụng kết quả backpropagation của mạng recognition Nhƣng dù sao, cũng nhƣ STAR-Net
[2], ta vẫn chƣa thoát khỏi vấn đề với những khung ảnh kém chất lƣợng về độ tương phản, cũng như các biển số xe được chiếu thẳng theo trục tung
Hình 1.12 Kiến trúc model ASTER
Efficient and Accuracy Scene Text Detector:
Zhou et al đƣa ra một giải pháp ít tốn kém về mặt thời gian nhƣng vẫn đạt đƣợc hiệu suất đáng kể Thật vậy, chỉ sử dụng toàn bộ lớp convolution (FCN), EAST [4] không chỉ loại bỏ các bước trung gian, đôi lúc không cần thiết, nhƣ candidate proposal, text formation hay text partition mà còn dồn sức học đƣợc các đặc trƣng, đƣa ra các khung có tiềm năng chứa chữ, cuối cùng đƣợc lọc bởi thuật toán Non-Maximum Suppression Điểm yếu duy nhất của EAST [4] nằm ở giai đoạn đƣa ra vùng chữ, khi EAST [4] chỉ có thể xuất ra các vùng hình chữ nhật hoặc tổng quát hơn, là hình tứ giác Điều này đôi khi gây khó khăn trong thực tế, khi các camera không thể chụp đƣợc các ảnh lồi do tác động của gió, hoặc khung chữ không là tứ giác do ảnh hưởng của gỉ sét, khiến các nét bị bóp mỏng đi hơn bình thường
Hình 1.13 Kiến trúc model EAST
Tesseract [5] là một phương pháp đầu cuối (end2end) cho vấn đề nhận diện chữ viết từ hình ảnh Để làm đƣợc điều này, Tesseract [5] đã kết hợp rất nhiều kỹ thuật khác nhau, từ các kỹ thuật xử lý ảnh cơ bản đến các kỹ thuật NLP cộng với một số heuristic Sơ đồ tổng quát cách hoạt động của Tesseract
Hình 1.2 Kiến trúc của Tesseract
Các bước nhận diện từ được trình bày theo mô hình sau:
Hình 1.14 Các bước thực thi của Tesseract
Với phiên bản từ 4.0 trở đi, Tesseract [5] kết hợp mô hình Deep Learning dùng các lớp LSTM vào nhận diện chữ bên cạnh cách nhận diện bằng xử lý ảnh Khi kết hợp cả 2 phương pháp nhận diện, độ chính xác của Tesseract [5] lên tới hơn 99% với tiếng Anh trong các văn bản rõ ràng
Tuy nhiên, Tesseract [5] vẫn có những hạn chế nhất định Có thể kể đến nhƣ: Nhạy cảm với ánh sáng (một đoạn văn bản chữ đen, nền trắng, nhƣng góc tối, góc sáng thì những chữ bên góc tối sẽ khó phát hiện), nhạy cảm với các đoạn văn bản nghiêng, các văn bản có nền nhiều màu, độ phân giải không tốt… Hơn nữa, khi dùng mô hình LSTM, Tesseract [5] hay nhận sai một số ký tự đơn lẻ hoặc chữ cái đứng đơn lẻ, không có nghĩa Vì những lý do đó mà khi sử dụng Tesseract [5], chúng ta cần phải nên cân nhắc về ảnh đầu vào có phù hợp không, các bước tiền xử lý ảnh và hậu xử lý kết quả b) Các nghiên cứu liên quan đến bài toán dịch máy sử dụng học sâu
Bài toán dịch máy (machine translation) là biến đổi văn bản ở ngôn ngữ nguồn thành văn bản tương đương ở ngôn ngữ đích Dịch máy sử dụng học sâu là một hướng tiếp cận hiện đại với các mô hình học sâu cho bài toán dịch máy trong thời đại ngày nay Nhƣ đƣợc giới thiệu trong [21], việc sử dụng học sâu bắt nguồn từ khả năng học biểu diễn của những mạng nơ-ron nhân tạo nhiều tầng cho các đối tƣợng dữ liệu trong các miền ứng dụng khác nhau Tính năng ƣu việt này của các mô hình học sâu nói chung đã đƣợc khẳng định cho các bài toán liên quan đến các kiểu dữ liệu đa phương tiện nhƣ hình ảnh, âm thanh, băng hình,… Với văn bản, các mô hình học sâu cũng đã có đƣợc những đóng góp tích cực về hiệu quả cũng nhƣ tránh đƣợc những khó khăn của các mô hình truyền thống trước đây Đặc điểm này cũng góp phần quan trọng trong việc cải thiện các mô hình dịch máy cũng nhƣ tạo ra những giải pháp vƣợt trội cho bài toán dịch máy
Thật vậy, [20] tóm tắt một số hướng tiếp cận truyền thống để giải quyết bài toán dịch máy trong giai đoạn trước thời kỳ sử dụng học sâu Một trong những hướng tiếp cận dịch máy tiêu biểu là hướng tiếp cận sử dụng quy tắc (rule-based) hay là dựa trên kho ngữ liệu (corpus-based) Trong hướng tiếp cận này, kho ngữ liệu song ngữ giữa ngôn ngữ nguồn và ngôn ngữ đích và kho ngữ liệu của ngôn ngữ đích đóng vai trò quan trọng Sự chuẩn bị cho các kho ngữ liệu này và đôi khi là các từ điển liên quan là cần thiết cho sự thành công của giải pháp Khi này, văn bản nguồn đƣợc phân tích trong sự liên hệ giữa ngôn ngữ nguồn và ngôn ngữ đích với các quy tắc thường được xác định thủ công Sau đó, sự biến đổi đƣợc thực hiện để biểu diễn lại văn bản nguồn thành văn bản đích với mức độ tương đương nhất định về ngữ nghĩa và cú pháp Hướng tiếp cận này gặp khó khăn về thời gian và nỗ lực của chuyên gia để thiết lập các quy tắc biến đổi thủ công và xây dựng các nguồn tài nguyên về ngôn ngữ nhƣ kho ngữ liệu và từ điển
Sau đó, dịch máy đƣợc hỗ trợ mạnh mẽ bởi mô hình dịch máy thống kê (statistical machine translation) Trong dịch máy thống kê, kho ngữ liệu song ngữ đƣợc sử dụng để xây dựng mô hình dịch thống kê (statistical translation model) giữa các văn bản nguồn và văn bản đích Kho ngữ liệu đơn ngữ của văn bản đích đƣợc sử dụng để xây dựng mô hình ngôn ngữ thống kê (statistical language model) cho ngôn ngữ đích Sau đó, các mô hình này đƣợc sử dụng trong giai đoạn giải mã để dẫn ra kết quả dịch sao cho cực đại hóa khả năng ―trùng khớp‖ giữa văn bản nguồn và văn bản đích MOSES, bộ giải mã dựa trên ngữ (phrase-based decoder) với giải thuật beam search, là bộ giải mã tiêu biểu và đƣợc sử dụng rộng rãi cho các mô hình dịch máy thống kê Đến nay, dịch máy thống kê ban đầu đƣợc hỗ trợ với mạng nơ-ron nhân tạo với học sâu ở các mức khác nhau nhƣ: cải tiến mô hình dịch, mô hình ngôn ngữ, cải tiến gióng từ (word alignment), sắp thứ tự lại (reordering), hay tính điểm lại (rescoring) Công trình minh họa cho cải tiến dịch máy thống kê dựa trên ngữ với mạng LSTM (Long Short-Term Memory) đƣợc trình bày ở
[24] để hỗ trợ dịch máy giữa tiếng Anh và tiếng Tây Ban Nha Với sự phát triển liên tục, dịch máy với học sâu (neural machine translation) ngày nay đã trở thành hướng tiếp cận hệ thống và toàn diện hơn cho bài toán dịch máy với học sâu Tiêu biểu từ các mô hình học sâu, mô hình dịch máy với học sâu là dạng mô hình end-to-end có khả năng xử lý các chuỗi rất dài vì không cần lưu trữ tường minh các bản ngữ cho mô hình dịch và mô hình ngôn ngữ của mô hình dịch máy truyền thống
Nhƣ đƣợc định nghĩa ở [30], dịch máy với học sâu là mạng nơ-ron nhân tạo mô hình hóa trực tiếp xác suất có điều kiện p(y|x) khi dịch câu nguồn, x = , sang câu đích, y = Tương tự mô hình dịch máy truyền thống, dạng cơ bản của dịch máy với học sâu bao gồm 2 thành phần: (a) bộ mã hóa (encoder) và (b) bộ giải mã (decoder) Bộ mã hóa thực hiện tính toán để biểu diễn mỗi câu nguồn thành dạng biểu diễn s và bộ giải mã tạo ra từ đích ở mỗi lần xử lý và do đó phân rã xác suất có điều kiện p(y|x) nhƣ sau:
Tổng quan về Tesseract
Nhận dạng ký tự quang học (tiếng Anh: Optical Character Recognition, viết tắt là OCR), là loại phần mềm máy tính đƣợc tạo ra để chuyển các hình ảnh của chữ viết tay hoặc chữ đánh máy (thường được quét bằng máy scanner) thành các văn bản tài liệu OCR đƣợc hình thành từ một lĩnh vực nghiên cứu về nhận dạng mẫu, trí tuệ nhận tạo và thị giác máy tính [97] Đây là một công nghệ phổ biến để nhận dạng văn bản bên trong hình ảnh, chẳng hạn nhƣ tài liệu và ảnh đƣợc quét Công nghệ OCR đƣợc sử dụng để chuyển đổi hầu nhƣ bất kỳ loại hình ảnh nào có chứa văn bản viết (đánh máy, viết tay hoặc in) thành dữ liệu văn bản có thể đọc đƣợc bằng máy Những dữ liệu đƣợc sinh ra từ việc nhận dạng ký tự quang học có thể đƣợc sử dụng cho rất nhiều việc, ví dụ nhƣ: số hóa các văn bản, tài liệu cũ, sách báo, dịch sang các ngôn ngữ khác, hoặc kiểm tra và xác minh vị trí văn bản,…
Hình 2.1 Quá trình OCR (Optical Character Recognition process)
Công nghệ OCR trở nên phổ biến vào đầu những năm 1990 khi cố gắng số hóa các tờ báo lịch sử Kể từ đó, công nghệ đã trải qua một số cải tiến Ngày nay, các giải pháp cung cấp độ chính xác OCR gần nhƣ hoàn hảo
Một ví dụ về OCR như hình dưới :
Hình 2.2 OCR trên một tờ giấy cũ và chuyển đổi sang văn bản số
OCR là một quy trình thường bao gồm một số quy trình phụ để thực hiện chính xác nhất có thể [98] Các quy trình phụ thường bao gồm:
2.1.1 Tiền xử lý hình ảnh
- Cục bộ hóa văn bản: phân tách tài liệu các yếu tố (dòng, từ, ký tự )
- Phân đoạn ký tự: xác định các tính năng đặc trƣng cho các phần tử đƣợc phân cách của một tài liệu
- Nhận dạng ký tự: nhận biết và xác định từng phần tử Nó đƣợc thực hiện dựa trên các tính năng đƣợc trích xuất
- Hậu xử lý: Nó có thể là tự động hoặc thủ công
Tất nhiên, các quy trình phụ trong danh sách trên có thể khác nhau, nhưng đây là những bước gần như cần thiết để tiếp cận nhận dạng ký tự tự động Trong phần mềm OCR, mục đích chính là xác định và nắm bắt tất cả các từ duy nhất bằng các ngôn ngữ khác nhau từ các ký tự văn bản viết
Trong gần hai thập kỷ, hệ thống nhận dạng ký tự quang học đã đƣợc sử dụng rộng rãi để cung cấp tính năng nhập văn bản tự động vào các hệ thống máy tính Tuy nhiên, trong suốt thời gian qua, các hệ thống OCR thông thường chưa bao giờ vượt qua được khả năng đọc nhiều hơn một số loại phông chữ và định dạng trang Loại có khoảng cách theo tỷ lệ (bao gồm hầu nhƣ tất cả các bản sao bộ sắp chữ), phông chữ máy in laser và thậm chí nhiều phông chữ máy đánh chữ không theo tỷ lệ, vẫn nằm ngoài tầm với của các hệ thống này Và kết quả là, OCR thông thường chưa bao giờ đạt được nhiều hơn một ảnh hưởng ngoài lề đối với tổng số tài liệu cần chuyển đổi sang dạng kỹ thuật số
Tesseract - một công cụ OCR mã nguồn mở đang phổ biến hiện nay
Nó giúp tiết kiệm thời gian và công sức của con người Nó hoạt động tự động trích xuất văn bản từ một hình ảnh, tồn tại trong nhiều loại phông chữ và bị bóp méo theo mọi cách Nhận dạng ký tự quang học (OCR), ban đầu đƣợc phát triển tại Hewlett Packard từ năm 1984 đến năm 1994, là một nguồn mở (theo Giấy phép Apache 2.0) quang ngoại tuyến công cụ nhận dạng ký tự Bristol, lần đầu tiên bắt đầu phát triển Tesseract nhƣ một dự án nghiên cứu tiến sĩ trong HP Labs Năm 1995, Tesseract đƣợc gửi đến Đại học Nevada, Les Vegas (UNLV) Đến năm 2005, Tesseract đã đƣợc phát hành bởi Hewlett Packard và Đại học Nevada, Las Vegas và hiện tại nó đƣợc tài trợ và duy trì một phần bởi Google
Tesseract đƣợc coi là một trong những công cụ OCR phần mềm miễn phí chính xác hiện tại Nhiều phần mềm OCR khác bây giờ sử dụng nó nhƣ một cơ sở Đó là một chất lượng tuyệt vời Chương trình OCR, với một lượng lớn tính linh hoạt, một cơ sở mã vững chắc và một lượng lớn, tương tác cộng đồng những người quan tâm xung quanh nó
Tesseract với phiên bản 3.x khi nó bắt đầu hỗ trợ nhiều định dạng hình ảnh và dần dần bổ sung một số lƣợng lớn các tập lệnh (ngôn ngữ) Tesseract 3.x dựa trên các thuật toán thị giác máy tính truyền thống Trong vài năm qua, các phương pháp dựa trên Deep Learning đã vượt qua các kỹ thuật máy học truyền thống nhờ một lợi nhuận rất lớn về độ chính xác trong nhiều lĩnh vực của Thị giác máy tính Nhận dạng chữ viết tay là một trong những ví dụ nổi bật Đến phiên bản 4.x trở đi, Tesseract đã triển khai một công cụ nhận dạng dựa trên Bộ nhớ Ngắn hạn Dài hạn (LSTM) LSTM là một loại Mạng thần kinh tái diễn (RNN)
Hiện tại, Tesseract đã đƣợc hỗ trợ trên ba hệ điều hành Linux , của Windows và Mac OS X Thƣ viện Tesseract cũng hỗ trợ rất nhiều ngôn ngữ lập trình, nhƣ: Java, C/C++, Python, …
Tesseract 3.x phụ thuộc vào quy trình nhiều giai đoạn, ở đó chúng ta có thể phân biệt qua các bước:
Việc tìm kiếm từ đƣợc thực hiện bằng cách sắp xếp các dòng văn bản thành các đốm màu, các dòng và vùng đƣợc phân tích để tìm cao độ cố định hoặc văn bản theo tỷ lệ Các dòng văn bản đƣợc chia thành các từ khác nhau tùy theo loại khoảng cách ký tự Việc nhận dạng sẽ đƣợc tiến hành nhƣ một quá trình hai lần Trong lần vƣợt qua đầu tiên, một nỗ lực đƣợc thực hiện để nhận ra lần lƣợt từng từ Mỗi từ đạt yêu cầu đƣợc chuyển đến bộ phân loại thích ứng làm dữ liệu huấn luyện Sau đó, trình phân loại thích ứng sẽ có cơ hội nhận dạng chính xác hơn văn bản ở dưới trang
Hình 2.3 Kiến trúc Tesseract OCR
Tesseract hoạt động tốt nhất khi có sự phân đoạn rõ ràng của từ nền khỏi văn bản nền Trong thực tế, có thể cực kỳ khó khăn để đảm bảo các loại thiết lập này Có nhiều lý do khiến chúng ta không nhận đƣợc đầu ra chất lƣợng tốt từ Tesseract nhƣ việc hình ảnh bị nhiễu trên nền Chất lƣợng hình ảnh (kích thước, độ tương phản, độ sáng) càng tốt thì kết quả nhận dạng càng tốt Nó đòi hỏi một chút xử lý trước để cải thiện kết quả OCR, hình ảnh cần được chia tỷ lệ thích hợp, có độ tương phản hình ảnh nhiều nhất có thể và văn bản phải đƣợc căn chỉnh theo chiều ngang Tesseract OCR khá mạnh nhƣng có những hạn chế sau:
OCR không chính xác như một số giải pháp thương mại có sẵn
Không hoạt động tốt với hình ảnh bị ảnh hưởng bởi hiện vật bao gồm tắc một phần, phối cảnh méo mó và nền phức tạp
Nó có thể không nhận dạng đƣợc (vô nghĩa) và báo cáo đây là đầu ra OCR
Không phải lúc nào việc phân tích thứ tự đọc tự nhiên của tài liệu cũng tốt Ví dụ: nó có thể không nhận ra rằng một tài liệu chứa hai cột và có thể cố gắng nối văn bản giữa các cột
Bản quét chất lƣợng kém có thể tạo ra OCR chất lƣợng kém.
Công cụ Pytesseract
Để phục vụ cho việc thực hiện bài toán, tác giả sẽ sử dụng công cụ chính là Pytesseract Pytesseract là một công cụ nhận dạng ký tự quang học (OCR) dành cho ngôn ngữ lập trình Python - [8] Tức là, nó sẽ nhận ra và
―đọc‖ văn bản đƣợc nhúng trong hình ảnh Pytesseract là một trình bao bọc cho công cụ Tesseract-OCR của Google Nó cũng hữu ích nhƣ một tập lệnh gọi độc lập đối với Tesseract, vì nó có thể đọc tất cả các loại hình ảnh đƣợc hỗ trợ bởi thƣ viện hình ảnh Pillow và Leptonica, bao gồm jpeg, png, gif, bmp, tiff và các loại khác Ngoài ra, nếu đƣợc sử dụng làm script, Python- tesseract sẽ in văn bản đƣợc nhận dạng thay vì ghi nó vào tệp.
Thƣ viện OpenCV
OpenCV (Open Source Computer Vision) là một thƣ viện mã nguồn mở về thị giác máy với hơn 500 hàm và hơn 2500 các thuật toán đã đƣợc tối ƣu về xử lý ảnh, và các vấn đề liên quan tới thị giác máy OpenCV đƣợc thiết kế một cách tối ƣu, sử dụng tối đa sức mạnh của các dòng chip đa li… để thực hiện các phép tính toán trong thời gian thực, nghĩa là tốc độ đáp ứng của nó có thể đủ nhanh cho các ứng dụng thông thường OpenCV là thư viện được thiết kế để chạy trên nhiều nền tảng khác nhau (cross- platform), nghĩa là nó có thể chạy trên hệ điều hành Window, Linux, Mac, iOS… Việc sử dụng thƣ viện OpenCV tuân theo các quy định về sử dụng phần mềm mã nguồn mở BSD do đó bạn có thể sử dụng thƣ viện này một cách miễn phí cho cả mục đích phi thương mại lẫn thương mại
Dự án về OpenCV đƣợc khởi động từ những năm 1999, đến năm 2000 nó đƣợc giới thiệu trong một hội nghị của IEEE về các vấn đề trong thị giác máy và nhận dạng, tuy nhiên bản OpenCV 1.0 mãi tới tận năm 2006 mới chính thức đƣợc công bố và năm 2008 bản 1.1 (pre-release) mới đƣợc ra đời Tháng 10 năm 2009, bản OpenCV thế hệ thứ hai ra đời (thường gọi là phiên bản 2.x), phiên bản này có giao diện của C++ (khác với phiên bản trước có giao diện của C) và có khá nhiều điểm khác biệt so với phiên bản thứ nhất
Thƣ viện OpenCV ban đầu đƣợc sự hỗ trợ từ Intel, sau đó đƣợc hỗ trợ bở Willow Garage, một phòng thí nghiệm chuyên nghiên cứu về công nghệ robot Cho đến nay, OpenCV vẫn là thƣ viện mở, đƣợc phát triển bởi nguồn quỹ không lợi nhuận (none - profit foundation) và được sự hưởng ứng rất lớn của cộng đồng
Sau đây là những tóm tắt cơ bản về hệ thống các về chức năng của các hàm trong OpenCV – [99]
Những giao diện này sẽ giúp bạn đọc đƣợc dữ liệu ảnh từ file hoặc trực tiếp từ video Bạn cũng có thể tạo các file ảnh và video với giao diện này
Thị giác máy và các thuật toán xử lý ảnh (General computer- vision and image-processing algorithms(mid – and low level APIs))
Sử dụng những giao diện này, bạn có thể thực hành với rất nhiều chuẩn thị giác máy mà không cần phải có mã nguồn của chúng
Module thị giác máy ở cấp độ cao
OpenCV gồm một vài tác dụng ở cấp độ cao Thêm vào nhận dạng mặt, dò tìm, theo dõi Nó bao gồm luồng thị giác (sử dụng camera di động để xác định cấu trúc 3D), kích cỡ camera và âm thanh nổi
Các ứng dụng của thị giác máy thường yêu cầu máy móc phải học (machine learning) hoặc các hình thức trí tuệ nhân tạo khác Một vài trong số chúng là có sẵn trong gói OpenCV
Lấy mẫu ảnh và phép biến đổi
Nó thường rất tốt cho quá trình xử lý một nhóm phần tử ảnh như là một đơn vị OpenCV bao gồm lấy tách ra, lấy mẫu ngẫu nhiên, phục chế, xoay ảnh, làm cong ảnh (warping), thay đổi hiệu ứng của ảnh
Cách thức tạo và phân tích ảnh nhị phân Ảnh nhị phân thường xuyên được dùng trong các hệ thống kiểm tra có khuyết điểm hình dạng hoặc các bộ phận quan trọng Sự biểu diễn ảnh cũng rất thuận tiện khi chúng ta biết rõ vật thể cần bắt
Cách thức cho tính toán thông tin 3D (methods for computing 3D information)
Những hàm này rất có ích khi cần sắp xếp và xác định với một khối lập thể (with a stereo rig) hoặc với không gian nhìn phƣc tạp (multiple views) từ một camera riêng
Các phép toán cho xử lý ảnh, thị giác máy và biểu diễn ảnh (image interpretation)
OpenCV sử dụng các phép toán phổ biến nhƣ: đại số học, thống kê và tính toán hình học
Những giao diện này giúp bạn viết chữ và vẽ trên hình ảnh Thêm vào đó những chức năng này đƣợc sử dụng nhiễu trong ghi nhãn và đánh dấu Ví dụ nếu bạn viết một chương trình cần nhận dạng nhiều đối tượng thì nó sẽ rất có ích cho tạo nhãn ảnh (label image) với kích thước và vị trí
OpenCV bao gồm cửa sổ giao diện của chính bản thân nó Trong khi đó những giao diện này đƣợc so sánh giới hạn với khả năng có thể thực hiện trong mỗi môi trường Chúng cung cấp những môi trường API đa phương tiện và đơn giản để hiển thị hình ảnh, cho phép người dùng nhập dữ liệu thông qua chuột , bàn phím và điều khiển quá trình
Cấu trúc dữ liệu và giải thuật
Với những giao diện này bạn có thể giữ lại, tìm kiếm, lưu và cách danh mục điều khiển, các tuyển tập(cũng nhƣ các tập hợp lệnh đƣợc gọi), đồ họa và sơ đồ nhánh một cách hiệu quả
Khả năng tồn tại lâu dài của dữ liệu (Data persistence)
Những phương pháp này cung cấp các giao diện một cách thuận lợi để lưu trữ các dạng khác nhau của dữ liệu vào đĩa để có thể khôi phục khi cần thiết
Cấu trúc OpenCV gồm nhiều module
CXCORE bao gồm các dạng dữ liệu cơ bản rõ ràng Ví dụ cấu trúc dự liệu về ảnh, điểm, hình chữ nhật đƣợc xác định trong file cxtypes.h CXCORE chứa các phép toán đại số tuyến tính và thống kê, các hàm lưu trữ lâu dài (persistence fun…) và các lỗi thao tác Có điều lạ lùng thay là các hàm đồ họa được cho việc vẽ ảnh cũng được lưu trữ tại đây
CV chứa đựng quá trình xử lý ảnh và các phương pháp đánh giá sơ bộ kích thước ảnh Những hàm tính toán hình học cũng được lưu trữ tại đây
Tổng quan về thuật giải Heuristic
George Polya định nghĩa heuristic là ―sự nghiên cứu về các phương pháp và các quy tắc trong việc khám phá và phát minh‖ (Polya 1945) Nghĩa này có thể xuất phát từ gốc Hy Lạp của động từ eurisco nghĩa là ―tôi phát hiện‖
Trong tìm kiếm không gian trạng thái, heuristic là các luật dùng để chọn những nhánh nào có nhiều khả năng nhất dẫn đến một giải pháp chấp nhận đƣợc
- Heuristic chỉ là một phỏng đoán chứa các thông tin về bước tiếp theo sẽ đƣợc chọn dùng trong việc giải quyết một vấn đề
- Heuristic là những tri thức đƣợc rút ra từ những kinh nghiệm, ―trực giác‖ của con người
- Heuristic có thể là những tri thức đúng hoặc sai
Vì các heuristic sử dụng những thông tin hạn chế nên chúng ít khi có khả năng đoán trước chính xác cách hành xử của không gian trạng thái ở những giai đoạn xa hơn – [104]
2.4.2 Heuristic dùng để làm gì?
Các chương trình giải quyết những vấn đề trí tuệ nhân tạo sử dụng heuristic cơ bản theo hai dạng:
Vấn đề có thể không có giải pháp chính xác vì những điều không rõ ràng trong diễn đạt vấn đề hoặc trong các dữ liệu có sẵn
Vấn đề có thể có giải pháp chính xác, nhƣng chi phí tính toán để tìm ra nó không cho phép
2.4.3 Ƣu điểm của thuật giải Heuristic
Thuật giải Heuristic là một sự mở rộng khái niệm thuật toán Nó thể hiện cách giải bài toán với các đặc tính sau :
Thường tìm được lời giải tốt (nhưng không chắc là lời giải tốt nhất)
Giải bài toán theo thuật giải Heuristic thường dễ dàng và nhanh chóng đƣa ra kết quả hơn so với giải thuật tối ƣu, vì vậy chi phí thấp hơn
Thuật giải Heuristic thường thể hiện khá tự nhiên, gần gũi với cách suy nghĩ và hành động của con người
2.4.4 Phương pháp xây dựng thuật giải Heuristic
Thuật giải heuristic gồm hai phần: Hàm đánh giá heuristic và thuật toán để sử dụng nó trong tìm kiếm không gian trạng thái
Có nhiều các để xây dựng một thuật giải Heuristic, trong đó người ta thường dựa và một số nguyên lý cơ bản như sau:
Nguyên lý vét cạn thông minh:
Trong một bài toán tìm kiếm nào đó, khi không gian tìm kiếm lớn, ta thường tìm cách giới hạn lại không gian tìm kiếm hoặc thực hiện một kiểu dò tìm đặc biệt dựa vào đặc thù của bài toán để nhanh chóng tìm ra mục tiêu
Nguyên lý tham lam (Greedy):
Lấy tiêu chuẩn tối ƣu (trên phạm vi toàn cục) của bài toán để làm tiêu chuẩn chọn lựa hành động cho phạm vi cục bộ của từng bước (hay từng giai đoạn) trong quá trình tìm kiếm lời giải
Thực hiện hành động dựa trên một cấu trúc thứ tự hợp lý của không gian khảo sát nhằm nhanh chóng đạt đƣợc một lời giải tốt
Trong việc xây dựng các thuật giải Heuristic, người ta thường dùng các hàm Heuristic Ðó là các hàm đánh giá thô, giá trị của hàm phụ thuộc vào trạng thái hiện tại của bài toán tại mỗi bước giải Nhờ giá trị này, ta có thể chọn được cách hành động tương đối hợp lý trong từng bước của thuật giải
2.4.5 Tìm kiếm kinh nghiệm (Heuristic Search)
Các kỹ thuật tìm kiếm sử dụng hàm đánh giá để hướng dẫn sự tìm kiếm đƣợc gọi chung là các kỹ thuật tìm kiếm kinh nghiệm (heuristic search) Các giai đoạn cơ bản để giải quyết vấn đề bằng tìm kiếm kinh nghiệm nhƣ sau:
Tìm biểu diễn thích hợp mô tả các trạng thái và các toán tử của vấn đề
Xây dựng hàm đánh giá
Thiết kế chiến lược chọn trạng thái để phát triển ở mỗi bước
NHỮNG NỘI DUNG NGHIÊN CỨU ĐỀ XUẤT GIẢI PHÁP XÂY DỰNG MỞ RỘNG KHO NGỮ LIỆU BANA KRIÊM VÀ KẾT QUẢ ĐẠT ĐƢỢC
Nguồn ngữ liệu
Trong khuôn khổ của đề tài, tác giả đã tập hợp các nguồn dữ liệu sau:
Chữ Bahnar Kriêm Bình Định: 1216 mẫu
Bản ghi của đài phát thanh Vĩnh Thạnh: 2423 mẫu
Tài liệu khoa học và công nghệ: 567 mẫu
Tài liệu về kinh tế xã hội: 1929 mẫu
Chính trị - xã hội: 1895 mẫu
Văn hoá – thể thao: 3032 mẫu
Tài liệu tiếng Bahnar (Bahnar Roh)
Sổ tay phương ngữ tiếng Bahnar Để hỗ trợ quá trình xử lý, các tài liệu sau đƣợc sử dụng:
Nơ r Bơhnar (tiếng Bana), Sở KH&CN - UBND tỉnh Bình Định, Viện ngôn ngữ học - Viện KHXH Việt Nam (2008)
Từ điển Tiếng Việt, Hoàng Phê (chủ biên) (2003), nhà xuất bản Đà Nẵng - trung tâm Từ điển học
Tự điển Tiếng Việt, Ban tu thƣ Khai Trí, nhà xuất bản Khai Trí
Từ điển Tiếng Việt, Trung tâm Khoa học xã hội và nhân văn Quốc gia, nhà xuất bản Văn hóa Sài Gòn
Từ điển đồng nghĩa - trái nghĩa Tiếng Việt, Bích Hằng (chủ biên), nhà xuất bản Dân Trí
Nội dung nghiên cứu đề xuất giải pháp xây dựng mở rộng kho ngữ liệu
3.2.1 Thu thập, xử lý và lưu trữ dữ liệu mẫu
Dữ liệu đƣợc thu thập cho nghiên cứu đƣợc thực hiện nhƣ sau:
Dữ liệu cho bài toán nhận dạng văn bản
Nhƣ đã thấy, các văn bản dành cho ngôn ngữ ít tài nguyên nhƣ tiếng
Bana Kriêm không có nhiều Hơn thế nữa, quá trình lưu trữ số của các văn bản này còn rất hạn chế vì sự hỗ trợ ngôn ngữ cho đến thời điểm này không nhiều Chúng ta có thể tìm kiếm một số công cụ dịch thuật và tra cứu tiếng Bana hiện có ở Việt Nam và dễ dàng nhận thấy gần nhƣ chƣa có công cụ nào hoàn thiện và ở mức sử dụng đƣợc Do đó, cho đến nay việc dịch các văn bản cho ngôn ngữ này còn khá thủ công, và nguồn văn bản đƣợc số hóa là không nhiều Do vậy, tác giả tiến hành thu thập các bản scan của các văn bản tiếng Việt-Bana để phục vụ cho bài toán nhận diện văn bản này
Nguồn dữ liệu tiếng Việt hiện tại khá phong phú nên ngoài các bản scan mà tác giả thu thập từ internet, còn có các bản scan liên quan đến từ điển tiếng Việt Bên cạnh đó tác giả có thu thập thêm các bản scan tiếng Bana, bao gồm bản scan của từ điển tiếng Bana đang đƣợc sử dụng trong công tác dạy học (hơn 500 trang scan văn bản)
Các bản scan này đƣợc sử dụng cho việc huấn luyện thêm các mô hình nhận diện văn bản cho cả tiếng Việt và tiếng Bana
Một đặc điểm quan trọng của tiếng Bana mà tác giả tìm hiểu đƣợc là có sự vay mượn khá nhiều về mặt từ ngữ của tiếng Việt, và có ảnh hưởng sâu sắc bởi chữ quốc ngữ Do đó các từ đặc thù trong tiếng Bana hiện đƣợc biểu diễn thông qua các chữ cái (có dấu và không dấu) của tiếng Việt
Quá trình nhận diện văn bản sử dụng Tesseract cho tiếng Bana khả quan, tuy nhiên vì mô hình chƣa hỗ trợ đƣợc tiếng Bana nên tác giả phải tiến hành các xử lý hậu kỳ Việc xử lý hậu kỳ là cần thiết vì chƣa có mô hình ngôn ngữ cho tiếng Bana và việc chuẩn bị các dữ liệu trong giai đoạn này sẽ là tiền đề phát triển tiếp các mô hnh ìngôn ngữ cho tiếng Bana về lâu về dài
Dữ liệu cho bài toán dịch Việt-Bana làm giàu dữ liệu Đây là công việc tương đối khó và tốn khá nhiều công sức trong quá trình xử lý dữ liệu để tài Để có thể tiến hành xây dựng mở rộng kho ngữ liệu
Bana, tác giả cần thu thập khá nhiều văn bản liên quan, thường không nằm ở dạng song ngữ Sau khi thu thập, tác giả tiến hành làm giàu dữ liệu bằng các cách:
Kỹ thuật thay thế các từ đồng nghĩa đƣợc sử dụng nhƣ một trong các bước cơ bản Đối với tiếng Việt, có nhiều từ/cụm từ đồng nghĩa với nhau, phụ thuộc vào loại từ của nó (POS) Do đó, việc thay thế này sẽ làm phong phú hơn nguồn dữ liệu cũng nhƣ giúp cho việc dịch chính xác hơn
Kỹ thuật dịch ngƣợc đƣợc xem là một trong các kỹ thuật đƣợc dùng khá nhiều trong xử lý ngôn ngữ tự nhiên giúp làm giàu dữ liệu Để thực hiện kỹ thuật này, nhóm tiến hành sử dụng mô hình dịch Bana-Việt và Việt- Bana Bước đầu là dịch từ câu gốc tiếng Việt sang tiếng Bana với mô hình Việt- Bana, và sau đó tiến hành dịch câu mới sinh ra ngƣợc lại tiếng Việt với mô hình Bana -Việt
3.2.2 Xây dựng kho ngữ liệu Bana Kriêm
Các công việc đã đƣợc thực hiện để hoàn thành nội dung:
Dữ liệu thu thập đƣợc từ nguồn ngữ liệu đều ở dạng văn bản Để sử dụng đƣợc, quá trình số hoá cần thực hiện Nội dung phần này tập trung vào việc số hoá bộ dữ liệu thu thập đƣợc
Xử lý trước hình ảnh
Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ tiền xử lý để nâng cao chất lƣợng Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét hơn
Nhận dạng và nội suy ảnh (Image Recognition and Interpretation) Nhận dạng ảnh là quá trình xác định ảnh Quá trình này thường thu được bằng cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước Nội suy là phán đoán theo ý nghĩa trên cơ sở nhận dạng Có nhiều cách phân loai ảnh khác nhau về ảnh Theo lý thuyết về nhận dạng, các mô hình toán học về ảnh đƣợc phân theo hai loại nhận dạng ảnh cơ bản:
- Nhận dạng theo tham số
- Nhận dạng theo cấu trúc
Một số nhận dạng phổ biến hiện nay đang đƣợc áp dụng trong khoa học và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản (Text),…
Các vấn đề cơ bản trong xử lý ảnh
- Ảnh và điểm ảnh: Điểm ảnh được xem như là dấu hiệu hay cường độ sáng tại 1 toạ độ trong không gian của đối tƣợng và ảnh đƣợc xem nhƣ là 1 tập hợp các điểm ảnh
Là số các giá trị có thể có của các điểm ảnh của ảnh Nắn chỉnh biến dạng Ảnh thu nhận thường bị biến dạng do các thiết bị quang học và điện tử
Hình 3.1 Ảnh thu nhận và ảnh mong muốn Để khắc phục, ta sử dụng các phép chiếu, các phép chiếu thường được xây dựng trên tập các điểm điều khiển
Có 2 loại nhiễu cơ bản trong quá trình thu nhận ảnh
• Nhiều hệ thống: là nhiễu có quy luật có thể khử bằng các phép biến đổi
• Nhiễu ngẫu nhiên: vết bẩn không rõ nguyên nhân ->khắc phục bằng các phép lọc
Nhằm khắc phục tính không đồng đều của hệ thống gây ra Thông thường có 2 hướng tiếp cận:
Kết quả đạt đƣợc
3.3.1 Dữ liệu đã thu thập
Dữ liệu đƣợc thu thập cho nghiên cứu đƣợc thực hiện nhƣ sau:
Dữ liệu cho bài toán nhận diện văn bản
Các nguồn dữ liệu cụ thể tác giả thu thập phục vụ cho huấn luyện OCR đến từ các nguồn sau:
- Sở KH&CN - UBND tỉnh Bình Định, Viện ngôn ngữ học - Viện KHXH Việt Nam (2008), Nơ r Bơhnar (tiếng Bana)
- Hoàng Phê (chủ biên) (2003), Từ điển Tiếng Việt, nhà xuất bản Đà Nẵng - trung tâm Từ điển học
- Ban tu thƣ Khai Trí, Tự điển Tiếng Việt, nhà xuất bản Khai Trí
- Trung tâm Khoa học xã hội và nhân văn Quốc gia, Từ điển Tiếng Việt, nhà xuất bản Văn hóa Sài Gòn
- Bích Hằng (chủ biên), Từ điển đồng nghĩa - trái nghĩa Tiếng Việt, nhà xuất bản Dân Trí
Một vài mẫu trong các nguồn dữ liệu này cho thấy độ khó nhất định của quá trình nhận diện văn bản Hình bên dưới là một phần bản scan từ điển tiếng Bana-Việt Chúng ta có thể thấy chất lƣợng của các bản scan này mặc dù tốt nhƣng cần đƣợc xử lý cẩn thận thông qua các thủ thuật tiền xử lý trong xử lý ảnh hoặc huấn luyện với mô hình trên tập dữ liệu nhiều mẫu hơn và đa dạng hơn
Hình 3.11 Mẫu bản scan từ điển Bana Kriêm
Qua các bước tiền xử lý, dữ liệu được chuyển sang dạng nhị phân hóa như các mẫu dưới đây:
Hình 3.12 Mẫu bản scan sau khi đã được nhị phân hóa
Một số bản scan có thể không đủ tốt khiến cho quá trình nhận diện có thể sai, hoặc gặp một số lỗi bất thường do các nhiễu trên bản scan gây ra bởi máy quét các loại Các vấn đề phát sinh thường thấy với dữ liệu scan văn bản bao gồm:
- Các ngôn ngữ khác nhau cần có các từ điển khác nhau (một số ngôn ngữ không đƣợc hỗ trợ bởi các công cụ này)
- Các từ điển khác nhau cần các định dạng khác nhau (loại từ, số cột, )
- Cùng một từ điển có các định dạng khác nhau ở các trang khác nhau
- Viền quanh mỗi trang với các hình dạng và kích thước khác nhau, có thể bị nhầm lẫn nhƣ các ký tự
- Mật độ điểm ảnh thấp
Hình 3.13 Mẫu các bản scan có chất lượng không tốt
Với nguồn dữ liệu này, thông qua các phân tích, tác giả có các cơ sở để chọn lựa giải pháp phù hợp nhằm xử lý quá trình nhận diện văn bản cho phù hợp Việc nhận diện bao gồm các bước tiền xử lý và hậu xử lý thông qua các mô hình ngôn ngữ và các phép xử lý ảnh nhƣ sau:
- Thực hiện xử lý hình ảnh trước
Trong quá trình thu thập dữ liệu chƣa tốt nên dẫn đến có nhiều dữ liệu có chất lƣợng hình ảnh chƣa tốt Do vậy, cần phải xử lý dữ liệu sang thang xám trước khi chuyển sang bước tiếp theo nhận dạng kí tự quang học
Hình 3.14 Kết quả đạt được sau khi xử lý hình ảnh
Việc thực hiện nhận diện kí tự quang học cho dữ liệu bao gồm trích xuất từ nguồn dữ liệu, đƣợc bắt đầu từ tập dữ liệu đã đƣợc quét sẵn ra hình ảnh số, sau đó đã tiến hành dùng công cụ Pytesseract để trích xuất thông tin ra văn bản số giúp xử lý sau này Dưới đây là quy trình OCR trên cuốn từ điển:
Hình 3.15 Quá trình OCR cho việc thực hiện cuốn từ điển Tiếng Bana
Mục tiêu chính của bước này chính ra sinh ra văn bản số -file text (*.txt) từ tập hình ảnh có sẵn, tác giả đã tiến hành các bước theo tuần tự sau:
Lần lƣợt đọc các ảnh (*.jpg), mỗi ảnh ứng với 1 trang trong cuốn từ điển
Thực hiện bước tiền xử lý lọc nhiễu (noise filtering)
Chuyển qua thực hiện nhận dạng cạnh (canny edge detection) giúp nâng cao khả năng trích xuất thông tin
Thực hiện chỉnh độ nghiêng (skew correction) giúp tính góc trên hình ảnh sau cắt giúp hình ảnh thắng làm tăng hiệu suất cho việc nhận dạng kí tự
Thực hiện phân đoạn vùng văn bản để cắt từng dòng từ hình ảnh, từ đó dùng Pytesseract để trích xuất thông tin từ hình ảnh ra file text
Tiếp theo, dùng phương pháp suy nghiệm (heuristic) thực hiện bước sửa những kí tự bị lỗi lặp đi lặp theo hướng có logic
Hình 3.16 Kết quả đạt được sau khi OCR thô
Hiện tại ngôn ngữ tiếng Bana la tinh chƣa đƣợc hỗ trợ nhận dạng trong Tesseract Sau khi tác giả tìm hiểu ngôn ngữ tiếng Bana la tinh thì tác giả nhận thấy bảng chữ cái la tinh tiếng Bana khá tương đồng với bảng chữ cái la tinh tiếng Việt Do đó, tác giả đã sử dụng thƣ viện Tesseract tiếng Việt để nhận dạng ngôn ngữ tiếng Bana
Sau khi tác giả sử dụng thƣ viện Tesseract tiếng Việt để nhận dạng văn bản hình ảnh tiếng Bana thì tác giả đã thống kê những kí tự bị lỗi, do những kí tự la tinh này khác kí tự la tinh tiếng Việt, nhƣ sau:
Hình 3.17 Thống kê lỗi sau khi sử dụng Tesseract
Bảng 3.1 Các kí tự bị lỗi thường xuyên
BẢNG KÍ TỰ BỊ LỖI THƯỜNG XUYÊN
Kí tự đúng Kí tự bị lỗi Kí tự đúng Kí tự bị lỗi Ä, Â, Ã, Ấ ă ọ, õ, ó, ấ Ƀ È ĕ e, ẽ, ế, š
- Thực nghiệm sửa lỗi ký tự
Sau khi thực hiện bước thống kế kê các lỗi kí tự thường xuyên bị lỗi lặp đi lặp lại theo một cấu trúc nhất định, tác giả đã tập hợp lại một danh sách thay thế các lỗi này, nhƣ sau:
Hình 3.18 Tập hợp các lỗi thay thế
Hình 3.19 Kết quả đạt được sau khi sửa lỗi kí tự
Dữ liệu cho bài toán chuyển ngữ tiếng Việt - tiếng Bana Kriêm
Cụ thể một số thông tin về nguồn dữ liệu tác giả đang thu thập nhƣ sau:
- Chữ Bana Kriêm Bình Định: 1216 mẫu
- Các bản ghi âm phát thanh radio của Huyện Vĩnh Thạnh: 2423 mẫu
- Văn bản Khoa học – Công nghệ: 567 mẫu
- Văn bản Kinh tế – Xã hội: 1929 mẫu
- Văn bản chính trị: 1895 mẫu
- Văn bản Văn hóa – Thể thao: 3032 mẫu
- Tài liệu tiếng Bana (Bahnar Roh)
- Sổ tay phương ngữ tiếng Bana
Với nguồn dữ liệu này, tác giả hiện đang có các văn bản ở dạng số hóa của tiếng Việt, được đọc và phát bởi phát thanh viên người Bana Tuy nhiên, rất nhiều văn bản không ở dạng song ngữ nên bộ dữ liệu chuẩn hóa hiện nay vẫn còn tương đối tí Cụ thể, tác giả đã thu thập được như sau:
- Nguồn sách tiếng Bana: 6118 cặp
- Văn bản người dịch: 2901 cặp
Ngoài ra còn có các nguồn khác đƣợc tác giả thu thập bao gồm:
- Văn hóa - thể thao: 193 Để quá trình dịch máy đƣợc chính xác hơn, tác giả thực hiện làm giàu dữ liệu với kỹ thuật thay thế các từ đồng nghĩa đƣợc sử dụng nhƣ một trong các bước cơ bản Với tiếng Việt, chúng ta có:
- Số cặp từ đồng nghĩa: 13256
Khi được làm giàu dữ liệu với phương pháp này, chúng ta có
- Số cặp từ Việt - Bana: 6313
- Số cặp từ đƣợc làm giàu: 84506
Bên cạnh kỹ thuật làm giàu dữ liệu, nhóm còn thực hiện các phương pháp dịch ngược hỗ trợ tăng cường dữ liệu Các mô hình có thể được sử dụng cho kỹ thuật làm giàu này bao gồm
- Mô hình T5: vi-en: Vietnamese-English
Khi được làm giàu dữ liệu với phương pháp này, chúng ta có
- Số cặp câu Việt - Bana: 6313
- Số cặp câu đƣợc làm giàu: 51151
Bằng các kỹ thuật nêu trên, từ một lƣợng dữ liệu giới hạn, nhóm đã xây dựng được một bộ dữ liệu tương đối lớn với các phương pháp làm giàu đa dạng, kỳ vọng hỗ trợ đƣợc cho quá trình huấn luyện mô hình dịch máy Tuy nhiên, trong các dữ liệu đang và đã xử lý đa số là các câu dài Điều này có thể là một trở ngại lớn cho quá trình huấn luyện các mô hình dịch máy Việt-Bana
3.3.2 Bộ ngữ liệu tiếng Bana Kriêm
Kết quả xây dựng bộ ngữ liệu tiếng Bana Kriêm bằng cách số hóa các văn bản thu thập đƣợc nhƣ sau: Đối với việc nhận dạng văn bản hình ảnh thì độ chính xác của văn bản đầu ra là yếu tố quyết định hệ thống có đạt đƣợc kết quả mong muốn Để đo độ chính xác này, ta sẽ so sánh văn bản dự đoán khác nhau bao nhiêu so với văn bản thực tế Sự khác nhau càng nhỏ, sự chính xác của văn bản dự đoán được càng lớn Một giá trị thường được sử dụng để đo sự khác nhau giữa hai văn bản đó là Word Error Rate (WER) WER là tỉ lệ lỗi giữa văn bản dự đoán và văn bản đúng, đƣợc đo trên số lƣợng từ bị thay đổi giữa hai văn bản (do bị xóa, thêm, chỉnh sửa) trong quá trình dự đoán
S: số lƣợng từ bị thay thế
D: số lƣợng từ bị xoá
I: số lƣợng từ thêm vào
C: số lƣợng từ chính xác
Ngoài ra, ta cũng có thể định nghĩa thêm Char Error Rate (CER) một cách tương tự
Bảng 3.2 Kết quả so sánh ocr thô và heuristic
Một số hạn chế của mô hình
Kết quả đạt đƣợc còn phụ thuộc vào dữ liệu hình ảnh thu thập có chất lƣợng chƣa đƣợc tốt
Kết quả đạt đƣợc còn phụ thuộc vào dữ liệu hình ảnh thu thập có chất lƣợng chƣa đƣợc tốt
Size chữ quá nhỏ hay quá to cũng sẽ làm ảnh hưởng đến kết quả đầu ra
Để nhận diện bảng chữ cái Bana đƣợc tốt còn phụ thuộc vào mô hình LSTM trong OCR
Kết quả nhận diện bảng chữ cái Bana in hoa chỉ đạt 68% là do kết quả đánh giá WER
KẾT QUẢ SO SÁNH OCR THÔ VÀ HEURISTIC
Số từ đúng Độ chính xác
Số từ đúng Độ chính xác
1 Bảng chữ cái tiếng Bana chữ in hoa (size 14 ) 38 23 61% 26 68%
2 Bảng chữ cái tiếng Bana
3 Bảng chữ cái tiếng Bana
4 Bảng chữ cái tiếng Bana
3.3.3 Mô hình nhận dạng văn bản từ hình ảnh
Tác giả chọn sử dụng công cụ Tesseract với độ chính xác lên đến 97% cho tiếng Việt để thực hiện công việc nhận dạng văn bản từ hình ảnh Tuy nhiên, công cụ này chỉ hiệu quả khi đầu vào là các ảnh có chất lƣợng tốt Do đó, tác giả có áp dụng một số kỹ thuật để tiền xử lý các hình ảnh scan trước khi đưa qua Tesseract, đảm bảo cho Tesseract luôn hoạt động tốt Các bước tiền xử lý bao gồm:
Bước 1: Lọc nhiễu các biên xung quanh trang Bước 2: Xoay trang đúng vị trí
Bước 3: Điều chỉnh ảnh và khoảng cách ký tự Bước 4: Phân cột (không bắt buộc)
Một số mẫu kết quả khi chạy thực tế:
Mẫu dữ liệu đầu vào:
Hình 3.21 Kết quả trung gian
Sử dụng Tesseract để lấy ký tự từ ảnh:
Hình 3.22 Kết quả sử dung Tesseract
Hậu xử lý với Heuristics:
Hình 3.23 Kết quả hậu xử lý
3.3.4 Xử lý vấn đề mất cân bằng tài nguyên và vay mƣợn từ trong bài toán dịch máy Việt - Bana