Использование модуля графического процессора OpenCV в JAVA

Я использую обернутую версию библиотеки обработки изображений OpenCV для Java (opencv java api от OpenCv ) для обнаружения номеров автомобилей в режиме реального времени. Где для этого я должен получить максимально возможную скорость обработки для лучшей производительности, поэтому я намеревался попробовать перенести вычисления в GPU, где библиотека OpenCV с 2010 года добавила то, что называется модуль графического процессора OpenCV в c++ library, поддерживаемый NVIDIA-CUDA. Однако после долгих исследований я обнаружил, что этот модуль графического процессора не поддерживается ни в одной из версий opencv java api.

Затем вопрос гласит:

Возможно ли в JAVA перенести процедуры обработки OpenCv на графический процессор без этого модуля графического процессора? или есть ли какая-нибудь обернутая версия для OpenCv, которая поддерживает этот модуль в JAVA? или какие еще идеи?!!

Любая помощь будет оценена по достоинству. Заранее спасибо!!


person HMaster    schedule 27.07.2017    source источник
comment
OpenCV еще не предоставляет тип объекта Mat для графического процессора, но вы можете взглянуть на JavaCV, который является полной оболочкой OpenCV.   -  person Bahramdun Adil    schedule 13.11.2017
comment
Могу ли я запросить обновление по этому поводу? Здесь такая же ситуация... только в 2019 году   -  person Andre    schedule 12.04.2019


Ответы (1)


Скорость и Java - две противоположные стороны, но если вы вообще хотите ускорить работу с помощью CUDA-версии OpenCV, я бы сказал, напишите интерфейс JNI-оболочки для доступа к ним внутри кода Java.

person Milind Deore    schedule 27.07.2017
comment
Спасибо @Milind, извините, но я не согласен с вами на данный момент, java может быть одним из самых быстрых языков высокого уровня, особенно если вы знаете, как использовать его с максимальной производительностью ... Кроме того, я знаю, что могу обернуть моя собственная версия, но это будет мой последний выбор. - person HMaster; 27.07.2017
comment
@HMaster Может ли он быть быстрее, чем C/C++? Более того, нет другого способа вызвать API CUDA, кроме вызовов JNI. - person Milind Deore; 27.07.2017
comment
Еще раз спасибо @Milind, конечно, это не может быть быстрее, чем C/C++, однако это намного продуктивнее. Что касается вызовов JNI, я согласен, что это единственный способ общаться с CUDA или любой другой библиотекой C/C++, но Я ищу уже упакованную версию OpenCV, которая поддерживает графические процессоры, вместо того, чтобы кодировать ее самостоятельно (что я и сделаю, когда не найду других простых вариантов). В любом случае я высоко ценю ваш ответ, спасибо. - person HMaster; 27.07.2017