Pull to refresh
62
Karma
0
Rating
Дмитрий Лобашевский @0decca

User

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

Reading time 9 min
Views 9.5K
RUVDS.com corporate blog Physics DIY Lazers Chemistry
Картинка freepik

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

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

Читать дальше →
Total votes 51: ↑51 and ↓0 +51
Comments 24

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

Reading time 10 min
Views 6K
Machine learning *
Recovery mode
В ряде статей, опубликованных на этом сайте, есть описание того, что на рынок вышла новая Open Source платформа AI «речь в текст» VOSK-API. Ее инсталляция и один из способов применения расписан достаточно подробно в ее документации. Привожу ссылку на Гитхаб VOSK-API, рекомендую пробовать октябрьскую версию 2020 года.



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

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

Reading time 4 min
Views 5.8K
twin3d corporate blog Working with 3D-graphics *Algorithms *Mathematics *Machine learning *

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

Читать далее
Total votes 18: ↑18 and ↓0 +18
Comments 12

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

Reading time 7 min
Views 61K
Machine learning *

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


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



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


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


Поехали.

Читать дальше →
Total votes 64: ↑61 and ↓3 +58
Comments 7

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

Reading time 18 min
Views 64K
Programming *Data compression *Machine learning *Popular science Artificial Intelligence

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

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

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

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

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

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

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

Reading time 1 min
Views 12K
High performance *Abnormal programming *C *
Вчера здесь вышла статья о быстром парсинге 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 обнуляет старший бит.
Читать дальше →
Total votes 52: ↑50 and ↓2 +48
Comments 83

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

Reading time 4 min
Views 6.9K
Selectel corporate blog Development for Raspberry Pi *Gadgets History of IT DIY

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

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

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

Reading time 3 min
Views 162K
RUVDS.com corporate blog Information Security *Network technologies *
Translation
Автор статьи, перевод которой мы сегодня публикуем, хочет рассказать о том, как взломать Wi-Fi-сеть, для защиты которой используются протоколы WPA и WPA2.


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

Читать дальше →
Total votes 61: ↑44 and ↓17 +27
Comments 53

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

Reading time 12 min
Views 26K
VK corporate blog Programming *Algorithms *Mathematics *
🔥 Technotext 2020

image


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


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


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

Читать дальше →
Total votes 127: ↑127 and ↓0 +127
Comments 43

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

Reading time 12 min
Views 50K
Open Data Science corporate blog Data Mining *Data visualization *Machine learning *Artificial Intelligence


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

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

Reading time 127 min
Views 283K
Information Security *
Предлагаю вашему вниманию инструкцию как оптимально (по моему мнению) перейти на свободное программное обеспечение при использовании смартфона на примере операционной системы LineageOS (далее сокращённо LOS) и приложений из F-Droid.

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

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

Reading time 10 min
Views 61K
Open source *Smartphones
Disclaimer о том, что пост не призывает к радикальным формам фанатизма

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


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


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


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


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


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

Читать дальше →
Total votes 39: ↑39 and ↓0 +39
Comments 21

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

Reading time 5 min
Views 81K
Open source *Programming *Go *Data visualization *DevOps *

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


Sampler


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


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

Читать дальше →
Total votes 298: ↑297 and ↓1 +296
Comments 54

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

Reading time 12 min
Views 94K
Image processing *Machine learning *
Translation
Вы заметили, что Фейсбук обрёл сверхъестественную способность распознавать ваших друзей на ваших фотографиях? В старые времена Фейсбук отмечал ваших друзей на фотографиях лишь после того, как вы щёлкали соответствующее изображение и вводили через клавиатуру имя вашего друга. Сейчас после вашей загрузки фотографии Фейсбук отмечает любого для вас, что похоже на волшебство:
Читать дальше →
Total votes 121: ↑121 and ↓0 +121
Comments 22

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

Reading time 9 min
Views 49K
Recognitor corporate blog Image processing *Machine learning *


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

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

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

Reading time 8 min
Views 24K
ООО «ВИДЕОИНТЕЛЛЕКТ» corporate blog Algorithms *Image processing *Mathematics *
image

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

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

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

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

Читать дальше →
Total votes 23: ↑21 and ↓2 +19
Comments 8

go-скрипт который делает аудиокнигу из текстового файла используя один из лучших синтезаторов речи — Ivona от Amazon

Reading time 2 min
Views 40K
Amazon Web Services *API *Go *
Указываем в скрипте путь на книгу в txt — на выходе получаем папку с озвучкой хорошим синтезом.
Читать дальше →
Total votes 42: ↑34 and ↓8 +26
Comments 36

Использование Google Speech API для управления компьютером

Reading time 3 min
Views 71K
Delphi *Google API *
Sandbox
Добрый день всем хабражителям.

На хабре уже писалось несколько статей о использовании Google Speech API, в том числе о его применении при создании Умного дома.

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

Кому интересно, прошу под кат.
Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Comments 12

Использование облачной АТС pbxes.com для расширения возможностей VoiP / SIP телефонии

Reading time 4 min
Views 9.7K
Development of communication systems *
Так сложилось, что у меня есть несколько SIP номеров от разных VoiP операторов в разных странах мира (США, Израиль, Украина, Россия). В какой-то момент, получив очередной звонок с предложением «купить слона» на мой израильский номер в 4 часа утра (я в США, а израильский телемаркетолог об этом, естественно, не догадывается), я понял, что надо что-то делать.

В случае с израильским провайдером все было просто — в личном кабинете провайдера изменил настройки, перенаправив все звонки от незнакомых номеров (которые не в «белом списке») в voice mail с 9 вечера до 7 утра.

Все бы ничего, но через какое-то время я стал получать звонки с предложением купить украинского слона (на украинские номера от Атлантис Телеком и Интертелеком) и российского слона (на номер от Задарма). А тут уже хуже — в личных кабинетах этих трех провайдеров нет возможности перенаправить звонок в voice mail по расписанию или заблокировать какой-то номер. В Задарма и Интертелекоме вообще нет voicemail, с переадресацией тоже не все хорошо (в Задарма — только безусловная переадресация), в Атлантис Телекоме и Интертелекоме — переадресация только на телефонные номера, но не на SIP URI.

В итоге, было найдено решение с использованием облачной АТС pbxes.com.

Кому интересно, приложением под катом (много картинок)

Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Comments 1

Как компьютер сам свой код улучшал, или программируем процесс программирования

Reading time 9 min
Views 33K
Algorithms *
На носу было придумывание темы для диплома, на кафедре популярностью пользовались различные варианты идей связанных с генетическими алгоритмами, а мне самому хотелось сделать что-нибудь этакое. Так и родилась идея, давшая начало данному проекту, а именно генетическому оптимизатору программного кода.



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

Например вот такая забавная оптимизация набора арифметических инструкций (взятых из какой-то подвернувшейся под руку математической библиотеки), соответствующих формулам: , которая на 6 джаве с выключенным JIT у меня давала около 10% ускорения, при этом на первый взгляд даже не очевидно что эти формулы эквивалентны (ОТКУДА ТУТ OR? ЭТО ВООБЩЕ ЗАКОННО?!), хотя это так. Под катом я расскажу, как именно получались такие результаты и каким образом компьютер придумывал лучший код чем тот, который мог написать я сам.
Читать дальше →
Total votes 45: ↑43 and ↓2 +41
Comments 39

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity