Как стать автором
Обновить
57
0.1

LegalTech, ML, ROS

Отправить сообщение

Правильный путь создания python-библиотеки: от создания до публикации

Уровень сложностиСредний
Время на прочтение30 мин
Количество просмотров6K

Привет, Хабр! Стоит ли говорить, что Python ОЧЕНЬ и ОЧЕНЬ популярный язык программирования, местами даже догоняя JavaScript. Python в мире программирования — это эсперанто, легкий язык созданный для всех, но его владельцам не мешало бы помыться.

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

Если вы ловили себя на мысли: «А почему мне бы не создать свою полноценную библиотеку?», то я рекомендую прочитать вам мою статью.

Эту статью вы можете использовать как шпаргалку для создания своих python-библиотек. Я полностью расскажу все этапы создания библиотеки: документация, тестирование, архитектура, публикация и управление зависимостями

Некоторые из вас могут подумать что мы изобретаем велосипед. А я в ответ скажу — сможете ли вы прямо сейчас, без подсказок, только по памяти, нарисовать велосипед без ошибок?

Читать далее
Всего голосов 26: ↑24 и ↓2+31
Комментарии6

Программирование для детей 14 лет: направления, видеоуроки, книги

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3.3K

14 лет – возраст, в котором можно изучать программирование на примере использования текстовых языков и вспомогательных сред. Lua и Roblox, C# и Unity – примеры удачных связок. Основа в виде понимания алгоритмов и базовых принципов кодинга – плюс, но даже без этого увлеченные подростки способны успешно осваивать конкретное направление.  

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

Сегодня хотим рассмотреть ряд направлений, подходящих подросткам 14 лет и старше. Опишем их, предложим бесплатные уроки в формате видео, а также представим полезные книги: они помогут, если захочется обучаться самостоятельно на углубленном уровне.

Читать далее
Всего голосов 23: ↑15 и ↓8+9
Комментарии1

Как научить LLM понимать видео? Часть 2

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров2.7K

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

Читать далее
Всего голосов 25: ↑25 и ↓0+34
Комментарии2

DE-1. DIY ассистент на LLM

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров7.5K

Привет Хабр, let's set the future.

Недавно у меня появилась идея фикс: 'Хочу собственного AI ассистента'. Казалось бы, нет никаких проблем - рынок предлагает массу готовых решений. Но моя вечная паранойя про утечку данных и стремление сделать все самому взяли верх. Решил поэкспериментировать и собрать ассистента своими руками, да еще как-то с учетом будущих возможностей для гибкой настройки. Времени на оптимизацию производительности и эстетический вид кода у меня не было, 'хочу здесь и сейчас', поэтому let me introduce this shit.

Читать далее
Всего голосов 19: ↑19 и ↓0+22
Комментарии7

Сборка Python проекта с uv и Docker

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров4.2K

Привет, Хабр! Меня зовут Денис Савран. Я старший разработчик направления серверной разработки на интерпретируемых языках и работаю в компании «Криптонит». В этой статье я хочу поделиться опытом сборки проектов на Python с использованием самых современных инструментов.

Читать далее
Всего голосов 23: ↑23 и ↓0+26
Комментарии10

Распознавание ж/д пикетных столбиков по фотографиям с беспилотника на основе PyTorch и YOLOv5

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров1.7K

Тенденция применения беспилотных летательных аппаратов (БПЛА) продолжает развиваться и процветать. Оснащение беспилотников камерами и навигационным оборудованием геодезического класса точности позволяет получать ортофотопланы с сантиметровой точностью. Расширить возможности БПЛА можно применив нейронные сети, способные распознавать объекты на фотографиях. В статье рассмотрен процесс подготовки фотографий с БПЛА, разметки объектов для обучения нейронной сети, ее обучения и получения результата в виде выявления объекта на новом фото на реальном участке железнодорожного перегона, определяемые объекты — пикетные столбики. Исходный код обработки данных и обучения модели выгружен на GitHub.

Читать далее
Всего голосов 12: ↑10 и ↓2+13
Комментарии14

Video-streaming в Raspberry PI + WebRTC — победа?

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.8K

Я занимаюсь разработкой роботов (как хобби) уже долгое время, и столкнулся с проблемой передачи видео через интернет со своего Raspberry PI 4 и Raspberry PI zero.

Сначала идея была в реализации WebRTC на node js, про что я написал в этой статье. Как было написано, проблема заключалась в высокой загрузке процессора.

Читать далее
Всего голосов 7: ↑6 и ↓1+10
Комментарии27

Интеграция TFLite во Flutter: внедряем модели машинного обучения в мобильное приложение

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.5K

Привет! Меня зовут Никита Грибков, я Flutter-разработчик в AGIMA. В этой статье расскажу про фреймворк TensorFlow Lite, который позволяет интегрировать в мобильное приложение модели машинного обучения. Это полезная штука, если нужно реализовать фичи, связанные с распознаванием речи или с классификацией изображений. Покажу, как обучать модели и как затем с ними работать.

Читать далее
Всего голосов 7: ↑7 и ↓0+9
Комментарии0

Как собрать и запитать радиопередатчик из хлама (консервных банок и проволоки) для передачи сигнала SOS

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров47K
Картинка Cmglee, Freepik image_1, Freepik image_2, Youtube-канал «Thomas Durant»

Меня всегда привлекали способы «собрать что-либо из ничего» и сегодня рассмотрим один из них — «выживальщик со стажем», во мне не даёт покоя :-).

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

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

Одним из наиболее сложных (так как требует определённых технологических приспособлений) и в то же время одним из наиболее перспективных, ввиду своей дальности действия, является радиосвязь. Попробуем прикинуть — как нам это реализовать, не имея под рукой в буквальном смысле почти ничего!
Читать дальше →
Всего голосов 124: ↑121 и ↓3+160
Комментарии127

OCR или как мы учимся читать спам на 5+

Время на прочтение12 мин
Количество просмотров20K


Всем привет, меня зовут Михаил Марюфич. Я занимаюсь машинным обучением в команде антиспама в Одноклассниках. И сегодня я расскажу про то, как и зачем мы сделали свою технологию распознавания текстовых символов с изображения OCR (Optical character recognition).
Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии16

Российской OCR – 30 лет. Как появилась технология, благодаря которой мы забыли про ручной ввод? (Часть 2. OCR CuneiForm)

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров3.4K

В честь 30-летия OCR мы продолжаем вспоминать, как появились первые отечественные технологии распознавания текста. На прошлой неделе мы рассказали про самую первую такую программу – OCR Tiger, предназначавшуюся для оцифровки книг с целью их дальнейшего переиздания.

Сегодня речь пойдёт про другую OCR-систему – CuneiForm. Она была более продвинутой и умела гораздо больше: распознавала символы различных алфавитов на основе латиницы и кириллицы для европейских языков и языков стран СНГ, работала со смешанными русско-английскими текстами. Самое главное – CuneiForm отличалась огромной по меркам того времени скоростью: 1 страницу она распознавала примерно за 10 секунд. Разберемся, какие алгоритмы использовались в OCR, где применялась CuneiForm и какое дальнейшее развитие получили системы распознавания.

Читать далее
Всего голосов 15: ↑14 и ↓1+14
Комментарии7

Адаптация языковой модели vosk

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров12K

Приветствую, Хабр. В данной статье хочу рассмотреть процесс добавления слов в языковую модель vosk'а (vosk - библиотека для распознавания речи, в основе которой kaldi).

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии12

Обнаружение препятствий на OpenCV

Время на прочтение3 мин
Количество просмотров10K

Моя первая статья на Хабре, не судите строго, надеюсь содержание будет как минимум интересно, а если окажется кому-то полезным - буду просто счастлив!

Не так давно, ко мне в руки попала модель радиоуправляемого катера с мощным бесколлекторным двигателем. Быстро наигравшись с ним, как и в далеком детстве, полез смотреть как устроена игрушка изнутри. Все оказалось настолько просто, что даже мне, не особо разбирающемуся в радиоэлектронике, все было понятно. Первое, что пришло в голову, подключить к сервоприводу и блоку управления двигателем, микрокомпьютер Raspberry Pi. Пусть катер получит зачатки интеллекта и самостоятельно отправится в плавание!

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

По-сути, я столкнулся только с одной проблемой: водоросли и прочий мусор. Для решения этой задачи было решено установить камеру и оснастить катер компьютерным зрением. Было бы здорово, чтобы он не только плавал по координатам, но и уворачивался от препятствий. Многие видели, как библиотеки компьютерного зрения определяют и классифицируют объекты. Но для этого нужны значительные по объему базы данных классификаторов и немалая производительность. А что если мы заранее не знаем какие нам попадутся препятствия? Что если на пути будет просто мусор произвольной формы, цвета и размера? Вот эту задачу мне бы очень хотелось решить!

Читать далее
Всего голосов 42: ↑42 и ↓0+42
Комментарии71

Собираем свой маленький беспилотник

Время на прочтение3 мин
Количество просмотров18K

Будем делать вот такой маленький, как на картинке, беспилотный автомобиль.

Рассказ о том, как я его собрал.

Код, список деталей и видео туториал по сборке.

Читать далее
Всего голосов 43: ↑42 и ↓1+55
Комментарии21

Весь Хабр в одной базе

Время на прочтение7 мин
Количество просмотров17K

Добрый день. Прошло уже 2 года с момента написания последней статьи про парсинг Хабра, и некоторые моменты изменились.


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

Читать дальше →
Всего голосов 27: ↑24 и ↓3+36
Комментарии51

Профилирование Python — почему и где тормозит ваш код

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров23K

Представьте ситуацию: вы написали скрипт для обработки каких-то данных на ноутбуке, ушли попить кофе, а когда пятнадцать минут спустя вернулись, завершилось едва ли 10%.

Почему скрипт работает так медленно? Какая его часть тормозит? Дело в чтении данных, их обработке или сохранении? Как ускорить исполнение? Действительно ли скрипт вообще медленный?

Ответить на все эти вопросы поможет инструмент под названием «профилировщик» (profiler).
Читать дальше →
Всего голосов 48: ↑47 и ↓1+66
Комментарии10

Добавляем зрение, слух и голос в свой ChatGPT бот в Telegram

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров19K

Поддержка преобразования речи в текст была в OpenAI API уже давно, а вот из текста в речь, а также распознавание изображений было добавлено совсем недавно. В связи с чем продолжаю свою серию туториалов по разработке собственного ChatGPT бота в Telegram.

Читать далее
Всего голосов 12: ↑11 и ↓1+14
Комментарии9

Практический гайд по процессам и потокам (и не только) в Python

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров24K

За то время что я занимаюсь менторством я заметил, что большинство вопросов новичков связаны с темами: конкурентность, параллелизм, асинхронность. Подобные вопросы часто задают на собеседованиях, в работе эти знания позволяют писать более эффективные и производительные системы.

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

Читать далее
Всего голосов 16: ↑13 и ↓3+10
Комментарии7

Task-Сервер на «Flask»: как заставить несколько компьютеров решать одну задачу

Время на прочтение5 мин
Количество просмотров4.3K

Привет, Хабр! Подготовительным этапом для видеоаналитики с применением методов машинного обучения - является выгрузка записей из видеорегистраторов Hikvision, что является достаточно длительной задачей, особенно если регистраторов несколько, давайте попытаемся разобраться как выполнить эту работу быстрее и удобнее, используя сервер.

Читать далее
Всего голосов 4: ↑2 и ↓2+2
Комментарии2

Как устроен GIL (Global Interpreter Lock) в Python: влияние на многозадачность и производительность

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров21K

Привет, уважаемые читатели!

GIL, или Global Interpreter Lock десятилетиями оставался темой обсуждения и дебатов среди питонистов.

Что такое GIL? GIL, сокращение от Global Interpreter Lock, представляет собой важную концепцию в Python. Он представляет собой мьютекс, который блокирует доступ к объекту Python interpreter в многопоточных средах, разрешая выполнять лишь одну инструкцию за раз. Этот механизм, хоть и заботится о безопасности и целостности данных, одновременно становится камнем преткновения для тех, кто стремится максимально задействовать многозадачность и использовать полностью потенциал многоядерных процессоров.

Когда мы говорим о многозадачности в Python, имеется в виду использование множества потоков или процессов для выполнения различных задач. Это особенно актуально в приложениях, которые требуют обработки данных в реальном времени или одновременного выполнения большого числа задач. Однако GIL вносит ограничения в этот процесс, так как только один поток имеет доступ к интерпретатору Python в определенный момент времени.

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

Читать далее
Всего голосов 16: ↑11 и ↓5+9
Комментарии16
1
23 ...

Информация

В рейтинге
3 423-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность