Как стать автором
Обновить
62
0
Дмитрий Лобашевский @0decca

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

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

Создание своего UEFI приложения

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

Привет, Хабр! Мне 16 лет, я студент, учусь на первом курсе колледжа на программиста. Начал увлекаться низкоуровневым программированием на Ассемблере и C/C++

Я заметил что на Хабре есть множество статей о написании своих простых "загрузчиков" для BIOS-MBR, которые выводят на экран "Hello World!". И при этом практически нет ни одной статьи о создании того же самого, но только для UEFI, хотя будущее именно за ним, ведь BIOS уже давно устарел! Это я и хочу исправить в этой статье.

Читать далее
Всего голосов 86: ↑85 и ↓1+84
Комментарии80

InstantID: Создание персонализированных изображений по одному фото. И лучший бесплатный генератор нейро-аватарок

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

Друзья, всем привет, вышла в свет новая удивительная технология, на гите она подписана как InstantID : Zero-shot Identity-Preserving Generation in SecondsНо по факту это самый крутой генератор аватарок в мире, который по одной лишь вашей фотографии может создать персонализированное изображение с вашим лицом в любом стиле по текстовому запросу используя SDXL модели Stable Diffusion. Так что к концу этой статьи, у вас так же как и у меня будет десяток новых аватарок и совершенно бесплатно.

В статье много красивых и тяжелых картинок.

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

Как (быстро) сделать русский локальный ChatGPT

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

Эта история началась в начале марта этого года. ChatGPT тогда был в самом расцвете. Мне в Telegram пришёл Саша Кукушкин, с которым мы знакомы довольно давно. Спросил, не занимаемся ли мы с Сашей Николичем языковыми моделями для русского языка, и как можно нам помочь.

И так вышло, что мы действительно занимались, я пытался собрать набор данных для обучения нормальной базовой модели, rulm, а Саша экспериментировал с существующими русскими базовыми моделями и кустарными инструктивными наборами данных.

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

Читать далее
Всего голосов 90: ↑89 и ↓1+88
Комментарии54

STM32. Подготавливаем среду разработки в Linux

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров17K
В недавнем времени получилось так, что у меня появилась пара интересных проектов, где одна из составных частей — микроконтроллер STM32. И каждый раз при смене ноутбука или ОС на домашнем компе приходится настраивать окружение для разработки как в первый раз. Плюсом, последние проекты, которые я делал для STM32 — выполнял в Windows, в демо-версии Keil uVision. Но поскольку я давно переехал в Linux — возникла необходимость основательно разобраться и изложить процесс настройки окружения для будущих применений.

Всем, кому интересно — добро пожаловать под кат.

Читать дальше →
Всего голосов 63: ↑62 и ↓1+61
Комментарии31

Что нам стоит д̶о̶м̶ голограмму построить?

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

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

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

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

Как научить бабушку писать мемуары на самоизоляции с помощью VOSK-API. «Речь в текст» спешит на помощь

Время на прочтение10 мин
Количество просмотров7.4K
В ряде статей, опубликованных на этом сайте, есть описание того, что на рынок вышла новая Open Source платформа AI «речь в текст» VOSK-API. Ее инсталляция и один из способов применения расписан достаточно подробно в ее документации. Привожу ссылку на Гитхаб VOSK-API, рекомендую пробовать октябрьскую версию 2020 года.



Ознакомившись с комментариями и критикой в статье мне захотелось рассказать о моем полугодовом опыте работы с данной системой, привести четыре примера решенных на ней задач.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии4

Неочевидные лайфхаки 3D реконструкции людей

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

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

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

Transformer — новая архитектура нейросетей для работы с последовательностями

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

Необходимое предисловие: я решил попробовать современный формат несения света в массы и пробую стримить на YouTube про deep learning.


В частности, в какой-то момент меня попросили рассказать про attention, а для этого нужно рассказать и про машинный перевод, и про sequence to sequence, и про применение к картинкам, итд итп. В итоге получился вот такой стрим на час:



Я так понял по другим постам, что c видео принято постить его транскрипт. Давайте я лучше вместо этого расскажу про то, чего в видео нет — про новую архитектуру нейросетей для работы с последовательностями, основанную на attention. А если нужен будет дополнительный бэкграунд про машинный перевод, текущие подходы, откуда вообще взялся attention, итд итп, вы посмотрите видео, хорошо?


Новая архитектура называется Transformer, была разработана в Гугле, описана в статье Attention Is All You Need (arxiv) и про нее есть пост на Google Research Blog (не очень детальный, зато с картинками).


Поехали.

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

Как развитие алгоритмов сжатия остановилось 20 лет назад, или о новом конкурсе на 200 тысяч евро

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

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

Пост набрал 206 «плюсов», вышел на 2 место топа недели и вызвал оживленную дискуссию, в которой мне больше всего понравился комментарий: «Коммерческого интереса эффективность по сжатию алгоритмов сжатия без потерь сегодня не представляет, в силу отсутствия принципиально более эффективных алгоритмов. Деньги сегодня — в сжатии аудио-видео. И там и алгоритмы другие. Тема сжатия без потерь удобна именно лёгкостью верификации алгоритма, и не слегка устарела. Лет на 20.» 

Поскольку я сам уже 20 лет в области сжатия видео, с ее бурным развитием мне спорить сложно. А вот что сжатие без потерь развиваться перестало… Хотя логика тут понятна каждому. Я до сих пор пользуюсь ZIP, все мои друзья пользуются ZIP с 1989 года — значит, ничего нового не появляется. Так ведь? Похоже рассуждают сторонники плоской земли. ))) Я не видел, знакомые не видели, и даже некоторые авторитеты утверждают, значит, это так! 

О том, как Intel просили меня не прекращать читать курс по сжатию, ибо людей нет новые алгоритмы делать, я в прошлый раз писал. Но тут и Huawei в ту же дуду дует! Вместо того, чтобы раздать призы и должности победителям, а затем успокоиться, поскольку развитие давно встало, эти эксцентричные люди посчитали конкурс крайне успешным и запустили новый с призовым фондом 200 тысяч EUR.

Развивались ли алгоритмы сжатия без потерь в последние 20 лет? Чем закончился прошлый конкурс и на сколько опередили baseline? Сколько денег получили русские таланты, а сколько зарубежные? И есть ли вообще жизнь на Марсе в сжатии без потерь? 

Кому интересно — добро пожаловать под кат! 
Читать дальше →
Всего голосов 259: ↑258 и ↓1+257
Комментарии134

Быстрое сравнение double

Время на прочтение1 мин
Количество просмотров15K
Вчера здесь вышла статья о быстром парсинге double, я зашёл во блог к её автору, и нашёл там ещё один интересный трюк. При сравнении чисел с плавающей точкой особое внимание приходится уделять NaN (восемь лет назад я писал про них подробнее); но если сравниваемые числа заведомо не NaN, то сравнить их можно быстрее, чем это делает процессор!

Положительные double сравнивать очень просто: нормализация гарантирует нам, что из чисел с разной экспонентой больше то, чья экспонента больше, а из чисел с равной экспонентой больше то, чья мантисса больше. Стандарт IEEE 754 заботливо поместил экспоненту в старшие биты, так что положительные double можно сравнивать просто как int64_t.



С отрицательными числами немного сложнее: они хранятся в прямом коде, тогда как int64_t — в дополнительном. Это значит, что для использования целочисленного сравнения младшие 63 бита double необходимо инвертировать (при этом получится -0. < +0., что не соответствует стандарту, но на практике не представляет проблемы). Явная проверка старшего бита и условный переход уничтожили бы всю выгоду от перехода к целочисленному сравнению; но есть способ проще!

inline int64_t to_int64(double x) {
	int64_t a = *(int64_t*)&x;
	uint64_t mask = (uint64_t)(a >> 63) >> 1;
	return a ^ mask;
}

inline bool is_smaller(double x1, double x2) {
	return to_int64(x1) < to_int64(x2);
}

a>>63 заполняет все 64 бита копиями знакового бита, и затем >>1 обнуляет старший бит.
Читать дальше →
Всего голосов 52: ↑50 и ↓2+48
Комментарии83

Превращаем дисковый телефон в цифрового помощника с использованием Google Assistant и Raspberry Pi

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

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

Речь идет о преобразовании телефона в цифрового секретаря, который всегда готов прийти на помощь. Для реализации проекта нужна плата Raspberry Pi Zero и подключение к Google Assistant. Ну а теперь — подробнее о проекте.
Всего голосов 38: ↑35 и ↓3+32
Комментарии7

Взлом Wi-Fi-сетей, защищённых WPA и WPA2

Время на прочтение3 мин
Количество просмотров245K
Автор статьи, перевод которой мы сегодня публикуем, хочет рассказать о том, как взломать Wi-Fi-сеть, для защиты которой используются протоколы WPA и WPA2.


Статья написана исключительно в ознакомительных целях

Читать дальше →
Всего голосов 61: ↑44 и ↓17+27
Комментарии53

Коты в коробочках, или Компактные структуры данных

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

image


Как быть, если дерево поиска разрослось на всю оперативку и вот-вот подопрет корнями соседние стойки в серверной? Что делать с инвертированным индексом, жадным до ресурсов? Завязывать ли с разработкой под Android, если пользователю прилетает «Память телефона заполнена», а приложение едва на половине загрузки важного контейнера?


В целом, можно ли сжать структуру данных, чтобы она занимала заметно меньше места, но не теряла присущих ей достоинств? Чтобы доступ к хэш-таблице оставался быстрым, а сбалансированное дерево сохраняло свои свойства. Да, можно! Для этого и появилось направление информатики «Succinct data structures», исследующее компактное представление структур данных. Оно развивается с конца 80-х годов и прямо сейчас переживает расцвет в лучах славы big data и highload.


А тем временем на Хабре найдется ли герой, способный пересковоговорить три раза подряд
[səkˈsɪŋkt]?

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

Визуализация больших графов для самых маленьких

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


Что делать, если вам нужно нарисовать граф, но попавшиеся под руку инструменты рисуют какой-то комок волос или вовсе пожирают всю оперативную память и вешают систему? За последние пару лет работы с большими графами (сотни миллионов вершин и рёбер) я испробовал много инструментов и подходов, и почти не находил достойных обзоров. Поэтому теперь пишу такой обзор сам.
Читать дальше →
Всего голосов 95: ↑94 и ↓1+93
Комментарии30

Про установку и использование LineageOS 16, F-Droid

Время на прочтение127 мин
Количество просмотров311K
Предлагаю вашему вниманию инструкцию как оптимально (по моему мнению) перейти на свободное программное обеспечение при использовании смартфона на примере операционной системы LineageOS (далее сокращённо LOS) и приложений из F-Droid.

Я думаю, что это статья будет вам интересна, даже если вы не можете установить себе LOS, так как в данной статье также рассмотрены стандартные настройки Android, настройки и методика использования полезных приложений, магазин приложений F-Droid, разрешения Android, которые нельзя ограничить и другие, возможно полезные для вас нюансы.
Читать дальше →
Всего голосов 74: ↑72 и ↓2+70
Комментарии192

Погружаемся в opensource-экосистему Android

Время на прочтение10 мин
Количество просмотров67K
Disclaimer о том, что пост не призывает к радикальным формам фанатизма

Каждый выбирает свой "уровень погружения". Вам не обязательно следовать каждому пункту из этого поста. Моя цель — показать, насколько хорошо развита экосистема на данный момент и чего вы можете и не можете от неё получить. Делайте выводы самостоятельно. Хотите — меняйте прошивку полностью и переходите на microg. Хотите — просто поставьте на свой телефон f-droid прямо рядом с gplay. Хотите — не делайте ничего.


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


Несколько причин, почему стоит об этом задуматься


Google Play далеко "не торт"


Далеко ходить не нужно, в соседних постах можно найти множество примеров того, как разработчиков выгоняют из Google Play по тем или иным причинам, заставляя общаться с ботами без возможности реальной аппеляции. Некоторые типы приложений теперь принципиально невозможно распространять (например, блокировщики рекламы, да и в принципе приложения обхода любых ограничений).


Мне, как параноику, не нравится, что у стороннего лица появляется практически полный доступ к моему устройству. Google способен как минимум удалить с моего телефона любое приложение в любой момент и собрать с него произвольные данные. Более того, google play service — это огромное (стандартная поставка — 600Мб, минимальная — 95Мб) количество постоянно обновляющегося кода, часть которая работает с системными привилегиями. Для сравнения, дистрибутив MicroG может весить всего 4Мб.

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

Sampler. Консольная утилита для визуализации результата любых shell команд

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

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


Sampler


Наблюдение за изменением состояния в базе данных, мониторинг размера очередей, телеметрия с удаленных серверов, запуск деплой скриптов и получение нотификации по завершению — конфигурируется за минуту простым YAML файлом.


Код доступен на гитхабе. Инструкции по установке — для Linux, macOS и (экспериментально) Windows.

Читать дальше →
Всего голосов 298: ↑297 и ↓1+296
Комментарии54

Обучение машины — забавная штука: современное распознавание лиц с глубинным обучением

Время на прочтение12 мин
Количество просмотров97K
Вы заметили, что Фейсбук обрёл сверхъестественную способность распознавать ваших друзей на ваших фотографиях? В старые времена Фейсбук отмечал ваших друзей на фотографиях лишь после того, как вы щёлкали соответствующее изображение и вводили через клавиатуру имя вашего друга. Сейчас после вашей загрузки фотографии Фейсбук отмечает любого для вас, что похоже на волшебство:
Читать дальше →
Всего голосов 121: ↑121 и ↓0+121
Комментарии22

Совсем не нейронные сети

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


Недавно ZlodeiBaal писал о достижениях в сверточных нейронных сетях (CNN) (и, кстати, тут же успешно настроил и обучил сеть для поиска области автомобильного номера).
А я хочу рассказать про принципиально иную и, наверное, более сложную модель, которую сейчас развивает Алексей Редозубов (@AlexeyR), и про то, как мы, конечно проигнорировав некоторые важные элементы, и ее применили для распознавания автомобильных регистрационных знаков!

В статье несколько упрощенно напомню о некоторых моментах этой концепции и покажу, как оно сработало в нашей задаче.
Читать дальше →
Всего голосов 66: ↑61 и ↓5+56
Комментарии104

Видеоаналитика 2.0 или при чём тут оставленные предметы. Часть 1

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

Какие мысли у вас возникают, когда вы слышите понятие «Видеоаналитика 2.0»?
Решение каких актуальных задач можно было бы поручить гипотетическим технологиям видеоанализа следующего поколения?

Среди популярных ответов наверняка встретятся «некооперативное распознавание личности человека среди идущей толпы с вероятностью, близкой к 100%», «выявление злоумышленников среди посетителей», “межкамерное одновременное сопровождение множества объектов без срыва трекинга”, “распознавание и классификация без ошибок всего, что видно в кадре”.

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

А самый умный кто-то скажет, что видеоаналитика 2.0 возможна только при наличии искусственного интеллекта, что на текущем уровне развития технологий невозможно. Поэтому нам ничего не остается, кроме как наблюдать за лидерами рынка аналитики, которые и так выжимают максимально возможное из имеющихся вычислительных ресурсов и ждать массового внедрения квантовых компьютеров. Надеясь, что оно все же произойдет.

Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии8
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Одесса, Одесская обл., Украина
Дата рождения
Зарегистрирован
Активность