tybik 0 Жалоба Опубликовано October 11, 2010 Добрый день. Я написал программу, точнее дописываю ее. Целью ее есть наблюдение и идентификация лиц с помошью нескольких веб камер на ходящихся в нескольких помещениях. работает она так: Во первых захват изображения построен с помощью Vision Lab. Есть основной таймер,он отсчитывает по 0,5 сек и дает команду на захват изображения с очередной камеры (камеры опрашиваются по очереди) далее кадр передается на распознавание(в vision lab это делает автоматически, без строчки кода). на выходе из распознавания имеем массив из прямоугольников где и определились лица. дальше запускаем цикл по каждому найденному лицу. создаем отдельный поток и отправляем лицо на распознавание.результаты распознавания помещаем в одну таблицу. Что мне здесь не нравиться: бывают пропущенные (не обработанные кадры с камер). тоесть после 1й камеры из за недостатка времени сисема, сама по себе, пропускает 2ю и опрашивает 3ю. и определить дельту в задержках главного таймера, когда сисема и нагружена максимально возможно и кадры не пропускает, не возможно! как бы сделать так чтоб сисема сама себя баласировала. может кто то уже писал подобные системы и поделиться мыслями как программа сможет максимально быстро работать. вот примерная блок схемиаработы прогрраммы: Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано October 11, 2010 Обычно в отдельный поток выделяют самую "тяжёлую" в вычислительном смысле часть. В твоём случае это, вероятно, поиск лица на кадре. Или нет? Если да, то выделить её в отдельный поток, сделать очередь кадров, которые ждут обработки. При получении очередного кадра от камеры просто складывать его в очередь. А поток с поиском лиц пусть её разгребает. Так как компьютеры сейчас многоядерные, то имеет смысл таких "тяжёлых" потоков сделать по числу ядер. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах