Pull to refresh
10
0
Black_Joker @Black_Joker

User

Send message

Микробраузеры повсюду. Но что мы о них знаем?

Reading time 8 min
Views 23K

Рис. 1. Превью одной и той же страницы в iMessage (слева), Hangouts и WhatsApp (справа)

Если упомянуть любой URL в твите, на Slack-канале, в Telegram или WhatsApp — ссылка развернётся в превью. Оно даёт примерное представление, как выглядит настоящая веб-страница.

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

Вот основные факты о микробраузерах, которые должен знать каждый веб-разработчик.
Читать дальше →
Total votes 38: ↑38 and ↓0 +38
Comments 10

Шейдеры 3D-игр для начинающих: эффекты

Reading time 18 min
Views 13K
[Первая часть]

Разобравшись с основами, в этой части статьи мы реализуем такие эффекты, как контуры объектов, bloom, SSAO, размытие, глубина резкости, пикселизация и другие.

Контуры



Создание контуров вокруг геометрии сцены придаёт игре уникальный внешний вид, напоминающий комиксы или мультфильмы.

Diffuse материала


Шейдеру контура необходима входящая текстура для распознавания и раскраски краёв. Кандидатами стать такой входящей текстурой могут быть диффузный цвет из материалов, цвета из диффузных текстур, нормали вершин или даже цвета из карт нормалей.

uniform struct
  { vec4 diffuse
  ;
  } p3d_Material;

out vec4 fragColor;

void main() {
  vec3 diffuseColor = p3d_Material.diffuse.rgb;
  fragColor = vec4(diffuseColor, 1);
}

Здесь показан небольшой фрагментный шейдер, который рендерит диффузный цвет материала геометрии в текстуру буфера кадров. Эта текстура диффузного цвета из буфера кадров будет входящей текстурой для шейдера контуров.
Читать дальше →
Total votes 43: ↑41 and ↓2 +39
Comments 5

Простое объяснение алгоритмов поиска пути и A*

Reading time 13 min
Views 64K
image

Часть 1. Общий алгоритм поиска


Введение


Поиск пути — это одна из тех тем, которые обычно представляют самые большие сложности для разработчиков игр. Особенно плохо люди понимают алгоритм A*, и многим кажется, что это какая-то непостижимая магия.

Цель данной статьи — объяснить поиск пути в целом и A* в частности очень понятным и доступным образом, положив таким образом конец распространённому заблуждению о том, что эта тема сложна. При правильном объяснении всё достаточно просто.

Учтите, что в статье мы будем рассматривать поиск пути для игр; в отличие от более академических статей, мы опустим такие алгоритмы поиска, как поиск в глубину (Depth-First) или поиск в ширину (Breadth-First). Вместо этого мы постараемся как можно быстрее дойти от нуля до A*.
Читать дальше →
Total votes 29: ↑29 and ↓0 +29
Comments 11

Как превратить спутниковые снимки в карты. Компьютерное зрение в Яндексе

Reading time 10 min
Views 31K
Один из главных источников данных для сервиса Яндекс.Карты — спутниковые снимки. Чтобы с картой было удобно работать, на снимках многоугольниками размечаются объекты: леса, водоёмы, улицы, дома и т. п. Обычно разметкой занимаются специалисты-картографы. Мы решили помочь им и научить компьютер добавлять многоугольники домов без участия людей.

За операции с изображениями отвечает область ИТ, которая называется компьютерным зрением. Последние несколько лет большую часть задач из этой области очень удачно решают, применяя нейронные сети. О нашем опыте применения нейронных сетей в картографировании мы и расскажем сегодня читателям Хабра.

Читать дальше →
Total votes 87: ↑84 and ↓3 +81
Comments 34

Пишем XGBoost с нуля — часть 1: деревья решений

Reading time 13 min
Views 33K


Привет, Хабр!

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

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


Читать дальше →
Total votes 77: ↑76 and ↓1 +75
Comments 4

Распознавание номеров. Практическое пособие. Часть 1

Reading time 6 min
Views 101K
Пример распознавания номерных знаков

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

И в один прекрасный день МВД Украины открыло доступ к реестру транспортных средств. Теперь по номерному знаку стало возможным проверять некоторую информацию про автомобиль (марку, модель, год выпуска, цвет и т.д. )! Скучная рутина линейного программирования померкла перед новой свехзадачей — считывать номера по всей базе фото и валидировать эти данные с теми, что указывал пользователь. Сами знаете как это бывает «глаза загорелись» — вызов принят, все остальные задачи на время стали скучны и монотонны… Мы принялись за работу и получили неплохие результаты, чем, собственно и решили поделиться с сообществом.
Для справки: на сайт AUTO.RIA.com, в день добавляется около 100 000 фото.
Датасаентисты давно уже знают и умеют решать подобные задачи, поэтому мы с dimabendera написали эту статью именно для программистов. Если вы не боитесь словосочетания «сверточные сети» и умеете писать «Hello World» на питоне — милости просим под кат…
Читать дальше →
Total votes 67: ↑66 and ↓1 +65
Comments 58

Патриот Зимбабве потратил $5000, чтобы оцифровать родную страну на Google Street View

Reading time 3 min
Views 36K

Подготовка к работе панорамной камеры Insta360 Pro 2. Фото: Таванда Канхема

Зимбабве — крайне бедная африканская страна. Хотя до обретения независимости в 1980 году она считалась одной из самых экономических развитых на континенте, несмотря на добычу золота и алмазов, сейчас относится к числу беднейших государств на планете. Зимбабве — прототип сказочной и богатой Ваканды из комиксов Marvel, но это не слишком помогает экономике в реальном мире.

Понятно, что в такой бедной стране мало пользователей интернета, поэтому гигант Google не заинтересован в том, чтобы инвестировать деньги в оцифровку местности и публикацию качественных панорамных карт. Но виртуальные прогулки по Зимбабве всё-таки возможны, и за это нужно благодарить не Google, а одного-единственного патриота, 37-летнего американца Таванду Канхему (Tawanda Kanhema), который не забыл про свою малую родину.
Читать дальше →
Total votes 83: ↑80 and ↓3 +77
Comments 86

Computer Vision Annotation Tool: универсальный подход к разметке данных

Reading time 13 min
Views 25K
Обновлено: Июль, 2020

Нижегородский офис компании Intel, помимо прочего, занимается разработкой алгоритмов компьютерного зрения на основе глубоких нейронных сетей. Многие наши алгоритмы публикуются в репозитории Open Model Zoo. Для обучения моделей требуется большое число размеченных данных. Теоретически, существует много способов подготовить их, однако наличие специализированного программного обеспечения многократно ускоряет этот процесс. Так, в целях повышения эффективности и качества разметки, мы разработали собственный инструмент – Computer Vision Annotation Tool (CVAT).


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

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

Reading time 7 min
Views 151K


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

Из-за этого большинство подобных материалов мало полезны, несмотря на то, что могут содержать толковые книги. Мне давно хотелось написать полезный обзор, который не станет навязывать определенные материалы, а позволит читателю выбрать наиболее подходящие.
Читать дальше →
Total votes 62: ↑55 and ↓7 +48
Comments 79

Лиза Алерт: добровольцы, спасающие жизни

Reading time 6 min
Views 16K


Поисково-спасательный отряд «Лиза Алерт» существует уже 8 лет. Это добровольческое объединение, сообщество неравнодушных, которое ищет пропавших людей, эффективно взаимодействуя с МЧС и МВД. «Лиза Алерт» собирает заявки о пропавших людях, проводит различные обучающие мероприятия, организацию поисков и сами поисковые операции. Отряд не ведет никакой коммерческой деятельности, не имеет расчётного счёта и не принимает денежные пожертвования.

Недавно Mail.Ru Cloud Solutions бесплатно предоставила «Лизе Алерт» площадку для размещения сервисов, активно применяющихся при проведении поисково-спасательных работ. Мы решили побеседовать с Сергеем Чумаком, старшим IT-направления «Лиза Алерт», о том, как работают спасатели-добровольцы и как им помогают высокие технологии.
Читать дальше →
Total votes 85: ↑83 and ↓2 +81
Comments 60

Рецепт полезного код-ревью от разработчика из Яндекса

Reading time 9 min
Views 47K



Привет. Меня зовут Сергей, последние пять лет я работаю в Яндексе. За это время участвовал в разработке одиннадцати проектов. Писал код на JavaScript, Python и C++. Некоторые проекты делал в одиночку, другие разрабатывал в группе из восьми человек. Но в каждой команде, на всех проектах, вне зависимости от языка программирования я использовал код-ревью.


С помощью код-ревью я постоянно узнаю что-то новое. Иногда, глядя на чужой код, хочется воскликнуть: "А что, так тоже можно?". В чужом коде я нахожу интересные приёмы и беру их себе на вооружение. Много новых знаний черпаю из комментариев к моему коду. Для меня стало открытием, что люди любят делиться своим опытом. Даже когда я разрабатываю проект в одиночку, то прошу ребят из другой команды посмотреть мои пулреквесты. Это мотивирует писать красивый и понятный код.


Но так было не всегда. Когда-то ревью было для меня наказанием. Я мог неделю с вдохновением писать код, вкладывая в него все силы. Отправлял пулреквест, трижды пинговал ревьювера, а в ответ получал сухое "вроде ок" или, что ещё хуже, десятки комментариев не по существу.


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


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

Читать дальше →
Total votes 77: ↑68 and ↓9 +59
Comments 172

Процесс ревью кода в hh.ru

Reading time 7 min
Views 19K
Мне на глаза попался документ с правилами и рекомендациями по процессу ревью кода внутри компании. Я решил, что такой полезной информацией надо поделиться с внешним миром. С благословения автора я публикую работу.


Читать дальше →
Total votes 40: ↑37 and ↓3 +34
Comments 2

Что мы читали в июле: как найти время на чтение, пять книг для тимлида и немного свежих статей

Reading time 4 min
Views 35K


В сегодняшнем выпуске нашей рубрики Алексей Катаев рассказывает о том, как он научился читать по 17 книг в месяц, не тратя на это кучу времени, и рекомендует пять полезных произведений из разряда «нетленки», показавшихся ему наиболее полезными. А в конце — традиционная, но маленькая подборка ссылок из нашего рабочего Слака.
Читать дальше →
Total votes 33: ↑28 and ↓5 +23
Comments 39

Машинное зрение для ритейла. Как прочитать ценники в магазине

Reading time 7 min
Views 17K
Машинное зрение – очень актуальная тема в наши дни. Для решения задачи по распознаванию магазинных ценников с использованием нейронных сетей мы выбрали фреймворк TensorFlow.

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

Отдельно хотелось бы отметить, что решение может работать как на платформе SAP HANA в связке с Tensorflow Serving, так и на SAP Cloud Platform.

Задача распознавания цены товара актуальна и для покупателей, которые хотят «шарить» цены друг с другом и выбирать магазин для покупок, и для ритейлеров — они хотят узнавать про цены конкурентов в режиме реального времени.

Хватит лирики – гоу в технику!
Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Comments 10

Трансляция h264 видео без перекодирования с камеры Logitech C920

Reading time 12 min
Views 23K


Задержка составила не более 0.3 секунды, с учетом того что камера подключена к слабому BeagleBone Blue с загрузкой процессора не более 30% и передачей потока видео через wifi роутер на ноутбук.
Читать дальше →
Total votes 19: ↑19 and ↓0 +19
Comments 20

StereoPi — наша железка для изучения компьютерного зрения, дронов и роботов

Reading time 4 min
Views 21K
Всем привет!

Сегодня я бы хотел рассказать вам о нашей новой железке на базе Raspberry Pi Compute Module, предназначенной для изучения компьютерного зрения и установки на роботов и дронов. По сути это «умная» стереокамера — она поддерживает работу с двумя камерами одновременно, имеет в качестве «сердца» настоящую малину и, самое важное – работает со стоковой версией Raspbian.
Вот как выглядит собранное решение, с установленными двумя камерами и Pi Compute модулем.

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

Курс о Deep Learning на пальцах

Reading time 2 min
Views 173K
Я все еще не до конца понял, как так получилось, но в прошлом году я слово за слово подписался прочитать курс по Deep Learning и вот, на удивление, прочитал. Обещал — выкладываю!

Курс не претендует на полноту, скорее это способ поиграться руками с основными областями, где deep learning устоялся как практический инструмент, и получить достаточную базу, чтобы свободно читать и понимать современные статьи.

Материалы курса были опробованы на студентах кафедры АФТИ Новосибирского Государственного Университета, поэтому есть шанс, что по ним действительно можно чему-то научиться.


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

Автоматическая векторизация спутниковых снимков: одна модель — два первых места

Reading time 10 min
Views 15K

image


Всем привет!


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


Речь пойдёт о следующих соревнованиях:


  • Urban 3d mapper — поиск домиков на спутниковых снимках. Соревнование длилось 2 месяца, было 54 участников и пять призовых мест.
  • Spacenet: road detection challenge — поиск графа дорог. На решение также давалось 2 месяца, включало 33 участника и пять призовых позиций.

В статье рассказывается об общих подходах к решению таких задач и особенностях реализации для конкретных конкурсов.


Для комфортного чтения статьи желательно обладать базовыми знаниями о свёрточных нейронных сетях и их обучении.

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

Технологии беспилотных автомобилей. Лекция Яндекса

Reading time 6 min
Views 15K
Яндекс продолжает разрабатывать технологии беспилотных автомобилей. Сегодня мы публикуем лекцию одного из руководителей этого проекта — Антона Слесарева. Антон выступил на «Data-ёлке» в конце 2017 года и рассказал об одной из важных компонент стека технологий, необходимых для работы беспилотника.


— Меня зовут Антон Слесарев. Я отвечаю за то, что работает внутри беспилотного автомобиля, и за алгоритмы, которые готовят машины к поездке.
Total votes 29: ↑27 and ↓2 +25
Comments 10

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity