roboforum.ru

Технический форум по робототехнике.

Что можно "выжать" из видеокамеры с помощью МК?

Re: Что можно "выжать" из видеокамеры с помощью МК?

=DeaD= » 10 июл 2008, 16:38

Да, для мобил есть, но там и пикселей не 0.1МПикс, а целых 2-3.2МПикс нынче, да и проц там пошустрее ставится. И штрихкод надо в полкадра наверное навести, иначе фиг его найдет и распознает.

Re: Что можно "выжать" из видеокамеры с помощью МК?

Виталий » 10 июл 2008, 17:40

Можно мини-штрихкод.
На 1 байт например. Т.к. я понимаю их как маяки нужно использовать.

Re: Что можно "выжать" из видеокамеры с помощью МК?

=DeaD= » 10 июл 2008, 17:44

Как искать то на изображении штрих-код?

Тут то его в центр кадра помещают и делают на полкадра размером, тут особо искать не надо, а нам надо.

Re: Что можно "выжать" из видеокамеры с помощью МК?

blindman » 10 июл 2008, 17:44

Да без разницы какой. Хоть 4 бита. Для того чтобы его надежно распознать он должен занимать достаточно места в кадре.

Re: Что можно "выжать" из видеокамеры с помощью МК?

=DeaD= » 10 июл 2008, 18:46

blindman писал(а):Да без разницы какой. Хоть 4 бита. Для того чтобы его надежно распознать он должен занимать достаточно места в кадре.

Что значит "достаточно места" - это сколько? 50% площади изображения? 10% или 5% или 1%?
Или сколько на сколько пикселей он должен быть?

У меня вот так получалось: http://club.roboclub.ru/pmwiki.php?n=CV ... onLocation

Re: Что можно "выжать" из видеокамеры с помощью МК?

blindman » 10 июл 2008, 19:36

DeaD, ну тут исходные другие.

Во-первых, камера не 640х480, а 320х200. Кстати, я сильно сомневаюсь, что с такой камеры можно на AVR получить изображение приемлемого качества. Это с какой частотой ее надо тактировать?

Во-вторых, процессор мягко говоря послабее. У тебя на 1.5 ГГц пентиум получилось 5fps. Чего тогда ожидать от AVR?

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

Точно конечно сказать я не могу, какого размера должна быть метка - это скорее к тебе вопрос, у тебя опыт в этом
деле есть ;) . У тебя на картинке квадраты без учета полей примерно 40х40. Если считать, что у камеры будет угол зрения как у твоей, то на ней при аналогичных условиях они будут 20х20. Делим на 5 - получаем что отдельные квадратики будут 4х4. Можно спомощью твоего алгоритма будет их распознать? Даже если ты их и распознаешь, перенести алгоритм на микроконтроллер ведь не получится.

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

Re: Что можно "выжать" из видеокамеры с помощью МК?

Виталий » 10 июл 2008, 19:43

Будет, но тогда зачем камера, можно IrDa, быстрее получится.

Re: Что можно "выжать" из видеокамеры с помощью МК?

blindman » 10 июл 2008, 19:45

А точность?

Re: Что можно "выжать" из видеокамеры с помощью МК?

EdGull » 10 июл 2008, 19:47

В ирде ты не знаешь от куда оно светит

Re: Что можно "выжать" из видеокамеры с помощью МК?

=DeaD= » 10 июл 2008, 20:14

blindman писал(а):Во-первых, камера не 640х480, а 320х200.

Значит процессор уже можно в 5 раз слабее :) а расстояние до маяков будет не 2 метра максимальное, а 1 метр :) или размеры маяков сделать 20х20см при том же угле обзора.

blindman писал(а):Во-вторых, процессор мягко говоря послабее. У тебя на 1.5 ГГц пентиум получилось 5fps. Чего тогда ожидать от AVR?

Худшего :) но я не оптимизировал много чего, так что может быть и покруче можно сделать, думаю минимум в 2 раза. Итак считаем, у меня 1500МГц, АВР - 16МГц, отличие в 100 раз. но у нас будет в 5 раз меньше изображение, поэтому падение производительности в 20 раз всего. Или 2 секунды на 1 кадр. Однако я знаю, что у меня в алгоритме есть еще одно место, где можно оптимизироваться раза в 2 (у меня есть перебор уровней threshold по 6 значениям, можно не каждый раз все перебирать, а только рядом с теми уровнями, где прошлый раз нашли маяки), итого имеем в 10 раз более медленную обработку, но это 1 кадр в секунду. По моему не так и плохо. Учитывая, что использовать это можно не постоянно, а только для выяснения своих координат, скажем раз в минуту.

blindman писал(а):Чем больше будут элементы маяка, тем легче их распознать, тем "тупее" может быть алгоритм, и тем выше вероятность что он может быть реализован средствами МК.

И тем меньший это имеет смысл, если вы только фотообои из маяков не сделаете.

blindman писал(а):Делим на 5 - получаем что отдельные квадратики будут 4х4. Можно спомощью твоего алгоритма будет их распознать?

Вообще у меня распознаётся маяк типа 30х30 пикселей вроде, меньше не пробовал. Но простор для улучшений теоретически имеется.

blindman писал(а):Даже если ты их и распознаешь, перенести алгоритм на микроконтроллер ведь не получится.

Откуда такая уверенность? Я вот считаю что можно, но геморойно.

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

Была у меня идея на этот счет, даже реализовывал малость :) ща напишу.

Добавлено спустя 39 секунд:
Виталий писал(а):Будет, но тогда зачем камера, можно IrDa, быстрее получится.

Как с помощью IrDA определить координаты точно откуда светит маяк?

Добавлено спустя 10 минут 16 секунд:
Короче идея с источниками света была такая:

Берем камеры с частотой скажем 24 кадра в секунду. Берем ЯРКИЙ маяк, который мигает с частотой 3Гц (т.е. по 1/6 секунды горит/не горит) и обеспечивает близкую к максимальной яркости на снимках с камеры. Дальше снимаем подряд скажем 8 кадров Frame[i], i=0..7 и для каждого j=0..7 ищем жесткие максимумы изображения pict(j)=Frame[(0+j)%8]+Frame[(1+j)%8]+Frame[(2+j)%8]+Frame[(3+j)%8]-Frame[(4+j)%8]-Frame[(5+j)%8]-Frame[(6+j)%8]-Frame[(7+j)%8]

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

Но этот метод имеет серьезное ограничение - его нельзя использовать на ходу. И мигающие маяки будут напрягать наверняка домашних, если юзать дома :)

ЗАТО! Он тривиален в реализации и на АВР легко его можно заделать.

Re: Что можно "выжать" из видеокамеры с помощью МК?

EdGull » 10 июл 2008, 20:21

1. С точки зрения камеры ИК светодиоды светят ярче
2. На маяках ставим ТСОПы и мигаем только тогда когда его попросят

Re: Что можно "выжать" из видеокамеры с помощью МК?

=DeaD= » 10 июл 2008, 20:22

EdGull писал(а):1. С точки зрения камеры ИК светодиоды светят ярче
2. На маяках ставим ТСОПы и мигаем только тогда когда его попросят

Ну вот и нормальненький такой вариант получается для выяснения своих координат :) только вот на месте постоять придётся.
И домашних не будет напрягать.

Re: Что можно "выжать" из видеокамеры с помощью МК?

EdGull » 10 июл 2008, 20:28

и еще в таком варианте на акб полгода жить будет

Добавлено спустя 1 минуту 35 секунд:
а то и год

Re: Что можно "выжать" из видеокамеры с помощью МК?

blindman » 10 июл 2008, 20:38

=DeaD= писал(а):
blindman писал(а):Даже если ты их и распознаешь, перенести алгоритм на микроконтроллер ведь не получится.
Откуда такая уверенность? Я вот считаю что можно, но геморойно.

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

Re: Что можно "выжать" из видеокамеры с помощью МК?

EdGull » 10 июл 2008, 20:44

Возмется Дед!
Потому что больше некому. :pardon: Никто больше в этом вопросе не шарит.
А мы его будем все дружно просить и умолять если он будет самоотвод брать... :D
Если там озу не надо будем меге, то готов запаять и выслать с камерой от самсунга Е700

Добавлено спустя 1 минуту 1 секунду:
Ну и с запаяным маяком естественно.


cron
Rambler\'s Top100 Mail.ru counter