Веб-приложение, использующее JavaCV и развернутое на ошибке SAP HANA Cloud Platform

В настоящее время я работаю над веб-приложением для распознавания лиц с использованием JavaCV. Я отправляю снимки живого потока с веб-камеры в браузере клиента через веб-сокеты, а система распознавания лиц делает все остальное на стороне сервера. Однако я получаю следующую ошибку при развертывании моего приложения на HCP.

no jniopencv_core in java.library.path

Я добавил все файлы jar, связанные с javacv/javacpp, в папку lib моего проекта, и это мой pom.xml

<dependency>
  <groupId>org.bytedeco</groupId>
  <artifactId>javacv</artifactId>
  <version>1.1</version>
</dependency>

<dependency>
    <groupId>org.bytedeco.javacpp-presets</groupId>
    <artifactId>opencv</artifactId>
    <version>3.0.0-1.1</version>
</dependency>

<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacpp</artifactId>
    <version>1.1</version>
</dependency>

Любые идеи? Заранее спасибо.


person Victor Oliveira Antonino    schedule 06.05.2016    source источник


Ответы (1)


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

<dependency>
    <groupId>org.bytedeco.javacpp-presets</groupId>
    <artifactId>opencv</artifactId>
    <version>3.0.0-1.1</version>
    <classifier>linux-x86_64</version>
</dependency>
person Samuel Audet    schedule 13.05.2016
comment
Ага. Это уже пробовал. Это частично сработало, потому что появилась новая ошибка: Ошибка OpenCV: неопределенная ошибка (узел не представляет пользовательский объект (неизвестный тип?)) в cvRead, файл src\persistence.cpp, строка 4976 Исключение в потоке main java.lang.RuntimeException : src\persistence.cpp:4976: ошибка: (-2) Узел не представляет пользовательский объект (неизвестный тип?) в функции cvRead в org.bytedeco.javacpp.opencv_core.cvLoad (собственный метод) - person Victor Oliveira Antonino; 13.05.2016
comment
Я провел небольшое исследование (github.com/bytedeco/javacv/issues/246 ) и похоже на ошибку формата haarcascade.xml. Однако не имеет значения версия javacv/opencv, над которой я работаю, или версия haarcascade.xml. При развертывании ошибки чередуются между собой. Кроме того, локально все работает совершенно нормально. - person Victor Oliveira Antonino; 13.05.2016
comment
@VictorOliveiraAntonino Это известная ошибка в OpenCV, возникшая много лет назад. Как указано в файле README.md, просто вызовите Loader.load(opencv_objdetect.class) или любой другой модуль, который вы используете, перед вызовом cvRead(). Если это важно для вас, пожалуйста, сообщите об этом вверх по течению. Им будет все равно, если вы не будете жаловаться! - person Samuel Audet; 14.05.2016