Pull to refresh
0
0
Send message

Как я дообучал Tesseract и что из этого получилось

Reading time7 min
Views34K

Решал я как-то задачку по поиску сущностей в отсканированных документах. Чтобы работать с текстом, надо его сначала получить из картинки, поэтому приходилось использовать OCR. Выбор пал на одну из самых популярных и доступных библиотек Tesseract. С ее помощью задача решается очень неплохо и процент распознавания текста достаточно высокий, особенно на хороших сканах. Но нет предела совершенству, а так же ввиду наличия большого количества документов сомнительного качества, поулучшав пайплайн разными методами, было принято решение попробовать улучшить и сам тессеракт.

Инструкция от разработчиков https://tesseract-ocr.github.io/tessdoc/Home.html не всегда сразу понятна и очевидна, поэтому и появилась мысль записать свой опыт в эту статью.

У меня на компьютере стоит Linux Mint 20.2 Cinnamon, поэтому все действия происходят в этой системе и я не могу гарантировать, что все получится точно так же в Windows или Mac.

Для начала необходимо установить бибилиотеку tesseract на компьютер. Делается это достаточно просто. Сначала проверю версию, которая уже установлена (как правило в комплекте с Linux уже есть пакет tesseract). В терминале набираем

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments6

Дообучение ruGPT-3.5 13B с LoRA

Level of difficultyMedium
Reading time10 min
Views16K

Добрый день, уважаемые читатели и авторы Хабра!

Сегодня я рад представить вам подробное руководство по обучению модели ruGPT-3.5 13B с использованием датасетов модели Saiga-2/GigaSaiga, технологии Peft/LoRA и технологии GGML. Эта статья призвана стать полезным и практичным ресурсом для всех, кто интересуется машинным обучением, искусственным интеллектом и глубоким обучением, а также для тех, кто стремится глубже понять и освоить процесс обучения одной из самых мощных и перспективных русскоязычных моделей.

В данной публикации мы разберем каждый этап обучения модели, начиная от подготовки данных и заканчивая конвертацией в формат GGML. Буду рад, если мой опыт и знания помогут вам в вашем исследовании и экспериментах в этой захватывающей области!

Читать далее
Total votes 30: ↑30 and ↓0+30
Comments27

Создание библиотеки Python: полный гайд

Level of difficultyMedium
Reading time7 min
Views22K

Создайте свою библиотеку для Python и загрузите на PyPi, сейчас!

В этом туториале я максимально понятно и подробно расскажу о том, как создать свою библиотеку для Python и загрузить её на PyPi, для того, что бы её мог использовать любой!

Читать далее
Total votes 12: ↑10 and ↓2+8
Comments13

Почему ONNX так популярен в ML: конвертации, утилиты и инференс

Level of difficultyMedium
Reading time5 min
Views6.2K

Большинство инженеров, работающих с машинным обучением, уже знакомы с форматом данных ONNX. Его часто используют для хранения обученных моделей и конвертации их мeжду фреймворками.

В этой статье расскажу об ONNX и о том, почему этот формат данных широко используется. Посмотрим на особенности формата и конвертации в него и на экосистему полезных инструментов.

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments0

Как с помощью BERT организовать поиск похожих текстов

Reading time5 min
Views4.7K

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

Читать далее
Total votes 8: ↑7 and ↓1+6
Comments0

NLP для TensorFlow: Генерация текста

Level of difficultyEasy
Reading time6 min
Views5.1K

Одним из самых крутых и, возможно, самых неприятных приложений NLP является генерация текста. Способность генерировать убедительный текст с помощью ИИ имеет широкое применение, от чат-ботов до создания художественной литературы или фейковых новостей. Сегодня мы рассмотрим создание фейковой фантастики на основе романа Льюиса Кэрролла «Алиса в стране чудес».

Читать далее
Total votes 12: ↑10 and ↓2+8
Comments3

Обучение универсальной модели NLU c BERT и Multitask Learning

Reading time7 min
Views8.8K

В современной компьютерной лингвистике понимание смысла написанного или сказанного достигается с помощью моделей естественного языка (NLU). С постепенным ростом аудитории виртуальных ассистентов Салют встает вопрос об оптимизации наших сервисов, работающих с естественным языком. Для этого оказывается целесообразно использовать одну сильную модель NLU для решения сразу нескольких задач обработки текста. В этой статье мы расскажем, как можно использовать многозадачное обучение для улучшения векторных представлений и обучения более универсальной модели NLU на примере SBERT.

В высоконагруженных сервисах обработки текста решается целый ряд различных задач NLP:

  1. Распознавание намерений.
  2. Выделение именованных сущностей.
  3. Сентиментный анализ.
  4. Анализ токсичности.
  5. Поиск похожих запросов.

Каждая из этих задач обладает своей спецификой и, вообще говоря, требует построения и обучения отдельной модели. Однако, поддерживать и исполнять для каждой такой задачи отдельную NLU-модель непрактично – сильно возрастает время обработки запроса и потребляемая (видео)память. Вместо этого мы используем одну сильную модель NLU для извлечения универсальных признаков из текста. Поверх этих признаков мы применяем относительно легковесные модели (адаптеры), которые и решают прикладные NLP-задачи. При этом NLU и адаптеры могут исполняться на разных машинах – это позволяет удобнее разворачивать и масштабировать решения.
Total votes 12: ↑12 and ↓0+12
Comments4

Как работают text2image модели?

Reading time6 min
Views18K

Вы, наверное, слышали про dalle-2, midjourney, stable diffusion? Слышали о моделях, которые по тексту генерируют картинку. Совсем недавно они продвинулись настолько, что художники протестуют, закидывая в стоки картинки с призывом запретить AI, а недавно, вообще, в суд подали! В этой статье будем разбираться, как такие модели работают. Начнем с азов и потихоньку накидаем деталей и техник генерации.

Читать далее
Total votes 79: ↑78 and ↓1+77
Comments4

YOLOR — Объяснение статьи и выводы – Углубленный анализ

Reading time20 min
Views2.8K

В последние годы наблюдается огромный прогресс в серии YOLO, в настоящее время в ней используются как модели обнаружения объектов без привязки, так и модели обнаружения объектов на основе привязки. Вместо того, чтобы сосредоточиться исключительно на архитектурных изменениях, YoloR выбирает новый маршрут. Он черпает вдохновение в том, как люди сочетают неявные знания с явными знаниями для решения новых задач. Предлагаемые методы значительно улучшают производительность Обнаружение объектов YoloR модели, в результате которых они будучи на ~88% 🚀быстрее и лучше (🎯 57,3% на Набор для тестирования COCO) с минимальными дополнительными затратами.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments3

9 причин перейти с Python на Go

Reading time10 min
Views21K

Переход на новый язык — это всегда большой шаг. Особенно, если этим языком владеет только один член команды. В начале этого года мы поменяли основной язык программирования в Stream — с Python на Go. В этой статье я приведу 9 причин почему — и 3 минуса, выявленных в процессе. 

Кодить на Python не брошу, но посмотрю
Total votes 37: ↑9 and ↓28-19
Comments36

Получить выписку ЕГРН из Росреестра с помощью python, минуя api

Reading time9 min
Views36K

Не первое знакомство с порталом Росреестра


Любой юрист когда-либо обращался с запросом в Росреестр (Федеральная служба государственной регистрации, кадастра и картографии). Времена, когда для запроса надо было бежать в отделение Росреестра и подавать запрос на бумаге уходят в прошлое. Росреестр запустил несколько онлайн сервисов, которые можно использовать не выходя из дома. К этим сервисам относится и запрос выписки из Единого государственного реестра недвижимости. Официальный сайт для начала работы.

Всем, кто уже успел поработать с сайтом, известно, что для получения выписки из ЕГРН, в которой будет содержаться информация не только об общих характеристиках объекта, но и о правообладателе данного объекта, необходимо зайти в личный кабинет Росреестра.

Возможно, это удобный способ получения одной или нескольких выписок. Однако, что делать, если необходим пакет выписок ЕГРН? Допустим, вы работаете с недвижимостью или владеете рядом объектов, общее число которых более 10. По общему правилу получать выписку из ЕГРН надо не реже 1 раза в год, чтобы успеть вовремя отреагировать в юридической плоскости на нежелательные изменения в Росреестре, если они возникнут помимо вашей воли.

Читать дальше →
Total votes 12: ↑8 and ↓4+4
Comments10

TransUNet — революция в традиционной сегментации изображений

Reading time4 min
Views4K

В настоящее время U-сеть занимает доминирующее положение в сфере решения задач по сегментации изображений, особенно в области медицинской визуализации. Среди большинства из предложенных на сегодняшний день U-сетей в качестве базовых структур широко используются сверточные нейронные сети (CNN).

Однако CNN могут эффективно использовать только информацию ближнего радиуса действия (“последних 100 метров”) (или локальную) из-за небольшого размера ядра свертки, что не позволяет им в достаточной степени исследовать данные в задачах, содержащих компоненты с зависимостями на больших расстояниях.

Трансформеры, обычно используемые для обработки естественного языка (NLP), могут эффективно исследовать информацию на дальних расстояниях, но недостаточно надежны в работе с данными вблизи, как это делают CNN.

Чтобы использовать возможности CNN для компенсации недостатков трансформеров и с другой стороны в задачах сегментации изображений, Чен (Chen) и др. предложили TransUNet, которая также является первой моделью сегментации изображения, построенная на основе трансформера. Стоит также отметить, что авторы удостоверились в перспективности объединения CNN и трансформеров, сначала попытавшись использовать чистую архитектуру трансформера для сегментации изображения. Однако она не сработала так же хорошо, как внедрение CNN в их архитектуру, поскольку трансформеры не так хороши при эксплуатации локальных возможностей, как CNN.

Читать далее
Total votes 10: ↑7 and ↓3+4
Comments0

Руководство по программированию сокетов на Python. От введения до работающего примера

Reading time10 min
Views56K


К концу руководства вы освоите основные функции и методы модуля Python socket, научитесь применять пользовательский класс для отправки сообщений и данных между конечными точками и работать со всем этим в собственных клиент-серверных приложениях. Материалом делимся к старту курса по Fullstack-разработке на Python.
Посмотреть первую часть
Total votes 8: ↑6 and ↓2+4
Comments0

Самообучающийся трекер объектов: как отслеживать цель в изменчивых условиях сцены

Reading time16 min
Views11K

Специалисты по компьютерному зрению не один десяток лет бьются над трекингом объектов. Они перепробовали многое: от старой-доброй оценки движения оптическим потоком до сетей-трансформеров.

Есть один подход к трекингу, широко известный на западе, но о котором мало пишут по-русски: Incremental Visual Tracker (IVT). Это трекер объектов на основе модифицированного метода главных компонент: он самообучается на ходу и адаптируется к изменчивым условиям.

Давайте исследуем физиологию этого трекера, чем он интересен и где его можно применить — а затем изучим проблемы его реализации и нюансы использования. Под катом ссылка на репозиторий и много математики.

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments0

Все, что вам нужно знать об Airflow DAGs, ч.2 — Операторы и Датчики

Reading time15 min
Views23K

Операторы являются основными строительными блоками DAG Airflow. Это классы, которые содержат логику выполнения единичной работы.

Вы можете использовать операторы в Airflow, создав их экземпляры в задачах. Задача определяет работу, выполняемую оператором в контексте DAG.

Чтобы просмотреть и выполнить поиск по всем доступным операторам в Airflow, посетите Astronomer Registry. Ниже приведены примеры операторов, которые часто используются в проектах Airflow.

Читать далее
Total votes 1: ↑1 and ↓0+1
Comments0

Асинхронные задания в Django с Celery

Reading time11 min
Views55K
Перевод статьи подготовлен в преддверии старта курса «Web-разработчик на Python».




Если в вашем приложении есть какой-то длительный процесс, вы можете обрабатывать его не в стандартном потоке запросов/ответов, а в фоновом режиме.

К примеру, в вашем приложении пользователь должен отправить картинку-миниатюру (которую, скорее всего, нужно будет отредактировать) и подтвердить адрес электронной почты. Если ваше приложение обрабатывает изображение, а потом отправляет письмо для подтверждения в обработчике запросов, то конечному пользователю придется зачем-то ждать завершения выполнения обеих задач перед тем, как перезагрузить или закрыть страницу. Вместо этого, вы можете передать эти операции в очередь задач и оставить на обработку отдельному процессу, чтобы немедленно отправить пользователю ответ. В таком случае, конечный пользователь сможет заниматься другими делами на стороне клиента во время выполнения обработки в фоновом режиме. Ваше приложение в таком случае также сможет свободно отвечать на запросы других пользователей и клиентов.
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments4

Обучение с подкреплением: сети Deep Q

Reading time5 min
Views5.5K

В предыдущих материалах из этой серии мы рассказали о том, что такое обучение с подкреплением (Reinforcement learning, RL), поговорили о том, почему это важно, разобрались с математическим аппаратом, используемым для создания RL-агентов.

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments0

«Ленивый сахар» PostgreSQL

Reading time7 min
Views37K

SQL - декларативный язык - то есть вы описываете "что" хотите получить, а СУБД сама решает, "как" именно она будет это делать. Некоторые из них при этом позволяют им "подсказывать", как именно лучше выполнять запрос, но PostgreSQL - нет.

Тем не менее, "синтаксический сахар" некоторых языковых конструкций позволяет не только писать меньше кода (учите матчасть!), но и добиться, что ваша база будет делать часть вычислений "лениво", только при фактической необходимости.

Читать далее
Total votes 42: ↑42 and ↓0+42
Comments15
1
23 ...

Information

Rating
Does not participate
Location
Иркутск, Иркутская обл., Россия
Registered
Activity