• Самая сложная задача в Computer Vision

    • Tutorial
    Среди всего многообразия задач Computer Vision есть одна, которая стоит особняком. К ней обычно стараются лишний раз не притрагиваться. И, если не дай бог работает, — не ворошить.
    У неё нет общего решения. Практически для каждого применения существующие алгоритмы надо тюнинговать, переобучать, или судорожно копаться в куче матриц и дебрях логики.

    Статья о том как делать трекинг. Где он используется, какие есть разновидности. Как сделать стабильное решение.
    Читать дальше →
  • Изучаем английский с помощью Telegram бота

      image


      Нет, это не одна из сотен статей о том, как написать свой первый Hello World бот на Python. Здесь вы не найдете подробной инструкции, как получить API-токен в BotFather или запустить бота в облаке. Взамен я вам покажу как раскрутить всю мощь Python на максимум, чтобы добиться максимально эстетичного и красивого кода. Исполним песню про обращение сложных структур — станцуем и спляшем. Под катом асинхронность, собственная система сейвов, куча полезных декораторов и много красивого кода.

      Читать дальше →
      • +5
      • 7,9k
      • 1
    • Точки входа в Python

      • Перевод
      • Tutorial
      Многие думают, что точки входа это такие инструкции в setup.py, которые позволяют сделать пакет доступным для запуска из командной строки. Это, в целом, верно, но возможности точек входа не ограничиваются этим.

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



      Осторожно: специфический юмор далее по тексту.
      Читать дальше →
      • +39
      • 16,8k
      • 6
    • «Хакеры и художники», «On Lisp» и эссе на русском. Учим(ся) писать как Пол Грэм

        To follow the path:
        look to the master,
        follow the master,
        walk with the master,
        see through the master,
        become the master.
        «Лучший способ писать — это переписывать» Пол Грэм, «The Age of the Essay»



        Преред курсом Сергея Абдульманова ( milfgard) я взял для себя квест — структурировать все статьи Грэма. Пол не только крутой программист и инвестор — он мастер лаконичного письма. Если milfgard назвал свой курс для контент-менеджеров "Буквы, которые стреляют в голову", то Пол Грэм стреляет из «по глазам» (кто играл в Fallout 2 тот поймет).

        А еще мне захотелось освоить Lisp. Чисто так, чтобы мозг поразвивать, потому что крутые люди — Грэм, Кей и Рэймонд, Моррис — говорят хором: «Учите Lisp».

        На данный момент Пол Грэм написал (по крайней мере, я нашел) 167 эссе. Из них на русский переведены 69.74(+10). Если читать по 1 статье в день (что очень хороший результат, потому что я после одной статьи хожу задумчивый неделю — голова кипит как после отличного мастер-класса, а иногда и как после двухдневного интенсива), то процесс займет полгода.

        Под катом — список всех статей со ссылками на оригинал и с переводом (если он есть). Подборка живая (так что, как обычно, добавляйте в избранное, потом прочитаете) и будет дополняться по мере обнаружения свежака. Еще вы найдете переведенную на 8/15 книгу «Хакеры и художники» и 4/25 перевода книги «On Lisp». Так же я приведу свою подборку топ-5 статей Пола Грэма, с которых я бы рекомендовал начать знакомство с этим автором.
        Читать дальше →
        • +22
        • 69,7k
        • 3
      • Data Science Digest (August 2019)



          Приветствую всех! DataFest возвращается в Украину и пройдет 7 сентября в Одессе. Сейчас формируется программа, но если вы хотите выступить с докладом, то можно подать свою тему здесь. Зарегистрироваться в качестве участника можно здесь. Напоминаю, что у дайджеста есть свой Telegram-канал и страницы в соцсетях (Facebook, Twitter, LinkedIn), где я ежедневно публикую ссылки на полезные материалы. Присоединяйтесь!

          А пока предлагаю свежую подборку материалов под катом.
          Читать дальше →
          • +14
          • 3,6k
          • 1
        • Как устроен цвет

            Почему формальное определение цвета то ли есть, то ли нет, и связано ли это с тем, что его дал тот самый Шрёдингер? Что имел в виду Вейнберг, когда назвал свою революционную статью «Геометрия цветов»? Почему у цветового треугольника два угла, хотя интуитивно кажется, что должен быть один? Почему обычный детский рисунок показывает, что у автора всё в порядке с цветовосприятием, и зачем художник-академист всю жизнь учится его отключать? Почему в цветовом пространстве находятся кластеры, но они не находятся? Почему любая женщина знает о явлении метамерии окрасок, а ученые всё время забывают? Сколько должно быть цветовых каналов у хорошего фотоаппарата? А у монитора? А почему ответ разный? А красок у принтера?

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



            Лектор — Дмитрий Николаев, заведующий сектором зрительных систем в Институте проблем передачи информации им. А.А. Харкевича РАН. Кандидат физико-математических наук, защитил диссертацию на тему «Алгоритмы цветовой сегментации, применимые в условиях сложного освещения сцены».
            Читать дальше →
          • Реставрируем фотографии с помощью нейросетей



              Всем привет, я работаю программистом-исследователем в команде компьютерного зрения Mail.ru Group. Ко Дню Победы в этом году мы решили сделать проект по реставрации военных фотографий. Что такое реставрация фотографий? Она состоит из трех этапов:

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

              В этой статье я детально пройдусь по каждому из этапов реставрации и расскажу, как и где мы брали данные, какие сети мы учили, что у нас получилось, на какие грабли мы наступили.
              Читать дальше →
            • Создание ИИ методом «глокой куздры». Интеллектуальная одиссея

                Захотелось мне написать разговаривающую программу. Очень захотелось, позарез.

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

                Знакомьтесь, Ваня Разумный.


                Ниже находится описание проблем, возникших передо мной на этом хоженом-перехоженом пути, и способов их преодоления.

                По поводу результата оговорюсь сразу: целью был не программный код, а формулировка принципов искусственного мышления, функционирующего НЕ на основе физической реальности, как биологические организмы, а на основе СИНТАКСИСА. Поклонники теста Тьюринга, нейронных сетей и машинного обучения могут не беспокоиться.

                Внимание, материал объемный.
                Читать дальше →
              • Кто живёт у нас на лице


                  Клещ демодекс, например. Чаще всего десантируется на кожу век из настенных ковров.

                  На вашем лице живёт сапрофитная флора фауна — микроорганизмы, которые питаются мёртвыми клетками эпителия. Если взять «здорового» человека, то при желании на его лице найдутся и железница (клещ демодекс), и колония эпидермального стафилококка в количестве до 105, и акне в небольших количествах. Тот же клещ демодекс передвигается под кожей, достигает 0,4 мм в диаметре. Шанс — 100% за 70 лет.

                  Пугаться не надо. Меньше 5 клещей на квадратный сантиметр — медицинская норма. Кожа чувствует себя хорошо. А вот если появились, например, угри — это повод обратиться к врачу. Иначе есть реальный шанс попасть в порочный круг: рост популяции паразита вызовет угревую сыпь, а она поспособствует ещё большему размножению клеща. Потому что в угрях клещ чувствует себя тепло и прельстиво.

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

                  Читать дальше →
                • Памятки по искусственному интеллекту, машинному обучению, глубокому обучению и большим данным

                  • Перевод


                  В течение нескольких месяцев мы собирали памятки по искусственному интеллекту, которыми периодически делились с друзьями и коллегами. В последнее время сложилась целая коллекция, и мы добавили к памяткам описания и/или цитаты, чтобы было интереснее читать. А в конце вас ждёт подборка по сложности «О большое» (Big-O). Наслаждайтесь.

                  UPD. Многие картинки будут читабельнее, если открыть их в отдельных вкладках или сохранить на диск.
                  Читать дальше →
                  • +43
                  • 28,8k
                  • 9
                • Устойчивость обучения GAN

                  Впервые идея GAN была опубликована Яном Гудфеллоу Generative Adversarial Nets, Goodfellow et alб 2014, после этого GAN'ы являются одними из лучших генеративнх моделей.

                  Как и у любой другой генеративной модели задача GAN построить модель данных, а если более конкретно научиться генерировать семплы из распределения максимально близкого к распределению данных (обычно имеется датасет ограниченного размера, распределение данных в котором мы хотим промоделировать).

                  GAN’ы огромным количеством достоинств, но у них есть один существенный недостаток – их очень сложно обучать.

                  В последнее время вышел ряд работ посвященных устойчивости GAN:


                  Вдохновившись их идеями, я сделал небольшое свое исследование.
                  Читать дальше →
                  • +14
                  • 8,1k
                  • 4
                • (Законы Акина) законы космической инженерии

                    1. Инженерная разработка — это цифры. Анализ без цифр — это просто мнение.

                    2. Создание правильной ракеты занимает бесконечное количество времени. Поэтому следует создавать ракеты, в которых что-то неправильно.
                    Читать дальше →
                  • Щи, или Распознавание 330 млн лиц на скорости 400 фото / сек

                      Распознаванием лиц в 2018 году никого не удивишь – каждый студент, может, даже школьник, его делал. Но всё становится немного сложнее, когда у вас не датасет на 1 млн пользователей, а:


                      • 330 миллионов пользовательских аккаунтов;
                      • ежедневно заливается 20 млн пользовательских фотографий;
                      • максимальное время на обработку одного фото не должно превышать 0.2 сек;
                      • ограниченные объемы оборудования для решения задачи.


                      В этой статье мы поделимся опытом разработки и запуска системы распознавания лиц на пользовательских фотографиях в социальной сети Одноклассники и расскажем про все ”от А до Я”:


                      • математический аппарат;
                      • техническую реализацию;
                      • результаты запуска;
                      • и акцию StarFace, которую мы использовали для PR-а нашего решения.

                      Распознавание лиц Одноклассников в деталях
                    • Материалы открытого курса OpenDataScience и Mail.Ru Group по машинному обучению и новый запуск

                        Недавно OpenDataScience и Mail.Ru Group провели открытый курс машинного обучения. В прошлом анонсе много сказано о курсе. В этой статье мы поделимся материалами курса, а также объявим новый запуск.



                        UPD: теперь курс — на английском языке под брендом mlcourse.ai со статьями на Medium, а материалами — на Kaggle (Dataset) и на GitHub.


                        Кому не терпится: новый запуск курса — 1 февраля, регистрация не нужна, но чтоб мы вас запомнили и отдельно пригласили, заполните форму. Курс состоит из серии статей на Хабре (Первичный анализ данных с Pandas — первая из них), дополняющих их лекций на YouTube-канале, воспроизводимых материалов (Jupyter notebooks в github-репозитории курса), домашних заданий, соревнований Kaggle Inclass, тьюториалов и индивидуальных проектов по анализу данных. Главные новости будут в группе ВКонтакте, а жизнь во время курса будет теплиться в Slack OpenDataScience (вступить) в канале #mlcourse_ai.

                        Читать дальше →
                      • Визуализация процесса обучения нейронной сети средствами TensorFlowKit

                          Hint
                          Перед прочтением этой статьи советую ознакомиться с предыдущей статьей о TensorFlowKit и поставить star репозиторию.

                          Я не люблю читать статьи, сразу иду на GitHub
                          GitHub: TensorFlowKit
                          GitHub: Example
                          GitHub: Другое
                          TensorFlowKit API
                          Посeтив репозиторий, добавьте его в «Stars» это поможет мне написать больше статей на эту тему.

                          image

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

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

                          Существуют целые сообщества, решающие такого рода задачи, например Distill, Welch Labs, 3Blue1Brown.

                          Читать дальше →
                        • Russian AI Cup 2017 — всем поклонникам StarCraft и C&C посвящается


                            Уже несколько лет подряд мы проводим Russian AI Cup — нехилый такой конкурс для всех неравнодушных к программированию в целом, к построению ИИ, просто к написанию ботов для игр или автоматизации чего бы то ни было. Естественно, и этот год не будет исключением. Итак, Mail.Ru Group в сотрудничестве с Саратовским государственным университетом официально объявляют о дате старта Russian AI Cup 2017 и счастливы предложить задачу этого года. Жёсткие битвы, макбуки за первые места и минус полтора месяца из жизни разработчика — всё на месте, всё как вы любите. Добро пожаловать под кат за подробностями!

                            Читать дальше →
                          • Выбираем бесплатный сервер в облаке для тестовых целей, домашних проектов и т.д

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

                              Статья будет полезна тем, кто ещё не пользовался облачными серверами.


                              Читать дальше →
                            • 36 материалов о нейросетях: книги, статьи и последние исследования

                                Что делать, если хочется побольше узнать про нейронные сети, методы распознавания образов, компьютерное зрение и глубокое обучение? Один из очевидных вариантов — подыскать для себя какие-либо курсы и начать активно изучать теорию и решать практические задачи. Однако на это придется выделить значительную часть личного времени. Есть другой способ — обратиться к «пассивному» источнику знаний: выбрать для себя литературу и погрузиться в тему, уделяя этому всего полчаса-час в день.

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

                                Читать дальше →
                                • +23
                                • 75,8k
                                • 9
                              • Алгоритм машинного обучения Flappy Bird

                                • Перевод
                                Я познакомлю вас с полным туториалом на HTML5 с демо по алгоритму машинного обучения видеоигре Flappy Bird. Цель этого эксперимента — написать игровой контроллер искусственного интеллекта на основе нейросетей и генетического алгоритма.

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

                                Прочитав теорию, лежащую в основе этого проекта, можно скачать исходный код в конце этого туториала. Весь код написан на HTML5 с использованием фреймворка Phaser. Кроме того, мы использовали библиотеку Synaptic Neural Network для реализации нейросети, чтобы не создавать её с нуля.

                                Демо


                                Для начала посмотрите демо, чтобы оценить алгоритм в действии:



                                Запустить в полноэкранном режиме
                                Читать дальше →
                              • Как сделать проект по распознаванию рукописных цифр с дообучением онлайн. Гайд для не совсем начинающих

                                • Tutorial
                                Привет, Хабр! В последнее время машинное обучение и data science в целом приобретают все большую популярность. Постоянно появляются новые библиотеки и для тренировки моделей машинного обучения может потребоваться совсем немного кода. В такой ситуации можно забыть, что машинное обучение — не самоцель, а инструмент для решения какой-либо задачи. Мало сделать работающую модель, не менее важно качественно презентовать результаты анализа или сделать работающий продукт.

                                Я хотел бы рассказать о том, как создал проект по распознаванию рукописного ввода цифр с моделями, которые дообучаются на нарисованных пользователями цифрах. Используется две модели: простая нейронная сеть (FNN) на чистом numpy и сверточная сеть (CNN) на Tensorflow. Вы сможете узнать, как сделать практически с нуля следующее:

                                • создать простой сайт с использованием Flask и Bootstrap;
                                • разместить его на платформе Heroku;
                                • реализовать сохранение и загрузку данных с помощью облака Amazon s3;
                                • собрать собственный датасет;
                                • натренировать модели машинного обучения (FNN и CNN);
                                • сделать возможность дообучения этих моделей;
                                • сделать сайт, который сможет распознавать нарисованные изображения;

                                Для полного понимания проекта желательно знать как работает deep learning для распознавания изображений, иметь базовые знания о Flask и немного разбираться в HTML, JS и CSS.
                                Читать дальше →
                                • +25
                                • 24,2k
                                • 9