VOC релиз 5 demo.m не работает

Я пытаюсь использовать систему Berkeley Matlab для обнаружения и локализации объектов на изображениях. Систему можно найти здесь — http://www.cs.berkeley.edu/~rbg/latent/

Моя система — iMac, Matlab 2014a и XCode 5.1.1.

Я пытаюсь запустить файл demo.m, и вот результат, который я получаю:

компиляция кода... Сборка с помощью Xcode Clang++. Предупреждение: может быть, вам нужно сначала вызвать fv_cache('unlock')?

В fv_compile на 50 В компиляции на 48 В демо на 5 Сборка с помощью «Xcode Clang++». MEX успешно завершен. Сборка с помощью «Xcode Clang++». MEX успешно завершен. Сборка с помощью «Xcode Clang++». /Users/intern/Documents/MATLAB/voc-release5/features/features.cc:28:21: предупреждение: неиспользуемая функция 'max' [-Wunused-function] static inline float max(float x, float y) { return ( х ‹ = у ? у : х); } ^ Создано 1 предупреждение.

MEX успешно завершен. Сборка с помощью «Xcode Clang++». MEX успешно завершен. Сборка с помощью «Xcode Clang++». MEX успешно завершен. Сборка с помощью «Xcode Clang++». MEX успешно завершен. Сборка с помощью «Xcode Clang++». MEX успешно завершен. Ошибка при использовании mex Неизвестный аргумент MEX '-o'.

Ошибка компиляции (строка 64) eval([mexcmd ' gdetect/fconvsse.cc -o fconv']);

Ошибка при компиляции демо (строка 5);

Любая помощь приветствуется, спасибо, Oz Radiano.


person Oz Radiano    schedule 10.06.2014    source источник


Ответы (2)


Я должен признать, что в конечном итоге я использовал Matlab набор инструментов компьютерного зрения, который использует Viola-Jones Haar функции для обнаружения лиц (они утверждают что у них есть другие обученные детекторы, которые вы можете посмотреть, если вам этого мало). Этот набор инструментов удовлетворил мои потребности, и поэтому я оставил исходную проблему нерешенной.

Несмотря на это, я добился некоторого прогресса в работе этого обнаружения, прежде чем двигаться дальше, и вот он:

Я скомпилировал новый компилятор для Matlab, который будет поддерживать OpenMP: Википедия определяет OpenMP следующим образом:

OpenMP — это API, который поддерживает мультиплатформенное многопроцессорное программирование с общей памятью на языках C, C++ и Fortran для большинства архитектур процессоров и операционных систем, включая платформы Solaris, AIX, HP-UX, Linux, Mac OS X и Windows.

Код обучения вызывает несколько файлов кода C для повышения производительности. Проблема в том, что штатный компилятор Matlab (как и для Matlab 2014a) не поддерживает OpenMP, и поэтому необходимо скомпилировать компилятор, поддерживающий OpenMP, и позволить Matlab направить на него. Я установил gcc48 с macports и изменил файл matlab mexopts.sh, чтобы он указывал на новый компилятор.

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

person Oz Radiano    schedule 08.08.2014
comment
vision.CascadeObjectDetector действительно поставляется с несколькими предварительно обученными детекторами: фронтальные лица, лица в профиль, верхняя часть тела, глаза, нос, рот. Вы также можете обучить свой собственный детектор, используя функцию trainCascadeObjectDetector. Также есть vision.PeopleDetector для обнаружения людей. - person Dima; 13.08.2014

eval([mexcmd ' gdetect/fconvsse.cc -o fconv']);

Замените -o на -output, и ваша система будет работать идеально.

person Aly Saphariny    schedule 10.12.2014