Как стать автором
Обновить
28
0
Алексей @MarkWatney

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

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

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

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

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

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

Читать далее
Всего голосов 491: ↑483 и ↓8 +475
Комментарии 315

Нейронные сети для планирования движения беспилотных автомобилей

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

Планировщик движения беспилотного автомобиля — это алгоритм-помощник, который общается с другими участниками движения посредством манёвров. То есть он действует так, чтобы другим было понятно, куда поедет беспилотник, и сам по действиям других пытается определить, кто куда будет двигаться и почему.

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

Под катом — детальный разбор логики движения беспилотника, примеры свёрточных и трансформерных архитектур моделей для предсказания движения и много формул для расчёта вероятных траекторий других машин и пешеходов. А ещё я расскажу, в чём преимущества машинного обучения перед эвристиками и чем может помочь Reinforcement Learning.

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

Как утереть нос NumPy с помощью двумерного БПФ

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

Двумерное преобразование Фурье — один из важнейших алгоритмов компьютерной науки этого столетия. Он нашел широкое применение в нашей повседневной жизни — от фильтров Instagram до обработки MP3-файлов.

Наиболее частой реализацией, используемой рядовым пользователем, иногда даже неосознанно, является адаптация из NumPy. Однако, несмотря на популярность, их алгоритм не является самым эффективным. С помощью нескольких простых манипуляций и статьи 2015 года мы обошли алгоритм NumPy по производительности аж на 30-60%. Основная проблема этой реализации заключается в том, что она изначально основана на слабом с точки зрения производительности алгоритме.

По своей сути алгоритм, реализуемый NumPy, является поочередным применением обычного одномерного БПФ (FFT) к двум измерениям, что очевидно не может быть оптимальным решением.

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

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

Вкатываемся в Machine Learning с нуля за ноль рублей: что, где, в какой последовательности изучить

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

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

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

От логики и риторики до теории множеств и матанализа. Полезные материалы по Data Science и машинному обучению

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

Привет, Хабр! Меня все еще зовут Ефим, и я все еще MLOps-инженер в отделе Data- и ML-продуктов Selectel. В предыдущей статье я кратко рассказал про основные ресурсы, которые могут помочь начинающему специалисту ворваться в бурлящий котел Data Science. Но после выхода материала я понял, что задача систематизации знаний гораздо сложнее, чем казалось. Настолько, что проиллюстрировать ее можно только табличкой ниже:


В этом тексте хочу исправиться: разбить знания по Data Science и машинному обучению на несколько теоретических блоков и дать больше полезных материалов. Подробности под катом!
Читать дальше →
Всего голосов 42: ↑42 и ↓0 +42
Комментарии 9

Собираем русскоязычный лонгформер шаг за шагом

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

Привет, меня зовут Андрей Казначеев, я NLP engineer в компании MTS AI. В этой статье я расскажу, как создал лонгформер для русского языка. Все началось с того, что мне подкинули задачу по классификации длинных диалогов. Тексты длинные, а большинство популярных моделей имеют строгое ограничение по длине входной последовательности. Хотелось сделать решение умнее, чем просто побить текст на куски, однако ничего готового для русского языка не нашел. Тогда я задумался, а так ли сложно сделать свою собственную версию лонгформера под русский язык? Оказалось, совсем не сложно.

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

Generative AI. Как программистам держать нос по ветру

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

Вряд ли найдётся тот, кто ещё не знаком с ChatGPT, Midjourney, StableDiffusion - такая популярность говорит сама за себя. Хайп вокруг генеративного искусственного интеллекта (далее - ИИ) не утихает и уже начинает немного надоедать. Но мы, как разработчики, должны оставаться в курсе событий и принимать реальность такой, какая она есть.

А реальность такова:

• Использование Copilot и его аналогов, ChatGPT и других генеративных нейросетей увеличивает вашу продуктивность.

• Бизнес активно ищет возможности оптимизировать процессы или внедрить новые фичи на основе генеративного ИИ.

Давайте разберём каждое из этих утверждений.

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

Простой классификатор P300 на открытых данных

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

Мой коллега Рафаэль Григорян eegdude недавно написал статью о том, зачем человечеству потребовалась ЭЭГ и какие значимые явления могут быть зарегистрированы в ней. Сегодня в продолжение темы нейроинтерфейсов мы используем один из открытых датасетов, записанных на игре, использующей механику P300, чтобы визуализировать сигнал ЭЭГ, посмотреть структуру вызванных потеницалов, построить основные классификаторы, оценить качество, с которым мы можем предсказать наличие такого вызыванного потенциала.


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



Для того, чтобы заняться классификацией ЭЭГ, можно позвать друзей, написать игру про Енотов и Демонов в VR, записать собственные реакции и написать научную статью (об этом я расскажу как-нибудь в другой раз), но по счастью, учёные со всего мира уже провели некоторые эксперименты за нас и осталось только скачать данные.


Разбор способа построения нейроинтерфейса на P300 с пошаговым кодом и визуализациями, а также ссылку на репозиторий можно найти под катом.

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

Что такое ЭЭГ и зачем она нужна

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

Ученые любят искать первое упоминание своей науки. К примеру, я видел статью, где всерьез утверждалось, что первые опыты по электрической стимуляции мозга были проведены в Древнем Риме, когда кого-то ударил током электрический угорь. Так или иначе, обычно, историю электрофизиологии принято отсчитывать примерно от опытов Луиджи Гальвани (XVIII век). В этом цикле статей мы попробуем рассказать небольшую часть того, что наука узнала за последние 300 лет про электрическую активность мозга человека, про то, какие профиты из всего этого можно извлечь.


Читать дальше →
Всего голосов 50: ↑49 и ↓1 +48
Комментарии 19

Всё, что вам нужно — это внимание (часть 2)

Уровень сложности Сложный
Время на прочтение 15 мин
Количество просмотров 8.4K
Источник

Примечание переводчика: Это вторая часть перевода статьи Attention is all you need, с которой началось развитие больших языковых моделей, в том числе чат-бота ChatGPT. Первую часть можно найти здесь.
Читать дальше →
Всего голосов 44: ↑42 и ↓2 +40
Комментарии 0

Беспилотный робот не в ROS

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

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

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

Как работает перспектива в изображениях?

Время на прочтение 9 мин
Количество просмотров 31K
«Линза доминировала уже шесть сотен лет и я считаю, что изображениям пора отходить от неё. Если это произойдёт, может случиться что-то чудесное».Дэвид Хокни, 2022 год

У вас когда-нибудь было такое: вы фотографируете какую-то далёкую сцену, а на фото она выглядит слишком маленькой по сравнению с её окружениями?


Комикс Мег Адамс

В этом посте мы поговорим о том, как возникает это явление, и что мы с ним можем сделать.
Читать дальше →
Всего голосов 63: ↑62 и ↓1 +61
Комментарии 25

Визуальный SLAM: делаем HD-карты при помощи смартфона

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

Привет, Хабр! Меня зовут Гращенков Александр, я iOS-разработчик в компании RoadAR. С 2016 года живу и работаю в Иннополисе, занимаюсь компьютерным зрением и интеграцией нейросетей в мобильные платформы.

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

Сейчас мы создаем детализированные трехмерные сканы дорог при помощи смартфонов. Я расскажу, что такое HD-карты, сравню два подхода к их созданию и покажу вам трехмерный Иннополис.

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

Разработка под Flipper Zero: быстрый старт и первое приложение

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

Итак, это случилось. Я добыл Flipper Zero в бою (ну, на самом деле мне его выдали на хакатоне), и естественно, что интереснее всего не играть в него, используя уже сделанные кем-то функции, а писать что-то новое. Примерно так же я развлекался с Pebble. Тут, кстати, все очень похоже — МК, RTOS, небольшой монохромный экранчик, си.

Поэтому давайте попробуем что-нибудь под него написать. Для начала, что-то совсем простое, чтобы освоиться с SDK, не закапываясь в отладку и сложности RTOS, но функциональное. Есть кнопки, есть экранчик, давайте напишем счетчик-кликер. Нажимаете кнопку — число увеличивается. Подойдет считать посетителей, круги на стадионе, взломанные домофоны или сообщения в чате русскоязычного комьюнити флиппера (по утрам, в особенно активное время там их бывает до 2к, так что я бы на вашем месте подумал, прежде чем нажимать кнопку Join).

Читать далее
Всего голосов 122: ↑119 и ↓3 +116
Комментарии 74

Двухколесный робот на карданном моторе

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

С этим роботом я играюсь уже несколько месяцев. Перемещается он за счет поворачивания колес относительно груза маятника, а скорость контролирует, ориентируясь на обратную связь от датчика наклона. На его сборку меня вдохновила снятая на Consumer Electronics Show (CES 2020) видео-демонстрация с роботом Ballie от Samsung. Было понятно, что это для них чисто хайповый проект, который в серийное производство не выйдет. Тем не менее у меня возник интерес собрать нечто аналогичное.
Читать дальше →
Всего голосов 62: ↑57 и ↓5 +52
Комментарии 7

Хакаем CAN шину авто. VAG диагностический бортовой компьютер

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

С огромным увлечением исследую протоколы CAN шины и разрабатываю устройства взаимодействующие с автомобилем. У меня уже есть голосовое управление центральным замком, виртуальная панель приборов и даже мобильное приложение для моей Skoda Octavia A5.

Теперь я решил разработать диагностический бортовой компьютер для автомобилей группы VAG (VW, Audi, Skoda, Seat). Моими техническими требованиями было: OLED дисплей, лёгкая установка и подключение, множество диагностических параметров. В качестве компонентной базы выбрал:
Читать дальше →
Всего голосов 76: ↑76 и ↓0 +76
Комментарии 41

Простое объяснение симуляции жидкости в реальном времени

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

Эта статья представляет собой простой и интуитивно понятный разбор симуляции жидкостей для программистов и технических художников. Вместо сложных математических выражений я постараюсь дать вам простое геометрическое понимание физики жидкостей. Реализация выполнена на вычислительных шейдерах Unity 3D, однако общие идеи не привязаны к конкретным технологиям.

Код проекта можно найти на моём Github.


Ресурсы, посвящённые симуляции жидкостей, могут быть очень пугающими. Помню, что когда я впервые прочитал статью о ней и увидел уравнения Навье-Стокса, то был в ужасе. Со временем я понял, что сама тема совершенно не сложна. На самом деле, если бы вам дали задачу написать собственный симулятор жидкостей, то вы, вероятно, написали бы что-то подобное на основании интуитивного понимания работы жидкостей. Если, посмотрев на уравнения Навье-Стокса, вы подумали «ага, понятно», то вы, возможно, быстрее бы реализовали симуляцию жидкости, прочитав работы, перечисленные в конце этой статьи. Я же попытаюсь не использовать сжатое выражение и объяснять всё как можно медленнее.
Читать дальше →
Всего голосов 45: ↑45 и ↓0 +45
Комментарии 8

Параметрическая модель движения ног в анимации

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

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

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

Корутины в C++20 — что это и как с ними работать

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

Прим. Wunder Fund: В статье описаны базовые подходы к работе с корутинами в 20м стандарте С++, на паре практических примеров разобраны шаблоны классов для промисов и фьючеров. По нашему скромному мнению, можно было бы реализовать и поизящнее. Приходите к нам работать, если имеете сильные мнения о корутинах хе-хе.

Возникает такое ощущение, что тема реализации корутин в C++20 окутана серьёзной неопределённостью. Полагаю, это так из-за того, что в проекте технической спецификации C++20 сказано, что работа над механизмами корутин всё ещё ведётся, в результате в данный момент нельзя ожидать полной поддержки этих механизмов компиляторами и стандартной библиотекой.Множество проблем, вероятно, возникает из-за отсутствия официальной документации по работе с корутинами. Нам дали синтаксическую поддержку корутин в C++ (co_yield и co_return), но не всё то, что я счёл бы признаками их полной библиотечной поддержки. В стандартной библиотеке имеются хуки и базовый функционал поддержки корутин, но нам приходится самостоятельно встраивать всё это в наши собственные классы. Я ожидаю, что полная поддержка корутин-генераторов появится в C++23.

Если вы — Python- или C#-разработчик и ожидаете увидеть в C++ простую механику работы с корутинами, то вас ждёт разочарование, так как фреймворк общего назначения C++20 недоработан. Учитывая это, можно отметить, что в интернете имеется множество публикаций, в состав кода, обсуждаемого в которых, входит шаблонный класс, поддерживающий корутины-генераторы. В этом материале вы найдёте шаблон корутины, применимый на практике, а также примеры кода. Всё это предваряется общими сведениями о корутинах.

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

Vulkan. Руководство разработчика. Layout дескрипторов и буфер

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


Добрый день! Я продолжаю выкладывать на Хабр переводы Vulkan Tutorial на русский язык (оригинал руководства можно посмотреть здесь).

Сегодня я перехожу к следующему разделу — Uniform buffers, и начну я с перевода статьи, которая называется Descriptor layout and buffer.

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

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность