В данный момент занимаюсь точно такой же проблемой. В любом случае, дешево и сердито — tessaract. За деньги — abby mobile ocr.
Еще есть облачные сервисы, но там слишком долго ждать :(. Чтобы tessaract давал хорошие результаты, рекомендую использовать opencv для обработки фотографии перед распознаванием. Либо взять библиотеку GPUImage и провести обработку с помощью нее. Перевести в grayscale, обработать treshold фильтром. Это даст хорошие результаты.
Ссылка
github.com/ldiqual/tesseract-ios из комментария выше — лично подтверждаю, что работает. Только с танцами с бубном :) Будут вопросы, пиши в личку.