antecedentes
Las instalaciones anteriores de LitmusRT, pgmRT, etc.están preparadas para el experimento aquí, por lo que la condición previa es que se hayan compilado e instalado litmusRT y pgmRT, y el kernel del sistema actual es litmusRT
descargar
Clona el código fuente en un directorio
root@ubuntu:/home/szc/cpu-gpu/openvx# git clone https://github.com/Yougmark/opencv.git hog
Configuración
Ingrese al directorio y modifique CMakeLists.txt
root@ubuntu:/home/szc/cpu-gpu/openvx# cd hog
root@ubuntu:/home/szc/cpu-gpu/openvx/hog# vim CMakeLists.txt
La modificación es la siguiente, cambie los directorios de liblitmus y pgm a los suyos.
set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} pgm boost_graph boost_filesystem boost_system)# litmus)
ocv_include_directories("/home/szc/litmus/liblitmus/include")
ocv_include_directories("/home/szc/litmus/liblitmus/arch/x86/include")
ocv_include_directories("/home/szc/litmus/liblitmus/arch/x86/include/uapi")
ocv_include_directories("/home/szc/litmus/liblitmus/arch/x86/include/generated/uapi")
link_directories("/home/szc/cpu-gpu/openvx/pgm/")
link_directories("/home/szc/litmus/liblitmus/")
Si necesita depurar con gdb, también debe agregar C_FLAGS y CXX_FLAGS encima de este archivo (mire la primera línea)
set(CMAKE_C_FLAGS "-g ")
set(CMAKE_CXX_FLAGS "-g ")
Compilar
Cree e ingrese al directorio de compilación, genere Makefile
root@ubuntu:/home/szc/cpu-gpu/openvx/hog# mkdir build && cd build
root@ubuntu:/home/szc/cpu-gpu/openvx/hog/build/bin# cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_CUDA=ON -D BUILD_EXAMPLES=Yes -D ENABLE_CXX11=Yes -D BUILD_opencv_cudacodec=OFF ..
Compilar cerdo
root@ubuntu:/home/szc/cpu-gpu/openvx/hog/build# make -j6
prueba
prueba
Descargue el video de prueba https://github.com/opencv/opencv_extra/blob/master/testdata/gpu/video/768x576.avi , colóquelo en el directorio de datos debajo del directorio de compilación y luego ejecute bin / example_tapi_hog
root@ubuntu:/home/szc/cpu-gpu/openvx/hog/build/bin# ./example_tapi_hog
Este es un ejemplo de detección de peatones, la captura de pantalla en ejecución es la siguiente
Conclusión
Incluso si el experimento se ejecuta aquí, podemos depurar el código interno, principalmente samples / gpu / hog.cpp, que es la parte correspondiente del documento experimental. Si tiene un buzón de estudiante, puede usar Clion.
Al depurar y analizar el código hog, descubrí que usa muchas API cuda (código cerrado, el seguimiento de la fuente puede terminar aquí), porque este experimento se basa en el experimento de programación heterogénea CPU-GPU de OpenVX, entonces debes estar familiarizado con Los documentos oficiales de CUDA son principalmente guías de programación y mejores prácticas.