Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
Loks
0 / 0 / 0
Регистрация: 06.07.2014
Сообщений: 14
#1

Большая загрузка при распознавании лиц с камеры - C++

08.07.2014, 15:40. Просмотров 650. Ответов 3
Метки нет (Все метки)

Всем привет. почти закончил писать программу и столкнулся с такой проблемой.
Есть кусок когда, который отвечает за распоознование лиц с камеры
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void Faces(IplImage* frame1)
{
    CascadeClassifier face_cascade("/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml");
    Mat frame = frame1;
 
    Mat frame_gray;
    cvtColor(frame,frame_gray,CV_BGR2GRAY);
 
    std::vector<Rect> faces;
    face_cascade.detectMultiScale( frame_gray, faces, 1.05, 3, 0|CV_HAAR_SCALE_IMAGE, Size(30, 90) );
 
    for ( size_t i=0; i<faces.size(); i++ )
        rectangle( frame, faces[i], Scalar( 255, 0, 255 ), 2 );
 
    imshow("Faces",frame);
 
}
Вот эта функция
C++
1
2
3
4
5
6
7
8
void CascadeClassifier::detectMultiScale(
    const Mat& image, 
    vector<Rect>& objects, 
    double scaleFactor=1.1,
    int minNeighbors=3, 
    int flags=0, 
    Size minSize=Size(),
    Size maxSize=Size() )
Очень сильно тормозит воспроизведение видеопотока. а конкретно виноват параметр "Size maxSize=Size()". Чем больше максимальное значение, тем меньше нагрузка, но соответственно хуже ищет лица. Оптимальное значение для поиска Size(30, 30), но тогда получается какое-то слайд-шоу.
И вопрос такое, можно как нибудь выделить больше памяти или освободить память, что бы увеличить быстродействие?
Так как в будущем в придется обрабатывать массивы информации, то проблема достаточно актуальна.
Заранее спасибо!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2014, 15:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Большая загрузка при распознавании лиц с камеры (C++):

Черный экран при снимке с веб камеры - C++ Builder
Всем привет. Надыбал такой код и поставил на кнопку: hWndC=capCreateCaptureWindow(&quot;&quot;,WS_CHILD, this-&gt;Left, this-&gt;Top, this-&gt;Width,...

Большая погрешность при подсчете интеграла методом трапеций - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; double f(double arg) { double fu = cos(arg); return fu; ...

Большая загрузка ЦП при загрузке объекта. - C++/CLI
Столкнулся с проблемой - при загрузке объекта Mesh загрузка ЦП повышается примерно до 50. После загрузки объекта видимо надо очищать...

При просмотре видео большая загрузка ЦП - Windows XP
при просмотре видео большая загрузка ЦП не когда такого не было, а тут вдруг на тебе! Как это исправить?Заранее спасибо!

Большая загрузка цп при выполнении. Что может быть причиной? - Perl
Здравствуйте. И снова такой теоретический вопрос. Есть прога - демон, работает себе постоянно, парсит сайты , собирает базу. Средняя...

Большая загрузка ЦП - Удаление вирусов
Добрый вечер. Большая загрузка ЦП. Примерно 80% на постоянке. Если можно, то как можно скорее возьмитесь за лечение, пожалуйста. Нужно...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
stima
473 / 322 / 30
Регистрация: 22.03.2011
Сообщений: 1,046
Завершенные тесты: 2
08.07.2014, 16:24 #2
Познать дзен будизм и засеть за книги по gpu, multithreading, algorithm and optimization. И когда наступит просветление, и только и тогда, приступить к кодированию. И это без шуток.
0
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
08.07.2014, 17:02 #3
Цитата Сообщение от Loks Посмотреть сообщение
И вопрос такое, можно как нибудь выделить больше памяти или освободить память, что бы увеличить быстродействие?
Можно не обрабатывать каждый кадр. А в целом - присоединяюсь к предыдущему совету.
0
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
19.07.2014, 18:51 #4
у вас не очень сильная конфигурация машины? каскады Хаара по идее не должны занимать много времени и в реал тайме лично у меня всегда отрабатывали.
а по сабжу:
совет номер 1: промасштабируй изображение перед обработкой, например в 1.5 раза вниз.
совет номер 2: возьми (найди в интернете или натренируй) более простой каскад, в котором будет меньше уровней чем в стандартном который ты используешь, он будет отрабатывать быстрее
совет номер 3: используй LBP-классификатор, он на данный момент один из наиболее производительно нетребовательных. (по-моему для лиц должен быть стандартный - проверь)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.07.2014, 18:51
Привет! Вот еще темы с ответами:

большая загрузка цп - Процессоры
здравствуйте, есть проблема - на ноутбуке hp elitebook 2540p загрузка проца 70+%, причем подавляющую часть (80+%) занимает &quot;бездействие...

DirectX 9 (с++)- большая загрузка ЦП - DirectX
Привет всем. Создал простое приложение на DirectX 9, и не пойму почему такая большая загрузка ЦП (50!!!). Приложение просто...

Большая загрузка процессора - Удаление вирусов
Сегодня, после запуска ПК обнаружил, что он сильно виснет, открыл диспетчер задач и увидел, что загрузка ЦП 80-100% Пробывал запускать...

Большая загрузка ЦП от 60 до 100% - Процессоры
Переустановил свеженькую WIndows 7, попользовался недельку и началась сильная загрузка цп. часто 90-100% на рабочем столе без запуска любых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.07.2014, 18:51
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru