Выбор структуры обусловлен классом системы распознавания образов (СРО) реального времени (РВ). Если предполагается строить гибкую систему РВ без обратной связи, то достаточно использовать один программный процесс и один поток, в котором в цикле будут формироваться данные (например, с видеокамеры) и передаваться на процедуру распознавания. Однако такой подход не исключает ситуации, когда программа зависнет или аварийно завершится, что неприемлемо в полностью автоматизированных системах.
В работе [1] была предложена структурная схема программной СРО РВ. Система должна состоять из отдельных модулей, каждый из которых может быть оформлен в виде процессов, потоков или библиотечных функций.
Программные системы РВ реализуются на соответствующих операционных системах, например, QNX Neutrino, Windows CE, или на обычных операционных системах (Windows, Linux) с расширениями РВ. Особенностью подобных операционных систем является поддержка вытеснения потоков, что позволяет полностью вытеснять потоки с меньшим приоритетом при поступлении более важных потоков. Наиболее высшим приоритетом должен обладать модуль контроля, поскольку он обладает правом принудительно завершать работу модулей распознавания. В качестве примера построения структуры была разработана программная имитационная модель, работающая на обычной версии Windows XP. Поскольку наиболее подвержены ошибкам и зависаниям модули распознавания, то они реализовывались в виде отдельных процессов, а модули управления, контроля и сбора и обработки данных – в виде отдельных потоков главного процесса модели (для удобства обмена данными внутри одного адресного пространства). Для взаимодействия потоков и процессов использовались мьютексы, являющиеся наиболее простым и эффективным механизмом синхронизации.
(
Читать дальше
)