Jump to content
Compvision.ru
Wade

Зависает веб камера при долгой работе с OpenCv

Recommended Posts

Добрый вечер. 

У меня проблема с opencv+linux+logitech c920

Имеется софт, который работает с вебкамерой. Камера постоянна включена( logitech920) Программа на Qt, операционка Ubuntu 14.04, opencv 3.0

Программа показывает постоянно изображение и может применять фильтр opengl к получившейся картинке.

И я столкнулся с такой проблемой - при долгой работе или при перезагрузке после работы - камера пропадает из системы.

Т.е. работает программа, показывает картинку, перезагружаем, бывает показывает, а бывает нет. Либо просто долго работает, и зависает

В lsusb камеры нет. 

Помогает только либо выдергивание камеры из юсб, либо выключение компьютера и отрубание питания.

Работает в режиме 1280 на 720

Появляется в основном на клиентских терминалах - там стоят матплаты на свежем чипсете h81.
У меня на машине разработчика более старая мать и таких проблем я не наблюдал, пока не попало в боевой режим клиентам
Пробывал уже разные варианты и usb2 и usb3. И плату расширения usb3 с отдельным питанием. 
Итог один и тот же - камера отваливается наглухо либо после перезагрузки рандомно, либо после длительной работы.

Может быть кто сталкивался? В какую сторону копать? 
Поможет ли умешение разрешения до 640 на 480, например?
Какие еще возможны варианты?

ПС камер и терминалов попробовал штук 20 - везде такие симптомы

Заранее спасибо

Share this post


Link to post
Share on other sites

У меня 920 логитеки работают прекрасно, и по одиночке и в паре, и в Win и в Ubuntu (сейчас 14.04, но и до этого проблем не было).

На материнке есть UBS 3.0 (на чипсете Etron), так вот с ними почти все глючит.

Поэтому покупал отдельную плату расширения на чипсете NEC Renesas (на самом деле для кинекта).

С родными USB 2.0 и с NEC Renessas никогда никаких проблем не было.

Насколько я понимаю, их родной режим 640х480, остальное цифровой зум, да они у меня и включаются все время в 640х480, по умолчанию.

Edited by Smorodov

Share this post


Link to post
Share on other sites

У меня 920 логитеки работают прекрасно, и по одиночке и в паре, и в Win и в Ubuntu (сейчас 14.04, но и до этого проблем не было).

В паре вы стереокамеру из них собирали? А как синхронизировали? Ведь по USB задержки офигенные получаются, вплоть до 100+ms...

Share this post


Link to post
Share on other sites

Нет стерео на них не делал, я проект панорамного видео из трех камер делал, для того и покупал.

Там задержки на глаз не видны были.

Edited by Smorodov

Share this post


Link to post
Share on other sites

Нет стерео на них не делал, я проект панорамного видео из трех камер делал, для того и покупал.

Там задержки на глаз не видны были.

И какие результаты проекта, если не секрет? Демо-видео случаем нету? В реалтайм панораме тоже проблемы с синхронизацией видео остро встают, особенно если склеивать что-то аутдорное.

Share this post


Link to post
Share on other sites

Друзья, с моим вопросом может кто-нибудь что подсказать?)

Я уже поставил и на отдельную pci-express usb плату espada. Результат тот же самый. Перезагрузки не выдерживает(((

Share this post


Link to post
Share on other sites

И какие результаты проекта, если не секрет? Демо-видео случаем нету? В реалтайм панораме тоже проблемы с синхронизацией видео остро встают, особенно если склеивать что-то аутдорное.

Нашел один скрин, прикрепил, примерно так и работало, в реалтайме, никаких тормозов не наблюдал. Проект под VS + Qt, лень собирать.

Шов видно, но это из за не отключенной авто-экспозиции камер.

result.jpg

Друзья, с моим вопросом может кто-нибудь что подсказать?)

Я уже поставил и на отдельную pci-express usb плату espada. Результат тот же самый. Перезагрузки не выдерживает(((

Может код приведете, а то так не достаточно информации.

Например со скайп такие проблемы есть ?

Edited by Smorodov

Share this post


Link to post
Share on other sites

Может код приведете, а то так не достаточно информации.

Например со скайп такие проблемы есть ?

void FrameShow::run()
{
 
 
 
    bool open = cap.open(-1);
 
 
    if ((cap.isOpened())&&(open))
    {
 
        cap.set(cv::CAP_PROP_FRAME_WIDTH,1280);
        cap.set(cv::CAP_PROP_FRAME_HEIGHT,720);
 
        qDebug()<<cap.get(cv::CAP_PROP_FRAME_WIDTH);
        qDebug()<<cap.get(cv::CAP_PROP_FRAME_HEIGHT);
 
 
 
        for(;;)
        {
            cap >> img;
            //cv::cvtColor(img,gray,cv::COLOR_RGB2GRAY);
 
            //perspMat = cv::getPerspectiveTransform(p[0],p[1]);
 
            QImage res = QImage((const unsigned char*)(img.data),img.cols,img.rows,img.step,QImage::Format_RGB888);
            emit newImage(res);
        }
    }
 
}

Открывается камера и постоянно идет вызов передается картинка в слот

Share this post


Link to post
Share on other sites

Нашел один скрин, прикрепил, примерно так и работало, в реалтайме, никаких тормозов не наблюдал. Проект под VS + Qt, лень собирать.

Шов видно, но это из за не отключенной авто-экспозиции камер.

Любопытно. А эффект паралакса у вас не наблюдался при сшивке с трех камер? Или камеры были близко друг к другу? FOV я так понимаю в районе 100-110 градусов?
Ну и насчет динамических швов тоже инетересно: насколько стабильно находились правильные швы? А то я по моему еще не встречал ни одного алгоритма с художественными швами, которые бы стабильно правильно находились)

Share this post


Link to post
Share on other sites
Edited by Smorodov

Share this post


Link to post
Share on other sites

Wade А если без Qt, те же проблемы ?

Есть большое подозрение на утечку памяти или проблемы с потоками.

А куда именно копать? Камеру можно завесить каким то рандомным набором байт?
Просто по утечки - камера не работает сразу после перезагрузки - там и память то не кушается.

Такое ощущение, что при внезапном завершении  программы зависает камера. 
Причем это случается на свежих процессорах  intel g3250,а на моем core i7 или на соседнем старом пентиуме такого нет
Толи уменьшить скорость обработки кадров, то ли как то завершать работу с камерой?

Share this post


Link to post
Share on other sites

У меня тоже core-i7, и тоже нет проблем.

Может быть проблемы с новыми чипсетами/драйверами.

Попробуйте стандартные программы, работающие с камерами, видеоредакторы, скайп, программу идущую вместе с камерой ...

Если и с ними то же самое, то точно проблема в системе, а не в программе.

Edited by Smorodov

Share this post


Link to post
Share on other sites

Топикстартер, а логи кто выкладывать будет?

dmesg, cat /var/log/syslog ?

Что пишет в момент слетания камеры. Пришли бы на ночь поставили, и смотрели по удаленке.

У меня похожая Logitech снимала в 1280 круглосуточно в паре с ZoneMinder на openSUSE 11.4, если память не изменяет. "Ни единого разрыва". Может ядро хреновое, поставьте постарее. В убунтах оно через раз. То сеть отвалится, то ещё какая железяка на ноуте. Хотя вроде 14.04, стабильный релиз... Поэтому без нужды его вообще не обновляю.
 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×