Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: есть задачи! на чем делать?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
bedrive
Добрый день!
Есть интересная задача, а точнее целый круг задач, основой для которых является
распознование объектов на видеоизображении в реальном времени. Хочется подступиться к этим
задачам с помощью ПЛИС. Кто-нибудь брался за подобное? И какими средствами, есть ли
подходящие для таких задач evolution board у Altera или Xilinx? Может посоветуете
литературу?
К сожалению, пока обпыт работы с ПЛИС ограничивается разработкой простого видеоконтроллера
для небольшого ЖК-монитора на первом Cyclone, поэтому мне трудно сразу оценить сложность
стоящих задач (понятно, что сложно, но насколько). Стоит добавить, что сами алгоритмы
распознования разработаны и работают в качестве программных продуктов на PC. Теперь
хочеться перенести это в "автономное" железо.
Заранее спасибо за любые советы и подсказки.
Evil Archer
Много зависит от алгоритма распознавания, вы используете нейронные сети?
bedrive
Для первоначальной реализации планируется взять алгоритмы без использования нейронных сетей.
koe
А не думали использовать DSP, ведь алгоритмические задачи удобно решать в процессоре.
По поводу Evaluation board - если говорить об Alter-e, то для таких задач, видимо готовые платы не пойдут, тут надо задуматься о довольно мощных FPGA, например, из серий Stratix-ов.
bedrive
Нашел на сайте Xilinx такое предолжение:
Spartan-3E Display Development Kit
На первый взгляд кажется подходящим. Буду изучать подробнее...
_Vladimir_
Цитата(bedrive @ Jan 5 2008, 15:45) *
Добрый день!
Есть интересная задача, а точнее целый круг задач, основой для которых является
распознование объектов на видеоизображении в реальном времени. Хочется подступиться к этим
задачам с помощью ПЛИС. Кто-нибудь брался за подобное? И какими средствами, есть ли
подходящие для таких задач evolution board у Altera или Xilinx? Может посоветуете
литературу?
К сожалению, пока обпыт работы с ПЛИС ограничивается разработкой простого видеоконтроллера
для небольшого ЖК-монитора на первом Cyclone, поэтому мне трудно сразу оценить сложность
стоящих задач (понятно, что сложно, но насколько). Стоит добавить, что сами алгоритмы
распознования разработаны и работают в качестве программных продуктов на PC. Теперь
хочеться перенести это в "автономное" железо.
Заранее спасибо за любые советы и подсказки.

А что Вы подразумеваете под реальным временем в контексте задачи?
Это ведь может быть и интервал между кадрами и просто отрезок времени пока объект можно считать статичным.
Разница ведь может составить не один порядок.
Если Вы знакомы с ПЛИС и модель есть, то может лучше начать с составления
"бюджета требуемых затрат" вычислительной мощности.
Если математика с плавающей зпт, относительно сколько ее? или все удалось свести к целым.
IMHO, наиболее правильно сначала приводить модель максимально близко к языку HDL (verilog/vhdl и т.п.) или точнее к реализации в логике.
Как распараллеливается модель?
Т. е. сколько регионов/пикселов позволяет (или надо) обрабатывать одновременно.

Симуляция даст тестирование и требуемые затраты по быстродействию.
Реализация может вылится далеко не в одну ПЛИС, а группу, работающую параллельно.
evolution board Вам поможет разве что обкатать отдельные модули для оценки фактических выч. затрат

Я так подозреваю что алгоритм не может быть весьма статичным.
У него наверняка есть куча параметров, которые надо изменять в зависимости от условий.
Т. е. наличие в системе процессора для интерфейса с пользователем может оказаться весьма существенным.
Оптимальной может оказаться структура CPU + ПЛИС.
Например, ПЛИС делает черновую первичную обработку - то что хорошо параллелится и минимум плавающей математики.Почти все производители имеют чипы с блоками DSP.
А окончательное решение уже может ложится на процессор.
Здесь важен тип интерфейса CPU - ПЛИС.

Все зависит от математики, возможно она лучше ложится на DSP процессор и Вы на ПЛИС фактически его и реализуете, с большей затратой сил.
Хорошо адаптированная модель - сильно упростит систему.
В общем, чем лучше подготовить модель - тем меньше потом потери.
Что касается выбора ПЛИС - это уже на следующем этапе, когда имеете более конкретные требования к железу.
bedrive
Спасибо, Vladimir, вы направили на путь истинный.
Мы действительно толком не оценили задачу...
Займемся сейчас этим, а после я надеюсь сформулировать вопрос конкретнее
Спасибо большое всем.
oval
Цитата(_Vladimir_ @ Jan 7 2008, 19:09) *
А что Вы подразумеваете под реальным временем в контексте задачи?
Это ведь может быть и интервал между кадрами и просто отрезок времени пока объект можно считать статичным.
Разница ведь может составить не один порядок.
Если Вы знакомы с ПЛИС и модель есть, то может лучше начать с составления
"бюджета требуемых затрат" вычислительной мощности.
Если математика с плавающей зпт, относительно сколько ее? или все удалось свести к целым.
IMHO, наиболее правильно сначала приводить модель максимально близко к языку HDL (verilog/vhdl и т.п.) или точнее к реализации в логике.
Как распараллеливается модель?
Т. е. сколько регионов/пикселов позволяет (или надо) обрабатывать одновременно.

Симуляция даст тестирование и требуемые затраты по быстродействию.
Реализация может вылится далеко не в одну ПЛИС, а группу, работающую параллельно.
evolution board Вам поможет разве что обкатать отдельные модули для оценки фактических выч. затрат

Я так подозреваю что алгоритм не может быть весьма статичным.
У него наверняка есть куча параметров, которые надо изменять в зависимости от условий.
Т. е. наличие в системе процессора для интерфейса с пользователем может оказаться весьма существенным.
Оптимальной может оказаться структура CPU + ПЛИС.
Например, ПЛИС делает черновую первичную обработку - то что хорошо параллелится и минимум плавающей математики.Почти все производители имеют чипы с блоками DSP.
А окончательное решение уже может ложится на процессор.
Здесь важен тип интерфейса CPU - ПЛИС.

Все зависит от математики, возможно она лучше ложится на DSP процессор и Вы на ПЛИС фактически его и реализуете, с большей затратой сил.
Хорошо адаптированная модель - сильно упростит систему.
В общем, чем лучше подготовить модель - тем меньше потом потери.
Что касается выбора ПЛИС - это уже на следующем этапе, когда имеете более конкретные требования к железу.


+1. Очень многое зависит от конкретного алгоритма, который требуется реализовать. Vladimir a14.gif , говорит о правильном подходе, при котором будет результат, все остальное - "пальцем в небо". Зачастую в подобных задачах используется связка CPU (DSP) + ПЛИС, все зависит от алгоритма обработки.
Andrewak
Я бы сперва глянул на алхимию...
http://www.razamicroelectronics.com/products_alchemy/
bedrive
Поглядим, спасибо =)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.