Học cách đọc và viết để quay lại với sổ tay chữ viết tay
(research.google)- InkSight của Google Research khôi phục ảnh chụp chữ viết tay thành mực số ở mức từng nét bút, nhằm lưu trữ và chỉnh sửa sổ tay giấy như sổ tay số mà không cần thiết bị chuyên dụng
- Khác với OCR đơn thuần chỉ dừng ở việc chép lại văn bản, InkSight khôi phục quỹ đạo nét viết đã tạo ra chữ, giúp người dùng xem lại và viết tiếp trong khi vẫn giữ nguyên phong cách chữ viết tay
- Thay vì chỉ trích xuất đặc trưng hình học, mô hình học cả đọc và viết cùng lúc, dùng bộ mã hóa ViT và encoder-decoder mT5 để xử lý nhận dạng từ và sinh nét bút
- Với toàn bộ trang, hệ thống dùng OCR để tìm bounding box theo từng từ, rồi derender từng từ riêng lẻ trước khi thay thế chữ viết dạng pixel bằng các nét bút đã khôi phục
- Trong đánh giá, đầu ra Large-i khoảng 1 tỷ tham số được xem là gần giống mực số do con người tạo ra trong nhiều trường hợp, và 87% được đánh dấu là bản truy vết tốt hoặc chỉ có lỗi nhỏ
Vì sao muốn biến chữ viết tay trên giấy thành mực số
- Sổ tay số mang lại độ bền, khả năng chỉnh sửa và lập chỉ mục, nhưng nhiều người vẫn ghi chép bằng giấy và bút
- Quá trình chuyển chữ viết tay vật lý sang dạng số được gọi là derendering, và kết quả là các nét bút lưu chuyển động của bút hoặc ngón tay dưới dạng chuỗi điểm
- Cách biểu diễn này còn được gọi là biểu diễn chữ viết “online” hoặc mực số
- OCR thông thường chép lại chữ viết tay thành tài liệu văn bản, còn mực số ghi lại tài liệu viết tay dưới dạng tập hợp các nét
- Người dùng có thể chỉnh sửa bằng tay một cách tự nhiên hơn
- Có thể giữ được phong cách chữ và cảm giác chữ viết tay thực tế
- Có thể sắp xếp và tích hợp ghi chú cùng hình ảnh, văn bản, liên kết và các tính năng hỗ trợ số
- Trước đây đã có các cách dùng bút thông minh, giấy chuyên dụng hoặc phần mềm riêng, nhưng phần cứng bổ sung và chi phí là rào cản triển khai
InkSight khôi phục điều gì
- InkSight: Offline-to-Online Handwriting Conversion by Learning to Read and Write trích xuất các nét bút đã tạo ra chữ từ ảnh chụp sổ tay viết tay
- Chỉ dùng ảnh làm đầu vào mà không cần thiết bị riêng, và có thể xem mô hình cùng mã suy luận tại GitHub repo
- Không phụ thuộc vào các thành phần hình học điển hình như gradient, đường viền hay hình dạng của ảnh
- Mô hình học đồng thời hai năng lực
- Đọc: nhận dạng từ trong ảnh
- Viết: xuất ra các nét trông giống chữ viết tay
- Sự kết hợp này được thiết kế để hoạt động vững hơn với đầu vào khó như điều kiện ánh sáng, che khuất và hình thức thể hiện đa dạng
Luồng hệ thống để xử lý ở mức toàn trang
- Mục tiêu cơ bản là ghi lại quỹ đạo ở mức nét bút của chữ viết tay để người dùng có thể lưu vào ứng dụng ghi chú mình muốn
- Bên trong, một mô hình OCR có sẵn nhận diện các từ viết tay, sau đó mô hình chuyển từng từ đó thành nét bút
- Để tăng tính tái lập, tái sử dụng và dễ triển khai, hệ thống kết hợp bộ mã hóa ViT và encoder-decoder mT5 vốn được dùng rộng rãi
- Vì cần xử lý ảnh kích thước bất kỳ, nhiều độ phân giải và lượng nội dung khác nhau, khả năng mở rộng là thách thức chính
- Việc học trực tiếp từ đầu vào độ phân giải rất cao và chuỗi đầu ra dài làm chi phí tính toán tăng mạnh, nên quá trình derender trang được chia thành ba bước
- Dùng OCR để trích xuất bounding box theo từng từ
- Derender từng từ riêng biệt
- Thay thế biểu diễn pixel offline bằng các nét bút đã derender
- Để giảm khác biệt miền giữa ảnh tổng hợp của mực được render và ảnh chụp thật, nhóm nghiên cứu dùng tăng cường dữ liệu
- Ngẫu nhiên hóa góc mực, màu sắc và độ rộng nét
- Thêm nhiễu Gaussian và nền phức tạp
Cách học đọc và viết cùng lúc
- Việc thu thập đủ cặp ảnh và mực số đáp án cho học có giám sát là tốn kém, mất thời gian, và dường như chưa có bộ dữ liệu đủ đa dạng cho tác vụ này
- InkSight dùng cấu hình học đa nhiệm để tổng quát hóa mà không cần lượng lớn mẫu ghép cặp
- Hỗn hợp huấn luyện gồm năm loại tác vụ
- Tác vụ derendering sinh mực số từ ảnh
- Tác vụ derendering sinh mực số từ ảnh cùng văn bản OCR nhận dạng được
- Tác vụ nhận dạng xuất văn bản từ ảnh thật
- Tác vụ nhận dạng xuất văn bản từ ảnh tổng hợp
- Tác vụ lai nhận dạng-derendering xuất đồng thời văn bản và mực
- Mỗi tác vụ dùng văn bản đầu vào riêng theo tác vụ để mô hình có thể phân biệt trong cả huấn luyện lẫn suy luận
- Việc học đọc giúp định vị và trích xuất chính xác hơn các thành phần văn bản trong ảnh
- Việc học viết giúp biểu diễn vector đầu ra tuân theo động lực học vật lý và thứ tự nét gần với cách con người viết
Biểu diễn mực số và token hóa
- Quá trình huấn luyện dùng các cặp mực số tương ứng với ảnh văn bản
- Mực số được lấy mẫu từ quỹ đạo viết tay thời gian thực, rồi biểu diễn thành chuỗi nét
- Mỗi nét là một chuỗi điểm được lấy mẫu ở tốc độ cố định
- Ví dụ là lấy mẫu 50 điểm mỗi giây
- Ảnh tương ứng được tạo bằng cách render mực thành bitmap ở độ phân giải chỉ định
- Quá trình này tạo ra ánh xạ pixel-nét làm tiền đề cho cặp đầu vào-đầu ra của mô hình
- Bộ token hóa mực chuyển các điểm sang định dạng phù hợp với LLM
- Mỗi điểm được chuyển thành hai token mã hóa riêng tọa độ x và tọa độ y
- Chuỗi token mực bắt đầu bằng
b, biểu thị điểm bắt đầu nét - Sau đó là các token tọa độ của các điểm đã lấy mẫu
Dữ liệu đánh giá và các mô hình so sánh
- Nhóm nghiên cứu thu thập một bộ dữ liệu đánh giá riêng để đo hiệu năng
- Dữ liệu đánh giá bắt đầu từ dữ liệu OCR, rồi được bổ sung các cặp truy vết do con người tạo ra khi người tham gia trực tiếp đồ lại ảnh văn bản được đưa ra
- Ba biến thể mô hình được huấn luyện
- Small-p: khoảng 340 triệu tham số, cấu hình public
- Small-i: cấu hình in-house
- Large-i: khoảng 1 tỷ tham số
- Mốc so sánh là baseline General Virtual Sketching
- Trong cả đánh giá tự động lẫn đánh giá bởi con người, biểu diễn vector do hệ thống tạo ra vừa gần với ảnh đầu vào về mặt ngữ nghĩa và hình học, vừa tương tự dữ liệu mực số do con người tạo
Khác biệt thể hiện trong đánh giá định tính
- Nhóm nghiên cứu so sánh mô hình và GVS trên các bộ dữ liệu đánh giá công khai IAM, IMGUR5K và một bộ dữ liệu phác thảo ngoài miền
- Các mô hình InkSight nhìn chung phản ánh chính xác nội dung văn bản và bỏ qua nền không liên quan về mặt ngữ nghĩa
- Hệ thống cũng xử lý được đầu vào bị che khuất, cho thấy lợi thế của tri thức đọc đã học được
- GVS thường tạo nhiều nét lặp và gặp khó trong việc phân biệt nền với tiền cảnh
- Large-i giữ lại nhiều chi tiết hơn và chấp nhận được đa dạng phong cách ảnh hơn
- Trên dữ liệu phác thảo ngoài miền, các mô hình nhìn chung vẫn derender được phác thảo đơn giản, nhưng vẫn xuất hiện artifact như nét thừa hoặc lệch
Đánh giá con người và các giới hạn
- Hiện chưa có chỉ số hay benchmark được thiết lập sẵn cho đánh giá định lượng trong lĩnh vực này
- Trong đánh giá con người, dữ liệu truy vết do người tạo từ HierText dataset được dùng làm đối chứng, còn đầu ra mô hình trên cùng mẫu được dùng làm nhóm thử nghiệm
- Người đánh giá xem đồng thời ảnh gốc và mẫu mực số đã render, rồi trả lời hai câu hỏi
- Đầu ra có phải là bản truy vết hợp lý của ảnh đầu vào hay không
- Mực số này có thể trông như do con người tạo ra hay không
- Có 16 người tham gia đánh giá, đều quen với mực số nhưng không tham gia nghiên cứu
- Mỗi mẫu được 3 người đánh giá
- Kết quả được tổng hợp theo đa số
- Phần lớn mực derender do Large-i tạo ra được đánh giá là gần với mức do con người tạo
- 87% đầu ra của Large-i được đánh dấu là bản truy vết tốt hoặc chỉ có lỗi nhỏ
- Trong ví dụ so sánh, mọi mô hình đều xử lý sai dấu ngoặc kép ở mẫu dòng trên, còn ở mẫu dòng dưới có trường hợp bản truy vết của con người chỉ tập trung vào từ khóa chính nên bỏ lỡ hầu hết các thành phần khác
- Bản truy vết của con người cũng không khớp hoàn toàn với ảnh gốc, cho thấy việc truy vết phần chữ viết tay trong HierText vốn phức tạp và khó
Kết luận
- InkSight là một trong những cách tiếp cận đầu tiên nhằm chuyển ảnh chụp chữ viết tay thành mực số
- Cấu hình huấn luyện được thiết kế để hoạt động ngay cả khi không có dữ liệu huấn luyện ghép cặp
- Hệ thống hoạt động vững trên nhiều loại đầu vào, có thể áp dụng cho toàn bộ sổ tay viết tay và cũng tổng quát hóa phần nào sang các bản phác thảo ngoài miền
- Đây là cách tiếp cận có thể xây dựng bằng các thành phần tiêu chuẩn mà không cần mô hình hóa quá phức tạp
1 bình luận
Ý kiến trên Hacker News
Tôi đã mua một bảng trắng gắn tủ lạnh cỡ nhỏ, và khi kết hợp với tính năng trên iPhone chụp ảnh chữ viết tay rồi sao chép thành văn bản thì nó hoạt động khá tuyệt
Không phải lúc nào cũng hoàn hảo và chữ của tôi cũng không hoàn hảo, nhưng đủ tốt để chỉ cần sửa một hai ký tự rồi gửi đi
Hiệu quả hơn vì không phải gửi cả ảnh, không cần nhìn màn hình để gõ hay vuốt, vợ/chồng tôi có thể xem danh sách bất cứ lúc nào, và cũng không cần đưa lên đám mây
Nó không cần nguồn điện, bút dạ dùng được lâu, và khi đồ trong tủ lạnh hết thì việc cầm ngay cây bút lên viết vào tủ lạnh tạo cảm giác rất tự nhiên
Rất tuyệt. Có một ứng dụng thú vị của kiểu công nghệ này. Chữ viết tay của tôi khá xấu, và khi viết nhanh thì còn tệ hơn
Khi giảng dạy, chữ tôi viết trên bảng nhiều lúc tệ hơn rất nhiều so với mong muốn
Có lẽ có thể huấn luyện hệ thống này bằng nét chữ tôi viết thật chậm và thật nắn nót, rồi để nó biến nét chữ xấu viết nhanh trên bảng trắng trong lúc dạy thành phiên bản chữ của tôi gọn gàng hơn
Cảm giác phản hồi của nó hoàn toàn khác bút bi, và còn bị ảnh hưởng bởi loại giấy cũng như mực. Việc viết trở nên bớt “có thể đoán trước” hơn và thú vị hơn một chút
Bạn có thể bắt đầu với loại rẻ 5–15 đô la, ngòi cỡ trung, một số người sau đó chuyển sang sưu tầm bút máy, nhưng phần lớn việc viết trên giấy của tôi là bằng cây Pelikan Jazz khoảng 20 đô la
Lúc đầu sẽ chậm hơn, nhưng không kéo dài lâu
Đó là một trong những lời khuyên “thay đổi cuộc chơi” tôi nhận được khi làm gia sư ở đại học. Lời khuyên kia là luôn chép sách từ sau ra trước, rất hữu ích nhưng giờ có phần hơi lỗi thời
Đặc biệt nếu kết hợp LaTeX với phần âm thanh giải thích công thức thì còn có thể sửa lỗi
Chỉ nhìn tiêu đề thôi, tôi đã ngây thơ nghĩ đây là bài viết về cách lấy lại kỹ năng đã mất để lại viết ghi chú bằng chữ tay cho dễ đọc và đẹp
Đây đúng là vấn đề tôi đang gặp phải sau nhiều năm gõ quá nhiều và viết tay quá ít
Đúng là nghiên cứu thực tế của Google có giúp ghi chú số của tôi bớt lộn xộn hơn. Nhưng tôi không muốn phải dựa vào đổi mới công nghệ để làm chữ viết tay của mình đẹp lên
Cũng có những người phát hành miễn phí hoặc bán giấy luyện có dòng kẻ đặc biệt để giúp căn nhiều chiều cao khác nhau hoặc giữ độ nghiêng hoàn hảo
Giống như khi mới học viết, bạn phải tự dành thời gian và sự chú ý để làm điều đó
Chữ của tôi đẹp hơn hẳn khi viết bằng bút máy so với bút bi hay bút gel. Có vẻ vì bút máy buộc bạn phải cầm ở vị trí và góc tối ưu. Nó không phải kiểu cứ ấn xuống giấy ở bất kỳ góc nào cũng viết được, nên nghiêm ngặt hơn, đồng thời cũng cho cảm giác trơn hơn và phản hồi tốt hơn
Không cần đi quá xa, thường chỉ cần Pilot Metro ngòi trung khoảng 20 euro hoặc sản phẩm tương tự là đủ
Từ đó bạn có thể dễ dàng phát triển phong cách riêng của mình
Bút máy giúp tôi giảm tốc độ, nhưng về cơ bản đây là vấn đề chủ động tạo ra những con chữ đẹp và viết đủ chậm; khi việc đó trở nên dễ hơn thì tốc độ cũng tăng trở lại. Dù vậy, thói quen dành đủ sự chú ý để tạo ra những con chữ đẹp vẫn còn
Quan trọng hơn việc luyện tập có chủ đích kiểu dùng vở luyện hay bài tập là viết chậm đủ để tạo đúng hình dạng chữ cái cho đến khi trí nhớ cơ bắp tích lũy và tốc độ quay trở lại
https://handwritingrepair.info/
Hoặc bạn cũng có thể xem
https://sites.google.com/view/briem/free-books
The First Writing Book: Arrighi's Operina rất đẹp của John Howard Benson hoặc An Italic Calligraphy Handbook rất hay của Carolyn Knudsen cũng đáng đọc. Tên sách nghe khiêm tốn nhưng nội dung còn hay hơn nhiều, và bạn có thể dùng cùng bút marker đầu vát hoặc bút máy
10 năm trước tôi đã thử dùng Tesseract cho OCR, và tiếng Anh được nhận diện đủ tốt. Nếu nhớ không nhầm thì Tesseract cũng do Google phát triển và là mã nguồn mở
Khi đó tôi đã thử với một ngôn ngữ không phải tiếng Anh, cụ thể là tiếng Hy Lạp, nhưng kết quả rất tệ
Thật vui khi thấy có nghiên cứu OCR tốt dựa trên Transformer
Tôi cũng OCR cả mục lục, rồi thử điều chỉnh thiết lập phân đoạn trang trong terminal cho đến khi tạo ra đầu ra có thể copy-paste được, sau đó thêm mục lục có thể điều hướng
1: https://github.com/ocrmypdf/OCRmyPDF đã hỗ trợ việc này
2: https://tesseract-ocr.github.io/tessdoc/Command-Line-Usage.html, “ Using different Page Segmentation Modes”
Dù vậy, ưu điểm là miễn phí
Tôi tò mò không biết đâu là mức tốt nhất hiện nay trong lĩnh vực phát hiện chữ viết tay từ ảnh
Theo dõi nét bút cũng hay, nhưng tôi quan tâm hơn đến việc chuyển ghi chú viết tay của mình sang Markdown
Tuy nhiên độ chính xác chỉ khoảng gần 90~95%, nên vẫn phải rà lại đầu ra trước khi tin tưởng
Đây là một thử nghiệm rất thú vị. Tôi đã làm ứng dụng chữ viết tay vài năm nay, và sẽ thật tuyệt nếu có thể thêm tính năng chụp ảnh rồi chuyển thành mực số
[0] https://scrivanolabs.github.io
Liệu nó có đọc được cả nét chữ nguệch ngoạc của bác sĩ không? Nếu làm được thì đây có thể là đột phá trong lĩnh vực nhập dữ liệu y tế
Cần cực kỳ thận trọng khi chèn thêm một tầng diễn giải nữa giữa bác sĩ và điều dưỡng điều trị
Thật tiếc là trường y không dạy chữ in kiểu khối như cách người ta từng dạy cho họa viên kỹ thuật ngày xưa
Khoảnh khắc Apple Notes chỉnh chữ của tôi nhưng vẫn giữ đúng nét chữ của chính tôi thật sự khiến tôi rợn người
Tôi vẫn mong có một môi trường lập trình hỗ trợ nhập bằng bút trên máy tính bảng. Giá mà đừng bắt người ta phải mang theo bàn phím Bluetooth
Đáng tiếc là phần lớn mọi người có lẽ sẽ không trả tiền, nên có vẻ chẳng ai xem đây là cơ hội kinh doanh đáng bận tâm
Tôi cũng thích làm việc với giấy và bút, nhưng nó hợp hơn cho việc phác thảo ý tưởng, sơ đồ và danh sách việc cần làm, hơn là nhập liệu có cấu trúc
Tôi nghĩ các mô hình biến chữ viết tay “ngoại tuyến”, tức mực trên giấy, thành dạng “trực tuyến” là thứ tự nét và thời điểm, có thể cực kỳ hữu ích cho các pipeline nhận diện chữ viết tay tài liệu lịch sử
Nhưng rốt cuộc vẫn cần một cách tiếp cận tích hợp từ đầu đến cuối
Tôi không hiểu vì sao nhận diện chữ viết tay trong tài liệu lịch sử lại bị bỏ quên đến vậy trong mọi benchmark đánh giá mô hình đa nhiệm. Có hàng triệu tài liệu lịch sử viết tay chưa được lập chỉ mục, và chúng có thể giúp chúng ta hiểu quá khứ gần của mình tốt hơn rất nhiều
Hơn nữa, chúng cũng có thể giúp các mô hình hiểu quá khứ gần tốt hơn rất nhiều