Перейти к содержимому
Compvision.ru
ninja

OpenCV 2.4 + CUDA

Recommended Posts

Добрый день уважаемые форумчане. Помогите разобраться с проблемой: пытаюсь реализовать алгоритм SURF с использованием CUDA, но появляется непонятная ошибка.

У меня ноутбук ASUS UL80VT видеокарта Geforce G210M 512 мб, OpenCV 2.4, Windows 7 64, Visual Studio 2008. Для сборки использовал Cmake 2.8.8 собралось вроде без проблем. Проект брал из примера стандартный surf_keypoint_matcher_gpu появляется такая ошибка: OpenCV Error: Assertion failed (img_cols - min_size >= 0) in unknown function, file ..\..\opencv\opencv\modules\gpu\src\surf.cpp, line 129

Кусочек кода:

	

GpuMat img1, img2;

img1.upload(imread(object_filename,CV_LOAD_IMAGE_GRAYSCALE));

img2.upload(imread(scene_filename,CV_LOAD_IMAGE_GRAYSCALE));


cv::gpu::printShortCudaDeviceInfo(cv::gpu::getDevice());


SURF_GPU surf;


GpuMat keypoints1GPU, keypoints2GPU;

GpuMat descriptors1GPU, descriptors2GPU;


surf(img1, GpuMat(), keypoints1GPU, descriptors1GPU);

surf(img2, GpuMat(), keypoints2GPU, descriptors2GPU);

ошибка появляется на строчке: surf(img1, GpuMat(), keypoints1GPU, descriptors1GPU);

Помогите пожалуйста разобраться, уже 3й день мучаюсь....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А экзешник из примеров работает?

Может изображения не грузит? Выведите их в окошки.

Через пару часов дострою OpenCV и проверю работает-ли у меня.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Запускаю примеры, вроде работают отлично... и hog_gpu работает и surf_keypoint_matcher_gpu.exe тоже, когда вставляю код из примера в visual studio ничего не меняя, компилирую, запускаю откомпилированный пример появляется эта ошибка... собирал версию Release, причем несколько раз... немогу понять что не так...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вроде не пустые, ниже скриншоты, дело в том что я беру стандартный пример и его копирую в новый пустой проект, компиляция проходит успешно, но вот когда запускаю появляется ошибка о которой писал выше... никак не пойму что не так, думал уже драйвера старые, но нет самые последние и примеры все работают... уже несколько раз пересобирал проекты, единственное на что я думаю, но сомневаюсь, это то, что когда собирался проект в visual studio 3 раза появлялось окошко содержимое точно не помню, нажать - да перезапуск, нет или отмена, я всегда нажимал отмена... потом появлялось окно и я нажимал перезапуск... но весь проект собрался без единой ошибки...

post-1763-0-73678400-1337700457_thumb.pn

post-1763-0-26421000-1337700470_thumb.pn

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня все пашет, проект генерю своей чудной генерилкой проектов :)

Кидаете в любую директорию, и CMAKE-ом генерите проект.

ЗЫ: Когда собирал OpenCV со всем соглашался :)

OpenCV_GPU_SURF.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо большущее что помогаете, сгенерировал cmake'om, запустил ALL_BUILD открылась visual studio, нажал построение, и сразу появились ошибки: скриншот ниже...

post-1763-0-99269000-1337702140_thumb.pn

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это сверху есть?

#include "opencv2/core/core.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/gpu/gpu.hpp"

using namespace std;
using namespace cv;
using namespace cv::gpu;[/code]

Я просто скопировал файл из примеров и сгенерировал по нему проект, все собралось с первого раза.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня BF_Matcher объявлен в gpu.hpp (1222 строка)

////////////////////////////////// BruteForceMatcher //////////////////////////////////

class CV_EXPORTS BFMatcher_GPU
{
public:
explicit BFMatcher_GPU(int norm = cv::NORM_L2);
[/code]

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, сегодня построил из SVN.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а можете если не трудно описать пошагово процесс установки из SVN? какие утилиты нужны и т.д.

я делал следующим образом:

1 скачал файл http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.0/ - openCV2.4.exe

2 затем распаковал

3 сгенерировал cmake'om

4 собрал visual studio

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Первая страница из pdf-ки из этой темы:

http://www.compvision.ru/forum/index.php?showtopic=456

только адрес репозитория у них поменялся, теперь такой: http://code.opencv.org/svn/opencv

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

спасибо большое, сейчас буду пробывать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
когда собирался проект в visual studio 3 раза появлялось окошко содержимое точно не помню, нажать - да перезапуск, нет или отмена, я всегда нажимал отмена...

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый вечер, возник такой вопрос, дело в том что я впервые столкнулся с CUDA и не могу понять некоторые вещи:

у меня ноутбук ASUS UL80VT видеокарты там 2: Intel GMA и Nvidia Geforce G210M драйвера стоят на обе видеокарты и все отлично работает, не зная что нужно чтобы работать с CUDA скачал все с сайта http://developer.nvidia.com/cuda-downloads Toolkit, драйвера и SDK, и установил, после этого перестали переключаться видеокарты, но проект с OpenCV собрался без проблем, но работал как-то через раз, пришлось установить стандартные драйвера с диска. Подскажите пожалуйста, что нужно для того чтобы собрать проект OpenCV с поддержкой CUDA? Может нужно установить toolkit версии пораньше? http://developer.nvidia.com/cuda-toolkit-archive и нужно ли обновить драйвер видеокарты? у меня стоит версии 186, на сайте nvidia последний версии 301, мою видеокарту он поддерживает, но технологию Hyprid Power нет, драйверы пораньше из архива тоже не поддерживают Hyprid Power. Помогите пожалуйста разобраться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Лучше скачивать Toolkit, Driver и SDK, которые идут вместе в пакете, иначе будут всякие глюки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×