- Dengan aplikasi Shortcuts di macOS, Anda bisa membuat shortcut OCR lokal tanpa layanan berbayar tambahan dan menjalankan ekstraksi teks dari gambar melalui terminal/CLI/Python
- Susunan intinya adalah menghubungkan Shortcut Input ke aksi Extract Text from Image, lalu menyalin hasilnya ke clipboard
- Nama shortcut sebaiknya huruf kecil tanpa spasi seperti
ocr-text atau extract-text agar mudah dipanggil dari CLI, dan setelah memasukkan nama harus menekan Enter untuk menyimpannya
- Di terminal, jalankan dengan
shortcuts run ocr-text -i , lalu hasil ekstraksi akan disalin ke clipboard dan bisa dicek dengan Command-V
- Di Python, shortcut OCR yang sama bisa dipakai ulang dengan memanggil perintah
shortcuts run yang sama melalui subprocess.check_output()
Membuat shortcut OCR di Shortcuts
- Buka aplikasi Shortcuts di macOS dan buat shortcut baru dengan tombol
+
- Di sidebar kanan, cari
extract text, lalu seret aksi Extract Text from Image ke area kerja di sebelah kiri
- Klik input Image berwarna biru pada aksi
Extract text from ... lalu pilih Shortcut Input
- Aksi Receive akan muncul di bagian atas, dan bisa dibiarkan seperti itu
- Di sidebar kanan, cari
copy lalu tempatkan aksi Copy to Clipboard di bawah Extract Text from Image
- Pada aksi terakhir, pastikan bagian setelah
Copy adalah Text from Image
- Proses menyeret aksi
Copy to Clipboard ke bawah mungkin agak merepotkan
- Nama shortcut yang cocok adalah huruf kecil sederhana tanpa spasi seperti
extract-text atau ocr-text
- Setelah memasukkan nama, Anda harus menekan Enter agar nama tersimpan
Menjalankannya dari CLI dan Python
- Perintah untuk menjalankan shortcut dari terminal adalah sebagai berikut
shortcuts run ocr-text -i
- Jika setelah dijalankan teks hasil ekstraksi terlihat saat ditempel dengan Command-V, berarti pengaturannya sudah benar
- Di Python, perintah yang sama bisa dijalankan dengan
subprocess.check_output()
import subprocess
file_path = '... some file path ...'
ocr_out = subprocess.check_output(
f'shortcuts run ocr-text -i "{file_path}"', shell=True
)
print(ocr_out)
- Berbagi Shortcuts kadang bisa berfungsi aneh sehingga perlu pengaturan manual, tetapi sebagian besar proses ini hanya perlu dilakukan sekali
1 komentar
Komentar Hacker News
Postingan OP bagus. Vision framework dari Apple cukup mengesankan, dan saya pernah memakainya untuk proyek pribadi yang membaca puluhan ribu tangkapan layar spreadsheet dengan OCR lalu memasukkannya ke database PostgreSQL
Karena macOS dan Nvidia masih belum terlalu cocok, saya juga mencoba OCR berbasis CPU seperti Tesseract, tetapi hasilnya terlalu sering salah. Vision framework menghasilkan kualitas output terbaik yang pernah saya lihat, dan memakai komputasi paling sedikit
Memang cukup tidak stabil, meski mungkin itu karena kesalahan implementasi saya sendiri. Untuk implementasi sebenarnya saya memakai vision.py milik RHetTbull https://gist.github.com/RhetTbull/1c34fc07c95733642cffcd1ac5..., untuk eksperimen saya juga memakai ocrmac https://github.com/straussmaximilian/ocrmac, dan performanya ternyata bagus bahkan di Hackintosh i7 6700k
Saya tidak menyebut diri saya programmer, tetapi kalau diberi cukup waktu biasanya saya bisa menyelesaikan masalah; hanya saja waktunya memang cukup banyak
Lihat saja framework RAG, banyak yang memakai atau mendukung beberapa implementasi; Tesseract hampir selalu didukung, tetapi biasanya bukan pilihan ideal. Proyek seperti Unstructured https://github.com/Unstructured-IO/unstructured-inference atau DocTR https://github.com/mindee/doctr lebih disukai
Mereka umumnya memanfaatkan model vision yang modern https://github.com/mindee/doctr#models-architectures https://github.com/Unstructured-IO/unstructured-inference#mo... dan jauh mengungguli Tesseract
Saya belum membandingkannya langsung dengan Apple Vision framework, tetapi jelas lebih baik daripada Tesseract, dan berpotensi juga lebih baik daripada Apple Vision. Ada juga pendekatan menggabungkan beberapa metode, tetapi itu jadi cukup kompleks
AWS Textract menyediakan contoh kode Python untuk mengekstrak tabel menjadi CSV, dan itu berfungsi dengan baik
Saat mencoba hal serupa di Windows, saya baru tahu bahwa PowerToys, proyek Microsoft yang sudah saya instal, menyertakan alat OCR yang cukup bagus
Tekan Win+Shift+T lalu pilih area yang ingin dipindai, maka teks akan disalin ke clipboard
https://learn.microsoft.com/en-us/windows/powertoys/
https://learn.microsoft.com/en-us/windows/powertoys/text-ext...
Saya membuat alat open source yang menyediakan CLI dan UI yang cukup bagus, dan gratis
https://trex.ameba.co
Saya baru tahu bahwa banyak aplikasi Mac, termasuk Safari, Preview, dan Notes, menjalankan OCR secara otomatis pada gambar. Teks di dalam gambar bisa dipilih dengan mudah lalu disalin dan ditempel ke tempat lain, dan itu cukup bagus
Jika itu teks URL atau domain, atau kode QR, Anda bisa menekan lama atau mengklik lama pada foto poster atau di dalam video untuk langsung membuka tautan dari gambar
Anda bisa memilih dan menyalinnya dari foto, lalu menempelkannya ke ponsel atau Mac melalui fitur Handoff
Saya sangat suka alat OCR kecil yang saya instal dengan brew di MacBook: https://github.com/schappim/macOCR
Di Windows, saya merekomendasikan Text Extractor dari PowerToys
https://learn.microsoft.com/en-us/windows/powertoys/text-ext...
Kalau saya menambahkan satu solusi saya, ini dia: https://skaplanofficial.github.io/PyXA/tutorial/images.html#...
PyXA menggunakan framework Vision untuk mengekstrak teks dari satu atau beberapa gambar. Karena ini hanya bagian kecil dari paketnya, mungkin berlebihan untuk pekerjaan sekali pakai, tetapi bisa menjadi pilihan
ImageAnalyzer lebih baru dan jauh lebih bagus. Shortcut milik OP juga tampaknya besar kemungkinan memakai API lama itu secara internal
Pada macOS Ventura dan versi setelahnya, fitur OCR bawaan sebenarnya sudah terintegrasi ke UI Image Capture
Saat memindai PDF dengan scanner yang kompatibel dengan AirPrint, checkbox “OCR” muncul di panel kanan
Kalau ingin memasukkan isinya ke file, bisa seperti ini. Bukan bermaksud bilang ini yang paling efisien, tapi ini berfungsi
OCRTHISFILE="ocr-test.jpg"
shortcuts run ocr-text -i "${OCRTHISFILE}"
pbpaste > ${OCRTHISFILE}.txt
Atau kalau ingin melihat output sambil juga memasukkannya ke file:
OCRTHISFILE="ocr-test.jpg"
shortcuts run ocr-text -i "${OCRTHISFILE}"
pbpaste | tee ${OCRTHISFILE}.txt
Saya penasaran apakah ada teknik serupa untuk fitur Copy Subject di Apple Vision. Saya jadi cukup bergantung pada fitur ini, tetapi cara mengaksesnya terasa terlalu terbatas
Sepertinya Anda bisa mencoba mengganti aksi “Extract text” menjadi “Remove background”. Saat menjalankan shortcut, tentukan nama file gambar output dengan “-o”
shortcuts run remove-background -i ~/Downloads/portrait-beard.avif -o beard.jpg