Как стать автором
Обновить
2
0

Пользователь

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

Со Stable Diffusion вы можете больше никогда не поверить увиденному в онлайне

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

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

Одни художники восхищаются открывшимися возможностями, другие недовольны, а общество в целом пока вроде бы не курсе той стремительно развивающейся технологической революции, которая происходит в сообществах на Twitter, Discord и GitHub. Возможно, синтез изображений приносит настолько же большие возможности, как изобретение камеры — или даже создание самого визуального искусства. Даже наше восприятие истории под вопросом, в зависимости от того, как всё утрясётся. В любом случае Stable Diffusion возглавляет новую волну творческих инструментов, основанных на глубоком обучении, которые намерены революционизировать создание визуального медиаконтента.

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

Груг против сложности. Я пролинтил все посты на Хабре про Python, и вот что я нашёл

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

В какой-то момент времени я превратился в педанта брюзгу. В фильмах малейшие нестыковки и провалы в логике портят мне весь просмотр. В чатах меня бесит it's вместо its. А в статьях про программирование... Всё плохо. За меня всё уже сказал @AlexanderAstafiev, я лишь процитирую:

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

Самое забавное, что, по моим ощущениям, везде я вижу одни и те же классы проблем. Я даже запилил сервис, где можно закинуть код и получить код ревью, и, собрав немного статистики, понял, что 50 типов ошибок достаточно, чтобы покрыть большую часть проблем в чужом коде. Но выборка у меня была небольшая, и я подумал: а что, если проверить много кода?

И всё заверте...
Всего голосов 119: ↑114 и ↓5+134
Комментарии153

Когда есть только дисплей и больше ничего

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

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

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

Как мы сделали распознавание речи нескольких говорящих

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

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

Не так давно мы отметили 1 миллион проданных устройств с виртуальными ассистентами Салют. В нашей линейке в числе прочего представлены farfield-устройства, то есть те, с которыми можно “разговаривать” на расстоянии: смарт-дисплей SberPortal, ТВ-медиацентр SberBox Top и умная медиаколонка SberBox Time. В комнатах, где они стоят, может говорить одновременно несколько людей или играть телевизор, что существенно усложняет задачу распознавания. Иногда необходимость распознать больше одного голоса на записи возникает и у клиентов нашего API SmartSpeech — например, если это разговор двух людей.

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

Читать далее
Всего голосов 18: ↑17 и ↓1+21
Комментарии16

Как мы переходили с pip на Poetry

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

Всем привет! Я Станислав Бушуев, Software Engineer в Semrush. В этой статье я расскажу о том, как мы столкнулись с проблемой периодического обновления Python-зависимостей, тестировали решение с полной их фиксацией, ошибались, и в итоге перешли на Poetry.

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

17 убойных репозиториев GitHub, которые нужно сохранить

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

Здесь собраны лучшие и самые полезные репозитории Github, которые будут служить вам долгое время.

Читать далее
Всего голосов 153: ↑123 и ↓30+114
Комментарии44

Компактный DIY Zigbee датчик температуры с e-ink дисплеем

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

В сегодняшней статье хочу рассказать о новой версии миниатюрного датчика температуры и влажности с e-ink дисплеем. Этот проект является продолжением моего старого открытого ардуино проекта миниатюрного датчика температуры c e-paper дисплеем, который работал на nrf52810.
Читать дальше →
Всего голосов 64: ↑64 и ↓0+64
Комментарии15

KC868-AG: IoT шайба

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


Не знаю как у вас, а меня первая ассоциация при взгляде на Kincony KC868-AG — это хоккейная шайба. На самом деле это очередной IoT контроллер от компании Kincony на популярном микроконтроллере ESP32, предназначенный для IR управления домашней аппаратурой и дополнительно снабжённый беспроводным приёмником и передатчиком 433 МГц для взаимодействия с устройствами наподобие метеодатчиков, умных розеток и тому подобных устройств.

Во многом KC868-AG напоминает уже рассмотренный нами раньше контроллер KC868-Uair, но есть и некоторые отличия. Об этих отличиях и о том, как можно использовать KC868-AG мы и поговорим дальше.
Читать дальше →
Всего голосов 40: ↑40 и ↓0+40
Комментарии18

Фиалку поливать не нужно

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

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

— Возьмешь фиалку? Марина выращивает, не везти же их все с собой. Мы их всем друзьям раздаем.

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

— Эту фиалку поливать не нужно.

Он принес из комнаты цветок, и я был вынужден признать верность его заявления. Фиалка имела «систему автополива». Растение было посажено в маленький горшок, который помещался в большой пластиковый стакан, вроде бы из под кваса. Из горшка спускалась веревочка, через которую и поступала необходимая для жизни влага. Таким образом, залив один раз пол литра, можно было не беспокоиться о цветке несколько месяцев. Фиалку я взял.

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

Народная дозиметрия. Бюджетный детектор радиации своими руками

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

Сегодня мы изготовим простой и бюджетный DIY-дозиметр на базе wifi-контроллера ESP32 и платы RadSens. В качестве сенсора будет использована популярная трубка СБМ20. 

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

Читать далее
Всего голосов 25: ↑24 и ↓1+32
Комментарии29

Домашняя масляная майнинг-ферма

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

Это история одного моего хобби-проекта - создания встроенной в интерьер майнинг-фермы с видеокартами в масле, которая своим теплом отапливает лоджию.

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

Нейронная сеть считает лес кругляк и распознает автомобильные номера. Как это сделано?

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

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

Необходимая подготовка читателя — должно быть общее представление о компьютерном зрении (computer vision) и нейронных сетях. Здесь не будет описаний, что такое сверточная нейронная сеть и т.п., статей по таким основам найдете много на хабре (вот хорошая Глубокое обучение для новичков: распознаем изображения с помощью сверточных сетей). В то же время, совсем новички могут получить представление, какие знания и компетенции нужны для решения подобных задач.

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

Ирина, голосовой помощник. Продолжение

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

— Слушай, она меня на кухне не слышит.
— Ну да, далековато. Давай дополнительный микрофон протянем.
<покупается 5 метров кабеля>
— О, классно!
— ...
— Теперь в комнате не работает.

Это продолжение статьи Ирина — опенсорс русский голосовой помощник. Offline-ready - про голосового помощника, не зависящего от крупных корпораций. Расскажу, что улучшилось за два месяца с момента прошлой статьи.

TL;DR> Отлажен клиент-сервер с несколькими микрофонами/машинами; можно командовать по всему дому. Сделан Телеграм-клиент. Несколько новых голосов (TTS). Обработка голоса в контексте (можно делать голосовые игры). Интеграция с Home Assistant. И ЕЩЁ больше плагинов и документации.

Ладно, рассказывай, что нового
Всего голосов 36: ↑34 и ↓2+39
Комментарии24

Получаем список российских IP-адресов

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

Мир меняется. И в текущей ситуации становится полезным список IP-адресов, условно принадлежащих автономным системам той или иной страны.

В этой статье вы узнаете, как получить список префиксов, анонсируемых автономными системами любой страны. Если вы, конечно, не знали этого раньше.

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

А ты используешь VAD? Что это такое и зачем он нужен

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

Очень часто при работе мы обращаем внимание на то, что все люди знают, что такое распознавание речи, но не знают, что такое Voice Activity Detector (VAD) или детектор речи. А ведь именно VAD на самом деле самый важный алгоритм при работе с речью людей в естественной среде обитания.


Как ни странно, если поискать поддерживаемые и высококачественные решения данной задачи в публичном доступе — найдутся буквально пара проектов достаточного уровня. Но вот незадача — академические решения тяжелы (и иногда работают запретительно долго) и зачастую принимают только целые аудио на вход (нельзя использовать потоково). Решение от Google (WebRTC) очень быстрое но плохо отличает речь от шума (но его можно использовать потоково). А некоторые коммерческие решения "привязаны" к личному кабинету и шлют какую-то телеметрию.


Мы решили исправить это недоразумение и сделать уникальный VAD мирового уровня (судите сами по метрикам), который работает на 1 ядре процессора с задержкой в 1 миллисекунду на кусочках аудио от 30 миллисекунд. В этой статье мы расскажем вам, что такое VAD, покажем на примерах как использовать его и наглядно потестировать на своем голосе.

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

Собственный голосовой помощник off-line

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

Microphone вектор создан(а) storyset - ru.freepik.com

Никогда не был любителем голосового интерфейса, но пробовал дома и Amazon Echo, и Алису. Все-таки очень долго это и недостаточно надежно - произносить фразу и думать потом - правильно ли меня поняли и всё ли сделано, как я хотел.
Но после прочтения статьи и, главное, обсуждений после нее я пришел к выводу, что есть варианты, когда это правда удобно. Собственно, самым ярким мне показался пример с кухонным таймером - не хочется грязными руками что-то трогать - голосовой интерфейс тут идеален. А попробовав приложение и почитав код коллеги @janvarev я понял, что современные средства распознавания уже вышли на очень приличный уровень и легко подключаются в проекты с открытым кодом. Дальше стало интересно сделать что-то более удобное и более стабильно работающее (без обид, но проект "Ирина" у меня не весь заработал при вменяемых затратах времени и настроек там меньше, чем мне хотелось бы).

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

Оптическое распознавание символов с помощью Rust и WebAssembly

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

После переписывания Cyberscore я захотел отправить на сайт какие-нибудь результаты. Последнее, во что я играл, это Pokémon Legends: Arceus, по которой на Cyberscore есть около 3000 таблиц результатов. Я не собирался отправлять столько рекордов вручную, поэтому начал придумывать инструмент для автоматизации этого процесса.

Эта статья посвящена двум вещам: процессу извлечения результатов из JPG с помощью Rust и встраиванию этого функционала во фронтенд Cyberscore.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+43
Комментарии0

Как заходить в чужой монастырь

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

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

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

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

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

Читать далее
Всего голосов 59: ↑58 и ↓1+67
Комментарии12

Глобальная блокировка интерпретатора (GIL) и её воздействие на многопоточность в Python

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

Прим. Wunder Fund: в статье рассказано, зачем появилась и существует глобальная блокировка интерпретатора в Питоне, как она работает, и как она влияет на скорость работы Питона, а также о том, куда в будущем, вероятно, будет двигаться Питон. У нас в фонде почти всё, что не написано на плюсах — написано на Питоне, мы пристально следим за тем, куда движется язык, и если вы тоже — вы знаете, что делать )

Как вы, наверное, знаете, глобальная блокировка интерпретатора (GIL, Global Interpreter Lock) — это механизм, обеспечивающий, при использовании интерпретатора CPython, безопасную работу с потоками. Но из-за GIL в конкретный момент времени выполнять байт-код Python может лишь один поток операционной системы. В результате нельзя ускорить Python-код, интенсивно использующий ресурсы процессора, распределив вычислительную нагрузку по нескольким потокам. Негативное влияние GIL на производительность Python-программ, правда, на этом не заканчивается. Так, GIL создаёт дополнительную нагрузку на систему. Это замедляет многопоточные программы и, что выглядит достаточно неожиданно, может даже оказать влияние на потоки, производительность которых ограничена подсистемой ввода/вывода.

Здесь я опираюсь на особенности CPython 3.9. По мере развития CPython некоторые детали реализации GIL, определённо, изменятся. Материал опубликован 22 сентября 2021 года, после публикации в него внесено несколько дополнений.

Читать далее
Всего голосов 44: ↑41 и ↓3+57
Комментарии12

Лучшие GUI для MongoDB в 2021 году

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

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

Документные базы данных используют вместо реляционных таблиц и столбцов вложенные пары ключ-значение. Одно из преимущество такого подхода в том, что вам не нужно преобразовать данные для взаимодействия с фронтендом — данные уже хранятся в необходимом виде (плюс-минус .map или .reduce). 

Работа с MongoDB через командную строку не всегда удобна, и в этом посте мы рассмотрим доступные графические инструменты.

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность