Сопоставление выходных данных видения с входными данными нейронной сети

Я новичок в MATLAB, но за последние несколько дней познакомился с Simulink и Computer Vision. Моя постановка проблемы включает в себя получение видеосигнала трафика/шоссе и определение того, произошла ли авария.

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

Чего я не знаю, так это как сопоставить их с ANN. Я имею в виду, что каждое изображение имеет более одной капли транспортного средства, что означает, что в одном кадре / изображении есть несколько центроидов. Итак, как NN воздействует одновременно на несколько входных данных (извлекаемые функции для каждого транспортного средства)? Мне явно не хватает ссылки. Помогите разобраться пожалуйста.

Кроме того, смотрю ли я данные временных рядов?


person multiverse    schedule 19.09.2012    source источник
comment
Не могли бы вы точно описать входные данные? Например, что такое транспортное средство? Это идентификатор транспортного средства, x, y, скорость, направление, размер и т. д.? И вы собираетесь передавать нейронной сети несколько временных шагов назад во времени данных?   -  person    schedule 20.09.2012
comment
Я не уверен, что для этого вам нужна ANN; ИНС была бы хороша, если бы, скажем, вам нужно было сказать, является ли одна капля автомобилем или нет... Тем не менее, вы могли бы использовать данные с течением времени, скорость автомобилей и т. д., и провести анализ данных временных рядов, затем вы будете смотреть для конкретных событий (пик...) во временном ряду. Они могут быть многомерными, так что вы можете собирать несколько данных (скорость, расстояние между автомобилями...) и, таким образом, делать более точные предположения. Будьте осторожны, работая с временными рядами, вам придется уменьшить размерность (PCA...), как только это будет сделано, возможно, ANN подойдет. SVM также хорош для временных рядов.   -  person CTZStef    schedule 20.09.2012
comment
Идея состоит в том, чтобы обнаружить событие, просматривая дисперсию, т.е. дисперсию на каждом временном шаге. Следовательно, Centroid 2 - Centroid 1, Velocity 2 - Velocity 1 и т. д. должны подаваться в качестве входных данных. Таким образом, входные данные в идеале должны представлять собой дисперсию между каждым временным шагом. Можно ли выполнить это с более чем одним транспортным средством на кадр? Потому что тогда я должен проверить дисперсию во всех транспортных средствах. Допустим, у меня есть 3 машины в одном кадре и по 4 функции на машину, так что 4 + 4 + 4 функции нужно отслеживать во времени. Как мы это делаем?   -  person multiverse    schedule 20.09.2012
comment
Если я не ошибаюсь, PCA требует для работы всю матрицу значений, верно? Разве это не сведет на нет всю цель работы в реальном времени?   -  person multiverse    schedule 20.09.2012
comment
Просто используйте все различия между временными шагами для каждой переменной, столько временных шагов, сколько вам нужно, и сделайте их входными данными для вашей ИНС.   -  person    schedule 21.09.2012
comment
Да, но как это сделать в MATLAB? Поставьте отклонения на каждом временном шаге?   -  person multiverse    schedule 21.09.2012


Ответы (1)


Я не совсем уверен в вашем вопросе. Проблема может быть как в данных временных рядов, так и нет. Возможно, вы сможете преобразовать версию проблемы временного ряда, чтобы ее можно было решить с помощью ANN, но это своего рода молоток Маслоу :). Кроме того, не могли бы вы перефразировать проблему.

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

Есть несколько способов, которыми вы можете попытаться решить эту проблему обнаружения несчастных случаев. Например: Создайте классификатор (ANN/SVM и т. д.) для обнаружения несчастных случаев без данных временных рядов. В этом случае вашим вводом будут изображения случайных и неаварийных изображений или какие-то положительные и отрицательные образцы для обучения и более поздние изображения для теста. В этом конкретном случае вы не просматриваете данные временного ряда. Но здесь вам может понадобиться множество функций для обнаружения одного и того же (это в некотором смысле версия проблемы с одним кадром).

Второй метод заключается в использовании данных временных рядов, и в этом случае вам придется обнаруживать особенности, отслеживать их (скажем, с помощью Лукаса Канаде/Хорна и Шунка), а затем использовать информацию о скорости и центроиде для обнаружения аварии. Возможно, вы даже сможете сформулировать его для HMM.

person sumodds    schedule 23.09.2012
comment
Хорошо, попробуем провести аналогию. Моя цель аналогична классификации крабов. Классификация крабов требует определения пола краба путем анализа изображения. Учитываются шесть физических характеристик краба: вид, длина, ширина, глубина и т. д., которые передаются в НС для определения результата. Я сомневаюсь, что что, если у меня есть два краба на одном изображении? Или в моем случае две машины на одном скриншоте/кадре видео. Как предоставить несколько наборов функций для NN/frame? - person multiverse; 25.09.2012
comment
Я понимаю. На самом деле это своего рода проблема курицы и яйца. Но обычно делается вот что. У вас есть детектор и механизм распознавания. Детектор обнаруживает автомобили, крабов и т. д., а механизм распознавания классифицирует пол или тип автомобиля. Таким образом, вам нужно будет сначала получить детектор (либо с помощью классификатора, чтобы классифицировать крабов или не крабов, либо какой-то специальный метод). Вы также можете использовать другую информацию, чтобы упростить обнаружение, например, если я знаю, что машина появится первой в верхнем левом углу, я могу поместить детектор только в верхний левый угол. - person sumodds; 08.10.2012