• Зарплаты ИТ-специалистов на середину 2018 года

      image

      Публикуем второй отчет зарплатного сервиса «Моего круга». Отчёт построен на данных по 7900+ зарплатам, внесенных нашими пользователями за последние полгода. 70% зарплат внесено разработчиками, остальные — администраторами, тестировщиками, менеджерами, аналитиками, дизайнерами, эйчарами, маркетологами и специалистами поддержки.

      В этот раз мы не только посмотрим текущие зарплаты по основным ИТ-специализациям, языкам программирования и компаниям, но также увидим полугодовую динамику некоторых из них.
      Читать дальше →
    • Постановка задачи компьютерного зрения


        Последние лет восемь я активно занимаюсь задачами, связанными с распознаванием образов, компьютерным зрением, машинным обучением. Получилось накопить достаточно большой багаж опыта и проектов (что-то своё, что-то в ранге штатного программиста, что-то под заказ). К тому же, с тех пор, как я написал пару статей на Хабре, со мной часто связываются читатели, просят помочь с их задачей, посоветовать что-то. Так что достаточно часто натыкаюсь на совершенно непредсказуемые применения CV алгоритмов.
        Но, чёрт подери, в 90% случаев я вижу одну и ту же системную ошибку. Раз за разом. За последние лет 5 я её объяснял уже десяткам людей. Да что там, периодически и сам её совершаю…

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

        Тривиальная мысль. Но все ошибаются. Абсолютно все. В статье я приведу несколько примеров таких ситуаций. Когда задача поставлена плохо, когда хорошо. И какие подводные камни вас ждут в формировании ТЗ для систем компьютерного зрения.
        Читать дальше →
      • Распознавание объектов с помощью PowerAI Vision

        • Tutorial


        Разработчики программного обеспечения уже несколько лет активно работают с библиотеками машинного обучения, решая задачи компьютерного зрения и обнаружения объектов. Но реализация таких задач (а каждую модель машинного обучения необходимо спроектировать, развернуть, собственно обучить, настроить и установить) обычно требует глубоких знаний и навыков. С новым продуктом IBM PowerAI Vision Вы можете этого избежать. Этот продукт предоставляет интерфейс, в котором можно обучать, настраивать и тестировать свою собственную модель, не углубляясь в детали реализации машинного обучения.

        В этой инструкции я расскажу как использовать PowerAI Vision, чтобы обучить систему и создать готовый к использованию сервис REST API, который можно использовать для обнаружения и распознавания объектов в Ваших приложениях.
        Подробная инструкция
        • +11
        • 6.4k
        • 3
      • Специалист по разметке данных

          Сегодня замечательный день (if you know what I mean), чтобы анонсировать нашу новую программу — Специалист по разметке данных.

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

          Железо, в общем-то, доступно каждому через облака. Да, оно может быть недешевым, но GPU-инстансы на EC2 вполне по карману большинству исследователей. Софт опенсорсный, большинство фреймворков можно скачать себе куда-то и работать с ними. Некоторые сложнее, некоторые проще. Но порог для входа вполне приемлемый. Остается только последний компонент — это данные. И вот здесь и возникает загвоздка.

          Deep learning требует действительно больших данных: сотни тысяч–миллионы объектов. Если вы хотите заниматься, например, задачей классификации изображений, то вам, помимо самих данных, нужно передать нейронке информацию, к какому классу относится тот или иной объект. Если у вас задача связана еще и с сегментацией изображения, то получение хорошего датасета — это уже фантастически сложно. Представьте, что вам нужно на каждом изображении выделить границы каждого объекта.


          В этом посте хочется сделать обзор тех инструментов (коммерческих и бесплатных), которые пытаются облегчить жизнь этих прекрасных людей — разметчиков данных.
          Читать дальше →
          • +18
          • 15.3k
          • 3
        • Создание оффлайнового распознавания лиц с точностью 99,38% на Python и Node.js

          • Translation
          imageЭто мой рассказ о том, как я создавал бесплатное, оффлайновое, работающее в реальном времени open source-приложение, предназначенное для помощи организаторам любых мероприятий в допуске/авторизации только приглашённых людей с помощью технологии распознавания лиц или QR-кода.

          Если не терпится перейти сразу к коду, то вот мой репозиторий.

          Так что да, распознавание лиц — лишь часть приложения, причём самая трудная часть. Так что налейте себе кофе и наслаждайтесь моим рассказом (я старался).
          Читать дальше →
        • Видеоаналитика: распознавание лиц, детектор очередей, поиск объектов на видео


            Тайваньская компания 42Ark и американский производитель «умных» кормушек CatFi Box используют камеры видеонаблюдения для распознавания кошачьего лика

            Немецкий электротехник Вальтер Брух в 1941 году установил CCTV-систему (Сlosed Circuit Television — система телевидения замкнутого контура) на полигоне, где испытывали ракеты «Фау-2». Это первый известный в истории случай использования видеонаблюдения на практике. Оператор должен был неотлучно сидеть перед монитором. Так продолжалось до 1951 года, пока не появились первые VTR (VideoTape Recorder) устройства, записывающие изображение на магнитную ленту.

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

            Колесо прогресса катится дальше. Видеонаблюдение получило видеоаналитку, полностью изменившую процесс работы с системой. Помните историю про кота и нейросеть глубокого обучения? Да, это тоже часть видеоаналитики, но крохотная. Сегодня расскажем о технологиях, которые кардинально меняют мир CCTV-систем.
            Читать дальше →
          • Обучение машины — забавная штука: современное распознавание лиц с глубинным обучением

            • Translation
            Вы заметили, что Фейсбук обрёл сверхъестественную способность распознавать ваших друзей на ваших фотографиях? В старые времена Фейсбук отмечал ваших друзей на фотографиях лишь после того, как вы щёлкали соответствующее изображение и вводили через клавиатуру имя вашего друга. Сейчас после вашей загрузки фотографии Фейсбук отмечает любого для вас, что похоже на волшебство:
            Читать дальше →
          • Оценка качества алгоритмов распознавания лиц

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

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


            Читать дальше →
            • +21
            • 16.9k
            • 2
          • Распознавание лиц человеческим мозгом: 19 фактов, о которых должны знать исследователи компьютерного зрения

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

              Как обычно, предлагаю сокращенный перевод, полный текст доступен в оригинале.

              Читать дальше →
            • Стив Джобс и политика в отношении оборота наркотиков

              • Translation
              Довольно интересно сопоставить всеобщее американское благоговение перед заслугами Стива Джобса и драконовскую политику США в отношении оборота наркотиков, поскольку это довольно противоречивые вещи, из некролога Джобса в NY Times:

              [Джобс] сказал репортёру, что приём ЛСД1 был одной из двух или трёх самых важных вещей в его жизни. Он сказал, что некоторые свойства его личности другие люди, которые не пробовали психоделики — даже близкие люди, как его жена, — никогда не могли понять.

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

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

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

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

                Основные требования и пожелания к партнерским программам можно разделить на несколько определенных элементов поведения самой партнерской программы, а именно:
                1. удобство регистрации
                2. удобство зоны для адвертов
                3. выплаты
                4. статистика
                5. поддержка

                Кто-то из вас отметит еще пару основных категорий критериев для себя.

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

                Читать дальше →
              • Шпаргалка по Redis

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

                Я поставил перед собой цель показать возможности Redis с помощью примеров кода. После публикации приму любые предложения по улучшению материала.

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

                Ключи


                Redis — хранилище данных в формате «ключ-значение». Факты о ключах:
                • Ключи в Redis — бинарно-безопасные (binary safe) строки.
                • Слишком длинные ключи — плохая идея, не только из-за занимаемой памяти, но так же и в связи с увеличением времени поиска определенного ключа в множестве в связи с дорогостоящим сравнением.
                • Хорошая идея — придерживаться схемы при построении ключей: «object-type:id:field».


                Типы данных Redis


                • Строки (strings). Базовый тип данных Redis. Строки в Redis бинарно-безопасны, могут использоваться так же как числа, ограничены размером 512 Мб.
                • Списки (lists). Классические списки строк, упорядоченные в порядке вставки, которая возможна как со стороны головы, так и со стороны хвоста списка. Максимальное количество элементов — 232 — 1.
                • Множества (sets). Множества строк в математическом понимании: не упорядочены, поддерживают операции вставки, проверки вхождения элемента, пересечения и разницы множеств. Максимальное количество элементов — 232 — 1.
                • Хеш-таблицы (hashes). Классические хеш-таблицы или ассоциативные массивы. Максимальное количество пар «ключ-значение» — 232 — 1.
                • Упорядоченные множества (sorted sets). Упорядоченное множество отличается от обычного тем, что его элементы упорядочены по особому параметру «score».

                Про типы данных Redis есть отдельная хорошая статья: «Структуры данных, используемые в Redis».
                Читать дальше →
              • Как и зачем я решил начать собственное дело

                  Салют, Хабр!
                  Недавно я уволился с довольно завидной должности (главного архитектора) в довольно неплохой компании (Acronis) и с непоколебимым решением в мозгу больше не работать по найму переехал из Москвы обратно в Ереван, откуда семь лет назад понаехал в Златоглаво-Нерезиновую. Учитывая необычность произошедшего и часто задаваемый вопрос «но почему?!», я решил разобраться в собственных мыслях и озвучить их вслух для себя самого и тех, кто может почерпнуть в моих размышлениях что-то для себя полезное. Короче говоря, это рассказ о том, почему я оставил высокооплачиваемую перспективную работу в международной компании ради сомнительной перспективы начать собственное дело, и как я собираюсь дальше жить.
                  Читать дальше →
                • Apache Mahout. Метрики для определения схожести пользователей

                  Привет.
                  Читаю книгу Mahout in Action. Столкнулся с эффектом “смотрю в книгу – вижу фигу”. Для его устранения решил конспектировать.


                  Apache Mahout – это библиотека для работы с алгоритмами машинного обучения, которая может быть использована как надстройка к Hadoop или самостоятельно. В библиотеке реализованы методы коллаборативной фильтрации, кластеризации и классификации.

                  Рассматриваем рекомендательную систему на основе коллаборатвной фильтрации. Она может быть пользователе-ориентированной (user-based) или свойство-ориентированной (item-based).
                  Коллаборативная фильтрация — это один из методов построения прогнозов, использующий известные предпочтения (оценки) группы пользователей для прогнозирования неизвестных предпочтений другого пользователя. Его основное допущение состоит в следующем: те, кто одинаково оценивали какие-либо предметы в прошлом, склонны давать похожие оценки другим предметам и в будущем. (из википедии)

                  Одно из основных понятий пользователе-ориентированных рекомендательных систем это метрика для определения схожести пользователей. Предположим что мы имеем данные по просмотрам и оценкам фильмов разными пользователями. Будем сравнивать двух пользователей: X и Y. Они выставили оценки фильмам X(x1, x2, ..., xn) и Y(y1, y2, ..., ym), где n, m – количество оценок поставленных первым и вторым пользователем соответственно. N – количество оценок, которые были поставленны обоими пользователями одним и тем же фильмам (пересечение множеств фильмов посмотренных первым и вторым). Будем считать что (xi, yi) – это пара оценок выставленная пользователями одному фильму.
                  В Mahout реализованы метрики на основании нескольких алгоритмов. Описываю сами алгоритмы, а не их реализации в Mahout.

                  Читать дальше →
                  • +31
                  • 9.4k
                  • 8
                • Grab — python библиотека для парсинга сайтов

                    Лет пять-шесть назад, когда я ещё программировал преимущественно на PHP, я начал использовать библиотеку curl для парсинга сайтов. Мне нужен был инструмент, который позволял эмулировать сессию пользователя на сайте, отсылать заголовки обычного браузера, давать удобный способ отсылки POST-запросов. Сначала я пытался использовать напрямую curl-расширение, но его интерфейс оказался очень неудобным и я написал обёртку с более простым интерфейсом. Время шло, я пересел на python и столкнулся с таким же дубовым API curl-расширения. Пришлось переписать обёртку на python.
                    Читать дальше →
                  • Наберитесь смелости сделать не как все. 12 устаревших интерфейсных и технологических решений

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

                      Подтверждение пароля или email при регистрации


                      Как часто случается, что человек промахивается, и набирает неправильный пароль, когда он внимательно набирает его в первый раз при регистрации? Что случится, если он при регистрации ошибется в пароле? Какие эмоции вы испытываете, когда вас просят ввести подтверждение пароля? Было ли хоть раз, что вы не копировали подтверждение email из первого поля, а набирали его руками?


                      Читать дальше →
                    • Перестройка окна браузера

                        Два месяца назад Хенрик Энерот, дизайнер из шведской веб-студии Antrop, написал замечательный пост — Redesigning the browser window — о том, как должен выглядеть современный браузер.



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

                        Читать дальше →
                      • Год из жизни одного стартапа

                          Mobiety – мобильные опросы


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

                          Сегодня Mobiety – возможность провести опрос в любом российском городе всего за несколько часов. Зарегистрированные пользователи могут:
                          • создать анкету, корректно отображающуюся в браузерах мобильных телефонов, даже если в анкете есть картинки;
                          • загрузить список номеров для отправки SMS со ссылками на анкету или получить ссылку, которая будет отправляться абонентам, оплатившим услуги связи через терминалы QIWI;
                          • перечислять вознаграждение участникам опросов на счёт мобильного телефона сразу после заполнения анкеты;
                          • просматривать результаты опроса в on-line режиме, выгружать данные в Excel, делиться ими в социальных сетях.

                          Благодаря партнерству с сетью терминалов QIWI мы можем точно определять, где именно будет проходить опрос: в радиусе 2 км вокруг торгового центра; на всей улице, где установлены рекламные щиты; в определенном районе города или целиком в области. Ни одна исследовательская компания сегодня не может предоставить подобных услуг.

                          Читать дальше →
                        • История о том, как за год $20.000 превращаются в $2.000.000. Копини год спустя

                            Друзья, вот так, совершенно незаметно для нашей команды прошел год с момента основания Копини. Мы писали идеалистические посты про 600 тыс руб. на запуск, офис и команду, объем рынка и продажи. Многие нам предрекали провал, банкротство и армагедец. Но все оказалось не так уж плохо…



                            Под катом история нашей компании за год, от основания, первых продаж и привлечения бизнес ангела, до закрытия раунда в $500 тыс. от SoftLineVP. Ну и конечно отчет, ошибки и наш опыт.
                            Читать дальше →