Рубрика «Алгоритмы» - 42

О себе

Здравствуй! Меня зовут Павел, я работаю техническим директором в компании, занимающейся производством IoT устройств. Производим много чего — начиная от контроллеров для умных домов, заканчивая умными приборами учёта на своём запатентованном протоколе сенсорных сетей.

Также исполняют обязанности генерального директора ит-компании. В прошлом полуфиналист ЧМ по программированию ACM ICPC.

Мотивация

Пишу я это статью потому, что наша команда убила около месяца на поиск решения (ещё недели две на реализацию и написание тестов) для хранения и эффективного поиска распознанных лиц в базе данных, с целью сэкономить время вам в ваших проектах. Спойлер: ничего готового вроде классного плагина для существующей СУБД не нашли, а сроки полыхали, по этому написали свою СУБД именно для этой задачи (хранения огромного количества эмбендингов лиц). Моя статья ни в коем случае не претендует на звание исчерпывающего руководства, но, я надеюсь, что она даст точку старта для дальнейшего изучения и развития наших мыслей.

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

Читать полностью »

Рубрика «Читаем статьи за вас». Апрель 2020. Часть 1 - 1

Привет! Продолжаем публиковать рецензии на научные статьи от членов сообщества Open Data Science из канала #article_essense. Хотите получать их раньше всех — вступайте в сообщество!

Статьи на сегодня:

  1. TResNet: High Performance GPU-Dedicated Architecture (DAMO Academy, Alibaba Group, 2020)
  2. Controllable Person Image Synthesis with Attribute-Decomposed GAN (China, 2020)
  3. Learning to See Through Obstructions (Taiwan, USA, 2020)
  4. Tracking Objects as Points (UT Austin, Intel Labs, 2020)
  5. CookGAN: Meal Image Synthesis from Ingredients (USA, UK, 2020)
  6. Designing Network Design Spaces (FAIR, 2020)
  7. Gradient Centralization: A New Optimization Technique for Deep Neural Networks (Hong Kong, Alibaba, 2020)
  8. When Does Unsupervised Machine Translation Work? (Johns Hopkins University, USA, 2020)

Читать полностью »

Всем привет, меня зовут Фёдор Индукаев, я работаю аналитиком в Яндекс.Маршрутизации. Сегодня хочу рассказать вам про задачу визуализации пересекающихся множеств и про пакет для Python с открытым кодом, созданный мной для её решения. В процессе мы узнаем, чем различаются диаграммы Венна и Эйлера, познакомимся с сервисом распределения заказов и по касательной заденем такую область науки, как биоинформатика. Двигаться будем от простого к более сложному. Поехали!

Как построить диаграмму Венна с 50 кругами? Визуализация множеств и история моего Python-проекта с открытым кодом - 1

Читать полностью »

Развитие беспилотных технологий на железной дороге началось достаточно давно, уже в 1957 году, когда был создан первый экспериментальный комплекс автоведения для пригородных поездов. Для понимания разницы между уровнями автоматизации для железнодорожного транспорта введена градация, определенная в стандарте МЭК-62290-1. В отличие от автомобильного транспорта железнодорожный имеет 4 степени автоматизации, показанные на рисунке 1.

image

Рисунок 1. Степени автоматизации в соответствии с МЭК-62290

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

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

Уровень 4 предполагает полное отсутствие машиниста на борту, что требует существенного изменения конструкции локомотива (электропоезда). Например, на борту установлены автоматические выключатели, которые будет невозможно взвести снова при их срабатывании без присутствия человека на борту.
Читать полностью »

Компания SpaceX, основанная небезызвестным Илоном Маском, выпустила симулятор ручной стыковки корабля Crew Dragon с МКС. Если все пойдет по плану, стыковку проведут 27 мая 2020 года. Она будет проходить в полностью автоматическом режиме, но экипаж корабля сможет переключиться на ручное управление. Собственно, именно ручной режим и воспроизведен в симуляторе.

Сам симулятор расположен на сайте и представляет собой, довольно проблематичную, на первый взгряд игрушку…

Космический челнок так и норовит улететь не туда… А точность с которой нужно попасть в шлюз составляет 20 см… по трем осям, а также по угловой скорости, скорости смещения и т.д.

Во мне заиграли патриотичные чувства и как-то стало обидно, за бывшую космическую державу, и я принял этот симулятор как вызов. Раз Маск решил показать сложность стыковки, и какие сложности их инженеры проходили, чтобы сделать программу автоматической стыковки, я решил написать, в свободное от работы время, программу на JavaScript, которая с легкостью состыкует Dragon и МКС в этом симуляторе.

Как тебе такое, Илон Маск?

image
Курение вредит вашему здоровью
Читать полностью »

Стояла как-то задача оснастить одну систему кучей термодатчиков. Причём оснастить максимально недорого.

Результаты изысканий (которые, по-моему, получились довольно изящными) предлагаю к рассмотрению в этой статье.

Измеряем температуру без АЦП - 1

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

Читать полностью »

Расшифровываем PDF417 без подсказок - 1

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

Сегодня я хочу рассказать о коде, который регулярно можно увидеть в аэропортах, а если точнее — на посадочных талонах. Герой этой истории — код PDF417. Давайте посмотрим, можно ли расшифровать такой код вручную и без подсказок? Какой информацией нужно обладать для этого? Сколько на это понадобится времени? Всё это и множество другого ждёт вас в данной публикации. Начнём!

Внимание, под катом — 30 изображений общим размером в 16.3 МБ.

Читать полностью »

image

Усталость

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

Я слишком глуп для этой работы. Может сказывается отсутствие математической базы? Или может просто нет таланта. Наверное, у меня другой склад ума. Смотрю по сторонам и вижу беззаботный смех моих коллег, кажется, что им дается все намного легче. Код на кончиках пальцев. У меня все не так. Хотя это пройдет, я точно это знаю. Как только я закрою этот проект, появится легкое чувство эйфории, так бывает всегда. А потом, снова окунувшись в очередное болото программного кода, ты теряешь веру в себя. Это “колесо сансары” и я из него не выйду никогда.
Читать полностью »

Сортировка слабой кучей - 1


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

При сортировке с помощью слабой кучи всегда меньше количество сравнений и обменов, чем если использовать обычную кучу. Так что да, слабая куча сильнее, чем обычная куча.Читать полностью »

Транслитерация

Транслитерация — это запись кириллических слов латиницей (Анна → Anna, Самара → Samara). Её используют в загранпаспортах, водительских удостоверениях, трансграничной доставке, библиотечных каталогах и множестве других международных процессов.

Так вышло, что я недавно окунулся в эту тему, а в Википедии она раскрыта слабо. Поэтому расскажу, что к чему (спойлер — если вы думаете, что с транслитерацией всё плохо, то на самом деле всё ещё хуже).

И конечно, поскольку это Хабр — предложу open-source библиотеки для решения проблемы.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js