3 poin oleh GN⁺ 2024-11-17 | 1 komentar | Bagikan ke WhatsApp
  • Alat web ini membantu mengurangi pekerjaan memindahkan teks dari gambar dokumen lalu merapikannya kembali melalui konversi Markdown terstruktur
  • Saat ini input web berfokus pada unggah gambar, dan disebutkan bahwa dukungan PDF akan segera tersedia
  • Layanan ini berjalan berbasis paket npm llama-ocr dan Together AI
  • Di JavaScript, Anda bisa meneruskan filePath dan TOGETHER_API_KEY ke fungsi ocr untuk menerima hasil dalam bentuk Markdown
  • Mendukung unggahan web maupun pemanggilan lewat kode, sehingga konversi gambar dokumen bisa dicoba sesuai pekerjaan manual atau alur pengembangan

Mengubah dokumen gambar menjadi Markdown

  • LlamaOCR.com adalah alat untuk mengubah dokumen yang diunggah menjadi Markdown
  • Halaman web menjelaskan “Upload an image to turn it into structured markdown”, dan membuat Markdown terstruktur melalui unggah gambar
  • Dukungan PDF ditandai sebagai “soon”, sehingga cakupan saat ini berfokus pada gambar

Cara menggunakannya di kode

  • Jika menggunakan paket npm llama-ocr, Anda dapat menjalankan OCR dari kode JavaScript
import { ocr } from 'llama-ocr';

const markdown = await ocr({
  filePath: './trader-receipt.jpg',
  apiKey: process.env.TOGETHER_API_KEY
});
  • Contoh tersebut memasukkan jalur file gambar ke filePath, dan meneruskan variabel lingkungan TOGETHER_API_KEY ke apiKey
  • Layanan ini berbasis llama-ocr dan Together AI

1 komentar

 
GN⁺ 2024-11-17
Komentar Hacker News
  • Saya pembuat llama-ocr. Terima kasih atas pembagian dan respons positifnya. Saya butuh OCR API yang sederhana, jadi saya membuatnya awal minggu ini, dan ini mem-parsing gambar menjadi Markdown terstruktur dengan Llama 3.2 Vision yang di-host di Together.ai
    Saat ini juga tersedia sebagai paket npm. Saya berencana menambahkan fitur seperti parsing PDF dan respons JSON, dan saya akan coba menjawab jika ada pertanyaan

    • Saya memasukkan invoice dengan 3 item yang sama, tetapi alih-alih mengekspornya sebagai 3 bullet point seperti biasanya, sistem ini membuat tabel dengan kolom quantity yang tidak ada di kertas aslinya
      Saya penasaran apakah transformasi sebesar ini memang perilaku yang diharapkan atau diinginkan. Kadang keluarannya berupa daftar bullet, kadang tabel, jadi pemrosesan otomatis setelahnya jadi sedikit lebih sulit
    • Saya pernah kesulitan mengekstrak konten ilmiah dari PDF poster, dan misalnya Nougat sering rusak ketika layout-nya berubah
      Saya penasaran apakah kasus penggunaan seperti ini juga dipertimbangkan
    • “Need an example image? Try ours.” adalah ide yang bagus. Akan menyenangkan kalau lebih banyak layanan menawarkan fitur serupa
    • Saya penasaran tingkat akurasinya seperti apa
      Saya ingin tahu jenis kesalahan apa yang dibuat dibandingkan sistem OCR yang sudah ada
    • Saya penasaran apakah mungkin juga ada opsi menggunakan LLM lokal
  • Ini pada dasarnya hanya mengirim gambar ke Llama 3.2 Vision dan memintanya membaca teks
    Seperti output LLM lain, ini rentan terhadap halusinasi. Model ini tidak membaca bentuk huruf langsung dari piksel, melainkan menilai teks sambil mendeskripsikan gambar berdasarkan gambar dan caption yang dipelajarinya. Terutama jika sulit dibaca, model bisa sepenuhnya mengarang kata-kata

    • Sistem OCR lain juga begitu, hanya saja dalam konteks itu kesalahan seperti itu tidak disebut halusinasi
  • Kelihatannya keren. Saya sedang banyak memakai OCR belakangan ini, jadi senang melihat ada alat baru di bidang ini. Pemimpin saat ini di ranah PDF→Markdown mungkin adalah Nougat dari Facebook[1], dan saya ingin menghubungkannya ke DSPy untuk membandingkan mana yang lebih baik untuk buku filsafat
    Proyek Zerox[2] dari startup yang ditautkan repositori ini juga terlihat bagus, dan setidaknya promosinya jauh lebih mulus daripada Nougat. Kalau ada pakar sungguhan yang lewat, saya ingin mendengar koreksi atau sarannya
    Ada dua hal yang saya penasaran. 1) Apa itu Together.ai dan apakah model ini open source. Situs webnya terlihat seperti layanan hosting, dan halaman “Custom Models”[3] tampak lebih mirip fine-tuning khusus daripada pelatihan model proprietary mereka sendiri. Sepertinya ada profil HuggingFace, tetapi kurang jelas apakah itu benar-benar milik mereka https://huggingface.co/TogetherAI
    2) Di GitHub tertulis “hosted demo”, tetapi bagian yang di-host tampaknya hanya WebGUI kecil yang rapi. Apakah ini berarti fitur ini sekarang dan ke depannya hanya bisa digunakan lewat pemanggilan API
    PS: Di browser desktop, tautan header rusak dan onClick tidak terpicu
    [1] https://facebookresearch.github.io/nougat/
    [2] https://github.com/getomni-ai/zerox
    [3] https://www.together.ai/products#custom-models

    • Penulis proyek ini adalah Together.ai DevRel. Tetap saja, ini cara yang sangat bagus untuk mempromosikan alat pengembang
    • sepertinya together.ai setidaknya mensponsori sebagian demo ini
    • Saya berharap ada yang bisa self-hosting karena alasan privasi dan biaya
    • together.ai menyediakan lebih dari 100 model open source melalui API yang kompatibel dengan OpenAI, termasuk Llama 3.2 multimodal
  • Ada hal yang terasa aneh. Saya mengunggah webcomic sebagai contoh, dan semua dialognya huruf besar semua, tetapi output-nya mencampur sentence case dan title case secara tidak konsisten di tiap panel
    Saya juga mencoba masalah nyata yang memang ingin saya pakai OCR untuknya. Saya punya slide lama yang perlu didigitalkan dan kebanyakan berlabel; saat saya mengunggah salah satunya, model menjelaskan bahwa itu tampak seperti foto slide atau frame film yang tua dan menguning, dengan potongan persegi panjang gelap di tengah, dan teksnya “Once Upon a Time”, angkanya “1069”
    Deskripsi slide yang berulang dan tidak perlu itu sendiri sudah jadi masalah, tetapi teks sebenarnya bukan tulisan sambung dan seharusnya “Once Uniquitous.”, sedangkan angkanya 106g. Hurufnya jelas sekali ‘g’, bukan ‘9’
    Yang menarik, ini mungkin contoh bias model. Model terlalu melihat slide itu sebagai barang antik sampai berhalusinasi membuat judul yang sangat klise, dan persegi hitam itu sebenarnya akibat pencahayaan dari depan untuk menyembunyikan bagian transparan, tetapi itu terlewat
    Selain itu, API-nya tampaknya memiliki batas ukuran file atau resolusi yang tidak didokumentasikan

  • Baru-baru ini saya mencoba llama3.2-vision untuk memproses lembar penawaran kertas untuk lelang amal, dan hasilnya cukup akurat bahkan untuk tulisan tangan yang lumayan jelek. Saya ingin memakainya lagi untuk acara tahun depan
    Tapi cukup menjengkelkan bahwa sulit membuatnya mengeluarkan CSV secara konsisten. ChatGPT dan Gemini tampaknya lebih baik untuk bagian itu, meskipun saya belum mencoba sampai tahap otomatisasi
    Skalanya sekitar 100 halaman lembar penawaran, jadi sedikit pembersihan manual masih tidak masalah. Jelas lebih baik daripada menghabiskan waktu relawan
    https://github.com/philips/paper-bidsheets

    • Saya ingin tahu bagaimana Handwriting OCR(https://www.handwritingocr.com) dibandingkan untuk pekerjaan ini
      Memang tidak gratis, tetapi akurasinya untuk dokumen tulisan tangan termasuk yang terbaik. Saya memang pendirinya jadi bias, tetapi tingkat akurasinya sekarang benar-benar menjanjikan. Untuk proyek 100 halaman, biayanya hanya 12 dolar dan bisa menghemat waktu
    • Mungkin OCR-nya diserahkan ke llama3.2-vision, lalu konversi CSV-nya diberikan ke ChatGPT
  • Belakangan ini saya sering melakukan OCR, terutama untuk mendigitalkan teks dari foto keluarga. Model OCR biasa payah sekali, dan LLM jauh lebih bagus. Dari model yang saya uji, Gemini Flash sejauh ini yang terbaik, tetapi tetap saja cukup sering gagal dan berhalusinasi sehingga mengetik manual justru lebih cepat.
    Rasanya seperti hampir bisa, tapi ternyata tidak, dan itu menyebalkan. Alat ini terlihat lebih buruk. Kadang hanya menjawab teksnya, kadang malah memberi deskripsi penuh seperti “The image is a scanned document with handwritten text...”. Saya sempat berharap ada semacam fine-tuning yang bisa mengalahkan Gemini Flash, karena itu bisa sangat menghemat waktu

    • Penasaran apakah Anda sudah mencoba downscale gambar. Saya mulai mendapatkan hasil yang lebih baik pada gambar beresolusi rendah. Saya memakai hasil scan dari kamera ponsel
      convert -density 76 input.pdf output-%d.png
      https://github.com/philips/paper-bidsheets
    • Untuk model umum, kondisi OCR open source masih cukup menyedihkan. Sayangnya opsi tertutup seperti Microsoft dan Google jauh lebih baik. Penasaran apakah Anda juga sudah mencobanya
      Flash memang menarik, dan saya juga penasaran LLM apa saja yang Anda uji
    • Baru-baru ini saya menjalankan OCR pada korpus gambar dengan gpt-4o dan hasilnya cukup bagus. Pelajaran terpenting yang saya dapat: meskipun memakai LLM canggih, persiapan data yang biasa-biasa saja tetap penting
      Memotong gambar agar hanya menyisakan bagian teks, membuang tepian, lalu meningkatkan kontras sangat membantu. Ini tulisan dari 2015, tetapi masih sangat relevan untuk GPT: https://www.danvk.org/2015/01/07/finding-blocks-of-text-in-a...
      Untuk GPT, memberi beberapa paragraf atau kurang sekaligus ternyata lebih baik daripada satu halaman penuh. Semakin pendek teksnya, semakin kecil kemungkinan halusinasi
    • Sayang sekali, saya juga sedang mencoba melakukan hal yang persis sama sekarang. Saya sedang mendigitalkan foto keluarga, dan beberapa di antaranya punya tulisan Jerman di bagian belakang
      OCR yang belakangan ramai dibicarakan hasilnya buruk, dan saya berharap ini lebih baik. Saat menempelkan gambar satu per satu ke chat, ChatGPT 4o cukup bagus, tetapi saya belum mencoba API-nya. Saya tidak tahu berapa biayanya untuk memproses 6500 foto, dan banyak di antaranya kosong, tetapi saya juga tidak punya cara mudah untuk menyaringnya
    • Penasaran apakah Anda sudah mencoba Claude
      Untuk mengembalikan posisi teks memang masih belum bagus, tetapi setidaknya dalam pengujian saya, kemampuan OCR-nya luar biasa
  • Saya ragu ini layak jadi postingan “Show HN”. Ini cuma terlihat seperti frontend, dan sepertinya juga tidak ada hubungan langsung dengan Llama di namanya. Mungkin together.ai hanya menyediakan ruang cloud

  • Saya pernah memakai algoritme genetik untuk menata 500 lingkaran sehingga membentuk sebuah kalimat, lalu mencoba memasukkan kalimat yang digambar memakai lingkaran fisik sungguhan
    https://www.instagram.com/marekgibney/p/BiFNyYBhvGr/
    Menariknya, lingkarannya dikenali dengan baik, tetapi kalimatnya tidak terbaca. Jawabannya kira-kira seperti, “Gambar ini tidak berisi teks atau elemen yang bisa direpresentasikan dalam Markdown, hanya susunan visual lingkaran, jadi tidak ada informasi untuk diterjemahkan ke Markdown”

    • Terinspirasi dari fakta bahwa ini bisa dibaca kalau mata sedikit disipitkan, saya menerapkan Gaussian blur pada gambar, dan mendapat respons bahwa teks kaburnya berbunyi “STOP THINKING IN CIRCLES.”
      Responsnya tidak konsisten, jadi saya juga mencoba gambar aslinya berkali-kali, tetapi tidak pernah berhasil satu kali pun. Sebaliknya, semua efek filter low-pass yang saya terapkan bekerja dengan tingkat keberhasilan tinggi
      https://imgur.com/q7Zd7fa
    • Saya juga tidak bisa membacanya
      Dari jauh justru lebih mudah dibaca
    • Saya jadi bertanya-tanya apakah LLM memang pernah dilatih dengan materi sumber seperti ini
      Cara Anda memakai algoritme genetik cukup keren. Saya ingin melihat kodenya, atau setidaknya fungsi reward-nya
    • Sebelum melihat jawabannya, saya juga tidak bisa membaca apa pun selain “stop”
    • Saya tidak paham kenapa ini menarik. Gambarnya tidak terlihat seperti apa pun, dan untuk bisa melihat hurufnya pun harus diputar sudutnya
  • Lucu juga. Saya memasukkan 3 screenshot dari dokumen panjang dan hasilnya lumayan bagus, tetapi saat saya koreksi, ternyata AI mengarang paragraf yang tidak ada di naskah asli
    Mungkin karena sifat screenshot, beberapa kalimat atau paragraf terpotong di tengah, dan itu memicu kecenderungan LLM untuk mengisi bagian yang kosong. Ia tidak bisa membiarkan paragraf yang belum selesai tetap seperti itu, bahkan menambahkan paragraf penutup pendek yang sama sekali tidak ada di dokumen asli

    • Saya benar-benar tidak paham bagaimana teknologi yang punya kemungkinan sekecil apa pun untuk mengarang sesuatu bisa dipertimbangkan untuk dipakai di dunia nyata
  • Saya mencoba memasukkan scan lama skematik motherboard Asus P3B-F tahun 1997
    Ia hanya mengekstrak sebagian teks pada blok judul, misalnya nama proyek dan tanggal, dan meskipun font-nya cukup jelas, angka 8/B dan 1/I tetap tercampur semuanya
    Informasi yang sebenarnya berguna malah berubah menjadi sesuatu seperti “Tables / Table 1: [Insert table 1 here] / Other Elements / [Insert other elements here]”