В системах компьютерного зрения и обработки изображений часто возникает задача определения перемещений объектов в трехмерном пространстве с помощью оптического сенсора, то есть видеокамеры. Имея на входе последовательность кадров, необходимо воссоздать запечатленное на них трехмерное пространство и те изменения, которые происходят с ним с течением времени. Звучит сложно, но на практике зачастую достаточно найти смещения двухмерных проекций объектов в плоскости кадра.
Если мы хотим узнать на сколько тот или иной объект объект сместился по отношению к его же положению на предыдущем кадре за то время, которое прошло между фиксацией кадров, то скорее всего в первую очередь мы вспомним про оптический поток (optical flow). Для нахождения оптического потока можно смело воспользоваться готовой протестированной и оптимизированной реализацией одного из алгоритмов, например, из библиотеки OpenCV. При этом, однако, очень невредно разбираться в теории, поэтому я предлагаю всем заинтересованным заглянуть внутрь одного из популярных и хорошо изученных методов. В этой статье нет кода и практических советов, зато есть формулы и некоторое количество математических выводов.
Ptolemy – это среда моделирования параллельных гетерогенных систем, работающих в режиме реального времени. Проект разрабатывается студентами университета Беркли под руководством профессора Эдварда Ли (Edward Lee). В качестве языка разработки используется Java. Ptolemy постоянно развивается. Добавляется поддержка новых моделей вычислений и новые демонстрационные модели, расширяется документация.
Ptolemy позволяет работать с десятком различных моделей вычислений, среди которых есть, например, дискретно временная модель (discrete-event modeling) и конечный автомат (finite-state machine). В основе моделирования лежат понятия Actor и Director, которые можно перевести как «Исполнительное звено» и «Управляющее звено» соответственно. Director задаёт модель вычисления, в которой работает симулируемая система. Множество Actor'ов в сочетании со связями между ними определяют собственно устройство системы. В рамках первой статьи я хочу обратиться к дискретно-временной модели.