Обновить
@saintbyteread⁠-⁠only

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

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

Как я написал браузерный 3D FPS шутер на Three.js, Vue и Blender

Время на прочтение32 мин
Охват и читатели21K

На пути каждого коммерческого разработчика (не только кодеров, но, знаю, у дизайнеров, например, также) рано или поздно встречаются топкие-болотистые участки, унылые мрачные места, блуждая по которым можно вообще забрести в мертвую пустыню профессионального выгорания и/или даже к психотерапевту на прием за таблетками. Работодатели-бизнес очевидно задействует ваши наиболее развитые скилы, выжимая по максимуму, стек большинства вакансий оккупирован одними и теми же энтерпрайз-инструментами, кажется, не для всех случаев самыми удачными, удобными и интересными, и вы понимаете что вам придется именно усугублять разгребать тонну такого легаси… Часто отношения в команде складываются для вас не лучшим образом, и вы не получаете настоящего понимания и отдачи, драйва от коллег… Умение тащить себя «по-мюнхаузеновски за волосы», снова влюбляться в технологии, увлекаться чем-то новым [вообще и/или для себя, может быть - смежной областью], имхо, не просто является важным качеством профессионала, но, на самом деле, помогает разработчику выжить в капитализме, оставаясь не только внешне востребованным, конкурентоспособным с наступающей на пятки молодежи, но, прежде всего, давая энергию и движение изнутри. Иногда приходится слышать что-нибудь вроде: «а вот мой бывший говорил, что если бы можно было не кодить, он бы не кодил!». Да и нынешняя молодежь осознала что в сегодняшней ситуации «честно и нормально» зарабатывать можно только в айти, и уже стоят толпою на пороге HR-отдела... Не знаю, мне нравилось кодить с детства, а кодить хочется что-нибудь если не полезное, то хотя бы интересное. Короче, я далеко не геймер, но в моей жизни было несколько коротких периодов когда я позорно «загамывал». Да само увлечение компьютерами в детстве началось, конечно же, с игр. Я помню как в девяностые в город завезли «Спектрумы». Есть тогда было часто практически нечего, но отец все-таки взял последние деньги из заначки, пошел, отстоял невиданно огромную очередь и приобрел нам с братом нашу первую чудо-машину. Мы подключали его через шнур с разъемами СГ-5 к черно-белому телевизору «Рекорд», картинка тряслась и моргала, игры нужно было терпеливо загружать в оперативную память со старенького кассетного магнитофона [до сих пор слышу ядовитые звуки загрузки], часто переживая неудачи... Несмотря на то что ранние программисты и дизайнеры умудрялись помещать с помощью своего кода в 48 килобайт оперативной памяти целые миры с потрясающим геймплеем, мне быстро надоело играть и я увлекся программированием на Бейсике)), рисовал спрайтовую графику (и векторная «трехмерная» тогда тоже уже была, мы даже купили сложную книжку), писал простую музыку в редакторе... Так вот, некоторое время назад мне опять все надоело, была пандемийная зима и на велике не покататься, рок-группа не репетировала… Я почитал форумы и установил себе несколько более-менее свежих популярных игр, сделанных на Unity или Unreal Engine, очевидно. Мне нравятся РПГ-открытые миры-выживалки, вот это все... После работы я стал каждый вечер погружаться в виртуальные миры и рубиться-качаться, но хватило меня ненадолго. Игры все похожи по механикам, однообразный геймплей размазан по небольшому сюжету на кучу похожих заданий с бесконечными боями… Но самое смешное - это реально безбожно лагает в важных механиках. Лагают коммерческие продукты которые продают за деньги… А любой «баг», имхо, это сильное разочарование - он мгновенно выносит из виртуальной среды, цифровой сказки в реальный мир… Конечно, отличная графика, очень круто нарисовано. Но, утрируя, я понял что все эти поделки на энтерпрайзных движках, по сути - даже не кодят. Их собирают менеджеры и дизайнеры, просто «играясь с цветом кубиков», но сами кубики, при этом практически «не меняются»... Вообщем, когда стало совсем скучно, я подумал что «а я ведь тоже так могу», да прямо в браузере на богомерзком не предназначенным для экономии памяти серьезного программирования джаваскрипте. Решил наконец полностью соответствовать тому что все время с умным видом повторяю сыну: «уметь делать игры, намного интереснее чем в них играть». Одним словом, я задался целью написать свой кастомный браузерный FPS-шутер на открытых технологиях.

Читать далее

Дообучение нейросети для поиска лиц в медицинских масках

Время на прочтение4 мин
Охват и читатели5.5K

Первое, что нам понадобится — это датасет (выборка фотографий) людей с масками и без для дообучения нейросети MobileNetV2, которая находится в открытом доступе. У меня был датасет в количестве 981 фотографий людей в масках и столько же без, одних и тех же людей.

Хотелось бы отметить один важный момент, что нейросеть MobileNetV2,  можно использовать практически для любой классификации, например, можно было дообучить её для определения пола, или попробовать автоматически определять в очках человек или нет, именно поэтому мы замораживаем все базовые слои модели, а в верхний слой подаём то, что нужно классифицировать. Но мы остановимся на поиске медицинской маски, как наиболее актуальной в настоящее время.

Итак, разместим наш датасет из 1962 фотографий в двух каталогах в папке dataset в масках в «WithMask» и без маски в «Withoutmask» соответственно. В каждой по 981 фотографии. Ещё одно важное замечание, это то, что дообучаем мы именно на лицах, а не просто, что человек на изображении в маске или без, хотя можно было и так.

Далее импортируем необходимые библиотеки...

Читать далее

Дорасти до сеньора и даже выше: советы по развитию IT-специалиста

Время на прочтение10 мин
Охват и читатели23K

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

О том, что нужно для профессионального развития на разных этапах карьерной лестницы IT специалиста, в своем докладе на конференции DevOps Live 2020 об этом рассказал Карен Товмасян.

Читать далее

VOC датчик в каждый дом: отслеживаем вредную органику по цене двух чашек кофе

Время на прочтение10 мин
Охват и читатели55K

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

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

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

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

За чистым воздухом!

Мы Опубликовали Качественный, Простой, Доступный и Быстрый Синтез Речи

Время на прочтение9 мин
Охват и читатели74K

fiona


Вторая часть — https://habr.com/ru/post/563484/


Вокруг темы синтеза речи сейчас много движения: на рынке есть огромное число тулкитов для синтеза, большое число закрытых коммерческих решений за АПИ (как на современных технологиях, так и на более старых, т.е. "говорилки") от условных GAFA компаний, большое количество американских стартапов, пытающихся сделать очередные аудио дипфейки (voice transfer).


Но мы не видели открытых решений, которые бы удовлетворяли одновременно следующим критериям:


  • Приемлемый уровень естественности речи;
  • Большая библиотека готовых голосов на разных языках;
  • Поддержка синтеза как в 16kHz так и в 8kHz из коробки;
  • Наличие своих собственных голосов у авторов решения, не нарушающих чужие права и лицензии;
  • Высокая скорость работы на "слабом" железе. Достаточная скорость работы на 1 потоке / ядре процессора;
  • Не требует GPU, команды ML инженеров или какой-либо дополнительной тренировки или для использования;
  • Минимализм и отсутствие зависимостей / использование в 1 строчку / не надо ничего собирать или чинить;
  • Позиционируется именно как готовое решение, а не очередной фреймворк / компиляция чужих скриптов / тулкитов для сбора плюсиков;
  • Решение никак не связано и не аффилировано с закрытыми экосистемами и продуктами Гугла / Сбера / Яндекса / вставить нужное;

Мы попытались учесть все эти пункты и представить комьюнити свое открытое некоммерческое решение, удовлетворяющее этим критериям. По причине его публичности мы не заостряем внимание на архитектуре и не фокусируемся на каких-то cherry picked примерах — вы можете оценить все сами, пройдя по ссылке.

Одноплатный компьютер для embedded программиста

Время на прочтение8 мин
Охват и читатели16K

Данный туториал будет полезен программистам, которые перешли с avr или stm32 на одноплатные компьютеры под управлением Ubuntu.

Читать далее

Простой фильтр для автоматического удаления фона с изображений

Время на прочтение8 мин
Охват и читатели36K
Существует множество способов удалить фон с изображения какого-либо объекта, сделав его прозрачным (в графических редакторах, специальных сервисах). Но иногда может возникнуть необходимость удаления фона у множества фотографий с минимальным участием человека.

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



Реализация стала возможной благодаря OpenCV и C# обертке OpenCVSharp.
Читать дальше →

Tesseract vs таблицы. Распознавание документов

Время на прочтение6 мин
Охват и читатели23K

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

Читать далее

Инфракрасная видеокамера из подручных средств

Время на прочтение5 мин
Охват и читатели58K

Прогулка с самодельной ИК-камерой в парке

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

Грабли WebRTC: как мы допиливали чужой велосипед

Время на прочтение5 мин
Охват и читатели16K

В пике на нашей образовательной платформе проходит до 4 тысяч уроков в час. Основной инструмент общения преподавателя и студента — видеосвязь, потому что для обучения важно видеть и слышать друг друга. В самом начале мы использовали Skype, но его нельзя было интегрировать в платформу и логировать уроки. Потом мы перешли на SaaS-решения, но это оказалось очень дорого. Мы начали искать альтернативы и 2016 году отказались от покупных решений в пользу WebRTC и Janus. Теперь дорабатываем видеоконференции под образовательную платформу силами собственной команды. Да, пришлось копнуть глубже и потоптаться по граблям чужой технологии.
Рассказываем, как мы выкручивались и улучшали видеосвязь, чтобы она не попадала в топ жалоб от клиентов.

Читать далее

Старый DVD-привод превращается… в лазерный микроскоп

Время на прочтение3 мин
Охват и читатели70K


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

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

Это оптический микроскоп, который использует для сканирования образца сфокусированный лазерный луч.

Получаем бесплатные сервера в Oracle Cloud Free Tier

Время на прочтение6 мин
Охват и читатели181K

Искал я как-то себе дешевый VPS сервер. Ну для отладки чего-нибудь, моделирования сетей... Да мало ли еще для чего может понадобится личный сервер? И вот в результатах поиска всплыло, что Oracle предоставляет возможность получить бесплатно и "пожизненно" до двух виртуальных машин (Oracle Cloud Infrastructure Compute). А также еще кое-какие вкусняшки. Зарегистрировался, получил - действительно выдают, действительно работает, и действительно бесплатно. Но хочется же подключить полученные машинки в свою сеть! И, желательно, штатными средствами. Вот из экспериментов и получились две статьи, может быть кому-то они сэкономят часа четыре рабочего времени.

Читать далее

UI-элементы и жесты в мобильных приложениях

Время на прочтение4 мин
Охват и читатели348K


Хабр, привет! Вы часто задумывались, обнаружив баг в мобильном приложении и заводя его в баг-трекер, как правильно назвать ту или иную часть интерфейса или действие, которые привели к ошибке? Или читаешь описание задачи и задумываешься, как должен выглядеть какой-то экран и что должно появиться при тапе на кнопку. А может, вы описываете продуктовые задачи и не всегда чувствуете себя на одной волне с дизайнерами и разработчиками, которые иногда начинают говорить на эльфийском? Чтобы исключить недопонимание, неясности и вопросы, мы решили создать перечень наиболее распространенных элементов и жестов и показать их на примере Юлы.

А вы знали, как называется «та самая выезжающая снизу экрана шторка» или несколько (три и более) тапов подряд? Ответы на эти вопросы и названия многих других элементов читайте в нашей статье.
Читать дальше →

Паспортный контроль, или Как сжать полтора гигабайта до 42 мегабайт

Время на прочтение3 мин
Охват и читатели43K

Однажды, в качестве тестового задания на позицию PHP разработчика была предложена задача реализации сервиса проверки номеров паспортов граждан РФ на предмет нахождения в списке недействительных. Текст задания был лаконичным: «Пользовательская база 10 миллионов, время ответа 1 миллисекунда, аптайм 99%».

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

Читать далее

Как создавать красивые карты с помощью Python

Время на прочтение4 мин
Охват и читатели27K
Мне всегда нравились карты городов, и несколько недель назад я решил создать свою собственную, художественную версию. Немного погуглив, я обнаружил крутое руководство, написанное Фрэнком Себальосом. Оно увлекательно и полезно, но я предпочитаю более подробные/реалистичные карты-схемы. Из-за этого я решил создать свою собственную версию карт. Итак, давайте посмотрим, как мы можем создавать красивые карты с помощью Python и данных OpenStreetMap.

Приятного чтения!

LIVENESS DETECTION — проверка идентификатора на принадлежность «живому» пользователю

Время на прочтение4 мин
Охват и читатели2.6K

Технологией распознавания лиц уже никого не удивить. Крупные компании активно внедряют эту технологию в свои сервисы и конечно, мошенники пытаются использовать разные способы, в том числе подмену идентификатора лица с помощью маски, фото или записи для осуществления своих преступных действий. Такая атака называется спуфингом.
Хотим познакомить вас с технологией liveness detection, в задачу которой входит проверка идентификатора на принадлежность «живому» пользователю.

Датасет можно скачать по ссылке.

Для обучения в датасете  есть 4 подкласса.

Читать далее

Используем нейросеть для раскрутки собачьего аккаунта в Инстаграм или робопёс в действии

Время на прочтение5 мин
Охват и читатели10K

Всем привет!

Недавно ребёнок завел пса и создал для него аккаунт в Instagram. В течение пары недель на аккаунт подписались все друзья и знакомые, образовалось порядка сотни подписчиков. Ну и, собственно, всё. Интересно, а помогут ли python и минимальные знания устройства Instagram как-то автоматизировать процесс расширения аудитории? Если вам тоже интересно, добро пожаловать по кат.

Читать далее

Пора избавляться от мышки или Hand Pose Estimation на базе LiDAR за 30 минут

Время на прочтение9 мин
Охват и читатели30K
image

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

Детекция аномалий на снимках с БПЛА

Время на прочтение4 мин
Охват и читатели7.5K

Medium post

Осенью мы с друзьями участвовали в хакатоне DIGITAL SUPERHERO от организаторов хакатона ИТС и СЦ, о котором я писал в статье. Хакатон проходил с 18 по 23 сентября 2020 года. Мы выбрали задачу Распознавание аномалий (объектов и инцидентов) на фотоматериалах, полученных с беспилотных летательных аппаратов (БПЛА) в треке "Разработка алгоритмов распознавания. В рамках кейса нужно было разработать алгоритм по автоматическому выявлению аномалий на изображении и разработать веб-интерфейс для загрузки и разметки изображений. В этой статье я бы хотел рассказать о нашем решении для детекции аномалий с помощью модели YOLOv5 в виде практического туториала. Кому интересно, прошу под кат.

Читать далее

Про планеры

Время на прочтение9 мин
Охват и читатели36K

Аэропоезд из Ан-2 и двух Блаников на фалах

Что такое планер?


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

Зачем они нужны?


На заре развития планеризма задача была одна – удержать безмоторный летательный аппарат тяжелее воздуха в полете в течение более-менее продолжительного времени. Потом уже стали разбираться – а зачем? Задачи для планеров придумали такие:

  • спортивная (учебные планеры, высший пилотаж, рекорды)
  • экспериментальная (давайте что-нибудь построим и посмотрим как оно полетит)
  • перевозка грузов и людей (например для десанта)
  • исследование атмосферы

А покататься?


Учебные планеры – двухместные, поэтому позволяют катать пассажиров. Такое развлечение дешевле, чем полет на спортивном самолете (ценник за ознакомительный полёт от 4000 рублей, основная составляющая цены – это стоимость буксировки самолётом). Посадка тандемом, один за другим. Спереди в кабине садится пассажир, сзади – инструктор. Задача катающегося – без разрешения ничего в кабине не трогать. Ну и вовремя предупредить, если укачало и хочется на землю.

Информация

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