Станет ли он повелителем области OCR?

задняя часть

С разрешения администрации наша команда ищет модели алгоритмов распознавания с открытым исходным кодом, на github есть относительно известные алгоритмы AdvancedEAST и AttentionOCR, а также EasyOCR и PaddleOCR.

Недавно участвовал в "中国软件杯” OCR для определения соответствующих совпадений.

Ссылка на конкурс:Woohoo .cn soft боится .com/plus/view.…

Некоторые из требований заключаются в следующем:

img

Слезный код боится уток.

img

С разрешения администрации наша команда ищет модель алгоритма распознавания OCR с открытым исходным кодом, которая доступна на github.AdvancedEASTиAttentionOCRАлгоритмы, популярность все еще относительно высока, иEasyOCRPaddleOCR. Проанализировав эти несколько моделей алгоритмов распознавания OCR, были сделаны некоторые выводы, и выбрана модель с особо высокой точностью, а кто она, нам нужно продолжать смотреть вниз.

Если вы хотите что-то узнать, вы должны сначала посмотреть на это效果如何.就像看论文一样, аффим先看摘要,如果摘要Содержание, упомянутое в ключевых пунктах и不是自己想要的, Потом没必要往下看了.

Эффекты узнавания следующие:

img

Распознавание визуализаций

будь ты横着,все еще竖着,все еще标点符号;只要是文字就能给你检测出来,精度Конечно нет, большинство из них0.98以上.

теперь поддерживается汉语、英语、日语、德语、法语等等语言из识别.

Ключ также直接操作式из网页版и移动版,没编程基础,没开发环境такжепозволь тебе轻松使用.

img

Визуализация идентификации мобильного терминала

img

Рендеринг распознавания веб-версии

Я должен признать, что этот проект с открытым исходным кодом действительно良品. Этот效果太棒в настоящее время,方便,简单,实用,识别的还贼快. Очень нравится.

img

Ха-ха,Разве это не выглядит здорово!

Но после стольких просмотров вы все еще не понимаете, о чем я говорю.Кто это? Ты спешишь?

Есть завеса тайны, давайте потихоньку приоткроем эту завесу тайны.

Baidu - это открытый источникPaddleOCRпроект.

光说不练假把式Ниже приводится подробное введение в превосходную производительность и производительность OCR и PaddleOCR.开发Один简单的示例Шаги использования.

Наши работы (частичная презентация PPT):

PPT可能做的不太好,大家有问题可以尽管提出来,嘿嘿,多多交流嘛!

img

img

img

img

Это действительно озорно,PaddleOCRСопоставьте наши собственные письменныеNLP, просто непобедим!

img

当然了,现在还在参赛阶段,其他的还不方便公开,如果想要源代码和其他资料的话,赛后我都可以提供,可以留言邮箱,或者加我的粉丝群,等待我上传即可。

(1) Что такое оптическое распознавание символов

OCR — Optical Character Recognition (Оптическое распознавание символов) относится к процессу анализа и распознавания файлов изображений текстовых данных для получения информации о тексте и макете. То есть текст на изображении распознается и возвращается в виде текста.

(2) Примеры применения

OCR技术有着丰富的应用场景,включают已经существует日常生活中广泛应用的面向垂类的结构化文本识别,как车牌识别,银行卡信息识别,身份证信息识别,火车票信息识别и т. д., кроме того, общая технология OCR также имеет широкий спектр приложений, например, в视频场景中,используйте частоOCR技术进行字幕自动翻译,内容安全监控等等или с视觉特征相结合,Заканчивать视频理解,视频搜索и другие задачи.

img

(3) Трудности оптического распознавания символов

  • 1. Технические трудности: такие как透视,缩放,弯曲,杂乱,字体,多语言,模糊Ждать;
  • 2. Приложения OCR часто对接海量数据,但要求数据能够得到实时处理;
  • 3 и приложение OCR常部署在移动端或嵌入式硬件端侧的存储空间и计算能力有限,因此对OCR模型из大小и预测速度имеют很高的要求.

Так много трудностей нужно решить, поэтому если есть трудности, есть решения - PaddleOCR решает все вышеперечисленные проблемы. Вы с нетерпением ждете возможности узнать о PaddleOCR?

Следующее раскрытиеPaddleOCRЗагадочное лицо. Давайте встретимся вместеPaddleOCR.

(1) Резюме и введение

  • PaddleOCR — сверхлегкая модель распознавания китайского и английского языков.
  • Цель состоит в том, чтобы создать богатую, передовую и практичную модель/библиотеку инструментов для распознавания текста.
  • 3,5-мегапиксельная практичная сверхлегкая система оптического распознавания текста, которая поддерживает обучение и развертывание на серверах, мобильных, встроенных устройствах и устройствах IoT.
  • В то же время он поддерживает признание китайского и английского языка; он поддерживает распознавание текста в нескольких направлениях, таких как наклонный и вертикальный
  • Поддержка GPU, предсказание CPU
  • Может работать на Linux, Windows, MacOS и других системах
  • Пользователи могут использовать сверхлегкую модель напрямую через PaddleHub или использовать набор с открытым исходным кодом PaddleOCR для обучения своей собственной сверхлегкой модели.

Вышеизложенное является официальным объяснением, резюмирующим несколько моментов:

  • 1,небольшой объем;
  • 2,Беги быстро;
  • 3.Удобство и простота;
  • 4.Производительность довольно хорошая.

(2) Резюме соответствующих адресов

Чтобы облегчить дальнейшее использование моих друзей, я обобщил URL-адреса, которые я использую для вас, как показано ниже.

Модель находится в открытом доступе, и было предоставлено множество руководств:

1. Адрес с открытым исходным кодом GitHub:GitHub.com/paddle pad DL…

2. Исходный код онлайн-опыта PaddleHub:Студия любви Baidu .com / студия любви / ложь ...

3. Учебное пособие по искусственному интеллекту Fast Track 2020-PaddleOCR:Love studio.Baidu.com/Love studio/ Quota…

4. URL-адрес веб-версии:woo woo woo.paddle paddle.org.can/Hubei/scene/о…

5. Загрузите QR-код на мобильный терминал:

(1) Введение в Paddleocress Project

OCR трудно удовлетворить потребности пользователей через универсальную модель, чтобы содействовать своим разработчикам использовать ультрасющую модель пользовательских данных, в дополнение к ультрабольной модели 3,5 м (6622 распознаваемых персонажей), Paddleocrock при предоставлении двух видов Алгоритм обнаружения текста (East, DB), 4 Zhong Text Reading Algorithm (Crnn, Rosseta, Star-Net, Ready), могут охватывать основные потребности общих задач OCR, а алгоритм продолжается богатыми.

особенноОбучение/оценка моделисерединаОбучение навыкам прогнозирования на китайском языке OCR, еще более привлекательный, нажмите, чтобы увидетьСпециальная обработка распознавания длинного китайского текста, как заменить различные магистрали и другие бизнес-навыки., вполне соответствует реальным потребностям развития алхимии в этих проектах.

以上这些在其官方GitHub上有详细的使用文档教程,建议把该项目克隆到本地,直接看那个md格式的中文版文档,介绍的非常详细,从安装部署到运行测试,每一步都有,堪称最全OCR开发者文档大礼包.

img

во-первых这些教程大都是基于Linux的, это может быть немного сложно для некоторых учащихся, у которых нет сервера или которые плохо знакомы с глубоким обучением.

img

Следующий блоггер расскажет о том, как запустить его прямо в системе Windows.

(2) Проверьте свои собственные данные

Я считаю, что у большинства студентов, которые хотят попробовать исходный код, должна быть среда глубокого обучения Python, и могут быть некоторые среды без весла.Конечно, это также очень просто установить, а загрузка pip очень быстрая, ведь это отечественный фреймворк! Привет 😎.

Официальный сайт Paddown's Offormation веб-конфигурация конфигурации весла:woohoo.paddle paddle.org.can/install/qui…

После настройки среды загрузите исходный код GitHub или клонируйте Git на локальный сервер, создайте py-файл в PaddleOCR и введите следующее содержимое:

from paddleocr import PaddleOCR
from tools.infer.utility  import draw_ocr
from PIL import Image


ocr = PaddleOCR(use_angle_cls=True, lang="ch")
img_path = 'img/test.png'
result = ocr.ocr(img_path, cls=True)
for line in result:
    print(line)

image = Image.open(img_path).convert('RGB')
boxes = [line[0] for line in result]
txts = [line[1][0] for line in result]
scores = [line[1][1] for line in result]
im_show = draw_ocr(image, boxes, txts, scores, font_path='/doc/simfang.ttf')
im_show = Image.fromarray(im_show)
im_show.show()
im_show.save('img/result.jpg')

img

Конечно, содержимое изображения во всей папке также может быть обнаружено и распознано, а результат распознавания может быть сохранен.

from paddleocr import PaddleOCR
from tools.infer.utility  import draw_ocr
from PIL import Image
import os
import csv

def pre_save(img_path,save_path,csv_path):
    f = open(csv_path, 'w', encoding='utf-8')
    writer = csv.writer(f)
    writer.writerow(["img", "result"])
    
    
    ocr = PaddleOCR(use_angle_cls=True, lang="ch") 
    i=0
    for img in os.listdir(img_path):
        print(img_path+'/'+img)
        i+=1
        result = ocr.ocr(img_path+'/'+img, cls=True)
        image = Image.open(img_path+'/'+img).convert('RGB')
        boxes = [line[0] for line in result]
        txts = [line[1][0] for line in result]
        scores = [line[1][1] for line in result]
        im_show = draw_ocr(image, boxes, txts, scores, font_path='/doc/simfang.ttf')
        im_show = Image.fromarray(im_show)
        
        im_show.save(save_path+img)
        al = []
        for res in result:
            result = res[1][:][:]
            al.append(result)
        print(str(al))
        writer.writerow([img,str(al)])
    print(i)

img_path=r'F:\lzpython\PaddleOCR-develop\doc\imgs'
save_path=r'F:\chrome\zrbdata\imgs\result1/'
csv_path=r'F:\chrome\zrbdata\imgs\result.csv'
pre_save(img_path,save_path,csv_path)

img

С этим кодом модель будет работать независимо от того, есть ли на вашем компьютере графический процессор или нет (он просто работает быстрее с графическим процессором).

回归正题,我们是来分析哪个模型算法比较好的;也到了最精彩的片段.

В одиночку точно говорить нехорошо, лучше сравнить, хе-хе! В настоящее время основные проекты с открытым исходным кодом для распознавания текста в основном включают easyocr, chineseocr_lite и, конечно же, paddleocr.

Мы сравниваем следующее:

  • 1, контраст полноты учебника;
  • 2. Сравнение простоты использования;
  • 3. Сравнение скорости бега;
  • 4. Сравнение точности;
  • 5. Многоракурсное сравнение.

(1) Сравнение полноты учебника

  • Как разработчик (вход недолго после разработчика 😂),EasyOCRДокументация действительно неописуема,chineseocr_liteУчебник также не очень дружелюбен к пользователям pycharm.
  • PaddleOCRДокументация также размещена выше, поэтому давайте посмотрим сами, от установки до обучения и развертывания, можно сказать, что это самый подробный учебник, который я когда-либо видел.

Суммировать:

1. Учебники EasyOCR и chineseocr_lite неудобны для использования людьми без основы;

2. Документация PaddleOCR полная и простая для понимания, подходит для людей без фундамента.

(Б) простота сравнения

  • PaddleOCR有网页版,移动版,可以пусть пользователи直接用; То же самое верно, когда разработчики используют его.Подробная документация PaddleOCR позволяет разработчикам быстро понять модель, обучить свои данные и даже добавить некоторые функции; EasyOCR также должен уметь расширять многие вещи, такие как Paddle, но все же Потому что документации нет, никак, Chineseocr_lite предоставляет веб-версию и API-интерфейс, что тоже очень удобно, но все равно страдает неполным туториалом и плохой настройкой.
  • В то же время PaddleOCR предоставляет множество моделей, которые разработчики могут использовать в разных ситуациях.

(3) Сравнение скорости бега

Чтобы оценить качество алгоритма, мы часто оцениваем его по временной и пространственной сложности.

  • Настройте компьютер с моим низким.同样的图片, от начала распознавания до распечатки,PaddleOCR耗时2.15秒,EasyOCR耗时9.96秒, это просто картинка, через несколько секунд вы не увидите никакой разницы.Если вы распознаете много картинок или текста в видео, разница действительно немного велика.

  • Следующее использование多张图片进行运行时间上的对比, основные отличия:

    • Запустите на моем компьютере,运行时间начальство有明显差距,PaddleOCR跑了141张图片,仅仅用了6.9秒,平均耗时为0.048s, что согласуется с официальными данными о затратах времени;EasyOCR跑了121张图片но用了40.24秒,平均耗时为0.33s.

    • Почему EasyOCR использует 121 изображение? Поскольку он не поддерживает распознавание картинок в формате .gif, я удалил 20 картинок в формате .gif

      .

      img

    Это официальная оценка трудоемких данных:

    在GPU T4, для мобильной модели требуется только137ms, а задержка обработки на мобильном терминале Snapdragon 855 составляет всего300msо.

img

img

(4) Сравнение точности

Конечно, чтобы оценить, можно ли использовать модель, она должна зависеть от точности.Если распознавание не является точным, его нельзя применять. Возьмем для примера картинку ниже.

img

(1)PaddleOCR:

PaddleOCRидентифицированный53段横竖文字(Как видно из картинки, весь текст картинки включен),其中错别字Это五个左右Бар,置信度在0.6ниже有3段,大部分уверенность в тексте都在0.8以上.

img

(2)EasyOCR:

EasyOCRРаспознано 63 абзаца текста(没图片框,看不出所有文字是否全被识别), по содержанию идентификации и точности до paddleocr еще далеко.

( '红动中国WWW. REDOCN.COM', 0.14594213664531708)
( 'Hey,', 0.9193199872970581)
('The happxienffgefgiga', 0.000323598796967417)
( 'nian le fan tian', 0.537309467792511)
( 'look, theres', 0.22078940272331238)
('alot ofwild flowers', 0.057002753019332886)
('你怏乐所以我快乐', 0.531562089920044)
('开心童年乐翻夭', 0.8216490149497986)
('-野凰青', 0.004080250393599272)
('on the lawn.', 0.44294288754463196)
('暗香', 0.9942429661750793)
('.RE', 0.18314962089061737)
( 'Thats', 0.7607358694076538)
('my', 0.6383113861083984)
('frend', 0.45365384221076965)
('FOREVER', 0.7280043363571167)
('童年的伙侔', 0.7070863246917725)
  • (3)chineseocr_lite:

    Модель распознает 35 абзацев текста, что в целом похоже на весло, но есть большая разница в достоверности.Китайский cr_lite имеет самый высокий уровень достоверности 0,59, большинство из которых до 0,3~0,5.

img

(5) Сравнение нескольких ракурсов

Для разработчиков OCR самое привлекательное в репозитории с открытым исходным кодом:

  • ① Высококачественные предварительно обученные модели;
  • ② Простой и удобный обучающий код;
  • ③ Возможность развертывания без приямков проста в использовании.

Краткое сравнение основных возможностей текущего основного репозитория OCR с открытым исходным кодом.

томный Размер предварительно обученной модели F1-Score Сквозное развертывание индивидуальное обучение Поддержка установки пипса
chineseocr_lite китайский-английский 4.7M 0.3899 служба поддержки не поддерживается не поддерживается
easyOCR многоязычный 218M 0.2214 не поддерживается не поддерживается служба поддержки
PaddleOCR многоязычный 3.5M 0.521 служба поддержки служба поддержки служба поддержки
  • С точки зрения языков, chineseocr_lite поддерживает только китайский и английский.Преимущество easyOCR заключается в том, что он поддерживает несколько языков, что очень подходит для разработчиков с небольшими языковыми потребностями, но PaddleOCR поддерживает все больше и больше языков.В настоящее время он поддерживает китайский и английский, Английский, французский, немецкий, корейский, японский и другие языки.
  • Из предварительно обученной моделиeasyOCR目前暂无超轻量模型,chineseocr_lite最新的模型是4.7M左右,而PaddleOCR提供的3.5Mда目前业界已知最轻量的;
  • Для развертывания,easyOCR模型较大不适合端侧部署,Chineseocr_lite和PaddleOCR相对较小, все они имеют возможности сквозного развертывания, и в настоящее времяPaddleOCR已经给出了移动端的APP应用;
  • Для индивидуального обучения в реальных бизнес-сценариях предварительно обученные модели часто не соответствуют требованиям.只有PaddleOCR支持;
  • С точки зрения производительности: OCR для сценариев практического применения, включая контракты, номерной знак, табличку с именем, билеты на поезд, единую лабораторию, форму, сертификат, текст городского пейзажа, визитные карточки, цифровой дисплей и т. д., 300 изображений, собранных для каждой фигуры. в среднем 17 текстовых полей,PaddleOCRF1-Score больше 0,5, это уже очень хорошо.

(VI) Другой анализ

Мы знаем, что согласованность обучающих и тестовых данных напрямую влияет на эффект модели.Для лучшего эффекта модели часто необходимо обучать сверхлегкие модели с вашими собственными данными. В дополнение к сверхлегкой модели 3,5M контент с открытым исходным кодом PaddleOCR также предоставляет2 алгоритма обнаружения текста, 4 алгоритма распознавания текстаи опубликовал соответствующий4 модели обнаружения текста, 8 моделей распознавания текстаПользователи могут создавать свои собственные ультрасмысленные модели на этой основе.

Ведущий ведущий открытый исходный код в отрасли различные алгоритмы обнаружения текста и признания, эффект каждого алгоритмасоответствовать или превосходить оригинал. В общедоступном наборе данных для обнаружения текста ICDAR2015 эффект алгоритма следующий:

Модель Магистральная сеть precision recall Hmean ссылка для скачивания
EAST ResNet50_vd 88.18% 85.51% 86.82% ссылка для скачивания
EAST MobileNetV3 81.67% 79.83% 80.74% ссылка для скачивания
DB ResNet50_vd 83.79% 80.65% 82.19% ссылка для скачивания
DB MobileNetV3 75.92% 73.18% 74.53% ссылка для скачивания
SAST ResNet50_vd 92.18% 82.96% 87.33% ссылка для скачивания

Алгоритм работает на удивление хорошо в общедоступном наборе данных для обнаружения текста Total-text.

В части алгоритма распознавания текста, опираясь на процесс обучения и оценки распознавания текста DTRB[3], реализованы четыре алгоритма распознавания текста CRNN, Rosseta, STAR-Net и RARE, охватывающие основныеДва типа алгоритмов распознавания текста на основе CTC и на основе Attention.使用 MJSynth 和 SynthText 两个文字识别数据集训练,在 IIIT, SVT, IC03, IC13, IC15, SVTP, CUTE 数据集上进行评估,算法效果如下:

Модель Магистральная сеть Avg Accuracy Именование хранилища модели ссылка для скачивания
Rosetta Resnet34_vd 80.24% rec_r34_vd_none_none_ctc ссылка для скачивания
Rosetta MobileNetV3 78.16% rec_mv3_none_none_ctc ссылка для скачивания
CRNN Resnet34_vd 82.20% rec_r34_vd_none_bilstm_ctc ссылка для скачивания
CRNN MobileNetV3 79.37% rec_mv3_none_bilstm_ctc ссылка для скачивания
STAR-Net Resnet34_vd 83.93% rec_r34_vd_tps_bilstm_ctc ссылка для скачивания
STAR-Net MobileNetV3 81.56% rec_mv3_tps_bilstm_ctc ссылка для скачивания
RARE Resnet34_vd 84.90% rec_r34_vd_tps_bilstm_attn ссылка для скачивания
RARE MobileNetV3 83.32% rec_mv3_tps_bilstm_attn ссылка для скачивания
SRN Resnet50_vd_fpn 88.33% rec_r50fpn_vd_none_srn ссылка для скачивания

Используйте набор данных просмотра улиц LSVT, чтобы обрезать данные 30 Вт на основе реальных данных для калибровки местоположения. Кроме того, на основе корпуса LSVT для генерации синтетических данных мощностью 500 Вт для обучения китайской модели соответствующие файлы конфигурации и предварительного обучения выглядят следующим образом:

Модель Магистральная сеть конфигурационный файл предварительно обученная модель
Ультралегкая китайская модель MobileNetV3 rec_chinese_lite_train.yml ссылка для скачивания
Общая китайская модель OCR Resnet34_vd rec_chinese_common_train.yml ссылка для скачивания

Как появился конкретный результат? Вы можете обратиться к официальной документации PaddleOCR —Часть распознавания текста при обучении/оценке моделей

PaddleOCR резюмирует несколько моментов:

  • небольшой объем
  • беги быстро
  • Простота развертывания
  • Простой в использовании
  • Производительность довольно хорошая

Через контраст различных размеров, мы решили использовать PaddleoCr, чтобы сделать нашу модель для нашего участия в конкурсе.Теперь он разработан, вы можете продолжать обращать на меня внимание, ждите, пока мы будем участвовать в игре, вы можете поставить конкретный код публиковать, это удобно всем.

Может такжеgithub.com/trendingиpaperswithcode.com/Глядя на рейтинги проектов с открытым исходным кодом, рейтинги также очень хорошие, что указывает на то, что все еще больше людей обращают на это внимание, что указывает на то, что существует также много групп пользователей.

img

当然了,现在还在参赛阶段,其他的还不方便公开,如果想要源代码和其他资料的话,赛后我都可以提供,可以留言邮箱,赛后会一一发给大家的。

Адрес с открытым исходным кодом на GitHub:GitHub.com/paddle pad DL…

个人建议给国产开源项目一个Star,如果喜欢也可以点下Fork,我觉得这样他们会更有动力去继续创作,创新。

Эй, если вы получите звезду, вы можете прийти ко мне и получить исходный код моего конкурса. Его также можно рассматривать как поддержку отечественного проекта с открытым исходным кодом PaddleOCR.