Как стать автором
Обновить
0
Берти Вустер @AgentSmith

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

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

Работа каскада Хаара в OpenCV в картинках: теория и практика

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


В прошлой статье мы подробно описали алгоритм распознавания номеров (ссылка), который заключается в получении текстового представления на заранее подготовленном изображении, содержащем рамку с номером + небольшие отступы для удобства распознавания. Мы лишь вскользь упомянули, что для выделения областей, где содержатся номера, использовался метод Виолы-Джонса. Данный метод уже описывался на хабре (ссылка, ссылка, ссылка, ссылка). Сегодня мы проиллюстрируем наглядно то, как он работает и коснёмся ранее необсужденных аспектов + в качестве бонуса будет показано, как подготовить вырезанные картинки с номерами на платформе iOS для последующего получения уже текстового представления номера.
Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии0

FizzBuzz на TensorFlow

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

интервьюер: Приветствую, хотите кофе или что-нибудь еще? Нужен перерыв?


я: Нет, кажется я уже выпил достаточно кофе!


интервьюер: Отлично, отлично. Как вы относитесь к написанию кода на доске?


я: Я только так код и пишу!


интервьюер: ...


я: Это была шутка.


интервьюер: OK, итак, вам знакома задача "fizz buzz"?


я: ...


интервьюер: Это было да или нет?


я: Это что-то вроде "Не могу поверить, что вы меня об этом спрашиваете."


интервьюер: OK, значит, нужно напечатать числа от 1 до 100, только если число делится нацело на 3, напечатать слово "fizz", если на 5 — "buzz", а если делится на 15, то — "fizzbuzz".


я: Я знаю эту задачу.


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


я: ...


интервьюер: Вот маркер и губка.


я: [задумался на пару минут]


интервьюер: Вам нужна помощь, чтобы начать?


я: Нет, нет, все в порядке. Итак, начнем с пары стандартных импортов:


import numpy as np
import tensorflow as tf

интервьюер: Эм, вы же правильно поняли проблему в fizzbuzz, верно?


я: Так точно. Давайте обсудим модели. Я думаю тут подойдет простой многослойный перцептрон с одним скрытым слоем.

Читать дальше →
Всего голосов 132: ↑123 и ↓9+114
Комментарии140

Шаблон backend сервера на Golang — часть 2 (REST API)

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

UPD. Ссылка на новый репозиторий проекта с поддержкой развертывания в Kubernetes


Представленный ниже шаблон сервера на Golang был подготовлен для передачи знаний внутри нашей команды. Основная цель шаблона, кроме обучения — это снизить время на прототипирование небольших серверных задач на Go.


Первая часть шаблона посвящена HTTP серверу:


  • настройка HTTP сервера через командную строку и конфигурационный файл
  • настройка параметров TLS HTTP сервера
  • настройка роутера и регистрация HTTP и prof-обработчиков
  • настройка логирования HTTP трафика, логирования ошибок в HTTP
  • HTTP Basic и MS AD аутентификация, JSON Web Token
  • запуск сервера с ожиданием возврата в канал ошибок
  • использование контекста для корректной остановки сервера и связанных сервисов
  • настройка кастомной обработки ошибок и кастомного логирования
  • сборка кода с внедрением версии, даты сборки и commit

Вторая часть шаблона посвящена прототипированию REST API.
Ссылка на репозиторий проекта осталась прежней.


Третья часть посвящена развертыванию шаблона в Docker, Docker Compose, Kubernetes (kustomize).


Пятая часть посвящена оптимизации Worker pool и особенностям его работы в составе микросервиса, развернутого в Kubernetes.


Архитектура шаблона REST API


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

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

Docker: собираем веб сервер

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

Готовый набор окружения веб сервера на базе контейнеров Docker. Включает в себя MySQL, PHP, NGINX, composer, SSL сертификаты и механизм резервного копирования в облако.

Читать далее
Всего голосов 19: ↑9 и ↓10-1
Комментарии21

Как учиться с помощью машинного обучения у экспертов в Dota 2

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

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


Всего голосов 31: ↑27 и ↓4+23
Комментарии4

Машинное обучение для поиска ошибок в коде: как я стажировался в JetBrains Research

Время на прочтение7 мин
Количество просмотров6K
Недавно мы рассказывали о том, как попасть на стажировку в Google. Помимо Google наши студенты пробуют свои силы в JetBrains, Яндекс, Acronis и других компаниях.

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


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

Инструкция по работе с TensorFlow Object Detection API

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

Перевод TensorFlow Object Detection API tutorial — Training and Evaluating Custom Object Detector.

Мы все умеем водить машину, ведь это довольно легко, правда? Но что вы будете делать, если кто-то попросит вас сесть за штурвал самолета? Совершенно верно — вы прочитаете инструкцию. Аналогично, руководство, которое вы найдете ниже, поможет вам настроить API и наслаждаться приятным полетом.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии5

Создаём простую нейросеть

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


Перевод Making a Simple Neural Network

Что мы будем делать? Мы попробуем создать простую и совсем маленькую нейронную сеть, которую мы объясним и научим что-нибудь различать. При этом не будем вдаваться в историю и математические дебри (такую информацию найти очень легко) — вместо этого постараемся объяснить задачу (не факт, что удастся) вам и самим себе рисунками и кодом.
Начнем.
Всего голосов 41: ↑37 и ↓4+33
Комментарии17

Делаем проект по машинному обучению на Python. Часть 1

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


Перевод A Complete Machine Learning Project Walk-Through in Python: Part One.

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

Чтобы у вас в голове наконец сложилась цельная картина, мы предлагаем разобрать от начала до конца проект применения машинного обучения с использованием реальных данных.
Читать дальше →
Всего голосов 24: ↑21 и ↓3+18
Комментарии4

Cicerone — простая навигация в Андроид приложении

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


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


Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии29

Современная MVI-архитектура на базе Kotlin

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


За последние два года Android-разработчики в Badoo прошли длинный тернистый путь от MVP к совершенно иному подходу к архитектуре приложений. Мы с ANublo хотим поделиться переводом статьи нашего коллеги Zsolt Kocsi, описывающую проблемы, с которыми мы столкнулись, и их решение.

Это первая из нескольких статей, посвящённых разработке современной MVI-архитектуры на Kotlin.
Читать дальше →
Всего голосов 48: ↑46 и ↓2+44
Комментарии12

unCAPTCHA: использование сервисов Google для обхода Google reCAPTCHA

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

unCAPTCHA – автоматизированная система, разработанная экспертами Мэрилендского университета, способная обойти reCAPTCHA от Google с точностью до 85 %. Им это удалось благодаря распознаванию аудио-версии подсказки для людей с ограниченными возможностями.
Всего голосов 48: ↑46 и ↓2+44
Комментарии31

Научные способы улучшить внимание: ноотропы, нейроинтерфейсы и электростимуляция

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

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

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


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

Как программист новую машину подбирал

Время на прочтение10 мин
Количество просмотров40K
В предыдущих статьях (I, II, III) я подробно рассказывал о разработке сервиса для поиска выгодных б/у автомобилей в РФ.

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

Я собрал данные о новых автомобилях, проанализировал, оформил в виде сервиса, и под конец года, когда скидки у дилеров максимальны, решил поделиться им с вами.

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

Закон Тьюринга: штат Калифорния запретил чат-ботам притворяться людьми

Время на прочтение2 мин
Количество просмотров15K
Кибернетики в течение 60 лет не могли полноценно осмыслить тему сходства людей и роботов. Они даже придумали надуманный и переусложнённый Критерий Тьюринга: «можно считать, что создан настоящий ИИ, если нельзя отличить чат-бота от человека в сетевом общении».

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

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

28 сентября в штате Калифорния был принят закон о запрете чат-ботов, побуждающих к покупке товаров и услуг, или продвигающих политические партии, если эти чат-боты не сообщают собеседникам, что не являются людьми.
Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии31

5 уроков, которые мы усвоили, написав более 300 000 строк инфраструктурного кода

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

Краткий мастер-класс по разработке инфраструктурного кода


image


В октябре этого года я выступил с докладом на конференции HashiConf 2018, где рассказал о 5 ключевых уроках, которые я и мои коллеги из Gruntwork усвоили в процессе создания и поддержки библиотеки из более чем 300 000 строк инфраструктурного кода, используемой в производственных системах сотнями компаний. В этой публикации я поделюсь видео и слайдами с выступления, а также сокращенной текстовой версией описания 5 основных уроков.


Видео и слайды



Вступление: DevOps сейчас — в «каменном веке»


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

Всего голосов 16: ↑14 и ↓2+12
Комментарии1

Отладка шейдеров на Java + Groovy

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


Подсветка синтаксиса шейдеров. Связь между шейдерами и внешними структурами данных. Юнит-тесты для шейдеров, дебаг, рефакторинг, статический анализ кода, и вообще полная поддержка IDE. О том, как всё это получить, в чём подвох, и что прописать в мавене…
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии11

Геометрия данных 1. Симплексы и графы

Время на прочтение11 мин
Количество просмотров21K
Звездное небо напоминает, — точки являются фундаментальной абстракцией, основой окружающего пространства.



Введение


Это первая статья серии, посвященной описанию свойств базисов пространств на основе элементов (а не векторов). Базис определяет систему координат — описание элементов пространства в виде набора чисел, характеризующих положение элемента относительно базиса.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии23

Blind Deconvolution — автоматическое восстановление смазанных изображений

Время на прочтение6 мин
Количество просмотров146K
Смазанные изображения — один из самых неприятных дефектов в фотографии, наравне с расфокусированными изображениями. Ранее я писал про алгоритмы деконволюции для восстановления смазанных и расфокусированных изображений. Эти, относительно простые, подходы позволяют восстановить исходное изображение, если известна точная траектория смаза (или форма пятна размытия).
В большинстве случаев траектория смаза предполагается прямой линией, параметры которой должен задавать сам пользователь — для этого требуется достаточно кропотливая работа по подбору ядра, кроме того, в реальных фотографиях траектория смаза далека от линии и представляет собой замысловатую кривую переменной плотности/яркости, форму которой крайне сложно подобрать вручную.


В последние несколько лет интенсивно развивается новое направлении в теории восстановления изображений — слепая обратная свертка (Blind Deconvolution). Появилось достаточно много работ по этой теме, и начинается активное коммерческое использование результатов.
Многие из вас помнят конференцию Adobe MAX 2011, на которой они как раз показали работу одного из алгоритмов Blind Deconvolution: Исправление смазанных фотографий в новой версии Photoshop
В этой статье я хочу подробнее рассказать — как же работает эта удивительная технология, а также показать практическую реализацию SmartDeblur, который теперь тоже имеет в своем распоряжении этот алгоритм.
Внимание, под катом много картинок!
Читать дальше →
Всего голосов 243: ↑239 и ↓4+235
Комментарии150

Генерирование полигональных карт для игр

Время на прочтение24 мин
Количество просмотров58K
Я хотел научиться генерировать интересные игровые карты, которые не обязательно были бы реалистичными, а также попробовать техники, с которыми раньше не работал. Обычно я создаю карты с другой структурой. Что можно сделать с тысячей полигонов вместо миллиона тайлов? Отчётливо различимые игроком области могут быть полезны для геймплея: местоположения городов, места квестов, территории для захвата или колонизации, ориентиры, точки поиска пути, зоны с разной сложностью и т.д. Я генерировал карты с помощью полигонов, а затем растеризировал их вот в такие карты:

image

Во многих процедурных генераторах карт, в том числе и некоторых моих предыдущих проектах, для генерирования карты высот используются функции шума (midpoint displacement, фракталы, diamond-square, шум Перлина и т.д.). Здесь я их не применял. Вместо неё я использовал структуру графов для моделирования элементов, определяемых ограничениями геймплея (высота, дороги, течение рек, места квестов, типы монстров) и функции шума для моделирования того, что не ограничивается геймплеем (форма побережья, расположение рек и деревьев).
Читать дальше →
Всего голосов 100: ↑99 и ↓1+98
Комментарии11
1
23 ...

Информация

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