Pull to refresh
-2
0.2
Send message

Собираем ANPR-систему на Python: от YOLOv8 и кастомного OCR до INT8-квантизации

Reading time13 min
Views5.7K

Привет, Хабр!

Распознавание автомобильных номеров (ANPR) — задача не новая. Существует множество коммерческих решений и open-source библиотек. Но что, если стандартные инструменты не не подходят? А что, если нам нужна система, которая будет молниеносно работать на обычном CPU, без дорогих видеокарт?

Недавно я столкнулся именно с такой задачей. Вместо того чтобы просто "склеить" готовые решения, я решил пройти весь путь ML-инженера от начала до конца: от анализа данных до обучения кастомных SOTA-моделей и их финальной оптимизации. В этой статье я поделюсь всем процессом, кодом, результатами и проблемами, с которыми пришлось столкнуться.

Читать далее

Зачем я решил научить Statuser следить за DNS — и что из этого вышло

Level of difficultyEasy
Reading time4 min
Views2.2K

Мы привыкли считать, что если сервер доступен и SSL в порядке — значит, всё под контролем. Но иногда сбой происходит раньше, ещё до того, как запрос дошёл до сервера.

Меня зовут Михаил Шпаков, я создаю и развиваю сервис мониторинга Statuser.

Недавно я общался с руководителем IT-отдела одной компании, которая использует Statuser для мониторинга своих сервисов. Он поделился интересным кейсом: несколько часов подряд у них перестала отправляться почта с корпоративного домена. Сайт работал, сервер был доступен, SSL-сертификат в порядке — всё зелёное, а письма не уходят. Проблема выглядела случайной: часть писем доставлялась, часть возвращалась с ошибкой, а из-за этого срывались заказы и возникали прямые убытки.

Когда их команда начала разбираться, выяснилось, что недавно один из сотрудников сменил почтового провайдера и добавил новые MX-записи в DNS, но старые при этом не удалил. В результате часть писем уходила на старый сервер, который уже не принимал почту, а часть — на новый. Снаружи всё выглядело исправно, но на деле домен был «раздвоен» между двумя почтовыми системами.

После этого разговора я понял, что в Statuser не хватает отдельного типа мониторинга — контроля DNS-записей. HTTP, SSL и Ping могут быть зелёными, но если в DNS остались старые MX, сервис уже фактически неисправен.

Так в Statuser появился новый тип мониторинга — проверки DNS, который помогает замечать изменения, подмены и ошибки в зонах ещё до того, как они превращаются в простои и убытки.

Читать далее

Выжимаем из Go скорость до последних наносекунд

Level of difficultyMedium
Reading time12 min
Views17K

Будем оптимизировать программы на Go. Выжимать последние наносекунды, чтобы код приближался по скорости к Си или ассемблерному. Цель - скорость, чтобы процессор был загружен на 100% при высокопроизводительные вычислениях.

Читать далее

Разработка MCP-сервера на примере CRUD операций

Reading time10 min
Views7K

Model Context Protocol (MCP) — это единый стандарт разработки API для сервисов, с которыми могут взаимодействовать LLM.

В этой статье на простом примере разберем, как создать свой MCP-сервер и как использовать его в связке с LLM.

Мои курсы: Разработка LLM с нуля | Алгоритмы Машинного обучения с нуля

Читать далее

Кто-нибудь, остановите feature creep

Reading time6 min
Views7.5K

На днях Apple выпустила очередную версию macOS. Но когда на презентации этой версии холёные топ-менеджеры наперебой говорили «amazing», я смотрел на анонсированные фичи и вместо «amazing» ощущал «ну блин, зачем». В macOS позволили добавлять виджеты прямо на рабочий стол, и из-за подобных вещей ощущаю, что компания постепенно захламляет свой продукт и предаёт свою собственную идеологию минимализма.

Новые фичи могут делать продукт не только лучше, но и хуже. Кто постарше — помните, как приложение NERO Burning ROM превратилось в монстра с тысячей щупалец? Ты хочешь просто записать CD-R, а ощущаешь, словно безумный комбайн поглощает всю твою жизнь. Или вот функции редактирования видео в Photoshop — это правда нужно? Может, Photoshop и без них достаточно сложная штука, а видео лучше оставить другим приложениям? А сториз в Телеграме точно делают всем только лучше, или кому-то они замусорят инструмент рабочей коммуникации? Почему мы не умеем вовремя останавливаться?

И в случае с macOS мне особенно обидно. Ведь Apple — это компания с подходом «мы не предустанавливаем на ноутбуки стороннюю дребедень за копеечку, как делают другие». С подходом «мы не обклеиваем ноутбуки рекламными наклеечками вроде Intel Inside». С подходом «ничего лишнего». А теперь она сама превращает собственную ОС в пёстрое лоскутное одеяло (не только виджетами).

Что происходит, кто виноват и что делать? Я далеко не первый, кто об этом говорит, так что вряд ли скажу что-то принципиально новое. Но думаю, чтобы такого было поменьше, эту тему нужно поднимать регулярно, напоминая о ней.

Читать далее

С толикой «крипоты» — откуда пришло понятие feature creep и как «ползучее расширение функциональности» вредит проектам

Reading time7 min
Views2.2K

Мы в Beeline Cloud недавно писали о ретрософте, который живет и поддерживается вот уже не первое десятилетие. Сила этих программ кроется в отказе от лишнего.

Во многом они выжили благодаря своей простоте: сохранили ядро, ключевую функциональность и лояльных пользователей. Поговорим о тех, кто все же не смог устоять. Разберем на примерах, как неконтролируемый feature creep превращает продукты в монструозных «франкенштейнов», от которых бегут пользователи.

Читать далее

CLIP + LLM в проде: мультимодальный «Поиск по фото» для маркетплейса

Level of difficultyMedium
Reading time9 min
Views3.5K

Привет! Меня зовут Никита Романов, и я техлид продуктов «Поиск по фото» и «Похожие по фото» в Wildberries. За спиной — более шести лет опыта в сфере компьютерного зрения (CV).

В этой статье мы обсудим онлайн сервис «Поиск по фото». А точнее, его архитектуру и основные компоненты — Image Retrieval, подбор текстовых тегов и уточнение текстом. Также обязательно поговорим о векторном индексе Qdrant, т.к. метрики и эксперименты мы тестируем в нём. Расскажем про результаты A/B-тестов и что уже в проде.

Читать далее

NFT 2.0 TON

Level of difficultyEasy
Reading time3 min
Views3.3K

Что именно обновилось?

Чтобы ответить на этот вопрос нужно разобраться как вообще устроена технология NFT в TON.

Есть контракт TPEP 62 который является технической базой для всех NFT в блокчейне TON, там хранится например: принадлежность к коллекции, адреса контрактов и другая информация. Для него есть “дополнение” TEP 66 который показывает кому и сколько нужно выплачивать роялти с перепродажи NFT и как расчитывать это роялти. И 62 и 66 это ончейн информация, то есть находится в блокчейне.

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

Читать далее

Установка и настройка Hysteria

Level of difficultyEasy
Reading time10 min
Views44K

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

Дошли у меня руки и до вкратце описанного в статье «Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria, Cloak и все-все-все» протокола Hysteria, который уже добрался до второй версии. И для него я не нашёл цельной русскоязычной инструкции, что вызвало желание собрать воедино информацию, когда я разобрался с основными вопросами установки, настройки сервера и клиентов для использования этого протокола в деле обхода блокировок.

Читать далее

Chonkie: революция в RAG-чанкинге — скорость, лёгкость, удобство

Level of difficultyEasy
Reading time11 min
Views14K

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

Всем привет! Меня зовут Вадим, я Data Scientist в компании Raft. В этой статье я расскажу о Chonkie — библиотеке для простого и быстрого чанкирования документов, а также на практике применю её и сравню с другими популярными решениями: LangChain и LlamaIndex.

Читать далее

$220К в месяц на индексации сайтов для Google

Level of difficultyEasy
Reading time6 min
Views27K

Разбираю, как программист создал простой сервис для рендеринга JavaScript в HTML. Продвинул его бесплатным способом. И вывел на доход $220К в месяц.

Читать далее

Альтернативная нотация описания архитектуры ИТ систем

Level of difficultyMedium
Reading time4 min
Views4.9K

Альтернативная нотация описания функциональной архитектуры и архитектуры интеграций для решения задач ИТ-развития в рамках проектных задач, продуктового развития и инициатив бизнеса для командной работы в едином информационном поле бизнес и системных аналитиков, архитекторов, разработчиков, тестировщиков и специалистов поддержки.

Читать далее

Redis работает быстро — я буду кэшировать данные в Postgres

Reading time5 min
Views15K

В интернете есть книги и множество статей, таких как эта, в которых авторы приводят аргументы в пользу использования Postgres для всего. Я решил рассмотреть один из вариантов использования — применение Postgres вместо Redis для кэширования. Я довольно часто работаю с API, поэтому я создал очень простой HTTP-сервер, который отвечает данными из этого кэша. Я начал с Redis, так как часто сталкиваюсь с этим на работе, а затем переключился на Postgres с использованием нежурналируемых таблиц и посмотрел, есть ли разница.

Читать далее

Революция в генерации изображений открывает новые подходы к созданию реалистичных картинок с помощью нейронных сетей

Level of difficultyMedium
Reading time3 min
Views7.3K

Команда российских ученых, работающих в МФТИ, Иннополисе и Сколково, совершила научный прорыв в области генеративного моделирования — создании новых изображений, похожих на настоящие фотографии или рисунки. Они разработали новый метод, который значительно ускоряет и упрощает процесс генерации в теории и на практике. Их результаты опубликованы в материалах конференции NeurIPS 2024.

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

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

Новый метод оптимального сопоставления потоков, представленный на конференции NeurIPS 2024, решает эти проблемы. 

Читать далее

Использование файберов в PHP: разбор от команды СберЗдоровье

Level of difficultyMedium
Reading time12 min
Views8K

PHP и асинхронность. Такая комбинация долгие годы казалась невозможной, ведь PHP прочно ассоциировался с блокирующим подходом и синхронным выполнением скриптов «от запроса до ответа». С выходом PHP 8.1 ситуация несколько изменилась — появилась возможность реализовать асинхронность в PHP на основе файберов. Но есть нюанс — вопрос о том, действительно ли PHP с приходом файберов стал асинхронным, по-прежнему для многих остается открытым.

Меня зовут Михаил Сазонов. Я работаю в команде «Регистратура» в MedTech-компании №1 в России – в СберЗдоровье. В этой статье я разберу, наступило уже будущее или нет: стал ли PHP действительно асинхронным с приходом файберов или это миф.

Читать далее

Как мы ищем рестораны на карте: геоиндекс в Яндекс Еде

Reading time10 min
Views5K

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

Привет! Меня зовут Серёжа Синягин, я старший разработчик в Яндекс Еде и пишу на C++. В этой статье расскажу о задаче, с которой столкнулся в работе: как мы определяем, какие рестораны доступны пользователю для заказа. По пути заглянем во внутреннюю кухню, обсудим библиотеку H3 от Uber и разберём, как устроены R‑деревья и как мы используем их у себя.

Читать далее

Как дорожные знаки попадают на карты Яндекса: применяем ML в картографии

Reading time11 min
Views28K

Важное свойство любых карт — их актуальность. Чтобы Яндекс Карты максимально точно отражали дорожную обстановку, мы постоянно мониторим изменения в реальном мире. Один из факторов, который необходимо отслеживать, — это установка или демонтаж знаков дорожного движения.

Меня зовут Владимир Быстрицкий, я руковожу группой AI-картографирования. В этой статье расскажу о процессе детектирования дорожных знаков в картопроизводстве Яндекса: с чего всё началось, как развивалось, какие технологии использовались. Ну и попробую ответить на самый, на мой взгляд, главный вопрос в любой ML-задаче: как собрать датасет и не разориться?

Читать далее

Одна из причин «толстения» — продукты содержат больше калорий, чем написано

Level of difficultyEasy
Reading time4 min
Views6.1K

Когда всё подсчитано точно, а вес растёт или упорно стоит, даже при явном минусе скажем 700 килокалорий в сутки — помойте посуду... Есть такое правило в физике и химии — если эксперимент не идёт как надо, а все приборы‑пробирки настроены как надо — проверяйте контакты и мойте посуду.

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

Набрёл на человека, он носит в лабораторию на анализ разные продукты. Недавно стаскал туда вкусности из вкусвилла — там в итоге везде всё хорошо с белком — его сколько, сколько указано на упаковке и везде — больше чем надо жира и углеводов. Вот те бабушка и приехали. Ответ на вопрос — я считаю всё до грамма и не худею — ты считаешь не по честной этикетке. Такое тоже увы реальность. Не все концентраты белков, протеиновые батончики и котлеты одинаково честно описаны производителями.

Читать далее

Проектный VS продуктовый подход: почему 85% функций вашего продукта — мусор, и что с этим делать

Reading time8 min
Views4K

Привет! Меня зовут Артем Герасимов, я владелец продукта SimpleOne SDLC. В статье расскажу о проблеме, с которой сталкивается большинство ИТ-компаний: они тратят миллионы на разработку функций, которыми никто не пользуется.

Читать статью

Information

Rating
2,784-th
Registered
Activity