SOTA OCR with Core ML and dots.ocr

📰 Hugging Face Blog

Achieve state-of-the-art OCR with Core ML and dots.ocr on Apple devices

advanced Published 2 Oct 2025
Action Steps
  1. Understand the dots.ocr model and its capabilities
  2. Simplify the model for on-device execution
  3. Create a simple harness for testing and debugging
  4. Perform bug hunting and benchmarking to optimize performance
Who Needs to Know This

AI engineers and developers working on OCR projects can benefit from this article to optimize their models for on-device execution, while product managers can understand the potential of Neural Engine for AI applications

Key Insight

💡 The Neural Engine, Apple's custom AI accelerator, enables high-performance and low-power consumption for AI models on Apple devices

Share This
📊 Run competitive OCR models on-device with dots.ocr and Core ML! 💻

Key Takeaways

Achieve state-of-the-art OCR with Core ML and dots.ocr on Apple devices

Full Article

Published Time: 2025-10-02T00:00:00.637Z

# SOTA OCR with Core ML and dots.ocr

[![Image 1: Hugging Face's logo](https://huggingface.co/front/assets/huggingface_logo-noborder.svg)Hugging Face](https://huggingface.co/)

* [Models](https://huggingface.co/models)
* [Datasets](https://huggingface.co/datasets)
* [Spaces](https://huggingface.co/spaces)
* [Buckets new](https://huggingface.co/storage)
* [Docs](https://huggingface.co/docs)
* [Enterprise](https://huggingface.co/enterprise)
* [Pricing](https://huggingface.co/pricing)
*
*
* * *

* [Log In](https://huggingface.co/login)
* [Sign Up](https://huggingface.co/join)

[Back to Articles](https://huggingface.co/blog)

# SOTA OCR with Core ML and dots.ocr

Published October 2, 2025

[Update on GitHub](https://github.com/huggingface/blog/blob/main/dots-ocr-ne.md)

[- [x] Upvote 64](https://huggingface.co/login?next=%2Fblog%2Fdots-ocr-ne)
* [![Image 2](https://cdn-avatars.huggingface.co/v1/production/uploads/1671292294864-5e00e3bdcbfd036a99df0da3.jpeg)](https://huggingface.co/Norod78 "Norod78")
* [![Image 3](https://cdn-avatars.huggingface.co/v1/production/uploads/1617264212503-603d25b75f9d390ab190b777.jpeg)](https://huggingface.co/pcuenq "pcuenq")
* [![Image 4](https://cdn-avatars.huggingface.co/v1/production/uploads/1615915889033-6050eb5aeb94f56898c08e57.jpeg)](https://huggingface.co/echarlaix "echarlaix")
* [![Image 5](https://cdn-avatars.huggingface.co/v1/production/uploads/608aabf24955d2bfc3cd99c6/-YxmtpzEmf3NKOTktODRP.jpeg)](https://huggingface.co/ariG23498 "ariG23498")
* [![Image 6](https://cdn-avatars.huggingface.co/v1/production/uploads/60a551a34ecc5d054c8ad93e/dhcBFtwNLcKqqASxniyVw.jpeg)](https://huggingface.co/mishig "mishig")
* [![Image 7](https://cdn-avatars.huggingface.co/v1/production/uploads/60cc16262191a51628bd98ab/VGYwYsA69gAxblkjSM8fF.jpeg)](https://huggingface.co/shreyask "shreyask")
* +58

[![Image 8: Christopher Fleetwood's avatar](https://cdn-avatars.huggingface.co/v1/production/uploads/6597e9f42235d4056bc6980a/6N_Eira5Rj5e8ZdgekKPQ.jpeg)](https://huggingface.co/FL33TW00D-HF)

[Christopher Fleetwood FL33TW00D-HF Follow](https://huggingface.co/FL33TW00D-HF)

[![Image 9: Pedro Cuenca's avatar](https://cdn-avatars.huggingface.co/v1/production/uploads/1617264212503-603d25b75f9d390ab190b777.jpeg)](https://huggingface.co/pcuenq)

[Pedro Cuenca pcuenq Follow](https://huggingface.co/pcuenq)

* [Conversion](https://huggingface.co/blog/dots-ocr-ne#conversion "Conversion")

* [Dots.OCR](https://huggingface.co/blog/dots-ocr-ne#dotsocr "Dots.OCR")

* [Step 0: Understand and simplify the model](https://huggingface.co/blog/dots-ocr-ne#step-0-understand-and-simplify-the-model "Step 0: Understand and simplify the model")

* [Step 1: A simple harness](https://huggingface.co/blog/dots-ocr-ne#step-1-a-simple-harness "Step 1: A simple harness")

* [Step 2: Bug hunting](https://huggingface.co/blog/dots-ocr-ne#step-2-bug-hunting "Step 2: Bug hunting")

* [Step 3: Benchmarking](https://huggingface.co/blog/dots-ocr-ne#step-3-benchmarking "Step 3: Benchmarking")

Every year our hardware is a little more powerful, our models a little smarter for each parameter. In 2025, it is more feasible than ever to run truly competitive models on-device. [dots.ocr](https://huggingface.co/rednote-hilab/dots.ocr), a 3B parameter OCR model from RedNote, surpasses Gemini 2.5 Pro in [OmniDocBench](https://github.com/opendatalab/OmniDocBench), making OCR a truly no compromises on-device use case. Running models on-device is certainly appealing to developers: no smuggling API keys, zero cost, and no network required. However, if we want these models to run on-device, we need to be mindful of the limited compute and power budgets.
Enter the Neural Engine, Apple's custom AI accelerator that has shipped with every Apple device since 2017. This accelerator is designed for high performance whilst sipping battery power. Some of our testing has found the Neural Eng
Read full article → ← Back to Reads

Related Videos

5 Levels of AI Agents - From Simple LLM Calls to Multi-Agent Systems
5 Levels of AI Agents - From Simple LLM Calls to Multi-Agent Systems
Dave Ebbelaar (LLM Eng)
Google's Secret AI That's 10X More Powerful Than ChatGPT
Google's Secret AI That's 10X More Powerful Than ChatGPT
Kevin Farugia AI Automation
Notebook LM New Video Capabilities - Is It Overrated?
Notebook LM New Video Capabilities - Is It Overrated?
Kevin Farugia AI Automation
NEW Google Gemini Nodes in n8n (July 2025 update)
NEW Google Gemini Nodes in n8n (July 2025 update)
Kevin Farugia AI Automation
I Found a Way to Use GEMINI PRO & VEO 3 For Free and UNLIMITED (New Method)
I Found a Way to Use GEMINI PRO & VEO 3 For Free and UNLIMITED (New Method)
Kevin Farugia AI Automation
I Built a CLI in One Afternoon That Unlocks Higgsfield's Hidden Capabilities
I Built a CLI in One Afternoon That Unlocks Higgsfield's Hidden Capabilities
Kevin Farugia AI Automation