Есть ли порт библиотеки dlib для java?

На самом деле я использую OpenCV для распознавания лиц, но после просмотра этого видео: https://www.youtube.com/watch?v=LsK0hzcEyHI, я заметил, что dlib намного больше точен и даже в моих тестах дает много ложных срабатываний (но не пропускает ни одного лица), знает ли кто-нибудь, как использовать dlib в веб-приложении Java (не Android)? Я уже нашел порт для Android, но не думаю, что его можно использовать это с помощью в веб-приложении Java. Спасибо


person hereForLearing    schedule 31.05.2016    source источник


Ответы (2)


Я сам использовал dlib, и да, это очень продвинутая и точная библиотека. Насколько я знаю, порта в Java нет. Но вы всегда можете скомпилировать его в общую библиотеку (.so в Linux или .dll в Windows), а затем использовать это в своем Java-коде.

Подробнее об с использованием dll или используя so в java

Также можно использовать Библиотека C ++ непосредственно в Java, используя прокси. Возможно, вы захотите изучить это.

Изменить: согласно комментарию @evgeniy, большая часть dlib - это шаблоны только для заголовков. Вы не сможете использовать их, если экспортируете dlib напрямую как разделяемую библиотеку. Вместо этого вы, возможно, захотите предоставить все необходимые API, см. здесь

Редактировать 2: Как указал @ davis-king, вы можете изучить использование swig и cmake, как это сделано в mitie / dlib Java api: См. здесь.

person S. Saad    schedule 01.06.2016
comment
это не поможет. большая часть dlib основана на заголовках и не содержится в разделяемой библиотеке - person Evgeniy; 02.06.2016
comment
Поправьте меня, если я ошибаюсь, но я почти уверен, что это не имеет значения, поскольку даже тогда API-интерфейсы, относящиеся к OP, могут быть легко представлены ТОГДА скомпилированы в общую библиотеку. См. stackoverflow.com/questions/7349129/ - person S. Saad; 02.06.2016
comment
да ты прав. единственное, что я пытался сказать, что сам dlib может быть скомпилирован как разделяемая библиотека, но будет невозможно использовать libdlib.so (.dll) как есть в java, потому что все функции обнаружения лиц основаны на шаблонах и делают не существует в libdlib.so. и да, можно создать новую библиотеку с кодом dlib внутри, а затем использовать ее в java - person Evgeniy; 02.06.2016

Если вы ищете Android: https://github.com/tzutalin/dlib-android

В противном случае этот https://github.com/bytedeco/javacpp-presets/issues/49 выглядит наиболее многообещающим, но на данный момент все еще открыт.

person Loc Phan    schedule 02.01.2017