12 thg 4, 2023

Google Lens biến hình ảnh thành văn bản như thế nào?

Hiện nay, khi chúng ta thấy những dòng chữ, đoạn văn trên trang sách, trên áp-phích hay trên bảng hiệu... ta đều có thể sử dụng Google Lens trên smartphone của mình để đọc những dòng chữ ấy, copy vào bộ nhớ để rồi dán vào một file văn bản nào đó (thay vì hí hoáy ghi lại vào sổ tay hay gõ lại vào máy tính) - thậm chí có thể cho smartphone của ta đọc thành tiếng những văn bản ấy để nghe.

Điều đó khiến ta tò mò: Làm thế nào mà tất cả những điều đó lại xảy ra trên điện thoại của tôi? Làm cách nào để máy ảnh nhận dạng các từ với những phông chữ khác nhau và những ngôn ngữ đa dạng?

Ana Manasovska, kỹ sư phần mềm của Google

Miranda Wilson đã đem những thắc mắc này hỏi Ana Manasovska, một kỹ sư phần mềm làm việc tại Zurich, một trong những chuyên gia của Google đi đầu trong việc chuyển đổi hình ảnh thành văn bản. Dưới đây là nội dung hỏi đáp:

Ana, hãy cho chúng tôi biết về công việc của bạn ở Lens.

Công việc của tôi liên quan đến lĩnh vực văn bản, phải làm sao cho ứng dụng có thể phân biệt văn bản và sao chép văn bản đó để tìm kiếm hoặc dịch văn bản đó - mà không cần nhập. Ví dụ: nếu bạn hướng máy ảnh của điện thoại vào một áp phích bằng tiếng nước ngoài, ứng dụng có thể dịch văn bản trên đó. Và đối với những người mù hoặc có thị lực kém, nó có thể đọc to văn bản. Khá ấn tượng, phải không?

Vì vậy, một phần công việc mà nhóm của tôi làm là giúp Lens nhận dạng không chỉ văn bản mà còn cả cấu trúc của văn bản. Con người chúng ta tự động hiểu văn bản được tách thành các câu và đoạn văn, hoặc các khối và cột và biết những gì đi cùng nhau. Tuy nhiên, rất khó để một chiếc máy có thể phân biệt được điều đó.

Đây có phải là máy học (machine-learning) không?

Đúng. Nói cách khác, nó sử dụng các hệ thống (chúng tôi gọi là các mô hình) mà chúng tôi đã đào tạo để phân biệt các ký tự và cấu trúc trong hình ảnh. Hệ thống máy tính truyền thống chỉ có khả năng hạn chế để làm điều này. Nhưng mô hình máy học của chúng tôi đã được xây dựng để “tự dạy” trên bộ dữ liệu khổng lồ và đang học cách phân biệt các cấu trúc văn bản giống như cách con người sẽ làm.

Hệ thống có thể hoạt động với các ngôn ngữ khác nhau không?


Có, nó có thể nhận dạng 30 loại chữ viết, bao gồm cả chữ Cyrillic, Devanagari, tiếng Trung và tiếng Ả Rập. Hiện tại, nó chính xác nhất đối với các ngôn ngữ dùng bảng chữ cái La tinh, nhưng ngay cả ở đó, nhiều loại phông chữ khác nhau cũng đưa ra những thách thức. Tiếng Nhật và tiếng Trung rất phức tạp vì chúng có nhiều biến hoá trong các ký tự. Những thay đổi nét chữ nhỏ mà máy chưa được "học" có thể thay đổi hoàn toàn ý nghĩa.

Phần thách thức nhất trong công việc của bạn là gì?

Thách thức lớn là có rất nhiều điều phức tạp và mơ hồ, vì vậy tôi đã phải học cách điều hướng chúng. Mọi thứ luôn chuyển động không ngừng với nhịp độ rất nhanh, và bạn phải đặt ra nhiều câu hỏi cũng như nói chuyện với nhiều người để có được câu trả lời mình cần.

Thực tế thì trong việc mã hoá bạn dùng đến những công cụ gì?

Hầu hết tôi sử dụng một ngôn ngữ lập trình gọi là C++, ngôn ngữ này cho phép bạn chạy các bước xử lý cần thiết để đưa bạn từ một hình ảnh sang một biểu diễn của các từ và cấu trúc.

Hừm, tôi hơi hiểu một chút. Nó trông như thế nào?


Đoạn mã trên cho thấy quá trình xử lý để chỉ trích xuất tiếng Đức từ một phần văn bản. Vì vậy, giả sử hình ảnh hiển thị tiếng Đức, tiếng Pháp và tiếng Ý — chỉ tiếng Đức mới được trích xuất để dịch. Bạn hiểu không?

Thôi, bỏ qua đi! Hãy cho tôi biết những gì bạn yêu thích về công việc của bạn.

Nó nung sôi niềm yêu thích suốt đời của tôi về việc giải quyết các bài toán. Tôi cũng thực sự thích việc tôi đang xây dựng thứ gì đó mà mình có thể sử dụng trong cuộc sống hàng ngày. Tôi sống ở Zurich nhưng nói tiếng Đức không tốt nên tôi sử dụng Lens để dịch sang tiếng Anh hàng ngày.
____

Bạn đọc xong chưa? Tui đọc xong rồi và kết luận: Biết Google Lens làm được vậy và ứng dụng nó vào công việc hàng ngày là tốt rồi. Còn nó làm được việc đó như thế nào thì... thây kệ tía nó!

Phạm Hoài Nhân
Theo bài viết của Miranda Wilson trên Google Blog

Không có nhận xét nào:

Đăng nhận xét