Далеко не все ответы можно найти в Интернет. Особенно если вопрос ваш относится к достаточно узкой или новой области — тут необходима консультация гуру, Владельца Тайного Знания. В традициях блога Intel — проведение блого-семинаров, построенных на вопросах читателей. На эти вопросы отвечают эксперты Intel, принимавшие непосредственное участие в создании технологий и продуктов — кому, как не им знать все детали?

В этом месяце место на трибуне предоставлено создателям библиотеки компьютерного зрения OpenCV (Open Source Computer Vision Library), бывшим сотрудникам компании Itseez, вошедшей в состав Intel — Вадиму Писаревскому и Анатолию Бакшееву. Итак, если у вас назрел вопрос об OpenCV, машинном зрении, распознавании образов и других смежных темах, но вы не знали, кому его задать — приглашаем вас в комментарии и личку. Вопросы принимаются до 24 сентября. Автор лучшего вопроса получит приз от Intel* — набор фирменных принадлежностей для уютного отдыха.
* — Приз доставляется из Москвы в пределах РФ

Под катом — краткая информация о наших экспертах.

Анатолий Бакшеев, руководитель команды Computer Vision for Retail в Intel. Занимается компьютерным зрением и машинным обучением вот уже более 11 лет, в том числе последние несколько лет Deep Learning’ом. Начал свою карьеру в компании Itseez и проработал там более 10 лет до тех пор, пока компания не была приобретена Intel. За это время в его портфолио накопилось множество выполненных проектов, спроектированных и оптимизированных алгоритмов, большое количество кода, выложенного в библиотеку OpenCV, а также ее оптимизация под NVIDIA GPU.

Вадим Писаревский, бессменный руководитель команды OpenCV, начиная с 2000 года.

Закончил ВМК ННГУ, работал в компании Intel, затем в Itseez. Вернулся в Intel для продолжения работы над библиотекой и перевода ее на рельсы Deep Learning. Со-автор нескольких патентов и статей по компьютерному зрению. Периодически выступает с докладами и лекциями по OpenCV в различных университетах и на разных конференциях.

Ждем ваши вопросы экспертам в комментариях к этому посту или личных сообщениях saul до воскресенья, 24 сентября, включительно.

Комментарии (14)


  1. noonv
    18.09.2017 17:04

    Спасибо за возможность задать вопрос!
    Мой вопрос: Каким вы видите будущее компьютерного зрения? Наблюдая за развитием машинного обучения, какие перспективы вы видите?
    Спасибо!


  1. IliaSafonov
    18.09.2017 18:46
    +1

    Нет ли планов добавить в OpenCV возможность обрабатывать 3D (volumetric) изображения? Работаю с томографическими изображениями размера порядка 4000х4000х4000. Существующие open-source библиотеки для 3D, мягко говоря, бедноваты и медленноваты по сравнению с OpenCV.


  1. MaximKucherenko
    18.09.2017 19:08
    +1

    Странно почему тут нету вопросов… редко когда выпадает возможность задать вопрос специалистам…
    У меня сл.вопрос: видеокамера висит на мосту, под которым идет поток автомобилей. Для видеокамеры установлено отличное освещение, в нормальную погоду ночью можно даже лица водителей рассматривать. Когда же начинается метель, снимки получаются почти белыми (из-за большого количества мелких движущихся объектов, снежинок), можете подсказать как побороть такой «шум»???
    Спасибо за ответ.


  1. uzh13
    18.09.2017 19:08

    1. Какой язык лучше всего подходит для экспериментов с CV? Стоит ли разбираться с Erlang для этого?
    2. Есть ли канонический набор книг или цикл статей, для быстрого старта с техническим зрением? Есть ли с кем пообщаться?


  1. ChaikaBogdan
    18.09.2017 19:08
    +1

    Приветствую! Можно было спросить про конкретные проблемы которые встретились в моей практике CV, но есть один, который будет намного полезнее не только мне:

    Как начать свою карьеру в области CV, если ты не имеешь в нем опыта? Где набраться опыта решения реальных задач и стажа в этой области, который так любят HRы?

    Немного TL;DR который является предысторией возникновения вопроса:
    Я отучился в ВУЗе где не было такого направления и, естественно, пошел работать в другую область (программная инженерия, автоматизация). Будь у меня возможность и понимание насколько потенциально круто работать в области CV, я бы поступил на него пусть даже в другой ВУЗ, но увы, я узнал о нем слишком поздно. Переучиваться на второе высшее уже как то не позволительно долго.
    По долгу службы попалась задача детектирование с помощью Python+OpenCV, решил кое-как через template match(благо предметная область позволяла). Было весело, ново и вообще всем понравилось, особенно мне.
    Начал изучать возможность самообучения, прошел курс Introduction to Computer Vision (Udacity-Georgia Tech) и начал практические от PyImageSearch
    Параллельно смотрел вакансии на Upwork и PyImageSearch Jobs, Fiverr и расстраивался, так как знаний явно не хватает для решения реальных задач (например почти везде мешают light/shadow/angle conditions). Не уверен что даже полное прохождения скажем Guru курса от PyImageSearch поможет найти достойную работу, ибо примеры уж очень «идеальные» и редко работают как задумывались в реальных условиях.
    На биржах типа Fiverr, Upwork, PyImageJobs большая конкуренция и требуется выполнение задач очень быстро. А хочется чего-то с небольшим порогом вхождения и взлетной learning-curve. Про удаленную работу вообще молчу. Плюс, везде еще хотят deep/machine learning вдогонку.
    Бросать основную работу ради того что-бы не найти себе работу в CV, как то не хочется. Но и опускать руки тоже. Это же крутая и интересная область чтобы развиваться профессионально, как не смотри).



  1. aslepov78
    19.09.2017 06:41
    +2

    Вопрос 1. Не кажется ли вам что вы поддались массовой истерии по поводу нейронных сетей, глубинного обучения?
    Вопрос 2. OpenCV превратился в склад алгоритмов из разных областей (выч. геометрия, обработка сигнала, машинленинг,..). А между тем есть более продвинутые библиотеки по той же выч. геометрии (не говоря о нейросетях). Выходит смысл OpenCV только в одном — все зависимости в одном флаконе?
    Вопрос 3. Почему так мало готовых решений? Например, если я новичок в CV, и хочу искать черный квадрат на белом фоне, то открыв доку OpenCV я утону в ней. Вместо этого я бы хотел полистать список наиболее типичных и простых задач и выбрать, или скомбинировать. Т.е. в OpenCV практически нет декларативного подхода.


  1. vlasenkofedor
    19.09.2017 11:01

    Расскажите, пожалуйста, об наиболее интересных проектах с оригинальным решением — OpenCV с микрокомпьютерами (raspberry, asus ...)


  1. killla
    19.09.2017 11:03
    +1

    Вопросы:
    1. Есть ли небольшие платы (уровня Raspberry Pi с процессором заточенным под видеообработку OpenCV) с видеокамерой подключенной напрямую к микропроцессору (микроконтроллеру) без всяких посредников в виде USB и его больших задержек?
    Чтобы можно было бы взять его и на коленке быстро сделать устройство для подсчета ворон на грядке, или устройство для слежение за объектом (простейшая обработка изображения + реакция с минимальными задержками на раздражители).

    Крайний раз пытался решать подобную задачу года 4 назад. 1) Все популярные доступные платы разработки не тянули обработку хорошего видео потока быстрее чем 1-2 раза в секунду, задействовать DSP без программирования на низких уровнях было нереально, да и достать контроллер с мощным хорошим документированным DSP и софтом у нему было непросто 2) все камеры во всех примерах цепляются по USB, соответственно на пустом месте огромные задержки + софтовая обработка камеры маломощным основным процессором. На распознавание уже процессорного времени почти не остается.

    2. Есть ли готовые дистрибутивы и софт «из коробки» под такие железки? с которым можно сразу начать работать, не допиливая неделями.

    3. Обобщая вопрос звучит так: можно ли в 2017-2018 году студенту 2-3 курса IT-специальности с базовыми навыками программирования уложившись в 10000р достать железку уровня 2-3 летнего телефона, на которой за 2-4 недели изучения OpenCV и написания кода создать простейшее устройство: камеру на мотоподвесе с парой осей движения, которая будет висеть на балконе и следить за движением любимой собаки во дворе?

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


    1. ser-mk
      20.09.2017 01:55

      пусть и не мне вопрос задавался, но тем не менее
      www.nvidia.com/object/jetson-tk1-embedded-dev-kit.html
      но для студента это если по гос программе получить
      А так вообще удивляет, почему для подсчета ворон или слежением за собакой нужны такие минимальные задержки?! Камеры-радары делают всего 2-3 снимка в секунду и процы там далеко не боллиды.


      1. killla
        20.09.2017 06:35

        Задержки, чтобы успеть среагировать и повернуть камеру в нужную сторону.
        Если объект за секунду может уйти из кадра, а обработка потока и выдача управляющего сигнала занимает 2 секунды — ни о каком слежении речи быть не может.
        Если пол секунды, то следить можно, но объект никогда не будет в центре кадра. Придется пытаться аппроксимировать направление и скорость объекта.

        Такие задержки при полностью «софтовом» подходе.
        Если часть обработки переложить на железо (DSP) задержка должна уменьшиться на порядок. Но это весьма нетривиальная задача для новичка. Хотя казалось бы каждая подзадача совсем простая… И современное железо по скорости позволяет такие задачи решать…


  1. vishnerevsky
    19.09.2017 11:03

    Благодарю за возможность задать вопрос.


  1. almator
    19.09.2017 15:02

    Не работает функция model = cv2.ANN_MLP() на питоне.
    import cv2
    import numpy as np
    import math
    class NeuralNetwork(object):

    def __init__(self):
    self.model = cv2.ANN_MLP()

    def create(self):
    layer_size = np.int32([38400, 32, 4])
    self.model.create(layer_size)
    self.model.load('mlp_xml/mlp.xml')

    def predict(self, samples):
    ret, resp = self.model.predict(samples)
    return resp.argmax(-1)

    model = NeuralNetwork()
    model.create()
    Ошибка AttributeError: 'module' object has no attribute 'ANN_MLP'

    Как OpenCV будет развиваться в сторону нейросетей, машинного обучения? Где есть простые примеры для начинающих по машинному обучению? Желательно на русском


  1. olegfil
    19.09.2017 22:33

    Каким алгоритмом лучше искать относительно сложные логотипы на фотографии — например логотипы различных маркировок, где обычно присутствует и текст и рисунки и все вписано в форму?
    Пробовал через Haar Cascade — этот алгоритм хорошо ищет цельные куски, а такой сложный многосоставной объект, как логотип, не находит.
    Попробовал MatchTemplate — не ищет если происходит минимальное несовпадение — уменьшение, поворот относительно исходной картинки.
    Не подскажете, в каком направлении искать?


  1. WEBMETRICA
    21.09.2017 09:34

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