- Model OCR image-to-Markdown berperforma tinggi yang melampaui sekadar pengenalan karakter dengan mengubah seluruh dokumen ke struktur Markdown
- Mengubah rumus matematika ke format LaTeX, menambahkan deskripsi otomatis pada gambar, dan menampilkan tabel sebagai tabel HTML/Markdown untuk menghasilkan output yang dioptimalkan untuk pemanfaatan LLM
- Mengenali tanda tangan, watermark, kotak centang dan lainnya lalu mengubahnya ke bentuk seperti
<signature>, <watermark>, ☐/☑, menunjukkan kemampuan pemrosesan yang sangat baik untuk tiap komponen dokumen
- Dapat digunakan dengan mudah melalui Transformers atau server vLLM dari Hugging Face, dan juga bisa dipakai dalam bentuk aplikasi web melalui pustaka
docext
- Memiliki akurasi dan tingkat strukturisasi yang sangat tinggi untuk berbagai jenis dokumen dan tata letak kompleks, sehingga sangat berguna untuk kontrak, formulir, laporan, dan lainnya
Gambaran proyek dan pentingnya
- Nanonets-OCR-s adalah model inovatif yang melampaui fungsi OCR umum (optical character recognition) dengan menganalisis makna dan struktur dokumen lalu menghasilkan keluaran dalam format Markdown
- Model ini membedakan rumus, gambar, tabel, kotak centang, tanda tangan, dan watermark, lalu mengubahnya ke tagging dan cara representasi yang bermakna (LaTeX, HTML, Markdown, dll.) sehingga cocok untuk pekerjaan downstream maupun pemrosesan dokumen berbasis LLM (large language model)
- Dibandingkan proyek OCR open source yang sudah ada, model ini menunjukkan performa lebih tinggi dalam struktur dokumen yang kompleks dan ekstraksi beragam elemen semantik, sekaligus memperlihatkan potensi penerapan alur kerja otomatis
- Ini adalah versi hasil fine-tuning model Qwen2.5-VL-3B-Instruct, yang mengidentifikasi berbagai komponen dokumen dan memberi tag dengan markup yang bermakna
Fitur utama
- Pengenalan rumus LaTeX
- Persamaan dan rumus matematika yang ada di dokumen secara otomatis diubah dan ditampilkan dalam sintaks LaTeX sesuai tipe inline(
$...$) atau display($$...$$)
- Deskripsi gambar cerdas
- Untuk setiap gambar, model menjelaskan secara rinci karakter, gaya, dan isi gambar di dalam tag
<img>
- Beragam gambar seperti logo, chart, dan grafik juga dijelaskan bersama konteks dan maknanya sehingga diubah menjadi input yang cocok untuk pemanfaatan LLM
- Deteksi dan pemisahan tanda tangan
- Gambar tanda tangan dipisahkan dari teks dan diproses dalam tag
<signature> tersendiri
- Nilai gunanya tinggi untuk pemrosesan otomatis dokumen hukum dan bisnis
- Ekstraksi watermark
- Teks watermark yang disisipkan di dokumen dideteksi lalu dirapikan secara terpisah di dalam tag
<watermark>
- Konversi kotak centang dan tombol radio
-
- Ditampilkan sebagai simbol Unicode standar dalam bentuk ☐ (tidak dicentang), ☑ (dicentang), ☒ (ditolak)
- Meningkatkan keandalan pemrosesan dokumen formulir seperti survei dan formulir pendaftaran
- Ekstraksi struktur tabel kompleks
- Bahkan tabel yang kompleks dapat diubah ke bentuk tabel Markdown dan HTML sehingga sangat mudah dimanfaatkan
Cara penggunaan utama
Contoh kode Python
- Model dapat dimuat dan dijalankan dengan mudah menggunakan pustaka transformers dari Hugging Face
- Jika gambar diberikan sebagai input, hasilnya disediakan dalam bentuk Markdown terstruktur yang mencakup teks, tabel, rumus, deskripsi gambar, watermark, dan lainnya
- Nomor halaman atau watermark dibungkus dan dibedakan dengan
, dan sejenisnya
- Kotak centang ditampilkan dengan simbol Unicode (☐, ☑)
Pemanfaatan berbasis vLLM
- Model dapat didaftarkan ke server vLLM lalu diakses dan digunakan dengan mudah melalui API kompatibel OpenAI
- Saat gambar dimasukkan, hasil konversi seperti teks, tabel, rumus, dan watermark ditampilkan dalam format yang konsisten
Pemanfaatan paket docext
- Melalui paket terpisah bernama
docext, Nanonets-OCR-s bisa langsung diterapkan untuk strukturisasi dokumen hanya dengan menjalankan perintah tertentu
- Bisa merujuk ke dokumentasi GitHub
2 komentar
Komentar Hacker News
Saya bekerja di Nanonets, dan sangat antusias bisa merilis model VLM berukuran 3B bernama Nanonets-OCR-s.
Model ini adalah model ringan yang dioptimalkan untuk mengubah dokumen menjadi Markdown yang rapi dan terstruktur.
Ini karena model tersebut telah mempelajari struktur dan konteks dokumen, seperti tabel, rumus, gambar, diagram, watermark, kotak centang, dan lain-lain.
Fitur utamanya mencakup pengenalan rumus LaTeX (mengonversi dengan benar dengan membedakan rumus inline dan blok), deskripsi gambar bawaan (menggunakan tag
img, mendukung chart/logo/diagram, dll.), deteksi dan pemisahan tanda tangan (keluar dalam bloksignature), ekstraksi watermark (disimpan dengan tagwatermark), penanganan cerdas kotak centang/tombol radio (konversi Unicode untuk meningkatkan keandalan pascapemrosesan), dan ekstraksi struktur tabel kompleks (tabel multi-baris/kolom juga ditampilkan dengan baik dalam Markdown dan HTML).Jika ingin mencobanya sendiri, silakan lihat Huggingface atau Docext Colab
Tautan yang benar untuk Docext adalah README.md.
Saya penasaran apakah muncul gejala halusinasi pada LLM yang digunakan.
Saya penasaran apakah ekstraksi gambar itu sendiri dimungkinkan, atau apakah masih memerlukan proses ekstraksi terpisah.
Saya penasaran apakah ini bisa dimanfaatkan untuk mem-parsing foto menu restoran atau PDF agar sesuai dengan skema JSON (mungkin dengan bantuan LLM untuk pascapemrosesan), atau apakah LLM multimodal besar lebih cocok untuk penggunaan seperti ini.
Saya mencoba beberapa LLM untuk menerjemahkan kamus Shipibo (bahasa pribumi Peru)-Spanyol menjadi kamus bahasa Inggris, tetapi sulit dipahami karena ada dua kolom, line break yang aneh, dan campuran Shipibo serta Spanyol dalam definisinya.
Selain itu, kualitas pindaian juga tidak bagus.
Saya jadi berpikir harus mencoba model ini.
Selama puluhan tahun saya terus mencari solusi untuk mengambil semua materi yang tersimpan di Word dan PowerPoint lalu mengubahnya ke bentuk standar agar setiap elemennya bisa digunakan ulang dalam format lain.
Ini adalah blok bangunan inti yang benar-benar diperlukan untuk membangun sistem tersebut.
Sekarang saya butuh fitur arsip atau histori, yaitu agar setiap elemen bisa dengan mudah diarsipkan dan dipanggil kembali.
Pekerjaan yang benar-benar keren.
Sangat disayangkan model seperti ini hanya menargetkan Markdown.
Pada praktiknya, Markdown memiliki banyak versi dan dukungannya untuk catatan kaki, referensi, gambar, dan lain-lain masih kurang.
Dibutuhkan format yang lebih terstruktur dan memiliki spesifikasi yang jelas.
Sebenarnya, saat mengonversi ke Markdown kami juga melatih model untuk melakukan semantic tagging secara bersamaan.
Misalnya, persamaan diekstrak sebagai LaTeX, dan gambar (diagram, ilustrasi, dll.) dideskripsikan secara rinci dengan tag
img.Tanda tangan (
signature), watermark (watermark), nomor halaman, dan lain-lain juga memanfaatkan tag.Tabel kompleks (multi-baris/kolom) dikeluarkan sebagai tabel HTML, bukan Markdown.
Konsep "Markdown terstruktur" justru terasa lebih menarik daripada model OCR LLM itu sendiri, tetapi pada akhirnya rasanya hanya sebatas memberi tag pada elemen tertentu, jadi pemanfaatannya di luar model terasa agak terbatas.
Saya penasaran apa kelebihan dan kekurangannya dibandingkan dengan docling(https://github.com/docling-project/docling).
Saya penasaran apa bedanya dengan Datalab/Marker(https://github.com/datalab-to/marker).
Saya telah membandingkan banyak konverter PDF->MD, dan sejauh ini Marker adalah yang terbaik, meski belum sempurna.
Berdasarkan pengalaman pribadi, Marker cukup cocok untuk mengonversi makalah yang mencampurkan rumus kompleks dan kode.
Misalnya, jika halaman dari makalah transformasi Laplace terbalik Fortran yang mencampurkan rumus (campuran inline/display) dan blok kode monospace diproses dengan Marker, inline $\sigma_0$ rusak menjadi "<sup>s</sup> 0", dan $f(t)$ menjadi "<i>f~</i>~t*!".
Kelebihan model ini adalah bagian-bagian seperti itu sekarang bisa dikeluarkan secara internal dengan akurat.
Tangkapan layar referensi(https://imgur.com/a/Q7UYIfW)
Saya baru mulai melakukan perbandingan silang sendiri, jadi kalau bisa memberi tahu daftar kandidatnya saya akan sangat berterima kasih.
Saya sendiri membuat skrip PowerShell untuk menerapkan model ini ke PDF dari mana saja.
Setelah dicoba langsung, GPU saya (1080 8GB) sudah tua sehingga kecepatan jalannya cukup lambat (setidaknya lebih dari 5 menit per halaman).
Kalau ada yang ingin mencoba utilitas PDF to markdown yang berjalan di Cloud Run (dengan dukungan GPU eksternal), beri tahu saya.
Kalau sudah selesai, saya juga akan membagikan tautannya.
Baru saja saya menjalankannya di Cloud Run dan melaporkan hasil sampelnya.
Melihat sebagian hasil dari animate.pdf, judul, penulis, penerbit, ilustrasi hitam-putih (dijelaskan dengan tag
img), dan tag digitalisasi Google berhasil diekstrak dengan baik.Daftar isi juga terlihat diekstrak dengan sempurna dalam bentuk tabel.
Selain kecepatannya yang lambat, saya sangat puas dengan fungsi dan akurasinya.
Saya sangat tertarik dengan layanan PDF to markdown yang menggunakan Cloud Run.
Saya penasaran bagaimana model ini menangani dokumen yang memiliki tabel multi-kolom atau multi-baris (contoh: rowspan di halaman 1, colspan di halaman 29 dari PDF ini).
Saya penasaran seperti apa performa pengenalan teks non-Inggris.
Setahu saya, OCR berbasis LLM yang ada saat ini jauh tertinggal dari OCR tradisional dalam dukungan bahasa asing.
Dalam pengalaman saya, saat menggunakan Google Translate dan ChatGPT langsung pada gambar, performa ChatGPT selalu lebih baik.
Khususnya, untuk menu tulisan tangan berbahasa Jepang pun ia bisa menerjemahkan dan menjelaskannya dengan baik.
Model yang tidak menyebut dukungan multibahasa pada kenyataannya performanya turun drastis untuk PDF non-Inggris.
Selain itu, model dasarnya (
Qwen-2.5-VL-3B) bersifat multilingual.Saya pernah melihat postingan di Reddit yang mengatakan bahasa Tionghoa juga berjalan baik(tautan).
Saya mencoba memproses sampel struk kartu berbahasa Korea; meskipun kecepatannya lambat, hasil pembacaannya datang dengan sempurna.