Pull to refresh

Comments 22

Спасибо за возможность задать вопрос!
Мой вопрос: Каким вы видите будущее компьютерного зрения? Наблюдая за развитием машинного обучения, какие перспективы вы видите?
Спасибо!
Нет ли планов добавить в OpenCV возможность обрабатывать 3D (volumetric) изображения? Работаю с томографическими изображениями размера порядка 4000х4000х4000. Существующие open-source библиотеки для 3D, мягко говоря, бедноваты и медленноваты по сравнению с OpenCV.
Странно почему тут нету вопросов… редко когда выпадает возможность задать вопрос специалистам…
У меня сл.вопрос: видеокамера висит на мосту, под которым идет поток автомобилей. Для видеокамеры установлено отличное освещение, в нормальную погоду ночью можно даже лица водителей рассматривать. Когда же начинается метель, снимки получаются почти белыми (из-за большого количества мелких движущихся объектов, снежинок), можете подсказать как побороть такой «шум»???
Спасибо за ответ.
  1. Какой язык лучше всего подходит для экспериментов с CV? Стоит ли разбираться с Erlang для этого?
  2. Есть ли канонический набор книг или цикл статей, для быстрого старта с техническим зрением? Есть ли с кем пообщаться?
Приветствую! Можно было спросить про конкретные проблемы которые встретились в моей практике 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, как то не хочется. Но и опускать руки тоже. Это же крутая и интересная область чтобы развиваться профессионально, как не смотри).


У меня похожая история — после потери долгосрочного клиента я вышел на Upwork и обнаружил нишу, в которой хотел бы работать: компьютерное зрение. Работы много, она весьма сложная, интересная, а специалистов в этой области мало. Я взял курсы по линейной алгебре и статистики в MIT (очень рекомендую!) и купил несколько книг:

— «Learning OpenCV 3» Adrian Koehler & Gary Bradsky — must have от изначальных авторов OpenCV
— «Computer Vision: Algorithms and Applications» Richard Szeliski — самая плотная компиляция достижений в области, можно скачать бесплатно со страницы автора

Получив начальные знания в области, я стал постепенно брать небольшие задачи на Upwork. На текущий момент это составляет примерно треть моего заработка, скиллы растут, уже есть несколько постоянных клиентов.
Вопрос 1. Не кажется ли вам что вы поддались массовой истерии по поводу нейронных сетей, глубинного обучения?
Вопрос 2. OpenCV превратился в склад алгоритмов из разных областей (выч. геометрия, обработка сигнала, машинленинг,..). А между тем есть более продвинутые библиотеки по той же выч. геометрии (не говоря о нейросетях). Выходит смысл OpenCV только в одном — все зависимости в одном флаконе?
Вопрос 3. Почему так мало готовых решений? Например, если я новичок в CV, и хочу искать черный квадрат на белом фоне, то открыв доку OpenCV я утону в ней. Вместо этого я бы хотел полистать список наиболее типичных и простых задач и выбрать, или скомбинировать. Т.е. в OpenCV практически нет декларативного подхода.
UFO just landed and posted this here
Вопросы:
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 и написания кода создать простейшее устройство: камеру на мотоподвесе с парой осей движения, которая будет висеть на балконе и следить за движением любимой собаки во дворе?

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

Такие задержки при полностью «софтовом» подходе.
Если часть обработки переложить на железо (DSP) задержка должна уменьшиться на порядок. Но это весьма нетривиальная задача для новичка. Хотя казалось бы каждая подзадача совсем простая… И современное железо по скорости позволяет такие задачи решать…
Не работает функция 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 будет развиваться в сторону нейросетей, машинного обучения? Где есть простые примеры для начинающих по машинному обучению? Желательно на русском
Каким алгоритмом лучше искать относительно сложные логотипы на фотографии — например логотипы различных маркировок, где обычно присутствует и текст и рисунки и все вписано в форму?
Пробовал через Haar Cascade — этот алгоритм хорошо ищет цельные куски, а такой сложный многосоставной объект, как логотип, не находит.
Попробовал MatchTemplate — не ищет если происходит минимальное несовпадение — уменьшение, поворот относительно исходной картинки.
Не подскажете, в каком направлении искать?
Можно ли с помощью компьютерного зрения смоделировать аналоги зрения различных билогических организмов, например животных и насекомых и создать приложение дающее возможность увидеть мир глазами других существ?
Если пойти еще дальше, то можно создать множество моделей зрения различных живых существ, пропустить всё это многообразие через нейросеть и создать нечто новое.
Возможен ли синтез, зрения различных биологических систем?
У меня вопросы новичка, которые ставят меня в тупик.

1. Почему нельзя умножить матрицу на вектор (cv::Vec_) в OpenCV, но при этом можно умножить на точку? (cv::Point_)

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

2. Почему до сих пор в OpenCV нет ни одной реализации Hough Transform, которая возвращала бы аккумулятор. Ведь иногда надо найти, скажем, единственный максимум! Разрешат ли держатели проекта добавить новую реализацию, которая возвращала бы аккумулятор?
Про аккумулятор hough transform поддерживаю вопрос. Для более точного определения линий иногда даже нужен rodon transform.
Если это вопрос экспертам, то напишите, пожалуйста, более развернуто.
Пробует ли Intel создавать аппаратные нейросети для обработки изображений и есть ли результаты?
Спасибо всем принявшим участие в нашем проекте! Прием вопросов завершен.
Sign up to leave a comment.