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 будут давать мощные максимумы.
Но этот метод имеет серьезное ограничение - его нельзя использовать на ходу. И мигающие маяки будут напрягать наверняка домашних, если юзать дома
ЗАТО! Он тривиален в реализации и на АВР легко его можно заделать.