Commit a40427bc authored by Sikhin VC's avatar Sikhin VC

yolov5 multiprocessing

parent aea2a8b0
cmake_minimum_required(VERSION 2.6)
project(yolov5)
add_definitions(-std=c++11)
add_definitions(-DAPI_EXPORTS)
option(CUDA_USE_STATIC_CUDA_RUNTIME OFF)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_BUILD_TYPE Debug)
find_package(CUDA REQUIRED)
if(WIN32)
enable_language(CUDA)
endif(WIN32)
include_directories(${PROJECT_SOURCE_DIR}/include)
# include and link dirs of cuda and tensorrt, you need adapt them if yours are different
# cuda
include_directories(/usr/local/cuda/include)
link_directories(/usr/local/cuda/lib64)
# tensorrt
include_directories(/usr/include/x86_64-linux-gnu/)
link_directories(/usr/lib/x86_64-linux-gnu/)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Ofast -g -Wfatal-errors -D_MWAITXINTRIN_H_INCLUDED")
cuda_add_library(myplugins SHARED yololayer.cu)
target_link_libraries(myplugins nvinfer cudart)
find_package(OpenCV)
include_directories(${OpenCV_INCLUDE_DIRS})
cuda_add_executable(yolov5 calibrator.cpp yolov5.cpp preprocess.cu)
target_link_libraries(yolov5 nvinfer)
target_link_libraries(yolov5 cudart)
target_link_libraries(yolov5 myplugins)
target_link_libraries(yolov5 ${OpenCV_LIBS})
add_executable(yolov5-cls calibrator.cpp yolov5_cls.cpp)
target_link_libraries(yolov5-cls nvinfer)
target_link_libraries(yolov5-cls cudart)
target_link_libraries(yolov5-cls myplugins)
target_link_libraries(yolov5-cls ${OpenCV_LIBS})
if(UNIX)
add_definitions(-O2 -pthread)
endif(UNIX)
# yolov5
The Pytorch implementation is [ultralytics/yolov5](https://github.com/ultralytics/yolov5).
## Different versions of yolov5
Currently, we support yolov5 v1.0, v2.0, v3.0, v3.1, v4.0, v5.0, v6.0, v6.2.
- For yolov5 v6.2, download .pt from [yolov5 release v6.2](https://github.com/ultralytics/yolov5/releases/tag/v6.2), `git clone -b v6.2 https://github.com/ultralytics/yolov5.git` and `git clone -b yolov5-v6.2 https://github.com/wang-xinyu/tensorrtx.git`, then follow how-to-run in current page.
- For yolov5 v6.0, download .pt from [yolov5 release v6.0](https://github.com/ultralytics/yolov5/releases/tag/v6.0), `git clone -b v6.0 https://github.com/ultralytics/yolov5.git` and `git clone -b yolov5-v6.0 https://github.com/wang-xinyu/tensorrtx.git`, then follow how-to-run in [tensorrtx/yolov5-v6.0](https://github.com/wang-xinyu/tensorrtx/tree/yolov5-v6.0/yolov5).
- For yolov5 v5.0, download .pt from [yolov5 release v5.0](https://github.com/ultralytics/yolov5/releases/tag/v5.0), `git clone -b v5.0 https://github.com/ultralytics/yolov5.git` and `git clone -b yolov5-v5.0 https://github.com/wang-xinyu/tensorrtx.git`, then follow how-to-run in [tensorrtx/yolov5-v5.0](https://github.com/wang-xinyu/tensorrtx/tree/yolov5-v5.0/yolov5).
- For yolov5 v4.0, download .pt from [yolov5 release v4.0](https://github.com/ultralytics/yolov5/releases/tag/v4.0), `git clone -b v4.0 https://github.com/ultralytics/yolov5.git` and `git clone -b yolov5-v4.0 https://github.com/wang-xinyu/tensorrtx.git`, then follow how-to-run in [tensorrtx/yolov5-v4.0](https://github.com/wang-xinyu/tensorrtx/tree/yolov5-v4.0/yolov5).
- For yolov5 v3.1, download .pt from [yolov5 release v3.1](https://github.com/ultralytics/yolov5/releases/tag/v3.1), `git clone -b v3.1 https://github.com/ultralytics/yolov5.git` and `git clone -b yolov5-v3.1 https://github.com/wang-xinyu/tensorrtx.git`, then follow how-to-run in [tensorrtx/yolov5-v3.1](https://github.com/wang-xinyu/tensorrtx/tree/yolov5-v3.1/yolov5).
- For yolov5 v3.0, download .pt from [yolov5 release v3.0](https://github.com/ultralytics/yolov5/releases/tag/v3.0), `git clone -b v3.0 https://github.com/ultralytics/yolov5.git` and `git clone -b yolov5-v3.0 https://github.com/wang-xinyu/tensorrtx.git`, then follow how-to-run in [tensorrtx/yolov5-v3.0](https://github.com/wang-xinyu/tensorrtx/tree/yolov5-v3.0/yolov5).
- For yolov5 v2.0, download .pt from [yolov5 release v2.0](https://github.com/ultralytics/yolov5/releases/tag/v2.0), `git clone -b v2.0 https://github.com/ultralytics/yolov5.git` and `git clone -b yolov5-v2.0 https://github.com/wang-xinyu/tensorrtx.git`, then follow how-to-run in [tensorrtx/yolov5-v2.0](https://github.com/wang-xinyu/tensorrtx/tree/yolov5-v2.0/yolov5).
- For yolov5 v1.0, download .pt from [yolov5 release v1.0](https://github.com/ultralytics/yolov5/releases/tag/v1.0), `git clone -b v1.0 https://github.com/ultralytics/yolov5.git` and `git clone -b yolov5-v1.0 https://github.com/wang-xinyu/tensorrtx.git`, then follow how-to-run in [tensorrtx/yolov5-v1.0](https://github.com/wang-xinyu/tensorrtx/tree/yolov5-v1.0/yolov5).
## Config
- Choose the model n/s/m/l/x/n6/s6/m6/l6/x6 from command line arguments.
- Input shape defined in yololayer.h
- Number of classes defined in yololayer.h, **DO NOT FORGET TO ADAPT THIS, If using your own model**
- INT8/FP16/FP32 can be selected by the macro in yolov5.cpp, **INT8 need more steps, pls follow `How to Run` first and then go the `INT8 Quantization` below**
- GPU id can be selected by the macro in yolov5.cpp
- NMS thresh in yolov5.cpp
- BBox confidence thresh in yolov5.cpp
- Batch size in yolov5.cpp
## How to Run, yolov5s as example
1. generate .wts from pytorch with .pt, or download .wts from model zoo
```
// clone code according to above #Different versions of yolov5
// download https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5s.pt
cp {tensorrtx}/yolov5/gen_wts.py {ultralytics}/yolov5
cd {ultralytics}/yolov5
python gen_wts.py -w yolov5s.pt -o yolov5s.wts
// a file 'yolov5s.wts' will be generated.
```
2. build tensorrtx/yolov5 and run
```
cd {tensorrtx}/yolov5/
// update CLASS_NUM in yololayer.h if your model is trained on custom dataset
mkdir build
cd build
cp {ultralytics}/yolov5/yolov5s.wts {tensorrtx}/yolov5/build
cmake ..
make
sudo ./yolov5 -s [.wts] [.engine] [n/s/m/l/x/n6/s6/m6/l6/x6 or c/c6 gd gw] // serialize model to plan file
sudo ./yolov5 -d [.engine] [image folder] // deserialize and run inference, the images in [image folder] will be processed.
// For example yolov5s
sudo ./yolov5 -s yolov5s.wts yolov5s.engine s
sudo ./yolov5 -d yolov5s.engine ../samples
// For example Custom model with depth_multiple=0.17, width_multiple=0.25 in yolov5.yaml
sudo ./yolov5 -s yolov5_custom.wts yolov5.engine c 0.17 0.25
sudo ./yolov5 -d yolov5.engine ../samples
```
3. check the images generated, as follows. _zidane.jpg and _bus.jpg
4. optional, load and run the tensorrt model in python
```
// install python-tensorrt, pycuda, etc.
// ensure the yolov5s.engine and libmyplugins.so have been built
python yolov5_trt.py
// Another version of python script, which is using CUDA Python instead of pycuda.
python yolov5_trt_cuda_python.py
```
5. optional, run yolov5 classification models with similar steps
# INT8 Quantization
1. Prepare calibration images, you can randomly select 1000s images from your train set. For coco, you can also download my calibration images `coco_calib` from [GoogleDrive](https://drive.google.com/drive/folders/1s7jE9DtOngZMzJC1uL307J2MiaGwdRSI?usp=sharing) or [BaiduPan](https://pan.baidu.com/s/1GOm_-JobpyLMAqZWCDUhKg) pwd: a9wh
2. unzip it in yolov5/build
3. set the macro `USE_INT8` in yolov5.cpp and make
4. serialize the model and test
<p align="center">
<img src="https://user-images.githubusercontent.com/15235574/78247927-4d9fac00-751e-11ea-8b1b-704a0aeb3fcf.jpg">
</p>
<p align="center">
<img src="https://user-images.githubusercontent.com/15235574/78247970-60b27c00-751e-11ea-88df-41473fed4823.jpg">
</p>
## More Information
See the readme in [home page.](https://github.com/wang-xinyu/tensorrtx)
# This is the CMakeCache file.
# For build in directory: /home/ilens/tensorrtx/yolov5/build
# It was generated by CMake: /usr/bin/cmake
# You can edit this file to change values found and used by cmake.
# If you do not want to change any of the values, simply exit the editor.
# If you do want to change a value, simply edit, save, and exit the editor.
# The syntax for the file is as follows:
# KEY:TYPE=VALUE
# KEY is the name of a variable in the cache.
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
# VALUE is the current value for the KEY.
########################
# EXTERNAL cache entries
########################
//Path to a program.
CMAKE_AR:FILEPATH=/usr/bin/ar
//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or
// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
CMAKE_BUILD_TYPE:STRING=
//Enable/Disable color output during build.
CMAKE_COLOR_MAKEFILE:BOOL=ON
//CXX compiler
CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
//A wrapper around 'ar' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-7
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-7
//Flags used by the compiler during all build types.
CMAKE_CXX_FLAGS:STRING=
//Flags used by the compiler during debug builds.
CMAKE_CXX_FLAGS_DEBUG:STRING=-g
//Flags used by the compiler during release builds for minimum
// size.
CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
//Flags used by the compiler during release builds.
CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
//Flags used by the compiler during release builds with debug info.
CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
//C compiler
CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
//A wrapper around 'ar' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-7
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-7
//Flags used by the compiler during all build types.
CMAKE_C_FLAGS:STRING=
//Flags used by the compiler during debug builds.
CMAKE_C_FLAGS_DEBUG:STRING=-g
//Flags used by the compiler during release builds for minimum
// size.
CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
//Flags used by the compiler during release builds.
CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
//Flags used by the compiler during release builds with debug info.
CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
//Flags used by the linker.
CMAKE_EXE_LINKER_FLAGS:STRING=
//Flags used by the linker during debug builds.
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during release minsize builds.
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during release builds.
CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during Release with Debug Info builds.
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Enable/Disable output of compile commands during generation.
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
//Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/usr/local
//Path to a program.
CMAKE_LINKER:FILEPATH=/usr/bin/ld
//Path to a program.
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
//Flags used by the linker during the creation of modules.
CMAKE_MODULE_LINKER_FLAGS:STRING=
//Flags used by the linker during debug builds.
CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during release minsize builds.
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during release builds.
CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during Release with Debug Info builds.
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_NM:FILEPATH=/usr/bin/nm
//Path to a program.
CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
//Path to a program.
CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
//Value Computed by CMake
CMAKE_PROJECT_NAME:STATIC=yolov5
//Path to a program.
CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
//Flags used by the linker during the creation of dll's.
CMAKE_SHARED_LINKER_FLAGS:STRING=
//Flags used by the linker during debug builds.
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during release minsize builds.
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during release builds.
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during Release with Debug Info builds.
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//If set, runtime paths are not added when installing shared libraries,
// but are added when building.
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
//If set, runtime paths are not added when using shared libraries.
CMAKE_SKIP_RPATH:BOOL=NO
//Flags used by the linker during the creation of static libraries.
CMAKE_STATIC_LINKER_FLAGS:STRING=
//Flags used by the linker during debug builds.
CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during release minsize builds.
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during release builds.
CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during Release with Debug Info builds.
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_STRIP:FILEPATH=/usr/bin/strip
//If this value is on, makefiles will be generated without the
// .SILENT directive, and all commands will be echoed to the console
// during the make. This is useful for debugging only. With Visual
// Studio IDE projects all commands are done without /nologo.
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
//Compile device code in 64 bit mode
CUDA_64_BIT_DEVICE_CODE:BOOL=ON
//Attach the build rule to the CUDA source file. Enable only when
// the CUDA source file is added to at most one target.
CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE:BOOL=ON
//Generate and parse .cubin files in Device mode.
CUDA_BUILD_CUBIN:BOOL=OFF
//Build in Emulation mode
CUDA_BUILD_EMULATION:BOOL=OFF
//"cudart" library
CUDA_CUDART_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libcudart.so
//"cuda" library (older versions only).
CUDA_CUDA_LIBRARY:FILEPATH=/usr/lib/aarch64-linux-gnu/libcuda.so
//Directory to put all the output files. If blank it will default
// to the CMAKE_CURRENT_BINARY_DIR
CUDA_GENERATED_OUTPUT_DIR:PATH=
//Generated file extension
CUDA_HOST_COMPILATION_CPP:BOOL=ON
//Host side compiler used by NVCC
CUDA_HOST_COMPILER:FILEPATH=/usr/bin/cc
//Path to a program.
CUDA_NVCC_EXECUTABLE:FILEPATH=/usr/local/cuda/bin/nvcc
//Semi-colon delimit multiple arguments.
CUDA_NVCC_FLAGS:STRING=
//Semi-colon delimit multiple arguments.
CUDA_NVCC_FLAGS_DEBUG:STRING=
//Semi-colon delimit multiple arguments.
CUDA_NVCC_FLAGS_MINSIZEREL:STRING=
//Semi-colon delimit multiple arguments.
CUDA_NVCC_FLAGS_RELEASE:STRING=
//Semi-colon delimit multiple arguments.
CUDA_NVCC_FLAGS_RELWITHDEBINFO:STRING=
//Propage C/CXX_FLAGS and friends to the host compiler via -Xcompile
CUDA_PROPAGATE_HOST_FLAGS:BOOL=ON
//Path to a file.
CUDA_SDK_ROOT_DIR:PATH=CUDA_SDK_ROOT_DIR-NOTFOUND
//Compile CUDA objects with separable compilation enabled. Requires
// CUDA 5.0+
CUDA_SEPARABLE_COMPILATION:BOOL=OFF
//Path to a file.
CUDA_TOOLKIT_INCLUDE:PATH=/usr/local/cuda/include
//Toolkit location.
CUDA_TOOLKIT_ROOT_DIR:PATH=/usr/local/cuda
//Use the static version of the CUDA runtime library if available
CUDA_USE_STATIC_CUDA_RUNTIME:BOOL=OFF
//Print out the commands run while compiling the CUDA source file.
// With the Makefile generator this defaults to VERBOSE variable
// specified on the command line, but can be forced on with this
// option.
CUDA_VERBOSE_BUILD:BOOL=OFF
//Version of CUDA as computed from nvcc.
CUDA_VERSION:STRING=10.2
//"cublas" library
CUDA_cublas_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libcublas.so
//"cublas_device" library
CUDA_cublas_device_LIBRARY:FILEPATH=CUDA_cublas_device_LIBRARY-NOTFOUND
//"cudadevrt" library
CUDA_cudadevrt_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libcudadevrt.a
//static CUDA runtime library
CUDA_cudart_static_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libcudart_static.a
//"cufft" library
CUDA_cufft_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libcufft.so
//"cupti" library
CUDA_cupti_LIBRARY:FILEPATH=CUDA_cupti_LIBRARY-NOTFOUND
//"curand" library
CUDA_curand_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libcurand.so
//"cusolver" library
CUDA_cusolver_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libcusolver.so
//"cusparse" library
CUDA_cusparse_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libcusparse.so
//"nppc" library
CUDA_nppc_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libnppc.so
//"nppial" library
CUDA_nppial_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libnppial.so
//"nppicc" library
CUDA_nppicc_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libnppicc.so
//"nppicom" library
CUDA_nppicom_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libnppicom.so
//"nppidei" library
CUDA_nppidei_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libnppidei.so
//"nppif" library
CUDA_nppif_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libnppif.so
//"nppig" library
CUDA_nppig_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libnppig.so
//"nppim" library
CUDA_nppim_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libnppim.so
//"nppist" library
CUDA_nppist_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libnppist.so
//"nppisu" library
CUDA_nppisu_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libnppisu.so
//"nppitc" library
CUDA_nppitc_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libnppitc.so
//"npps" library
CUDA_npps_LIBRARY:FILEPATH=/usr/local/cuda/lib64/libnpps.so
//The directory containing a CMake configuration file for OpenCV.
OpenCV_DIR:PATH=/usr/lib/aarch64-linux-gnu/cmake/opencv4
//Dependencies for the target
myplugins_LIB_DEPENDS:STATIC=general;/usr/local/cuda/lib64/libcudart.so;general;nvinfer;general;cudart;
//Value Computed by CMake
yolov5_BINARY_DIR:STATIC=/home/ilens/tensorrtx/yolov5/build
//Value Computed by CMake
yolov5_SOURCE_DIR:STATIC=/home/ilens/tensorrtx/yolov5
########################
# INTERNAL cache entries
########################
//ADVANCED property for variable: CMAKE_AR
CMAKE_AR-ADVANCED:INTERNAL=1
//This is the directory where this CMakeCache.txt was created
CMAKE_CACHEFILE_DIR:INTERNAL=/home/ilens/tensorrtx/yolov5/build
//Major version of cmake used to create the current loaded cache
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
//Minor version of cmake used to create the current loaded cache
CMAKE_CACHE_MINOR_VERSION:INTERNAL=10
//Patch version of cmake used to create the current loaded cache
CMAKE_CACHE_PATCH_VERSION:INTERNAL=2
//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
//Path to CMake executable.
CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
//Path to cpack program executable.
CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
//Path to ctest program executable.
CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
//ADVANCED property for variable: CMAKE_CXX_COMPILER
CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER
CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_AR
CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS
CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//Executable file format
CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
//Name of external makefile project generator.
CMAKE_EXTRA_GENERATOR:INTERNAL=
//Name of generator.
CMAKE_GENERATOR:INTERNAL=Unix Makefiles
//Name of generator platform.
CMAKE_GENERATOR_PLATFORM:INTERNAL=
//Name of generator toolset.
CMAKE_GENERATOR_TOOLSET:INTERNAL=
//Source directory with the top level CMakeLists.txt file for this
// project
CMAKE_HOME_DIRECTORY:INTERNAL=/home/ilens/tensorrtx/yolov5
//Install .so files without execute permission.
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
//ADVANCED property for variable: CMAKE_LINKER
CMAKE_LINKER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_NM
CMAKE_NM-ADVANCED:INTERNAL=1
//number of local generators
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJCOPY
CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJDUMP
CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
//Platform information initialized
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
//ADVANCED property for variable: CMAKE_RANLIB
CMAKE_RANLIB-ADVANCED:INTERNAL=1
//Path to CMake installation.
CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.10
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_RPATH
CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STRIP
CMAKE_STRIP-ADVANCED:INTERNAL=1
//uname command
CMAKE_UNAME:INTERNAL=/bin/uname
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_64_BIT_DEVICE_CODE
CUDA_64_BIT_DEVICE_CODE-ADVANCED:INTERNAL=1
//List of intermediate files that are part of the cuda dependency
// scanning.
CUDA_ADDITIONAL_CLEAN_FILES:INTERNAL=/home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir//myplugins_generated_yololayer.cu.o.depend;/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir//yolov5_generated_preprocess.cu.o.depend
//ADVANCED property for variable: CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE
CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_BUILD_CUBIN
CUDA_BUILD_CUBIN-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_BUILD_EMULATION
CUDA_BUILD_EMULATION-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_CUDART_LIBRARY
CUDA_CUDART_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_CUDA_LIBRARY
CUDA_CUDA_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_GENERATED_OUTPUT_DIR
CUDA_GENERATED_OUTPUT_DIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_HOST_COMPILATION_CPP
CUDA_HOST_COMPILATION_CPP-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_NVCC_EXECUTABLE
CUDA_NVCC_EXECUTABLE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_NVCC_FLAGS
CUDA_NVCC_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_NVCC_FLAGS_DEBUG
CUDA_NVCC_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_NVCC_FLAGS_MINSIZEREL
CUDA_NVCC_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_NVCC_FLAGS_RELEASE
CUDA_NVCC_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_NVCC_FLAGS_RELWITHDEBINFO
CUDA_NVCC_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_PROPAGATE_HOST_FLAGS
CUDA_PROPAGATE_HOST_FLAGS-ADVANCED:INTERNAL=1
//This is the value of the last time CUDA_SDK_ROOT_DIR was set
// successfully.
CUDA_SDK_ROOT_DIR_INTERNAL:INTERNAL=CUDA_SDK_ROOT_DIR-NOTFOUND
//ADVANCED property for variable: CUDA_SEPARABLE_COMPILATION
CUDA_SEPARABLE_COMPILATION-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_TOOLKIT_INCLUDE
CUDA_TOOLKIT_INCLUDE-ADVANCED:INTERNAL=1
//This is the value of the last time CUDA_TOOLKIT_ROOT_DIR was
// set successfully.
CUDA_TOOLKIT_ROOT_DIR_INTERNAL:INTERNAL=/usr/local/cuda
//This is the value of the last time CUDA_TOOLKIT_TARGET_DIR was
// set successfully.
CUDA_TOOLKIT_TARGET_DIR_INTERNAL:INTERNAL=/usr/local/cuda
//ADVANCED property for variable: CUDA_VERBOSE_BUILD
CUDA_VERBOSE_BUILD-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_VERSION
CUDA_VERSION-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_cublas_LIBRARY
CUDA_cublas_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_cublas_device_LIBRARY
CUDA_cublas_device_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_cudadevrt_LIBRARY
CUDA_cudadevrt_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_cudart_static_LIBRARY
CUDA_cudart_static_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_cufft_LIBRARY
CUDA_cufft_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_cupti_LIBRARY
CUDA_cupti_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_curand_LIBRARY
CUDA_curand_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_cusolver_LIBRARY
CUDA_cusolver_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_cusparse_LIBRARY
CUDA_cusparse_LIBRARY-ADVANCED:INTERNAL=1
//Location of make2cmake.cmake
CUDA_make2cmake:INTERNAL=/usr/share/cmake-3.10/Modules/FindCUDA/make2cmake.cmake
//ADVANCED property for variable: CUDA_nppc_LIBRARY
CUDA_nppc_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_nppial_LIBRARY
CUDA_nppial_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_nppicc_LIBRARY
CUDA_nppicc_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_nppicom_LIBRARY
CUDA_nppicom_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_nppidei_LIBRARY
CUDA_nppidei_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_nppif_LIBRARY
CUDA_nppif_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_nppig_LIBRARY
CUDA_nppig_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_nppim_LIBRARY
CUDA_nppim_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_nppist_LIBRARY
CUDA_nppist_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_nppisu_LIBRARY
CUDA_nppisu_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_nppitc_LIBRARY
CUDA_nppitc_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_npps_LIBRARY
CUDA_npps_LIBRARY-ADVANCED:INTERNAL=1
//Location of parse_cubin.cmake
CUDA_parse_cubin:INTERNAL=/usr/share/cmake-3.10/Modules/FindCUDA/parse_cubin.cmake
//Location of run_nvcc.cmake
CUDA_run_nvcc:INTERNAL=/usr/share/cmake-3.10/Modules/FindCUDA/run_nvcc.cmake
//Details about finding CUDA
FIND_PACKAGE_MESSAGE_DETAILS_CUDA:INTERNAL=[/usr/local/cuda][/usr/local/cuda/bin/nvcc][/usr/local/cuda/include][/usr/local/cuda/lib64/libcudart.so][v10.2()]
//Details about finding OpenCV
FIND_PACKAGE_MESSAGE_DETAILS_OpenCV:INTERNAL=[/usr][v4.1.1()]
set(CMAKE_C_COMPILER "/usr/bin/cc")
set(CMAKE_C_COMPILER_ARG1 "")
set(CMAKE_C_COMPILER_ID "GNU")
set(CMAKE_C_COMPILER_VERSION "7.5.0")
set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
set(CMAKE_C_COMPILER_WRAPPER "")
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11")
set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert")
set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
set(CMAKE_C_PLATFORM_ID "Linux")
set(CMAKE_C_SIMULATE_ID "")
set(CMAKE_C_SIMULATE_VERSION "")
set(CMAKE_AR "/usr/bin/ar")
set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-7")
set(CMAKE_RANLIB "/usr/bin/ranlib")
set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-7")
set(CMAKE_LINKER "/usr/bin/ld")
set(CMAKE_COMPILER_IS_GNUCC 1)
set(CMAKE_C_COMPILER_LOADED 1)
set(CMAKE_C_COMPILER_WORKS TRUE)
set(CMAKE_C_ABI_COMPILED TRUE)
set(CMAKE_COMPILER_IS_MINGW )
set(CMAKE_COMPILER_IS_CYGWIN )
if(CMAKE_COMPILER_IS_CYGWIN)
set(CYGWIN 1)
set(UNIX 1)
endif()
set(CMAKE_C_COMPILER_ENV_VAR "CC")
if(CMAKE_COMPILER_IS_MINGW)
set(MINGW 1)
endif()
set(CMAKE_C_COMPILER_ID_RUN 1)
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
set(CMAKE_C_LINKER_PREFERENCE 10)
# Save compiler ABI information.
set(CMAKE_C_SIZEOF_DATA_PTR "8")
set(CMAKE_C_COMPILER_ABI "ELF")
set(CMAKE_C_LIBRARY_ARCHITECTURE "aarch64-linux-gnu")
if(CMAKE_C_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_C_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
endif()
if(CMAKE_C_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "aarch64-linux-gnu")
endif()
set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
endif()
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s")
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/aarch64-linux-gnu/7;/usr/lib/aarch64-linux-gnu;/usr/lib;/lib/aarch64-linux-gnu;/lib")
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
set(CMAKE_CXX_COMPILER "/usr/bin/c++")
set(CMAKE_CXX_COMPILER_ARG1 "")
set(CMAKE_CXX_COMPILER_ID "GNU")
set(CMAKE_CXX_COMPILER_VERSION "7.5.0")
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
set(CMAKE_CXX_COMPILER_WRAPPER "")
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17")
set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
set(CMAKE_CXX_PLATFORM_ID "Linux")
set(CMAKE_CXX_SIMULATE_ID "")
set(CMAKE_CXX_SIMULATE_VERSION "")
set(CMAKE_AR "/usr/bin/ar")
set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-7")
set(CMAKE_RANLIB "/usr/bin/ranlib")
set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-7")
set(CMAKE_LINKER "/usr/bin/ld")
set(CMAKE_COMPILER_IS_GNUCXX 1)
set(CMAKE_CXX_COMPILER_LOADED 1)
set(CMAKE_CXX_COMPILER_WORKS TRUE)
set(CMAKE_CXX_ABI_COMPILED TRUE)
set(CMAKE_COMPILER_IS_MINGW )
set(CMAKE_COMPILER_IS_CYGWIN )
if(CMAKE_COMPILER_IS_CYGWIN)
set(CYGWIN 1)
set(UNIX 1)
endif()
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
if(CMAKE_COMPILER_IS_MINGW)
set(MINGW 1)
endif()
set(CMAKE_CXX_COMPILER_ID_RUN 1)
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP)
set(CMAKE_CXX_LINKER_PREFERENCE 30)
set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
# Save compiler ABI information.
set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
set(CMAKE_CXX_COMPILER_ABI "ELF")
set(CMAKE_CXX_LIBRARY_ARCHITECTURE "aarch64-linux-gnu")
if(CMAKE_CXX_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_CXX_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
endif()
if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "aarch64-linux-gnu")
endif()
set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
endif()
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc")
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/aarch64-linux-gnu/7;/usr/lib/aarch64-linux-gnu;/usr/lib;/lib/aarch64-linux-gnu;/lib")
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
set(CMAKE_HOST_SYSTEM "Linux-4.9.253-tegra")
set(CMAKE_HOST_SYSTEM_NAME "Linux")
set(CMAKE_HOST_SYSTEM_VERSION "4.9.253-tegra")
set(CMAKE_HOST_SYSTEM_PROCESSOR "aarch64")
set(CMAKE_SYSTEM "Linux-4.9.253-tegra")
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_VERSION "4.9.253-tegra")
set(CMAKE_SYSTEM_PROCESSOR "aarch64")
set(CMAKE_CROSSCOMPILING "FALSE")
set(CMAKE_SYSTEM_LOADED 1)
#ifdef __cplusplus
# error "A C++ compiler has been selected for C."
#endif
#if defined(__18CXX)
# define ID_VOID_MAIN
#endif
#if defined(__CLASSIC_C__)
/* cv-qualifiers did not exist in K&R C */
# define const
# define volatile
#endif
/* Version number components: V=Version, R=Revision, P=Patch
Version date components: YYYY=Year, MM=Month, DD=Day */
#if defined(__INTEL_COMPILER) || defined(__ICC)
# define COMPILER_ID "Intel"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
/* __INTEL_COMPILER = VRP */
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
# if defined(__INTEL_COMPILER_UPDATE)
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
# else
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
# endif
# if defined(__INTEL_COMPILER_BUILD_DATE)
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
# endif
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
#elif defined(__PATHCC__)
# define COMPILER_ID "PathScale"
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
# if defined(__PATHCC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
# endif
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
# define COMPILER_ID "Embarcadero"
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
#elif defined(__BORLANDC__)
# define COMPILER_ID "Borland"
/* __BORLANDC__ = 0xVRR */
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
# define COMPILER_ID "Watcom"
/* __WATCOMC__ = VVRR */
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__WATCOMC__)
# define COMPILER_ID "OpenWatcom"
/* __WATCOMC__ = VVRP + 1100 */
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__SUNPRO_C)
# define COMPILER_ID "SunPro"
# if __SUNPRO_C >= 0x5100
/* __SUNPRO_C = 0xVRRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
# else
/* __SUNPRO_CC = 0xVRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
# endif
#elif defined(__HP_cc)
# define COMPILER_ID "HP"
/* __HP_cc = VVRRPP */
# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
#elif defined(__DECC)
# define COMPILER_ID "Compaq"
/* __DECC_VER = VVRRTPPPP */
# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
#elif defined(__IBMC__) && defined(__COMPILER_VER__)
# define COMPILER_ID "zOS"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
# define COMPILER_ID "XL"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
# define COMPILER_ID "VisualAge"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__PGI)
# define COMPILER_ID "PGI"
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
# if defined(__PGIC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
# endif
#elif defined(_CRAYC)
# define COMPILER_ID "Cray"
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
#elif defined(__TI_COMPILER_VERSION__)
# define COMPILER_ID "TI"
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
# define COMPILER_ID "Fujitsu"
#elif defined(__TINYC__)
# define COMPILER_ID "TinyCC"
#elif defined(__BCC__)
# define COMPILER_ID "Bruce"
#elif defined(__SCO_VERSION__)
# define COMPILER_ID "SCO"
#elif defined(__clang__) && defined(__apple_build_version__)
# define COMPILER_ID "AppleClang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
#elif defined(__clang__)
# define COMPILER_ID "Clang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
#elif defined(__GNUC__)
# define COMPILER_ID "GNU"
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
# if defined(__GNUC_MINOR__)
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(_MSC_VER)
# define COMPILER_ID "MSVC"
/* _MSC_VER = VVRR */
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
# if defined(_MSC_FULL_VER)
# if _MSC_VER >= 1400
/* _MSC_FULL_VER = VVRRPPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
# else
/* _MSC_FULL_VER = VVRRPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
# endif
# endif
# if defined(_MSC_BUILD)
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
# endif
#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
# define COMPILER_ID "ADSP"
#if defined(__VISUALDSPVERSION__)
/* __VISUALDSPVERSION__ = 0xVVRRPP00 */
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
#endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# define COMPILER_ID "IAR"
# if defined(__VER__)
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# endif
#elif defined(__ARMCC_VERSION)
# define COMPILER_ID "ARMCC"
#if __ARMCC_VERSION >= 1000000
/* __ARMCC_VERSION = VRRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#else
/* __ARMCC_VERSION = VRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#endif
#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
# define COMPILER_ID "SDCC"
# if defined(__SDCC_VERSION_MAJOR)
# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
# else
/* SDCC = VRP */
# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
# endif
#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
# define COMPILER_ID "MIPSpro"
# if defined(_SGI_COMPILER_VERSION)
/* _SGI_COMPILER_VERSION = VRP */
# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10)
# else
/* _COMPILER_VERSION = VRP */
# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10)
# endif
/* These compilers are either not known or too old to define an
identification macro. Try to identify the platform and guess that
it is the native compiler. */
#elif defined(__sgi)
# define COMPILER_ID "MIPSpro"
#elif defined(__hpux) || defined(__hpua)
# define COMPILER_ID "HP"
#else /* unknown compiler */
# define COMPILER_ID ""
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
#ifdef SIMULATE_ID
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
#endif
#ifdef __QNXNTO__
char const* qnxnto = "INFO" ":" "qnxnto[]";
#endif
#if defined(__CRAYXE) || defined(__CRAYXC)
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
#endif
#define STRINGIFY_HELPER(X) #X
#define STRINGIFY(X) STRINGIFY_HELPER(X)
/* Identify known platforms by name. */
#if defined(__linux) || defined(__linux__) || defined(linux)
# define PLATFORM_ID "Linux"
#elif defined(__CYGWIN__)
# define PLATFORM_ID "Cygwin"
#elif defined(__MINGW32__)
# define PLATFORM_ID "MinGW"
#elif defined(__APPLE__)
# define PLATFORM_ID "Darwin"
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
# define PLATFORM_ID "Windows"
#elif defined(__FreeBSD__) || defined(__FreeBSD)
# define PLATFORM_ID "FreeBSD"
#elif defined(__NetBSD__) || defined(__NetBSD)
# define PLATFORM_ID "NetBSD"
#elif defined(__OpenBSD__) || defined(__OPENBSD)
# define PLATFORM_ID "OpenBSD"
#elif defined(__sun) || defined(sun)
# define PLATFORM_ID "SunOS"
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
# define PLATFORM_ID "AIX"
#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
# define PLATFORM_ID "IRIX"
#elif defined(__hpux) || defined(__hpux__)
# define PLATFORM_ID "HP-UX"
#elif defined(__HAIKU__)
# define PLATFORM_ID "Haiku"
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
# define PLATFORM_ID "BeOS"
#elif defined(__QNX__) || defined(__QNXNTO__)
# define PLATFORM_ID "QNX"
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
# define PLATFORM_ID "Tru64"
#elif defined(__riscos) || defined(__riscos__)
# define PLATFORM_ID "RISCos"
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
# define PLATFORM_ID "SINIX"
#elif defined(__UNIX_SV__)
# define PLATFORM_ID "UNIX_SV"
#elif defined(__bsdos__)
# define PLATFORM_ID "BSDOS"
#elif defined(_MPRAS) || defined(MPRAS)
# define PLATFORM_ID "MP-RAS"
#elif defined(__osf) || defined(__osf__)
# define PLATFORM_ID "OSF1"
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
# define PLATFORM_ID "SCO_SV"
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
# define PLATFORM_ID "ULTRIX"
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
# define PLATFORM_ID "Xenix"
#elif defined(__WATCOMC__)
# if defined(__LINUX__)
# define PLATFORM_ID "Linux"
# elif defined(__DOS__)
# define PLATFORM_ID "DOS"
# elif defined(__OS2__)
# define PLATFORM_ID "OS2"
# elif defined(__WINDOWS__)
# define PLATFORM_ID "Windows3x"
# else /* unknown platform */
# define PLATFORM_ID
# endif
#else /* unknown platform */
# define PLATFORM_ID
#endif
/* For windows compilers MSVC and Intel we can determine
the architecture of the compiler being used. This is because
the compilers do not have flags that can change the architecture,
but rather depend on which compiler is being used
*/
#if defined(_WIN32) && defined(_MSC_VER)
# if defined(_M_IA64)
# define ARCHITECTURE_ID "IA64"
# elif defined(_M_X64) || defined(_M_AMD64)
# define ARCHITECTURE_ID "x64"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# elif defined(_M_ARM64)
# define ARCHITECTURE_ID "ARM64"
# elif defined(_M_ARM)
# if _M_ARM == 4
# define ARCHITECTURE_ID "ARMV4I"
# elif _M_ARM == 5
# define ARCHITECTURE_ID "ARMV5I"
# else
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
# endif
# elif defined(_M_MIPS)
# define ARCHITECTURE_ID "MIPS"
# elif defined(_M_SH)
# define ARCHITECTURE_ID "SHx"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__WATCOMC__)
# if defined(_M_I86)
# define ARCHITECTURE_ID "I86"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# if defined(__ICCARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__ICCAVR__)
# define ARCHITECTURE_ID "AVR"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#else
# define ARCHITECTURE_ID
#endif
/* Convert integer to decimal digit literals. */
#define DEC(n) \
('0' + (((n) / 10000000)%10)), \
('0' + (((n) / 1000000)%10)), \
('0' + (((n) / 100000)%10)), \
('0' + (((n) / 10000)%10)), \
('0' + (((n) / 1000)%10)), \
('0' + (((n) / 100)%10)), \
('0' + (((n) / 10)%10)), \
('0' + ((n) % 10))
/* Convert integer to hex digit literals. */
#define HEX(n) \
('0' + ((n)>>28 & 0xF)), \
('0' + ((n)>>24 & 0xF)), \
('0' + ((n)>>20 & 0xF)), \
('0' + ((n)>>16 & 0xF)), \
('0' + ((n)>>12 & 0xF)), \
('0' + ((n)>>8 & 0xF)), \
('0' + ((n)>>4 & 0xF)), \
('0' + ((n) & 0xF))
/* Construct a string literal encoding the version number components. */
#ifdef COMPILER_VERSION_MAJOR
char const info_version[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
COMPILER_VERSION_MAJOR,
# ifdef COMPILER_VERSION_MINOR
'.', COMPILER_VERSION_MINOR,
# ifdef COMPILER_VERSION_PATCH
'.', COMPILER_VERSION_PATCH,
# ifdef COMPILER_VERSION_TWEAK
'.', COMPILER_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct a string literal encoding the internal version number. */
#ifdef COMPILER_VERSION_INTERNAL
char const info_version_internal[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
'i','n','t','e','r','n','a','l','[',
COMPILER_VERSION_INTERNAL,']','\0'};
#endif
/* Construct a string literal encoding the version number components. */
#ifdef SIMULATE_VERSION_MAJOR
char const info_simulate_version[] = {
'I', 'N', 'F', 'O', ':',
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
SIMULATE_VERSION_MAJOR,
# ifdef SIMULATE_VERSION_MINOR
'.', SIMULATE_VERSION_MINOR,
# ifdef SIMULATE_VERSION_PATCH
'.', SIMULATE_VERSION_PATCH,
# ifdef SIMULATE_VERSION_TWEAK
'.', SIMULATE_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
#if !defined(__STDC__)
# if defined(_MSC_VER) && !defined(__clang__)
# define C_DIALECT "90"
# else
# define C_DIALECT
# endif
#elif __STDC_VERSION__ >= 201000L
# define C_DIALECT "11"
#elif __STDC_VERSION__ >= 199901L
# define C_DIALECT "99"
#else
# define C_DIALECT "90"
#endif
const char* info_language_dialect_default =
"INFO" ":" "dialect_default[" C_DIALECT "]";
/*--------------------------------------------------------------------------*/
#ifdef ID_VOID_MAIN
void main() {}
#else
# if defined(__CLASSIC_C__)
int main(argc, argv) int argc; char *argv[];
# else
int main(int argc, char* argv[])
# endif
{
int require = 0;
require += info_compiler[argc];
require += info_platform[argc];
require += info_arch[argc];
#ifdef COMPILER_VERSION_MAJOR
require += info_version[argc];
#endif
#ifdef COMPILER_VERSION_INTERNAL
require += info_version_internal[argc];
#endif
#ifdef SIMULATE_ID
require += info_simulate[argc];
#endif
#ifdef SIMULATE_VERSION_MAJOR
require += info_simulate_version[argc];
#endif
#if defined(__CRAYXE) || defined(__CRAYXC)
require += info_cray[argc];
#endif
require += info_language_dialect_default[argc];
(void)argv;
return require;
}
#endif
/* This source file must have a .cpp extension so that all C++ compilers
recognize the extension without flags. Borland does not know .cxx for
example. */
#ifndef __cplusplus
# error "A C compiler has been selected for C++."
#endif
/* Version number components: V=Version, R=Revision, P=Patch
Version date components: YYYY=Year, MM=Month, DD=Day */
#if defined(__COMO__)
# define COMPILER_ID "Comeau"
/* __COMO_VERSION__ = VRR */
# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
#elif defined(__INTEL_COMPILER) || defined(__ICC)
# define COMPILER_ID "Intel"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
/* __INTEL_COMPILER = VRP */
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
# if defined(__INTEL_COMPILER_UPDATE)
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
# else
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
# endif
# if defined(__INTEL_COMPILER_BUILD_DATE)
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
# endif
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
#elif defined(__PATHCC__)
# define COMPILER_ID "PathScale"
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
# if defined(__PATHCC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
# endif
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
# define COMPILER_ID "Embarcadero"
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
#elif defined(__BORLANDC__)
# define COMPILER_ID "Borland"
/* __BORLANDC__ = 0xVRR */
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
# define COMPILER_ID "Watcom"
/* __WATCOMC__ = VVRR */
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__WATCOMC__)
# define COMPILER_ID "OpenWatcom"
/* __WATCOMC__ = VVRP + 1100 */
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__SUNPRO_CC)
# define COMPILER_ID "SunPro"
# if __SUNPRO_CC >= 0x5100
/* __SUNPRO_CC = 0xVRRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
# else
/* __SUNPRO_CC = 0xVRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
# endif
#elif defined(__HP_aCC)
# define COMPILER_ID "HP"
/* __HP_aCC = VVRRPP */
# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
#elif defined(__DECCXX)
# define COMPILER_ID "Compaq"
/* __DECCXX_VER = VVRRTPPPP */
# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
# define COMPILER_ID "zOS"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
# define COMPILER_ID "XL"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
# define COMPILER_ID "VisualAge"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__PGI)
# define COMPILER_ID "PGI"
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
# if defined(__PGIC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
# endif
#elif defined(_CRAYC)
# define COMPILER_ID "Cray"
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
#elif defined(__TI_COMPILER_VERSION__)
# define COMPILER_ID "TI"
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
# define COMPILER_ID "Fujitsu"
#elif defined(__SCO_VERSION__)
# define COMPILER_ID "SCO"
#elif defined(__clang__) && defined(__apple_build_version__)
# define COMPILER_ID "AppleClang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
#elif defined(__clang__)
# define COMPILER_ID "Clang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
#elif defined(__GNUC__) || defined(__GNUG__)
# define COMPILER_ID "GNU"
# if defined(__GNUC__)
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
# else
# define COMPILER_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(_MSC_VER)
# define COMPILER_ID "MSVC"
/* _MSC_VER = VVRR */
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
# if defined(_MSC_FULL_VER)
# if _MSC_VER >= 1400
/* _MSC_FULL_VER = VVRRPPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
# else
/* _MSC_FULL_VER = VVRRPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
# endif
# endif
# if defined(_MSC_BUILD)
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
# endif
#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
# define COMPILER_ID "ADSP"
#if defined(__VISUALDSPVERSION__)
/* __VISUALDSPVERSION__ = 0xVVRRPP00 */
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
#endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# define COMPILER_ID "IAR"
# if defined(__VER__)
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# endif
#elif defined(__ARMCC_VERSION)
# define COMPILER_ID "ARMCC"
#if __ARMCC_VERSION >= 1000000
/* __ARMCC_VERSION = VRRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#else
/* __ARMCC_VERSION = VRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#endif
#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
# define COMPILER_ID "MIPSpro"
# if defined(_SGI_COMPILER_VERSION)
/* _SGI_COMPILER_VERSION = VRP */
# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10)
# else
/* _COMPILER_VERSION = VRP */
# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10)
# endif
/* These compilers are either not known or too old to define an
identification macro. Try to identify the platform and guess that
it is the native compiler. */
#elif defined(__sgi)
# define COMPILER_ID "MIPSpro"
#elif defined(__hpux) || defined(__hpua)
# define COMPILER_ID "HP"
#else /* unknown compiler */
# define COMPILER_ID ""
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
#ifdef SIMULATE_ID
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
#endif
#ifdef __QNXNTO__
char const* qnxnto = "INFO" ":" "qnxnto[]";
#endif
#if defined(__CRAYXE) || defined(__CRAYXC)
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
#endif
#define STRINGIFY_HELPER(X) #X
#define STRINGIFY(X) STRINGIFY_HELPER(X)
/* Identify known platforms by name. */
#if defined(__linux) || defined(__linux__) || defined(linux)
# define PLATFORM_ID "Linux"
#elif defined(__CYGWIN__)
# define PLATFORM_ID "Cygwin"
#elif defined(__MINGW32__)
# define PLATFORM_ID "MinGW"
#elif defined(__APPLE__)
# define PLATFORM_ID "Darwin"
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
# define PLATFORM_ID "Windows"
#elif defined(__FreeBSD__) || defined(__FreeBSD)
# define PLATFORM_ID "FreeBSD"
#elif defined(__NetBSD__) || defined(__NetBSD)
# define PLATFORM_ID "NetBSD"
#elif defined(__OpenBSD__) || defined(__OPENBSD)
# define PLATFORM_ID "OpenBSD"
#elif defined(__sun) || defined(sun)
# define PLATFORM_ID "SunOS"
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
# define PLATFORM_ID "AIX"
#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
# define PLATFORM_ID "IRIX"
#elif defined(__hpux) || defined(__hpux__)
# define PLATFORM_ID "HP-UX"
#elif defined(__HAIKU__)
# define PLATFORM_ID "Haiku"
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
# define PLATFORM_ID "BeOS"
#elif defined(__QNX__) || defined(__QNXNTO__)
# define PLATFORM_ID "QNX"
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
# define PLATFORM_ID "Tru64"
#elif defined(__riscos) || defined(__riscos__)
# define PLATFORM_ID "RISCos"
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
# define PLATFORM_ID "SINIX"
#elif defined(__UNIX_SV__)
# define PLATFORM_ID "UNIX_SV"
#elif defined(__bsdos__)
# define PLATFORM_ID "BSDOS"
#elif defined(_MPRAS) || defined(MPRAS)
# define PLATFORM_ID "MP-RAS"
#elif defined(__osf) || defined(__osf__)
# define PLATFORM_ID "OSF1"
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
# define PLATFORM_ID "SCO_SV"
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
# define PLATFORM_ID "ULTRIX"
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
# define PLATFORM_ID "Xenix"
#elif defined(__WATCOMC__)
# if defined(__LINUX__)
# define PLATFORM_ID "Linux"
# elif defined(__DOS__)
# define PLATFORM_ID "DOS"
# elif defined(__OS2__)
# define PLATFORM_ID "OS2"
# elif defined(__WINDOWS__)
# define PLATFORM_ID "Windows3x"
# else /* unknown platform */
# define PLATFORM_ID
# endif
#else /* unknown platform */
# define PLATFORM_ID
#endif
/* For windows compilers MSVC and Intel we can determine
the architecture of the compiler being used. This is because
the compilers do not have flags that can change the architecture,
but rather depend on which compiler is being used
*/
#if defined(_WIN32) && defined(_MSC_VER)
# if defined(_M_IA64)
# define ARCHITECTURE_ID "IA64"
# elif defined(_M_X64) || defined(_M_AMD64)
# define ARCHITECTURE_ID "x64"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# elif defined(_M_ARM64)
# define ARCHITECTURE_ID "ARM64"
# elif defined(_M_ARM)
# if _M_ARM == 4
# define ARCHITECTURE_ID "ARMV4I"
# elif _M_ARM == 5
# define ARCHITECTURE_ID "ARMV5I"
# else
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
# endif
# elif defined(_M_MIPS)
# define ARCHITECTURE_ID "MIPS"
# elif defined(_M_SH)
# define ARCHITECTURE_ID "SHx"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__WATCOMC__)
# if defined(_M_I86)
# define ARCHITECTURE_ID "I86"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# if defined(__ICCARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__ICCAVR__)
# define ARCHITECTURE_ID "AVR"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#else
# define ARCHITECTURE_ID
#endif
/* Convert integer to decimal digit literals. */
#define DEC(n) \
('0' + (((n) / 10000000)%10)), \
('0' + (((n) / 1000000)%10)), \
('0' + (((n) / 100000)%10)), \
('0' + (((n) / 10000)%10)), \
('0' + (((n) / 1000)%10)), \
('0' + (((n) / 100)%10)), \
('0' + (((n) / 10)%10)), \
('0' + ((n) % 10))
/* Convert integer to hex digit literals. */
#define HEX(n) \
('0' + ((n)>>28 & 0xF)), \
('0' + ((n)>>24 & 0xF)), \
('0' + ((n)>>20 & 0xF)), \
('0' + ((n)>>16 & 0xF)), \
('0' + ((n)>>12 & 0xF)), \
('0' + ((n)>>8 & 0xF)), \
('0' + ((n)>>4 & 0xF)), \
('0' + ((n) & 0xF))
/* Construct a string literal encoding the version number components. */
#ifdef COMPILER_VERSION_MAJOR
char const info_version[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
COMPILER_VERSION_MAJOR,
# ifdef COMPILER_VERSION_MINOR
'.', COMPILER_VERSION_MINOR,
# ifdef COMPILER_VERSION_PATCH
'.', COMPILER_VERSION_PATCH,
# ifdef COMPILER_VERSION_TWEAK
'.', COMPILER_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct a string literal encoding the internal version number. */
#ifdef COMPILER_VERSION_INTERNAL
char const info_version_internal[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
'i','n','t','e','r','n','a','l','[',
COMPILER_VERSION_INTERNAL,']','\0'};
#endif
/* Construct a string literal encoding the version number components. */
#ifdef SIMULATE_VERSION_MAJOR
char const info_simulate_version[] = {
'I', 'N', 'F', 'O', ':',
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
SIMULATE_VERSION_MAJOR,
# ifdef SIMULATE_VERSION_MINOR
'.', SIMULATE_VERSION_MINOR,
# ifdef SIMULATE_VERSION_PATCH
'.', SIMULATE_VERSION_PATCH,
# ifdef SIMULATE_VERSION_TWEAK
'.', SIMULATE_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
#if defined(_MSC_VER) && defined(_MSVC_LANG)
#define CXX_STD _MSVC_LANG
#else
#define CXX_STD __cplusplus
#endif
const char* info_language_dialect_default = "INFO" ":" "dialect_default["
#if CXX_STD > 201402L
"17"
#elif CXX_STD >= 201402L
"14"
#elif CXX_STD >= 201103L
"11"
#else
"98"
#endif
"]";
/*--------------------------------------------------------------------------*/
int main(int argc, char* argv[])
{
int require = 0;
require += info_compiler[argc];
require += info_platform[argc];
#ifdef COMPILER_VERSION_MAJOR
require += info_version[argc];
#endif
#ifdef COMPILER_VERSION_INTERNAL
require += info_version_internal[argc];
#endif
#ifdef SIMULATE_ID
require += info_simulate[argc];
#endif
#ifdef SIMULATE_VERSION_MAJOR
require += info_simulate_version[argc];
#endif
#if defined(__CRAYXE) || defined(__CRAYXC)
require += info_cray[argc];
#endif
require += info_language_dialect_default[argc];
(void)argv;
return require;
}
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
# Relative path conversion top directories.
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/ilens/tensorrtx/yolov5")
set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/ilens/tensorrtx/yolov5/build")
# Force unix paths in dependencies.
set(CMAKE_FORCE_UNIX_PATHS 1)
# The C and CXX include file regular expressions for this directory.
set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
The system is: Linux - 4.9.253-tegra - aarch64
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
Compiler: /usr/bin/cc
Build flags:
Id flags:
The output was:
0
Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
The C compiler identification is GNU, found in "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/3.10.2/CompilerIdC/a.out"
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
Compiler: /usr/bin/c++
Build flags:
Id flags:
The output was:
0
Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
The CXX compiler identification is GNU, found in "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/3.10.2/CompilerIdCXX/a.out"
Determining if the C compiler works passed with the following output:
Change Dir: /home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_f4871/fast"
/usr/bin/make -f CMakeFiles/cmTC_f4871.dir/build.make CMakeFiles/cmTC_f4871.dir/build
make[1]: Entering directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_f4871.dir/testCCompiler.c.o
/usr/bin/cc -o CMakeFiles/cmTC_f4871.dir/testCCompiler.c.o -c /home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp/testCCompiler.c
Linking C executable cmTC_f4871
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f4871.dir/link.txt --verbose=1
/usr/bin/cc -rdynamic CMakeFiles/cmTC_f4871.dir/testCCompiler.c.o -o cmTC_f4871
make[1]: Leaving directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Detecting C compiler ABI info compiled with the following output:
Change Dir: /home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_444cf/fast"
/usr/bin/make -f CMakeFiles/cmTC_444cf.dir/build.make CMakeFiles/cmTC_444cf.dir/build
make[1]: Entering directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_444cf.dir/CMakeCCompilerABI.c.o
/usr/bin/cc -o CMakeFiles/cmTC_444cf.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.10/Modules/CMakeCCompilerABI.c
Linking C executable cmTC_444cf
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_444cf.dir/link.txt --verbose=1
/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_444cf.dir/CMakeCCompilerABI.c.o -o cmTC_444cf
Using built-in specs.
COLLECT_GCC=/usr/bin/cc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/7/lto-wrapper
Target: aarch64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu
Thread model: posix
gcc version 7.5.0 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04)
COMPILER_PATH=/usr/lib/gcc/aarch64-linux-gnu/7/:/usr/lib/gcc/aarch64-linux-gnu/7/:/usr/lib/gcc/aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/7/:/usr/lib/gcc/aarch64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/aarch64-linux-gnu/7/:/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/7/../../../../lib/:/lib/aarch64-linux-gnu/:/lib/../lib/:/usr/lib/aarch64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-linux-gnu/7/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_444cf' '-mlittle-endian' '-mabi=lp64'
/usr/lib/gcc/aarch64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/aarch64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/aarch64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccMj4Gr0.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-843419 -pie -z now -z relro -o cmTC_444cf /usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/Scrt1.o /usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/crti.o /usr/lib/gcc/aarch64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/aarch64-linux-gnu/7 -L/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu -L/usr/lib/gcc/aarch64-linux-gnu/7/../../../../lib -L/lib/aarch64-linux-gnu -L/lib/../lib -L/usr/lib/aarch64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/aarch64-linux-gnu/7/../../.. CMakeFiles/cmTC_444cf.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/aarch64-linux-gnu/7/crtendS.o /usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/crtn.o
COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_444cf' '-mlittle-endian' '-mabi=lp64'
make[1]: Leaving directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Parsed C implicit link information from above output:
link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
ignore line: [Change Dir: /home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp]
ignore line: []
ignore line: [Run Build Command:"/usr/bin/make" "cmTC_444cf/fast"]
ignore line: [/usr/bin/make -f CMakeFiles/cmTC_444cf.dir/build.make CMakeFiles/cmTC_444cf.dir/build]
ignore line: [make[1]: Entering directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp']
ignore line: [Building C object CMakeFiles/cmTC_444cf.dir/CMakeCCompilerABI.c.o]
ignore line: [/usr/bin/cc -o CMakeFiles/cmTC_444cf.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.10/Modules/CMakeCCompilerABI.c]
ignore line: [Linking C executable cmTC_444cf]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_444cf.dir/link.txt --verbose=1]
ignore line: [/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_444cf.dir/CMakeCCompilerABI.c.o -o cmTC_444cf ]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/cc]
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/7/lto-wrapper]
ignore line: [Target: aarch64-linux-gnu]
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [gcc version 7.5.0 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) ]
ignore line: [COMPILER_PATH=/usr/lib/gcc/aarch64-linux-gnu/7/:/usr/lib/gcc/aarch64-linux-gnu/7/:/usr/lib/gcc/aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/7/:/usr/lib/gcc/aarch64-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/aarch64-linux-gnu/7/:/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/7/../../../../lib/:/lib/aarch64-linux-gnu/:/lib/../lib/:/usr/lib/aarch64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-linux-gnu/7/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_444cf' '-mlittle-endian' '-mabi=lp64']
link line: [ /usr/lib/gcc/aarch64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/aarch64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/aarch64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccMj4Gr0.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-843419 -pie -z now -z relro -o cmTC_444cf /usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/Scrt1.o /usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/crti.o /usr/lib/gcc/aarch64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/aarch64-linux-gnu/7 -L/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu -L/usr/lib/gcc/aarch64-linux-gnu/7/../../../../lib -L/lib/aarch64-linux-gnu -L/lib/../lib -L/usr/lib/aarch64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/aarch64-linux-gnu/7/../../.. CMakeFiles/cmTC_444cf.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/aarch64-linux-gnu/7/crtendS.o /usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/crtn.o]
arg [/usr/lib/gcc/aarch64-linux-gnu/7/collect2] ==> ignore
arg [-plugin] ==> ignore
arg [/usr/lib/gcc/aarch64-linux-gnu/7/liblto_plugin.so] ==> ignore
arg [-plugin-opt=/usr/lib/gcc/aarch64-linux-gnu/7/lto-wrapper] ==> ignore
arg [-plugin-opt=-fresolution=/tmp/ccMj4Gr0.res] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [-plugin-opt=-pass-through=-lc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [--build-id] ==> ignore
arg [--eh-frame-hdr] ==> ignore
arg [--hash-style=gnu] ==> ignore
arg [--as-needed] ==> ignore
arg [-export-dynamic] ==> ignore
arg [-dynamic-linker] ==> ignore
arg [/lib/ld-linux-aarch64.so.1] ==> ignore
arg [-X] ==> ignore
arg [-EL] ==> ignore
arg [-maarch64linux] ==> ignore
arg [--fix-cortex-a53-843419] ==> ignore
arg [-pie] ==> ignore
arg [-znow] ==> ignore
arg [-zrelro] ==> ignore
arg [-o] ==> ignore
arg [cmTC_444cf] ==> ignore
arg [/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/Scrt1.o] ==> ignore
arg [/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/crti.o] ==> ignore
arg [/usr/lib/gcc/aarch64-linux-gnu/7/crtbeginS.o] ==> ignore
arg [-L/usr/lib/gcc/aarch64-linux-gnu/7] ==> dir [/usr/lib/gcc/aarch64-linux-gnu/7]
arg [-L/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu] ==> dir [/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu]
arg [-L/usr/lib/gcc/aarch64-linux-gnu/7/../../../../lib] ==> dir [/usr/lib/gcc/aarch64-linux-gnu/7/../../../../lib]
arg [-L/lib/aarch64-linux-gnu] ==> dir [/lib/aarch64-linux-gnu]
arg [-L/lib/../lib] ==> dir [/lib/../lib]
arg [-L/usr/lib/aarch64-linux-gnu] ==> dir [/usr/lib/aarch64-linux-gnu]
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
arg [-L/usr/lib/gcc/aarch64-linux-gnu/7/../../..] ==> dir [/usr/lib/gcc/aarch64-linux-gnu/7/../../..]
arg [CMakeFiles/cmTC_444cf.dir/CMakeCCompilerABI.c.o] ==> ignore
arg [-lgcc] ==> lib [gcc]
arg [--push-state] ==> ignore
arg [--as-needed] ==> ignore
arg [-lgcc_s] ==> lib [gcc_s]
arg [--pop-state] ==> ignore
arg [-lc] ==> lib [c]
arg [-lgcc] ==> lib [gcc]
arg [--push-state] ==> ignore
arg [--as-needed] ==> ignore
arg [-lgcc_s] ==> lib [gcc_s]
arg [--pop-state] ==> ignore
arg [/usr/lib/gcc/aarch64-linux-gnu/7/crtendS.o] ==> ignore
arg [/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/crtn.o] ==> ignore
collapse library dir [/usr/lib/gcc/aarch64-linux-gnu/7] ==> [/usr/lib/gcc/aarch64-linux-gnu/7]
collapse library dir [/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu] ==> [/usr/lib/aarch64-linux-gnu]
collapse library dir [/usr/lib/gcc/aarch64-linux-gnu/7/../../../../lib] ==> [/usr/lib]
collapse library dir [/lib/aarch64-linux-gnu] ==> [/lib/aarch64-linux-gnu]
collapse library dir [/lib/../lib] ==> [/lib]
collapse library dir [/usr/lib/aarch64-linux-gnu] ==> [/usr/lib/aarch64-linux-gnu]
collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
collapse library dir [/usr/lib/gcc/aarch64-linux-gnu/7/../../..] ==> [/usr/lib]
implicit libs: [gcc;gcc_s;c;gcc;gcc_s]
implicit dirs: [/usr/lib/gcc/aarch64-linux-gnu/7;/usr/lib/aarch64-linux-gnu;/usr/lib;/lib/aarch64-linux-gnu;/lib]
implicit fwks: []
Detecting C [-std=c11] compiler features compiled with the following output:
Change Dir: /home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_a5e76/fast"
/usr/bin/make -f CMakeFiles/cmTC_a5e76.dir/build.make CMakeFiles/cmTC_a5e76.dir/build
make[1]: Entering directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_a5e76.dir/feature_tests.c.o
/usr/bin/cc -std=c11 -o CMakeFiles/cmTC_a5e76.dir/feature_tests.c.o -c /home/ilens/tensorrtx/yolov5/build/CMakeFiles/feature_tests.c
Linking C executable cmTC_a5e76
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a5e76.dir/link.txt --verbose=1
/usr/bin/cc -rdynamic CMakeFiles/cmTC_a5e76.dir/feature_tests.c.o -o cmTC_a5e76
make[1]: Leaving directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Feature record: C_FEATURE:1c_function_prototypes
Feature record: C_FEATURE:1c_restrict
Feature record: C_FEATURE:1c_static_assert
Feature record: C_FEATURE:1c_variadic_macros
Detecting C [-std=c99] compiler features compiled with the following output:
Change Dir: /home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_79061/fast"
/usr/bin/make -f CMakeFiles/cmTC_79061.dir/build.make CMakeFiles/cmTC_79061.dir/build
make[1]: Entering directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_79061.dir/feature_tests.c.o
/usr/bin/cc -std=c99 -o CMakeFiles/cmTC_79061.dir/feature_tests.c.o -c /home/ilens/tensorrtx/yolov5/build/CMakeFiles/feature_tests.c
Linking C executable cmTC_79061
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_79061.dir/link.txt --verbose=1
/usr/bin/cc -rdynamic CMakeFiles/cmTC_79061.dir/feature_tests.c.o -o cmTC_79061
make[1]: Leaving directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Feature record: C_FEATURE:1c_function_prototypes
Feature record: C_FEATURE:1c_restrict
Feature record: C_FEATURE:0c_static_assert
Feature record: C_FEATURE:1c_variadic_macros
Detecting C [-std=c90] compiler features compiled with the following output:
Change Dir: /home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_44505/fast"
/usr/bin/make -f CMakeFiles/cmTC_44505.dir/build.make CMakeFiles/cmTC_44505.dir/build
make[1]: Entering directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_44505.dir/feature_tests.c.o
/usr/bin/cc -std=c90 -o CMakeFiles/cmTC_44505.dir/feature_tests.c.o -c /home/ilens/tensorrtx/yolov5/build/CMakeFiles/feature_tests.c
Linking C executable cmTC_44505
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_44505.dir/link.txt --verbose=1
/usr/bin/cc -rdynamic CMakeFiles/cmTC_44505.dir/feature_tests.c.o -o cmTC_44505
make[1]: Leaving directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Feature record: C_FEATURE:1c_function_prototypes
Feature record: C_FEATURE:0c_restrict
Feature record: C_FEATURE:0c_static_assert
Feature record: C_FEATURE:0c_variadic_macros
Determining if the CXX compiler works passed with the following output:
Change Dir: /home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_83d43/fast"
/usr/bin/make -f CMakeFiles/cmTC_83d43.dir/build.make CMakeFiles/cmTC_83d43.dir/build
make[1]: Entering directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_83d43.dir/testCXXCompiler.cxx.o
/usr/bin/c++ -o CMakeFiles/cmTC_83d43.dir/testCXXCompiler.cxx.o -c /home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
Linking CXX executable cmTC_83d43
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_83d43.dir/link.txt --verbose=1
/usr/bin/c++ -rdynamic CMakeFiles/cmTC_83d43.dir/testCXXCompiler.cxx.o -o cmTC_83d43
make[1]: Leaving directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Detecting CXX compiler ABI info compiled with the following output:
Change Dir: /home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_c20ee/fast"
/usr/bin/make -f CMakeFiles/cmTC_c20ee.dir/build.make CMakeFiles/cmTC_c20ee.dir/build
make[1]: Entering directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_c20ee.dir/CMakeCXXCompilerABI.cpp.o
/usr/bin/c++ -o CMakeFiles/cmTC_c20ee.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp
Linking CXX executable cmTC_c20ee
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c20ee.dir/link.txt --verbose=1
/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_c20ee.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_c20ee
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/7/lto-wrapper
Target: aarch64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu
Thread model: posix
gcc version 7.5.0 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04)
COMPILER_PATH=/usr/lib/gcc/aarch64-linux-gnu/7/:/usr/lib/gcc/aarch64-linux-gnu/7/:/usr/lib/gcc/aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/7/:/usr/lib/gcc/aarch64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/aarch64-linux-gnu/7/:/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/7/../../../../lib/:/lib/aarch64-linux-gnu/:/lib/../lib/:/usr/lib/aarch64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-linux-gnu/7/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_c20ee' '-shared-libgcc' '-mlittle-endian' '-mabi=lp64'
/usr/lib/gcc/aarch64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/aarch64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/aarch64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccC2b8Hb.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-843419 -pie -z now -z relro -o cmTC_c20ee /usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/Scrt1.o /usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/crti.o /usr/lib/gcc/aarch64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/aarch64-linux-gnu/7 -L/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu -L/usr/lib/gcc/aarch64-linux-gnu/7/../../../../lib -L/lib/aarch64-linux-gnu -L/lib/../lib -L/usr/lib/aarch64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/aarch64-linux-gnu/7/../../.. CMakeFiles/cmTC_c20ee.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/aarch64-linux-gnu/7/crtendS.o /usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/crtn.o
COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_c20ee' '-shared-libgcc' '-mlittle-endian' '-mabi=lp64'
make[1]: Leaving directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Parsed CXX implicit link information from above output:
link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
ignore line: [Change Dir: /home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp]
ignore line: []
ignore line: [Run Build Command:"/usr/bin/make" "cmTC_c20ee/fast"]
ignore line: [/usr/bin/make -f CMakeFiles/cmTC_c20ee.dir/build.make CMakeFiles/cmTC_c20ee.dir/build]
ignore line: [make[1]: Entering directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp']
ignore line: [Building CXX object CMakeFiles/cmTC_c20ee.dir/CMakeCXXCompilerABI.cpp.o]
ignore line: [/usr/bin/c++ -o CMakeFiles/cmTC_c20ee.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp]
ignore line: [Linking CXX executable cmTC_c20ee]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c20ee.dir/link.txt --verbose=1]
ignore line: [/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_c20ee.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_c20ee ]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/c++]
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/7/lto-wrapper]
ignore line: [Target: aarch64-linux-gnu]
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [gcc version 7.5.0 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) ]
ignore line: [COMPILER_PATH=/usr/lib/gcc/aarch64-linux-gnu/7/:/usr/lib/gcc/aarch64-linux-gnu/7/:/usr/lib/gcc/aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/7/:/usr/lib/gcc/aarch64-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/aarch64-linux-gnu/7/:/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/7/../../../../lib/:/lib/aarch64-linux-gnu/:/lib/../lib/:/usr/lib/aarch64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-linux-gnu/7/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_c20ee' '-shared-libgcc' '-mlittle-endian' '-mabi=lp64']
link line: [ /usr/lib/gcc/aarch64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/aarch64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/aarch64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccC2b8Hb.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-843419 -pie -z now -z relro -o cmTC_c20ee /usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/Scrt1.o /usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/crti.o /usr/lib/gcc/aarch64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/aarch64-linux-gnu/7 -L/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu -L/usr/lib/gcc/aarch64-linux-gnu/7/../../../../lib -L/lib/aarch64-linux-gnu -L/lib/../lib -L/usr/lib/aarch64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/aarch64-linux-gnu/7/../../.. CMakeFiles/cmTC_c20ee.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/aarch64-linux-gnu/7/crtendS.o /usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/crtn.o]
arg [/usr/lib/gcc/aarch64-linux-gnu/7/collect2] ==> ignore
arg [-plugin] ==> ignore
arg [/usr/lib/gcc/aarch64-linux-gnu/7/liblto_plugin.so] ==> ignore
arg [-plugin-opt=/usr/lib/gcc/aarch64-linux-gnu/7/lto-wrapper] ==> ignore
arg [-plugin-opt=-fresolution=/tmp/ccC2b8Hb.res] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [-plugin-opt=-pass-through=-lc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [--build-id] ==> ignore
arg [--eh-frame-hdr] ==> ignore
arg [--hash-style=gnu] ==> ignore
arg [--as-needed] ==> ignore
arg [-export-dynamic] ==> ignore
arg [-dynamic-linker] ==> ignore
arg [/lib/ld-linux-aarch64.so.1] ==> ignore
arg [-X] ==> ignore
arg [-EL] ==> ignore
arg [-maarch64linux] ==> ignore
arg [--fix-cortex-a53-843419] ==> ignore
arg [-pie] ==> ignore
arg [-znow] ==> ignore
arg [-zrelro] ==> ignore
arg [-o] ==> ignore
arg [cmTC_c20ee] ==> ignore
arg [/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/Scrt1.o] ==> ignore
arg [/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/crti.o] ==> ignore
arg [/usr/lib/gcc/aarch64-linux-gnu/7/crtbeginS.o] ==> ignore
arg [-L/usr/lib/gcc/aarch64-linux-gnu/7] ==> dir [/usr/lib/gcc/aarch64-linux-gnu/7]
arg [-L/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu] ==> dir [/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu]
arg [-L/usr/lib/gcc/aarch64-linux-gnu/7/../../../../lib] ==> dir [/usr/lib/gcc/aarch64-linux-gnu/7/../../../../lib]
arg [-L/lib/aarch64-linux-gnu] ==> dir [/lib/aarch64-linux-gnu]
arg [-L/lib/../lib] ==> dir [/lib/../lib]
arg [-L/usr/lib/aarch64-linux-gnu] ==> dir [/usr/lib/aarch64-linux-gnu]
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
arg [-L/usr/lib/gcc/aarch64-linux-gnu/7/../../..] ==> dir [/usr/lib/gcc/aarch64-linux-gnu/7/../../..]
arg [CMakeFiles/cmTC_c20ee.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
arg [-lstdc++] ==> lib [stdc++]
arg [-lm] ==> lib [m]
arg [-lgcc_s] ==> lib [gcc_s]
arg [-lgcc] ==> lib [gcc]
arg [-lc] ==> lib [c]
arg [-lgcc_s] ==> lib [gcc_s]
arg [-lgcc] ==> lib [gcc]
arg [/usr/lib/gcc/aarch64-linux-gnu/7/crtendS.o] ==> ignore
arg [/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/crtn.o] ==> ignore
collapse library dir [/usr/lib/gcc/aarch64-linux-gnu/7] ==> [/usr/lib/gcc/aarch64-linux-gnu/7]
collapse library dir [/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu] ==> [/usr/lib/aarch64-linux-gnu]
collapse library dir [/usr/lib/gcc/aarch64-linux-gnu/7/../../../../lib] ==> [/usr/lib]
collapse library dir [/lib/aarch64-linux-gnu] ==> [/lib/aarch64-linux-gnu]
collapse library dir [/lib/../lib] ==> [/lib]
collapse library dir [/usr/lib/aarch64-linux-gnu] ==> [/usr/lib/aarch64-linux-gnu]
collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
collapse library dir [/usr/lib/gcc/aarch64-linux-gnu/7/../../..] ==> [/usr/lib]
implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc]
implicit dirs: [/usr/lib/gcc/aarch64-linux-gnu/7;/usr/lib/aarch64-linux-gnu;/usr/lib;/lib/aarch64-linux-gnu;/lib]
implicit fwks: []
Detecting CXX [-std=c++1z] compiler features compiled with the following output:
Change Dir: /home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_346c1/fast"
/usr/bin/make -f CMakeFiles/cmTC_346c1.dir/build.make CMakeFiles/cmTC_346c1.dir/build
make[1]: Entering directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_346c1.dir/feature_tests.cxx.o
/usr/bin/c++ -std=c++1z -o CMakeFiles/cmTC_346c1.dir/feature_tests.cxx.o -c /home/ilens/tensorrtx/yolov5/build/CMakeFiles/feature_tests.cxx
Linking CXX executable cmTC_346c1
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_346c1.dir/link.txt --verbose=1
/usr/bin/c++ -rdynamic CMakeFiles/cmTC_346c1.dir/feature_tests.cxx.o -o cmTC_346c1
make[1]: Leaving directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers
Feature record: CXX_FEATURE:1cxx_alias_templates
Feature record: CXX_FEATURE:1cxx_alignas
Feature record: CXX_FEATURE:1cxx_alignof
Feature record: CXX_FEATURE:1cxx_attributes
Feature record: CXX_FEATURE:1cxx_attribute_deprecated
Feature record: CXX_FEATURE:1cxx_auto_type
Feature record: CXX_FEATURE:1cxx_binary_literals
Feature record: CXX_FEATURE:1cxx_constexpr
Feature record: CXX_FEATURE:1cxx_contextual_conversions
Feature record: CXX_FEATURE:1cxx_decltype
Feature record: CXX_FEATURE:1cxx_decltype_auto
Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types
Feature record: CXX_FEATURE:1cxx_default_function_template_args
Feature record: CXX_FEATURE:1cxx_defaulted_functions
Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
Feature record: CXX_FEATURE:1cxx_delegating_constructors
Feature record: CXX_FEATURE:1cxx_deleted_functions
Feature record: CXX_FEATURE:1cxx_digit_separators
Feature record: CXX_FEATURE:1cxx_enum_forward_declarations
Feature record: CXX_FEATURE:1cxx_explicit_conversions
Feature record: CXX_FEATURE:1cxx_extended_friend_declarations
Feature record: CXX_FEATURE:1cxx_extern_templates
Feature record: CXX_FEATURE:1cxx_final
Feature record: CXX_FEATURE:1cxx_func_identifier
Feature record: CXX_FEATURE:1cxx_generalized_initializers
Feature record: CXX_FEATURE:1cxx_generic_lambdas
Feature record: CXX_FEATURE:1cxx_inheriting_constructors
Feature record: CXX_FEATURE:1cxx_inline_namespaces
Feature record: CXX_FEATURE:1cxx_lambdas
Feature record: CXX_FEATURE:1cxx_lambda_init_captures
Feature record: CXX_FEATURE:1cxx_local_type_template_args
Feature record: CXX_FEATURE:1cxx_long_long_type
Feature record: CXX_FEATURE:1cxx_noexcept
Feature record: CXX_FEATURE:1cxx_nonstatic_member_init
Feature record: CXX_FEATURE:1cxx_nullptr
Feature record: CXX_FEATURE:1cxx_override
Feature record: CXX_FEATURE:1cxx_range_for
Feature record: CXX_FEATURE:1cxx_raw_string_literals
Feature record: CXX_FEATURE:1cxx_reference_qualified_functions
Feature record: CXX_FEATURE:1cxx_relaxed_constexpr
Feature record: CXX_FEATURE:1cxx_return_type_deduction
Feature record: CXX_FEATURE:1cxx_right_angle_brackets
Feature record: CXX_FEATURE:1cxx_rvalue_references
Feature record: CXX_FEATURE:1cxx_sizeof_member
Feature record: CXX_FEATURE:1cxx_static_assert
Feature record: CXX_FEATURE:1cxx_strong_enums
Feature record: CXX_FEATURE:1cxx_template_template_parameters
Feature record: CXX_FEATURE:1cxx_thread_local
Feature record: CXX_FEATURE:1cxx_trailing_return_types
Feature record: CXX_FEATURE:1cxx_unicode_literals
Feature record: CXX_FEATURE:1cxx_uniform_initialization
Feature record: CXX_FEATURE:1cxx_unrestricted_unions
Feature record: CXX_FEATURE:1cxx_user_literals
Feature record: CXX_FEATURE:1cxx_variable_templates
Feature record: CXX_FEATURE:1cxx_variadic_macros
Feature record: CXX_FEATURE:1cxx_variadic_templates
Detecting CXX [-std=c++14] compiler features compiled with the following output:
Change Dir: /home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_ca452/fast"
/usr/bin/make -f CMakeFiles/cmTC_ca452.dir/build.make CMakeFiles/cmTC_ca452.dir/build
make[1]: Entering directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_ca452.dir/feature_tests.cxx.o
/usr/bin/c++ -std=c++14 -o CMakeFiles/cmTC_ca452.dir/feature_tests.cxx.o -c /home/ilens/tensorrtx/yolov5/build/CMakeFiles/feature_tests.cxx
Linking CXX executable cmTC_ca452
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ca452.dir/link.txt --verbose=1
/usr/bin/c++ -rdynamic CMakeFiles/cmTC_ca452.dir/feature_tests.cxx.o -o cmTC_ca452
make[1]: Leaving directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers
Feature record: CXX_FEATURE:1cxx_alias_templates
Feature record: CXX_FEATURE:1cxx_alignas
Feature record: CXX_FEATURE:1cxx_alignof
Feature record: CXX_FEATURE:1cxx_attributes
Feature record: CXX_FEATURE:1cxx_attribute_deprecated
Feature record: CXX_FEATURE:1cxx_auto_type
Feature record: CXX_FEATURE:1cxx_binary_literals
Feature record: CXX_FEATURE:1cxx_constexpr
Feature record: CXX_FEATURE:1cxx_contextual_conversions
Feature record: CXX_FEATURE:1cxx_decltype
Feature record: CXX_FEATURE:1cxx_decltype_auto
Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types
Feature record: CXX_FEATURE:1cxx_default_function_template_args
Feature record: CXX_FEATURE:1cxx_defaulted_functions
Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
Feature record: CXX_FEATURE:1cxx_delegating_constructors
Feature record: CXX_FEATURE:1cxx_deleted_functions
Feature record: CXX_FEATURE:1cxx_digit_separators
Feature record: CXX_FEATURE:1cxx_enum_forward_declarations
Feature record: CXX_FEATURE:1cxx_explicit_conversions
Feature record: CXX_FEATURE:1cxx_extended_friend_declarations
Feature record: CXX_FEATURE:1cxx_extern_templates
Feature record: CXX_FEATURE:1cxx_final
Feature record: CXX_FEATURE:1cxx_func_identifier
Feature record: CXX_FEATURE:1cxx_generalized_initializers
Feature record: CXX_FEATURE:1cxx_generic_lambdas
Feature record: CXX_FEATURE:1cxx_inheriting_constructors
Feature record: CXX_FEATURE:1cxx_inline_namespaces
Feature record: CXX_FEATURE:1cxx_lambdas
Feature record: CXX_FEATURE:1cxx_lambda_init_captures
Feature record: CXX_FEATURE:1cxx_local_type_template_args
Feature record: CXX_FEATURE:1cxx_long_long_type
Feature record: CXX_FEATURE:1cxx_noexcept
Feature record: CXX_FEATURE:1cxx_nonstatic_member_init
Feature record: CXX_FEATURE:1cxx_nullptr
Feature record: CXX_FEATURE:1cxx_override
Feature record: CXX_FEATURE:1cxx_range_for
Feature record: CXX_FEATURE:1cxx_raw_string_literals
Feature record: CXX_FEATURE:1cxx_reference_qualified_functions
Feature record: CXX_FEATURE:1cxx_relaxed_constexpr
Feature record: CXX_FEATURE:1cxx_return_type_deduction
Feature record: CXX_FEATURE:1cxx_right_angle_brackets
Feature record: CXX_FEATURE:1cxx_rvalue_references
Feature record: CXX_FEATURE:1cxx_sizeof_member
Feature record: CXX_FEATURE:1cxx_static_assert
Feature record: CXX_FEATURE:1cxx_strong_enums
Feature record: CXX_FEATURE:1cxx_template_template_parameters
Feature record: CXX_FEATURE:1cxx_thread_local
Feature record: CXX_FEATURE:1cxx_trailing_return_types
Feature record: CXX_FEATURE:1cxx_unicode_literals
Feature record: CXX_FEATURE:1cxx_uniform_initialization
Feature record: CXX_FEATURE:1cxx_unrestricted_unions
Feature record: CXX_FEATURE:1cxx_user_literals
Feature record: CXX_FEATURE:1cxx_variable_templates
Feature record: CXX_FEATURE:1cxx_variadic_macros
Feature record: CXX_FEATURE:1cxx_variadic_templates
Detecting CXX [-std=c++11] compiler features compiled with the following output:
Change Dir: /home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_d3869/fast"
/usr/bin/make -f CMakeFiles/cmTC_d3869.dir/build.make CMakeFiles/cmTC_d3869.dir/build
make[1]: Entering directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_d3869.dir/feature_tests.cxx.o
/usr/bin/c++ -std=c++11 -o CMakeFiles/cmTC_d3869.dir/feature_tests.cxx.o -c /home/ilens/tensorrtx/yolov5/build/CMakeFiles/feature_tests.cxx
Linking CXX executable cmTC_d3869
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d3869.dir/link.txt --verbose=1
/usr/bin/c++ -rdynamic CMakeFiles/cmTC_d3869.dir/feature_tests.cxx.o -o cmTC_d3869
make[1]: Leaving directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers
Feature record: CXX_FEATURE:1cxx_alias_templates
Feature record: CXX_FEATURE:1cxx_alignas
Feature record: CXX_FEATURE:1cxx_alignof
Feature record: CXX_FEATURE:1cxx_attributes
Feature record: CXX_FEATURE:0cxx_attribute_deprecated
Feature record: CXX_FEATURE:1cxx_auto_type
Feature record: CXX_FEATURE:0cxx_binary_literals
Feature record: CXX_FEATURE:1cxx_constexpr
Feature record: CXX_FEATURE:0cxx_contextual_conversions
Feature record: CXX_FEATURE:1cxx_decltype
Feature record: CXX_FEATURE:0cxx_decltype_auto
Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types
Feature record: CXX_FEATURE:1cxx_default_function_template_args
Feature record: CXX_FEATURE:1cxx_defaulted_functions
Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
Feature record: CXX_FEATURE:1cxx_delegating_constructors
Feature record: CXX_FEATURE:1cxx_deleted_functions
Feature record: CXX_FEATURE:0cxx_digit_separators
Feature record: CXX_FEATURE:1cxx_enum_forward_declarations
Feature record: CXX_FEATURE:1cxx_explicit_conversions
Feature record: CXX_FEATURE:1cxx_extended_friend_declarations
Feature record: CXX_FEATURE:1cxx_extern_templates
Feature record: CXX_FEATURE:1cxx_final
Feature record: CXX_FEATURE:1cxx_func_identifier
Feature record: CXX_FEATURE:1cxx_generalized_initializers
Feature record: CXX_FEATURE:0cxx_generic_lambdas
Feature record: CXX_FEATURE:1cxx_inheriting_constructors
Feature record: CXX_FEATURE:1cxx_inline_namespaces
Feature record: CXX_FEATURE:1cxx_lambdas
Feature record: CXX_FEATURE:0cxx_lambda_init_captures
Feature record: CXX_FEATURE:1cxx_local_type_template_args
Feature record: CXX_FEATURE:1cxx_long_long_type
Feature record: CXX_FEATURE:1cxx_noexcept
Feature record: CXX_FEATURE:1cxx_nonstatic_member_init
Feature record: CXX_FEATURE:1cxx_nullptr
Feature record: CXX_FEATURE:1cxx_override
Feature record: CXX_FEATURE:1cxx_range_for
Feature record: CXX_FEATURE:1cxx_raw_string_literals
Feature record: CXX_FEATURE:1cxx_reference_qualified_functions
Feature record: CXX_FEATURE:0cxx_relaxed_constexpr
Feature record: CXX_FEATURE:0cxx_return_type_deduction
Feature record: CXX_FEATURE:1cxx_right_angle_brackets
Feature record: CXX_FEATURE:1cxx_rvalue_references
Feature record: CXX_FEATURE:1cxx_sizeof_member
Feature record: CXX_FEATURE:1cxx_static_assert
Feature record: CXX_FEATURE:1cxx_strong_enums
Feature record: CXX_FEATURE:1cxx_template_template_parameters
Feature record: CXX_FEATURE:1cxx_thread_local
Feature record: CXX_FEATURE:1cxx_trailing_return_types
Feature record: CXX_FEATURE:1cxx_unicode_literals
Feature record: CXX_FEATURE:1cxx_uniform_initialization
Feature record: CXX_FEATURE:1cxx_unrestricted_unions
Feature record: CXX_FEATURE:1cxx_user_literals
Feature record: CXX_FEATURE:0cxx_variable_templates
Feature record: CXX_FEATURE:1cxx_variadic_macros
Feature record: CXX_FEATURE:1cxx_variadic_templates
Detecting CXX [-std=c++98] compiler features compiled with the following output:
Change Dir: /home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_e0367/fast"
/usr/bin/make -f CMakeFiles/cmTC_e0367.dir/build.make CMakeFiles/cmTC_e0367.dir/build
make[1]: Entering directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_e0367.dir/feature_tests.cxx.o
/usr/bin/c++ -std=c++98 -o CMakeFiles/cmTC_e0367.dir/feature_tests.cxx.o -c /home/ilens/tensorrtx/yolov5/build/CMakeFiles/feature_tests.cxx
Linking CXX executable cmTC_e0367
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e0367.dir/link.txt --verbose=1
/usr/bin/c++ -rdynamic CMakeFiles/cmTC_e0367.dir/feature_tests.cxx.o -o cmTC_e0367
make[1]: Leaving directory '/home/ilens/tensorrtx/yolov5/build/CMakeFiles/CMakeTmp'
Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers
Feature record: CXX_FEATURE:0cxx_alias_templates
Feature record: CXX_FEATURE:0cxx_alignas
Feature record: CXX_FEATURE:0cxx_alignof
Feature record: CXX_FEATURE:0cxx_attributes
Feature record: CXX_FEATURE:0cxx_attribute_deprecated
Feature record: CXX_FEATURE:0cxx_auto_type
Feature record: CXX_FEATURE:0cxx_binary_literals
Feature record: CXX_FEATURE:0cxx_constexpr
Feature record: CXX_FEATURE:0cxx_contextual_conversions
Feature record: CXX_FEATURE:0cxx_decltype
Feature record: CXX_FEATURE:0cxx_decltype_auto
Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types
Feature record: CXX_FEATURE:0cxx_default_function_template_args
Feature record: CXX_FEATURE:0cxx_defaulted_functions
Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers
Feature record: CXX_FEATURE:0cxx_delegating_constructors
Feature record: CXX_FEATURE:0cxx_deleted_functions
Feature record: CXX_FEATURE:0cxx_digit_separators
Feature record: CXX_FEATURE:0cxx_enum_forward_declarations
Feature record: CXX_FEATURE:0cxx_explicit_conversions
Feature record: CXX_FEATURE:0cxx_extended_friend_declarations
Feature record: CXX_FEATURE:0cxx_extern_templates
Feature record: CXX_FEATURE:0cxx_final
Feature record: CXX_FEATURE:0cxx_func_identifier
Feature record: CXX_FEATURE:0cxx_generalized_initializers
Feature record: CXX_FEATURE:0cxx_generic_lambdas
Feature record: CXX_FEATURE:0cxx_inheriting_constructors
Feature record: CXX_FEATURE:0cxx_inline_namespaces
Feature record: CXX_FEATURE:0cxx_lambdas
Feature record: CXX_FEATURE:0cxx_lambda_init_captures
Feature record: CXX_FEATURE:0cxx_local_type_template_args
Feature record: CXX_FEATURE:0cxx_long_long_type
Feature record: CXX_FEATURE:0cxx_noexcept
Feature record: CXX_FEATURE:0cxx_nonstatic_member_init
Feature record: CXX_FEATURE:0cxx_nullptr
Feature record: CXX_FEATURE:0cxx_override
Feature record: CXX_FEATURE:0cxx_range_for
Feature record: CXX_FEATURE:0cxx_raw_string_literals
Feature record: CXX_FEATURE:0cxx_reference_qualified_functions
Feature record: CXX_FEATURE:0cxx_relaxed_constexpr
Feature record: CXX_FEATURE:0cxx_return_type_deduction
Feature record: CXX_FEATURE:0cxx_right_angle_brackets
Feature record: CXX_FEATURE:0cxx_rvalue_references
Feature record: CXX_FEATURE:0cxx_sizeof_member
Feature record: CXX_FEATURE:0cxx_static_assert
Feature record: CXX_FEATURE:0cxx_strong_enums
Feature record: CXX_FEATURE:1cxx_template_template_parameters
Feature record: CXX_FEATURE:0cxx_thread_local
Feature record: CXX_FEATURE:0cxx_trailing_return_types
Feature record: CXX_FEATURE:0cxx_unicode_literals
Feature record: CXX_FEATURE:0cxx_uniform_initialization
Feature record: CXX_FEATURE:0cxx_unrestricted_unions
Feature record: CXX_FEATURE:0cxx_user_literals
Feature record: CXX_FEATURE:0cxx_variable_templates
Feature record: CXX_FEATURE:0cxx_variadic_macros
Feature record: CXX_FEATURE:0cxx_variadic_templates
# Hashes of file build rules.
6b63e19fd0d259e380e8af06347abff2 CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o
26b4ca4bdf6124b0e175190b11cf6012 CMakeFiles/yolov5.dir/yolov5_generated_preprocess.cu.o
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
# The generator used is:
set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
# The top level Makefile was generated from the following files:
set(CMAKE_MAKEFILE_DEPENDS
"CMakeCache.txt"
"../CMakeLists.txt"
"CMakeFiles/3.10.2/CMakeCCompiler.cmake"
"CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"
"CMakeFiles/3.10.2/CMakeSystem.cmake"
"CMakeFiles/feature_tests.c"
"CMakeFiles/feature_tests.cxx"
"CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o.cmake.pre-gen"
"CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o.depend"
"CMakeFiles/yolov5.dir/yolov5_generated_preprocess.cu.o.cmake.pre-gen"
"CMakeFiles/yolov5.dir/yolov5_generated_preprocess.cu.o.depend"
"/usr/lib/aarch64-linux-gnu/cmake/opencv4/OpenCVConfig-version.cmake"
"/usr/lib/aarch64-linux-gnu/cmake/opencv4/OpenCVConfig.cmake"
"/usr/lib/aarch64-linux-gnu/cmake/opencv4/OpenCVModules-release.cmake"
"/usr/lib/aarch64-linux-gnu/cmake/opencv4/OpenCVModules.cmake"
"/usr/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in"
"/usr/share/cmake-3.10/Modules/CMakeCCompilerABI.c"
"/usr/share/cmake-3.10/Modules/CMakeCInformation.cmake"
"/usr/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in"
"/usr/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp"
"/usr/share/cmake-3.10/Modules/CMakeCXXInformation.cmake"
"/usr/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake"
"/usr/share/cmake-3.10/Modules/CMakeCompilerIdDetection.cmake"
"/usr/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake"
"/usr/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake"
"/usr/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake"
"/usr/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake"
"/usr/share/cmake-3.10/Modules/CMakeDetermineCompilerId.cmake"
"/usr/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake"
"/usr/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake"
"/usr/share/cmake-3.10/Modules/CMakeGenericSystem.cmake"
"/usr/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake"
"/usr/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake"
"/usr/share/cmake-3.10/Modules/CMakeSystem.cmake.in"
"/usr/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake"
"/usr/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake"
"/usr/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake"
"/usr/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake"
"/usr/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake"
"/usr/share/cmake-3.10/Modules/CMakeUnixFindMake.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/ADSP-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Borland-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Clang-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Cray-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GHS-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GNU-C-FeatureTests.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GNU-C.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GNU-CXX-FeatureTests.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GNU-CXX.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GNU-FindBinUtils.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GNU.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/HP-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/IAR-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Intel-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/MIPSpro-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/MSVC-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/PGI-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/PathScale-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/SCO-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/TI-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Watcom-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/XL-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/FindCUDA.cmake"
"/usr/share/cmake-3.10/Modules/FindCUDA/run_nvcc.cmake"
"/usr/share/cmake-3.10/Modules/FindCUDA/select_compute_arch.cmake"
"/usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake"
"/usr/share/cmake-3.10/Modules/FindPackageMessage.cmake"
"/usr/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake"
"/usr/share/cmake-3.10/Modules/Platform/Linux-Determine-CXX.cmake"
"/usr/share/cmake-3.10/Modules/Platform/Linux-GNU-C.cmake"
"/usr/share/cmake-3.10/Modules/Platform/Linux-GNU-CXX.cmake"
"/usr/share/cmake-3.10/Modules/Platform/Linux-GNU.cmake"
"/usr/share/cmake-3.10/Modules/Platform/Linux.cmake"
"/usr/share/cmake-3.10/Modules/Platform/UnixPaths.cmake"
)
# The corresponding makefile is:
set(CMAKE_MAKEFILE_OUTPUTS
"Makefile"
"CMakeFiles/cmake.check_cache"
)
# Byproducts of CMake generate step:
set(CMAKE_MAKEFILE_PRODUCTS
"CMakeFiles/3.10.2/CMakeSystem.cmake"
"CMakeFiles/3.10.2/CMakeCCompiler.cmake"
"CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"
"CMakeFiles/3.10.2/CMakeCCompiler.cmake"
"CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"
"CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o.cmake.pre-gen"
"CMakeFiles/yolov5.dir/yolov5_generated_preprocess.cu.o.cmake.pre-gen"
"CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o.Debug.cmake"
"CMakeFiles/yolov5.dir/yolov5_generated_preprocess.cu.o.Debug.cmake"
"CMakeFiles/CMakeDirectoryInformation.cmake"
)
# Dependency information for all targets:
set(CMAKE_DEPEND_INFO_FILES
"CMakeFiles/yolov5-cls.dir/DependInfo.cmake"
"CMakeFiles/myplugins.dir/DependInfo.cmake"
"CMakeFiles/yolov5.dir/DependInfo.cmake"
)
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# The main recursive all target
all:
.PHONY : all
# The main recursive preinstall target
preinstall:
.PHONY : preinstall
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/ilens/tensorrtx/yolov5
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/ilens/tensorrtx/yolov5/build
#=============================================================================
# Target rules for target CMakeFiles/yolov5-cls.dir
# All Build rule for target.
CMakeFiles/yolov5-cls.dir/all: CMakeFiles/myplugins.dir/all
$(MAKE) -f CMakeFiles/yolov5-cls.dir/build.make CMakeFiles/yolov5-cls.dir/depend
$(MAKE) -f CMakeFiles/yolov5-cls.dir/build.make CMakeFiles/yolov5-cls.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ilens/tensorrtx/yolov5/build/CMakeFiles --progress-num=7,8,9 "Built target yolov5-cls"
.PHONY : CMakeFiles/yolov5-cls.dir/all
# Include target in all.
all: CMakeFiles/yolov5-cls.dir/all
.PHONY : all
# Build rule for subdir invocation for target.
CMakeFiles/yolov5-cls.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/ilens/tensorrtx/yolov5/build/CMakeFiles 5
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/yolov5-cls.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/ilens/tensorrtx/yolov5/build/CMakeFiles 0
.PHONY : CMakeFiles/yolov5-cls.dir/rule
# Convenience name for target.
yolov5-cls: CMakeFiles/yolov5-cls.dir/rule
.PHONY : yolov5-cls
# clean rule for target.
CMakeFiles/yolov5-cls.dir/clean:
$(MAKE) -f CMakeFiles/yolov5-cls.dir/build.make CMakeFiles/yolov5-cls.dir/clean
.PHONY : CMakeFiles/yolov5-cls.dir/clean
# clean rule for target.
clean: CMakeFiles/yolov5-cls.dir/clean
.PHONY : clean
#=============================================================================
# Target rules for target CMakeFiles/myplugins.dir
# All Build rule for target.
CMakeFiles/myplugins.dir/all:
$(MAKE) -f CMakeFiles/myplugins.dir/build.make CMakeFiles/myplugins.dir/depend
$(MAKE) -f CMakeFiles/myplugins.dir/build.make CMakeFiles/myplugins.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ilens/tensorrtx/yolov5/build/CMakeFiles --progress-num=1,2 "Built target myplugins"
.PHONY : CMakeFiles/myplugins.dir/all
# Include target in all.
all: CMakeFiles/myplugins.dir/all
.PHONY : all
# Build rule for subdir invocation for target.
CMakeFiles/myplugins.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/ilens/tensorrtx/yolov5/build/CMakeFiles 2
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/myplugins.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/ilens/tensorrtx/yolov5/build/CMakeFiles 0
.PHONY : CMakeFiles/myplugins.dir/rule
# Convenience name for target.
myplugins: CMakeFiles/myplugins.dir/rule
.PHONY : myplugins
# clean rule for target.
CMakeFiles/myplugins.dir/clean:
$(MAKE) -f CMakeFiles/myplugins.dir/build.make CMakeFiles/myplugins.dir/clean
.PHONY : CMakeFiles/myplugins.dir/clean
# clean rule for target.
clean: CMakeFiles/myplugins.dir/clean
.PHONY : clean
#=============================================================================
# Target rules for target CMakeFiles/yolov5.dir
# All Build rule for target.
CMakeFiles/yolov5.dir/all: CMakeFiles/myplugins.dir/all
$(MAKE) -f CMakeFiles/yolov5.dir/build.make CMakeFiles/yolov5.dir/depend
$(MAKE) -f CMakeFiles/yolov5.dir/build.make CMakeFiles/yolov5.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ilens/tensorrtx/yolov5/build/CMakeFiles --progress-num=3,4,5,6 "Built target yolov5"
.PHONY : CMakeFiles/yolov5.dir/all
# Include target in all.
all: CMakeFiles/yolov5.dir/all
.PHONY : all
# Build rule for subdir invocation for target.
CMakeFiles/yolov5.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/ilens/tensorrtx/yolov5/build/CMakeFiles 6
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/yolov5.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/ilens/tensorrtx/yolov5/build/CMakeFiles 0
.PHONY : CMakeFiles/yolov5.dir/rule
# Convenience name for target.
yolov5: CMakeFiles/yolov5.dir/rule
.PHONY : yolov5
# clean rule for target.
CMakeFiles/yolov5.dir/clean:
$(MAKE) -f CMakeFiles/yolov5.dir/build.make CMakeFiles/yolov5.dir/clean
.PHONY : CMakeFiles/yolov5.dir/clean
# clean rule for target.
clean: CMakeFiles/yolov5.dir/clean
.PHONY : clean
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
/home/ilens/tensorrtx/yolov5/build/CMakeFiles/rebuild_cache.dir
/home/ilens/tensorrtx/yolov5/build/CMakeFiles/edit_cache.dir
/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5-cls.dir
/home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir
/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir
# This file is generated by cmake for dependency checking of the CMakeCache.txt file
const char features[] = {"\n"
"C_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304
"1"
#else
"0"
#endif
"c_function_prototypes\n"
"C_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
"1"
#else
"0"
#endif
"c_restrict\n"
"C_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L
"1"
#else
"0"
#endif
"c_static_assert\n"
"C_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
"1"
#else
"0"
#endif
"c_variadic_macros\n"
};
int main(int argc, char** argv) { (void)argv; return features[argc]; }
const char features[] = {"\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
"1"
#else
"0"
#endif
"cxx_aggregate_default_initializers\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_alias_templates\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_alignas\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_alignof\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_attributes\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
"1"
#else
"0"
#endif
"cxx_attribute_deprecated\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_auto_type\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
"1"
#else
"0"
#endif
"cxx_binary_literals\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_constexpr\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
"1"
#else
"0"
#endif
"cxx_contextual_conversions\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_decltype\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
"1"
#else
"0"
#endif
"cxx_decltype_auto\n"
"CXX_FEATURE:"
#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_decltype_incomplete_return_types\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_default_function_template_args\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_defaulted_functions\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_defaulted_move_initializers\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_delegating_constructors\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_deleted_functions\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
"1"
#else
"0"
#endif
"cxx_digit_separators\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_enum_forward_declarations\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_explicit_conversions\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_extended_friend_declarations\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_extern_templates\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_final\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_func_identifier\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_generalized_initializers\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
"1"
#else
"0"
#endif
"cxx_generic_lambdas\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_inheriting_constructors\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_inline_namespaces\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_lambdas\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
"1"
#else
"0"
#endif
"cxx_lambda_init_captures\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_local_type_template_args\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_long_long_type\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_noexcept\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_nonstatic_member_init\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_nullptr\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_override\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_range_for\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_raw_string_literals\n"
"CXX_FEATURE:"
#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_reference_qualified_functions\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
"1"
#else
"0"
#endif
"cxx_relaxed_constexpr\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
"1"
#else
"0"
#endif
"cxx_return_type_deduction\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_right_angle_brackets\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_rvalue_references\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_sizeof_member\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_static_assert\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_strong_enums\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus
"1"
#else
"0"
#endif
"cxx_template_template_parameters\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_thread_local\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_trailing_return_types\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_unicode_literals\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_uniform_initialization\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_unrestricted_unions\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_user_literals\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
"1"
#else
"0"
#endif
"cxx_variable_templates\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_variadic_macros\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_variadic_templates\n"
};
int main(int argc, char** argv) { (void)argv; return features[argc]; }
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
)
# The set of files for implicit dependencies of each language:
# Targets to which this target links.
set(CMAKE_TARGET_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/ilens/tensorrtx/yolov5
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/ilens/tensorrtx/yolov5/build
# Include any dependencies generated for this target.
include CMakeFiles/myplugins.dir/depend.make
# Include the progress variables for this target.
include CMakeFiles/myplugins.dir/progress.make
# Include the compile flags for this target's objects.
include CMakeFiles/myplugins.dir/flags.make
CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o: CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o.depend
CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o: CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o.Debug.cmake
CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o: ../yololayer.cu
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/ilens/tensorrtx/yolov5/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building NVCC (Device) object CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o"
cd /home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir && /usr/bin/cmake -E make_directory /home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir//.
cd /home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir && /usr/bin/cmake -D verbose:BOOL=$(VERBOSE) -D build_configuration:STRING=Debug -D generated_file:STRING=/home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir//./myplugins_generated_yololayer.cu.o -D generated_cubin_file:STRING=/home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir//./myplugins_generated_yololayer.cu.o.cubin.txt -P /home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir//myplugins_generated_yololayer.cu.o.Debug.cmake
# Object files for target myplugins
myplugins_OBJECTS =
# External object files for target myplugins
myplugins_EXTERNAL_OBJECTS = \
"/home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o"
libmyplugins.so: CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o
libmyplugins.so: CMakeFiles/myplugins.dir/build.make
libmyplugins.so: /usr/local/cuda/lib64/libcudart.so
libmyplugins.so: CMakeFiles/myplugins.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ilens/tensorrtx/yolov5/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX shared library libmyplugins.so"
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/myplugins.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
CMakeFiles/myplugins.dir/build: libmyplugins.so
.PHONY : CMakeFiles/myplugins.dir/build
CMakeFiles/myplugins.dir/requires:
.PHONY : CMakeFiles/myplugins.dir/requires
CMakeFiles/myplugins.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/myplugins.dir/cmake_clean.cmake
.PHONY : CMakeFiles/myplugins.dir/clean
CMakeFiles/myplugins.dir/depend: CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o
cd /home/ilens/tensorrtx/yolov5/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ilens/tensorrtx/yolov5 /home/ilens/tensorrtx/yolov5 /home/ilens/tensorrtx/yolov5/build /home/ilens/tensorrtx/yolov5/build /home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : CMakeFiles/myplugins.dir/depend
file(REMOVE_RECURSE
"CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o"
"libmyplugins.pdb"
"libmyplugins.so"
)
# Per-language clean rules from dependency scanning.
foreach(lang )
include(CMakeFiles/myplugins.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
/usr/bin/c++ -fPIC -std=c++11 -Wall -Ofast -g -Wfatal-errors -D_MWAITXINTRIN_H_INCLUDED -g -shared -Wl,-soname,libmyplugins.so -o libmyplugins.so CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o -L/usr/local/cuda/lib64 -L/usr/lib/x86_64-linux-gnu -Wl,-rpath,/usr/local/cuda/lib64:/usr/lib/x86_64-linux-gnu /usr/local/cuda/lib64/libcudart.so -lnvinfer -lcudart
# James Bigler, NVIDIA Corp (nvidia.com - jbigler)
#
# Copyright (c) 2008 - 2009 NVIDIA Corporation. All rights reserved.
#
# This code is licensed under the MIT License. See the FindCUDA.cmake script
# for the text of the license.
# The MIT License
#
# License for the specific language governing rights and limitations under
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
##########################################################################
# This file runs the nvcc commands to produce the desired output file along with
# the dependency file needed by CMake to compute dependencies. In addition the
# file checks the output of each command and if the command fails it deletes the
# output files.
# Input variables
#
# verbose:BOOL=<> OFF: Be as quiet as possible (default)
# ON : Describe each step
#
# build_configuration:STRING=<> Typically one of Debug, MinSizeRel, Release, or
# RelWithDebInfo, but it should match one of the
# entries in CUDA_HOST_FLAGS. This is the build
# configuration used when compiling the code. If
# blank or unspecified Debug is assumed as this is
# what CMake does.
#
# generated_file:STRING=<> File to generate. This argument must be passed in.
#
# generated_cubin_file:STRING=<> File to generate. This argument must be passed
# in if build_cubin is true.
cmake_policy(PUSH)
cmake_policy(SET CMP0007 NEW)
if(NOT generated_file)
message(FATAL_ERROR "You must specify generated_file on the command line")
endif()
# Set these up as variables to make reading the generated file easier
set(CMAKE_COMMAND "/usr/bin/cmake") # path
set(source_file "/home/ilens/tensorrtx/yolov5/yololayer.cu") # path
set(NVCC_generated_dependency_file "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir//myplugins_generated_yololayer.cu.o.NVCC-depend") # path
set(cmake_dependency_file "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir//myplugins_generated_yololayer.cu.o.depend") # path
set(CUDA_make2cmake "/usr/share/cmake-3.10/Modules/FindCUDA/make2cmake.cmake") # path
set(CUDA_parse_cubin "/usr/share/cmake-3.10/Modules/FindCUDA/parse_cubin.cmake") # path
set(build_cubin OFF) # bool
set(CUDA_HOST_COMPILER "/usr/bin/cc") # path
# We won't actually use these variables for now, but we need to set this, in
# order to force this file to be run again if it changes.
set(generated_file_path "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir//.") # path
set(generated_file_internal "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir//./myplugins_generated_yololayer.cu.o") # path
set(generated_cubin_file_internal "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir//./myplugins_generated_yololayer.cu.o.cubin.txt") # path
set(CUDA_NVCC_EXECUTABLE "/usr/local/cuda/bin/nvcc") # path
set(CUDA_NVCC_FLAGS ;; ) # list
# Build specific configuration flags
set(CUDA_NVCC_FLAGS_DEBUG ; )
set(CUDA_NVCC_FLAGS_MINSIZEREL ; )
set(CUDA_NVCC_FLAGS_RELEASE ; )
set(CUDA_NVCC_FLAGS_RELWITHDEBINFO ; )
set(nvcc_flags -m64;--std;c++11;-Dmyplugins_EXPORTS) # list
set(CUDA_NVCC_INCLUDE_DIRS "/usr/local/cuda/include;/home/ilens/tensorrtx/yolov5/include;/usr/local/cuda/include;/usr/include/x86_64-linux-gnu;/usr/include/opencv4") # list (needs to be in quotes to handle spaces properly).
set(CUDA_NVCC_COMPILE_DEFINITIONS [==[API_EXPORTS]==]) # list (needs to be in lua quotes see #16510 ).
set(format_flag "-c") # string
set(cuda_language_flag ) # list
# Clean up list of include directories and add -I flags
list(REMOVE_DUPLICATES CUDA_NVCC_INCLUDE_DIRS)
set(CUDA_NVCC_INCLUDE_ARGS)
foreach(dir ${CUDA_NVCC_INCLUDE_DIRS})
# Extra quotes are added around each flag to help nvcc parse out flags with spaces.
list(APPEND CUDA_NVCC_INCLUDE_ARGS "-I${dir}")
endforeach()
# Clean up list of compile definitions, add -D flags, and append to nvcc_flags
list(REMOVE_DUPLICATES CUDA_NVCC_COMPILE_DEFINITIONS)
foreach(def ${CUDA_NVCC_COMPILE_DEFINITIONS})
list(APPEND nvcc_flags "-D${def}")
endforeach()
if(build_cubin AND NOT generated_cubin_file)
message(FATAL_ERROR "You must specify generated_cubin_file on the command line")
endif()
# This is the list of host compilation flags. It C or CXX should already have
# been chosen by FindCUDA.cmake.
set(CMAKE_HOST_FLAGS -Wall -Ofast -g -Wfatal-errors -D_MWAITXINTRIN_H_INCLUDED -fPIC)
set(CMAKE_HOST_FLAGS_DEBUG -g)
set(CMAKE_HOST_FLAGS_MINSIZEREL -Os -DNDEBUG)
set(CMAKE_HOST_FLAGS_RELEASE -O3 -DNDEBUG)
set(CMAKE_HOST_FLAGS_RELWITHDEBINFO -O2 -g -DNDEBUG)
# Take the compiler flags and package them up to be sent to the compiler via -Xcompiler
set(nvcc_host_compiler_flags "")
# If we weren't given a build_configuration, use Debug.
if(NOT build_configuration)
set(build_configuration Debug)
endif()
string(TOUPPER "${build_configuration}" build_configuration)
#message("CUDA_NVCC_HOST_COMPILER_FLAGS = ${CUDA_NVCC_HOST_COMPILER_FLAGS}")
foreach(flag ${CMAKE_HOST_FLAGS} ${CMAKE_HOST_FLAGS_${build_configuration}})
# Extra quotes are added around each flag to help nvcc parse out flags with spaces.
string(APPEND nvcc_host_compiler_flags ",\"${flag}\"")
endforeach()
if (nvcc_host_compiler_flags)
set(nvcc_host_compiler_flags "-Xcompiler" ${nvcc_host_compiler_flags})
endif()
#message("nvcc_host_compiler_flags = \"${nvcc_host_compiler_flags}\"")
# Add the build specific configuration flags
list(APPEND CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS_${build_configuration}})
# Any -ccbin existing in CUDA_NVCC_FLAGS gets highest priority
list( FIND CUDA_NVCC_FLAGS "-ccbin" ccbin_found0 )
list( FIND CUDA_NVCC_FLAGS "--compiler-bindir" ccbin_found1 )
if( ccbin_found0 LESS 0 AND ccbin_found1 LESS 0 AND CUDA_HOST_COMPILER )
if (CUDA_HOST_COMPILER STREQUAL "$(VCInstallDir)bin" AND DEFINED CCBIN)
set(CCBIN -ccbin "${CCBIN}")
else()
set(CCBIN -ccbin "${CUDA_HOST_COMPILER}")
endif()
endif()
# cuda_execute_process - Executes a command with optional command echo and status message.
#
# status - Status message to print if verbose is true
# command - COMMAND argument from the usual execute_process argument structure
# ARGN - Remaining arguments are the command with arguments
#
# CUDA_result - return value from running the command
#
# Make this a macro instead of a function, so that things like RESULT_VARIABLE
# and other return variables are present after executing the process.
macro(cuda_execute_process status command)
set(_command ${command})
if(NOT "x${_command}" STREQUAL "xCOMMAND")
message(FATAL_ERROR "Malformed call to cuda_execute_process. Missing COMMAND as second argument. (command = ${command})")
endif()
if(verbose)
execute_process(COMMAND "${CMAKE_COMMAND}" -E echo -- ${status})
# Now we need to build up our command string. We are accounting for quotes
# and spaces, anything else is left up to the user to fix if they want to
# copy and paste a runnable command line.
set(cuda_execute_process_string)
foreach(arg ${ARGN})
# If there are quotes, excape them, so they come through.
string(REPLACE "\"" "\\\"" arg ${arg})
# Args with spaces need quotes around them to get them to be parsed as a single argument.
if(arg MATCHES " ")
list(APPEND cuda_execute_process_string "\"${arg}\"")
else()
list(APPEND cuda_execute_process_string ${arg})
endif()
endforeach()
# Echo the command
execute_process(COMMAND ${CMAKE_COMMAND} -E echo ${cuda_execute_process_string})
endif()
# Run the command
execute_process(COMMAND ${ARGN} RESULT_VARIABLE CUDA_result )
endmacro()
# Delete the target file
cuda_execute_process(
"Removing ${generated_file}"
COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}"
)
# For CUDA 2.3 and below, -G -M doesn't work, so remove the -G flag
# for dependency generation and hope for the best.
set(depends_CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS}")
set(CUDA_VERSION 10.2)
if(CUDA_VERSION VERSION_LESS "3.0")
# Note that this will remove all occurances of -G.
list(REMOVE_ITEM depends_CUDA_NVCC_FLAGS "-G")
endif()
# nvcc doesn't define __CUDACC__ for some reason when generating dependency files. This
# can cause incorrect dependencies when #including files based on this macro which is
# defined in the generating passes of nvcc invokation. We will go ahead and manually
# define this for now until a future version fixes this bug.
set(CUDACC_DEFINE -D__CUDACC__)
# Generate the dependency file
cuda_execute_process(
"Generating dependency file: ${NVCC_generated_dependency_file}"
COMMAND "${CUDA_NVCC_EXECUTABLE}"
-M
${CUDACC_DEFINE}
"${source_file}"
-o "${NVCC_generated_dependency_file}"
${CCBIN}
${nvcc_flags}
${nvcc_host_compiler_flags}
${depends_CUDA_NVCC_FLAGS}
-DNVCC
${CUDA_NVCC_INCLUDE_ARGS}
)
if(CUDA_result)
message(FATAL_ERROR "Error generating ${generated_file}")
endif()
# Generate the cmake readable dependency file to a temp file. Don't put the
# quotes just around the filenames for the input_file and output_file variables.
# CMake will pass the quotes through and not be able to find the file.
cuda_execute_process(
"Generating temporary cmake readable file: ${cmake_dependency_file}.tmp"
COMMAND "${CMAKE_COMMAND}"
-D "input_file:FILEPATH=${NVCC_generated_dependency_file}"
-D "output_file:FILEPATH=${cmake_dependency_file}.tmp"
-D "verbose=${verbose}"
-P "${CUDA_make2cmake}"
)
if(CUDA_result)
message(FATAL_ERROR "Error generating ${generated_file}")
endif()
# Copy the file if it is different
cuda_execute_process(
"Copy if different ${cmake_dependency_file}.tmp to ${cmake_dependency_file}"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${cmake_dependency_file}.tmp" "${cmake_dependency_file}"
)
if(CUDA_result)
message(FATAL_ERROR "Error generating ${generated_file}")
endif()
# Delete the temporary file
cuda_execute_process(
"Removing ${cmake_dependency_file}.tmp and ${NVCC_generated_dependency_file}"
COMMAND "${CMAKE_COMMAND}" -E remove "${cmake_dependency_file}.tmp" "${NVCC_generated_dependency_file}"
)
if(CUDA_result)
message(FATAL_ERROR "Error generating ${generated_file}")
endif()
# Generate the code
cuda_execute_process(
"Generating ${generated_file}"
COMMAND "${CUDA_NVCC_EXECUTABLE}"
"${source_file}"
${cuda_language_flag}
${format_flag} -o "${generated_file}"
${CCBIN}
${nvcc_flags}
${nvcc_host_compiler_flags}
${CUDA_NVCC_FLAGS}
-DNVCC
${CUDA_NVCC_INCLUDE_ARGS}
)
if(CUDA_result)
# Since nvcc can sometimes leave half done files make sure that we delete the output file.
cuda_execute_process(
"Removing ${generated_file}"
COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}"
)
message(FATAL_ERROR "Error generating file ${generated_file}")
else()
if(verbose)
message("Generated ${generated_file} successfully.")
endif()
endif()
# Cubin resource report commands.
if( build_cubin )
# Run with -cubin to produce resource usage report.
cuda_execute_process(
"Generating ${generated_cubin_file}"
COMMAND "${CUDA_NVCC_EXECUTABLE}"
"${source_file}"
${CUDA_NVCC_FLAGS}
${nvcc_flags}
${CCBIN}
${nvcc_host_compiler_flags}
-DNVCC
-cubin
-o "${generated_cubin_file}"
${CUDA_NVCC_INCLUDE_ARGS}
)
# Execute the parser script.
cuda_execute_process(
"Executing the parser script"
COMMAND "${CMAKE_COMMAND}"
-D "input_file:STRING=${generated_cubin_file}"
-P "${CUDA_parse_cubin}"
)
endif()
cmake_policy(POP)
# James Bigler, NVIDIA Corp (nvidia.com - jbigler)
#
# Copyright (c) 2008 - 2009 NVIDIA Corporation. All rights reserved.
#
# This code is licensed under the MIT License. See the FindCUDA.cmake script
# for the text of the license.
# The MIT License
#
# License for the specific language governing rights and limitations under
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
##########################################################################
# This file runs the nvcc commands to produce the desired output file along with
# the dependency file needed by CMake to compute dependencies. In addition the
# file checks the output of each command and if the command fails it deletes the
# output files.
# Input variables
#
# verbose:BOOL=<> OFF: Be as quiet as possible (default)
# ON : Describe each step
#
# build_configuration:STRING=<> Typically one of Debug, MinSizeRel, Release, or
# RelWithDebInfo, but it should match one of the
# entries in CUDA_HOST_FLAGS. This is the build
# configuration used when compiling the code. If
# blank or unspecified Debug is assumed as this is
# what CMake does.
#
# generated_file:STRING=<> File to generate. This argument must be passed in.
#
# generated_cubin_file:STRING=<> File to generate. This argument must be passed
# in if build_cubin is true.
cmake_policy(PUSH)
cmake_policy(SET CMP0007 NEW)
if(NOT generated_file)
message(FATAL_ERROR "You must specify generated_file on the command line")
endif()
# Set these up as variables to make reading the generated file easier
set(CMAKE_COMMAND "/usr/bin/cmake") # path
set(source_file "/home/ilens/tensorrtx/yolov5/yololayer.cu") # path
set(NVCC_generated_dependency_file "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir//myplugins_generated_yololayer.cu.o.NVCC-depend") # path
set(cmake_dependency_file "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir//myplugins_generated_yololayer.cu.o.depend") # path
set(CUDA_make2cmake "/usr/share/cmake-3.10/Modules/FindCUDA/make2cmake.cmake") # path
set(CUDA_parse_cubin "/usr/share/cmake-3.10/Modules/FindCUDA/parse_cubin.cmake") # path
set(build_cubin OFF) # bool
set(CUDA_HOST_COMPILER "/usr/bin/cc") # path
# We won't actually use these variables for now, but we need to set this, in
# order to force this file to be run again if it changes.
set(generated_file_path "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir//.") # path
set(generated_file_internal "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir//./myplugins_generated_yololayer.cu.o") # path
set(generated_cubin_file_internal "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir//./myplugins_generated_yololayer.cu.o.cubin.txt") # path
set(CUDA_NVCC_EXECUTABLE "/usr/local/cuda/bin/nvcc") # path
set(CUDA_NVCC_FLAGS ;; ) # list
# Build specific configuration flags
set(CUDA_NVCC_FLAGS_DEBUG ; )
set(CUDA_NVCC_FLAGS_MINSIZEREL ; )
set(CUDA_NVCC_FLAGS_RELEASE ; )
set(CUDA_NVCC_FLAGS_RELWITHDEBINFO ; )
set(nvcc_flags -m64;--std;c++11;-Dmyplugins_EXPORTS) # list
set(CUDA_NVCC_INCLUDE_DIRS "/usr/local/cuda/include;$<TARGET_PROPERTY:myplugins,INCLUDE_DIRECTORIES>") # list (needs to be in quotes to handle spaces properly).
set(CUDA_NVCC_COMPILE_DEFINITIONS [==[$<TARGET_PROPERTY:myplugins,COMPILE_DEFINITIONS>]==]) # list (needs to be in lua quotes see #16510 ).
set(format_flag "-c") # string
set(cuda_language_flag ) # list
# Clean up list of include directories and add -I flags
list(REMOVE_DUPLICATES CUDA_NVCC_INCLUDE_DIRS)
set(CUDA_NVCC_INCLUDE_ARGS)
foreach(dir ${CUDA_NVCC_INCLUDE_DIRS})
# Extra quotes are added around each flag to help nvcc parse out flags with spaces.
list(APPEND CUDA_NVCC_INCLUDE_ARGS "-I${dir}")
endforeach()
# Clean up list of compile definitions, add -D flags, and append to nvcc_flags
list(REMOVE_DUPLICATES CUDA_NVCC_COMPILE_DEFINITIONS)
foreach(def ${CUDA_NVCC_COMPILE_DEFINITIONS})
list(APPEND nvcc_flags "-D${def}")
endforeach()
if(build_cubin AND NOT generated_cubin_file)
message(FATAL_ERROR "You must specify generated_cubin_file on the command line")
endif()
# This is the list of host compilation flags. It C or CXX should already have
# been chosen by FindCUDA.cmake.
set(CMAKE_HOST_FLAGS -Wall -Ofast -g -Wfatal-errors -D_MWAITXINTRIN_H_INCLUDED -fPIC)
set(CMAKE_HOST_FLAGS_DEBUG -g)
set(CMAKE_HOST_FLAGS_MINSIZEREL -Os -DNDEBUG)
set(CMAKE_HOST_FLAGS_RELEASE -O3 -DNDEBUG)
set(CMAKE_HOST_FLAGS_RELWITHDEBINFO -O2 -g -DNDEBUG)
# Take the compiler flags and package them up to be sent to the compiler via -Xcompiler
set(nvcc_host_compiler_flags "")
# If we weren't given a build_configuration, use Debug.
if(NOT build_configuration)
set(build_configuration Debug)
endif()
string(TOUPPER "${build_configuration}" build_configuration)
#message("CUDA_NVCC_HOST_COMPILER_FLAGS = ${CUDA_NVCC_HOST_COMPILER_FLAGS}")
foreach(flag ${CMAKE_HOST_FLAGS} ${CMAKE_HOST_FLAGS_${build_configuration}})
# Extra quotes are added around each flag to help nvcc parse out flags with spaces.
string(APPEND nvcc_host_compiler_flags ",\"${flag}\"")
endforeach()
if (nvcc_host_compiler_flags)
set(nvcc_host_compiler_flags "-Xcompiler" ${nvcc_host_compiler_flags})
endif()
#message("nvcc_host_compiler_flags = \"${nvcc_host_compiler_flags}\"")
# Add the build specific configuration flags
list(APPEND CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS_${build_configuration}})
# Any -ccbin existing in CUDA_NVCC_FLAGS gets highest priority
list( FIND CUDA_NVCC_FLAGS "-ccbin" ccbin_found0 )
list( FIND CUDA_NVCC_FLAGS "--compiler-bindir" ccbin_found1 )
if( ccbin_found0 LESS 0 AND ccbin_found1 LESS 0 AND CUDA_HOST_COMPILER )
if (CUDA_HOST_COMPILER STREQUAL "$(VCInstallDir)bin" AND DEFINED CCBIN)
set(CCBIN -ccbin "${CCBIN}")
else()
set(CCBIN -ccbin "${CUDA_HOST_COMPILER}")
endif()
endif()
# cuda_execute_process - Executes a command with optional command echo and status message.
#
# status - Status message to print if verbose is true
# command - COMMAND argument from the usual execute_process argument structure
# ARGN - Remaining arguments are the command with arguments
#
# CUDA_result - return value from running the command
#
# Make this a macro instead of a function, so that things like RESULT_VARIABLE
# and other return variables are present after executing the process.
macro(cuda_execute_process status command)
set(_command ${command})
if(NOT "x${_command}" STREQUAL "xCOMMAND")
message(FATAL_ERROR "Malformed call to cuda_execute_process. Missing COMMAND as second argument. (command = ${command})")
endif()
if(verbose)
execute_process(COMMAND "${CMAKE_COMMAND}" -E echo -- ${status})
# Now we need to build up our command string. We are accounting for quotes
# and spaces, anything else is left up to the user to fix if they want to
# copy and paste a runnable command line.
set(cuda_execute_process_string)
foreach(arg ${ARGN})
# If there are quotes, excape them, so they come through.
string(REPLACE "\"" "\\\"" arg ${arg})
# Args with spaces need quotes around them to get them to be parsed as a single argument.
if(arg MATCHES " ")
list(APPEND cuda_execute_process_string "\"${arg}\"")
else()
list(APPEND cuda_execute_process_string ${arg})
endif()
endforeach()
# Echo the command
execute_process(COMMAND ${CMAKE_COMMAND} -E echo ${cuda_execute_process_string})
endif()
# Run the command
execute_process(COMMAND ${ARGN} RESULT_VARIABLE CUDA_result )
endmacro()
# Delete the target file
cuda_execute_process(
"Removing ${generated_file}"
COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}"
)
# For CUDA 2.3 and below, -G -M doesn't work, so remove the -G flag
# for dependency generation and hope for the best.
set(depends_CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS}")
set(CUDA_VERSION 10.2)
if(CUDA_VERSION VERSION_LESS "3.0")
# Note that this will remove all occurances of -G.
list(REMOVE_ITEM depends_CUDA_NVCC_FLAGS "-G")
endif()
# nvcc doesn't define __CUDACC__ for some reason when generating dependency files. This
# can cause incorrect dependencies when #including files based on this macro which is
# defined in the generating passes of nvcc invokation. We will go ahead and manually
# define this for now until a future version fixes this bug.
set(CUDACC_DEFINE -D__CUDACC__)
# Generate the dependency file
cuda_execute_process(
"Generating dependency file: ${NVCC_generated_dependency_file}"
COMMAND "${CUDA_NVCC_EXECUTABLE}"
-M
${CUDACC_DEFINE}
"${source_file}"
-o "${NVCC_generated_dependency_file}"
${CCBIN}
${nvcc_flags}
${nvcc_host_compiler_flags}
${depends_CUDA_NVCC_FLAGS}
-DNVCC
${CUDA_NVCC_INCLUDE_ARGS}
)
if(CUDA_result)
message(FATAL_ERROR "Error generating ${generated_file}")
endif()
# Generate the cmake readable dependency file to a temp file. Don't put the
# quotes just around the filenames for the input_file and output_file variables.
# CMake will pass the quotes through and not be able to find the file.
cuda_execute_process(
"Generating temporary cmake readable file: ${cmake_dependency_file}.tmp"
COMMAND "${CMAKE_COMMAND}"
-D "input_file:FILEPATH=${NVCC_generated_dependency_file}"
-D "output_file:FILEPATH=${cmake_dependency_file}.tmp"
-D "verbose=${verbose}"
-P "${CUDA_make2cmake}"
)
if(CUDA_result)
message(FATAL_ERROR "Error generating ${generated_file}")
endif()
# Copy the file if it is different
cuda_execute_process(
"Copy if different ${cmake_dependency_file}.tmp to ${cmake_dependency_file}"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${cmake_dependency_file}.tmp" "${cmake_dependency_file}"
)
if(CUDA_result)
message(FATAL_ERROR "Error generating ${generated_file}")
endif()
# Delete the temporary file
cuda_execute_process(
"Removing ${cmake_dependency_file}.tmp and ${NVCC_generated_dependency_file}"
COMMAND "${CMAKE_COMMAND}" -E remove "${cmake_dependency_file}.tmp" "${NVCC_generated_dependency_file}"
)
if(CUDA_result)
message(FATAL_ERROR "Error generating ${generated_file}")
endif()
# Generate the code
cuda_execute_process(
"Generating ${generated_file}"
COMMAND "${CUDA_NVCC_EXECUTABLE}"
"${source_file}"
${cuda_language_flag}
${format_flag} -o "${generated_file}"
${CCBIN}
${nvcc_flags}
${nvcc_host_compiler_flags}
${CUDA_NVCC_FLAGS}
-DNVCC
${CUDA_NVCC_INCLUDE_ARGS}
)
if(CUDA_result)
# Since nvcc can sometimes leave half done files make sure that we delete the output file.
cuda_execute_process(
"Removing ${generated_file}"
COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}"
)
message(FATAL_ERROR "Error generating file ${generated_file}")
else()
if(verbose)
message("Generated ${generated_file} successfully.")
endif()
endif()
# Cubin resource report commands.
if( build_cubin )
# Run with -cubin to produce resource usage report.
cuda_execute_process(
"Generating ${generated_cubin_file}"
COMMAND "${CUDA_NVCC_EXECUTABLE}"
"${source_file}"
${CUDA_NVCC_FLAGS}
${nvcc_flags}
${CCBIN}
${nvcc_host_compiler_flags}
-DNVCC
-cubin
-o "${generated_cubin_file}"
${CUDA_NVCC_INCLUDE_ARGS}
)
# Execute the parser script.
cuda_execute_process(
"Executing the parser script"
COMMAND "${CMAKE_COMMAND}"
-D "input_file:STRING=${generated_cubin_file}"
-P "${CUDA_parse_cubin}"
)
endif()
cmake_policy(POP)
# Generated by: make2cmake.cmake
SET(CUDA_NVCC_DEPEND
"/home/ilens/tensorrtx/yolov5/cuda_utils.h"
"/home/ilens/tensorrtx/yolov5/macros.h"
"/home/ilens/tensorrtx/yolov5/yololayer.cu"
"/home/ilens/tensorrtx/yolov5/yololayer.h"
"/usr/include/aarch64-linux-gnu/NvInfer.h"
"/usr/include/aarch64-linux-gnu/NvInferImpl.h"
"/usr/include/aarch64-linux-gnu/NvInferLegacyDims.h"
"/usr/include/aarch64-linux-gnu/NvInferRuntime.h"
"/usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h"
"/usr/include/aarch64-linux-gnu/NvInferVersion.h"
"/usr/include/aarch64-linux-gnu/asm/errno.h"
"/usr/include/aarch64-linux-gnu/bits/_G_config.h"
"/usr/include/aarch64-linux-gnu/bits/byteswap-16.h"
"/usr/include/aarch64-linux-gnu/bits/byteswap.h"
"/usr/include/aarch64-linux-gnu/bits/cpu-set.h"
"/usr/include/aarch64-linux-gnu/bits/endian.h"
"/usr/include/aarch64-linux-gnu/bits/errno.h"
"/usr/include/aarch64-linux-gnu/bits/floatn-common.h"
"/usr/include/aarch64-linux-gnu/bits/floatn.h"
"/usr/include/aarch64-linux-gnu/bits/flt-eval-method.h"
"/usr/include/aarch64-linux-gnu/bits/fp-fast.h"
"/usr/include/aarch64-linux-gnu/bits/fp-logb.h"
"/usr/include/aarch64-linux-gnu/bits/iscanonical.h"
"/usr/include/aarch64-linux-gnu/bits/libc-header-start.h"
"/usr/include/aarch64-linux-gnu/bits/libio.h"
"/usr/include/aarch64-linux-gnu/bits/libm-simd-decl-stubs.h"
"/usr/include/aarch64-linux-gnu/bits/local_lim.h"
"/usr/include/aarch64-linux-gnu/bits/locale.h"
"/usr/include/aarch64-linux-gnu/bits/long-double.h"
"/usr/include/aarch64-linux-gnu/bits/math-finite.h"
"/usr/include/aarch64-linux-gnu/bits/math-vector.h"
"/usr/include/aarch64-linux-gnu/bits/mathcalls-helper-functions.h"
"/usr/include/aarch64-linux-gnu/bits/mathcalls.h"
"/usr/include/aarch64-linux-gnu/bits/mathinline.h"
"/usr/include/aarch64-linux-gnu/bits/posix1_lim.h"
"/usr/include/aarch64-linux-gnu/bits/posix2_lim.h"
"/usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h"
"/usr/include/aarch64-linux-gnu/bits/pthreadtypes.h"
"/usr/include/aarch64-linux-gnu/bits/sched.h"
"/usr/include/aarch64-linux-gnu/bits/select.h"
"/usr/include/aarch64-linux-gnu/bits/select2.h"
"/usr/include/aarch64-linux-gnu/bits/setjmp.h"
"/usr/include/aarch64-linux-gnu/bits/stdint-intn.h"
"/usr/include/aarch64-linux-gnu/bits/stdint-uintn.h"
"/usr/include/aarch64-linux-gnu/bits/stdio.h"
"/usr/include/aarch64-linux-gnu/bits/stdio2.h"
"/usr/include/aarch64-linux-gnu/bits/stdio_lim.h"
"/usr/include/aarch64-linux-gnu/bits/stdlib-bsearch.h"
"/usr/include/aarch64-linux-gnu/bits/stdlib-float.h"
"/usr/include/aarch64-linux-gnu/bits/stdlib.h"
"/usr/include/aarch64-linux-gnu/bits/string_fortified.h"
"/usr/include/aarch64-linux-gnu/bits/strings_fortified.h"
"/usr/include/aarch64-linux-gnu/bits/sys_errlist.h"
"/usr/include/aarch64-linux-gnu/bits/sysmacros.h"
"/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h"
"/usr/include/aarch64-linux-gnu/bits/time.h"
"/usr/include/aarch64-linux-gnu/bits/timex.h"
"/usr/include/aarch64-linux-gnu/bits/types.h"
"/usr/include/aarch64-linux-gnu/bits/types/FILE.h"
"/usr/include/aarch64-linux-gnu/bits/types/__FILE.h"
"/usr/include/aarch64-linux-gnu/bits/types/__locale_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/clock_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/clockid_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/locale_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/mbstate_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/sigset_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/struct_itimerspec.h"
"/usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h"
"/usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h"
"/usr/include/aarch64-linux-gnu/bits/types/struct_tm.h"
"/usr/include/aarch64-linux-gnu/bits/types/time_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/timer_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/wint_t.h"
"/usr/include/aarch64-linux-gnu/bits/typesizes.h"
"/usr/include/aarch64-linux-gnu/bits/uintn-identity.h"
"/usr/include/aarch64-linux-gnu/bits/uio_lim.h"
"/usr/include/aarch64-linux-gnu/bits/waitflags.h"
"/usr/include/aarch64-linux-gnu/bits/waitstatus.h"
"/usr/include/aarch64-linux-gnu/bits/wchar.h"
"/usr/include/aarch64-linux-gnu/bits/wchar2.h"
"/usr/include/aarch64-linux-gnu/bits/wctype-wchar.h"
"/usr/include/aarch64-linux-gnu/bits/wordsize.h"
"/usr/include/aarch64-linux-gnu/bits/xopen_lim.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/atomic_word.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/c++allocator.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/c++config.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/c++locale.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/cpu_defines.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/ctype_base.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/ctype_inline.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/error_constants.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/gthr-default.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/gthr.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/os_defines.h"
"/usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h"
"/usr/include/aarch64-linux-gnu/gnu/stubs.h"
"/usr/include/aarch64-linux-gnu/sys/cdefs.h"
"/usr/include/aarch64-linux-gnu/sys/select.h"
"/usr/include/aarch64-linux-gnu/sys/sysmacros.h"
"/usr/include/aarch64-linux-gnu/sys/types.h"
"/usr/include/alloca.h"
"/usr/include/asm-generic/errno-base.h"
"/usr/include/asm-generic/errno.h"
"/usr/include/assert.h"
"/usr/include/c++/7/backward/binders.h"
"/usr/include/c++/7/bits/alloc_traits.h"
"/usr/include/c++/7/bits/allocator.h"
"/usr/include/c++/7/bits/basic_ios.h"
"/usr/include/c++/7/bits/basic_ios.tcc"
"/usr/include/c++/7/bits/basic_string.h"
"/usr/include/c++/7/bits/basic_string.tcc"
"/usr/include/c++/7/bits/char_traits.h"
"/usr/include/c++/7/bits/concept_check.h"
"/usr/include/c++/7/bits/cpp_type_traits.h"
"/usr/include/c++/7/bits/cxxabi_forced.h"
"/usr/include/c++/7/bits/cxxabi_init_exception.h"
"/usr/include/c++/7/bits/exception.h"
"/usr/include/c++/7/bits/exception_defines.h"
"/usr/include/c++/7/bits/exception_ptr.h"
"/usr/include/c++/7/bits/functexcept.h"
"/usr/include/c++/7/bits/functional_hash.h"
"/usr/include/c++/7/bits/hash_bytes.h"
"/usr/include/c++/7/bits/ios_base.h"
"/usr/include/c++/7/bits/istream.tcc"
"/usr/include/c++/7/bits/locale_classes.h"
"/usr/include/c++/7/bits/locale_classes.tcc"
"/usr/include/c++/7/bits/locale_facets.h"
"/usr/include/c++/7/bits/locale_facets.tcc"
"/usr/include/c++/7/bits/localefwd.h"
"/usr/include/c++/7/bits/memoryfwd.h"
"/usr/include/c++/7/bits/move.h"
"/usr/include/c++/7/bits/nested_exception.h"
"/usr/include/c++/7/bits/ostream.tcc"
"/usr/include/c++/7/bits/ostream_insert.h"
"/usr/include/c++/7/bits/postypes.h"
"/usr/include/c++/7/bits/predefined_ops.h"
"/usr/include/c++/7/bits/ptr_traits.h"
"/usr/include/c++/7/bits/range_access.h"
"/usr/include/c++/7/bits/std_abs.h"
"/usr/include/c++/7/bits/stl_algobase.h"
"/usr/include/c++/7/bits/stl_bvector.h"
"/usr/include/c++/7/bits/stl_construct.h"
"/usr/include/c++/7/bits/stl_function.h"
"/usr/include/c++/7/bits/stl_iterator.h"
"/usr/include/c++/7/bits/stl_iterator_base_funcs.h"
"/usr/include/c++/7/bits/stl_iterator_base_types.h"
"/usr/include/c++/7/bits/stl_pair.h"
"/usr/include/c++/7/bits/stl_uninitialized.h"
"/usr/include/c++/7/bits/stl_vector.h"
"/usr/include/c++/7/bits/streambuf.tcc"
"/usr/include/c++/7/bits/streambuf_iterator.h"
"/usr/include/c++/7/bits/stringfwd.h"
"/usr/include/c++/7/bits/vector.tcc"
"/usr/include/c++/7/cctype"
"/usr/include/c++/7/cerrno"
"/usr/include/c++/7/clocale"
"/usr/include/c++/7/cmath"
"/usr/include/c++/7/cstddef"
"/usr/include/c++/7/cstdint"
"/usr/include/c++/7/cstdio"
"/usr/include/c++/7/cstdlib"
"/usr/include/c++/7/cwchar"
"/usr/include/c++/7/cwctype"
"/usr/include/c++/7/debug/assertions.h"
"/usr/include/c++/7/debug/debug.h"
"/usr/include/c++/7/exception"
"/usr/include/c++/7/ext/alloc_traits.h"
"/usr/include/c++/7/ext/atomicity.h"
"/usr/include/c++/7/ext/new_allocator.h"
"/usr/include/c++/7/ext/numeric_traits.h"
"/usr/include/c++/7/ext/string_conversions.h"
"/usr/include/c++/7/ext/type_traits.h"
"/usr/include/c++/7/initializer_list"
"/usr/include/c++/7/ios"
"/usr/include/c++/7/iosfwd"
"/usr/include/c++/7/iostream"
"/usr/include/c++/7/istream"
"/usr/include/c++/7/math.h"
"/usr/include/c++/7/new"
"/usr/include/c++/7/ostream"
"/usr/include/c++/7/stdexcept"
"/usr/include/c++/7/stdlib.h"
"/usr/include/c++/7/streambuf"
"/usr/include/c++/7/string"
"/usr/include/c++/7/system_error"
"/usr/include/c++/7/type_traits"
"/usr/include/c++/7/typeinfo"
"/usr/include/c++/7/vector"
"/usr/include/ctype.h"
"/usr/include/endian.h"
"/usr/include/errno.h"
"/usr/include/features.h"
"/usr/include/limits.h"
"/usr/include/linux/errno.h"
"/usr/include/linux/limits.h"
"/usr/include/locale.h"
"/usr/include/math.h"
"/usr/include/pthread.h"
"/usr/include/sched.h"
"/usr/include/stdc-predef.h"
"/usr/include/stdint.h"
"/usr/include/stdio.h"
"/usr/include/stdlib.h"
"/usr/include/string.h"
"/usr/include/strings.h"
"/usr/include/time.h"
"/usr/include/wchar.h"
"/usr/include/wctype.h"
"/usr/lib/gcc/aarch64-linux-gnu/7/include-fixed/limits.h"
"/usr/lib/gcc/aarch64-linux-gnu/7/include-fixed/syslimits.h"
"/usr/lib/gcc/aarch64-linux-gnu/7/include/stdarg.h"
"/usr/lib/gcc/aarch64-linux-gnu/7/include/stddef.h"
"/usr/lib/gcc/aarch64-linux-gnu/7/include/stdint.h"
"/usr/local/cuda/include/builtin_types.h"
"/usr/local/cuda/include/channel_descriptor.h"
"/usr/local/cuda/include/crt/common_functions.h"
"/usr/local/cuda/include/crt/device_double_functions.h"
"/usr/local/cuda/include/crt/device_double_functions.hpp"
"/usr/local/cuda/include/crt/device_functions.h"
"/usr/local/cuda/include/crt/device_functions.hpp"
"/usr/local/cuda/include/crt/host_config.h"
"/usr/local/cuda/include/crt/host_defines.h"
"/usr/local/cuda/include/crt/math_functions.h"
"/usr/local/cuda/include/crt/math_functions.hpp"
"/usr/local/cuda/include/crt/sm_70_rt.h"
"/usr/local/cuda/include/crt/sm_70_rt.hpp"
"/usr/local/cuda/include/cuda_device_runtime_api.h"
"/usr/local/cuda/include/cuda_runtime.h"
"/usr/local/cuda/include/cuda_runtime_api.h"
"/usr/local/cuda/include/cuda_surface_types.h"
"/usr/local/cuda/include/cuda_texture_types.h"
"/usr/local/cuda/include/device_atomic_functions.h"
"/usr/local/cuda/include/device_atomic_functions.hpp"
"/usr/local/cuda/include/device_launch_parameters.h"
"/usr/local/cuda/include/device_types.h"
"/usr/local/cuda/include/driver_functions.h"
"/usr/local/cuda/include/driver_types.h"
"/usr/local/cuda/include/library_types.h"
"/usr/local/cuda/include/sm_20_atomic_functions.h"
"/usr/local/cuda/include/sm_20_atomic_functions.hpp"
"/usr/local/cuda/include/sm_20_intrinsics.h"
"/usr/local/cuda/include/sm_20_intrinsics.hpp"
"/usr/local/cuda/include/sm_30_intrinsics.h"
"/usr/local/cuda/include/sm_30_intrinsics.hpp"
"/usr/local/cuda/include/sm_32_atomic_functions.h"
"/usr/local/cuda/include/sm_32_atomic_functions.hpp"
"/usr/local/cuda/include/sm_32_intrinsics.h"
"/usr/local/cuda/include/sm_32_intrinsics.hpp"
"/usr/local/cuda/include/sm_35_atomic_functions.h"
"/usr/local/cuda/include/sm_35_intrinsics.h"
"/usr/local/cuda/include/sm_60_atomic_functions.h"
"/usr/local/cuda/include/sm_60_atomic_functions.hpp"
"/usr/local/cuda/include/sm_61_intrinsics.h"
"/usr/local/cuda/include/sm_61_intrinsics.hpp"
"/usr/local/cuda/include/surface_functions.h"
"/usr/local/cuda/include/surface_indirect_functions.h"
"/usr/local/cuda/include/surface_types.h"
"/usr/local/cuda/include/texture_fetch_functions.h"
"/usr/local/cuda/include/texture_indirect_functions.h"
"/usr/local/cuda/include/texture_types.h"
"/usr/local/cuda/include/vector_functions.h"
"/usr/local/cuda/include/vector_functions.hpp"
"/usr/local/cuda/include/vector_types.h"
)
CMAKE_PROGRESS_1 = 1
CMAKE_PROGRESS_2 = 2
#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">])
#IncludeRegexScan: ^.*$
#IncludeRegexComplain: ^$
#IncludeRegexTransform:
/home/ilens/tensorrtx/yolov5/calibrator.cpp
iostream
-
iterator
-
fstream
-
opencv2/dnn/dnn.hpp
-
calibrator.h
/home/ilens/tensorrtx/yolov5/calibrator.h
cuda_utils.h
/home/ilens/tensorrtx/yolov5/cuda_utils.h
utils.h
/home/ilens/tensorrtx/yolov5/utils.h
/home/ilens/tensorrtx/yolov5/calibrator.h
NvInfer.h
-
string
-
vector
-
macros.h
/home/ilens/tensorrtx/yolov5/macros.h
/home/ilens/tensorrtx/yolov5/common.hpp
fstream
-
map
-
sstream
-
vector
-
opencv2/opencv.hpp
-
NvInfer.h
/home/ilens/tensorrtx/yolov5/NvInfer.h
yololayer.h
/home/ilens/tensorrtx/yolov5/yololayer.h
/home/ilens/tensorrtx/yolov5/cuda_utils.h
cuda_runtime_api.h
-
/home/ilens/tensorrtx/yolov5/logging.h
NvInferRuntimeCommon.h
/home/ilens/tensorrtx/yolov5/NvInferRuntimeCommon.h
cassert
-
ctime
-
iomanip
-
iostream
-
ostream
-
sstream
-
string
-
macros.h
/home/ilens/tensorrtx/yolov5/macros.h
/home/ilens/tensorrtx/yolov5/macros.h
/home/ilens/tensorrtx/yolov5/utils.h
dirent.h
-
opencv2/opencv.hpp
-
/home/ilens/tensorrtx/yolov5/yololayer.h
vector
-
string
-
NvInfer.h
-
macros.h
/home/ilens/tensorrtx/yolov5/macros.h
/home/ilens/tensorrtx/yolov5/yolov5_cls.cpp
iostream
-
chrono
-
cmath
-
numeric
-
cuda_utils.h
/home/ilens/tensorrtx/yolov5/cuda_utils.h
logging.h
/home/ilens/tensorrtx/yolov5/logging.h
common.hpp
/home/ilens/tensorrtx/yolov5/common.hpp
utils.h
/home/ilens/tensorrtx/yolov5/utils.h
calibrator.h
/home/ilens/tensorrtx/yolov5/calibrator.h
/usr/include/opencv4/opencv2/calib3d.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
opencv2/features2d.hpp
/usr/include/opencv4/opencv2/opencv2/features2d.hpp
opencv2/core/affine.hpp
/usr/include/opencv4/opencv2/opencv2/core/affine.hpp
/usr/include/opencv4/opencv2/core.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/opencv2/core/cvdef.h
opencv2/core/version.hpp
/usr/include/opencv4/opencv2/opencv2/core/version.hpp
opencv2/core/base.hpp
/usr/include/opencv4/opencv2/opencv2/core/base.hpp
opencv2/core/cvstd.hpp
/usr/include/opencv4/opencv2/opencv2/core/cvstd.hpp
opencv2/core/traits.hpp
/usr/include/opencv4/opencv2/opencv2/core/traits.hpp
opencv2/core/matx.hpp
/usr/include/opencv4/opencv2/opencv2/core/matx.hpp
opencv2/core/types.hpp
/usr/include/opencv4/opencv2/opencv2/core/types.hpp
opencv2/core/mat.hpp
/usr/include/opencv4/opencv2/opencv2/core/mat.hpp
opencv2/core/persistence.hpp
/usr/include/opencv4/opencv2/opencv2/core/persistence.hpp
opencv2/core/operations.hpp
/usr/include/opencv4/opencv2/opencv2/core/operations.hpp
opencv2/core/cvstd.inl.hpp
/usr/include/opencv4/opencv2/opencv2/core/cvstd.inl.hpp
opencv2/core/utility.hpp
/usr/include/opencv4/opencv2/opencv2/core/utility.hpp
opencv2/core/optim.hpp
/usr/include/opencv4/opencv2/opencv2/core/optim.hpp
opencv2/core/ovx.hpp
/usr/include/opencv4/opencv2/opencv2/core/ovx.hpp
/usr/include/opencv4/opencv2/core/affine.hpp
opencv2/core.hpp
-
/usr/include/opencv4/opencv2/core/async.hpp
opencv2/core/mat.hpp
-
chrono
-
/usr/include/opencv4/opencv2/core/base.hpp
opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/core/opencv2/opencv_modules.hpp
climits
-
algorithm
-
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
opencv2/core/cvstd.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/cvstd.hpp
opencv2/core/neon_utils.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/neon_utils.hpp
opencv2/core/vsx_utils.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/vsx_utils.hpp
opencv2/core/check.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/check.hpp
/usr/include/opencv4/opencv2/core/bufferpool.hpp
/usr/include/opencv4/opencv2/core/check.hpp
opencv2/core/base.hpp
-
/usr/include/opencv4/opencv2/core/cuda.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/core/opencv2/core.hpp
opencv2/core/cuda_types.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/cuda_types.hpp
opencv2/opencv.hpp
-
opencv2/core/cuda.inl.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/cuda.inl.hpp
/usr/include/opencv4/opencv2/core/cuda.inl.hpp
opencv2/core/cuda.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/cuda.hpp
/usr/include/opencv4/opencv2/core/cuda_types.hpp
/usr/include/opencv4/opencv2/core/cv_cpu_dispatch.h
cv_cpu_config.h
/usr/include/opencv4/opencv2/core/cv_cpu_config.h
cv_cpu_helper.h
/usr/include/opencv4/opencv2/core/cv_cpu_helper.h
emmintrin.h
-
pmmintrin.h
-
tmmintrin.h
-
smmintrin.h
-
nmmintrin.h
-
nmmintrin.h
-
popcntintrin.h
-
immintrin.h
-
arm_neon.h
-
immintrin.h
-
immintrin.h
-
immintrin.h
-
Intrin.h
-
arm_neon.h
-
arm_neon.h
-
arm_neon.h
-
altivec.h
-
emmintrin.h
-
Intrin.h
-
arm_neon.h
-
arm_neon.h
-
altivec.h
-
/usr/include/opencv4/opencv2/core/cv_cpu_helper.h
/usr/include/opencv4/opencv2/core/cvdef.h
cvconfig.h
/usr/include/opencv4/opencv2/core/cvconfig.h
limits.h
-
opencv2/core/hal/interface.h
/usr/include/opencv4/opencv2/core/opencv2/core/hal/interface.h
cv_cpu_dispatch.h
/usr/include/opencv4/opencv2/core/cv_cpu_dispatch.h
intrin.h
-
array
-
cstdint
-
stdint.h
-
stdint.h
-
opencv2/core/fast_math.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/fast_math.hpp
/usr/include/opencv4/opencv2/core/cvstd.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
cstddef
-
cstring
-
cctype
-
string
-
algorithm
-
utility
-
cstdlib
-
cmath
-
cvstd_wrapper.hpp
/usr/include/opencv4/opencv2/core/cvstd_wrapper.hpp
/usr/include/opencv4/opencv2/core/cvstd.inl.hpp
complex
-
ostream
-
/usr/include/opencv4/opencv2/core/cvstd_wrapper.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
string
-
memory
-
type_traits
-
/usr/include/opencv4/opencv2/core/fast_math.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
emmintrin.h
-
cmath
-
fastmath.h
-
math.h
-
/usr/include/opencv4/opencv2/core/hal/interface.h
cstddef
-
stddef.h
-
stdbool.h
-
cstdint
-
stdint.h
-
/usr/include/opencv4/opencv2/core/mat.hpp
opencv2/core/matx.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/matx.hpp
opencv2/core/types.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/types.hpp
opencv2/core/bufferpool.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/bufferpool.hpp
type_traits
-
opencv2/core/mat.inl.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/mat.inl.hpp
/usr/include/opencv4/opencv2/core/mat.inl.hpp
/usr/include/opencv4/opencv2/core/matx.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
opencv2/core/base.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/base.hpp
opencv2/core/traits.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/traits.hpp
opencv2/core/saturate.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/saturate.hpp
initializer_list
-
/usr/include/opencv4/opencv2/core/neon_utils.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/operations.hpp
cstdio
-
/usr/include/opencv4/opencv2/core/optim.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/core/opencv2/core.hpp
/usr/include/opencv4/opencv2/core/ovx.hpp
cvdef.h
/usr/include/opencv4/opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/persistence.hpp
opencv2/core/types.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/types.hpp
opencv2/core/mat.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/mat.hpp
opencv2/opencv.hpp
/usr/include/opencv4/opencv2/core/opencv2/opencv.hpp
time.h
-
/usr/include/opencv4/opencv2/core/saturate.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
opencv2/core/fast_math.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/fast_math.hpp
/usr/include/opencv4/opencv2/core/traits.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/types.hpp
climits
-
cfloat
-
vector
-
limits
-
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
opencv2/core/cvstd.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/cvstd.hpp
opencv2/core/matx.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/matx.hpp
/usr/include/opencv4/opencv2/core/utility.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/core/opencv2/core.hpp
ostream
-
functional
-
mutex
-
/usr/include/opencv4/opencv2/core/version.hpp
/usr/include/opencv4/opencv2/core/vsx_utils.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
assert.h
-
/usr/include/opencv4/opencv2/dnn.hpp
opencv2/dnn/dnn.hpp
-
/usr/include/opencv4/opencv2/dnn/dict.hpp
opencv2/core.hpp
-
map
-
ostream
-
opencv2/dnn/dnn.hpp
-
/usr/include/opencv4/opencv2/dnn/dnn.hpp
vector
-
opencv2/core.hpp
-
opencv2/core/async.hpp
/usr/include/opencv4/opencv2/dnn/opencv2/core/async.hpp
../dnn/version.hpp
/usr/include/opencv4/opencv2/dnn/version.hpp
opencv2/dnn/dict.hpp
-
opencv2/dnn/layer.hpp
-
opencv2/dnn/dnn.inl.hpp
-
opencv2/dnn/utils/inference_engine.hpp
-
/usr/include/opencv4/opencv2/dnn/dnn.inl.hpp
opencv2/dnn.hpp
-
/usr/include/opencv4/opencv2/dnn/layer.hpp
opencv2/dnn.hpp
-
/usr/include/opencv4/opencv2/dnn/utils/inference_engine.hpp
../dnn.hpp
/usr/include/opencv4/opencv2/dnn/dnn.hpp
/usr/include/opencv4/opencv2/dnn/version.hpp
/usr/include/opencv4/opencv2/features2d.hpp
opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/opencv2/opencv_modules.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
opencv2/flann/miniflann.hpp
/usr/include/opencv4/opencv2/opencv2/flann/miniflann.hpp
/usr/include/opencv4/opencv2/flann.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
opencv2/flann/miniflann.hpp
/usr/include/opencv4/opencv2/opencv2/flann/miniflann.hpp
opencv2/flann/flann_base.hpp
/usr/include/opencv4/opencv2/opencv2/flann/flann_base.hpp
/usr/include/opencv4/opencv2/flann/all_indices.h
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
kdtree_index.h
/usr/include/opencv4/opencv2/flann/kdtree_index.h
kdtree_single_index.h
/usr/include/opencv4/opencv2/flann/kdtree_single_index.h
kmeans_index.h
/usr/include/opencv4/opencv2/flann/kmeans_index.h
composite_index.h
/usr/include/opencv4/opencv2/flann/composite_index.h
linear_index.h
/usr/include/opencv4/opencv2/flann/linear_index.h
hierarchical_clustering_index.h
/usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h
lsh_index.h
/usr/include/opencv4/opencv2/flann/lsh_index.h
autotuned_index.h
/usr/include/opencv4/opencv2/flann/autotuned_index.h
/usr/include/opencv4/opencv2/flann/allocator.h
stdlib.h
-
stdio.h
-
/usr/include/opencv4/opencv2/flann/any.h
defines.h
/usr/include/opencv4/opencv2/flann/defines.h
stdexcept
-
ostream
-
typeinfo
-
/usr/include/opencv4/opencv2/flann/autotuned_index.h
sstream
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
ground_truth.h
/usr/include/opencv4/opencv2/flann/ground_truth.h
index_testing.h
/usr/include/opencv4/opencv2/flann/index_testing.h
sampling.h
/usr/include/opencv4/opencv2/flann/sampling.h
kdtree_index.h
/usr/include/opencv4/opencv2/flann/kdtree_index.h
kdtree_single_index.h
/usr/include/opencv4/opencv2/flann/kdtree_single_index.h
kmeans_index.h
/usr/include/opencv4/opencv2/flann/kmeans_index.h
composite_index.h
/usr/include/opencv4/opencv2/flann/composite_index.h
linear_index.h
/usr/include/opencv4/opencv2/flann/linear_index.h
logger.h
/usr/include/opencv4/opencv2/flann/logger.h
/usr/include/opencv4/opencv2/flann/composite_index.h
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
kdtree_index.h
/usr/include/opencv4/opencv2/flann/kdtree_index.h
kmeans_index.h
/usr/include/opencv4/opencv2/flann/kmeans_index.h
/usr/include/opencv4/opencv2/flann/config.h
/usr/include/opencv4/opencv2/flann/defines.h
config.h
/usr/include/opencv4/opencv2/flann/config.h
/usr/include/opencv4/opencv2/flann/dist.h
cmath
-
cstdlib
-
string.h
-
stdint.h
-
defines.h
/usr/include/opencv4/opencv2/flann/defines.h
Intrin.h
-
arm_neon.h
/usr/include/opencv4/opencv2/flann/arm_neon.h
/usr/include/opencv4/opencv2/flann/dynamic_bitset.h
boost/dynamic_bitset.hpp
-
limits.h
-
dist.h
/usr/include/opencv4/opencv2/flann/dist.h
/usr/include/opencv4/opencv2/flann/flann_base.hpp
vector
-
cassert
-
cstdio
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
params.h
/usr/include/opencv4/opencv2/flann/params.h
saving.h
/usr/include/opencv4/opencv2/flann/saving.h
all_indices.h
/usr/include/opencv4/opencv2/flann/all_indices.h
/usr/include/opencv4/opencv2/flann/general.h
opencv2/core.hpp
/usr/include/opencv4/opencv2/flann/opencv2/core.hpp
/usr/include/opencv4/opencv2/flann/ground_truth.h
dist.h
/usr/include/opencv4/opencv2/flann/dist.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
/usr/include/opencv4/opencv2/flann/heap.h
algorithm
-
vector
-
/usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h
algorithm
-
map
-
cassert
-
limits
-
cmath
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
dist.h
/usr/include/opencv4/opencv2/flann/dist.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
result_set.h
/usr/include/opencv4/opencv2/flann/result_set.h
heap.h
/usr/include/opencv4/opencv2/flann/heap.h
allocator.h
/usr/include/opencv4/opencv2/flann/allocator.h
random.h
/usr/include/opencv4/opencv2/flann/random.h
saving.h
/usr/include/opencv4/opencv2/flann/saving.h
/usr/include/opencv4/opencv2/flann/index_testing.h
cstring
-
cassert
-
cmath
-
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
result_set.h
/usr/include/opencv4/opencv2/flann/result_set.h
logger.h
/usr/include/opencv4/opencv2/flann/logger.h
timer.h
/usr/include/opencv4/opencv2/flann/timer.h
/usr/include/opencv4/opencv2/flann/kdtree_index.h
algorithm
-
map
-
cassert
-
cstring
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
dynamic_bitset.h
/usr/include/opencv4/opencv2/flann/dynamic_bitset.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
result_set.h
/usr/include/opencv4/opencv2/flann/result_set.h
heap.h
/usr/include/opencv4/opencv2/flann/heap.h
allocator.h
/usr/include/opencv4/opencv2/flann/allocator.h
random.h
/usr/include/opencv4/opencv2/flann/random.h
saving.h
/usr/include/opencv4/opencv2/flann/saving.h
/usr/include/opencv4/opencv2/flann/kdtree_single_index.h
algorithm
-
map
-
cassert
-
cstring
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
result_set.h
/usr/include/opencv4/opencv2/flann/result_set.h
heap.h
/usr/include/opencv4/opencv2/flann/heap.h
allocator.h
/usr/include/opencv4/opencv2/flann/allocator.h
random.h
/usr/include/opencv4/opencv2/flann/random.h
saving.h
/usr/include/opencv4/opencv2/flann/saving.h
/usr/include/opencv4/opencv2/flann/kmeans_index.h
algorithm
-
map
-
cassert
-
limits
-
cmath
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
dist.h
/usr/include/opencv4/opencv2/flann/dist.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
result_set.h
/usr/include/opencv4/opencv2/flann/result_set.h
heap.h
/usr/include/opencv4/opencv2/flann/heap.h
allocator.h
/usr/include/opencv4/opencv2/flann/allocator.h
random.h
/usr/include/opencv4/opencv2/flann/random.h
saving.h
/usr/include/opencv4/opencv2/flann/saving.h
logger.h
/usr/include/opencv4/opencv2/flann/logger.h
/usr/include/opencv4/opencv2/flann/linear_index.h
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
/usr/include/opencv4/opencv2/flann/logger.h
stdio.h
-
stdarg.h
-
defines.h
/usr/include/opencv4/opencv2/flann/defines.h
/usr/include/opencv4/opencv2/flann/lsh_index.h
algorithm
-
cassert
-
cstring
-
map
-
vector
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
result_set.h
/usr/include/opencv4/opencv2/flann/result_set.h
heap.h
/usr/include/opencv4/opencv2/flann/heap.h
lsh_table.h
/usr/include/opencv4/opencv2/flann/lsh_table.h
allocator.h
/usr/include/opencv4/opencv2/flann/allocator.h
random.h
/usr/include/opencv4/opencv2/flann/random.h
saving.h
/usr/include/opencv4/opencv2/flann/saving.h
/usr/include/opencv4/opencv2/flann/lsh_table.h
algorithm
-
iostream
-
iomanip
-
limits.h
-
unordered_map
-
map
-
math.h
-
stddef.h
-
dynamic_bitset.h
/usr/include/opencv4/opencv2/flann/dynamic_bitset.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
stdio.h
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
/usr/include/opencv4/opencv2/flann/miniflann.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/flann/opencv2/core.hpp
opencv2/flann/defines.h
/usr/include/opencv4/opencv2/flann/opencv2/flann/defines.h
/usr/include/opencv4/opencv2/flann/nn_index.h
general.h
/usr/include/opencv4/opencv2/flann/general.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
result_set.h
/usr/include/opencv4/opencv2/flann/result_set.h
params.h
/usr/include/opencv4/opencv2/flann/params.h
/usr/include/opencv4/opencv2/flann/params.h
any.h
/usr/include/opencv4/opencv2/flann/any.h
general.h
/usr/include/opencv4/opencv2/flann/general.h
iostream
-
map
-
/usr/include/opencv4/opencv2/flann/random.h
algorithm
-
cstdlib
-
vector
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
/usr/include/opencv4/opencv2/flann/result_set.h
algorithm
-
cstring
-
iostream
-
limits
-
set
-
vector
-
/usr/include/opencv4/opencv2/flann/sampling.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
random.h
/usr/include/opencv4/opencv2/flann/random.h
/usr/include/opencv4/opencv2/flann/saving.h
cstring
-
vector
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
/usr/include/opencv4/opencv2/flann/timer.h
time.h
-
opencv2/core.hpp
/usr/include/opencv4/opencv2/flann/opencv2/core.hpp
opencv2/core/utility.hpp
/usr/include/opencv4/opencv2/flann/opencv2/core/utility.hpp
/usr/include/opencv4/opencv2/highgui.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
opencv2/imgcodecs.hpp
/usr/include/opencv4/opencv2/opencv2/imgcodecs.hpp
opencv2/videoio.hpp
/usr/include/opencv4/opencv2/opencv2/videoio.hpp
/usr/include/opencv4/opencv2/imgcodecs.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
/usr/include/opencv4/opencv2/imgproc.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
/usr/include/opencv4/opencv2/ml.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
float.h
-
map
-
iostream
-
opencv2/ml/ml.inl.hpp
-
/usr/include/opencv4/opencv2/ml/ml.inl.hpp
/usr/include/opencv4/opencv2/objdetect.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
opencv2/objdetect/detection_based_tracker.hpp
/usr/include/opencv4/opencv2/opencv2/objdetect/detection_based_tracker.hpp
/usr/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp
opencv2/core.hpp
-
vector
-
/usr/include/opencv4/opencv2/opencv.hpp
opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/opencv2/opencv_modules.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
opencv2/calib3d.hpp
/usr/include/opencv4/opencv2/opencv2/calib3d.hpp
opencv2/features2d.hpp
/usr/include/opencv4/opencv2/opencv2/features2d.hpp
opencv2/dnn.hpp
/usr/include/opencv4/opencv2/opencv2/dnn.hpp
opencv2/flann.hpp
/usr/include/opencv4/opencv2/opencv2/flann.hpp
opencv2/highgui.hpp
/usr/include/opencv4/opencv2/opencv2/highgui.hpp
opencv2/imgcodecs.hpp
/usr/include/opencv4/opencv2/opencv2/imgcodecs.hpp
opencv2/imgproc.hpp
/usr/include/opencv4/opencv2/opencv2/imgproc.hpp
opencv2/ml.hpp
/usr/include/opencv4/opencv2/opencv2/ml.hpp
opencv2/objdetect.hpp
/usr/include/opencv4/opencv2/opencv2/objdetect.hpp
opencv2/photo.hpp
/usr/include/opencv4/opencv2/opencv2/photo.hpp
opencv2/shape.hpp
/usr/include/opencv4/opencv2/opencv2/shape.hpp
opencv2/stitching.hpp
/usr/include/opencv4/opencv2/opencv2/stitching.hpp
opencv2/superres.hpp
/usr/include/opencv4/opencv2/opencv2/superres.hpp
opencv2/video.hpp
/usr/include/opencv4/opencv2/opencv2/video.hpp
opencv2/videoio.hpp
/usr/include/opencv4/opencv2/opencv2/videoio.hpp
opencv2/videostab.hpp
/usr/include/opencv4/opencv2/opencv2/videostab.hpp
opencv2/viz.hpp
/usr/include/opencv4/opencv2/opencv2/viz.hpp
opencv2/cudaarithm.hpp
/usr/include/opencv4/opencv2/opencv2/cudaarithm.hpp
opencv2/cudabgsegm.hpp
/usr/include/opencv4/opencv2/opencv2/cudabgsegm.hpp
opencv2/cudacodec.hpp
/usr/include/opencv4/opencv2/opencv2/cudacodec.hpp
opencv2/cudafeatures2d.hpp
/usr/include/opencv4/opencv2/opencv2/cudafeatures2d.hpp
opencv2/cudafilters.hpp
/usr/include/opencv4/opencv2/opencv2/cudafilters.hpp
opencv2/cudaimgproc.hpp
/usr/include/opencv4/opencv2/opencv2/cudaimgproc.hpp
opencv2/cudaobjdetect.hpp
/usr/include/opencv4/opencv2/opencv2/cudaobjdetect.hpp
opencv2/cudaoptflow.hpp
/usr/include/opencv4/opencv2/opencv2/cudaoptflow.hpp
opencv2/cudastereo.hpp
/usr/include/opencv4/opencv2/opencv2/cudastereo.hpp
opencv2/cudawarping.hpp
/usr/include/opencv4/opencv2/opencv2/cudawarping.hpp
/usr/include/opencv4/opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/photo.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
opencv2/imgproc.hpp
/usr/include/opencv4/opencv2/opencv2/imgproc.hpp
/usr/include/opencv4/opencv2/stitching.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
opencv2/features2d.hpp
/usr/include/opencv4/opencv2/opencv2/features2d.hpp
opencv2/stitching/warpers.hpp
/usr/include/opencv4/opencv2/opencv2/stitching/warpers.hpp
opencv2/stitching/detail/matchers.hpp
/usr/include/opencv4/opencv2/opencv2/stitching/detail/matchers.hpp
opencv2/stitching/detail/motion_estimators.hpp
/usr/include/opencv4/opencv2/opencv2/stitching/detail/motion_estimators.hpp
opencv2/stitching/detail/exposure_compensate.hpp
/usr/include/opencv4/opencv2/opencv2/stitching/detail/exposure_compensate.hpp
opencv2/stitching/detail/seam_finders.hpp
/usr/include/opencv4/opencv2/opencv2/stitching/detail/seam_finders.hpp
opencv2/stitching/detail/blenders.hpp
/usr/include/opencv4/opencv2/opencv2/stitching/detail/blenders.hpp
opencv2/stitching/detail/camera.hpp
/usr/include/opencv4/opencv2/opencv2/stitching/detail/camera.hpp
/usr/include/opencv4/opencv2/stitching/detail/blenders.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
opencv2/core/cuda.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core/cuda.hpp
/usr/include/opencv4/opencv2/stitching/detail/camera.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/matchers.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
opencv2/features2d.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/features2d.hpp
opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
matchers.hpp
/usr/include/opencv4/opencv2/stitching/detail/matchers.hpp
util.hpp
/usr/include/opencv4/opencv2/stitching/detail/util.hpp
camera.hpp
/usr/include/opencv4/opencv2/stitching/detail/camera.hpp
/usr/include/opencv4/opencv2/stitching/detail/seam_finders.hpp
set
-
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/stitching/detail/util.hpp
list
-
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
util_inl.hpp
/usr/include/opencv4/opencv2/stitching/detail/util_inl.hpp
/usr/include/opencv4/opencv2/stitching/detail/util_inl.hpp
queue
-
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
util.hpp
/usr/include/opencv4/opencv2/stitching/detail/util.hpp
/usr/include/opencv4/opencv2/stitching/detail/warpers.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
opencv2/core/cuda.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core/cuda.hpp
opencv2/imgproc.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/imgproc.hpp
opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/opencv_modules.hpp
warpers_inl.hpp
/usr/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp
/usr/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
warpers.hpp
/usr/include/opencv4/opencv2/stitching/detail/warpers.hpp
limits
-
/usr/include/opencv4/opencv2/stitching/warpers.hpp
opencv2/stitching/detail/warpers.hpp
/usr/include/opencv4/opencv2/stitching/opencv2/stitching/detail/warpers.hpp
string
-
/usr/include/opencv4/opencv2/video.hpp
opencv2/video/tracking.hpp
/usr/include/opencv4/opencv2/opencv2/video/tracking.hpp
opencv2/video/background_segm.hpp
/usr/include/opencv4/opencv2/opencv2/video/background_segm.hpp
/usr/include/opencv4/opencv2/video/background_segm.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/video/opencv2/core.hpp
/usr/include/opencv4/opencv2/video/tracking.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/video/opencv2/core.hpp
opencv2/imgproc.hpp
/usr/include/opencv4/opencv2/video/opencv2/imgproc.hpp
/usr/include/opencv4/opencv2/videoio.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
/usr/local/cuda/include/builtin_types.h
device_types.h
/usr/local/cuda/include/device_types.h
driver_types.h
/usr/local/cuda/include/driver_types.h
surface_types.h
/usr/local/cuda/include/surface_types.h
texture_types.h
/usr/local/cuda/include/texture_types.h
vector_types.h
/usr/local/cuda/include/vector_types.h
/usr/local/cuda/include/crt/host_defines.h
/usr/local/cuda/include/cuda_device_runtime_api.h
driver_types.h
/usr/local/cuda/include/driver_types.h
crt/host_defines.h
/usr/local/cuda/include/crt/host_defines.h
/usr/local/cuda/include/cuda_runtime_api.h
crt/host_defines.h
/usr/local/cuda/include/crt/host_defines.h
builtin_types.h
/usr/local/cuda/include/builtin_types.h
cuda_device_runtime_api.h
/usr/local/cuda/include/cuda_device_runtime_api.h
/usr/local/cuda/include/device_types.h
crt/host_defines.h
/usr/local/cuda/include/crt/host_defines.h
/usr/local/cuda/include/driver_types.h
crt/host_defines.h
/usr/local/cuda/include/crt/host_defines.h
vector_types.h
/usr/local/cuda/include/vector_types.h
limits.h
-
stddef.h
-
/usr/local/cuda/include/surface_types.h
driver_types.h
/usr/local/cuda/include/driver_types.h
/usr/local/cuda/include/texture_types.h
driver_types.h
/usr/local/cuda/include/driver_types.h
/usr/local/cuda/include/vector_types.h
crt/host_defines.h
/usr/local/cuda/include/crt/host_defines.h
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
"CXX"
)
# The set of files for implicit dependencies of each language:
set(CMAKE_DEPENDS_CHECK_CXX
"/home/ilens/tensorrtx/yolov5/calibrator.cpp" "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5-cls.dir/calibrator.cpp.o"
"/home/ilens/tensorrtx/yolov5/yolov5_cls.cpp" "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o"
)
set(CMAKE_CXX_COMPILER_ID "GNU")
# Preprocessor definitions for this target.
set(CMAKE_TARGET_DEFINITIONS_CXX
"API_EXPORTS"
)
# The include file search paths:
set(CMAKE_CXX_TARGET_INCLUDE_PATH
"../include"
"/usr/local/cuda/include"
"/usr/include/x86_64-linux-gnu"
"/usr/include/opencv4"
)
# Targets to which this target links.
set(CMAKE_TARGET_LINKED_INFO_FILES
"/home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir/DependInfo.cmake"
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/ilens/tensorrtx/yolov5
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/ilens/tensorrtx/yolov5/build
# Include any dependencies generated for this target.
include CMakeFiles/yolov5-cls.dir/depend.make
# Include the progress variables for this target.
include CMakeFiles/yolov5-cls.dir/progress.make
# Include the compile flags for this target's objects.
include CMakeFiles/yolov5-cls.dir/flags.make
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: CMakeFiles/yolov5-cls.dir/flags.make
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: ../calibrator.cpp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ilens/tensorrtx/yolov5/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/yolov5-cls.dir/calibrator.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/yolov5-cls.dir/calibrator.cpp.o -c /home/ilens/tensorrtx/yolov5/calibrator.cpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/yolov5-cls.dir/calibrator.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/ilens/tensorrtx/yolov5/calibrator.cpp > CMakeFiles/yolov5-cls.dir/calibrator.cpp.i
CMakeFiles/yolov5-cls.dir/calibrator.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/yolov5-cls.dir/calibrator.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/ilens/tensorrtx/yolov5/calibrator.cpp -o CMakeFiles/yolov5-cls.dir/calibrator.cpp.s
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o.requires:
.PHONY : CMakeFiles/yolov5-cls.dir/calibrator.cpp.o.requires
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o.provides: CMakeFiles/yolov5-cls.dir/calibrator.cpp.o.requires
$(MAKE) -f CMakeFiles/yolov5-cls.dir/build.make CMakeFiles/yolov5-cls.dir/calibrator.cpp.o.provides.build
.PHONY : CMakeFiles/yolov5-cls.dir/calibrator.cpp.o.provides
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o.provides.build: CMakeFiles/yolov5-cls.dir/calibrator.cpp.o
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: CMakeFiles/yolov5-cls.dir/flags.make
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: ../yolov5_cls.cpp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ilens/tensorrtx/yolov5/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o -c /home/ilens/tensorrtx/yolov5/yolov5_cls.cpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/ilens/tensorrtx/yolov5/yolov5_cls.cpp > CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.i
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/ilens/tensorrtx/yolov5/yolov5_cls.cpp -o CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.s
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o.requires:
.PHONY : CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o.requires
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o.provides: CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o.requires
$(MAKE) -f CMakeFiles/yolov5-cls.dir/build.make CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o.provides.build
.PHONY : CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o.provides
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o.provides.build: CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o
# Object files for target yolov5-cls
yolov5__cls_OBJECTS = \
"CMakeFiles/yolov5-cls.dir/calibrator.cpp.o" \
"CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o"
# External object files for target yolov5-cls
yolov5__cls_EXTERNAL_OBJECTS =
yolov5-cls: CMakeFiles/yolov5-cls.dir/calibrator.cpp.o
yolov5-cls: CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o
yolov5-cls: CMakeFiles/yolov5-cls.dir/build.make
yolov5-cls: libmyplugins.so
yolov5-cls: /usr/lib/aarch64-linux-gnu/libopencv_dnn.so.4.1.1
yolov5-cls: /usr/lib/aarch64-linux-gnu/libopencv_gapi.so.4.1.1
yolov5-cls: /usr/lib/aarch64-linux-gnu/libopencv_highgui.so.4.1.1
yolov5-cls: /usr/lib/aarch64-linux-gnu/libopencv_ml.so.4.1.1
yolov5-cls: /usr/lib/aarch64-linux-gnu/libopencv_objdetect.so.4.1.1
yolov5-cls: /usr/lib/aarch64-linux-gnu/libopencv_photo.so.4.1.1
yolov5-cls: /usr/lib/aarch64-linux-gnu/libopencv_stitching.so.4.1.1
yolov5-cls: /usr/lib/aarch64-linux-gnu/libopencv_video.so.4.1.1
yolov5-cls: /usr/lib/aarch64-linux-gnu/libopencv_videoio.so.4.1.1
yolov5-cls: /usr/local/cuda/lib64/libcudart.so
yolov5-cls: /usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.4.1.1
yolov5-cls: /usr/lib/aarch64-linux-gnu/libopencv_calib3d.so.4.1.1
yolov5-cls: /usr/lib/aarch64-linux-gnu/libopencv_features2d.so.4.1.1
yolov5-cls: /usr/lib/aarch64-linux-gnu/libopencv_flann.so.4.1.1
yolov5-cls: /usr/lib/aarch64-linux-gnu/libopencv_imgproc.so.4.1.1
yolov5-cls: /usr/lib/aarch64-linux-gnu/libopencv_core.so.4.1.1
yolov5-cls: CMakeFiles/yolov5-cls.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ilens/tensorrtx/yolov5/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable yolov5-cls"
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/yolov5-cls.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
CMakeFiles/yolov5-cls.dir/build: yolov5-cls
.PHONY : CMakeFiles/yolov5-cls.dir/build
CMakeFiles/yolov5-cls.dir/requires: CMakeFiles/yolov5-cls.dir/calibrator.cpp.o.requires
CMakeFiles/yolov5-cls.dir/requires: CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o.requires
.PHONY : CMakeFiles/yolov5-cls.dir/requires
CMakeFiles/yolov5-cls.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/yolov5-cls.dir/cmake_clean.cmake
.PHONY : CMakeFiles/yolov5-cls.dir/clean
CMakeFiles/yolov5-cls.dir/depend:
cd /home/ilens/tensorrtx/yolov5/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ilens/tensorrtx/yolov5 /home/ilens/tensorrtx/yolov5 /home/ilens/tensorrtx/yolov5/build /home/ilens/tensorrtx/yolov5/build /home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5-cls.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : CMakeFiles/yolov5-cls.dir/depend
file(REMOVE_RECURSE
"CMakeFiles/yolov5-cls.dir/calibrator.cpp.o"
"CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o"
"yolov5-cls.pdb"
"yolov5-cls"
)
# Per-language clean rules from dependency scanning.
foreach(lang CXX)
include(CMakeFiles/yolov5-cls.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o
/home/ilens/tensorrtx/yolov5/calibrator.cpp
/home/ilens/tensorrtx/yolov5/calibrator.h
/home/ilens/tensorrtx/yolov5/cuda_utils.h
/home/ilens/tensorrtx/yolov5/macros.h
/home/ilens/tensorrtx/yolov5/utils.h
/usr/include/opencv4/opencv2/calib3d.hpp
/usr/include/opencv4/opencv2/core.hpp
/usr/include/opencv4/opencv2/core/affine.hpp
/usr/include/opencv4/opencv2/core/async.hpp
/usr/include/opencv4/opencv2/core/base.hpp
/usr/include/opencv4/opencv2/core/bufferpool.hpp
/usr/include/opencv4/opencv2/core/check.hpp
/usr/include/opencv4/opencv2/core/cuda.hpp
/usr/include/opencv4/opencv2/core/cuda.inl.hpp
/usr/include/opencv4/opencv2/core/cuda_types.hpp
/usr/include/opencv4/opencv2/core/cv_cpu_dispatch.h
/usr/include/opencv4/opencv2/core/cv_cpu_helper.h
/usr/include/opencv4/opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/cvstd.hpp
/usr/include/opencv4/opencv2/core/cvstd.inl.hpp
/usr/include/opencv4/opencv2/core/cvstd_wrapper.hpp
/usr/include/opencv4/opencv2/core/fast_math.hpp
/usr/include/opencv4/opencv2/core/hal/interface.h
/usr/include/opencv4/opencv2/core/mat.hpp
/usr/include/opencv4/opencv2/core/mat.inl.hpp
/usr/include/opencv4/opencv2/core/matx.hpp
/usr/include/opencv4/opencv2/core/neon_utils.hpp
/usr/include/opencv4/opencv2/core/operations.hpp
/usr/include/opencv4/opencv2/core/optim.hpp
/usr/include/opencv4/opencv2/core/ovx.hpp
/usr/include/opencv4/opencv2/core/persistence.hpp
/usr/include/opencv4/opencv2/core/saturate.hpp
/usr/include/opencv4/opencv2/core/traits.hpp
/usr/include/opencv4/opencv2/core/types.hpp
/usr/include/opencv4/opencv2/core/utility.hpp
/usr/include/opencv4/opencv2/core/version.hpp
/usr/include/opencv4/opencv2/core/vsx_utils.hpp
/usr/include/opencv4/opencv2/dnn.hpp
/usr/include/opencv4/opencv2/dnn/dict.hpp
/usr/include/opencv4/opencv2/dnn/dnn.hpp
/usr/include/opencv4/opencv2/dnn/dnn.inl.hpp
/usr/include/opencv4/opencv2/dnn/layer.hpp
/usr/include/opencv4/opencv2/dnn/utils/inference_engine.hpp
/usr/include/opencv4/opencv2/dnn/version.hpp
/usr/include/opencv4/opencv2/features2d.hpp
/usr/include/opencv4/opencv2/flann.hpp
/usr/include/opencv4/opencv2/flann/all_indices.h
/usr/include/opencv4/opencv2/flann/allocator.h
/usr/include/opencv4/opencv2/flann/any.h
/usr/include/opencv4/opencv2/flann/autotuned_index.h
/usr/include/opencv4/opencv2/flann/composite_index.h
/usr/include/opencv4/opencv2/flann/config.h
/usr/include/opencv4/opencv2/flann/defines.h
/usr/include/opencv4/opencv2/flann/dist.h
/usr/include/opencv4/opencv2/flann/dynamic_bitset.h
/usr/include/opencv4/opencv2/flann/flann_base.hpp
/usr/include/opencv4/opencv2/flann/general.h
/usr/include/opencv4/opencv2/flann/ground_truth.h
/usr/include/opencv4/opencv2/flann/heap.h
/usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h
/usr/include/opencv4/opencv2/flann/index_testing.h
/usr/include/opencv4/opencv2/flann/kdtree_index.h
/usr/include/opencv4/opencv2/flann/kdtree_single_index.h
/usr/include/opencv4/opencv2/flann/kmeans_index.h
/usr/include/opencv4/opencv2/flann/linear_index.h
/usr/include/opencv4/opencv2/flann/logger.h
/usr/include/opencv4/opencv2/flann/lsh_index.h
/usr/include/opencv4/opencv2/flann/lsh_table.h
/usr/include/opencv4/opencv2/flann/matrix.h
/usr/include/opencv4/opencv2/flann/miniflann.hpp
/usr/include/opencv4/opencv2/flann/nn_index.h
/usr/include/opencv4/opencv2/flann/params.h
/usr/include/opencv4/opencv2/flann/random.h
/usr/include/opencv4/opencv2/flann/result_set.h
/usr/include/opencv4/opencv2/flann/sampling.h
/usr/include/opencv4/opencv2/flann/saving.h
/usr/include/opencv4/opencv2/flann/timer.h
/usr/include/opencv4/opencv2/highgui.hpp
/usr/include/opencv4/opencv2/imgcodecs.hpp
/usr/include/opencv4/opencv2/imgproc.hpp
/usr/include/opencv4/opencv2/ml.hpp
/usr/include/opencv4/opencv2/ml/ml.inl.hpp
/usr/include/opencv4/opencv2/objdetect.hpp
/usr/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp
/usr/include/opencv4/opencv2/opencv.hpp
/usr/include/opencv4/opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/photo.hpp
/usr/include/opencv4/opencv2/stitching.hpp
/usr/include/opencv4/opencv2/stitching/detail/blenders.hpp
/usr/include/opencv4/opencv2/stitching/detail/camera.hpp
/usr/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp
/usr/include/opencv4/opencv2/stitching/detail/matchers.hpp
/usr/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp
/usr/include/opencv4/opencv2/stitching/detail/seam_finders.hpp
/usr/include/opencv4/opencv2/stitching/detail/util.hpp
/usr/include/opencv4/opencv2/stitching/detail/util_inl.hpp
/usr/include/opencv4/opencv2/stitching/detail/warpers.hpp
/usr/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp
/usr/include/opencv4/opencv2/stitching/warpers.hpp
/usr/include/opencv4/opencv2/video.hpp
/usr/include/opencv4/opencv2/video/background_segm.hpp
/usr/include/opencv4/opencv2/video/tracking.hpp
/usr/include/opencv4/opencv2/videoio.hpp
/usr/local/cuda/include/builtin_types.h
/usr/local/cuda/include/crt/host_defines.h
/usr/local/cuda/include/cuda_device_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/device_types.h
/usr/local/cuda/include/driver_types.h
/usr/local/cuda/include/surface_types.h
/usr/local/cuda/include/texture_types.h
/usr/local/cuda/include/vector_types.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o
/home/ilens/tensorrtx/yolov5/calibrator.h
/home/ilens/tensorrtx/yolov5/common.hpp
/home/ilens/tensorrtx/yolov5/cuda_utils.h
/home/ilens/tensorrtx/yolov5/logging.h
/home/ilens/tensorrtx/yolov5/macros.h
/home/ilens/tensorrtx/yolov5/utils.h
/home/ilens/tensorrtx/yolov5/yololayer.h
/home/ilens/tensorrtx/yolov5/yolov5_cls.cpp
/usr/include/opencv4/opencv2/calib3d.hpp
/usr/include/opencv4/opencv2/core.hpp
/usr/include/opencv4/opencv2/core/affine.hpp
/usr/include/opencv4/opencv2/core/async.hpp
/usr/include/opencv4/opencv2/core/base.hpp
/usr/include/opencv4/opencv2/core/bufferpool.hpp
/usr/include/opencv4/opencv2/core/check.hpp
/usr/include/opencv4/opencv2/core/cuda.hpp
/usr/include/opencv4/opencv2/core/cuda.inl.hpp
/usr/include/opencv4/opencv2/core/cuda_types.hpp
/usr/include/opencv4/opencv2/core/cv_cpu_dispatch.h
/usr/include/opencv4/opencv2/core/cv_cpu_helper.h
/usr/include/opencv4/opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/cvstd.hpp
/usr/include/opencv4/opencv2/core/cvstd.inl.hpp
/usr/include/opencv4/opencv2/core/cvstd_wrapper.hpp
/usr/include/opencv4/opencv2/core/fast_math.hpp
/usr/include/opencv4/opencv2/core/hal/interface.h
/usr/include/opencv4/opencv2/core/mat.hpp
/usr/include/opencv4/opencv2/core/mat.inl.hpp
/usr/include/opencv4/opencv2/core/matx.hpp
/usr/include/opencv4/opencv2/core/neon_utils.hpp
/usr/include/opencv4/opencv2/core/operations.hpp
/usr/include/opencv4/opencv2/core/optim.hpp
/usr/include/opencv4/opencv2/core/ovx.hpp
/usr/include/opencv4/opencv2/core/persistence.hpp
/usr/include/opencv4/opencv2/core/saturate.hpp
/usr/include/opencv4/opencv2/core/traits.hpp
/usr/include/opencv4/opencv2/core/types.hpp
/usr/include/opencv4/opencv2/core/utility.hpp
/usr/include/opencv4/opencv2/core/version.hpp
/usr/include/opencv4/opencv2/core/vsx_utils.hpp
/usr/include/opencv4/opencv2/dnn.hpp
/usr/include/opencv4/opencv2/dnn/dict.hpp
/usr/include/opencv4/opencv2/dnn/dnn.hpp
/usr/include/opencv4/opencv2/dnn/dnn.inl.hpp
/usr/include/opencv4/opencv2/dnn/layer.hpp
/usr/include/opencv4/opencv2/dnn/utils/inference_engine.hpp
/usr/include/opencv4/opencv2/dnn/version.hpp
/usr/include/opencv4/opencv2/features2d.hpp
/usr/include/opencv4/opencv2/flann.hpp
/usr/include/opencv4/opencv2/flann/all_indices.h
/usr/include/opencv4/opencv2/flann/allocator.h
/usr/include/opencv4/opencv2/flann/any.h
/usr/include/opencv4/opencv2/flann/autotuned_index.h
/usr/include/opencv4/opencv2/flann/composite_index.h
/usr/include/opencv4/opencv2/flann/config.h
/usr/include/opencv4/opencv2/flann/defines.h
/usr/include/opencv4/opencv2/flann/dist.h
/usr/include/opencv4/opencv2/flann/dynamic_bitset.h
/usr/include/opencv4/opencv2/flann/flann_base.hpp
/usr/include/opencv4/opencv2/flann/general.h
/usr/include/opencv4/opencv2/flann/ground_truth.h
/usr/include/opencv4/opencv2/flann/heap.h
/usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h
/usr/include/opencv4/opencv2/flann/index_testing.h
/usr/include/opencv4/opencv2/flann/kdtree_index.h
/usr/include/opencv4/opencv2/flann/kdtree_single_index.h
/usr/include/opencv4/opencv2/flann/kmeans_index.h
/usr/include/opencv4/opencv2/flann/linear_index.h
/usr/include/opencv4/opencv2/flann/logger.h
/usr/include/opencv4/opencv2/flann/lsh_index.h
/usr/include/opencv4/opencv2/flann/lsh_table.h
/usr/include/opencv4/opencv2/flann/matrix.h
/usr/include/opencv4/opencv2/flann/miniflann.hpp
/usr/include/opencv4/opencv2/flann/nn_index.h
/usr/include/opencv4/opencv2/flann/params.h
/usr/include/opencv4/opencv2/flann/random.h
/usr/include/opencv4/opencv2/flann/result_set.h
/usr/include/opencv4/opencv2/flann/sampling.h
/usr/include/opencv4/opencv2/flann/saving.h
/usr/include/opencv4/opencv2/flann/timer.h
/usr/include/opencv4/opencv2/highgui.hpp
/usr/include/opencv4/opencv2/imgcodecs.hpp
/usr/include/opencv4/opencv2/imgproc.hpp
/usr/include/opencv4/opencv2/ml.hpp
/usr/include/opencv4/opencv2/ml/ml.inl.hpp
/usr/include/opencv4/opencv2/objdetect.hpp
/usr/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp
/usr/include/opencv4/opencv2/opencv.hpp
/usr/include/opencv4/opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/photo.hpp
/usr/include/opencv4/opencv2/stitching.hpp
/usr/include/opencv4/opencv2/stitching/detail/blenders.hpp
/usr/include/opencv4/opencv2/stitching/detail/camera.hpp
/usr/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp
/usr/include/opencv4/opencv2/stitching/detail/matchers.hpp
/usr/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp
/usr/include/opencv4/opencv2/stitching/detail/seam_finders.hpp
/usr/include/opencv4/opencv2/stitching/detail/util.hpp
/usr/include/opencv4/opencv2/stitching/detail/util_inl.hpp
/usr/include/opencv4/opencv2/stitching/detail/warpers.hpp
/usr/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp
/usr/include/opencv4/opencv2/stitching/warpers.hpp
/usr/include/opencv4/opencv2/video.hpp
/usr/include/opencv4/opencv2/video/background_segm.hpp
/usr/include/opencv4/opencv2/video/tracking.hpp
/usr/include/opencv4/opencv2/videoio.hpp
/usr/local/cuda/include/builtin_types.h
/usr/local/cuda/include/crt/host_defines.h
/usr/local/cuda/include/cuda_device_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/device_types.h
/usr/local/cuda/include/driver_types.h
/usr/local/cuda/include/surface_types.h
/usr/local/cuda/include/texture_types.h
/usr/local/cuda/include/vector_types.h
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: ../calibrator.cpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: ../calibrator.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: ../cuda_utils.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: ../macros.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: ../utils.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/calib3d.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/affine.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/async.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/base.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/bufferpool.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/check.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cuda.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cuda.inl.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cuda_types.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cv_cpu_dispatch.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cv_cpu_helper.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cvdef.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cvstd.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cvstd.inl.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cvstd_wrapper.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/fast_math.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/hal/interface.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/mat.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/mat.inl.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/matx.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/neon_utils.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/operations.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/optim.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/ovx.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/persistence.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/saturate.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/traits.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/types.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/utility.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/version.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/vsx_utils.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/dnn.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/dnn/dict.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/dnn/dnn.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/dnn/dnn.inl.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/dnn/layer.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/dnn/utils/inference_engine.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/dnn/version.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/features2d.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/all_indices.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/allocator.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/any.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/autotuned_index.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/composite_index.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/config.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/defines.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/dist.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/dynamic_bitset.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/flann_base.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/general.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/ground_truth.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/heap.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/index_testing.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/kdtree_index.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/kdtree_single_index.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/kmeans_index.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/linear_index.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/logger.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/lsh_index.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/lsh_table.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/matrix.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/miniflann.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/nn_index.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/params.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/random.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/result_set.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/sampling.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/saving.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/timer.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/highgui.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/imgcodecs.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/imgproc.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/ml.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/ml/ml.inl.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/objdetect.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/opencv.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/opencv_modules.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/photo.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/blenders.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/camera.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/matchers.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/seam_finders.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/util.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/util_inl.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/warpers.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/warpers.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/video.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/video/background_segm.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/video/tracking.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/videoio.hpp
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/local/cuda/include/builtin_types.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/local/cuda/include/crt/host_defines.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/local/cuda/include/cuda_device_runtime_api.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/local/cuda/include/cuda_runtime_api.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/local/cuda/include/device_types.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/local/cuda/include/driver_types.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/local/cuda/include/surface_types.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/local/cuda/include/texture_types.h
CMakeFiles/yolov5-cls.dir/calibrator.cpp.o: /usr/local/cuda/include/vector_types.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: ../calibrator.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: ../common.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: ../cuda_utils.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: ../logging.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: ../macros.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: ../utils.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: ../yololayer.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: ../yolov5_cls.cpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/calib3d.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/affine.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/async.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/base.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/bufferpool.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/check.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/cuda.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/cuda.inl.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/cuda_types.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/cv_cpu_dispatch.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/cv_cpu_helper.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/cvdef.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/cvstd.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/cvstd.inl.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/cvstd_wrapper.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/fast_math.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/hal/interface.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/mat.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/mat.inl.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/matx.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/neon_utils.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/operations.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/optim.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/ovx.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/persistence.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/saturate.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/traits.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/types.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/utility.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/version.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/core/vsx_utils.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/dnn.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/dnn/dict.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/dnn/dnn.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/dnn/dnn.inl.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/dnn/layer.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/dnn/utils/inference_engine.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/dnn/version.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/features2d.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/all_indices.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/allocator.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/any.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/autotuned_index.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/composite_index.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/config.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/defines.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/dist.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/dynamic_bitset.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/flann_base.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/general.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/ground_truth.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/heap.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/index_testing.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/kdtree_index.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/kdtree_single_index.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/kmeans_index.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/linear_index.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/logger.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/lsh_index.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/lsh_table.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/matrix.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/miniflann.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/nn_index.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/params.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/random.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/result_set.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/sampling.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/saving.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/flann/timer.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/highgui.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/imgcodecs.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/imgproc.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/ml.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/ml/ml.inl.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/objdetect.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/opencv.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/opencv_modules.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/photo.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/stitching.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/blenders.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/camera.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/matchers.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/seam_finders.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/util.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/util_inl.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/warpers.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/stitching/warpers.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/video.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/video/background_segm.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/video/tracking.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/include/opencv4/opencv2/videoio.hpp
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/local/cuda/include/builtin_types.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/local/cuda/include/crt/host_defines.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/local/cuda/include/cuda_device_runtime_api.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/local/cuda/include/cuda_runtime_api.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/local/cuda/include/device_types.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/local/cuda/include/driver_types.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/local/cuda/include/surface_types.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/local/cuda/include/texture_types.h
CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o: /usr/local/cuda/include/vector_types.h
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
# compile CXX with /usr/bin/c++
CXX_FLAGS = -std=c++11 -Wall -Ofast -g -Wfatal-errors -D_MWAITXINTRIN_H_INCLUDED -g -std=c++11 -O2 -pthread -std=gnu++11
CXX_DEFINES = -DAPI_EXPORTS
CXX_INCLUDES = -I/home/ilens/tensorrtx/yolov5/include -I/usr/local/cuda/include -I/usr/include/x86_64-linux-gnu -isystem /usr/include/opencv4
/usr/bin/c++ -std=c++11 -Wall -Ofast -g -Wfatal-errors -D_MWAITXINTRIN_H_INCLUDED -g -rdynamic CMakeFiles/yolov5-cls.dir/calibrator.cpp.o CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o -o yolov5-cls -L/usr/local/cuda/lib64 -L/usr/lib/x86_64-linux-gnu -Wl,-rpath,/usr/local/cuda/lib64:/usr/lib/x86_64-linux-gnu:/home/ilens/tensorrtx/yolov5/build -lnvinfer -lcudart libmyplugins.so /usr/lib/aarch64-linux-gnu/libopencv_dnn.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_gapi.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_highgui.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_ml.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_objdetect.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_photo.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_stitching.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_video.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_videoio.so.4.1.1 /usr/local/cuda/lib64/libcudart.so -lnvinfer -lcudart /usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_calib3d.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_features2d.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_flann.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_imgproc.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_core.so.4.1.1
CMAKE_PROGRESS_1 = 7
CMAKE_PROGRESS_2 = 8
CMAKE_PROGRESS_3 = 9
#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">])
#IncludeRegexScan: ^.*$
#IncludeRegexComplain: ^$
#IncludeRegexTransform:
/home/ilens/tensorrtx/yolov5/calibrator.cpp
iostream
-
iterator
-
fstream
-
opencv2/dnn/dnn.hpp
-
calibrator.h
/home/ilens/tensorrtx/yolov5/calibrator.h
cuda_utils.h
/home/ilens/tensorrtx/yolov5/cuda_utils.h
utils.h
/home/ilens/tensorrtx/yolov5/utils.h
/home/ilens/tensorrtx/yolov5/calibrator.h
NvInfer.h
-
string
-
vector
-
macros.h
/home/ilens/tensorrtx/yolov5/macros.h
/home/ilens/tensorrtx/yolov5/common.hpp
fstream
-
map
-
sstream
-
vector
-
opencv2/opencv.hpp
-
NvInfer.h
/home/ilens/tensorrtx/yolov5/NvInfer.h
yololayer.h
/home/ilens/tensorrtx/yolov5/yololayer.h
/home/ilens/tensorrtx/yolov5/cuda_utils.h
cuda_runtime_api.h
-
/home/ilens/tensorrtx/yolov5/logging.h
NvInferRuntimeCommon.h
/home/ilens/tensorrtx/yolov5/NvInferRuntimeCommon.h
cassert
-
ctime
-
iomanip
-
iostream
-
ostream
-
sstream
-
string
-
macros.h
/home/ilens/tensorrtx/yolov5/macros.h
/home/ilens/tensorrtx/yolov5/macros.h
/home/ilens/tensorrtx/yolov5/preprocess.h
cuda_runtime.h
-
cstdint
-
/home/ilens/tensorrtx/yolov5/utils.h
dirent.h
-
opencv2/opencv.hpp
-
/home/ilens/tensorrtx/yolov5/yololayer.h
vector
-
string
-
NvInfer.h
-
macros.h
/home/ilens/tensorrtx/yolov5/macros.h
/home/ilens/tensorrtx/yolov5/yolov5.cpp
iostream
-
chrono
-
cmath
-
cuda_utils.h
/home/ilens/tensorrtx/yolov5/cuda_utils.h
logging.h
/home/ilens/tensorrtx/yolov5/logging.h
common.hpp
/home/ilens/tensorrtx/yolov5/common.hpp
utils.h
/home/ilens/tensorrtx/yolov5/utils.h
calibrator.h
/home/ilens/tensorrtx/yolov5/calibrator.h
preprocess.h
/home/ilens/tensorrtx/yolov5/preprocess.h
/usr/include/opencv4/opencv2/calib3d.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
opencv2/features2d.hpp
/usr/include/opencv4/opencv2/opencv2/features2d.hpp
opencv2/core/affine.hpp
/usr/include/opencv4/opencv2/opencv2/core/affine.hpp
/usr/include/opencv4/opencv2/core.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/opencv2/core/cvdef.h
opencv2/core/version.hpp
/usr/include/opencv4/opencv2/opencv2/core/version.hpp
opencv2/core/base.hpp
/usr/include/opencv4/opencv2/opencv2/core/base.hpp
opencv2/core/cvstd.hpp
/usr/include/opencv4/opencv2/opencv2/core/cvstd.hpp
opencv2/core/traits.hpp
/usr/include/opencv4/opencv2/opencv2/core/traits.hpp
opencv2/core/matx.hpp
/usr/include/opencv4/opencv2/opencv2/core/matx.hpp
opencv2/core/types.hpp
/usr/include/opencv4/opencv2/opencv2/core/types.hpp
opencv2/core/mat.hpp
/usr/include/opencv4/opencv2/opencv2/core/mat.hpp
opencv2/core/persistence.hpp
/usr/include/opencv4/opencv2/opencv2/core/persistence.hpp
opencv2/core/operations.hpp
/usr/include/opencv4/opencv2/opencv2/core/operations.hpp
opencv2/core/cvstd.inl.hpp
/usr/include/opencv4/opencv2/opencv2/core/cvstd.inl.hpp
opencv2/core/utility.hpp
/usr/include/opencv4/opencv2/opencv2/core/utility.hpp
opencv2/core/optim.hpp
/usr/include/opencv4/opencv2/opencv2/core/optim.hpp
opencv2/core/ovx.hpp
/usr/include/opencv4/opencv2/opencv2/core/ovx.hpp
/usr/include/opencv4/opencv2/core/affine.hpp
opencv2/core.hpp
-
/usr/include/opencv4/opencv2/core/async.hpp
opencv2/core/mat.hpp
-
chrono
-
/usr/include/opencv4/opencv2/core/base.hpp
opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/core/opencv2/opencv_modules.hpp
climits
-
algorithm
-
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
opencv2/core/cvstd.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/cvstd.hpp
opencv2/core/neon_utils.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/neon_utils.hpp
opencv2/core/vsx_utils.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/vsx_utils.hpp
opencv2/core/check.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/check.hpp
/usr/include/opencv4/opencv2/core/bufferpool.hpp
/usr/include/opencv4/opencv2/core/check.hpp
opencv2/core/base.hpp
-
/usr/include/opencv4/opencv2/core/cuda.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/core/opencv2/core.hpp
opencv2/core/cuda_types.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/cuda_types.hpp
opencv2/opencv.hpp
-
opencv2/core/cuda.inl.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/cuda.inl.hpp
/usr/include/opencv4/opencv2/core/cuda.inl.hpp
opencv2/core/cuda.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/cuda.hpp
/usr/include/opencv4/opencv2/core/cuda_types.hpp
/usr/include/opencv4/opencv2/core/cv_cpu_dispatch.h
cv_cpu_config.h
/usr/include/opencv4/opencv2/core/cv_cpu_config.h
cv_cpu_helper.h
/usr/include/opencv4/opencv2/core/cv_cpu_helper.h
emmintrin.h
-
pmmintrin.h
-
tmmintrin.h
-
smmintrin.h
-
nmmintrin.h
-
nmmintrin.h
-
popcntintrin.h
-
immintrin.h
-
arm_neon.h
-
immintrin.h
-
immintrin.h
-
immintrin.h
-
Intrin.h
-
arm_neon.h
-
arm_neon.h
-
arm_neon.h
-
altivec.h
-
emmintrin.h
-
Intrin.h
-
arm_neon.h
-
arm_neon.h
-
altivec.h
-
/usr/include/opencv4/opencv2/core/cv_cpu_helper.h
/usr/include/opencv4/opencv2/core/cvdef.h
cvconfig.h
/usr/include/opencv4/opencv2/core/cvconfig.h
limits.h
-
opencv2/core/hal/interface.h
/usr/include/opencv4/opencv2/core/opencv2/core/hal/interface.h
cv_cpu_dispatch.h
/usr/include/opencv4/opencv2/core/cv_cpu_dispatch.h
intrin.h
-
array
-
cstdint
-
stdint.h
-
stdint.h
-
opencv2/core/fast_math.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/fast_math.hpp
/usr/include/opencv4/opencv2/core/cvstd.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
cstddef
-
cstring
-
cctype
-
string
-
algorithm
-
utility
-
cstdlib
-
cmath
-
cvstd_wrapper.hpp
/usr/include/opencv4/opencv2/core/cvstd_wrapper.hpp
/usr/include/opencv4/opencv2/core/cvstd.inl.hpp
complex
-
ostream
-
/usr/include/opencv4/opencv2/core/cvstd_wrapper.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
string
-
memory
-
type_traits
-
/usr/include/opencv4/opencv2/core/fast_math.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
emmintrin.h
-
cmath
-
fastmath.h
-
math.h
-
/usr/include/opencv4/opencv2/core/hal/interface.h
cstddef
-
stddef.h
-
stdbool.h
-
cstdint
-
stdint.h
-
/usr/include/opencv4/opencv2/core/mat.hpp
opencv2/core/matx.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/matx.hpp
opencv2/core/types.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/types.hpp
opencv2/core/bufferpool.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/bufferpool.hpp
type_traits
-
opencv2/core/mat.inl.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/mat.inl.hpp
/usr/include/opencv4/opencv2/core/mat.inl.hpp
/usr/include/opencv4/opencv2/core/matx.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
opencv2/core/base.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/base.hpp
opencv2/core/traits.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/traits.hpp
opencv2/core/saturate.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/saturate.hpp
initializer_list
-
/usr/include/opencv4/opencv2/core/neon_utils.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/operations.hpp
cstdio
-
/usr/include/opencv4/opencv2/core/optim.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/core/opencv2/core.hpp
/usr/include/opencv4/opencv2/core/ovx.hpp
cvdef.h
/usr/include/opencv4/opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/persistence.hpp
opencv2/core/types.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/types.hpp
opencv2/core/mat.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/mat.hpp
opencv2/opencv.hpp
/usr/include/opencv4/opencv2/core/opencv2/opencv.hpp
time.h
-
/usr/include/opencv4/opencv2/core/saturate.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
opencv2/core/fast_math.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/fast_math.hpp
/usr/include/opencv4/opencv2/core/traits.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/types.hpp
climits
-
cfloat
-
vector
-
limits
-
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
opencv2/core/cvstd.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/cvstd.hpp
opencv2/core/matx.hpp
/usr/include/opencv4/opencv2/core/opencv2/core/matx.hpp
/usr/include/opencv4/opencv2/core/utility.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/core/opencv2/core.hpp
ostream
-
functional
-
mutex
-
/usr/include/opencv4/opencv2/core/version.hpp
/usr/include/opencv4/opencv2/core/vsx_utils.hpp
opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/opencv2/core/cvdef.h
assert.h
-
/usr/include/opencv4/opencv2/dnn.hpp
opencv2/dnn/dnn.hpp
-
/usr/include/opencv4/opencv2/dnn/dict.hpp
opencv2/core.hpp
-
map
-
ostream
-
opencv2/dnn/dnn.hpp
-
/usr/include/opencv4/opencv2/dnn/dnn.hpp
vector
-
opencv2/core.hpp
-
opencv2/core/async.hpp
/usr/include/opencv4/opencv2/dnn/opencv2/core/async.hpp
../dnn/version.hpp
/usr/include/opencv4/opencv2/dnn/version.hpp
opencv2/dnn/dict.hpp
-
opencv2/dnn/layer.hpp
-
opencv2/dnn/dnn.inl.hpp
-
opencv2/dnn/utils/inference_engine.hpp
-
/usr/include/opencv4/opencv2/dnn/dnn.inl.hpp
opencv2/dnn.hpp
-
/usr/include/opencv4/opencv2/dnn/layer.hpp
opencv2/dnn.hpp
-
/usr/include/opencv4/opencv2/dnn/utils/inference_engine.hpp
../dnn.hpp
/usr/include/opencv4/opencv2/dnn/dnn.hpp
/usr/include/opencv4/opencv2/dnn/version.hpp
/usr/include/opencv4/opencv2/features2d.hpp
opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/opencv2/opencv_modules.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
opencv2/flann/miniflann.hpp
/usr/include/opencv4/opencv2/opencv2/flann/miniflann.hpp
/usr/include/opencv4/opencv2/flann.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
opencv2/flann/miniflann.hpp
/usr/include/opencv4/opencv2/opencv2/flann/miniflann.hpp
opencv2/flann/flann_base.hpp
/usr/include/opencv4/opencv2/opencv2/flann/flann_base.hpp
/usr/include/opencv4/opencv2/flann/all_indices.h
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
kdtree_index.h
/usr/include/opencv4/opencv2/flann/kdtree_index.h
kdtree_single_index.h
/usr/include/opencv4/opencv2/flann/kdtree_single_index.h
kmeans_index.h
/usr/include/opencv4/opencv2/flann/kmeans_index.h
composite_index.h
/usr/include/opencv4/opencv2/flann/composite_index.h
linear_index.h
/usr/include/opencv4/opencv2/flann/linear_index.h
hierarchical_clustering_index.h
/usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h
lsh_index.h
/usr/include/opencv4/opencv2/flann/lsh_index.h
autotuned_index.h
/usr/include/opencv4/opencv2/flann/autotuned_index.h
/usr/include/opencv4/opencv2/flann/allocator.h
stdlib.h
-
stdio.h
-
/usr/include/opencv4/opencv2/flann/any.h
defines.h
/usr/include/opencv4/opencv2/flann/defines.h
stdexcept
-
ostream
-
typeinfo
-
/usr/include/opencv4/opencv2/flann/autotuned_index.h
sstream
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
ground_truth.h
/usr/include/opencv4/opencv2/flann/ground_truth.h
index_testing.h
/usr/include/opencv4/opencv2/flann/index_testing.h
sampling.h
/usr/include/opencv4/opencv2/flann/sampling.h
kdtree_index.h
/usr/include/opencv4/opencv2/flann/kdtree_index.h
kdtree_single_index.h
/usr/include/opencv4/opencv2/flann/kdtree_single_index.h
kmeans_index.h
/usr/include/opencv4/opencv2/flann/kmeans_index.h
composite_index.h
/usr/include/opencv4/opencv2/flann/composite_index.h
linear_index.h
/usr/include/opencv4/opencv2/flann/linear_index.h
logger.h
/usr/include/opencv4/opencv2/flann/logger.h
/usr/include/opencv4/opencv2/flann/composite_index.h
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
kdtree_index.h
/usr/include/opencv4/opencv2/flann/kdtree_index.h
kmeans_index.h
/usr/include/opencv4/opencv2/flann/kmeans_index.h
/usr/include/opencv4/opencv2/flann/config.h
/usr/include/opencv4/opencv2/flann/defines.h
config.h
/usr/include/opencv4/opencv2/flann/config.h
/usr/include/opencv4/opencv2/flann/dist.h
cmath
-
cstdlib
-
string.h
-
stdint.h
-
defines.h
/usr/include/opencv4/opencv2/flann/defines.h
Intrin.h
-
arm_neon.h
/usr/include/opencv4/opencv2/flann/arm_neon.h
/usr/include/opencv4/opencv2/flann/dynamic_bitset.h
boost/dynamic_bitset.hpp
-
limits.h
-
dist.h
/usr/include/opencv4/opencv2/flann/dist.h
/usr/include/opencv4/opencv2/flann/flann_base.hpp
vector
-
cassert
-
cstdio
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
params.h
/usr/include/opencv4/opencv2/flann/params.h
saving.h
/usr/include/opencv4/opencv2/flann/saving.h
all_indices.h
/usr/include/opencv4/opencv2/flann/all_indices.h
/usr/include/opencv4/opencv2/flann/general.h
opencv2/core.hpp
/usr/include/opencv4/opencv2/flann/opencv2/core.hpp
/usr/include/opencv4/opencv2/flann/ground_truth.h
dist.h
/usr/include/opencv4/opencv2/flann/dist.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
/usr/include/opencv4/opencv2/flann/heap.h
algorithm
-
vector
-
/usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h
algorithm
-
map
-
cassert
-
limits
-
cmath
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
dist.h
/usr/include/opencv4/opencv2/flann/dist.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
result_set.h
/usr/include/opencv4/opencv2/flann/result_set.h
heap.h
/usr/include/opencv4/opencv2/flann/heap.h
allocator.h
/usr/include/opencv4/opencv2/flann/allocator.h
random.h
/usr/include/opencv4/opencv2/flann/random.h
saving.h
/usr/include/opencv4/opencv2/flann/saving.h
/usr/include/opencv4/opencv2/flann/index_testing.h
cstring
-
cassert
-
cmath
-
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
result_set.h
/usr/include/opencv4/opencv2/flann/result_set.h
logger.h
/usr/include/opencv4/opencv2/flann/logger.h
timer.h
/usr/include/opencv4/opencv2/flann/timer.h
/usr/include/opencv4/opencv2/flann/kdtree_index.h
algorithm
-
map
-
cassert
-
cstring
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
dynamic_bitset.h
/usr/include/opencv4/opencv2/flann/dynamic_bitset.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
result_set.h
/usr/include/opencv4/opencv2/flann/result_set.h
heap.h
/usr/include/opencv4/opencv2/flann/heap.h
allocator.h
/usr/include/opencv4/opencv2/flann/allocator.h
random.h
/usr/include/opencv4/opencv2/flann/random.h
saving.h
/usr/include/opencv4/opencv2/flann/saving.h
/usr/include/opencv4/opencv2/flann/kdtree_single_index.h
algorithm
-
map
-
cassert
-
cstring
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
result_set.h
/usr/include/opencv4/opencv2/flann/result_set.h
heap.h
/usr/include/opencv4/opencv2/flann/heap.h
allocator.h
/usr/include/opencv4/opencv2/flann/allocator.h
random.h
/usr/include/opencv4/opencv2/flann/random.h
saving.h
/usr/include/opencv4/opencv2/flann/saving.h
/usr/include/opencv4/opencv2/flann/kmeans_index.h
algorithm
-
map
-
cassert
-
limits
-
cmath
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
dist.h
/usr/include/opencv4/opencv2/flann/dist.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
result_set.h
/usr/include/opencv4/opencv2/flann/result_set.h
heap.h
/usr/include/opencv4/opencv2/flann/heap.h
allocator.h
/usr/include/opencv4/opencv2/flann/allocator.h
random.h
/usr/include/opencv4/opencv2/flann/random.h
saving.h
/usr/include/opencv4/opencv2/flann/saving.h
logger.h
/usr/include/opencv4/opencv2/flann/logger.h
/usr/include/opencv4/opencv2/flann/linear_index.h
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
/usr/include/opencv4/opencv2/flann/logger.h
stdio.h
-
stdarg.h
-
defines.h
/usr/include/opencv4/opencv2/flann/defines.h
/usr/include/opencv4/opencv2/flann/lsh_index.h
algorithm
-
cassert
-
cstring
-
map
-
vector
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
result_set.h
/usr/include/opencv4/opencv2/flann/result_set.h
heap.h
/usr/include/opencv4/opencv2/flann/heap.h
lsh_table.h
/usr/include/opencv4/opencv2/flann/lsh_table.h
allocator.h
/usr/include/opencv4/opencv2/flann/allocator.h
random.h
/usr/include/opencv4/opencv2/flann/random.h
saving.h
/usr/include/opencv4/opencv2/flann/saving.h
/usr/include/opencv4/opencv2/flann/lsh_table.h
algorithm
-
iostream
-
iomanip
-
limits.h
-
unordered_map
-
map
-
math.h
-
stddef.h
-
dynamic_bitset.h
/usr/include/opencv4/opencv2/flann/dynamic_bitset.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
stdio.h
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
/usr/include/opencv4/opencv2/flann/miniflann.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/flann/opencv2/core.hpp
opencv2/flann/defines.h
/usr/include/opencv4/opencv2/flann/opencv2/flann/defines.h
/usr/include/opencv4/opencv2/flann/nn_index.h
general.h
/usr/include/opencv4/opencv2/flann/general.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
result_set.h
/usr/include/opencv4/opencv2/flann/result_set.h
params.h
/usr/include/opencv4/opencv2/flann/params.h
/usr/include/opencv4/opencv2/flann/params.h
any.h
/usr/include/opencv4/opencv2/flann/any.h
general.h
/usr/include/opencv4/opencv2/flann/general.h
iostream
-
map
-
/usr/include/opencv4/opencv2/flann/random.h
algorithm
-
cstdlib
-
vector
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
/usr/include/opencv4/opencv2/flann/result_set.h
algorithm
-
cstring
-
iostream
-
limits
-
set
-
vector
-
/usr/include/opencv4/opencv2/flann/sampling.h
matrix.h
/usr/include/opencv4/opencv2/flann/matrix.h
random.h
/usr/include/opencv4/opencv2/flann/random.h
/usr/include/opencv4/opencv2/flann/saving.h
cstring
-
vector
-
general.h
/usr/include/opencv4/opencv2/flann/general.h
nn_index.h
/usr/include/opencv4/opencv2/flann/nn_index.h
/usr/include/opencv4/opencv2/flann/timer.h
time.h
-
opencv2/core.hpp
/usr/include/opencv4/opencv2/flann/opencv2/core.hpp
opencv2/core/utility.hpp
/usr/include/opencv4/opencv2/flann/opencv2/core/utility.hpp
/usr/include/opencv4/opencv2/highgui.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
opencv2/imgcodecs.hpp
/usr/include/opencv4/opencv2/opencv2/imgcodecs.hpp
opencv2/videoio.hpp
/usr/include/opencv4/opencv2/opencv2/videoio.hpp
/usr/include/opencv4/opencv2/imgcodecs.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
/usr/include/opencv4/opencv2/imgproc.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
/usr/include/opencv4/opencv2/ml.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
float.h
-
map
-
iostream
-
opencv2/ml/ml.inl.hpp
-
/usr/include/opencv4/opencv2/ml/ml.inl.hpp
/usr/include/opencv4/opencv2/objdetect.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
opencv2/objdetect/detection_based_tracker.hpp
/usr/include/opencv4/opencv2/opencv2/objdetect/detection_based_tracker.hpp
/usr/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp
opencv2/core.hpp
-
vector
-
/usr/include/opencv4/opencv2/opencv.hpp
opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/opencv2/opencv_modules.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
opencv2/calib3d.hpp
/usr/include/opencv4/opencv2/opencv2/calib3d.hpp
opencv2/features2d.hpp
/usr/include/opencv4/opencv2/opencv2/features2d.hpp
opencv2/dnn.hpp
/usr/include/opencv4/opencv2/opencv2/dnn.hpp
opencv2/flann.hpp
/usr/include/opencv4/opencv2/opencv2/flann.hpp
opencv2/highgui.hpp
/usr/include/opencv4/opencv2/opencv2/highgui.hpp
opencv2/imgcodecs.hpp
/usr/include/opencv4/opencv2/opencv2/imgcodecs.hpp
opencv2/imgproc.hpp
/usr/include/opencv4/opencv2/opencv2/imgproc.hpp
opencv2/ml.hpp
/usr/include/opencv4/opencv2/opencv2/ml.hpp
opencv2/objdetect.hpp
/usr/include/opencv4/opencv2/opencv2/objdetect.hpp
opencv2/photo.hpp
/usr/include/opencv4/opencv2/opencv2/photo.hpp
opencv2/shape.hpp
/usr/include/opencv4/opencv2/opencv2/shape.hpp
opencv2/stitching.hpp
/usr/include/opencv4/opencv2/opencv2/stitching.hpp
opencv2/superres.hpp
/usr/include/opencv4/opencv2/opencv2/superres.hpp
opencv2/video.hpp
/usr/include/opencv4/opencv2/opencv2/video.hpp
opencv2/videoio.hpp
/usr/include/opencv4/opencv2/opencv2/videoio.hpp
opencv2/videostab.hpp
/usr/include/opencv4/opencv2/opencv2/videostab.hpp
opencv2/viz.hpp
/usr/include/opencv4/opencv2/opencv2/viz.hpp
opencv2/cudaarithm.hpp
/usr/include/opencv4/opencv2/opencv2/cudaarithm.hpp
opencv2/cudabgsegm.hpp
/usr/include/opencv4/opencv2/opencv2/cudabgsegm.hpp
opencv2/cudacodec.hpp
/usr/include/opencv4/opencv2/opencv2/cudacodec.hpp
opencv2/cudafeatures2d.hpp
/usr/include/opencv4/opencv2/opencv2/cudafeatures2d.hpp
opencv2/cudafilters.hpp
/usr/include/opencv4/opencv2/opencv2/cudafilters.hpp
opencv2/cudaimgproc.hpp
/usr/include/opencv4/opencv2/opencv2/cudaimgproc.hpp
opencv2/cudaobjdetect.hpp
/usr/include/opencv4/opencv2/opencv2/cudaobjdetect.hpp
opencv2/cudaoptflow.hpp
/usr/include/opencv4/opencv2/opencv2/cudaoptflow.hpp
opencv2/cudastereo.hpp
/usr/include/opencv4/opencv2/opencv2/cudastereo.hpp
opencv2/cudawarping.hpp
/usr/include/opencv4/opencv2/opencv2/cudawarping.hpp
/usr/include/opencv4/opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/photo.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
opencv2/imgproc.hpp
/usr/include/opencv4/opencv2/opencv2/imgproc.hpp
/usr/include/opencv4/opencv2/stitching.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
opencv2/features2d.hpp
/usr/include/opencv4/opencv2/opencv2/features2d.hpp
opencv2/stitching/warpers.hpp
/usr/include/opencv4/opencv2/opencv2/stitching/warpers.hpp
opencv2/stitching/detail/matchers.hpp
/usr/include/opencv4/opencv2/opencv2/stitching/detail/matchers.hpp
opencv2/stitching/detail/motion_estimators.hpp
/usr/include/opencv4/opencv2/opencv2/stitching/detail/motion_estimators.hpp
opencv2/stitching/detail/exposure_compensate.hpp
/usr/include/opencv4/opencv2/opencv2/stitching/detail/exposure_compensate.hpp
opencv2/stitching/detail/seam_finders.hpp
/usr/include/opencv4/opencv2/opencv2/stitching/detail/seam_finders.hpp
opencv2/stitching/detail/blenders.hpp
/usr/include/opencv4/opencv2/opencv2/stitching/detail/blenders.hpp
opencv2/stitching/detail/camera.hpp
/usr/include/opencv4/opencv2/opencv2/stitching/detail/camera.hpp
/usr/include/opencv4/opencv2/stitching/detail/blenders.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
opencv2/core/cuda.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core/cuda.hpp
/usr/include/opencv4/opencv2/stitching/detail/camera.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/matchers.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
opencv2/features2d.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/features2d.hpp
opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
matchers.hpp
/usr/include/opencv4/opencv2/stitching/detail/matchers.hpp
util.hpp
/usr/include/opencv4/opencv2/stitching/detail/util.hpp
camera.hpp
/usr/include/opencv4/opencv2/stitching/detail/camera.hpp
/usr/include/opencv4/opencv2/stitching/detail/seam_finders.hpp
set
-
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/stitching/detail/util.hpp
list
-
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
util_inl.hpp
/usr/include/opencv4/opencv2/stitching/detail/util_inl.hpp
/usr/include/opencv4/opencv2/stitching/detail/util_inl.hpp
queue
-
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
util.hpp
/usr/include/opencv4/opencv2/stitching/detail/util.hpp
/usr/include/opencv4/opencv2/stitching/detail/warpers.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
opencv2/core/cuda.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core/cuda.hpp
opencv2/imgproc.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/imgproc.hpp
opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/opencv_modules.hpp
warpers_inl.hpp
/usr/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp
/usr/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/stitching/detail/opencv2/core.hpp
warpers.hpp
/usr/include/opencv4/opencv2/stitching/detail/warpers.hpp
limits
-
/usr/include/opencv4/opencv2/stitching/warpers.hpp
opencv2/stitching/detail/warpers.hpp
/usr/include/opencv4/opencv2/stitching/opencv2/stitching/detail/warpers.hpp
string
-
/usr/include/opencv4/opencv2/video.hpp
opencv2/video/tracking.hpp
/usr/include/opencv4/opencv2/opencv2/video/tracking.hpp
opencv2/video/background_segm.hpp
/usr/include/opencv4/opencv2/opencv2/video/background_segm.hpp
/usr/include/opencv4/opencv2/video/background_segm.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/video/opencv2/core.hpp
/usr/include/opencv4/opencv2/video/tracking.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/video/opencv2/core.hpp
opencv2/imgproc.hpp
/usr/include/opencv4/opencv2/video/opencv2/imgproc.hpp
/usr/include/opencv4/opencv2/videoio.hpp
opencv2/core.hpp
/usr/include/opencv4/opencv2/opencv2/core.hpp
/usr/local/cuda/include/builtin_types.h
device_types.h
/usr/local/cuda/include/device_types.h
driver_types.h
/usr/local/cuda/include/driver_types.h
surface_types.h
/usr/local/cuda/include/surface_types.h
texture_types.h
/usr/local/cuda/include/texture_types.h
vector_types.h
/usr/local/cuda/include/vector_types.h
/usr/local/cuda/include/channel_descriptor.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/crt/common_functions.h
builtin_types.h
/usr/local/cuda/include/crt/builtin_types.h
host_defines.h
/usr/local/cuda/include/crt/host_defines.h
string.h
-
time.h
-
new
-
stdio.h
-
stdlib.h
-
assert.h
-
cuda_device_runtime_api.h
/usr/local/cuda/include/crt/cuda_device_runtime_api.h
math_functions.h
/usr/local/cuda/include/crt/math_functions.h
/usr/local/cuda/include/crt/device_double_functions.h
builtin_types.h
/usr/local/cuda/include/crt/builtin_types.h
device_types.h
/usr/local/cuda/include/crt/device_types.h
host_defines.h
/usr/local/cuda/include/crt/host_defines.h
device_double_functions.hpp
/usr/local/cuda/include/crt/device_double_functions.hpp
/usr/local/cuda/include/crt/device_double_functions.hpp
builtin_types.h
/usr/local/cuda/include/crt/builtin_types.h
device_types.h
/usr/local/cuda/include/crt/device_types.h
host_defines.h
/usr/local/cuda/include/crt/host_defines.h
/usr/local/cuda/include/crt/device_functions.h
builtin_types.h
/usr/local/cuda/include/crt/builtin_types.h
device_types.h
/usr/local/cuda/include/crt/device_types.h
host_defines.h
/usr/local/cuda/include/crt/host_defines.h
device_functions.hpp
/usr/local/cuda/include/crt/device_functions.hpp
device_atomic_functions.h
/usr/local/cuda/include/crt/device_atomic_functions.h
device_double_functions.h
/usr/local/cuda/include/crt/device_double_functions.h
sm_20_atomic_functions.h
/usr/local/cuda/include/crt/sm_20_atomic_functions.h
sm_32_atomic_functions.h
/usr/local/cuda/include/crt/sm_32_atomic_functions.h
sm_35_atomic_functions.h
/usr/local/cuda/include/crt/sm_35_atomic_functions.h
sm_60_atomic_functions.h
/usr/local/cuda/include/crt/sm_60_atomic_functions.h
sm_20_intrinsics.h
/usr/local/cuda/include/crt/sm_20_intrinsics.h
sm_30_intrinsics.h
/usr/local/cuda/include/crt/sm_30_intrinsics.h
sm_32_intrinsics.h
/usr/local/cuda/include/crt/sm_32_intrinsics.h
sm_35_intrinsics.h
/usr/local/cuda/include/crt/sm_35_intrinsics.h
sm_61_intrinsics.h
/usr/local/cuda/include/crt/sm_61_intrinsics.h
sm_70_rt.h
/usr/local/cuda/include/crt/sm_70_rt.h
surface_functions.h
/usr/local/cuda/include/crt/surface_functions.h
texture_fetch_functions.h
/usr/local/cuda/include/crt/texture_fetch_functions.h
texture_indirect_functions.h
/usr/local/cuda/include/crt/texture_indirect_functions.h
surface_indirect_functions.h
/usr/local/cuda/include/crt/surface_indirect_functions.h
/usr/local/cuda/include/crt/device_functions.hpp
builtin_types.h
/usr/local/cuda/include/crt/builtin_types.h
device_types.h
/usr/local/cuda/include/crt/device_types.h
host_defines.h
/usr/local/cuda/include/crt/host_defines.h
/usr/local/cuda/include/crt/func_macro.h
/usr/local/cuda/include/crt/host_config.h
features.h
-
crtdefs.h
-
corecrt.h
-
cstdarg
-
/usr/local/cuda/include/crt/host_defines.h
/usr/local/cuda/include/crt/math_functions.h
__config
-
builtin_types.h
/usr/local/cuda/include/crt/builtin_types.h
host_defines.h
/usr/local/cuda/include/crt/host_defines.h
math.h
-
stdlib.h
-
cmath
-
cstdlib
-
crt/func_macro.h
-
math_functions.hpp
/usr/local/cuda/include/crt/math_functions.hpp
/usr/local/cuda/include/crt/math_functions.hpp
builtin_types.h
/usr/local/cuda/include/crt/builtin_types.h
host_defines.h
/usr/local/cuda/include/crt/host_defines.h
host_defines.h
/usr/local/cuda/include/crt/host_defines.h
math_constants.h
/usr/local/cuda/include/crt/math_constants.h
crt/func_macro.h
-
/usr/local/cuda/include/crt/sm_70_rt.h
builtin_types.h
/usr/local/cuda/include/crt/builtin_types.h
device_types.h
/usr/local/cuda/include/crt/device_types.h
host_defines.h
/usr/local/cuda/include/crt/host_defines.h
sm_70_rt.hpp
/usr/local/cuda/include/crt/sm_70_rt.hpp
/usr/local/cuda/include/crt/sm_70_rt.hpp
builtin_types.h
/usr/local/cuda/include/crt/builtin_types.h
device_types.h
/usr/local/cuda/include/crt/device_types.h
host_defines.h
/usr/local/cuda/include/crt/host_defines.h
/usr/local/cuda/include/cuda_device_runtime_api.h
driver_types.h
/usr/local/cuda/include/driver_types.h
crt/host_defines.h
/usr/local/cuda/include/crt/host_defines.h
/usr/local/cuda/include/cuda_runtime.h
crt/host_config.h
/usr/local/cuda/include/crt/host_config.h
builtin_types.h
/usr/local/cuda/include/builtin_types.h
library_types.h
/usr/local/cuda/include/library_types.h
channel_descriptor.h
/usr/local/cuda/include/channel_descriptor.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
driver_functions.h
/usr/local/cuda/include/driver_functions.h
crt/host_defines.h
/usr/local/cuda/include/crt/host_defines.h
vector_functions.h
/usr/local/cuda/include/vector_functions.h
nvrtc_device_runtime.h
/usr/local/cuda/include/nvrtc_device_runtime.h
crt/device_functions.h
/usr/local/cuda/include/crt/device_functions.h
crt/common_functions.h
/usr/local/cuda/include/crt/common_functions.h
cuda_surface_types.h
/usr/local/cuda/include/cuda_surface_types.h
cuda_texture_types.h
/usr/local/cuda/include/cuda_texture_types.h
device_launch_parameters.h
/usr/local/cuda/include/device_launch_parameters.h
crt/common_functions.h
/usr/local/cuda/include/crt/common_functions.h
cuda_surface_types.h
/usr/local/cuda/include/cuda_surface_types.h
cuda_texture_types.h
/usr/local/cuda/include/cuda_texture_types.h
crt/device_functions.h
/usr/local/cuda/include/crt/device_functions.h
device_launch_parameters.h
/usr/local/cuda/include/device_launch_parameters.h
functional
-
utility
-
/usr/local/cuda/include/cuda_runtime_api.h
crt/host_defines.h
/usr/local/cuda/include/crt/host_defines.h
builtin_types.h
/usr/local/cuda/include/builtin_types.h
cuda_device_runtime_api.h
/usr/local/cuda/include/cuda_device_runtime_api.h
/usr/local/cuda/include/cuda_surface_types.h
channel_descriptor.h
/usr/local/cuda/include/channel_descriptor.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/cuda_texture_types.h
channel_descriptor.h
/usr/local/cuda/include/channel_descriptor.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/device_atomic_functions.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
device_atomic_functions.hpp
/usr/local/cuda/include/device_atomic_functions.hpp
/usr/local/cuda/include/device_atomic_functions.hpp
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/device_launch_parameters.h
vector_types.h
/usr/local/cuda/include/vector_types.h
/usr/local/cuda/include/device_types.h
crt/host_defines.h
/usr/local/cuda/include/crt/host_defines.h
/usr/local/cuda/include/driver_functions.h
builtin_types.h
/usr/local/cuda/include/builtin_types.h
crt/host_defines.h
/usr/local/cuda/include/crt/host_defines.h
driver_types.h
/usr/local/cuda/include/driver_types.h
/usr/local/cuda/include/driver_types.h
crt/host_defines.h
/usr/local/cuda/include/crt/host_defines.h
vector_types.h
/usr/local/cuda/include/vector_types.h
limits.h
-
stddef.h
-
/usr/local/cuda/include/library_types.h
/usr/local/cuda/include/math_constants.h
/usr/local/cuda/include/sm_20_atomic_functions.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
sm_20_atomic_functions.hpp
/usr/local/cuda/include/sm_20_atomic_functions.hpp
/usr/local/cuda/include/sm_20_atomic_functions.hpp
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/sm_20_intrinsics.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
sm_20_intrinsics.hpp
/usr/local/cuda/include/sm_20_intrinsics.hpp
/usr/local/cuda/include/sm_20_intrinsics.hpp
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/sm_30_intrinsics.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
sm_30_intrinsics.hpp
/usr/local/cuda/include/sm_30_intrinsics.hpp
/usr/local/cuda/include/sm_30_intrinsics.hpp
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/sm_32_atomic_functions.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
sm_32_atomic_functions.hpp
/usr/local/cuda/include/sm_32_atomic_functions.hpp
/usr/local/cuda/include/sm_32_atomic_functions.hpp
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/sm_32_intrinsics.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
sm_32_intrinsics.hpp
/usr/local/cuda/include/sm_32_intrinsics.hpp
/usr/local/cuda/include/sm_32_intrinsics.hpp
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/sm_35_atomic_functions.h
sm_32_atomic_functions.h
/usr/local/cuda/include/sm_32_atomic_functions.h
/usr/local/cuda/include/sm_35_intrinsics.h
sm_32_intrinsics.h
/usr/local/cuda/include/sm_32_intrinsics.h
/usr/local/cuda/include/sm_60_atomic_functions.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
sm_60_atomic_functions.hpp
/usr/local/cuda/include/sm_60_atomic_functions.hpp
/usr/local/cuda/include/sm_60_atomic_functions.hpp
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/sm_61_intrinsics.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
sm_61_intrinsics.hpp
/usr/local/cuda/include/sm_61_intrinsics.hpp
/usr/local/cuda/include/sm_61_intrinsics.hpp
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/surface_functions.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
cuda_surface_types.h
/usr/local/cuda/include/cuda_surface_types.h
/usr/local/cuda/include/surface_indirect_functions.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/surface_types.h
driver_types.h
/usr/local/cuda/include/driver_types.h
/usr/local/cuda/include/texture_fetch_functions.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
cuda_texture_types.h
/usr/local/cuda/include/cuda_texture_types.h
/usr/local/cuda/include/texture_indirect_functions.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/texture_types.h
driver_types.h
/usr/local/cuda/include/driver_types.h
/usr/local/cuda/include/vector_functions.h
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
vector_functions.hpp
/usr/local/cuda/include/vector_functions.hpp
/usr/local/cuda/include/vector_functions.hpp
cuda_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/vector_types.h
crt/host_defines.h
/usr/local/cuda/include/crt/host_defines.h
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
"CXX"
)
# The set of files for implicit dependencies of each language:
set(CMAKE_DEPENDS_CHECK_CXX
"/home/ilens/tensorrtx/yolov5/calibrator.cpp" "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir/calibrator.cpp.o"
"/home/ilens/tensorrtx/yolov5/yolov5.cpp" "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir/yolov5.cpp.o"
)
set(CMAKE_CXX_COMPILER_ID "GNU")
# Preprocessor definitions for this target.
set(CMAKE_TARGET_DEFINITIONS_CXX
"API_EXPORTS"
)
# The include file search paths:
set(CMAKE_CXX_TARGET_INCLUDE_PATH
"../include"
"/usr/local/cuda/include"
"/usr/include/x86_64-linux-gnu"
"/usr/include/opencv4"
)
# Targets to which this target links.
set(CMAKE_TARGET_LINKED_INFO_FILES
"/home/ilens/tensorrtx/yolov5/build/CMakeFiles/myplugins.dir/DependInfo.cmake"
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/ilens/tensorrtx/yolov5
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/ilens/tensorrtx/yolov5/build
# Include any dependencies generated for this target.
include CMakeFiles/yolov5.dir/depend.make
# Include the progress variables for this target.
include CMakeFiles/yolov5.dir/progress.make
# Include the compile flags for this target's objects.
include CMakeFiles/yolov5.dir/flags.make
CMakeFiles/yolov5.dir/yolov5_generated_preprocess.cu.o: CMakeFiles/yolov5.dir/yolov5_generated_preprocess.cu.o.depend
CMakeFiles/yolov5.dir/yolov5_generated_preprocess.cu.o: CMakeFiles/yolov5.dir/yolov5_generated_preprocess.cu.o.Debug.cmake
CMakeFiles/yolov5.dir/yolov5_generated_preprocess.cu.o: ../preprocess.cu
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/ilens/tensorrtx/yolov5/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building NVCC (Device) object CMakeFiles/yolov5.dir/yolov5_generated_preprocess.cu.o"
cd /home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir && /usr/bin/cmake -E make_directory /home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir//.
cd /home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir && /usr/bin/cmake -D verbose:BOOL=$(VERBOSE) -D build_configuration:STRING=Debug -D generated_file:STRING=/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir//./yolov5_generated_preprocess.cu.o -D generated_cubin_file:STRING=/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir//./yolov5_generated_preprocess.cu.o.cubin.txt -P /home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir//yolov5_generated_preprocess.cu.o.Debug.cmake
CMakeFiles/yolov5.dir/calibrator.cpp.o: CMakeFiles/yolov5.dir/flags.make
CMakeFiles/yolov5.dir/calibrator.cpp.o: ../calibrator.cpp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ilens/tensorrtx/yolov5/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/yolov5.dir/calibrator.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/yolov5.dir/calibrator.cpp.o -c /home/ilens/tensorrtx/yolov5/calibrator.cpp
CMakeFiles/yolov5.dir/calibrator.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/yolov5.dir/calibrator.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/ilens/tensorrtx/yolov5/calibrator.cpp > CMakeFiles/yolov5.dir/calibrator.cpp.i
CMakeFiles/yolov5.dir/calibrator.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/yolov5.dir/calibrator.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/ilens/tensorrtx/yolov5/calibrator.cpp -o CMakeFiles/yolov5.dir/calibrator.cpp.s
CMakeFiles/yolov5.dir/calibrator.cpp.o.requires:
.PHONY : CMakeFiles/yolov5.dir/calibrator.cpp.o.requires
CMakeFiles/yolov5.dir/calibrator.cpp.o.provides: CMakeFiles/yolov5.dir/calibrator.cpp.o.requires
$(MAKE) -f CMakeFiles/yolov5.dir/build.make CMakeFiles/yolov5.dir/calibrator.cpp.o.provides.build
.PHONY : CMakeFiles/yolov5.dir/calibrator.cpp.o.provides
CMakeFiles/yolov5.dir/calibrator.cpp.o.provides.build: CMakeFiles/yolov5.dir/calibrator.cpp.o
CMakeFiles/yolov5.dir/yolov5.cpp.o: CMakeFiles/yolov5.dir/flags.make
CMakeFiles/yolov5.dir/yolov5.cpp.o: ../yolov5.cpp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ilens/tensorrtx/yolov5/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object CMakeFiles/yolov5.dir/yolov5.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/yolov5.dir/yolov5.cpp.o -c /home/ilens/tensorrtx/yolov5/yolov5.cpp
CMakeFiles/yolov5.dir/yolov5.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/yolov5.dir/yolov5.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/ilens/tensorrtx/yolov5/yolov5.cpp > CMakeFiles/yolov5.dir/yolov5.cpp.i
CMakeFiles/yolov5.dir/yolov5.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/yolov5.dir/yolov5.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/ilens/tensorrtx/yolov5/yolov5.cpp -o CMakeFiles/yolov5.dir/yolov5.cpp.s
CMakeFiles/yolov5.dir/yolov5.cpp.o.requires:
.PHONY : CMakeFiles/yolov5.dir/yolov5.cpp.o.requires
CMakeFiles/yolov5.dir/yolov5.cpp.o.provides: CMakeFiles/yolov5.dir/yolov5.cpp.o.requires
$(MAKE) -f CMakeFiles/yolov5.dir/build.make CMakeFiles/yolov5.dir/yolov5.cpp.o.provides.build
.PHONY : CMakeFiles/yolov5.dir/yolov5.cpp.o.provides
CMakeFiles/yolov5.dir/yolov5.cpp.o.provides.build: CMakeFiles/yolov5.dir/yolov5.cpp.o
# Object files for target yolov5
yolov5_OBJECTS = \
"CMakeFiles/yolov5.dir/calibrator.cpp.o" \
"CMakeFiles/yolov5.dir/yolov5.cpp.o"
# External object files for target yolov5
yolov5_EXTERNAL_OBJECTS = \
"/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir/yolov5_generated_preprocess.cu.o"
yolov5: CMakeFiles/yolov5.dir/calibrator.cpp.o
yolov5: CMakeFiles/yolov5.dir/yolov5.cpp.o
yolov5: CMakeFiles/yolov5.dir/yolov5_generated_preprocess.cu.o
yolov5: CMakeFiles/yolov5.dir/build.make
yolov5: /usr/local/cuda/lib64/libcudart.so
yolov5: libmyplugins.so
yolov5: /usr/lib/aarch64-linux-gnu/libopencv_dnn.so.4.1.1
yolov5: /usr/lib/aarch64-linux-gnu/libopencv_gapi.so.4.1.1
yolov5: /usr/lib/aarch64-linux-gnu/libopencv_highgui.so.4.1.1
yolov5: /usr/lib/aarch64-linux-gnu/libopencv_ml.so.4.1.1
yolov5: /usr/lib/aarch64-linux-gnu/libopencv_objdetect.so.4.1.1
yolov5: /usr/lib/aarch64-linux-gnu/libopencv_photo.so.4.1.1
yolov5: /usr/lib/aarch64-linux-gnu/libopencv_stitching.so.4.1.1
yolov5: /usr/lib/aarch64-linux-gnu/libopencv_video.so.4.1.1
yolov5: /usr/lib/aarch64-linux-gnu/libopencv_videoio.so.4.1.1
yolov5: /usr/local/cuda/lib64/libcudart.so
yolov5: /usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.4.1.1
yolov5: /usr/lib/aarch64-linux-gnu/libopencv_calib3d.so.4.1.1
yolov5: /usr/lib/aarch64-linux-gnu/libopencv_features2d.so.4.1.1
yolov5: /usr/lib/aarch64-linux-gnu/libopencv_flann.so.4.1.1
yolov5: /usr/lib/aarch64-linux-gnu/libopencv_imgproc.so.4.1.1
yolov5: /usr/lib/aarch64-linux-gnu/libopencv_core.so.4.1.1
yolov5: CMakeFiles/yolov5.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ilens/tensorrtx/yolov5/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Linking CXX executable yolov5"
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/yolov5.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
CMakeFiles/yolov5.dir/build: yolov5
.PHONY : CMakeFiles/yolov5.dir/build
CMakeFiles/yolov5.dir/requires: CMakeFiles/yolov5.dir/calibrator.cpp.o.requires
CMakeFiles/yolov5.dir/requires: CMakeFiles/yolov5.dir/yolov5.cpp.o.requires
.PHONY : CMakeFiles/yolov5.dir/requires
CMakeFiles/yolov5.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/yolov5.dir/cmake_clean.cmake
.PHONY : CMakeFiles/yolov5.dir/clean
CMakeFiles/yolov5.dir/depend: CMakeFiles/yolov5.dir/yolov5_generated_preprocess.cu.o
cd /home/ilens/tensorrtx/yolov5/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ilens/tensorrtx/yolov5 /home/ilens/tensorrtx/yolov5 /home/ilens/tensorrtx/yolov5/build /home/ilens/tensorrtx/yolov5/build /home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : CMakeFiles/yolov5.dir/depend
file(REMOVE_RECURSE
"CMakeFiles/yolov5.dir/yolov5_generated_preprocess.cu.o"
"CMakeFiles/yolov5.dir/calibrator.cpp.o"
"CMakeFiles/yolov5.dir/yolov5.cpp.o"
"yolov5.pdb"
"yolov5"
)
# Per-language clean rules from dependency scanning.
foreach(lang CXX)
include(CMakeFiles/yolov5.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
CMakeFiles/yolov5.dir/calibrator.cpp.o
/home/ilens/tensorrtx/yolov5/calibrator.cpp
/home/ilens/tensorrtx/yolov5/calibrator.h
/home/ilens/tensorrtx/yolov5/cuda_utils.h
/home/ilens/tensorrtx/yolov5/macros.h
/home/ilens/tensorrtx/yolov5/utils.h
/usr/include/opencv4/opencv2/calib3d.hpp
/usr/include/opencv4/opencv2/core.hpp
/usr/include/opencv4/opencv2/core/affine.hpp
/usr/include/opencv4/opencv2/core/async.hpp
/usr/include/opencv4/opencv2/core/base.hpp
/usr/include/opencv4/opencv2/core/bufferpool.hpp
/usr/include/opencv4/opencv2/core/check.hpp
/usr/include/opencv4/opencv2/core/cuda.hpp
/usr/include/opencv4/opencv2/core/cuda.inl.hpp
/usr/include/opencv4/opencv2/core/cuda_types.hpp
/usr/include/opencv4/opencv2/core/cv_cpu_dispatch.h
/usr/include/opencv4/opencv2/core/cv_cpu_helper.h
/usr/include/opencv4/opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/cvstd.hpp
/usr/include/opencv4/opencv2/core/cvstd.inl.hpp
/usr/include/opencv4/opencv2/core/cvstd_wrapper.hpp
/usr/include/opencv4/opencv2/core/fast_math.hpp
/usr/include/opencv4/opencv2/core/hal/interface.h
/usr/include/opencv4/opencv2/core/mat.hpp
/usr/include/opencv4/opencv2/core/mat.inl.hpp
/usr/include/opencv4/opencv2/core/matx.hpp
/usr/include/opencv4/opencv2/core/neon_utils.hpp
/usr/include/opencv4/opencv2/core/operations.hpp
/usr/include/opencv4/opencv2/core/optim.hpp
/usr/include/opencv4/opencv2/core/ovx.hpp
/usr/include/opencv4/opencv2/core/persistence.hpp
/usr/include/opencv4/opencv2/core/saturate.hpp
/usr/include/opencv4/opencv2/core/traits.hpp
/usr/include/opencv4/opencv2/core/types.hpp
/usr/include/opencv4/opencv2/core/utility.hpp
/usr/include/opencv4/opencv2/core/version.hpp
/usr/include/opencv4/opencv2/core/vsx_utils.hpp
/usr/include/opencv4/opencv2/dnn.hpp
/usr/include/opencv4/opencv2/dnn/dict.hpp
/usr/include/opencv4/opencv2/dnn/dnn.hpp
/usr/include/opencv4/opencv2/dnn/dnn.inl.hpp
/usr/include/opencv4/opencv2/dnn/layer.hpp
/usr/include/opencv4/opencv2/dnn/utils/inference_engine.hpp
/usr/include/opencv4/opencv2/dnn/version.hpp
/usr/include/opencv4/opencv2/features2d.hpp
/usr/include/opencv4/opencv2/flann.hpp
/usr/include/opencv4/opencv2/flann/all_indices.h
/usr/include/opencv4/opencv2/flann/allocator.h
/usr/include/opencv4/opencv2/flann/any.h
/usr/include/opencv4/opencv2/flann/autotuned_index.h
/usr/include/opencv4/opencv2/flann/composite_index.h
/usr/include/opencv4/opencv2/flann/config.h
/usr/include/opencv4/opencv2/flann/defines.h
/usr/include/opencv4/opencv2/flann/dist.h
/usr/include/opencv4/opencv2/flann/dynamic_bitset.h
/usr/include/opencv4/opencv2/flann/flann_base.hpp
/usr/include/opencv4/opencv2/flann/general.h
/usr/include/opencv4/opencv2/flann/ground_truth.h
/usr/include/opencv4/opencv2/flann/heap.h
/usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h
/usr/include/opencv4/opencv2/flann/index_testing.h
/usr/include/opencv4/opencv2/flann/kdtree_index.h
/usr/include/opencv4/opencv2/flann/kdtree_single_index.h
/usr/include/opencv4/opencv2/flann/kmeans_index.h
/usr/include/opencv4/opencv2/flann/linear_index.h
/usr/include/opencv4/opencv2/flann/logger.h
/usr/include/opencv4/opencv2/flann/lsh_index.h
/usr/include/opencv4/opencv2/flann/lsh_table.h
/usr/include/opencv4/opencv2/flann/matrix.h
/usr/include/opencv4/opencv2/flann/miniflann.hpp
/usr/include/opencv4/opencv2/flann/nn_index.h
/usr/include/opencv4/opencv2/flann/params.h
/usr/include/opencv4/opencv2/flann/random.h
/usr/include/opencv4/opencv2/flann/result_set.h
/usr/include/opencv4/opencv2/flann/sampling.h
/usr/include/opencv4/opencv2/flann/saving.h
/usr/include/opencv4/opencv2/flann/timer.h
/usr/include/opencv4/opencv2/highgui.hpp
/usr/include/opencv4/opencv2/imgcodecs.hpp
/usr/include/opencv4/opencv2/imgproc.hpp
/usr/include/opencv4/opencv2/ml.hpp
/usr/include/opencv4/opencv2/ml/ml.inl.hpp
/usr/include/opencv4/opencv2/objdetect.hpp
/usr/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp
/usr/include/opencv4/opencv2/opencv.hpp
/usr/include/opencv4/opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/photo.hpp
/usr/include/opencv4/opencv2/stitching.hpp
/usr/include/opencv4/opencv2/stitching/detail/blenders.hpp
/usr/include/opencv4/opencv2/stitching/detail/camera.hpp
/usr/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp
/usr/include/opencv4/opencv2/stitching/detail/matchers.hpp
/usr/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp
/usr/include/opencv4/opencv2/stitching/detail/seam_finders.hpp
/usr/include/opencv4/opencv2/stitching/detail/util.hpp
/usr/include/opencv4/opencv2/stitching/detail/util_inl.hpp
/usr/include/opencv4/opencv2/stitching/detail/warpers.hpp
/usr/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp
/usr/include/opencv4/opencv2/stitching/warpers.hpp
/usr/include/opencv4/opencv2/video.hpp
/usr/include/opencv4/opencv2/video/background_segm.hpp
/usr/include/opencv4/opencv2/video/tracking.hpp
/usr/include/opencv4/opencv2/videoio.hpp
/usr/local/cuda/include/builtin_types.h
/usr/local/cuda/include/crt/host_defines.h
/usr/local/cuda/include/cuda_device_runtime_api.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/device_types.h
/usr/local/cuda/include/driver_types.h
/usr/local/cuda/include/surface_types.h
/usr/local/cuda/include/texture_types.h
/usr/local/cuda/include/vector_types.h
CMakeFiles/yolov5.dir/yolov5.cpp.o
/home/ilens/tensorrtx/yolov5/calibrator.h
/home/ilens/tensorrtx/yolov5/common.hpp
/home/ilens/tensorrtx/yolov5/cuda_utils.h
/home/ilens/tensorrtx/yolov5/logging.h
/home/ilens/tensorrtx/yolov5/macros.h
/home/ilens/tensorrtx/yolov5/preprocess.h
/home/ilens/tensorrtx/yolov5/utils.h
/home/ilens/tensorrtx/yolov5/yololayer.h
/home/ilens/tensorrtx/yolov5/yolov5.cpp
/usr/include/opencv4/opencv2/calib3d.hpp
/usr/include/opencv4/opencv2/core.hpp
/usr/include/opencv4/opencv2/core/affine.hpp
/usr/include/opencv4/opencv2/core/async.hpp
/usr/include/opencv4/opencv2/core/base.hpp
/usr/include/opencv4/opencv2/core/bufferpool.hpp
/usr/include/opencv4/opencv2/core/check.hpp
/usr/include/opencv4/opencv2/core/cuda.hpp
/usr/include/opencv4/opencv2/core/cuda.inl.hpp
/usr/include/opencv4/opencv2/core/cuda_types.hpp
/usr/include/opencv4/opencv2/core/cv_cpu_dispatch.h
/usr/include/opencv4/opencv2/core/cv_cpu_helper.h
/usr/include/opencv4/opencv2/core/cvdef.h
/usr/include/opencv4/opencv2/core/cvstd.hpp
/usr/include/opencv4/opencv2/core/cvstd.inl.hpp
/usr/include/opencv4/opencv2/core/cvstd_wrapper.hpp
/usr/include/opencv4/opencv2/core/fast_math.hpp
/usr/include/opencv4/opencv2/core/hal/interface.h
/usr/include/opencv4/opencv2/core/mat.hpp
/usr/include/opencv4/opencv2/core/mat.inl.hpp
/usr/include/opencv4/opencv2/core/matx.hpp
/usr/include/opencv4/opencv2/core/neon_utils.hpp
/usr/include/opencv4/opencv2/core/operations.hpp
/usr/include/opencv4/opencv2/core/optim.hpp
/usr/include/opencv4/opencv2/core/ovx.hpp
/usr/include/opencv4/opencv2/core/persistence.hpp
/usr/include/opencv4/opencv2/core/saturate.hpp
/usr/include/opencv4/opencv2/core/traits.hpp
/usr/include/opencv4/opencv2/core/types.hpp
/usr/include/opencv4/opencv2/core/utility.hpp
/usr/include/opencv4/opencv2/core/version.hpp
/usr/include/opencv4/opencv2/core/vsx_utils.hpp
/usr/include/opencv4/opencv2/dnn.hpp
/usr/include/opencv4/opencv2/dnn/dict.hpp
/usr/include/opencv4/opencv2/dnn/dnn.hpp
/usr/include/opencv4/opencv2/dnn/dnn.inl.hpp
/usr/include/opencv4/opencv2/dnn/layer.hpp
/usr/include/opencv4/opencv2/dnn/utils/inference_engine.hpp
/usr/include/opencv4/opencv2/dnn/version.hpp
/usr/include/opencv4/opencv2/features2d.hpp
/usr/include/opencv4/opencv2/flann.hpp
/usr/include/opencv4/opencv2/flann/all_indices.h
/usr/include/opencv4/opencv2/flann/allocator.h
/usr/include/opencv4/opencv2/flann/any.h
/usr/include/opencv4/opencv2/flann/autotuned_index.h
/usr/include/opencv4/opencv2/flann/composite_index.h
/usr/include/opencv4/opencv2/flann/config.h
/usr/include/opencv4/opencv2/flann/defines.h
/usr/include/opencv4/opencv2/flann/dist.h
/usr/include/opencv4/opencv2/flann/dynamic_bitset.h
/usr/include/opencv4/opencv2/flann/flann_base.hpp
/usr/include/opencv4/opencv2/flann/general.h
/usr/include/opencv4/opencv2/flann/ground_truth.h
/usr/include/opencv4/opencv2/flann/heap.h
/usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h
/usr/include/opencv4/opencv2/flann/index_testing.h
/usr/include/opencv4/opencv2/flann/kdtree_index.h
/usr/include/opencv4/opencv2/flann/kdtree_single_index.h
/usr/include/opencv4/opencv2/flann/kmeans_index.h
/usr/include/opencv4/opencv2/flann/linear_index.h
/usr/include/opencv4/opencv2/flann/logger.h
/usr/include/opencv4/opencv2/flann/lsh_index.h
/usr/include/opencv4/opencv2/flann/lsh_table.h
/usr/include/opencv4/opencv2/flann/matrix.h
/usr/include/opencv4/opencv2/flann/miniflann.hpp
/usr/include/opencv4/opencv2/flann/nn_index.h
/usr/include/opencv4/opencv2/flann/params.h
/usr/include/opencv4/opencv2/flann/random.h
/usr/include/opencv4/opencv2/flann/result_set.h
/usr/include/opencv4/opencv2/flann/sampling.h
/usr/include/opencv4/opencv2/flann/saving.h
/usr/include/opencv4/opencv2/flann/timer.h
/usr/include/opencv4/opencv2/highgui.hpp
/usr/include/opencv4/opencv2/imgcodecs.hpp
/usr/include/opencv4/opencv2/imgproc.hpp
/usr/include/opencv4/opencv2/ml.hpp
/usr/include/opencv4/opencv2/ml/ml.inl.hpp
/usr/include/opencv4/opencv2/objdetect.hpp
/usr/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp
/usr/include/opencv4/opencv2/opencv.hpp
/usr/include/opencv4/opencv2/opencv_modules.hpp
/usr/include/opencv4/opencv2/photo.hpp
/usr/include/opencv4/opencv2/stitching.hpp
/usr/include/opencv4/opencv2/stitching/detail/blenders.hpp
/usr/include/opencv4/opencv2/stitching/detail/camera.hpp
/usr/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp
/usr/include/opencv4/opencv2/stitching/detail/matchers.hpp
/usr/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp
/usr/include/opencv4/opencv2/stitching/detail/seam_finders.hpp
/usr/include/opencv4/opencv2/stitching/detail/util.hpp
/usr/include/opencv4/opencv2/stitching/detail/util_inl.hpp
/usr/include/opencv4/opencv2/stitching/detail/warpers.hpp
/usr/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp
/usr/include/opencv4/opencv2/stitching/warpers.hpp
/usr/include/opencv4/opencv2/video.hpp
/usr/include/opencv4/opencv2/video/background_segm.hpp
/usr/include/opencv4/opencv2/video/tracking.hpp
/usr/include/opencv4/opencv2/videoio.hpp
/usr/local/cuda/include/builtin_types.h
/usr/local/cuda/include/channel_descriptor.h
/usr/local/cuda/include/crt/common_functions.h
/usr/local/cuda/include/crt/device_double_functions.h
/usr/local/cuda/include/crt/device_double_functions.hpp
/usr/local/cuda/include/crt/device_functions.h
/usr/local/cuda/include/crt/device_functions.hpp
/usr/local/cuda/include/crt/func_macro.h
/usr/local/cuda/include/crt/host_config.h
/usr/local/cuda/include/crt/host_defines.h
/usr/local/cuda/include/crt/math_functions.h
/usr/local/cuda/include/crt/math_functions.hpp
/usr/local/cuda/include/crt/sm_70_rt.h
/usr/local/cuda/include/crt/sm_70_rt.hpp
/usr/local/cuda/include/cuda_device_runtime_api.h
/usr/local/cuda/include/cuda_runtime.h
/usr/local/cuda/include/cuda_runtime_api.h
/usr/local/cuda/include/cuda_surface_types.h
/usr/local/cuda/include/cuda_texture_types.h
/usr/local/cuda/include/device_atomic_functions.h
/usr/local/cuda/include/device_atomic_functions.hpp
/usr/local/cuda/include/device_launch_parameters.h
/usr/local/cuda/include/device_types.h
/usr/local/cuda/include/driver_functions.h
/usr/local/cuda/include/driver_types.h
/usr/local/cuda/include/library_types.h
/usr/local/cuda/include/math_constants.h
/usr/local/cuda/include/sm_20_atomic_functions.h
/usr/local/cuda/include/sm_20_atomic_functions.hpp
/usr/local/cuda/include/sm_20_intrinsics.h
/usr/local/cuda/include/sm_20_intrinsics.hpp
/usr/local/cuda/include/sm_30_intrinsics.h
/usr/local/cuda/include/sm_30_intrinsics.hpp
/usr/local/cuda/include/sm_32_atomic_functions.h
/usr/local/cuda/include/sm_32_atomic_functions.hpp
/usr/local/cuda/include/sm_32_intrinsics.h
/usr/local/cuda/include/sm_32_intrinsics.hpp
/usr/local/cuda/include/sm_35_atomic_functions.h
/usr/local/cuda/include/sm_35_intrinsics.h
/usr/local/cuda/include/sm_60_atomic_functions.h
/usr/local/cuda/include/sm_60_atomic_functions.hpp
/usr/local/cuda/include/sm_61_intrinsics.h
/usr/local/cuda/include/sm_61_intrinsics.hpp
/usr/local/cuda/include/surface_functions.h
/usr/local/cuda/include/surface_indirect_functions.h
/usr/local/cuda/include/surface_types.h
/usr/local/cuda/include/texture_fetch_functions.h
/usr/local/cuda/include/texture_indirect_functions.h
/usr/local/cuda/include/texture_types.h
/usr/local/cuda/include/vector_functions.h
/usr/local/cuda/include/vector_functions.hpp
/usr/local/cuda/include/vector_types.h
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
CMakeFiles/yolov5.dir/calibrator.cpp.o: ../calibrator.cpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: ../calibrator.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: ../cuda_utils.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: ../macros.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: ../utils.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/calib3d.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/affine.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/async.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/base.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/bufferpool.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/check.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cuda.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cuda.inl.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cuda_types.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cv_cpu_dispatch.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cv_cpu_helper.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cvdef.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cvstd.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cvstd.inl.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/cvstd_wrapper.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/fast_math.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/hal/interface.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/mat.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/mat.inl.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/matx.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/neon_utils.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/operations.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/optim.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/ovx.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/persistence.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/saturate.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/traits.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/types.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/utility.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/version.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/core/vsx_utils.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/dnn.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/dnn/dict.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/dnn/dnn.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/dnn/dnn.inl.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/dnn/layer.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/dnn/utils/inference_engine.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/dnn/version.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/features2d.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/all_indices.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/allocator.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/any.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/autotuned_index.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/composite_index.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/config.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/defines.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/dist.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/dynamic_bitset.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/flann_base.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/general.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/ground_truth.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/heap.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/index_testing.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/kdtree_index.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/kdtree_single_index.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/kmeans_index.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/linear_index.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/logger.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/lsh_index.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/lsh_table.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/matrix.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/miniflann.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/nn_index.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/params.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/random.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/result_set.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/sampling.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/saving.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/flann/timer.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/highgui.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/imgcodecs.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/imgproc.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/ml.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/ml/ml.inl.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/objdetect.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/opencv.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/opencv_modules.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/photo.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/blenders.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/camera.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/matchers.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/seam_finders.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/util.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/util_inl.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/warpers.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/stitching/warpers.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/video.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/video/background_segm.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/video/tracking.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/include/opencv4/opencv2/videoio.hpp
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/local/cuda/include/builtin_types.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/local/cuda/include/crt/host_defines.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/local/cuda/include/cuda_device_runtime_api.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/local/cuda/include/cuda_runtime_api.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/local/cuda/include/device_types.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/local/cuda/include/driver_types.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/local/cuda/include/surface_types.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/local/cuda/include/texture_types.h
CMakeFiles/yolov5.dir/calibrator.cpp.o: /usr/local/cuda/include/vector_types.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: ../calibrator.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: ../common.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: ../cuda_utils.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: ../logging.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: ../macros.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: ../preprocess.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: ../utils.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: ../yololayer.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: ../yolov5.cpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/calib3d.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/affine.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/async.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/base.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/bufferpool.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/check.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/cuda.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/cuda.inl.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/cuda_types.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/cv_cpu_dispatch.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/cv_cpu_helper.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/cvdef.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/cvstd.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/cvstd.inl.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/cvstd_wrapper.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/fast_math.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/hal/interface.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/mat.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/mat.inl.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/matx.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/neon_utils.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/operations.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/optim.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/ovx.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/persistence.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/saturate.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/traits.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/types.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/utility.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/version.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/core/vsx_utils.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/dnn.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/dnn/dict.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/dnn/dnn.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/dnn/dnn.inl.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/dnn/layer.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/dnn/utils/inference_engine.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/dnn/version.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/features2d.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/all_indices.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/allocator.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/any.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/autotuned_index.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/composite_index.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/config.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/defines.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/dist.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/dynamic_bitset.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/flann_base.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/general.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/ground_truth.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/heap.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/index_testing.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/kdtree_index.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/kdtree_single_index.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/kmeans_index.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/linear_index.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/logger.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/lsh_index.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/lsh_table.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/matrix.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/miniflann.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/nn_index.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/params.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/random.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/result_set.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/sampling.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/saving.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/flann/timer.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/highgui.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/imgcodecs.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/imgproc.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/ml.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/ml/ml.inl.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/objdetect.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/opencv.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/opencv_modules.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/photo.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/stitching.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/blenders.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/camera.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/matchers.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/seam_finders.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/util.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/util_inl.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/warpers.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/stitching/warpers.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/video.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/video/background_segm.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/video/tracking.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/include/opencv4/opencv2/videoio.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/builtin_types.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/channel_descriptor.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/crt/common_functions.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/crt/device_double_functions.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/crt/device_double_functions.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/crt/device_functions.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/crt/device_functions.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/crt/func_macro.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/crt/host_config.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/crt/host_defines.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/crt/math_functions.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/crt/math_functions.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/crt/sm_70_rt.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/crt/sm_70_rt.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/cuda_device_runtime_api.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/cuda_runtime.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/cuda_runtime_api.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/cuda_surface_types.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/cuda_texture_types.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/device_atomic_functions.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/device_atomic_functions.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/device_launch_parameters.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/device_types.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/driver_functions.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/driver_types.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/library_types.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/math_constants.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/sm_20_atomic_functions.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/sm_20_atomic_functions.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/sm_20_intrinsics.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/sm_20_intrinsics.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/sm_30_intrinsics.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/sm_30_intrinsics.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/sm_32_atomic_functions.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/sm_32_atomic_functions.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/sm_32_intrinsics.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/sm_32_intrinsics.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/sm_35_atomic_functions.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/sm_35_intrinsics.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/sm_60_atomic_functions.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/sm_60_atomic_functions.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/sm_61_intrinsics.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/sm_61_intrinsics.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/surface_functions.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/surface_indirect_functions.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/surface_types.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/texture_fetch_functions.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/texture_indirect_functions.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/texture_types.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/vector_functions.h
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/vector_functions.hpp
CMakeFiles/yolov5.dir/yolov5.cpp.o: /usr/local/cuda/include/vector_types.h
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
# compile CXX with /usr/bin/c++
CXX_FLAGS = -std=c++11 -Wall -Ofast -g -Wfatal-errors -D_MWAITXINTRIN_H_INCLUDED -g -std=c++11 -O2 -pthread -std=gnu++11
CXX_DEFINES = -DAPI_EXPORTS
CXX_INCLUDES = -I/home/ilens/tensorrtx/yolov5/include -I/usr/local/cuda/include -I/usr/include/x86_64-linux-gnu -isystem /usr/include/opencv4
/usr/bin/c++ -std=c++11 -Wall -Ofast -g -Wfatal-errors -D_MWAITXINTRIN_H_INCLUDED -g -rdynamic CMakeFiles/yolov5.dir/calibrator.cpp.o CMakeFiles/yolov5.dir/yolov5.cpp.o CMakeFiles/yolov5.dir/yolov5_generated_preprocess.cu.o -o yolov5 -L/usr/local/cuda/lib64 -L/usr/lib/x86_64-linux-gnu -Wl,-rpath,/usr/local/cuda/lib64:/usr/lib/x86_64-linux-gnu:/home/ilens/tensorrtx/yolov5/build /usr/local/cuda/lib64/libcudart.so -lnvinfer -lcudart libmyplugins.so /usr/lib/aarch64-linux-gnu/libopencv_dnn.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_gapi.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_highgui.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_ml.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_objdetect.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_photo.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_stitching.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_video.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_videoio.so.4.1.1 /usr/local/cuda/lib64/libcudart.so -lnvinfer -lcudart /usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_calib3d.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_features2d.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_flann.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_imgproc.so.4.1.1 /usr/lib/aarch64-linux-gnu/libopencv_core.so.4.1.1
CMAKE_PROGRESS_1 = 3
CMAKE_PROGRESS_2 = 4
CMAKE_PROGRESS_3 = 5
CMAKE_PROGRESS_4 = 6
# James Bigler, NVIDIA Corp (nvidia.com - jbigler)
#
# Copyright (c) 2008 - 2009 NVIDIA Corporation. All rights reserved.
#
# This code is licensed under the MIT License. See the FindCUDA.cmake script
# for the text of the license.
# The MIT License
#
# License for the specific language governing rights and limitations under
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
##########################################################################
# This file runs the nvcc commands to produce the desired output file along with
# the dependency file needed by CMake to compute dependencies. In addition the
# file checks the output of each command and if the command fails it deletes the
# output files.
# Input variables
#
# verbose:BOOL=<> OFF: Be as quiet as possible (default)
# ON : Describe each step
#
# build_configuration:STRING=<> Typically one of Debug, MinSizeRel, Release, or
# RelWithDebInfo, but it should match one of the
# entries in CUDA_HOST_FLAGS. This is the build
# configuration used when compiling the code. If
# blank or unspecified Debug is assumed as this is
# what CMake does.
#
# generated_file:STRING=<> File to generate. This argument must be passed in.
#
# generated_cubin_file:STRING=<> File to generate. This argument must be passed
# in if build_cubin is true.
cmake_policy(PUSH)
cmake_policy(SET CMP0007 NEW)
if(NOT generated_file)
message(FATAL_ERROR "You must specify generated_file on the command line")
endif()
# Set these up as variables to make reading the generated file easier
set(CMAKE_COMMAND "/usr/bin/cmake") # path
set(source_file "/home/ilens/tensorrtx/yolov5/preprocess.cu") # path
set(NVCC_generated_dependency_file "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir//yolov5_generated_preprocess.cu.o.NVCC-depend") # path
set(cmake_dependency_file "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir//yolov5_generated_preprocess.cu.o.depend") # path
set(CUDA_make2cmake "/usr/share/cmake-3.10/Modules/FindCUDA/make2cmake.cmake") # path
set(CUDA_parse_cubin "/usr/share/cmake-3.10/Modules/FindCUDA/parse_cubin.cmake") # path
set(build_cubin OFF) # bool
set(CUDA_HOST_COMPILER "/usr/bin/cc") # path
# We won't actually use these variables for now, but we need to set this, in
# order to force this file to be run again if it changes.
set(generated_file_path "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir//.") # path
set(generated_file_internal "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir//./yolov5_generated_preprocess.cu.o") # path
set(generated_cubin_file_internal "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir//./yolov5_generated_preprocess.cu.o.cubin.txt") # path
set(CUDA_NVCC_EXECUTABLE "/usr/local/cuda/bin/nvcc") # path
set(CUDA_NVCC_FLAGS ;; ) # list
# Build specific configuration flags
set(CUDA_NVCC_FLAGS_DEBUG ; )
set(CUDA_NVCC_FLAGS_MINSIZEREL ; )
set(CUDA_NVCC_FLAGS_RELEASE ; )
set(CUDA_NVCC_FLAGS_RELWITHDEBINFO ; )
set(nvcc_flags -m64;--std;c++11) # list
set(CUDA_NVCC_INCLUDE_DIRS "/usr/local/cuda/include;/home/ilens/tensorrtx/yolov5/include;/usr/local/cuda/include;/usr/include/x86_64-linux-gnu;/usr/include/opencv4;/usr/include/opencv4;/usr/include/opencv4;/usr/include/opencv4;/usr/include/opencv4;/usr/include/opencv4;/usr/include/opencv4;/usr/include/opencv4;/usr/include/opencv4;/usr/include/opencv4;/usr/include/opencv4;/usr/include/opencv4;/usr/include/opencv4;/usr/include/opencv4;/usr/include/opencv4;/usr/include/opencv4") # list (needs to be in quotes to handle spaces properly).
set(CUDA_NVCC_COMPILE_DEFINITIONS [==[API_EXPORTS]==]) # list (needs to be in lua quotes see #16510 ).
set(format_flag "-c") # string
set(cuda_language_flag ) # list
# Clean up list of include directories and add -I flags
list(REMOVE_DUPLICATES CUDA_NVCC_INCLUDE_DIRS)
set(CUDA_NVCC_INCLUDE_ARGS)
foreach(dir ${CUDA_NVCC_INCLUDE_DIRS})
# Extra quotes are added around each flag to help nvcc parse out flags with spaces.
list(APPEND CUDA_NVCC_INCLUDE_ARGS "-I${dir}")
endforeach()
# Clean up list of compile definitions, add -D flags, and append to nvcc_flags
list(REMOVE_DUPLICATES CUDA_NVCC_COMPILE_DEFINITIONS)
foreach(def ${CUDA_NVCC_COMPILE_DEFINITIONS})
list(APPEND nvcc_flags "-D${def}")
endforeach()
if(build_cubin AND NOT generated_cubin_file)
message(FATAL_ERROR "You must specify generated_cubin_file on the command line")
endif()
# This is the list of host compilation flags. It C or CXX should already have
# been chosen by FindCUDA.cmake.
set(CMAKE_HOST_FLAGS -Wall -Ofast -g -Wfatal-errors -D_MWAITXINTRIN_H_INCLUDED )
set(CMAKE_HOST_FLAGS_DEBUG -g)
set(CMAKE_HOST_FLAGS_MINSIZEREL -Os -DNDEBUG)
set(CMAKE_HOST_FLAGS_RELEASE -O3 -DNDEBUG)
set(CMAKE_HOST_FLAGS_RELWITHDEBINFO -O2 -g -DNDEBUG)
# Take the compiler flags and package them up to be sent to the compiler via -Xcompiler
set(nvcc_host_compiler_flags "")
# If we weren't given a build_configuration, use Debug.
if(NOT build_configuration)
set(build_configuration Debug)
endif()
string(TOUPPER "${build_configuration}" build_configuration)
#message("CUDA_NVCC_HOST_COMPILER_FLAGS = ${CUDA_NVCC_HOST_COMPILER_FLAGS}")
foreach(flag ${CMAKE_HOST_FLAGS} ${CMAKE_HOST_FLAGS_${build_configuration}})
# Extra quotes are added around each flag to help nvcc parse out flags with spaces.
string(APPEND nvcc_host_compiler_flags ",\"${flag}\"")
endforeach()
if (nvcc_host_compiler_flags)
set(nvcc_host_compiler_flags "-Xcompiler" ${nvcc_host_compiler_flags})
endif()
#message("nvcc_host_compiler_flags = \"${nvcc_host_compiler_flags}\"")
# Add the build specific configuration flags
list(APPEND CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS_${build_configuration}})
# Any -ccbin existing in CUDA_NVCC_FLAGS gets highest priority
list( FIND CUDA_NVCC_FLAGS "-ccbin" ccbin_found0 )
list( FIND CUDA_NVCC_FLAGS "--compiler-bindir" ccbin_found1 )
if( ccbin_found0 LESS 0 AND ccbin_found1 LESS 0 AND CUDA_HOST_COMPILER )
if (CUDA_HOST_COMPILER STREQUAL "$(VCInstallDir)bin" AND DEFINED CCBIN)
set(CCBIN -ccbin "${CCBIN}")
else()
set(CCBIN -ccbin "${CUDA_HOST_COMPILER}")
endif()
endif()
# cuda_execute_process - Executes a command with optional command echo and status message.
#
# status - Status message to print if verbose is true
# command - COMMAND argument from the usual execute_process argument structure
# ARGN - Remaining arguments are the command with arguments
#
# CUDA_result - return value from running the command
#
# Make this a macro instead of a function, so that things like RESULT_VARIABLE
# and other return variables are present after executing the process.
macro(cuda_execute_process status command)
set(_command ${command})
if(NOT "x${_command}" STREQUAL "xCOMMAND")
message(FATAL_ERROR "Malformed call to cuda_execute_process. Missing COMMAND as second argument. (command = ${command})")
endif()
if(verbose)
execute_process(COMMAND "${CMAKE_COMMAND}" -E echo -- ${status})
# Now we need to build up our command string. We are accounting for quotes
# and spaces, anything else is left up to the user to fix if they want to
# copy and paste a runnable command line.
set(cuda_execute_process_string)
foreach(arg ${ARGN})
# If there are quotes, excape them, so they come through.
string(REPLACE "\"" "\\\"" arg ${arg})
# Args with spaces need quotes around them to get them to be parsed as a single argument.
if(arg MATCHES " ")
list(APPEND cuda_execute_process_string "\"${arg}\"")
else()
list(APPEND cuda_execute_process_string ${arg})
endif()
endforeach()
# Echo the command
execute_process(COMMAND ${CMAKE_COMMAND} -E echo ${cuda_execute_process_string})
endif()
# Run the command
execute_process(COMMAND ${ARGN} RESULT_VARIABLE CUDA_result )
endmacro()
# Delete the target file
cuda_execute_process(
"Removing ${generated_file}"
COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}"
)
# For CUDA 2.3 and below, -G -M doesn't work, so remove the -G flag
# for dependency generation and hope for the best.
set(depends_CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS}")
set(CUDA_VERSION 10.2)
if(CUDA_VERSION VERSION_LESS "3.0")
# Note that this will remove all occurances of -G.
list(REMOVE_ITEM depends_CUDA_NVCC_FLAGS "-G")
endif()
# nvcc doesn't define __CUDACC__ for some reason when generating dependency files. This
# can cause incorrect dependencies when #including files based on this macro which is
# defined in the generating passes of nvcc invokation. We will go ahead and manually
# define this for now until a future version fixes this bug.
set(CUDACC_DEFINE -D__CUDACC__)
# Generate the dependency file
cuda_execute_process(
"Generating dependency file: ${NVCC_generated_dependency_file}"
COMMAND "${CUDA_NVCC_EXECUTABLE}"
-M
${CUDACC_DEFINE}
"${source_file}"
-o "${NVCC_generated_dependency_file}"
${CCBIN}
${nvcc_flags}
${nvcc_host_compiler_flags}
${depends_CUDA_NVCC_FLAGS}
-DNVCC
${CUDA_NVCC_INCLUDE_ARGS}
)
if(CUDA_result)
message(FATAL_ERROR "Error generating ${generated_file}")
endif()
# Generate the cmake readable dependency file to a temp file. Don't put the
# quotes just around the filenames for the input_file and output_file variables.
# CMake will pass the quotes through and not be able to find the file.
cuda_execute_process(
"Generating temporary cmake readable file: ${cmake_dependency_file}.tmp"
COMMAND "${CMAKE_COMMAND}"
-D "input_file:FILEPATH=${NVCC_generated_dependency_file}"
-D "output_file:FILEPATH=${cmake_dependency_file}.tmp"
-D "verbose=${verbose}"
-P "${CUDA_make2cmake}"
)
if(CUDA_result)
message(FATAL_ERROR "Error generating ${generated_file}")
endif()
# Copy the file if it is different
cuda_execute_process(
"Copy if different ${cmake_dependency_file}.tmp to ${cmake_dependency_file}"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${cmake_dependency_file}.tmp" "${cmake_dependency_file}"
)
if(CUDA_result)
message(FATAL_ERROR "Error generating ${generated_file}")
endif()
# Delete the temporary file
cuda_execute_process(
"Removing ${cmake_dependency_file}.tmp and ${NVCC_generated_dependency_file}"
COMMAND "${CMAKE_COMMAND}" -E remove "${cmake_dependency_file}.tmp" "${NVCC_generated_dependency_file}"
)
if(CUDA_result)
message(FATAL_ERROR "Error generating ${generated_file}")
endif()
# Generate the code
cuda_execute_process(
"Generating ${generated_file}"
COMMAND "${CUDA_NVCC_EXECUTABLE}"
"${source_file}"
${cuda_language_flag}
${format_flag} -o "${generated_file}"
${CCBIN}
${nvcc_flags}
${nvcc_host_compiler_flags}
${CUDA_NVCC_FLAGS}
-DNVCC
${CUDA_NVCC_INCLUDE_ARGS}
)
if(CUDA_result)
# Since nvcc can sometimes leave half done files make sure that we delete the output file.
cuda_execute_process(
"Removing ${generated_file}"
COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}"
)
message(FATAL_ERROR "Error generating file ${generated_file}")
else()
if(verbose)
message("Generated ${generated_file} successfully.")
endif()
endif()
# Cubin resource report commands.
if( build_cubin )
# Run with -cubin to produce resource usage report.
cuda_execute_process(
"Generating ${generated_cubin_file}"
COMMAND "${CUDA_NVCC_EXECUTABLE}"
"${source_file}"
${CUDA_NVCC_FLAGS}
${nvcc_flags}
${CCBIN}
${nvcc_host_compiler_flags}
-DNVCC
-cubin
-o "${generated_cubin_file}"
${CUDA_NVCC_INCLUDE_ARGS}
)
# Execute the parser script.
cuda_execute_process(
"Executing the parser script"
COMMAND "${CMAKE_COMMAND}"
-D "input_file:STRING=${generated_cubin_file}"
-P "${CUDA_parse_cubin}"
)
endif()
cmake_policy(POP)
# James Bigler, NVIDIA Corp (nvidia.com - jbigler)
#
# Copyright (c) 2008 - 2009 NVIDIA Corporation. All rights reserved.
#
# This code is licensed under the MIT License. See the FindCUDA.cmake script
# for the text of the license.
# The MIT License
#
# License for the specific language governing rights and limitations under
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
##########################################################################
# This file runs the nvcc commands to produce the desired output file along with
# the dependency file needed by CMake to compute dependencies. In addition the
# file checks the output of each command and if the command fails it deletes the
# output files.
# Input variables
#
# verbose:BOOL=<> OFF: Be as quiet as possible (default)
# ON : Describe each step
#
# build_configuration:STRING=<> Typically one of Debug, MinSizeRel, Release, or
# RelWithDebInfo, but it should match one of the
# entries in CUDA_HOST_FLAGS. This is the build
# configuration used when compiling the code. If
# blank or unspecified Debug is assumed as this is
# what CMake does.
#
# generated_file:STRING=<> File to generate. This argument must be passed in.
#
# generated_cubin_file:STRING=<> File to generate. This argument must be passed
# in if build_cubin is true.
cmake_policy(PUSH)
cmake_policy(SET CMP0007 NEW)
if(NOT generated_file)
message(FATAL_ERROR "You must specify generated_file on the command line")
endif()
# Set these up as variables to make reading the generated file easier
set(CMAKE_COMMAND "/usr/bin/cmake") # path
set(source_file "/home/ilens/tensorrtx/yolov5/preprocess.cu") # path
set(NVCC_generated_dependency_file "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir//yolov5_generated_preprocess.cu.o.NVCC-depend") # path
set(cmake_dependency_file "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir//yolov5_generated_preprocess.cu.o.depend") # path
set(CUDA_make2cmake "/usr/share/cmake-3.10/Modules/FindCUDA/make2cmake.cmake") # path
set(CUDA_parse_cubin "/usr/share/cmake-3.10/Modules/FindCUDA/parse_cubin.cmake") # path
set(build_cubin OFF) # bool
set(CUDA_HOST_COMPILER "/usr/bin/cc") # path
# We won't actually use these variables for now, but we need to set this, in
# order to force this file to be run again if it changes.
set(generated_file_path "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir//.") # path
set(generated_file_internal "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir//./yolov5_generated_preprocess.cu.o") # path
set(generated_cubin_file_internal "/home/ilens/tensorrtx/yolov5/build/CMakeFiles/yolov5.dir//./yolov5_generated_preprocess.cu.o.cubin.txt") # path
set(CUDA_NVCC_EXECUTABLE "/usr/local/cuda/bin/nvcc") # path
set(CUDA_NVCC_FLAGS ;; ) # list
# Build specific configuration flags
set(CUDA_NVCC_FLAGS_DEBUG ; )
set(CUDA_NVCC_FLAGS_MINSIZEREL ; )
set(CUDA_NVCC_FLAGS_RELEASE ; )
set(CUDA_NVCC_FLAGS_RELWITHDEBINFO ; )
set(nvcc_flags -m64;--std;c++11) # list
set(CUDA_NVCC_INCLUDE_DIRS "/usr/local/cuda/include;$<TARGET_PROPERTY:yolov5,INCLUDE_DIRECTORIES>") # list (needs to be in quotes to handle spaces properly).
set(CUDA_NVCC_COMPILE_DEFINITIONS [==[$<TARGET_PROPERTY:yolov5,COMPILE_DEFINITIONS>]==]) # list (needs to be in lua quotes see #16510 ).
set(format_flag "-c") # string
set(cuda_language_flag ) # list
# Clean up list of include directories and add -I flags
list(REMOVE_DUPLICATES CUDA_NVCC_INCLUDE_DIRS)
set(CUDA_NVCC_INCLUDE_ARGS)
foreach(dir ${CUDA_NVCC_INCLUDE_DIRS})
# Extra quotes are added around each flag to help nvcc parse out flags with spaces.
list(APPEND CUDA_NVCC_INCLUDE_ARGS "-I${dir}")
endforeach()
# Clean up list of compile definitions, add -D flags, and append to nvcc_flags
list(REMOVE_DUPLICATES CUDA_NVCC_COMPILE_DEFINITIONS)
foreach(def ${CUDA_NVCC_COMPILE_DEFINITIONS})
list(APPEND nvcc_flags "-D${def}")
endforeach()
if(build_cubin AND NOT generated_cubin_file)
message(FATAL_ERROR "You must specify generated_cubin_file on the command line")
endif()
# This is the list of host compilation flags. It C or CXX should already have
# been chosen by FindCUDA.cmake.
set(CMAKE_HOST_FLAGS -Wall -Ofast -g -Wfatal-errors -D_MWAITXINTRIN_H_INCLUDED )
set(CMAKE_HOST_FLAGS_DEBUG -g)
set(CMAKE_HOST_FLAGS_MINSIZEREL -Os -DNDEBUG)
set(CMAKE_HOST_FLAGS_RELEASE -O3 -DNDEBUG)
set(CMAKE_HOST_FLAGS_RELWITHDEBINFO -O2 -g -DNDEBUG)
# Take the compiler flags and package them up to be sent to the compiler via -Xcompiler
set(nvcc_host_compiler_flags "")
# If we weren't given a build_configuration, use Debug.
if(NOT build_configuration)
set(build_configuration Debug)
endif()
string(TOUPPER "${build_configuration}" build_configuration)
#message("CUDA_NVCC_HOST_COMPILER_FLAGS = ${CUDA_NVCC_HOST_COMPILER_FLAGS}")
foreach(flag ${CMAKE_HOST_FLAGS} ${CMAKE_HOST_FLAGS_${build_configuration}})
# Extra quotes are added around each flag to help nvcc parse out flags with spaces.
string(APPEND nvcc_host_compiler_flags ",\"${flag}\"")
endforeach()
if (nvcc_host_compiler_flags)
set(nvcc_host_compiler_flags "-Xcompiler" ${nvcc_host_compiler_flags})
endif()
#message("nvcc_host_compiler_flags = \"${nvcc_host_compiler_flags}\"")
# Add the build specific configuration flags
list(APPEND CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS_${build_configuration}})
# Any -ccbin existing in CUDA_NVCC_FLAGS gets highest priority
list( FIND CUDA_NVCC_FLAGS "-ccbin" ccbin_found0 )
list( FIND CUDA_NVCC_FLAGS "--compiler-bindir" ccbin_found1 )
if( ccbin_found0 LESS 0 AND ccbin_found1 LESS 0 AND CUDA_HOST_COMPILER )
if (CUDA_HOST_COMPILER STREQUAL "$(VCInstallDir)bin" AND DEFINED CCBIN)
set(CCBIN -ccbin "${CCBIN}")
else()
set(CCBIN -ccbin "${CUDA_HOST_COMPILER}")
endif()
endif()
# cuda_execute_process - Executes a command with optional command echo and status message.
#
# status - Status message to print if verbose is true
# command - COMMAND argument from the usual execute_process argument structure
# ARGN - Remaining arguments are the command with arguments
#
# CUDA_result - return value from running the command
#
# Make this a macro instead of a function, so that things like RESULT_VARIABLE
# and other return variables are present after executing the process.
macro(cuda_execute_process status command)
set(_command ${command})
if(NOT "x${_command}" STREQUAL "xCOMMAND")
message(FATAL_ERROR "Malformed call to cuda_execute_process. Missing COMMAND as second argument. (command = ${command})")
endif()
if(verbose)
execute_process(COMMAND "${CMAKE_COMMAND}" -E echo -- ${status})
# Now we need to build up our command string. We are accounting for quotes
# and spaces, anything else is left up to the user to fix if they want to
# copy and paste a runnable command line.
set(cuda_execute_process_string)
foreach(arg ${ARGN})
# If there are quotes, excape them, so they come through.
string(REPLACE "\"" "\\\"" arg ${arg})
# Args with spaces need quotes around them to get them to be parsed as a single argument.
if(arg MATCHES " ")
list(APPEND cuda_execute_process_string "\"${arg}\"")
else()
list(APPEND cuda_execute_process_string ${arg})
endif()
endforeach()
# Echo the command
execute_process(COMMAND ${CMAKE_COMMAND} -E echo ${cuda_execute_process_string})
endif()
# Run the command
execute_process(COMMAND ${ARGN} RESULT_VARIABLE CUDA_result )
endmacro()
# Delete the target file
cuda_execute_process(
"Removing ${generated_file}"
COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}"
)
# For CUDA 2.3 and below, -G -M doesn't work, so remove the -G flag
# for dependency generation and hope for the best.
set(depends_CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS}")
set(CUDA_VERSION 10.2)
if(CUDA_VERSION VERSION_LESS "3.0")
# Note that this will remove all occurances of -G.
list(REMOVE_ITEM depends_CUDA_NVCC_FLAGS "-G")
endif()
# nvcc doesn't define __CUDACC__ for some reason when generating dependency files. This
# can cause incorrect dependencies when #including files based on this macro which is
# defined in the generating passes of nvcc invokation. We will go ahead and manually
# define this for now until a future version fixes this bug.
set(CUDACC_DEFINE -D__CUDACC__)
# Generate the dependency file
cuda_execute_process(
"Generating dependency file: ${NVCC_generated_dependency_file}"
COMMAND "${CUDA_NVCC_EXECUTABLE}"
-M
${CUDACC_DEFINE}
"${source_file}"
-o "${NVCC_generated_dependency_file}"
${CCBIN}
${nvcc_flags}
${nvcc_host_compiler_flags}
${depends_CUDA_NVCC_FLAGS}
-DNVCC
${CUDA_NVCC_INCLUDE_ARGS}
)
if(CUDA_result)
message(FATAL_ERROR "Error generating ${generated_file}")
endif()
# Generate the cmake readable dependency file to a temp file. Don't put the
# quotes just around the filenames for the input_file and output_file variables.
# CMake will pass the quotes through and not be able to find the file.
cuda_execute_process(
"Generating temporary cmake readable file: ${cmake_dependency_file}.tmp"
COMMAND "${CMAKE_COMMAND}"
-D "input_file:FILEPATH=${NVCC_generated_dependency_file}"
-D "output_file:FILEPATH=${cmake_dependency_file}.tmp"
-D "verbose=${verbose}"
-P "${CUDA_make2cmake}"
)
if(CUDA_result)
message(FATAL_ERROR "Error generating ${generated_file}")
endif()
# Copy the file if it is different
cuda_execute_process(
"Copy if different ${cmake_dependency_file}.tmp to ${cmake_dependency_file}"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${cmake_dependency_file}.tmp" "${cmake_dependency_file}"
)
if(CUDA_result)
message(FATAL_ERROR "Error generating ${generated_file}")
endif()
# Delete the temporary file
cuda_execute_process(
"Removing ${cmake_dependency_file}.tmp and ${NVCC_generated_dependency_file}"
COMMAND "${CMAKE_COMMAND}" -E remove "${cmake_dependency_file}.tmp" "${NVCC_generated_dependency_file}"
)
if(CUDA_result)
message(FATAL_ERROR "Error generating ${generated_file}")
endif()
# Generate the code
cuda_execute_process(
"Generating ${generated_file}"
COMMAND "${CUDA_NVCC_EXECUTABLE}"
"${source_file}"
${cuda_language_flag}
${format_flag} -o "${generated_file}"
${CCBIN}
${nvcc_flags}
${nvcc_host_compiler_flags}
${CUDA_NVCC_FLAGS}
-DNVCC
${CUDA_NVCC_INCLUDE_ARGS}
)
if(CUDA_result)
# Since nvcc can sometimes leave half done files make sure that we delete the output file.
cuda_execute_process(
"Removing ${generated_file}"
COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}"
)
message(FATAL_ERROR "Error generating file ${generated_file}")
else()
if(verbose)
message("Generated ${generated_file} successfully.")
endif()
endif()
# Cubin resource report commands.
if( build_cubin )
# Run with -cubin to produce resource usage report.
cuda_execute_process(
"Generating ${generated_cubin_file}"
COMMAND "${CUDA_NVCC_EXECUTABLE}"
"${source_file}"
${CUDA_NVCC_FLAGS}
${nvcc_flags}
${CCBIN}
${nvcc_host_compiler_flags}
-DNVCC
-cubin
-o "${generated_cubin_file}"
${CUDA_NVCC_INCLUDE_ARGS}
)
# Execute the parser script.
cuda_execute_process(
"Executing the parser script"
COMMAND "${CMAKE_COMMAND}"
-D "input_file:STRING=${generated_cubin_file}"
-P "${CUDA_parse_cubin}"
)
endif()
cmake_policy(POP)
# Generated by: make2cmake.cmake
SET(CUDA_NVCC_DEPEND
"/home/ilens/tensorrtx/yolov5/preprocess.cu"
"/home/ilens/tensorrtx/yolov5/preprocess.h"
"/usr/include/aarch64-linux-gnu/asm/errno.h"
"/usr/include/aarch64-linux-gnu/bits/_G_config.h"
"/usr/include/aarch64-linux-gnu/bits/byteswap-16.h"
"/usr/include/aarch64-linux-gnu/bits/byteswap.h"
"/usr/include/aarch64-linux-gnu/bits/cpu-set.h"
"/usr/include/aarch64-linux-gnu/bits/endian.h"
"/usr/include/aarch64-linux-gnu/bits/errno.h"
"/usr/include/aarch64-linux-gnu/bits/floatn-common.h"
"/usr/include/aarch64-linux-gnu/bits/floatn.h"
"/usr/include/aarch64-linux-gnu/bits/flt-eval-method.h"
"/usr/include/aarch64-linux-gnu/bits/fp-fast.h"
"/usr/include/aarch64-linux-gnu/bits/fp-logb.h"
"/usr/include/aarch64-linux-gnu/bits/iscanonical.h"
"/usr/include/aarch64-linux-gnu/bits/libc-header-start.h"
"/usr/include/aarch64-linux-gnu/bits/libio.h"
"/usr/include/aarch64-linux-gnu/bits/libm-simd-decl-stubs.h"
"/usr/include/aarch64-linux-gnu/bits/local_lim.h"
"/usr/include/aarch64-linux-gnu/bits/locale.h"
"/usr/include/aarch64-linux-gnu/bits/long-double.h"
"/usr/include/aarch64-linux-gnu/bits/math-finite.h"
"/usr/include/aarch64-linux-gnu/bits/math-vector.h"
"/usr/include/aarch64-linux-gnu/bits/mathcalls-helper-functions.h"
"/usr/include/aarch64-linux-gnu/bits/mathcalls.h"
"/usr/include/aarch64-linux-gnu/bits/mathinline.h"
"/usr/include/aarch64-linux-gnu/bits/posix1_lim.h"
"/usr/include/aarch64-linux-gnu/bits/posix2_lim.h"
"/usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h"
"/usr/include/aarch64-linux-gnu/bits/pthreadtypes.h"
"/usr/include/aarch64-linux-gnu/bits/sched.h"
"/usr/include/aarch64-linux-gnu/bits/select.h"
"/usr/include/aarch64-linux-gnu/bits/select2.h"
"/usr/include/aarch64-linux-gnu/bits/setjmp.h"
"/usr/include/aarch64-linux-gnu/bits/stdint-intn.h"
"/usr/include/aarch64-linux-gnu/bits/stdint-uintn.h"
"/usr/include/aarch64-linux-gnu/bits/stdio.h"
"/usr/include/aarch64-linux-gnu/bits/stdio2.h"
"/usr/include/aarch64-linux-gnu/bits/stdio_lim.h"
"/usr/include/aarch64-linux-gnu/bits/stdlib-bsearch.h"
"/usr/include/aarch64-linux-gnu/bits/stdlib-float.h"
"/usr/include/aarch64-linux-gnu/bits/stdlib.h"
"/usr/include/aarch64-linux-gnu/bits/string_fortified.h"
"/usr/include/aarch64-linux-gnu/bits/strings_fortified.h"
"/usr/include/aarch64-linux-gnu/bits/sys_errlist.h"
"/usr/include/aarch64-linux-gnu/bits/sysmacros.h"
"/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h"
"/usr/include/aarch64-linux-gnu/bits/time.h"
"/usr/include/aarch64-linux-gnu/bits/timex.h"
"/usr/include/aarch64-linux-gnu/bits/types.h"
"/usr/include/aarch64-linux-gnu/bits/types/FILE.h"
"/usr/include/aarch64-linux-gnu/bits/types/__FILE.h"
"/usr/include/aarch64-linux-gnu/bits/types/__locale_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/clock_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/clockid_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/locale_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/mbstate_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/sigset_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/struct_itimerspec.h"
"/usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h"
"/usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h"
"/usr/include/aarch64-linux-gnu/bits/types/struct_tm.h"
"/usr/include/aarch64-linux-gnu/bits/types/time_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/timer_t.h"
"/usr/include/aarch64-linux-gnu/bits/types/wint_t.h"
"/usr/include/aarch64-linux-gnu/bits/typesizes.h"
"/usr/include/aarch64-linux-gnu/bits/uintn-identity.h"
"/usr/include/aarch64-linux-gnu/bits/uio_lim.h"
"/usr/include/aarch64-linux-gnu/bits/waitflags.h"
"/usr/include/aarch64-linux-gnu/bits/waitstatus.h"
"/usr/include/aarch64-linux-gnu/bits/wchar.h"
"/usr/include/aarch64-linux-gnu/bits/wchar2.h"
"/usr/include/aarch64-linux-gnu/bits/wctype-wchar.h"
"/usr/include/aarch64-linux-gnu/bits/wordsize.h"
"/usr/include/aarch64-linux-gnu/bits/xopen_lim.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/atomic_word.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/c++allocator.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/c++config.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/c++locale.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/cpu_defines.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/ctype_base.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/ctype_inline.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/error_constants.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/gthr-default.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/gthr.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/messages_members.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/os_defines.h"
"/usr/include/aarch64-linux-gnu/c++/7/bits/time_members.h"
"/usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h"
"/usr/include/aarch64-linux-gnu/gnu/stubs.h"
"/usr/include/aarch64-linux-gnu/sys/cdefs.h"
"/usr/include/aarch64-linux-gnu/sys/select.h"
"/usr/include/aarch64-linux-gnu/sys/sysmacros.h"
"/usr/include/aarch64-linux-gnu/sys/types.h"
"/usr/include/alloca.h"
"/usr/include/asm-generic/errno-base.h"
"/usr/include/asm-generic/errno.h"
"/usr/include/assert.h"
"/usr/include/c++/7/algorithm"
"/usr/include/c++/7/array"
"/usr/include/c++/7/backward/auto_ptr.h"
"/usr/include/c++/7/backward/binders.h"
"/usr/include/c++/7/bits/algorithmfwd.h"
"/usr/include/c++/7/bits/alloc_traits.h"
"/usr/include/c++/7/bits/allocated_ptr.h"
"/usr/include/c++/7/bits/allocator.h"
"/usr/include/c++/7/bits/atomic_base.h"
"/usr/include/c++/7/bits/atomic_lockfree_defines.h"
"/usr/include/c++/7/bits/basic_ios.h"
"/usr/include/c++/7/bits/basic_ios.tcc"
"/usr/include/c++/7/bits/basic_string.h"
"/usr/include/c++/7/bits/basic_string.tcc"
"/usr/include/c++/7/bits/char_traits.h"
"/usr/include/c++/7/bits/codecvt.h"
"/usr/include/c++/7/bits/concept_check.h"
"/usr/include/c++/7/bits/cpp_type_traits.h"
"/usr/include/c++/7/bits/cxxabi_forced.h"
"/usr/include/c++/7/bits/cxxabi_init_exception.h"
"/usr/include/c++/7/bits/deque.tcc"
"/usr/include/c++/7/bits/exception.h"
"/usr/include/c++/7/bits/exception_defines.h"
"/usr/include/c++/7/bits/exception_ptr.h"
"/usr/include/c++/7/bits/functexcept.h"
"/usr/include/c++/7/bits/functional_hash.h"
"/usr/include/c++/7/bits/hash_bytes.h"
"/usr/include/c++/7/bits/hashtable.h"
"/usr/include/c++/7/bits/hashtable_policy.h"
"/usr/include/c++/7/bits/invoke.h"
"/usr/include/c++/7/bits/ios_base.h"
"/usr/include/c++/7/bits/istream.tcc"
"/usr/include/c++/7/bits/list.tcc"
"/usr/include/c++/7/bits/locale_classes.h"
"/usr/include/c++/7/bits/locale_classes.tcc"
"/usr/include/c++/7/bits/locale_conv.h"
"/usr/include/c++/7/bits/locale_facets.h"
"/usr/include/c++/7/bits/locale_facets.tcc"
"/usr/include/c++/7/bits/locale_facets_nonio.h"
"/usr/include/c++/7/bits/locale_facets_nonio.tcc"
"/usr/include/c++/7/bits/localefwd.h"
"/usr/include/c++/7/bits/memoryfwd.h"
"/usr/include/c++/7/bits/move.h"
"/usr/include/c++/7/bits/nested_exception.h"
"/usr/include/c++/7/bits/ostream.tcc"
"/usr/include/c++/7/bits/ostream_insert.h"
"/usr/include/c++/7/bits/parse_numbers.h"
"/usr/include/c++/7/bits/postypes.h"
"/usr/include/c++/7/bits/predefined_ops.h"
"/usr/include/c++/7/bits/ptr_traits.h"
"/usr/include/c++/7/bits/range_access.h"
"/usr/include/c++/7/bits/refwrap.h"
"/usr/include/c++/7/bits/shared_ptr.h"
"/usr/include/c++/7/bits/shared_ptr_atomic.h"
"/usr/include/c++/7/bits/shared_ptr_base.h"
"/usr/include/c++/7/bits/sstream.tcc"
"/usr/include/c++/7/bits/std_abs.h"
"/usr/include/c++/7/bits/std_function.h"
"/usr/include/c++/7/bits/std_mutex.h"
"/usr/include/c++/7/bits/stl_algo.h"
"/usr/include/c++/7/bits/stl_algobase.h"
"/usr/include/c++/7/bits/stl_bvector.h"
"/usr/include/c++/7/bits/stl_construct.h"
"/usr/include/c++/7/bits/stl_deque.h"
"/usr/include/c++/7/bits/stl_function.h"
"/usr/include/c++/7/bits/stl_heap.h"
"/usr/include/c++/7/bits/stl_iterator.h"
"/usr/include/c++/7/bits/stl_iterator_base_funcs.h"
"/usr/include/c++/7/bits/stl_iterator_base_types.h"
"/usr/include/c++/7/bits/stl_list.h"
"/usr/include/c++/7/bits/stl_map.h"
"/usr/include/c++/7/bits/stl_multimap.h"
"/usr/include/c++/7/bits/stl_multiset.h"
"/usr/include/c++/7/bits/stl_pair.h"
"/usr/include/c++/7/bits/stl_queue.h"
"/usr/include/c++/7/bits/stl_raw_storage_iter.h"
"/usr/include/c++/7/bits/stl_relops.h"
"/usr/include/c++/7/bits/stl_set.h"
"/usr/include/c++/7/bits/stl_tempbuf.h"
"/usr/include/c++/7/bits/stl_tree.h"
"/usr/include/c++/7/bits/stl_uninitialized.h"
"/usr/include/c++/7/bits/stl_vector.h"
"/usr/include/c++/7/bits/streambuf.tcc"
"/usr/include/c++/7/bits/streambuf_iterator.h"
"/usr/include/c++/7/bits/stringfwd.h"
"/usr/include/c++/7/bits/uniform_int_dist.h"
"/usr/include/c++/7/bits/unique_ptr.h"
"/usr/include/c++/7/bits/unordered_map.h"
"/usr/include/c++/7/bits/uses_allocator.h"
"/usr/include/c++/7/bits/vector.tcc"
"/usr/include/c++/7/cassert"
"/usr/include/c++/7/cctype"
"/usr/include/c++/7/cerrno"
"/usr/include/c++/7/cfloat"
"/usr/include/c++/7/chrono"
"/usr/include/c++/7/climits"
"/usr/include/c++/7/clocale"
"/usr/include/c++/7/cmath"
"/usr/include/c++/7/complex"
"/usr/include/c++/7/cstddef"
"/usr/include/c++/7/cstdint"
"/usr/include/c++/7/cstdio"
"/usr/include/c++/7/cstdlib"
"/usr/include/c++/7/cstring"
"/usr/include/c++/7/ctime"
"/usr/include/c++/7/cwchar"
"/usr/include/c++/7/cwctype"
"/usr/include/c++/7/debug/assertions.h"
"/usr/include/c++/7/debug/debug.h"
"/usr/include/c++/7/deque"
"/usr/include/c++/7/exception"
"/usr/include/c++/7/ext/aligned_buffer.h"
"/usr/include/c++/7/ext/alloc_traits.h"
"/usr/include/c++/7/ext/atomicity.h"
"/usr/include/c++/7/ext/concurrence.h"
"/usr/include/c++/7/ext/new_allocator.h"
"/usr/include/c++/7/ext/numeric_traits.h"
"/usr/include/c++/7/ext/string_conversions.h"
"/usr/include/c++/7/ext/type_traits.h"
"/usr/include/c++/7/functional"
"/usr/include/c++/7/initializer_list"
"/usr/include/c++/7/iomanip"
"/usr/include/c++/7/ios"
"/usr/include/c++/7/iosfwd"
"/usr/include/c++/7/iostream"
"/usr/include/c++/7/istream"
"/usr/include/c++/7/limits"
"/usr/include/c++/7/list"
"/usr/include/c++/7/locale"
"/usr/include/c++/7/map"
"/usr/include/c++/7/math.h"
"/usr/include/c++/7/memory"
"/usr/include/c++/7/mutex"
"/usr/include/c++/7/new"
"/usr/include/c++/7/ostream"
"/usr/include/c++/7/queue"
"/usr/include/c++/7/ratio"
"/usr/include/c++/7/set"
"/usr/include/c++/7/sstream"
"/usr/include/c++/7/stdexcept"
"/usr/include/c++/7/stdlib.h"
"/usr/include/c++/7/streambuf"
"/usr/include/c++/7/string"
"/usr/include/c++/7/system_error"
"/usr/include/c++/7/tuple"
"/usr/include/c++/7/type_traits"
"/usr/include/c++/7/typeinfo"
"/usr/include/c++/7/unordered_map"
"/usr/include/c++/7/utility"
"/usr/include/c++/7/vector"
"/usr/include/ctype.h"
"/usr/include/endian.h"
"/usr/include/errno.h"
"/usr/include/features.h"
"/usr/include/libintl.h"
"/usr/include/limits.h"
"/usr/include/linux/errno.h"
"/usr/include/linux/limits.h"
"/usr/include/locale.h"
"/usr/include/math.h"
"/usr/include/opencv4/opencv2/calib3d.hpp"
"/usr/include/opencv4/opencv2/core.hpp"
"/usr/include/opencv4/opencv2/core/affine.hpp"
"/usr/include/opencv4/opencv2/core/async.hpp"
"/usr/include/opencv4/opencv2/core/base.hpp"
"/usr/include/opencv4/opencv2/core/bufferpool.hpp"
"/usr/include/opencv4/opencv2/core/check.hpp"
"/usr/include/opencv4/opencv2/core/cuda.hpp"
"/usr/include/opencv4/opencv2/core/cuda.inl.hpp"
"/usr/include/opencv4/opencv2/core/cuda_types.hpp"
"/usr/include/opencv4/opencv2/core/cv_cpu_dispatch.h"
"/usr/include/opencv4/opencv2/core/cvdef.h"
"/usr/include/opencv4/opencv2/core/cvstd.hpp"
"/usr/include/opencv4/opencv2/core/cvstd.inl.hpp"
"/usr/include/opencv4/opencv2/core/cvstd_wrapper.hpp"
"/usr/include/opencv4/opencv2/core/fast_math.hpp"
"/usr/include/opencv4/opencv2/core/hal/interface.h"
"/usr/include/opencv4/opencv2/core/mat.hpp"
"/usr/include/opencv4/opencv2/core/mat.inl.hpp"
"/usr/include/opencv4/opencv2/core/matx.hpp"
"/usr/include/opencv4/opencv2/core/neon_utils.hpp"
"/usr/include/opencv4/opencv2/core/operations.hpp"
"/usr/include/opencv4/opencv2/core/optim.hpp"
"/usr/include/opencv4/opencv2/core/ovx.hpp"
"/usr/include/opencv4/opencv2/core/persistence.hpp"
"/usr/include/opencv4/opencv2/core/saturate.hpp"
"/usr/include/opencv4/opencv2/core/traits.hpp"
"/usr/include/opencv4/opencv2/core/types.hpp"
"/usr/include/opencv4/opencv2/core/utility.hpp"
"/usr/include/opencv4/opencv2/core/version.hpp"
"/usr/include/opencv4/opencv2/core/vsx_utils.hpp"
"/usr/include/opencv4/opencv2/dnn.hpp"
"/usr/include/opencv4/opencv2/dnn/dict.hpp"
"/usr/include/opencv4/opencv2/dnn/dnn.hpp"
"/usr/include/opencv4/opencv2/dnn/dnn.inl.hpp"
"/usr/include/opencv4/opencv2/dnn/layer.hpp"
"/usr/include/opencv4/opencv2/dnn/utils/inference_engine.hpp"
"/usr/include/opencv4/opencv2/dnn/version.hpp"
"/usr/include/opencv4/opencv2/features2d.hpp"
"/usr/include/opencv4/opencv2/flann.hpp"
"/usr/include/opencv4/opencv2/flann/all_indices.h"
"/usr/include/opencv4/opencv2/flann/allocator.h"
"/usr/include/opencv4/opencv2/flann/any.h"
"/usr/include/opencv4/opencv2/flann/autotuned_index.h"
"/usr/include/opencv4/opencv2/flann/composite_index.h"
"/usr/include/opencv4/opencv2/flann/config.h"
"/usr/include/opencv4/opencv2/flann/defines.h"
"/usr/include/opencv4/opencv2/flann/dist.h"
"/usr/include/opencv4/opencv2/flann/dynamic_bitset.h"
"/usr/include/opencv4/opencv2/flann/flann_base.hpp"
"/usr/include/opencv4/opencv2/flann/general.h"
"/usr/include/opencv4/opencv2/flann/ground_truth.h"
"/usr/include/opencv4/opencv2/flann/heap.h"
"/usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h"
"/usr/include/opencv4/opencv2/flann/index_testing.h"
"/usr/include/opencv4/opencv2/flann/kdtree_index.h"
"/usr/include/opencv4/opencv2/flann/kdtree_single_index.h"
"/usr/include/opencv4/opencv2/flann/kmeans_index.h"
"/usr/include/opencv4/opencv2/flann/linear_index.h"
"/usr/include/opencv4/opencv2/flann/logger.h"
"/usr/include/opencv4/opencv2/flann/lsh_index.h"
"/usr/include/opencv4/opencv2/flann/lsh_table.h"
"/usr/include/opencv4/opencv2/flann/matrix.h"
"/usr/include/opencv4/opencv2/flann/miniflann.hpp"
"/usr/include/opencv4/opencv2/flann/nn_index.h"
"/usr/include/opencv4/opencv2/flann/params.h"
"/usr/include/opencv4/opencv2/flann/random.h"
"/usr/include/opencv4/opencv2/flann/result_set.h"
"/usr/include/opencv4/opencv2/flann/sampling.h"
"/usr/include/opencv4/opencv2/flann/saving.h"
"/usr/include/opencv4/opencv2/flann/timer.h"
"/usr/include/opencv4/opencv2/highgui.hpp"
"/usr/include/opencv4/opencv2/imgcodecs.hpp"
"/usr/include/opencv4/opencv2/imgproc.hpp"
"/usr/include/opencv4/opencv2/ml.hpp"
"/usr/include/opencv4/opencv2/ml/ml.inl.hpp"
"/usr/include/opencv4/opencv2/objdetect.hpp"
"/usr/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp"
"/usr/include/opencv4/opencv2/opencv.hpp"
"/usr/include/opencv4/opencv2/opencv_modules.hpp"
"/usr/include/opencv4/opencv2/photo.hpp"
"/usr/include/opencv4/opencv2/stitching.hpp"
"/usr/include/opencv4/opencv2/stitching/detail/blenders.hpp"
"/usr/include/opencv4/opencv2/stitching/detail/camera.hpp"
"/usr/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp"
"/usr/include/opencv4/opencv2/stitching/detail/matchers.hpp"
"/usr/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp"
"/usr/include/opencv4/opencv2/stitching/detail/seam_finders.hpp"
"/usr/include/opencv4/opencv2/stitching/detail/util.hpp"
"/usr/include/opencv4/opencv2/stitching/detail/util_inl.hpp"
"/usr/include/opencv4/opencv2/stitching/detail/warpers.hpp"
"/usr/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp"
"/usr/include/opencv4/opencv2/stitching/warpers.hpp"
"/usr/include/opencv4/opencv2/video.hpp"
"/usr/include/opencv4/opencv2/video/background_segm.hpp"
"/usr/include/opencv4/opencv2/video/tracking.hpp"
"/usr/include/opencv4/opencv2/videoio.hpp"
"/usr/include/pthread.h"
"/usr/include/sched.h"
"/usr/include/stdc-predef.h"
"/usr/include/stdint.h"
"/usr/include/stdio.h"
"/usr/include/stdlib.h"
"/usr/include/string.h"
"/usr/include/strings.h"
"/usr/include/time.h"
"/usr/include/wchar.h"
"/usr/include/wctype.h"
"/usr/lib/gcc/aarch64-linux-gnu/7/include-fixed/limits.h"
"/usr/lib/gcc/aarch64-linux-gnu/7/include-fixed/syslimits.h"
"/usr/lib/gcc/aarch64-linux-gnu/7/include/float.h"
"/usr/lib/gcc/aarch64-linux-gnu/7/include/stdarg.h"
"/usr/lib/gcc/aarch64-linux-gnu/7/include/stddef.h"
"/usr/lib/gcc/aarch64-linux-gnu/7/include/stdint.h"
"/usr/local/cuda/include/builtin_types.h"
"/usr/local/cuda/include/channel_descriptor.h"
"/usr/local/cuda/include/crt/common_functions.h"
"/usr/local/cuda/include/crt/device_double_functions.h"
"/usr/local/cuda/include/crt/device_double_functions.hpp"
"/usr/local/cuda/include/crt/device_functions.h"
"/usr/local/cuda/include/crt/device_functions.hpp"
"/usr/local/cuda/include/crt/host_config.h"
"/usr/local/cuda/include/crt/host_defines.h"
"/usr/local/cuda/include/crt/math_functions.h"
"/usr/local/cuda/include/crt/math_functions.hpp"
"/usr/local/cuda/include/crt/sm_70_rt.h"
"/usr/local/cuda/include/crt/sm_70_rt.hpp"
"/usr/local/cuda/include/cuda_device_runtime_api.h"
"/usr/local/cuda/include/cuda_runtime.h"
"/usr/local/cuda/include/cuda_runtime_api.h"
"/usr/local/cuda/include/cuda_surface_types.h"
"/usr/local/cuda/include/cuda_texture_types.h"
"/usr/local/cuda/include/device_atomic_functions.h"
"/usr/local/cuda/include/device_atomic_functions.hpp"
"/usr/local/cuda/include/device_launch_parameters.h"
"/usr/local/cuda/include/device_types.h"
"/usr/local/cuda/include/driver_functions.h"
"/usr/local/cuda/include/driver_types.h"
"/usr/local/cuda/include/library_types.h"
"/usr/local/cuda/include/sm_20_atomic_functions.h"
"/usr/local/cuda/include/sm_20_atomic_functions.hpp"
"/usr/local/cuda/include/sm_20_intrinsics.h"
"/usr/local/cuda/include/sm_20_intrinsics.hpp"
"/usr/local/cuda/include/sm_30_intrinsics.h"
"/usr/local/cuda/include/sm_30_intrinsics.hpp"
"/usr/local/cuda/include/sm_32_atomic_functions.h"
"/usr/local/cuda/include/sm_32_atomic_functions.hpp"
"/usr/local/cuda/include/sm_32_intrinsics.h"
"/usr/local/cuda/include/sm_32_intrinsics.hpp"
"/usr/local/cuda/include/sm_35_atomic_functions.h"
"/usr/local/cuda/include/sm_35_intrinsics.h"
"/usr/local/cuda/include/sm_60_atomic_functions.h"
"/usr/local/cuda/include/sm_60_atomic_functions.hpp"
"/usr/local/cuda/include/sm_61_intrinsics.h"
"/usr/local/cuda/include/sm_61_intrinsics.hpp"
"/usr/local/cuda/include/surface_functions.h"
"/usr/local/cuda/include/surface_indirect_functions.h"
"/usr/local/cuda/include/surface_types.h"
"/usr/local/cuda/include/texture_fetch_functions.h"
"/usr/local/cuda/include/texture_indirect_functions.h"
"/usr/local/cuda/include/texture_types.h"
"/usr/local/cuda/include/vector_functions.h"
"/usr/local/cuda/include/vector_functions.hpp"
"/usr/local/cuda/include/vector_types.h"
)
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/ilens/tensorrtx/yolov5
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/ilens/tensorrtx/yolov5/build
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
/usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# The main all target
all: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/ilens/tensorrtx/yolov5/build/CMakeFiles /home/ilens/tensorrtx/yolov5/build/CMakeFiles/progress.marks
$(MAKE) -f CMakeFiles/Makefile2 all
$(CMAKE_COMMAND) -E cmake_progress_start /home/ilens/tensorrtx/yolov5/build/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
$(MAKE) -f CMakeFiles/Makefile2 clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
$(MAKE) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
$(MAKE) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall/fast
# clear depends
depend:
$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
#=============================================================================
# Target rules for targets named yolov5-cls
# Build rule for target.
yolov5-cls: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 yolov5-cls
.PHONY : yolov5-cls
# fast build rule for target.
yolov5-cls/fast:
$(MAKE) -f CMakeFiles/yolov5-cls.dir/build.make CMakeFiles/yolov5-cls.dir/build
.PHONY : yolov5-cls/fast
#=============================================================================
# Target rules for targets named myplugins
# Build rule for target.
myplugins: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 myplugins
.PHONY : myplugins
# fast build rule for target.
myplugins/fast:
$(MAKE) -f CMakeFiles/myplugins.dir/build.make CMakeFiles/myplugins.dir/build
.PHONY : myplugins/fast
#=============================================================================
# Target rules for targets named yolov5
# Build rule for target.
yolov5: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 yolov5
.PHONY : yolov5
# fast build rule for target.
yolov5/fast:
$(MAKE) -f CMakeFiles/yolov5.dir/build.make CMakeFiles/yolov5.dir/build
.PHONY : yolov5/fast
calibrator.o: calibrator.cpp.o
.PHONY : calibrator.o
# target to build an object file
calibrator.cpp.o:
$(MAKE) -f CMakeFiles/yolov5-cls.dir/build.make CMakeFiles/yolov5-cls.dir/calibrator.cpp.o
$(MAKE) -f CMakeFiles/yolov5.dir/build.make CMakeFiles/yolov5.dir/calibrator.cpp.o
.PHONY : calibrator.cpp.o
calibrator.i: calibrator.cpp.i
.PHONY : calibrator.i
# target to preprocess a source file
calibrator.cpp.i:
$(MAKE) -f CMakeFiles/yolov5-cls.dir/build.make CMakeFiles/yolov5-cls.dir/calibrator.cpp.i
$(MAKE) -f CMakeFiles/yolov5.dir/build.make CMakeFiles/yolov5.dir/calibrator.cpp.i
.PHONY : calibrator.cpp.i
calibrator.s: calibrator.cpp.s
.PHONY : calibrator.s
# target to generate assembly for a file
calibrator.cpp.s:
$(MAKE) -f CMakeFiles/yolov5-cls.dir/build.make CMakeFiles/yolov5-cls.dir/calibrator.cpp.s
$(MAKE) -f CMakeFiles/yolov5.dir/build.make CMakeFiles/yolov5.dir/calibrator.cpp.s
.PHONY : calibrator.cpp.s
yolov5.o: yolov5.cpp.o
.PHONY : yolov5.o
# target to build an object file
yolov5.cpp.o:
$(MAKE) -f CMakeFiles/yolov5.dir/build.make CMakeFiles/yolov5.dir/yolov5.cpp.o
.PHONY : yolov5.cpp.o
yolov5.i: yolov5.cpp.i
.PHONY : yolov5.i
# target to preprocess a source file
yolov5.cpp.i:
$(MAKE) -f CMakeFiles/yolov5.dir/build.make CMakeFiles/yolov5.dir/yolov5.cpp.i
.PHONY : yolov5.cpp.i
yolov5.s: yolov5.cpp.s
.PHONY : yolov5.s
# target to generate assembly for a file
yolov5.cpp.s:
$(MAKE) -f CMakeFiles/yolov5.dir/build.make CMakeFiles/yolov5.dir/yolov5.cpp.s
.PHONY : yolov5.cpp.s
yolov5_cls.o: yolov5_cls.cpp.o
.PHONY : yolov5_cls.o
# target to build an object file
yolov5_cls.cpp.o:
$(MAKE) -f CMakeFiles/yolov5-cls.dir/build.make CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.o
.PHONY : yolov5_cls.cpp.o
yolov5_cls.i: yolov5_cls.cpp.i
.PHONY : yolov5_cls.i
# target to preprocess a source file
yolov5_cls.cpp.i:
$(MAKE) -f CMakeFiles/yolov5-cls.dir/build.make CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.i
.PHONY : yolov5_cls.cpp.i
yolov5_cls.s: yolov5_cls.cpp.s
.PHONY : yolov5_cls.s
# target to generate assembly for a file
yolov5_cls.cpp.s:
$(MAKE) -f CMakeFiles/yolov5-cls.dir/build.make CMakeFiles/yolov5-cls.dir/yolov5_cls.cpp.s
.PHONY : yolov5_cls.cpp.s
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... rebuild_cache"
@echo "... edit_cache"
@echo "... yolov5-cls"
@echo "... myplugins"
@echo "... yolov5"
@echo "... calibrator.o"
@echo "... calibrator.i"
@echo "... calibrator.s"
@echo "... yolov5.o"
@echo "... yolov5.i"
@echo "... yolov5.s"
@echo "... yolov5_cls.o"
@echo "... yolov5_cls.i"
@echo "... yolov5_cls.s"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
# Install script for directory: /home/ilens/tensorrtx/yolov5
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "/usr/local")
endif()
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
# Set the install configuration name.
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
if(BUILD_TYPE)
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
else()
set(CMAKE_INSTALL_CONFIG_NAME "Debug")
endif()
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
endif()
# Set the component getting installed.
if(NOT CMAKE_INSTALL_COMPONENT)
if(COMPONENT)
message(STATUS "Install component: \"${COMPONENT}\"")
set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
else()
set(CMAKE_INSTALL_COMPONENT)
endif()
endif()
# Install shared libraries without execute permission?
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
set(CMAKE_INSTALL_SO_NO_EXE "1")
endif()
# Is this installation the result of a crosscompile?
if(NOT DEFINED CMAKE_CROSSCOMPILING)
set(CMAKE_CROSSCOMPILING "FALSE")
endif()
if(CMAKE_INSTALL_COMPONENT)
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
else()
set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
endif()
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
"${CMAKE_INSTALL_MANIFEST_FILES}")
file(WRITE "/home/ilens/tensorrtx/yolov5/build/${CMAKE_INSTALL_MANIFEST}"
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
This source diff could not be displayed because it is too large. You can view the blob instead.
#include <iostream>
#include <iterator>
#include <fstream>
#include <opencv2/dnn/dnn.hpp>
#include "calibrator.h"
#include "cuda_utils.h"
#include "utils.h"
Int8EntropyCalibrator2::Int8EntropyCalibrator2(int batchsize, int input_w, int input_h, const char* img_dir, const char* calib_table_name, const char* input_blob_name, bool read_cache)
: batchsize_(batchsize),
input_w_(input_w),
input_h_(input_h),
img_idx_(0),
img_dir_(img_dir),
calib_table_name_(calib_table_name),
input_blob_name_(input_blob_name),
read_cache_(read_cache) {
input_count_ = 3 * input_w * input_h * batchsize;
CUDA_CHECK(cudaMalloc(&device_input_, input_count_ * sizeof(float)));
read_files_in_dir(img_dir, img_files_);
}
Int8EntropyCalibrator2::~Int8EntropyCalibrator2() {
CUDA_CHECK(cudaFree(device_input_));
}
int Int8EntropyCalibrator2::getBatchSize() const TRT_NOEXCEPT {
return batchsize_;
}
bool Int8EntropyCalibrator2::getBatch(void* bindings[], const char* names[], int nbBindings) TRT_NOEXCEPT {
if (img_idx_ + batchsize_ > (int)img_files_.size()) {
return false;
}
std::vector<cv::Mat> input_imgs_;
for (int i = img_idx_; i < img_idx_ + batchsize_; i++) {
std::cout << img_files_[i] << " " << i << std::endl;
cv::Mat temp = cv::imread(img_dir_ + img_files_[i]);
if (temp.empty()) {
std::cerr << "Fatal error: image cannot open!" << std::endl;
return false;
}
cv::Mat pr_img = preprocess_img(temp, input_w_, input_h_);
input_imgs_.push_back(pr_img);
}
img_idx_ += batchsize_;
cv::Mat blob = cv::dnn::blobFromImages(input_imgs_, 1.0 / 255.0, cv::Size(input_w_, input_h_), cv::Scalar(0, 0, 0), true, false);
CUDA_CHECK(cudaMemcpy(device_input_, blob.ptr<float>(0), input_count_ * sizeof(float), cudaMemcpyHostToDevice));
assert(!strcmp(names[0], input_blob_name_));
bindings[0] = device_input_;
return true;
}
const void* Int8EntropyCalibrator2::readCalibrationCache(size_t& length) TRT_NOEXCEPT {
std::cout << "reading calib cache: " << calib_table_name_ << std::endl;
calib_cache_.clear();
std::ifstream input(calib_table_name_, std::ios::binary);
input >> std::noskipws;
if (read_cache_ && input.good()) {
std::copy(std::istream_iterator<char>(input), std::istream_iterator<char>(), std::back_inserter(calib_cache_));
}
length = calib_cache_.size();
return length ? calib_cache_.data() : nullptr;
}
void Int8EntropyCalibrator2::writeCalibrationCache(const void* cache, size_t length) TRT_NOEXCEPT {
std::cout << "writing calib cache: " << calib_table_name_ << " size: " << length << std::endl;
std::ofstream output(calib_table_name_, std::ios::binary);
output.write(reinterpret_cast<const char*>(cache), length);
}
#ifndef ENTROPY_CALIBRATOR_H
#define ENTROPY_CALIBRATOR_H
#include <NvInfer.h>
#include <string>
#include <vector>
#include "macros.h"
//! \class Int8EntropyCalibrator2
//!
//! \brief Implements Entropy calibrator 2.
//! CalibrationAlgoType is kENTROPY_CALIBRATION_2.
//!
class Int8EntropyCalibrator2 : public nvinfer1::IInt8EntropyCalibrator2 {
public:
Int8EntropyCalibrator2(int batchsize, int input_w, int input_h, const char* img_dir, const char* calib_table_name, const char* input_blob_name, bool read_cache = true);
virtual ~Int8EntropyCalibrator2();
int getBatchSize() const TRT_NOEXCEPT override;
bool getBatch(void* bindings[], const char* names[], int nbBindings) TRT_NOEXCEPT override;
const void* readCalibrationCache(size_t& length) TRT_NOEXCEPT override;
void writeCalibrationCache(const void* cache, size_t length) TRT_NOEXCEPT override;
private:
int batchsize_;
int input_w_;
int input_h_;
int img_idx_;
std::string img_dir_;
std::vector<std::string> img_files_;
size_t input_count_;
std::string calib_table_name_;
const char* input_blob_name_;
bool read_cache_;
void* device_input_;
std::vector<char> calib_cache_;
};
#endif // ENTROPY_CALIBRATOR_H
#ifndef YOLOV5_COMMON_H_
#define YOLOV5_COMMON_H_
#include <fstream>
#include <map>
#include <sstream>
#include <vector>
#include <opencv2/opencv.hpp>
#include "NvInfer.h"
#include "yololayer.h"
using namespace nvinfer1;
cv::Rect get_rect(cv::Mat& img, float bbox[4]) {
float l, r, t, b;
float r_w = Yolo::INPUT_W / (img.cols * 1.0);
float r_h = Yolo::INPUT_H / (img.rows * 1.0);
if (r_h > r_w) {
l = bbox[0] - bbox[2] / 2.f;
r = bbox[0] + bbox[2] / 2.f;
t = bbox[1] - bbox[3] / 2.f - (Yolo::INPUT_H - r_w * img.rows) / 2;
b = bbox[1] + bbox[3] / 2.f - (Yolo::INPUT_H - r_w * img.rows) / 2;
l = l / r_w;
r = r / r_w;
t = t / r_w;
b = b / r_w;
} else {
l = bbox[0] - bbox[2] / 2.f - (Yolo::INPUT_W - r_h * img.cols) / 2;
r = bbox[0] + bbox[2] / 2.f - (Yolo::INPUT_W - r_h * img.cols) / 2;
t = bbox[1] - bbox[3] / 2.f;
b = bbox[1] + bbox[3] / 2.f;
l = l / r_h;
r = r / r_h;
t = t / r_h;
b = b / r_h;
}
return cv::Rect(round(l), round(t), round(r - l), round(b - t));
}
float iou(float lbox[4], float rbox[4]) {
float interBox[] = {
(std::max)(lbox[0] - lbox[2] / 2.f , rbox[0] - rbox[2] / 2.f), //left
(std::min)(lbox[0] + lbox[2] / 2.f , rbox[0] + rbox[2] / 2.f), //right
(std::max)(lbox[1] - lbox[3] / 2.f , rbox[1] - rbox[3] / 2.f), //top
(std::min)(lbox[1] + lbox[3] / 2.f , rbox[1] + rbox[3] / 2.f), //bottom
};
if (interBox[2] > interBox[3] || interBox[0] > interBox[1])
return 0.0f;
float interBoxS = (interBox[1] - interBox[0])*(interBox[3] - interBox[2]);
return interBoxS / (lbox[2] * lbox[3] + rbox[2] * rbox[3] - interBoxS);
}
bool cmp(const Yolo::Detection& a, const Yolo::Detection& b) {
return a.conf > b.conf;
}
void nms(std::vector<Yolo::Detection>& res, float *output, float conf_thresh, float nms_thresh = 0.5) {
int det_size = sizeof(Yolo::Detection) / sizeof(float);
std::map<float, std::vector<Yolo::Detection>> m;
for (int i = 0; i < output[0] && i < Yolo::MAX_OUTPUT_BBOX_COUNT; i++) {
if (output[1 + det_size * i + 4] <= conf_thresh) continue;
Yolo::Detection det;
memcpy(&det, &output[1 + det_size * i], det_size * sizeof(float));
if (m.count(det.class_id) == 0) m.emplace(det.class_id, std::vector<Yolo::Detection>());
m[det.class_id].push_back(det);
}
for (auto it = m.begin(); it != m.end(); it++) {
//std::cout << it->second[0].class_id << " --- " << std::endl;
auto& dets = it->second;
std::sort(dets.begin(), dets.end(), cmp);
for (size_t m = 0; m < dets.size(); ++m) {
auto& item = dets[m];
res.push_back(item);
for (size_t n = m + 1; n < dets.size(); ++n) {
if (iou(item.bbox, dets[n].bbox) > nms_thresh) {
dets.erase(dets.begin() + n);
--n;
}
}
}
}
}
// TensorRT weight files have a simple space delimited format:
// [type] [size] <data x size in hex>
std::map<std::string, Weights> loadWeights(const std::string file) {
std::cout << "Loading weights: " << file << std::endl;
std::map<std::string, Weights> weightMap;
// Open weights file
std::ifstream input(file);
assert(input.is_open() && "Unable to load weight file. please check if the .wts file path is right!!!!!!");
// Read number of weight blobs
int32_t count;
input >> count;
assert(count > 0 && "Invalid weight map file.");
while (count--) {
Weights wt{ DataType::kFLOAT, nullptr, 0 };
uint32_t size;
// Read name and type of blob
std::string name;
input >> name >> std::dec >> size;
wt.type = DataType::kFLOAT;
// Load blob
uint32_t* val = reinterpret_cast<uint32_t*>(malloc(sizeof(val) * size));
for (uint32_t x = 0, y = size; x < y; ++x) {
input >> std::hex >> val[x];
}
wt.values = val;
wt.count = size;
weightMap[name] = wt;
}
return weightMap;
}
IScaleLayer* addBatchNorm2d(INetworkDefinition *network, std::map<std::string, Weights>& weightMap, ITensor& input, std::string lname, float eps) {
float *gamma = (float*)weightMap[lname + ".weight"].values;
float *beta = (float*)weightMap[lname + ".bias"].values;
float *mean = (float*)weightMap[lname + ".running_mean"].values;
float *var = (float*)weightMap[lname + ".running_var"].values;
int len = weightMap[lname + ".running_var"].count;
float *scval = reinterpret_cast<float*>(malloc(sizeof(float) * len));
for (int i = 0; i < len; i++) {
scval[i] = gamma[i] / sqrt(var[i] + eps);
}
Weights scale{ DataType::kFLOAT, scval, len };
float *shval = reinterpret_cast<float*>(malloc(sizeof(float) * len));
for (int i = 0; i < len; i++) {
shval[i] = beta[i] - mean[i] * gamma[i] / sqrt(var[i] + eps);
}
Weights shift{ DataType::kFLOAT, shval, len };
float *pval = reinterpret_cast<float*>(malloc(sizeof(float) * len));
for (int i = 0; i < len; i++) {
pval[i] = 1.0;
}
Weights power{ DataType::kFLOAT, pval, len };
weightMap[lname + ".scale"] = scale;
weightMap[lname + ".shift"] = shift;
weightMap[lname + ".power"] = power;
IScaleLayer* scale_1 = network->addScale(input, ScaleMode::kCHANNEL, shift, scale, power);
assert(scale_1);
return scale_1;
}
ILayer* convBlock(INetworkDefinition *network, std::map<std::string, Weights>& weightMap, ITensor& input, int outch, int ksize, int s, int g, std::string lname) {
Weights emptywts{ DataType::kFLOAT, nullptr, 0 };
int p = ksize / 3;
IConvolutionLayer* conv1 = network->addConvolutionNd(input, outch, DimsHW{ ksize, ksize }, weightMap[lname + ".conv.weight"], emptywts);
assert(conv1);
conv1->setStrideNd(DimsHW{ s, s });
conv1->setPaddingNd(DimsHW{ p, p });
conv1->setNbGroups(g);
IScaleLayer* bn1 = addBatchNorm2d(network, weightMap, *conv1->getOutput(0), lname + ".bn", 1e-3);
// silu = x * sigmoid
auto sig = network->addActivation(*bn1->getOutput(0), ActivationType::kSIGMOID);
assert(sig);
auto ew = network->addElementWise(*bn1->getOutput(0), *sig->getOutput(0), ElementWiseOperation::kPROD);
assert(ew);
return ew;
}
ILayer* focus(INetworkDefinition *network, std::map<std::string, Weights>& weightMap, ITensor& input, int inch, int outch, int ksize, std::string lname) {
ISliceLayer *s1 = network->addSlice(input, Dims3{ 0, 0, 0 }, Dims3{ inch, Yolo::INPUT_H / 2, Yolo::INPUT_W / 2 }, Dims3{ 1, 2, 2 });
ISliceLayer *s2 = network->addSlice(input, Dims3{ 0, 1, 0 }, Dims3{ inch, Yolo::INPUT_H / 2, Yolo::INPUT_W / 2 }, Dims3{ 1, 2, 2 });
ISliceLayer *s3 = network->addSlice(input, Dims3{ 0, 0, 1 }, Dims3{ inch, Yolo::INPUT_H / 2, Yolo::INPUT_W / 2 }, Dims3{ 1, 2, 2 });
ISliceLayer *s4 = network->addSlice(input, Dims3{ 0, 1, 1 }, Dims3{ inch, Yolo::INPUT_H / 2, Yolo::INPUT_W / 2 }, Dims3{ 1, 2, 2 });
ITensor* inputTensors[] = { s1->getOutput(0), s2->getOutput(0), s3->getOutput(0), s4->getOutput(0) };
auto cat = network->addConcatenation(inputTensors, 4);
auto conv = convBlock(network, weightMap, *cat->getOutput(0), outch, ksize, 1, 1, lname + ".conv");
return conv;
}
ILayer* bottleneck(INetworkDefinition *network, std::map<std::string, Weights>& weightMap, ITensor& input, int c1, int c2, bool shortcut, int g, float e, std::string lname) {
auto cv1 = convBlock(network, weightMap, input, (int)((float)c2 * e), 1, 1, 1, lname + ".cv1");
auto cv2 = convBlock(network, weightMap, *cv1->getOutput(0), c2, 3, 1, g, lname + ".cv2");
if (shortcut && c1 == c2) {
auto ew = network->addElementWise(input, *cv2->getOutput(0), ElementWiseOperation::kSUM);
return ew;
}
return cv2;
}
ILayer* bottleneckCSP(INetworkDefinition *network, std::map<std::string, Weights>& weightMap, ITensor& input, int c1, int c2, int n, bool shortcut, int g, float e, std::string lname) {
Weights emptywts{ DataType::kFLOAT, nullptr, 0 };
int c_ = (int)((float)c2 * e);
auto cv1 = convBlock(network, weightMap, input, c_, 1, 1, 1, lname + ".cv1");
auto cv2 = network->addConvolutionNd(input, c_, DimsHW{ 1, 1 }, weightMap[lname + ".cv2.weight"], emptywts);
ITensor *y1 = cv1->getOutput(0);
for (int i = 0; i < n; i++) {
auto b = bottleneck(network, weightMap, *y1, c_, c_, shortcut, g, 1.0, lname + ".m." + std::to_string(i));
y1 = b->getOutput(0);
}
auto cv3 = network->addConvolutionNd(*y1, c_, DimsHW{ 1, 1 }, weightMap[lname + ".cv3.weight"], emptywts);
ITensor* inputTensors[] = { cv3->getOutput(0), cv2->getOutput(0) };
auto cat = network->addConcatenation(inputTensors, 2);
IScaleLayer* bn = addBatchNorm2d(network, weightMap, *cat->getOutput(0), lname + ".bn", 1e-4);
auto lr = network->addActivation(*bn->getOutput(0), ActivationType::kLEAKY_RELU);
lr->setAlpha(0.1);
auto cv4 = convBlock(network, weightMap, *lr->getOutput(0), c2, 1, 1, 1, lname + ".cv4");
return cv4;
}
ILayer* C3(INetworkDefinition *network, std::map<std::string, Weights>& weightMap, ITensor& input, int c1, int c2, int n, bool shortcut, int g, float e, std::string lname) {
int c_ = (int)((float)c2 * e);
auto cv1 = convBlock(network, weightMap, input, c_, 1, 1, 1, lname + ".cv1");
auto cv2 = convBlock(network, weightMap, input, c_, 1, 1, 1, lname + ".cv2");
ITensor *y1 = cv1->getOutput(0);
for (int i = 0; i < n; i++) {
auto b = bottleneck(network, weightMap, *y1, c_, c_, shortcut, g, 1.0, lname + ".m." + std::to_string(i));
y1 = b->getOutput(0);
}
ITensor* inputTensors[] = { y1, cv2->getOutput(0) };
auto cat = network->addConcatenation(inputTensors, 2);
auto cv3 = convBlock(network, weightMap, *cat->getOutput(0), c2, 1, 1, 1, lname + ".cv3");
return cv3;
}
ILayer* SPP(INetworkDefinition *network, std::map<std::string, Weights>& weightMap, ITensor& input, int c1, int c2, int k1, int k2, int k3, std::string lname) {
int c_ = c1 / 2;
auto cv1 = convBlock(network, weightMap, input, c_, 1, 1, 1, lname + ".cv1");
auto pool1 = network->addPoolingNd(*cv1->getOutput(0), PoolingType::kMAX, DimsHW{ k1, k1 });
pool1->setPaddingNd(DimsHW{ k1 / 2, k1 / 2 });
pool1->setStrideNd(DimsHW{ 1, 1 });
auto pool2 = network->addPoolingNd(*cv1->getOutput(0), PoolingType::kMAX, DimsHW{ k2, k2 });
pool2->setPaddingNd(DimsHW{ k2 / 2, k2 / 2 });
pool2->setStrideNd(DimsHW{ 1, 1 });
auto pool3 = network->addPoolingNd(*cv1->getOutput(0), PoolingType::kMAX, DimsHW{ k3, k3 });
pool3->setPaddingNd(DimsHW{ k3 / 2, k3 / 2 });
pool3->setStrideNd(DimsHW{ 1, 1 });
ITensor* inputTensors[] = { cv1->getOutput(0), pool1->getOutput(0), pool2->getOutput(0), pool3->getOutput(0) };
auto cat = network->addConcatenation(inputTensors, 4);
auto cv2 = convBlock(network, weightMap, *cat->getOutput(0), c2, 1, 1, 1, lname + ".cv2");
return cv2;
}
ILayer* SPPF(INetworkDefinition *network, std::map<std::string, Weights>& weightMap, ITensor& input, int c1, int c2, int k, std::string lname) {
int c_ = c1 / 2;
auto cv1 = convBlock(network, weightMap, input, c_, 1, 1, 1, lname + ".cv1");
auto pool1 = network->addPoolingNd(*cv1->getOutput(0), PoolingType::kMAX, DimsHW{ k, k });
pool1->setPaddingNd(DimsHW{ k / 2, k / 2 });
pool1->setStrideNd(DimsHW{ 1, 1 });
auto pool2 = network->addPoolingNd(*pool1->getOutput(0), PoolingType::kMAX, DimsHW{ k, k });
pool2->setPaddingNd(DimsHW{ k / 2, k / 2 });
pool2->setStrideNd(DimsHW{ 1, 1 });
auto pool3 = network->addPoolingNd(*pool2->getOutput(0), PoolingType::kMAX, DimsHW{ k, k });
pool3->setPaddingNd(DimsHW{ k / 2, k / 2 });
pool3->setStrideNd(DimsHW{ 1, 1 });
ITensor* inputTensors[] = { cv1->getOutput(0), pool1->getOutput(0), pool2->getOutput(0), pool3->getOutput(0) };
auto cat = network->addConcatenation(inputTensors, 4);
auto cv2 = convBlock(network, weightMap, *cat->getOutput(0), c2, 1, 1, 1, lname + ".cv2");
return cv2;
}
std::vector<std::vector<float>> getAnchors(std::map<std::string, Weights>& weightMap, std::string lname) {
std::vector<std::vector<float>> anchors;
Weights wts = weightMap[lname + ".anchor_grid"];
int anchor_len = Yolo::CHECK_COUNT * 2;
for (int i = 0; i < wts.count / anchor_len; i++) {
auto *p = (const float*)wts.values + i * anchor_len;
std::vector<float> anchor(p, p + anchor_len);
anchors.push_back(anchor);
}
return anchors;
}
IPluginV2Layer* addYoLoLayer(INetworkDefinition *network, std::map<std::string, Weights>& weightMap, std::string lname, std::vector<IConvolutionLayer*> dets) {
auto creator = getPluginRegistry()->getPluginCreator("YoloLayer_TRT", "1");
auto anchors = getAnchors(weightMap, lname);
PluginField plugin_fields[2];
int netinfo[4] = {Yolo::CLASS_NUM, Yolo::INPUT_W, Yolo::INPUT_H, Yolo::MAX_OUTPUT_BBOX_COUNT};
plugin_fields[0].data = netinfo;
plugin_fields[0].length = 4;
plugin_fields[0].name = "netinfo";
plugin_fields[0].type = PluginFieldType::kFLOAT32;
int scale = 8;
std::vector<Yolo::YoloKernel> kernels;
for (size_t i = 0; i < anchors.size(); i++) {
Yolo::YoloKernel kernel;
kernel.width = Yolo::INPUT_W / scale;
kernel.height = Yolo::INPUT_H / scale;
memcpy(kernel.anchors, &anchors[i][0], anchors[i].size() * sizeof(float));
kernels.push_back(kernel);
scale *= 2;
}
plugin_fields[1].data = &kernels[0];
plugin_fields[1].length = kernels.size();
plugin_fields[1].name = "kernels";
plugin_fields[1].type = PluginFieldType::kFLOAT32;
PluginFieldCollection plugin_data;
plugin_data.nbFields = 2;
plugin_data.fields = plugin_fields;
IPluginV2 *plugin_obj = creator->createPlugin("yololayer", &plugin_data);
std::vector<ITensor*> input_tensors;
for (auto det: dets) {
input_tensors.push_back(det->getOutput(0));
}
auto yolo = network->addPluginV2(&input_tensors[0], input_tensors.size(), *plugin_obj);
return yolo;
}
#endif // YOLOV5_COMMON_H_
#ifndef TRTX_CUDA_UTILS_H_
#define TRTX_CUDA_UTILS_H_
#include <cuda_runtime_api.h>
#ifndef CUDA_CHECK
#define CUDA_CHECK(callstr)\
{\
cudaError_t error_code = callstr;\
if (error_code != cudaSuccess) {\
std::cerr << "CUDA error " << error_code << " at " << __FILE__ << ":" << __LINE__;\
assert(0);\
}\
}
#endif // CUDA_CHECK
#endif // TRTX_CUDA_UTILS_H_
import sys
import argparse
import os
import struct
import torch
from utils.torch_utils import select_device
def parse_args():
parser = argparse.ArgumentParser(description='Convert .pt file to .wts')
parser.add_argument('-w', '--weights', required=True,
help='Input weights (.pt) file path (required)')
parser.add_argument(
'-o', '--output', help='Output (.wts) file path (optional)')
parser.add_argument(
'-t', '--type', type=str, default='detect', choices=['detect', 'cls'],
help='determines the model is detection/classification')
args = parser.parse_args()
if not os.path.isfile(args.weights):
raise SystemExit('Invalid input file')
if not args.output:
args.output = os.path.splitext(args.weights)[0] + '.wts'
elif os.path.isdir(args.output):
args.output = os.path.join(
args.output,
os.path.splitext(os.path.basename(args.weights))[0] + '.wts')
return args.weights, args.output, args.type
pt_file, wts_file, m_type = parse_args()
# Initialize
device = select_device('cpu')
# Load model
model = torch.load(pt_file, map_location=device) # load to FP32
model = model['ema' if model.get('ema') else 'model'].float()
if m_type == "detect":
# update anchor_grid info
anchor_grid = model.model[-1].anchors * \
model.model[-1].stride[..., None, None]
# model.model[-1].anchor_grid = anchor_grid
delattr(model.model[-1], 'anchor_grid') # model.model[-1] is detect layer
# The parameters are saved in the OrderDict through the "register_buffer" method, and then saved to the weight.
model.model[-1].register_buffer("anchor_grid", anchor_grid)
model.to(device).eval()
with open(wts_file, 'w') as f:
f.write('{}\n'.format(len(model.state_dict().keys())))
for k, v in model.state_dict().items():
vr = v.reshape(-1).cpu().numpy()
f.write('{} {} '.format(k, len(vr)))
for vv in vr:
f.write(' ')
f.write(struct.pack('>f', float(vv)).hex())
f.write('\n')
tench, Tinca tinca
goldfish, Carassius auratus
great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias
tiger shark, Galeocerdo cuvieri
hammerhead, hammerhead shark
electric ray, crampfish, numbfish, torpedo
stingray
cock
hen
ostrich, Struthio camelus
brambling, Fringilla montifringilla
goldfinch, Carduelis carduelis
house finch, linnet, Carpodacus mexicanus
junco, snowbird
indigo bunting, indigo finch, indigo bird, Passerina cyanea
robin, American robin, Turdus migratorius
bulbul
jay
magpie
chickadee
water ouzel, dipper
kite
bald eagle, American eagle, Haliaeetus leucocephalus
vulture
great grey owl, great gray owl, Strix nebulosa
European fire salamander, Salamandra salamandra
common newt, Triturus vulgaris
eft
spotted salamander, Ambystoma maculatum
axolotl, mud puppy, Ambystoma mexicanum
bullfrog, Rana catesbeiana
tree frog, tree-frog
tailed frog, bell toad, ribbed toad, tailed toad, Ascaphus trui
loggerhead, loggerhead turtle, Caretta caretta
leatherback turtle, leatherback, leathery turtle, Dermochelys coriacea
mud turtle
terrapin
box turtle, box tortoise
banded gecko
common iguana, iguana, Iguana iguana
American chameleon, anole, Anolis carolinensis
whiptail, whiptail lizard
agama
frilled lizard, Chlamydosaurus kingi
alligator lizard
Gila monster, Heloderma suspectum
green lizard, Lacerta viridis
African chameleon, Chamaeleo chamaeleon
Komodo dragon, Komodo lizard, dragon lizard, giant lizard, Varanus komodoensis
African crocodile, Nile crocodile, Crocodylus niloticus
American alligator, Alligator mississipiensis
triceratops
thunder snake, worm snake, Carphophis amoenus
ringneck snake, ring-necked snake, ring snake
hognose snake, puff adder, sand viper
green snake, grass snake
king snake, kingsnake
garter snake, grass snake
water snake
vine snake
night snake, Hypsiglena torquata
boa constrictor, Constrictor constrictor
rock python, rock snake, Python sebae
Indian cobra, Naja naja
green mamba
sea snake
horned viper, cerastes, sand viper, horned asp, Cerastes cornutus
diamondback, diamondback rattlesnake, Crotalus adamanteus
sidewinder, horned rattlesnake, Crotalus cerastes
trilobite
harvestman, daddy longlegs, Phalangium opilio
scorpion
black and gold garden spider, Argiope aurantia
barn spider, Araneus cavaticus
garden spider, Aranea diademata
black widow, Latrodectus mactans
tarantula
wolf spider, hunting spider
tick
centipede
black grouse
ptarmigan
ruffed grouse, partridge, Bonasa umbellus
prairie chicken, prairie grouse, prairie fowl
peacock
quail
partridge
African grey, African gray, Psittacus erithacus
macaw
sulphur-crested cockatoo, Kakatoe galerita, Cacatua galerita
lorikeet
coucal
bee eater
hornbill
hummingbird
jacamar
toucan
drake
red-breasted merganser, Mergus serrator
goose
black swan, Cygnus atratus
tusker
echidna, spiny anteater, anteater
platypus, duckbill, duckbilled platypus, duck-billed platypus, Ornithorhynchus anatinus
wallaby, brush kangaroo
koala, koala bear, kangaroo bear, native bear, Phascolarctos cinereus
wombat
jellyfish
sea anemone, anemone
brain coral
flatworm, platyhelminth
nematode, nematode worm, roundworm
conch
snail
slug
sea slug, nudibranch
chiton, coat-of-mail shell, sea cradle, polyplacophore
chambered nautilus, pearly nautilus, nautilus
Dungeness crab, Cancer magister
rock crab, Cancer irroratus
fiddler crab
king crab, Alaska crab, Alaskan king crab, Alaska king crab, Paralithodes camtschatica
American lobster, Northern lobster, Maine lobster, Homarus americanus
spiny lobster, langouste, rock lobster, crawfish, crayfish, sea crawfish
crayfish, crawfish, crawdad, crawdaddy
hermit crab
isopod
white stork, Ciconia ciconia
black stork, Ciconia nigra
spoonbill
flamingo
little blue heron, Egretta caerulea
American egret, great white heron, Egretta albus
bittern
crane
limpkin, Aramus pictus
European gallinule, Porphyrio porphyrio
American coot, marsh hen, mud hen, water hen, Fulica americana
bustard
ruddy turnstone, Arenaria interpres
red-backed sandpiper, dunlin, Erolia alpina
redshank, Tringa totanus
dowitcher
oystercatcher, oyster catcher
pelican
king penguin, Aptenodytes patagonica
albatross, mollymawk
grey whale, gray whale, devilfish, Eschrichtius gibbosus, Eschrichtius robustus
killer whale, killer, orca, grampus, sea wolf, Orcinus orca
dugong, Dugong dugon
sea lion
Chihuahua
Japanese spaniel
Maltese dog, Maltese terrier, Maltese
Pekinese, Pekingese, Peke
Shih-Tzu
Blenheim spaniel
papillon
toy terrier
Rhodesian ridgeback
Afghan hound, Afghan
basset, basset hound
beagle
bloodhound, sleuthhound
bluetick
black-and-tan coonhound
Walker hound, Walker foxhound
English foxhound
redbone
borzoi, Russian wolfhound
Irish wolfhound
Italian greyhound
whippet
Ibizan hound, Ibizan Podenco
Norwegian elkhound, elkhound
otterhound, otter hound
Saluki, gazelle hound
Scottish deerhound, deerhound
Weimaraner
Staffordshire bullterrier, Staffordshire bull terrier
American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier
Bedlington terrier
Border terrier
Kerry blue terrier
Irish terrier
Norfolk terrier
Norwich terrier
Yorkshire terrier
wire-haired fox terrier
Lakeland terrier
Sealyham terrier, Sealyham
Airedale, Airedale terrier
cairn, cairn terrier
Australian terrier
Dandie Dinmont, Dandie Dinmont terrier
Boston bull, Boston terrier
miniature schnauzer
giant schnauzer
standard schnauzer
Scotch terrier, Scottish terrier, Scottie
Tibetan terrier, chrysanthemum dog
silky terrier, Sydney silky
soft-coated wheaten terrier
West Highland white terrier
Lhasa, Lhasa apso
flat-coated retriever
curly-coated retriever
golden retriever
Labrador retriever
Chesapeake Bay retriever
German short-haired pointer
vizsla, Hungarian pointer
English setter
Irish setter, red setter
Gordon setter
Brittany spaniel
clumber, clumber spaniel
English springer, English springer spaniel
Welsh springer spaniel
cocker spaniel, English cocker spaniel, cocker
Sussex spaniel
Irish water spaniel
kuvasz
schipperke
groenendael
malinois
briard
kelpie
komondor
Old English sheepdog, bobtail
Shetland sheepdog, Shetland sheep dog, Shetland
collie
Border collie
Bouvier des Flandres, Bouviers des Flandres
Rottweiler
German shepherd, German shepherd dog, German police dog, alsatian
Doberman, Doberman pinscher
miniature pinscher
Greater Swiss Mountain dog
Bernese mountain dog
Appenzeller
EntleBucher
boxer
bull mastiff
Tibetan mastiff
French bulldog
Great Dane
Saint Bernard, St Bernard
Eskimo dog, husky
malamute, malemute, Alaskan malamute
Siberian husky
dalmatian, coach dog, carriage dog
affenpinscher, monkey pinscher, monkey dog
basenji
pug, pug-dog
Leonberg
Newfoundland, Newfoundland dog
Great Pyrenees
Samoyed, Samoyede
Pomeranian
chow, chow chow
keeshond
Brabancon griffon
Pembroke, Pembroke Welsh corgi
Cardigan, Cardigan Welsh corgi
toy poodle
miniature poodle
standard poodle
Mexican hairless
timber wolf, grey wolf, gray wolf, Canis lupus
white wolf, Arctic wolf, Canis lupus tundrarum
red wolf, maned wolf, Canis rufus, Canis niger
coyote, prairie wolf, brush wolf, Canis latrans
dingo, warrigal, warragal, Canis dingo
dhole, Cuon alpinus
African hunting dog, hyena dog, Cape hunting dog, Lycaon pictus
hyena, hyaena
red fox, Vulpes vulpes
kit fox, Vulpes macrotis
Arctic fox, white fox, Alopex lagopus
grey fox, gray fox, Urocyon cinereoargenteus
tabby, tabby cat
tiger cat
Persian cat
Siamese cat, Siamese
Egyptian cat
cougar, puma, catamount, mountain lion, painter, panther, Felis concolor
lynx, catamount
leopard, Panthera pardus
snow leopard, ounce, Panthera uncia
jaguar, panther, Panthera onca, Felis onca
lion, king of beasts, Panthera leo
tiger, Panthera tigris
cheetah, chetah, Acinonyx jubatus
brown bear, bruin, Ursus arctos
American black bear, black bear, Ursus americanus, Euarctos americanus
ice bear, polar bear, Ursus Maritimus, Thalarctos maritimus
sloth bear, Melursus ursinus, Ursus ursinus
mongoose
meerkat, mierkat
tiger beetle
ladybug, ladybeetle, lady beetle, ladybird, ladybird beetle
ground beetle, carabid beetle
long-horned beetle, longicorn, longicorn beetle
leaf beetle, chrysomelid
dung beetle
rhinoceros beetle
weevil
fly
bee
ant, emmet, pismire
grasshopper, hopper
cricket
walking stick, walkingstick, stick insect
cockroach, roach
mantis, mantid
cicada, cicala
leafhopper
lacewing, lacewing fly
dragonfly, darning needle, devil's darning needle, sewing needle, snake feeder, snake doctor, mosquito hawk, skeeter hawk
damselfly
admiral
ringlet, ringlet butterfly
monarch, monarch butterfly, milkweed butterfly, Danaus plexippus
cabbage butterfly
sulphur butterfly, sulfur butterfly
lycaenid, lycaenid butterfly
starfish, sea star
sea urchin
sea cucumber, holothurian
wood rabbit, cottontail, cottontail rabbit
hare
Angora, Angora rabbit
hamster
porcupine, hedgehog
fox squirrel, eastern fox squirrel, Sciurus niger
marmot
beaver
guinea pig, Cavia cobaya
sorrel
zebra
hog, pig, grunter, squealer, Sus scrofa
wild boar, boar, Sus scrofa
warthog
hippopotamus, hippo, river horse, Hippopotamus amphibius
ox
water buffalo, water ox, Asiatic buffalo, Bubalus bubalis
bison
ram, tup
bighorn, bighorn sheep, cimarron, Rocky Mountain bighorn, Rocky Mountain sheep, Ovis canadensis
ibex, Capra ibex
hartebeest
impala, Aepyceros melampus
gazelle
Arabian camel, dromedary, Camelus dromedarius
llama
weasel
mink
polecat, fitch, foulmart, foumart, Mustela putorius
black-footed ferret, ferret, Mustela nigripes
otter
skunk, polecat, wood pussy
badger
armadillo
three-toed sloth, ai, Bradypus tridactylus
orangutan, orang, orangutang, Pongo pygmaeus
gorilla, Gorilla gorilla
chimpanzee, chimp, Pan troglodytes
gibbon, Hylobates lar
siamang, Hylobates syndactylus, Symphalangus syndactylus
guenon, guenon monkey
patas, hussar monkey, Erythrocebus patas
baboon
macaque
langur
colobus, colobus monkey
proboscis monkey, Nasalis larvatus
marmoset
capuchin, ringtail, Cebus capucinus
howler monkey, howler
titi, titi monkey
spider monkey, Ateles geoffroyi
squirrel monkey, Saimiri sciureus
Madagascar cat, ring-tailed lemur, Lemur catta
indri, indris, Indri indri, Indri brevicaudatus
Indian elephant, Elephas maximus
African elephant, Loxodonta africana
lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens
giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca
barracouta, snoek
eel
coho, cohoe, coho salmon, blue jack, silver salmon, Oncorhynchus kisutch
rock beauty, Holocanthus tricolor
anemone fish
sturgeon
gar, garfish, garpike, billfish, Lepisosteus osseus
lionfish
puffer, pufferfish, blowfish, globefish
abacus
abaya
academic gown, academic robe, judge's robe
accordion, piano accordion, squeeze box
acoustic guitar
aircraft carrier, carrier, flattop, attack aircraft carrier
airliner
airship, dirigible
altar
ambulance
amphibian, amphibious vehicle
analog clock
apiary, bee house
apron
ashcan, trash can, garbage can, wastebin, ash bin, ash-bin, ashbin, dustbin, trash barrel, trash bin
assault rifle, assault gun
backpack, back pack, knapsack, packsack, rucksack, haversack
bakery, bakeshop, bakehouse
balance beam, beam
balloon
ballpoint, ballpoint pen, ballpen, Biro
Band Aid
banjo
bannister, banister, balustrade, balusters, handrail
barbell
barber chair
barbershop
barn
barometer
barrel, cask
barrow, garden cart, lawn cart, wheelbarrow
baseball
basketball
bassinet
bassoon
bathing cap, swimming cap
bath towel
bathtub, bathing tub, bath, tub
beach wagon, station wagon, wagon, estate car, beach waggon, station waggon, waggon
beacon, lighthouse, beacon light, pharos
beaker
bearskin, busby, shako
beer bottle
beer glass
bell cote, bell cot
bib
bicycle-built-for-two, tandem bicycle, tandem
bikini, two-piece
binder, ring-binder
binoculars, field glasses, opera glasses
birdhouse
boathouse
bobsled, bobsleigh, bob
bolo tie, bolo, bola tie, bola
bonnet, poke bonnet
bookcase
bookshop, bookstore, bookstall
bottlecap
bow
bow tie, bow-tie, bowtie
brass, memorial tablet, plaque
brassiere, bra, bandeau
breakwater, groin, groyne, mole, bulwark, seawall, jetty
breastplate, aegis, egis
broom
bucket, pail
buckle
bulletproof vest
bullet train, bullet
butcher shop, meat market
cab, hack, taxi, taxicab
caldron, cauldron
candle, taper, wax light
cannon
canoe
can opener, tin opener
cardigan
car mirror
carousel, carrousel, merry-go-round, roundabout, whirligig
carpenter's kit, tool kit
carton
car wheel
cash machine, cash dispenser, automated teller machine, automatic teller machine, automated teller, automatic teller, ATM
cassette
cassette player
castle
catamaran
CD player
cello, violoncello
cellular telephone, cellular phone, cellphone, cell, mobile phone
chain
chainlink fence
chain mail, ring mail, mail, chain armor, chain armour, ring armor, ring armour
chain saw, chainsaw
chest
chiffonier, commode
chime, bell, gong
china cabinet, china closet
Christmas stocking
church, church building
cinema, movie theater, movie theatre, movie house, picture palace
cleaver, meat cleaver, chopper
cliff dwelling
cloak
clog, geta, patten, sabot
cocktail shaker
coffee mug
coffeepot
coil, spiral, volute, whorl, helix
combination lock
computer keyboard, keypad
confectionery, confectionary, candy store
container ship, containership, container vessel
convertible
corkscrew, bottle screw
cornet, horn, trumpet, trump
cowboy boot
cowboy hat, ten-gallon hat
cradle
crane
crash helmet
crate
crib, cot
Crock Pot
croquet ball
crutch
cuirass
dam, dike, dyke
desk
desktop computer
dial telephone, dial phone
diaper, nappy, napkin
digital clock
digital watch
dining table, board
dishrag, dishcloth
dishwasher, dish washer, dishwashing machine
disk brake, disc brake
dock, dockage, docking facility
dogsled, dog sled, dog sleigh
dome
doormat, welcome mat
drilling platform, offshore rig
drum, membranophone, tympan
drumstick
dumbbell
Dutch oven
electric fan, blower
electric guitar
electric locomotive
entertainment center
envelope
espresso maker
face powder
feather boa, boa
file, file cabinet, filing cabinet
fireboat
fire engine, fire truck
fire screen, fireguard
flagpole, flagstaff
flute, transverse flute
folding chair
football helmet
forklift
fountain
fountain pen
four-poster
freight car
French horn, horn
frying pan, frypan, skillet
fur coat
garbage truck, dustcart
gasmask, respirator, gas helmet
gas pump, gasoline pump, petrol pump, island dispenser
goblet
go-kart
golf ball
golfcart, golf cart
gondola
gong, tam-tam
gown
grand piano, grand
greenhouse, nursery, glasshouse
grille, radiator grille
grocery store, grocery, food market, market
guillotine
hair slide
hair spray
half track
hammer
hamper
hand blower, blow dryer, blow drier, hair dryer, hair drier
hand-held computer, hand-held microcomputer
handkerchief, hankie, hanky, hankey
hard disc, hard disk, fixed disk
harmonica, mouth organ, harp, mouth harp
harp
harvester, reaper
hatchet
holster
home theater, home theatre
honeycomb
hook, claw
hoopskirt, crinoline
horizontal bar, high bar
horse cart, horse-cart
hourglass
iPod
iron, smoothing iron
jack-o'-lantern
jean, blue jean, denim
jeep, landrover
jersey, T-shirt, tee shirt
jigsaw puzzle
jinrikisha, ricksha, rickshaw
joystick
kimono
knee pad
knot
lab coat, laboratory coat
ladle
lampshade, lamp shade
laptop, laptop computer
lawn mower, mower
lens cap, lens cover
letter opener, paper knife, paperknife
library
lifeboat
lighter, light, igniter, ignitor
limousine, limo
liner, ocean liner
lipstick, lip rouge
Loafer
lotion
loudspeaker, speaker, speaker unit, loudspeaker system, speaker system
loupe, jeweler's loupe
lumbermill, sawmill
magnetic compass
mailbag, postbag
mailbox, letter box
maillot
maillot, tank suit
manhole cover
maraca
marimba, xylophone
mask
matchstick
maypole
maze, labyrinth
measuring cup
medicine chest, medicine cabinet
megalith, megalithic structure
microphone, mike
microwave, microwave oven
military uniform
milk can
minibus
miniskirt, mini
minivan
missile
mitten
mixing bowl
mobile home, manufactured home
Model T
modem
monastery
monitor
moped
mortar
mortarboard
mosque
mosquito net
motor scooter, scooter
mountain bike, all-terrain bike, off-roader
mountain tent
mouse, computer mouse
mousetrap
moving van
muzzle
nail
neck brace
necklace
nipple
notebook, notebook computer
obelisk
oboe, hautboy, hautbois
ocarina, sweet potato
odometer, hodometer, mileometer, milometer
oil filter
organ, pipe organ
oscilloscope, scope, cathode-ray oscilloscope, CRO
overskirt
oxcart
oxygen mask
packet
paddle, boat paddle
paddlewheel, paddle wheel
padlock
paintbrush
pajama, pyjama, pj's, jammies
palace
panpipe, pandean pipe, syrinx
paper towel
parachute, chute
parallel bars, bars
park bench
parking meter
passenger car, coach, carriage
patio, terrace
pay-phone, pay-station
pedestal, plinth, footstall
pencil box, pencil case
pencil sharpener
perfume, essence
Petri dish
photocopier
pick, plectrum, plectron
pickelhaube
picket fence, paling
pickup, pickup truck
pier
piggy bank, penny bank
pill bottle
pillow
ping-pong ball
pinwheel
pirate, pirate ship
pitcher, ewer
plane, carpenter's plane, woodworking plane
planetarium
plastic bag
plate rack
plow, plough
plunger, plumber's helper
Polaroid camera, Polaroid Land camera
pole
police van, police wagon, paddy wagon, patrol wagon, wagon, black Maria
poncho
pool table, billiard table, snooker table
pop bottle, soda bottle
pot, flowerpot
potter's wheel
power drill
prayer rug, prayer mat
printer
prison, prison house
projectile, missile
projector
puck, hockey puck
punching bag, punch bag, punching ball, punchball
purse
quill, quill pen
quilt, comforter, comfort, puff
racer, race car, racing car
racket, racquet
radiator
radio, wireless
radio telescope, radio reflector
rain barrel
recreational vehicle, RV, R.V.
reel
reflex camera
refrigerator, icebox
remote control, remote
restaurant, eating house, eating place, eatery
revolver, six-gun, six-shooter
rifle
rocking chair, rocker
rotisserie
rubber eraser, rubber, pencil eraser
rugby ball
rule, ruler
running shoe
safe
safety pin
saltshaker, salt shaker
sandal
sarong
sax, saxophone
scabbard
scale, weighing machine
school bus
schooner
scoreboard
screen, CRT screen
screw
screwdriver
seat belt, seatbelt
sewing machine
shield, buckler
shoe shop, shoe-shop, shoe store
shoji
shopping basket
shopping cart
shovel
shower cap
shower curtain
ski
ski mask
sleeping bag
slide rule, slipstick
sliding door
slot, one-armed bandit
snorkel
snowmobile
snowplow, snowplough
soap dispenser
soccer ball
sock
solar dish, solar collector, solar furnace
sombrero
soup bowl
space bar
space heater
space shuttle
spatula
speedboat
spider web, spider's web
spindle
sports car, sport car
spotlight, spot
stage
steam locomotive
steel arch bridge
steel drum
stethoscope
stole
stone wall
stopwatch, stop watch
stove
strainer
streetcar, tram, tramcar, trolley, trolley car
stretcher
studio couch, day bed
stupa, tope
submarine, pigboat, sub, U-boat
suit, suit of clothes
sundial
sunglass
sunglasses, dark glasses, shades
sunscreen, sunblock, sun blocker
suspension bridge
swab, swob, mop
sweatshirt
swimming trunks, bathing trunks
swing
switch, electric switch, electrical switch
syringe
table lamp
tank, army tank, armored combat vehicle, armoured combat vehicle
tape player
teapot
teddy, teddy bear
television, television system
tennis ball
thatch, thatched roof
theater curtain, theatre curtain
thimble
thresher, thrasher, threshing machine
throne
tile roof
toaster
tobacco shop, tobacconist shop, tobacconist
toilet seat
torch
totem pole
tow truck, tow car, wrecker
toyshop
tractor
trailer truck, tractor trailer, trucking rig, rig, articulated lorry, semi
tray
trench coat
tricycle, trike, velocipede
trimaran
tripod
triumphal arch
trolleybus, trolley coach, trackless trolley
trombone
tub, vat
turnstile
typewriter keyboard
umbrella
unicycle, monocycle
upright, upright piano
vacuum, vacuum cleaner
vase
vault
velvet
vending machine
vestment
viaduct
violin, fiddle
volleyball
waffle iron
wall clock
wallet, billfold, notecase, pocketbook
wardrobe, closet, press
warplane, military plane
washbasin, handbasin, washbowl, lavabo, wash-hand basin
washer, automatic washer, washing machine
water bottle
water jug
water tower
whiskey jug
whistle
wig
window screen
window shade
Windsor tie
wine bottle
wing
wok
wooden spoon
wool, woolen, woollen
worm fence, snake fence, snake-rail fence, Virginia fence
wreck
yawl
yurt
web site, website, internet site, site
comic book
crossword puzzle, crossword
street sign
traffic light, traffic signal, stoplight
book jacket, dust cover, dust jacket, dust wrapper
menu
plate
guacamole
consomme
hot pot, hotpot
trifle
ice cream, icecream
ice lolly, lolly, lollipop, popsicle
French loaf
bagel, beigel
pretzel
cheeseburger
hotdog, hot dog, red hot
mashed potato
head cabbage
broccoli
cauliflower
zucchini, courgette
spaghetti squash
acorn squash
butternut squash
cucumber, cuke
artichoke, globe artichoke
bell pepper
cardoon
mushroom
Granny Smith
strawberry
orange
lemon
fig
pineapple, ananas
banana
jackfruit, jak, jack
custard apple
pomegranate
hay
carbonara
chocolate sauce, chocolate syrup
dough
meat loaf, meatloaf
pizza, pizza pie
potpie
burrito
red wine
espresso
cup
eggnog
alp
bubble
cliff, drop, drop-off
coral reef
geyser
lakeside, lakeshore
promontory, headland, head, foreland
sandbar, sand bar
seashore, coast, seacoast, sea-coast
valley, vale
volcano
ballplayer, baseball player
groom, bridegroom
scuba diver
rapeseed
daisy
yellow lady's slipper, yellow lady-slipper, Cypripedium calceolus, Cypripedium parviflorum
corn
acorn
hip, rose hip, rosehip
buckeye, horse chestnut, conker
coral fungus
agaric
gyromitra
stinkhorn, carrion fungus
earthstar
hen-of-the-woods, hen of the woods, Polyporus frondosus, Grifola frondosa
bolete
ear, spike, capitulum
toilet tissue, toilet paper, bathroom tissue
\ No newline at end of file
/*
* Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef TENSORRT_LOGGING_H
#define TENSORRT_LOGGING_H
#include "NvInferRuntimeCommon.h"
#include <cassert>
#include <ctime>
#include <iomanip>
#include <iostream>
#include <ostream>
#include <sstream>
#include <string>
#include "macros.h"
using Severity = nvinfer1::ILogger::Severity;
class LogStreamConsumerBuffer : public std::stringbuf
{
public:
LogStreamConsumerBuffer(std::ostream& stream, const std::string& prefix, bool shouldLog)
: mOutput(stream)
, mPrefix(prefix)
, mShouldLog(shouldLog)
{
}
LogStreamConsumerBuffer(LogStreamConsumerBuffer&& other)
: mOutput(other.mOutput)
{
}
~LogStreamConsumerBuffer()
{
// std::streambuf::pbase() gives a pointer to the beginning of the buffered part of the output sequence
// std::streambuf::pptr() gives a pointer to the current position of the output sequence
// if the pointer to the beginning is not equal to the pointer to the current position,
// call putOutput() to log the output to the stream
if (pbase() != pptr())
{
putOutput();
}
}
// synchronizes the stream buffer and returns 0 on success
// synchronizing the stream buffer consists of inserting the buffer contents into the stream,
// resetting the buffer and flushing the stream
virtual int sync()
{
putOutput();
return 0;
}
void putOutput()
{
if (mShouldLog)
{
// prepend timestamp
std::time_t timestamp = std::time(nullptr);
tm* tm_local = std::localtime(&timestamp);
std::cout << "[";
std::cout << std::setw(2) << std::setfill('0') << 1 + tm_local->tm_mon << "/";
std::cout << std::setw(2) << std::setfill('0') << tm_local->tm_mday << "/";
std::cout << std::setw(4) << std::setfill('0') << 1900 + tm_local->tm_year << "-";
std::cout << std::setw(2) << std::setfill('0') << tm_local->tm_hour << ":";
std::cout << std::setw(2) << std::setfill('0') << tm_local->tm_min << ":";
std::cout << std::setw(2) << std::setfill('0') << tm_local->tm_sec << "] ";
// std::stringbuf::str() gets the string contents of the buffer
// insert the buffer contents pre-appended by the appropriate prefix into the stream
mOutput << mPrefix << str();
// set the buffer to empty
str("");
// flush the stream
mOutput.flush();
}
}
void setShouldLog(bool shouldLog)
{
mShouldLog = shouldLog;
}
private:
std::ostream& mOutput;
std::string mPrefix;
bool mShouldLog;
};
//!
//! \class LogStreamConsumerBase
//! \brief Convenience object used to initialize LogStreamConsumerBuffer before std::ostream in LogStreamConsumer
//!
class LogStreamConsumerBase
{
public:
LogStreamConsumerBase(std::ostream& stream, const std::string& prefix, bool shouldLog)
: mBuffer(stream, prefix, shouldLog)
{
}
protected:
LogStreamConsumerBuffer mBuffer;
};
//!
//! \class LogStreamConsumer
//! \brief Convenience object used to facilitate use of C++ stream syntax when logging messages.
//! Order of base classes is LogStreamConsumerBase and then std::ostream.
//! This is because the LogStreamConsumerBase class is used to initialize the LogStreamConsumerBuffer member field
//! in LogStreamConsumer and then the address of the buffer is passed to std::ostream.
//! This is necessary to prevent the address of an uninitialized buffer from being passed to std::ostream.
//! Please do not change the order of the parent classes.
//!
class LogStreamConsumer : protected LogStreamConsumerBase, public std::ostream
{
public:
//! \brief Creates a LogStreamConsumer which logs messages with level severity.
//! Reportable severity determines if the messages are severe enough to be logged.
LogStreamConsumer(Severity reportableSeverity, Severity severity)
: LogStreamConsumerBase(severityOstream(severity), severityPrefix(severity), severity <= reportableSeverity)
, std::ostream(&mBuffer) // links the stream buffer with the stream
, mShouldLog(severity <= reportableSeverity)
, mSeverity(severity)
{
}
LogStreamConsumer(LogStreamConsumer&& other)
: LogStreamConsumerBase(severityOstream(other.mSeverity), severityPrefix(other.mSeverity), other.mShouldLog)
, std::ostream(&mBuffer) // links the stream buffer with the stream
, mShouldLog(other.mShouldLog)
, mSeverity(other.mSeverity)
{
}
void setReportableSeverity(Severity reportableSeverity)
{
mShouldLog = mSeverity <= reportableSeverity;
mBuffer.setShouldLog(mShouldLog);
}
private:
static std::ostream& severityOstream(Severity severity)
{
return severity >= Severity::kINFO ? std::cout : std::cerr;
}
static std::string severityPrefix(Severity severity)
{
switch (severity)
{
case Severity::kINTERNAL_ERROR: return "[F] ";
case Severity::kERROR: return "[E] ";
case Severity::kWARNING: return "[W] ";
case Severity::kINFO: return "[I] ";
case Severity::kVERBOSE: return "[V] ";
default: assert(0); return "";
}
}
bool mShouldLog;
Severity mSeverity;
};
//! \class Logger
//!
//! \brief Class which manages logging of TensorRT tools and samples
//!
//! \details This class provides a common interface for TensorRT tools and samples to log information to the console,
//! and supports logging two types of messages:
//!
//! - Debugging messages with an associated severity (info, warning, error, or internal error/fatal)
//! - Test pass/fail messages
//!
//! The advantage of having all samples use this class for logging as opposed to emitting directly to stdout/stderr is
//! that the logic for controlling the verbosity and formatting of sample output is centralized in one location.
//!
//! In the future, this class could be extended to support dumping test results to a file in some standard format
//! (for example, JUnit XML), and providing additional metadata (e.g. timing the duration of a test run).
//!
//! TODO: For backwards compatibility with existing samples, this class inherits directly from the nvinfer1::ILogger
//! interface, which is problematic since there isn't a clean separation between messages coming from the TensorRT
//! library and messages coming from the sample.
//!
//! In the future (once all samples are updated to use Logger::getTRTLogger() to access the ILogger) we can refactor the
//! class to eliminate the inheritance and instead make the nvinfer1::ILogger implementation a member of the Logger
//! object.
class Logger : public nvinfer1::ILogger
{
public:
Logger(Severity severity = Severity::kWARNING)
: mReportableSeverity(severity)
{
}
//!
//! \enum TestResult
//! \brief Represents the state of a given test
//!
enum class TestResult
{
kRUNNING, //!< The test is running
kPASSED, //!< The test passed
kFAILED, //!< The test failed
kWAIVED //!< The test was waived
};
//!
//! \brief Forward-compatible method for retrieving the nvinfer::ILogger associated with this Logger
//! \return The nvinfer1::ILogger associated with this Logger
//!
//! TODO Once all samples are updated to use this method to register the logger with TensorRT,
//! we can eliminate the inheritance of Logger from ILogger
//!
nvinfer1::ILogger& getTRTLogger()
{
return *this;
}
//!
//! \brief Implementation of the nvinfer1::ILogger::log() virtual method
//!
//! Note samples should not be calling this function directly; it will eventually go away once we eliminate the
//! inheritance from nvinfer1::ILogger
//!
void log(Severity severity, const char* msg) TRT_NOEXCEPT override
{
LogStreamConsumer(mReportableSeverity, severity) << "[TRT] " << std::string(msg) << std::endl;
}
//!
//! \brief Method for controlling the verbosity of logging output
//!
//! \param severity The logger will only emit messages that have severity of this level or higher.
//!
void setReportableSeverity(Severity severity)
{
mReportableSeverity = severity;
}
//!
//! \brief Opaque handle that holds logging information for a particular test
//!
//! This object is an opaque handle to information used by the Logger to print test results.
//! The sample must call Logger::defineTest() in order to obtain a TestAtom that can be used
//! with Logger::reportTest{Start,End}().
//!
class TestAtom
{
public:
TestAtom(TestAtom&&) = default;
private:
friend class Logger;
TestAtom(bool started, const std::string& name, const std::string& cmdline)
: mStarted(started)
, mName(name)
, mCmdline(cmdline)
{
}
bool mStarted;
std::string mName;
std::string mCmdline;
};
//!
//! \brief Define a test for logging
//!
//! \param[in] name The name of the test. This should be a string starting with
//! "TensorRT" and containing dot-separated strings containing
//! the characters [A-Za-z0-9_].
//! For example, "TensorRT.sample_googlenet"
//! \param[in] cmdline The command line used to reproduce the test
//
//! \return a TestAtom that can be used in Logger::reportTest{Start,End}().
//!
static TestAtom defineTest(const std::string& name, const std::string& cmdline)
{
return TestAtom(false, name, cmdline);
}
//!
//! \brief A convenience overloaded version of defineTest() that accepts an array of command-line arguments
//! as input
//!
//! \param[in] name The name of the test
//! \param[in] argc The number of command-line arguments
//! \param[in] argv The array of command-line arguments (given as C strings)
//!
//! \return a TestAtom that can be used in Logger::reportTest{Start,End}().
static TestAtom defineTest(const std::string& name, int argc, char const* const* argv)
{
auto cmdline = genCmdlineString(argc, argv);
return defineTest(name, cmdline);
}
//!
//! \brief Report that a test has started.
//!
//! \pre reportTestStart() has not been called yet for the given testAtom
//!
//! \param[in] testAtom The handle to the test that has started
//!
static void reportTestStart(TestAtom& testAtom)
{
reportTestResult(testAtom, TestResult::kRUNNING);
assert(!testAtom.mStarted);
testAtom.mStarted = true;
}
//!
//! \brief Report that a test has ended.
//!
//! \pre reportTestStart() has been called for the given testAtom
//!
//! \param[in] testAtom The handle to the test that has ended
//! \param[in] result The result of the test. Should be one of TestResult::kPASSED,
//! TestResult::kFAILED, TestResult::kWAIVED
//!
static void reportTestEnd(const TestAtom& testAtom, TestResult result)
{
assert(result != TestResult::kRUNNING);
assert(testAtom.mStarted);
reportTestResult(testAtom, result);
}
static int reportPass(const TestAtom& testAtom)
{
reportTestEnd(testAtom, TestResult::kPASSED);
return EXIT_SUCCESS;
}
static int reportFail(const TestAtom& testAtom)
{
reportTestEnd(testAtom, TestResult::kFAILED);
return EXIT_FAILURE;
}
static int reportWaive(const TestAtom& testAtom)
{
reportTestEnd(testAtom, TestResult::kWAIVED);
return EXIT_SUCCESS;
}
static int reportTest(const TestAtom& testAtom, bool pass)
{
return pass ? reportPass(testAtom) : reportFail(testAtom);
}
Severity getReportableSeverity() const
{
return mReportableSeverity;
}
private:
//!
//! \brief returns an appropriate string for prefixing a log message with the given severity
//!
static const char* severityPrefix(Severity severity)
{
switch (severity)
{
case Severity::kINTERNAL_ERROR: return "[F] ";
case Severity::kERROR: return "[E] ";
case Severity::kWARNING: return "[W] ";
case Severity::kINFO: return "[I] ";
case Severity::kVERBOSE: return "[V] ";
default: assert(0); return "";
}
}
//!
//! \brief returns an appropriate string for prefixing a test result message with the given result
//!
static const char* testResultString(TestResult result)
{
switch (result)
{
case TestResult::kRUNNING: return "RUNNING";
case TestResult::kPASSED: return "PASSED";
case TestResult::kFAILED: return "FAILED";
case TestResult::kWAIVED: return "WAIVED";
default: assert(0); return "";
}
}
//!
//! \brief returns an appropriate output stream (cout or cerr) to use with the given severity
//!
static std::ostream& severityOstream(Severity severity)
{
return severity >= Severity::kINFO ? std::cout : std::cerr;
}
//!
//! \brief method that implements logging test results
//!
static void reportTestResult(const TestAtom& testAtom, TestResult result)
{
severityOstream(Severity::kINFO) << "&&&& " << testResultString(result) << " " << testAtom.mName << " # "
<< testAtom.mCmdline << std::endl;
}
//!
//! \brief generate a command line string from the given (argc, argv) values
//!
static std::string genCmdlineString(int argc, char const* const* argv)
{
std::stringstream ss;
for (int i = 0; i < argc; i++)
{
if (i > 0)
ss << " ";
ss << argv[i];
}
return ss.str();
}
Severity mReportableSeverity;
};
namespace
{
//!
//! \brief produces a LogStreamConsumer object that can be used to log messages of severity kVERBOSE
//!
//! Example usage:
//!
//! LOG_VERBOSE(logger) << "hello world" << std::endl;
//!
inline LogStreamConsumer LOG_VERBOSE(const Logger& logger)
{
return LogStreamConsumer(logger.getReportableSeverity(), Severity::kVERBOSE);
}
//!
//! \brief produces a LogStreamConsumer object that can be used to log messages of severity kINFO
//!
//! Example usage:
//!
//! LOG_INFO(logger) << "hello world" << std::endl;
//!
inline LogStreamConsumer LOG_INFO(const Logger& logger)
{
return LogStreamConsumer(logger.getReportableSeverity(), Severity::kINFO);
}
//!
//! \brief produces a LogStreamConsumer object that can be used to log messages of severity kWARNING
//!
//! Example usage:
//!
//! LOG_WARN(logger) << "hello world" << std::endl;
//!
inline LogStreamConsumer LOG_WARN(const Logger& logger)
{
return LogStreamConsumer(logger.getReportableSeverity(), Severity::kWARNING);
}
//!
//! \brief produces a LogStreamConsumer object that can be used to log messages of severity kERROR
//!
//! Example usage:
//!
//! LOG_ERROR(logger) << "hello world" << std::endl;
//!
inline LogStreamConsumer LOG_ERROR(const Logger& logger)
{
return LogStreamConsumer(logger.getReportableSeverity(), Severity::kERROR);
}
//!
//! \brief produces a LogStreamConsumer object that can be used to log messages of severity kINTERNAL_ERROR
// ("fatal" severity)
//!
//! Example usage:
//!
//! LOG_FATAL(logger) << "hello world" << std::endl;
//!
inline LogStreamConsumer LOG_FATAL(const Logger& logger)
{
return LogStreamConsumer(logger.getReportableSeverity(), Severity::kINTERNAL_ERROR);
}
} // anonymous namespace
#endif // TENSORRT_LOGGING_H
#ifndef __MACROS_H
#define __MACROS_H
#ifdef API_EXPORTS
#if defined(_MSC_VER)
#define API __declspec(dllexport)
#else
#define API __attribute__((visibility("default")))
#endif
#else
#if defined(_MSC_VER)
#define API __declspec(dllimport)
#else
#define API
#endif
#endif // API_EXPORTS
#if NV_TENSORRT_MAJOR >= 8
#define TRT_NOEXCEPT noexcept
#define TRT_CONST_ENQUEUE const
#else
#define TRT_NOEXCEPT
#define TRT_CONST_ENQUEUE
#endif
#endif // __MACROS_H
#include "preprocess.h"
#include <opencv2/opencv.hpp>
__global__ void warpaffine_kernel(
uint8_t* src, int src_line_size, int src_width,
int src_height, float* dst, int dst_width,
int dst_height, uint8_t const_value_st,
AffineMatrix d2s, int edge) {
int position = blockDim.x * blockIdx.x + threadIdx.x;
if (position >= edge) return;
float m_x1 = d2s.value[0];
float m_y1 = d2s.value[1];
float m_z1 = d2s.value[2];
float m_x2 = d2s.value[3];
float m_y2 = d2s.value[4];
float m_z2 = d2s.value[5];
int dx = position % dst_width;
int dy = position / dst_width;
float src_x = m_x1 * dx + m_y1 * dy + m_z1 + 0.5f;
float src_y = m_x2 * dx + m_y2 * dy + m_z2 + 0.5f;
float c0, c1, c2;
if (src_x <= -1 || src_x >= src_width || src_y <= -1 || src_y >= src_height) {
// out of range
c0 = const_value_st;
c1 = const_value_st;
c2 = const_value_st;
} else {
int y_low = floorf(src_y);
int x_low = floorf(src_x);
int y_high = y_low + 1;
int x_high = x_low + 1;
uint8_t const_value[] = {const_value_st, const_value_st, const_value_st};
float ly = src_y - y_low;
float lx = src_x - x_low;
float hy = 1 - ly;
float hx = 1 - lx;
float w1 = hy * hx, w2 = hy * lx, w3 = ly * hx, w4 = ly * lx;
uint8_t* v1 = const_value;
uint8_t* v2 = const_value;
uint8_t* v3 = const_value;
uint8_t* v4 = const_value;
if (y_low >= 0) {
if (x_low >= 0)
v1 = src + y_low * src_line_size + x_low * 3;
if (x_high < src_width)
v2 = src + y_low * src_line_size + x_high * 3;
}
if (y_high < src_height) {
if (x_low >= 0)
v3 = src + y_high * src_line_size + x_low * 3;
if (x_high < src_width)
v4 = src + y_high * src_line_size + x_high * 3;
}
c0 = w1 * v1[0] + w2 * v2[0] + w3 * v3[0] + w4 * v4[0];
c1 = w1 * v1[1] + w2 * v2[1] + w3 * v3[1] + w4 * v4[1];
c2 = w1 * v1[2] + w2 * v2[2] + w3 * v3[2] + w4 * v4[2];
}
//bgr to rgb
float t = c2;
c2 = c0;
c0 = t;
//normalization
c0 = c0 / 255.0f;
c1 = c1 / 255.0f;
c2 = c2 / 255.0f;
//rgbrgbrgb to rrrgggbbb
int area = dst_width * dst_height;
float* pdst_c0 = dst + dy * dst_width + dx;
float* pdst_c1 = pdst_c0 + area;
float* pdst_c2 = pdst_c1 + area;
*pdst_c0 = c0;
*pdst_c1 = c1;
*pdst_c2 = c2;
}
void preprocess_kernel_img(
uint8_t* src, int src_width, int src_height,
float* dst, int dst_width, int dst_height,
cudaStream_t stream) {
AffineMatrix s2d,d2s;
float scale = std::min(dst_height / (float)src_height, dst_width / (float)src_width);
s2d.value[0] = scale;
s2d.value[1] = 0;
s2d.value[2] = -scale * src_width * 0.5 + dst_width * 0.5;
s2d.value[3] = 0;
s2d.value[4] = scale;
s2d.value[5] = -scale * src_height * 0.5 + dst_height * 0.5;
cv::Mat m2x3_s2d(2, 3, CV_32F, s2d.value);
cv::Mat m2x3_d2s(2, 3, CV_32F, d2s.value);
cv::invertAffineTransform(m2x3_s2d, m2x3_d2s);
memcpy(d2s.value, m2x3_d2s.ptr<float>(0), sizeof(d2s.value));
int jobs = dst_height * dst_width;
int threads = 256;
int blocks = ceil(jobs / (float)threads);
warpaffine_kernel<<<blocks, threads, 0, stream>>>(
src, src_width*3, src_width,
src_height, dst, dst_width,
dst_height, 128, d2s, jobs);
}
#ifndef __PREPROCESS_H
#define __PREPROCESS_H
#include <cuda_runtime.h>
#include <cstdint>
struct AffineMatrix{
float value[6];
};
void preprocess_kernel_img(uint8_t* src, int src_width, int src_height,
float* dst, int dst_width, int dst_height,
cudaStream_t stream);
#endif // __PREPROCESS_H
#ifndef TRTX_YOLOV5_UTILS_H_
#define TRTX_YOLOV5_UTILS_H_
#include <dirent.h>
#include <opencv2/opencv.hpp>
static inline cv::Mat preprocess_img(cv::Mat& img, int input_w, int input_h) {
int w, h, x, y;
float r_w = input_w / (img.cols*1.0);
float r_h = input_h / (img.rows*1.0);
if (r_h > r_w) {
w = input_w;
h = r_w * img.rows;
x = 0;
y = (input_h - h) / 2;
} else {
w = r_h * img.cols;
h = input_h;
x = (input_w - w) / 2;
y = 0;
}
cv::Mat re(h, w, CV_8UC3);
cv::resize(img, re, re.size(), 0, 0, cv::INTER_LINEAR);
cv::Mat out(input_h, input_w, CV_8UC3, cv::Scalar(128, 128, 128));
re.copyTo(out(cv::Rect(x, y, re.cols, re.rows)));
return out;
}
static inline int read_files_in_dir(const char *p_dir_name, std::vector<std::string> &file_names) {
DIR *p_dir = opendir(p_dir_name);
if (p_dir == nullptr) {
return -1;
}
struct dirent* p_file = nullptr;
while ((p_file = readdir(p_dir)) != nullptr) {
if (strcmp(p_file->d_name, ".") != 0 &&
strcmp(p_file->d_name, "..") != 0) {
//std::string cur_file_name(p_dir_name);
//cur_file_name += "/";
//cur_file_name += p_file->d_name;
std::string cur_file_name(p_file->d_name);
file_names.push_back(cur_file_name);
}
}
closedir(p_dir);
return 0;
}
#endif // TRTX_YOLOV5_UTILS_H_
#include <assert.h>
#include <vector>
#include <iostream>
#include "yololayer.h"
#include "cuda_utils.h"
namespace Tn
{
template<typename T>
void write(char*& buffer, const T& val)
{
*reinterpret_cast<T*>(buffer) = val;
buffer += sizeof(T);
}
template<typename T>
void read(const char*& buffer, T& val)
{
val = *reinterpret_cast<const T*>(buffer);
buffer += sizeof(T);
}
}
using namespace Yolo;
namespace nvinfer1
{
YoloLayerPlugin::YoloLayerPlugin(int classCount, int netWidth, int netHeight, int maxOut, const std::vector<Yolo::YoloKernel>& vYoloKernel)
{
mClassCount = classCount;
mYoloV5NetWidth = netWidth;
mYoloV5NetHeight = netHeight;
mMaxOutObject = maxOut;
mYoloKernel = vYoloKernel;
mKernelCount = vYoloKernel.size();
CUDA_CHECK(cudaMallocHost(&mAnchor, mKernelCount * sizeof(void*)));
size_t AnchorLen = sizeof(float)* CHECK_COUNT * 2;
for (int ii = 0; ii < mKernelCount; ii++)
{
CUDA_CHECK(cudaMalloc(&mAnchor[ii], AnchorLen));
const auto& yolo = mYoloKernel[ii];
CUDA_CHECK(cudaMemcpy(mAnchor[ii], yolo.anchors, AnchorLen, cudaMemcpyHostToDevice));
}
}
YoloLayerPlugin::~YoloLayerPlugin()
{
for (int ii = 0; ii < mKernelCount; ii++)
{
CUDA_CHECK(cudaFree(mAnchor[ii]));
}
CUDA_CHECK(cudaFreeHost(mAnchor));
}
// create the plugin at runtime from a byte stream
YoloLayerPlugin::YoloLayerPlugin(const void* data, size_t length)
{
using namespace Tn;
const char *d = reinterpret_cast<const char *>(data), *a = d;
read(d, mClassCount);
read(d, mThreadCount);
read(d, mKernelCount);
read(d, mYoloV5NetWidth);
read(d, mYoloV5NetHeight);
read(d, mMaxOutObject);
mYoloKernel.resize(mKernelCount);
auto kernelSize = mKernelCount * sizeof(YoloKernel);
memcpy(mYoloKernel.data(), d, kernelSize);
d += kernelSize;
CUDA_CHECK(cudaMallocHost(&mAnchor, mKernelCount * sizeof(void*)));
size_t AnchorLen = sizeof(float)* CHECK_COUNT * 2;
for (int ii = 0; ii < mKernelCount; ii++)
{
CUDA_CHECK(cudaMalloc(&mAnchor[ii], AnchorLen));
const auto& yolo = mYoloKernel[ii];
CUDA_CHECK(cudaMemcpy(mAnchor[ii], yolo.anchors, AnchorLen, cudaMemcpyHostToDevice));
}
assert(d == a + length);
}
void YoloLayerPlugin::serialize(void* buffer) const TRT_NOEXCEPT
{
using namespace Tn;
char* d = static_cast<char*>(buffer), *a = d;
write(d, mClassCount);
write(d, mThreadCount);
write(d, mKernelCount);
write(d, mYoloV5NetWidth);
write(d, mYoloV5NetHeight);
write(d, mMaxOutObject);
auto kernelSize = mKernelCount * sizeof(YoloKernel);
memcpy(d, mYoloKernel.data(), kernelSize);
d += kernelSize;
assert(d == a + getSerializationSize());
}
size_t YoloLayerPlugin::getSerializationSize() const TRT_NOEXCEPT
{
return sizeof(mClassCount) + sizeof(mThreadCount) + sizeof(mKernelCount) + sizeof(Yolo::YoloKernel) * mYoloKernel.size() + sizeof(mYoloV5NetWidth) + sizeof(mYoloV5NetHeight) + sizeof(mMaxOutObject);
}
int YoloLayerPlugin::initialize() TRT_NOEXCEPT
{
return 0;
}
Dims YoloLayerPlugin::getOutputDimensions(int index, const Dims* inputs, int nbInputDims) TRT_NOEXCEPT
{
//output the result to channel
int totalsize = mMaxOutObject * sizeof(Detection) / sizeof(float);
return Dims3(totalsize + 1, 1, 1);
}
// Set plugin namespace
void YoloLayerPlugin::setPluginNamespace(const char* pluginNamespace) TRT_NOEXCEPT
{
mPluginNamespace = pluginNamespace;
}
const char* YoloLayerPlugin::getPluginNamespace() const TRT_NOEXCEPT
{
return mPluginNamespace;
}
// Return the DataType of the plugin output at the requested index
DataType YoloLayerPlugin::getOutputDataType(int index, const nvinfer1::DataType* inputTypes, int nbInputs) const TRT_NOEXCEPT
{
return DataType::kFLOAT;
}
// Return true if output tensor is broadcast across a batch.
bool YoloLayerPlugin::isOutputBroadcastAcrossBatch(int outputIndex, const bool* inputIsBroadcasted, int nbInputs) const TRT_NOEXCEPT
{
return false;
}
// Return true if plugin can use input that is broadcast across batch without replication.
bool YoloLayerPlugin::canBroadcastInputAcrossBatch(int inputIndex) const TRT_NOEXCEPT
{
return false;
}
void YoloLayerPlugin::configurePlugin(const PluginTensorDesc* in, int nbInput, const PluginTensorDesc* out, int nbOutput) TRT_NOEXCEPT
{
}
// Attach the plugin object to an execution context and grant the plugin the access to some context resource.
void YoloLayerPlugin::attachToContext(cudnnContext* cudnnContext, cublasContext* cublasContext, IGpuAllocator* gpuAllocator) TRT_NOEXCEPT
{
}
// Detach the plugin object from its execution context.
void YoloLayerPlugin::detachFromContext() TRT_NOEXCEPT {}
const char* YoloLayerPlugin::getPluginType() const TRT_NOEXCEPT
{
return "YoloLayer_TRT";
}
const char* YoloLayerPlugin::getPluginVersion() const TRT_NOEXCEPT
{
return "1";
}
void YoloLayerPlugin::destroy() TRT_NOEXCEPT
{
delete this;
}
// Clone the plugin
IPluginV2IOExt* YoloLayerPlugin::clone() const TRT_NOEXCEPT
{
YoloLayerPlugin* p = new YoloLayerPlugin(mClassCount, mYoloV5NetWidth, mYoloV5NetHeight, mMaxOutObject, mYoloKernel);
p->setPluginNamespace(mPluginNamespace);
return p;
}
__device__ float Logist(float data) { return 1.0f / (1.0f + expf(-data)); };
__global__ void CalDetection(const float *input, float *output, int noElements,
const int netwidth, const int netheight, int maxoutobject, int yoloWidth, int yoloHeight, const float anchors[CHECK_COUNT * 2], int classes, int outputElem)
{
int idx = threadIdx.x + blockDim.x * blockIdx.x;
if (idx >= noElements) return;
int total_grid = yoloWidth * yoloHeight;
int bnIdx = idx / total_grid;
idx = idx - total_grid * bnIdx;
int info_len_i = 5 + classes;
const float* curInput = input + bnIdx * (info_len_i * total_grid * CHECK_COUNT);
for (int k = 0; k < CHECK_COUNT; ++k) {
float box_prob = Logist(curInput[idx + k * info_len_i * total_grid + 4 * total_grid]);
if (box_prob < IGNORE_THRESH) continue;
int class_id = 0;
float max_cls_prob = 0.0;
for (int i = 5; i < info_len_i; ++i) {
float p = Logist(curInput[idx + k * info_len_i * total_grid + i * total_grid]);
if (p > max_cls_prob) {
max_cls_prob = p;
class_id = i - 5;
}
}
float *res_count = output + bnIdx * outputElem;
int count = (int)atomicAdd(res_count, 1);
if (count >= maxoutobject) return;
char *data = (char*)res_count + sizeof(float) + count * sizeof(Detection);
Detection *det = (Detection*)(data);
int row = idx / yoloWidth;
int col = idx % yoloWidth;
//Location
// pytorch:
// y = x[i].sigmoid()
// y[..., 0:2] = (y[..., 0:2] * 2. - 0.5 + self.grid[i].to(x[i].device)) * self.stride[i] # xy
// y[..., 2:4] = (y[..., 2:4] * 2) ** 2 * self.anchor_grid[i] # wh
// X: (sigmoid(tx) + cx)/FeaturemapW * netwidth
det->bbox[0] = (col - 0.5f + 2.0f * Logist(curInput[idx + k * info_len_i * total_grid + 0 * total_grid])) * netwidth / yoloWidth;
det->bbox[1] = (row - 0.5f + 2.0f * Logist(curInput[idx + k * info_len_i * total_grid + 1 * total_grid])) * netheight / yoloHeight;
// W: (Pw * e^tw) / FeaturemapW * netwidth
// v5: https://github.com/ultralytics/yolov5/issues/471
det->bbox[2] = 2.0f * Logist(curInput[idx + k * info_len_i * total_grid + 2 * total_grid]);
det->bbox[2] = det->bbox[2] * det->bbox[2] * anchors[2 * k];
det->bbox[3] = 2.0f * Logist(curInput[idx + k * info_len_i * total_grid + 3 * total_grid]);
det->bbox[3] = det->bbox[3] * det->bbox[3] * anchors[2 * k + 1];
det->conf = box_prob * max_cls_prob;
det->class_id = class_id;
}
}
void YoloLayerPlugin::forwardGpu(const float* const* inputs, float *output, cudaStream_t stream, int batchSize)
{
int outputElem = 1 + mMaxOutObject * sizeof(Detection) / sizeof(float);
for (int idx = 0; idx < batchSize; ++idx) {
CUDA_CHECK(cudaMemsetAsync(output + idx * outputElem, 0, sizeof(float), stream));
}
int numElem = 0;
for (unsigned int i = 0; i < mYoloKernel.size(); ++i) {
const auto& yolo = mYoloKernel[i];
numElem = yolo.width * yolo.height * batchSize;
if (numElem < mThreadCount) mThreadCount = numElem;
//printf("Net: %d %d \n", mYoloV5NetWidth, mYoloV5NetHeight);
CalDetection << < (numElem + mThreadCount - 1) / mThreadCount, mThreadCount, 0, stream >> >
(inputs[i], output, numElem, mYoloV5NetWidth, mYoloV5NetHeight, mMaxOutObject, yolo.width, yolo.height, (float*)mAnchor[i], mClassCount, outputElem);
}
}
int YoloLayerPlugin::enqueue(int batchSize, const void* const* inputs, void* TRT_CONST_ENQUEUE* outputs, void* workspace, cudaStream_t stream) TRT_NOEXCEPT
{
forwardGpu((const float* const*)inputs, (float*)outputs[0], stream, batchSize);
return 0;
}
PluginFieldCollection YoloPluginCreator::mFC{};
std::vector<PluginField> YoloPluginCreator::mPluginAttributes;
YoloPluginCreator::YoloPluginCreator()
{
mPluginAttributes.clear();
mFC.nbFields = mPluginAttributes.size();
mFC.fields = mPluginAttributes.data();
}
const char* YoloPluginCreator::getPluginName() const TRT_NOEXCEPT
{
return "YoloLayer_TRT";
}
const char* YoloPluginCreator::getPluginVersion() const TRT_NOEXCEPT
{
return "1";
}
const PluginFieldCollection* YoloPluginCreator::getFieldNames() TRT_NOEXCEPT
{
return &mFC;
}
IPluginV2IOExt* YoloPluginCreator::createPlugin(const char* name, const PluginFieldCollection* fc) TRT_NOEXCEPT
{
assert(fc->nbFields == 2);
assert(strcmp(fc->fields[0].name, "netinfo") == 0);
assert(strcmp(fc->fields[1].name, "kernels") == 0);
int *p_netinfo = (int*)(fc->fields[0].data);
int class_count = p_netinfo[0];
int input_w = p_netinfo[1];
int input_h = p_netinfo[2];
int max_output_object_count = p_netinfo[3];
std::vector<Yolo::YoloKernel> kernels(fc->fields[1].length);
memcpy(&kernels[0], fc->fields[1].data, kernels.size() * sizeof(Yolo::YoloKernel));
YoloLayerPlugin* obj = new YoloLayerPlugin(class_count, input_w, input_h, max_output_object_count, kernels);
obj->setPluginNamespace(mNamespace.c_str());
return obj;
}
IPluginV2IOExt* YoloPluginCreator::deserializePlugin(const char* name, const void* serialData, size_t serialLength) TRT_NOEXCEPT
{
// This object will be deleted when the network is destroyed, which will
// call YoloLayerPlugin::destroy()
YoloLayerPlugin* obj = new YoloLayerPlugin(serialData, serialLength);
obj->setPluginNamespace(mNamespace.c_str());
return obj;
}
}
#ifndef _YOLO_LAYER_H
#define _YOLO_LAYER_H
#include <vector>
#include <string>
#include <NvInfer.h>
#include "macros.h"
namespace Yolo
{
static constexpr int CHECK_COUNT = 3;
static constexpr float IGNORE_THRESH = 0.1f;
struct YoloKernel
{
int width;
int height;
float anchors[CHECK_COUNT * 2];
};
static constexpr int MAX_OUTPUT_BBOX_COUNT = 1000;
static constexpr int CLASS_NUM = 80;
static constexpr int INPUT_H = 640; // yolov5's input height and width must be divisible by 32.
static constexpr int INPUT_W = 640;
static constexpr int LOCATIONS = 4;
struct alignas(float) Detection {
//center_x center_y w h
float bbox[LOCATIONS];
float conf; // bbox_conf * cls_conf
float class_id;
};
}
namespace nvinfer1
{
class API YoloLayerPlugin : public IPluginV2IOExt
{
public:
YoloLayerPlugin(int classCount, int netWidth, int netHeight, int maxOut, const std::vector<Yolo::YoloKernel>& vYoloKernel);
YoloLayerPlugin(const void* data, size_t length);
~YoloLayerPlugin();
int getNbOutputs() const TRT_NOEXCEPT override
{
return 1;
}
Dims getOutputDimensions(int index, const Dims* inputs, int nbInputDims) TRT_NOEXCEPT override;
int initialize() TRT_NOEXCEPT override;
virtual void terminate() TRT_NOEXCEPT override {};
virtual size_t getWorkspaceSize(int maxBatchSize) const TRT_NOEXCEPT override { return 0; }
virtual int enqueue(int batchSize, const void* const* inputs, void*TRT_CONST_ENQUEUE* outputs, void* workspace, cudaStream_t stream) TRT_NOEXCEPT override;
virtual size_t getSerializationSize() const TRT_NOEXCEPT override;
virtual void serialize(void* buffer) const TRT_NOEXCEPT override;
bool supportsFormatCombination(int pos, const PluginTensorDesc* inOut, int nbInputs, int nbOutputs) const TRT_NOEXCEPT override {
return inOut[pos].format == TensorFormat::kLINEAR && inOut[pos].type == DataType::kFLOAT;
}
const char* getPluginType() const TRT_NOEXCEPT override;
const char* getPluginVersion() const TRT_NOEXCEPT override;
void destroy() TRT_NOEXCEPT override;
IPluginV2IOExt* clone() const TRT_NOEXCEPT override;
void setPluginNamespace(const char* pluginNamespace) TRT_NOEXCEPT override;
const char* getPluginNamespace() const TRT_NOEXCEPT override;
DataType getOutputDataType(int index, const nvinfer1::DataType* inputTypes, int nbInputs) const TRT_NOEXCEPT override;
bool isOutputBroadcastAcrossBatch(int outputIndex, const bool* inputIsBroadcasted, int nbInputs) const TRT_NOEXCEPT override;
bool canBroadcastInputAcrossBatch(int inputIndex) const TRT_NOEXCEPT override;
void attachToContext(
cudnnContext* cudnnContext, cublasContext* cublasContext, IGpuAllocator* gpuAllocator) TRT_NOEXCEPT override;
void configurePlugin(const PluginTensorDesc* in, int nbInput, const PluginTensorDesc* out, int nbOutput) TRT_NOEXCEPT override;
void detachFromContext() TRT_NOEXCEPT override;
private:
void forwardGpu(const float* const* inputs, float *output, cudaStream_t stream, int batchSize = 1);
int mThreadCount = 256;
const char* mPluginNamespace;
int mKernelCount;
int mClassCount;
int mYoloV5NetWidth;
int mYoloV5NetHeight;
int mMaxOutObject;
std::vector<Yolo::YoloKernel> mYoloKernel;
void** mAnchor;
};
class API YoloPluginCreator : public IPluginCreator
{
public:
YoloPluginCreator();
~YoloPluginCreator() override = default;
const char* getPluginName() const TRT_NOEXCEPT override;
const char* getPluginVersion() const TRT_NOEXCEPT override;
const PluginFieldCollection* getFieldNames() TRT_NOEXCEPT override;
IPluginV2IOExt* createPlugin(const char* name, const PluginFieldCollection* fc) TRT_NOEXCEPT override;
IPluginV2IOExt* deserializePlugin(const char* name, const void* serialData, size_t serialLength) TRT_NOEXCEPT override;
void setPluginNamespace(const char* libNamespace) TRT_NOEXCEPT override
{
mNamespace = libNamespace;
}
const char* getPluginNamespace() const TRT_NOEXCEPT override
{
return mNamespace.c_str();
}
private:
std::string mNamespace;
static PluginFieldCollection mFC;
static std::vector<PluginField> mPluginAttributes;
};
REGISTER_TENSORRT_PLUGIN(YoloPluginCreator);
};
#endif // _YOLO_LAYER_H
#include <iostream>
#include <chrono>
#include <cmath>
#include "cuda_utils.h"
#include "logging.h"
#include "common.hpp"
#include "utils.h"
#include "calibrator.h"
#include "preprocess.h"
#define USE_FP16 // set USE_INT8 or USE_FP16 or USE_FP32
#define DEVICE 0 // GPU id
#define NMS_THRESH 0.4
#define CONF_THRESH 0.5
#define BATCH_SIZE 1
#define MAX_IMAGE_INPUT_SIZE_THRESH 3000 * 3000 // ensure it exceed the maximum size in the input images !
// stuff we know about the network and the input/output blobs
static const int INPUT_H = Yolo::INPUT_H;
static const int INPUT_W = Yolo::INPUT_W;
static const int CLASS_NUM = Yolo::CLASS_NUM;
static const int OUTPUT_SIZE = Yolo::MAX_OUTPUT_BBOX_COUNT * sizeof(Yolo::Detection) / sizeof(float) + 1; // we assume the yololayer outputs no more than MAX_OUTPUT_BBOX_COUNT boxes that conf >= 0.1
const char* INPUT_BLOB_NAME = "data";
const char* OUTPUT_BLOB_NAME = "prob";
static Logger gLogger;
static int get_width(int x, float gw, int divisor = 8) {
return int(ceil((x * gw) / divisor)) * divisor;
}
static int get_depth(int x, float gd) {
if (x == 1) return 1;
int r = round(x * gd);
if (x * gd - int(x * gd) == 0.5 && (int(x * gd) % 2) == 0) {
--r;
}
return std::max<int>(r, 1);
}
ICudaEngine* build_engine(unsigned int maxBatchSize, IBuilder* builder, IBuilderConfig* config, DataType dt, float& gd, float& gw, std::string& wts_name) {
INetworkDefinition* network = builder->createNetworkV2(0U);
// Create input tensor of shape {3, INPUT_H, INPUT_W} with name INPUT_BLOB_NAME
ITensor* data = network->addInput(INPUT_BLOB_NAME, dt, Dims3{ 3, INPUT_H, INPUT_W });
assert(data);
std::map<std::string, Weights> weightMap = loadWeights(wts_name);
/* ------ yolov5 backbone------ */
auto conv0 = convBlock(network, weightMap, *data, get_width(64, gw), 6, 2, 1, "model.0");
assert(conv0);
auto conv1 = convBlock(network, weightMap, *conv0->getOutput(0), get_width(128, gw), 3, 2, 1, "model.1");
auto bottleneck_CSP2 = C3(network, weightMap, *conv1->getOutput(0), get_width(128, gw), get_width(128, gw), get_depth(3, gd), true, 1, 0.5, "model.2");
auto conv3 = convBlock(network, weightMap, *bottleneck_CSP2->getOutput(0), get_width(256, gw), 3, 2, 1, "model.3");
auto bottleneck_csp4 = C3(network, weightMap, *conv3->getOutput(0), get_width(256, gw), get_width(256, gw), get_depth(6, gd), true, 1, 0.5, "model.4");
auto conv5 = convBlock(network, weightMap, *bottleneck_csp4->getOutput(0), get_width(512, gw), 3, 2, 1, "model.5");
auto bottleneck_csp6 = C3(network, weightMap, *conv5->getOutput(0), get_width(512, gw), get_width(512, gw), get_depth(9, gd), true, 1, 0.5, "model.6");
auto conv7 = convBlock(network, weightMap, *bottleneck_csp6->getOutput(0), get_width(1024, gw), 3, 2, 1, "model.7");
auto bottleneck_csp8 = C3(network, weightMap, *conv7->getOutput(0), get_width(1024, gw), get_width(1024, gw), get_depth(3, gd), true, 1, 0.5, "model.8");
auto spp9 = SPPF(network, weightMap, *bottleneck_csp8->getOutput(0), get_width(1024, gw), get_width(1024, gw), 5, "model.9");
/* ------ yolov5 head ------ */
auto conv10 = convBlock(network, weightMap, *spp9->getOutput(0), get_width(512, gw), 1, 1, 1, "model.10");
auto upsample11 = network->addResize(*conv10->getOutput(0));
assert(upsample11);
upsample11->setResizeMode(ResizeMode::kNEAREST);
upsample11->setOutputDimensions(bottleneck_csp6->getOutput(0)->getDimensions());
ITensor* inputTensors12[] = { upsample11->getOutput(0), bottleneck_csp6->getOutput(0) };
auto cat12 = network->addConcatenation(inputTensors12, 2);
auto bottleneck_csp13 = C3(network, weightMap, *cat12->getOutput(0), get_width(1024, gw), get_width(512, gw), get_depth(3, gd), false, 1, 0.5, "model.13");
auto conv14 = convBlock(network, weightMap, *bottleneck_csp13->getOutput(0), get_width(256, gw), 1, 1, 1, "model.14");
auto upsample15 = network->addResize(*conv14->getOutput(0));
assert(upsample15);
upsample15->setResizeMode(ResizeMode::kNEAREST);
upsample15->setOutputDimensions(bottleneck_csp4->getOutput(0)->getDimensions());
ITensor* inputTensors16[] = { upsample15->getOutput(0), bottleneck_csp4->getOutput(0) };
auto cat16 = network->addConcatenation(inputTensors16, 2);
auto bottleneck_csp17 = C3(network, weightMap, *cat16->getOutput(0), get_width(512, gw), get_width(256, gw), get_depth(3, gd), false, 1, 0.5, "model.17");
/* ------ detect ------ */
IConvolutionLayer* det0 = network->addConvolutionNd(*bottleneck_csp17->getOutput(0), 3 * (Yolo::CLASS_NUM + 5), DimsHW{ 1, 1 }, weightMap["model.24.m.0.weight"], weightMap["model.24.m.0.bias"]);
auto conv18 = convBlock(network, weightMap, *bottleneck_csp17->getOutput(0), get_width(256, gw), 3, 2, 1, "model.18");
ITensor* inputTensors19[] = { conv18->getOutput(0), conv14->getOutput(0) };
auto cat19 = network->addConcatenation(inputTensors19, 2);
auto bottleneck_csp20 = C3(network, weightMap, *cat19->getOutput(0), get_width(512, gw), get_width(512, gw), get_depth(3, gd), false, 1, 0.5, "model.20");
IConvolutionLayer* det1 = network->addConvolutionNd(*bottleneck_csp20->getOutput(0), 3 * (Yolo::CLASS_NUM + 5), DimsHW{ 1, 1 }, weightMap["model.24.m.1.weight"], weightMap["model.24.m.1.bias"]);
auto conv21 = convBlock(network, weightMap, *bottleneck_csp20->getOutput(0), get_width(512, gw), 3, 2, 1, "model.21");
ITensor* inputTensors22[] = { conv21->getOutput(0), conv10->getOutput(0) };
auto cat22 = network->addConcatenation(inputTensors22, 2);
auto bottleneck_csp23 = C3(network, weightMap, *cat22->getOutput(0), get_width(1024, gw), get_width(1024, gw), get_depth(3, gd), false, 1, 0.5, "model.23");
IConvolutionLayer* det2 = network->addConvolutionNd(*bottleneck_csp23->getOutput(0), 3 * (Yolo::CLASS_NUM + 5), DimsHW{ 1, 1 }, weightMap["model.24.m.2.weight"], weightMap["model.24.m.2.bias"]);
auto yolo = addYoLoLayer(network, weightMap, "model.24", std::vector<IConvolutionLayer*>{det0, det1, det2});
yolo->getOutput(0)->setName(OUTPUT_BLOB_NAME);
network->markOutput(*yolo->getOutput(0));
// Build engine
builder->setMaxBatchSize(maxBatchSize);
config->setMaxWorkspaceSize(16 * (1 << 20)); // 16MB
#if defined(USE_FP16)
config->setFlag(BuilderFlag::kFP16);
#elif defined(USE_INT8)
std::cout << "Your platform support int8: " << (builder->platformHasFastInt8() ? "true" : "false") << std::endl;
assert(builder->platformHasFastInt8());
config->setFlag(BuilderFlag::kINT8);
Int8EntropyCalibrator2* calibrator = new Int8EntropyCalibrator2(1, INPUT_W, INPUT_H, "./coco_calib/", "int8calib.table", INPUT_BLOB_NAME);
config->setInt8Calibrator(calibrator);
#endif
std::cout << "Building engine, please wait for a while..." << std::endl;
ICudaEngine* engine = builder->buildEngineWithConfig(*network, *config);
std::cout << "Build engine successfully!" << std::endl;
// Don't need the network any more
network->destroy();
// Release host memory
for (auto& mem : weightMap) {
free((void*)(mem.second.values));
}
return engine;
}
ICudaEngine* build_engine_p6(unsigned int maxBatchSize, IBuilder* builder, IBuilderConfig* config, DataType dt, float& gd, float& gw, std::string& wts_name) {
INetworkDefinition* network = builder->createNetworkV2(0U);
// Create input tensor of shape {3, INPUT_H, INPUT_W} with name INPUT_BLOB_NAME
ITensor* data = network->addInput(INPUT_BLOB_NAME, dt, Dims3{ 3, INPUT_H, INPUT_W });
assert(data);
std::map<std::string, Weights> weightMap = loadWeights(wts_name);
/* ------ yolov5 backbone------ */
auto conv0 = convBlock(network, weightMap, *data, get_width(64, gw), 6, 2, 1, "model.0");
auto conv1 = convBlock(network, weightMap, *conv0->getOutput(0), get_width(128, gw), 3, 2, 1, "model.1");
auto c3_2 = C3(network, weightMap, *conv1->getOutput(0), get_width(128, gw), get_width(128, gw), get_depth(3, gd), true, 1, 0.5, "model.2");
auto conv3 = convBlock(network, weightMap, *c3_2->getOutput(0), get_width(256, gw), 3, 2, 1, "model.3");
auto c3_4 = C3(network, weightMap, *conv3->getOutput(0), get_width(256, gw), get_width(256, gw), get_depth(6, gd), true, 1, 0.5, "model.4");
auto conv5 = convBlock(network, weightMap, *c3_4->getOutput(0), get_width(512, gw), 3, 2, 1, "model.5");
auto c3_6 = C3(network, weightMap, *conv5->getOutput(0), get_width(512, gw), get_width(512, gw), get_depth(9, gd), true, 1, 0.5, "model.6");
auto conv7 = convBlock(network, weightMap, *c3_6->getOutput(0), get_width(768, gw), 3, 2, 1, "model.7");
auto c3_8 = C3(network, weightMap, *conv7->getOutput(0), get_width(768, gw), get_width(768, gw), get_depth(3, gd), true, 1, 0.5, "model.8");
auto conv9 = convBlock(network, weightMap, *c3_8->getOutput(0), get_width(1024, gw), 3, 2, 1, "model.9");
auto c3_10 = C3(network, weightMap, *conv9->getOutput(0), get_width(1024, gw), get_width(1024, gw), get_depth(3, gd), true, 1, 0.5, "model.10");
auto sppf11 = SPPF(network, weightMap, *c3_10->getOutput(0), get_width(1024, gw), get_width(1024, gw), 5, "model.11");
/* ------ yolov5 head ------ */
auto conv12 = convBlock(network, weightMap, *sppf11->getOutput(0), get_width(768, gw), 1, 1, 1, "model.12");
auto upsample13 = network->addResize(*conv12->getOutput(0));
assert(upsample13);
upsample13->setResizeMode(ResizeMode::kNEAREST);
upsample13->setOutputDimensions(c3_8->getOutput(0)->getDimensions());
ITensor* inputTensors14[] = { upsample13->getOutput(0), c3_8->getOutput(0) };
auto cat14 = network->addConcatenation(inputTensors14, 2);
auto c3_15 = C3(network, weightMap, *cat14->getOutput(0), get_width(1536, gw), get_width(768, gw), get_depth(3, gd), false, 1, 0.5, "model.15");
auto conv16 = convBlock(network, weightMap, *c3_15->getOutput(0), get_width(512, gw), 1, 1, 1, "model.16");
auto upsample17 = network->addResize(*conv16->getOutput(0));
assert(upsample17);
upsample17->setResizeMode(ResizeMode::kNEAREST);
upsample17->setOutputDimensions(c3_6->getOutput(0)->getDimensions());
ITensor* inputTensors18[] = { upsample17->getOutput(0), c3_6->getOutput(0) };
auto cat18 = network->addConcatenation(inputTensors18, 2);
auto c3_19 = C3(network, weightMap, *cat18->getOutput(0), get_width(1024, gw), get_width(512, gw), get_depth(3, gd), false, 1, 0.5, "model.19");
auto conv20 = convBlock(network, weightMap, *c3_19->getOutput(0), get_width(256, gw), 1, 1, 1, "model.20");
auto upsample21 = network->addResize(*conv20->getOutput(0));
assert(upsample21);
upsample21->setResizeMode(ResizeMode::kNEAREST);
upsample21->setOutputDimensions(c3_4->getOutput(0)->getDimensions());
ITensor* inputTensors21[] = { upsample21->getOutput(0), c3_4->getOutput(0) };
auto cat22 = network->addConcatenation(inputTensors21, 2);
auto c3_23 = C3(network, weightMap, *cat22->getOutput(0), get_width(512, gw), get_width(256, gw), get_depth(3, gd), false, 1, 0.5, "model.23");
auto conv24 = convBlock(network, weightMap, *c3_23->getOutput(0), get_width(256, gw), 3, 2, 1, "model.24");
ITensor* inputTensors25[] = { conv24->getOutput(0), conv20->getOutput(0) };
auto cat25 = network->addConcatenation(inputTensors25, 2);
auto c3_26 = C3(network, weightMap, *cat25->getOutput(0), get_width(1024, gw), get_width(512, gw), get_depth(3, gd), false, 1, 0.5, "model.26");
auto conv27 = convBlock(network, weightMap, *c3_26->getOutput(0), get_width(512, gw), 3, 2, 1, "model.27");
ITensor* inputTensors28[] = { conv27->getOutput(0), conv16->getOutput(0) };
auto cat28 = network->addConcatenation(inputTensors28, 2);
auto c3_29 = C3(network, weightMap, *cat28->getOutput(0), get_width(1536, gw), get_width(768, gw), get_depth(3, gd), false, 1, 0.5, "model.29");
auto conv30 = convBlock(network, weightMap, *c3_29->getOutput(0), get_width(768, gw), 3, 2, 1, "model.30");
ITensor* inputTensors31[] = { conv30->getOutput(0), conv12->getOutput(0) };
auto cat31 = network->addConcatenation(inputTensors31, 2);
auto c3_32 = C3(network, weightMap, *cat31->getOutput(0), get_width(2048, gw), get_width(1024, gw), get_depth(3, gd), false, 1, 0.5, "model.32");
/* ------ detect ------ */
IConvolutionLayer* det0 = network->addConvolutionNd(*c3_23->getOutput(0), 3 * (Yolo::CLASS_NUM + 5), DimsHW{ 1, 1 }, weightMap["model.33.m.0.weight"], weightMap["model.33.m.0.bias"]);
IConvolutionLayer* det1 = network->addConvolutionNd(*c3_26->getOutput(0), 3 * (Yolo::CLASS_NUM + 5), DimsHW{ 1, 1 }, weightMap["model.33.m.1.weight"], weightMap["model.33.m.1.bias"]);
IConvolutionLayer* det2 = network->addConvolutionNd(*c3_29->getOutput(0), 3 * (Yolo::CLASS_NUM + 5), DimsHW{ 1, 1 }, weightMap["model.33.m.2.weight"], weightMap["model.33.m.2.bias"]);
IConvolutionLayer* det3 = network->addConvolutionNd(*c3_32->getOutput(0), 3 * (Yolo::CLASS_NUM + 5), DimsHW{ 1, 1 }, weightMap["model.33.m.3.weight"], weightMap["model.33.m.3.bias"]);
auto yolo = addYoLoLayer(network, weightMap, "model.33", std::vector<IConvolutionLayer*>{det0, det1, det2, det3});
yolo->getOutput(0)->setName(OUTPUT_BLOB_NAME);
network->markOutput(*yolo->getOutput(0));
// Build engine
builder->setMaxBatchSize(maxBatchSize);
config->setMaxWorkspaceSize(16 * (1 << 20)); // 16MB
#if defined(USE_FP16)
config->setFlag(BuilderFlag::kFP16);
#elif defined(USE_INT8)
std::cout << "Your platform support int8: " << (builder->platformHasFastInt8() ? "true" : "false") << std::endl;
assert(builder->platformHasFastInt8());
config->setFlag(BuilderFlag::kINT8);
Int8EntropyCalibrator2* calibrator = new Int8EntropyCalibrator2(1, INPUT_W, INPUT_H, "./coco_calib/", "int8calib.table", INPUT_BLOB_NAME);
config->setInt8Calibrator(calibrator);
#endif
std::cout << "Building engine, please wait for a while..." << std::endl;
ICudaEngine* engine = builder->buildEngineWithConfig(*network, *config);
std::cout << "Build engine successfully!" << std::endl;
// Don't need the network any more
network->destroy();
// Release host memory
for (auto& mem : weightMap) {
free((void*)(mem.second.values));
}
return engine;
}
void APIToModel(unsigned int maxBatchSize, IHostMemory** modelStream, bool& is_p6, float& gd, float& gw, std::string& wts_name) {
// Create builder
IBuilder* builder = createInferBuilder(gLogger);
IBuilderConfig* config = builder->createBuilderConfig();
// Create model to populate the network, then set the outputs and create an engine
ICudaEngine *engine = nullptr;
if (is_p6) {
engine = build_engine_p6(maxBatchSize, builder, config, DataType::kFLOAT, gd, gw, wts_name);
} else {
engine = build_engine(maxBatchSize, builder, config, DataType::kFLOAT, gd, gw, wts_name);
}
assert(engine != nullptr);
// Serialize the engine
(*modelStream) = engine->serialize();
// Close everything down
engine->destroy();
builder->destroy();
config->destroy();
}
void doInference(IExecutionContext& context, cudaStream_t& stream, void **buffers, float* output, int batchSize) {
// infer on the batch asynchronously, and DMA output back to host
context.enqueue(batchSize, buffers, stream, nullptr);
CUDA_CHECK(cudaMemcpyAsync(output, buffers[1], batchSize * OUTPUT_SIZE * sizeof(float), cudaMemcpyDeviceToHost, stream));
cudaStreamSynchronize(stream);
}
bool parse_args(int argc, char** argv, std::string& wts, std::string& engine, bool& is_p6, float& gd, float& gw, std::string& img_dir) {
if (argc < 4) return false;
if (std::string(argv[1]) == "-s" && (argc == 5 || argc == 7)) {
wts = std::string(argv[2]);
engine = std::string(argv[3]);
auto net = std::string(argv[4]);
if (net[0] == 'n') {
gd = 0.33;
gw = 0.25;
} else if (net[0] == 's') {
gd = 0.33;
gw = 0.50;
} else if (net[0] == 'm') {
gd = 0.67;
gw = 0.75;
} else if (net[0] == 'l') {
gd = 1.0;
gw = 1.0;
} else if (net[0] == 'x') {
gd = 1.33;
gw = 1.25;
} else if (net[0] == 'c' && argc == 7) {
gd = atof(argv[5]);
gw = atof(argv[6]);
} else {
return false;
}
if (net.size() == 2 && net[1] == '6') {
is_p6 = true;
}
} else if (std::string(argv[1]) == "-d" && argc == 4) {
engine = std::string(argv[2]);
img_dir = std::string(argv[3]);
} else {
return false;
}
return true;
}
int main(int argc, char** argv) {
cudaSetDevice(DEVICE);
std::string wts_name = "";
std::string engine_name = "";
bool is_p6 = false;
float gd = 0.0f, gw = 0.0f;
std::string img_dir;
if (!parse_args(argc, argv, wts_name, engine_name, is_p6, gd, gw, img_dir)) {
std::cerr << "arguments not right!" << std::endl;
std::cerr << "./yolov5 -s [.wts] [.engine] [n/s/m/l/x/n6/s6/m6/l6/x6 or c/c6 gd gw] // serialize model to plan file" << std::endl;
std::cerr << "./yolov5 -d [.engine] ../samples // deserialize plan file and run inference" << std::endl;
return -1;
}
// create a model using the API directly and serialize it to a stream
if (!wts_name.empty()) {
IHostMemory* modelStream{ nullptr };
APIToModel(BATCH_SIZE, &modelStream, is_p6, gd, gw, wts_name);
assert(modelStream != nullptr);
std::ofstream p(engine_name, std::ios::binary);
if (!p) {
std::cerr << "could not open plan output file" << std::endl;
return -1;
}
p.write(reinterpret_cast<const char*>(modelStream->data()), modelStream->size());
modelStream->destroy();
return 0;
}
// deserialize the .engine and run inference
std::ifstream file(engine_name, std::ios::binary);
if (!file.good()) {
std::cerr << "read " << engine_name << " error!" << std::endl;
return -1;
}
char *trtModelStream = nullptr;
size_t size = 0;
file.seekg(0, file.end);
size = file.tellg();
file.seekg(0, file.beg);
trtModelStream = new char[size];
assert(trtModelStream);
file.read(trtModelStream, size);
file.close();
std::vector<std::string> file_names;
if (read_files_in_dir(img_dir.c_str(), file_names) < 0) {
std::cerr << "read_files_in_dir failed." << std::endl;
return -1;
}
static float prob[BATCH_SIZE * OUTPUT_SIZE];
IRuntime* runtime = createInferRuntime(gLogger);
assert(runtime != nullptr);
ICudaEngine* engine = runtime->deserializeCudaEngine(trtModelStream, size);
assert(engine != nullptr);
IExecutionContext* context = engine->createExecutionContext();
assert(context != nullptr);
delete[] trtModelStream;
assert(engine->getNbBindings() == 2);
float* buffers[2];
// In order to bind the buffers, we need to know the names of the input and output tensors.
// Note that indices are guaranteed to be less than IEngine::getNbBindings()
const int inputIndex = engine->getBindingIndex(INPUT_BLOB_NAME);
const int outputIndex = engine->getBindingIndex(OUTPUT_BLOB_NAME);
assert(inputIndex == 0);
assert(outputIndex == 1);
// Create GPU buffers on device
CUDA_CHECK(cudaMalloc((void**)&buffers[inputIndex], BATCH_SIZE * 3 * INPUT_H * INPUT_W * sizeof(float)));
CUDA_CHECK(cudaMalloc((void**)&buffers[outputIndex], BATCH_SIZE * OUTPUT_SIZE * sizeof(float)));
// Create stream
cudaStream_t stream;
CUDA_CHECK(cudaStreamCreate(&stream));
uint8_t* img_host = nullptr;
uint8_t* img_device = nullptr;
// prepare input data cache in pinned memory
CUDA_CHECK(cudaMallocHost((void**)&img_host, MAX_IMAGE_INPUT_SIZE_THRESH * 3));
// prepare input data cache in device memory
CUDA_CHECK(cudaMalloc((void**)&img_device, MAX_IMAGE_INPUT_SIZE_THRESH * 3));
int fcount = 0;
std::vector<cv::Mat> imgs_buffer(BATCH_SIZE);
for (int f = 0; f < (int)file_names.size(); f++) {
fcount++;
if (fcount < BATCH_SIZE && f + 1 != (int)file_names.size()) continue;
//auto start = std::chrono::system_clock::now();
float *buffer_idx = (float*)buffers[inputIndex];
for (int b = 0; b < fcount; b++) {
cv::Mat img = cv::imread(img_dir + "/" + file_names[f - fcount + 1 + b]);
if (img.empty()) continue;
imgs_buffer[b] = img;
size_t size_image = img.cols * img.rows * 3;
size_t size_image_dst = INPUT_H * INPUT_W * 3;
//copy data to pinned memory
memcpy(img_host, img.data, size_image);
//copy data to device memory
CUDA_CHECK(cudaMemcpyAsync(img_device, img_host, size_image, cudaMemcpyHostToDevice, stream));
preprocess_kernel_img(img_device, img.cols, img.rows, buffer_idx, INPUT_W, INPUT_H, stream);
buffer_idx += size_image_dst;
}
// Run inference
auto start = std::chrono::system_clock::now();
doInference(*context, stream, (void**)buffers, prob, BATCH_SIZE);
auto end = std::chrono::system_clock::now();
std::cout << "inference time: " << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << "ms" << std::endl;
std::vector<std::vector<Yolo::Detection>> batch_res(fcount);
for (int b = 0; b < fcount; b++) {
auto& res = batch_res[b];
nms(res, &prob[b * OUTPUT_SIZE], CONF_THRESH, NMS_THRESH);
}
for (int b = 0; b < fcount; b++) {
auto& res = batch_res[b];
cv::Mat img = imgs_buffer[b];
for (size_t j = 0; j < res.size(); j++) {
cv::Rect r = get_rect(img, res[j].bbox);
cv::rectangle(img, r, cv::Scalar(0x27, 0xC1, 0x36), 2);
cv::putText(img, std::to_string((int)res[j].class_id), cv::Point(r.x, r.y - 1), cv::FONT_HERSHEY_PLAIN, 1.2, cv::Scalar(0xFF, 0xFF, 0xFF), 2);
}
cv::imwrite("_" + file_names[f - fcount + 1 + b], img);
}
fcount = 0;
}
// Release stream and buffers
cudaStreamDestroy(stream);
CUDA_CHECK(cudaFree(img_device));
CUDA_CHECK(cudaFreeHost(img_host));
CUDA_CHECK(cudaFree(buffers[inputIndex]));
CUDA_CHECK(cudaFree(buffers[outputIndex]));
// Destroy the engine
context->destroy();
engine->destroy();
runtime->destroy();
// Print histogram of the output distribution
//std::cout << "\nOutput:\n\n";
//for (unsigned int i = 0; i < OUTPUT_SIZE; i++)
//{
// std::cout << prob[i] << ", ";
// if (i % 10 == 0) std::cout << std::endl;
//}
//std::cout << std::endl;
return 0;
}
#include <iostream>
#include <chrono>
#include <cmath>
#include <numeric>
#include "cuda_utils.h"
#include "logging.h"
#include "common.hpp"
#include "utils.h"
#include "calibrator.h"
#define USE_FP32 // set USE_INT8 or USE_FP16 or USE_FP32
#define DEVICE 0 // GPU id
#define BATCH_SIZE 1
// stuff we know about the network and the input/output blobs
static const int INPUT_H = 224;
static const int INPUT_W = 224;
static const int CLASS_NUM = 1000;
static const int OUTPUT_SIZE = CLASS_NUM;
const char* INPUT_BLOB_NAME = "data";
const char* OUTPUT_BLOB_NAME = "prob";
static Logger gLogger;
static int get_width(int x, float gw, int divisor = 8) {
return int(ceil((x * gw) / divisor)) * divisor;
}
static int get_depth(int x, float gd) {
if (x == 1) return 1;
int r = round(x * gd);
if (x * gd - int(x * gd) == 0.5 && (int(x * gd) % 2) == 0) {
--r;
}
return std::max<int>(r, 1);
}
std::vector<float> softmax(float *prob, int n) {
std::vector<float> res;
float sum = 0.0f;
float t;
for (int i = 0; i < n; i++) {
t = expf(prob[i]);
res.push_back(t);
sum += t;
}
for (int i = 0; i < n; i++) {
res[i] /= sum;
}
return res;
}
std::vector<int> topk(const std::vector<float>& vec, int k) {
std::vector<int> topk_index;
std::vector<size_t> vec_index(vec.size());
std::iota(vec_index.begin(), vec_index.end(), 0);
std::sort(vec_index.begin(), vec_index.end(), [&vec](size_t index_1, size_t index_2) { return vec[index_1] > vec[index_2]; });
int k_num = std::min<int>(vec.size(), k);
for (int i = 0; i < k_num; ++i) {
topk_index.push_back(vec_index[i]);
}
return topk_index;
}
std::vector<std::string> read_classes(std::string file_name) {
std::vector<std::string> classes;
std::ifstream ifs(file_name, std::ios::in);
assert(ifs.is_open());
std::string s;
while (std::getline(ifs, s)) {
classes.push_back(s);
}
ifs.close();
return classes;
}
ICudaEngine* build_engine(unsigned int maxBatchSize, IBuilder* builder, IBuilderConfig* config, DataType dt, float& gd, float& gw, std::string& wts_name) {
INetworkDefinition* network = builder->createNetworkV2(0U);
// Create input tensor of shape {3, INPUT_H, INPUT_W} with name INPUT_BLOB_NAME
ITensor* data = network->addInput(INPUT_BLOB_NAME, dt, Dims3{ 3, INPUT_H, INPUT_W });
assert(data);
std::map<std::string, Weights> weightMap = loadWeights(wts_name);
/* ------ yolov5 backbone------ */
auto conv0 = convBlock(network, weightMap, *data, get_width(64, gw), 6, 2, 1, "model.0");
assert(conv0);
auto conv1 = convBlock(network, weightMap, *conv0->getOutput(0), get_width(128, gw), 3, 2, 1, "model.1");
auto bottleneck_CSP2 = C3(network, weightMap, *conv1->getOutput(0), get_width(128, gw), get_width(128, gw), get_depth(3, gd), true, 1, 0.5, "model.2");
auto conv3 = convBlock(network, weightMap, *bottleneck_CSP2->getOutput(0), get_width(256, gw), 3, 2, 1, "model.3");
auto bottleneck_csp4 = C3(network, weightMap, *conv3->getOutput(0), get_width(256, gw), get_width(256, gw), get_depth(6, gd), true, 1, 0.5, "model.4");
auto conv5 = convBlock(network, weightMap, *bottleneck_csp4->getOutput(0), get_width(512, gw), 3, 2, 1, "model.5");
auto bottleneck_csp6 = C3(network, weightMap, *conv5->getOutput(0), get_width(512, gw), get_width(512, gw), get_depth(9, gd), true, 1, 0.5, "model.6");
auto conv7 = convBlock(network, weightMap, *bottleneck_csp6->getOutput(0), get_width(1024, gw), 3, 2, 1, "model.7");
auto bottleneck_csp8 = C3(network, weightMap, *conv7->getOutput(0), get_width(1024, gw), get_width(1024, gw), get_depth(3, gd), true, 1, 0.5, "model.8");
/* ------ yolov5 classification head ------ */
auto conv_class = convBlock(network, weightMap, *bottleneck_csp8->getOutput(0), 1280, 1, 1, 1, "model.9.conv");
IPoolingLayer* pool2 = network->addPoolingNd(*conv_class->getOutput(0), PoolingType::kAVERAGE, DimsHW{7, 7});
assert(pool2);
IFullyConnectedLayer* yolo = network->addFullyConnected(*pool2->getOutput(0), CLASS_NUM, weightMap["model.9.linear.weight"], weightMap["model.9.linear.bias"]);
assert(yolo);
yolo->getOutput(0)->setName(OUTPUT_BLOB_NAME);
network->markOutput(*yolo->getOutput(0));
// Build engine
builder->setMaxBatchSize(maxBatchSize);
config->setMaxWorkspaceSize(16 * (1 << 20)); // 16MB
#if defined(USE_FP16)
config->setFlag(BuilderFlag::kFP16);
#elif defined(USE_INT8)
std::cout << "Your platform support int8: " << (builder->platformHasFastInt8() ? "true" : "false") << std::endl;
assert(builder->platformHasFastInt8());
config->setFlag(BuilderFlag::kINT8);
Int8EntropyCalibrator2* calibrator = new Int8EntropyCalibrator2(1, INPUT_W, INPUT_H, "./coco_calib/", "int8calib.table", INPUT_BLOB_NAME);
config->setInt8Calibrator(calibrator);
#endif
std::cout << "Building engine, please wait for a while..." << std::endl;
ICudaEngine* engine = builder->buildEngineWithConfig(*network, *config);
std::cout << "Build engine successfully!" << std::endl;
// Don't need the network any more
network->destroy();
// Release host memory
for (auto& mem : weightMap) {
free((void*)(mem.second.values));
}
return engine;
}
void APIToModel(unsigned int maxBatchSize, IHostMemory** modelStream, float& gd, float& gw, std::string& wts_name) {
// Create builder
IBuilder* builder = createInferBuilder(gLogger);
IBuilderConfig* config = builder->createBuilderConfig();
// Create model to populate the network, then set the outputs and create an engine
ICudaEngine *engine = nullptr;
engine = build_engine(maxBatchSize, builder, config, DataType::kFLOAT, gd, gw, wts_name);
assert(engine != nullptr);
// Serialize the engine
(*modelStream) = engine->serialize();
// Close everything down
engine->destroy();
builder->destroy();
config->destroy();
}
void doInference(IExecutionContext& context, cudaStream_t& stream, void **buffers, float* input, float* output, int batchSize) {
// infer on the batch asynchronously, and DMA output back to host
CUDA_CHECK(cudaMemcpyAsync(buffers[0], input, batchSize * 3 * INPUT_H * INPUT_W * sizeof(float), cudaMemcpyHostToDevice, stream));
context.enqueue(batchSize, buffers, stream, nullptr);
CUDA_CHECK(cudaMemcpyAsync(output, buffers[1], batchSize * OUTPUT_SIZE * sizeof(float), cudaMemcpyDeviceToHost, stream));
cudaStreamSynchronize(stream);
}
bool parse_args(int argc, char** argv, std::string& wts, std::string& engine, float& gd, float& gw, std::string& img_dir) {
if (argc < 4) return false;
if (std::string(argv[1]) == "-s" && (argc == 5 || argc == 7)) {
wts = std::string(argv[2]);
engine = std::string(argv[3]);
auto net = std::string(argv[4]);
if (net[0] == 'n') {
gd = 0.33;
gw = 0.25;
} else if (net[0] == 's') {
gd = 0.33;
gw = 0.50;
} else if (net[0] == 'm') {
gd = 0.67;
gw = 0.75;
} else if (net[0] == 'l') {
gd = 1.0;
gw = 1.0;
} else if (net[0] == 'x') {
gd = 1.33;
gw = 1.25;
} else if (net[0] == 'c' && argc == 7) {
gd = atof(argv[5]);
gw = atof(argv[6]);
} else {
return false;
}
} else if (std::string(argv[1]) == "-d" && argc == 4) {
engine = std::string(argv[2]);
img_dir = std::string(argv[3]);
} else {
return false;
}
return true;
}
int main(int argc, char** argv) {
cudaSetDevice(DEVICE);
std::string wts_name = "";
std::string engine_name = "";
float gd = 0.0f, gw = 0.0f;
std::string img_dir;
if (!parse_args(argc, argv, wts_name, engine_name, gd, gw, img_dir)) {
std::cerr << "arguments not right!" << std::endl;
std::cerr << "./yolov5-cls -s [.wts] [.engine] [n/s/m/l/x or c gd gw] // serialize model to plan file" << std::endl;
std::cerr << "./yolov5-cls -d [.engine] ../samples // deserialize plan file and run inference" << std::endl;
return -1;
}
// create a model using the API directly and serialize it to a stream
if (!wts_name.empty()) {
IHostMemory* modelStream{ nullptr };
APIToModel(BATCH_SIZE, &modelStream, gd, gw, wts_name);
assert(modelStream != nullptr);
std::ofstream p(engine_name, std::ios::binary);
if (!p) {
std::cerr << "could not open plan output file" << std::endl;
return -1;
}
p.write(reinterpret_cast<const char*>(modelStream->data()), modelStream->size());
modelStream->destroy();
return 0;
}
// deserialize the .engine and run inference
std::ifstream file(engine_name, std::ios::binary);
if (!file.good()) {
std::cerr << "read " << engine_name << " error!" << std::endl;
return -1;
}
char *trtModelStream = nullptr;
size_t size = 0;
file.seekg(0, file.end);
size = file.tellg();
file.seekg(0, file.beg);
trtModelStream = new char[size];
assert(trtModelStream);
file.read(trtModelStream, size);
file.close();
std::vector<std::string> file_names;
if (read_files_in_dir(img_dir.c_str(), file_names) < 0) {
std::cerr << "read_files_in_dir failed." << std::endl;
return -1;
}
auto classes = read_classes("../imagenet_classes.txt");
static float data[BATCH_SIZE * 3 * INPUT_H * INPUT_W];
static float prob[BATCH_SIZE * OUTPUT_SIZE];
IRuntime* runtime = createInferRuntime(gLogger);
assert(runtime != nullptr);
ICudaEngine* engine = runtime->deserializeCudaEngine(trtModelStream, size);
assert(engine != nullptr);
IExecutionContext* context = engine->createExecutionContext();
assert(context != nullptr);
delete[] trtModelStream;
assert(engine->getNbBindings() == 2);
void* buffers[2];
// In order to bind the buffers, we need to know the names of the input and output tensors.
// Note that indices are guaranteed to be less than IEngine::getNbBindings()
const int inputIndex = engine->getBindingIndex(INPUT_BLOB_NAME);
const int outputIndex = engine->getBindingIndex(OUTPUT_BLOB_NAME);
assert(inputIndex == 0);
assert(outputIndex == 1);
// Create GPU buffers on device
CUDA_CHECK(cudaMalloc((void**)&buffers[inputIndex], BATCH_SIZE * 3 * INPUT_H * INPUT_W * sizeof(float)));
CUDA_CHECK(cudaMalloc((void**)&buffers[outputIndex], BATCH_SIZE * OUTPUT_SIZE * sizeof(float)));
// Create stream
cudaStream_t stream;
CUDA_CHECK(cudaStreamCreate(&stream));
int fcount = 0;
for (int f = 0; f < (int)file_names.size(); f++) {
fcount++;
if (fcount < BATCH_SIZE && f + 1 != (int)file_names.size()) continue;
for (int b = 0; b < fcount; b++) {
cv::Mat img = cv::imread(img_dir + "/" + file_names[f - fcount + 1 + b]);
if (img.empty()) continue;
cv::Mat pr_img;
cv::resize(img, pr_img, cv::Size(INPUT_W, INPUT_H));
int i = 0;
for (int row = 0; row < INPUT_H; ++row) {
uchar* uc_pixel = pr_img.data + row * pr_img.step;
for (int col = 0; col < INPUT_W; ++col) {
data[b * 3 * INPUT_H * INPUT_W + i] = ((float)uc_pixel[2] / 255.0 - 0.485) / 0.229; // R - 0.485
data[b * 3 * INPUT_H * INPUT_W + i + INPUT_H * INPUT_W] = ((float)uc_pixel[1] / 255.0 - 0.456) / 0.224;
data[b * 3 * INPUT_H * INPUT_W + i + 2 * INPUT_H * INPUT_W] = ((float)uc_pixel[0] / 255.0 - 0.406) / 0.225;
uc_pixel += 3;
++i;
}
}
}
// Run inference
auto start = std::chrono::system_clock::now();
doInference(*context, stream, buffers, data, prob, BATCH_SIZE);
auto end = std::chrono::system_clock::now();
std::cout << "inference time: " << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << "ms" << std::endl;
for (int b = 0; b < fcount; b++) {
float *p = &prob[b * OUTPUT_SIZE];
auto res = softmax(p, OUTPUT_SIZE);
auto topk_idx = topk(res, 3);
std::cout << file_names[f - fcount + 1 + b] << std::endl;
for (auto idx: topk_idx) {
std::cout << " " << classes[idx] << " " << res[idx] << std::endl;
}
}
fcount = 0;
}
// Release stream and buffers
cudaStreamDestroy(stream);
CUDA_CHECK(cudaFree(buffers[inputIndex]));
CUDA_CHECK(cudaFree(buffers[outputIndex]));
// Destroy the engine
context->destroy();
engine->destroy();
runtime->destroy();
return 0;
}
"""
An example that uses TensorRT's Python api to make inferences.
"""
import os
import shutil
import sys
import threading
import time
import cv2
import numpy as np
import torch
import pycuda.autoinit
import pycuda.driver as cuda
import tensorrt as trt
def get_img_path_batches(batch_size, img_dir):
ret = []
batch = []
for root, dirs, files in os.walk(img_dir):
for name in files:
if len(batch) == batch_size:
ret.append(batch)
batch = []
batch.append(os.path.join(root, name))
if len(batch) > 0:
ret.append(batch)
return ret
with open("imagenet_classes.txt") as f:
classes = [line.strip() for line in f.readlines()]
class YoLov5TRT(object):
"""
description: A YOLOv5 class that warps TensorRT ops, preprocess and postprocess ops.
"""
def __init__(self, engine_file_path):
# Create a Context on this device,
self.ctx = cuda.Device(0).make_context()
stream = cuda.Stream()
TRT_LOGGER = trt.Logger(trt.Logger.INFO)
runtime = trt.Runtime(TRT_LOGGER)
# Deserialize the engine from file
with open(engine_file_path, "rb") as f:
engine = runtime.deserialize_cuda_engine(f.read())
context = engine.create_execution_context()
host_inputs = []
cuda_inputs = []
host_outputs = []
cuda_outputs = []
bindings = []
self.mean = (0.485, 0.456, 0.406)
self.std = (0.229, 0.224, 0.225)
for binding in engine:
print('binding:', binding, engine.get_binding_shape(binding))
size = trt.volume(engine.get_binding_shape(
binding)) * engine.max_batch_size
dtype = trt.nptype(engine.get_binding_dtype(binding))
# Allocate host and device buffers
host_mem = cuda.pagelocked_empty(size, dtype)
cuda_mem = cuda.mem_alloc(host_mem.nbytes)
# Append the device buffer to device bindings.
bindings.append(int(cuda_mem))
# Append to the appropriate list.
if engine.binding_is_input(binding):
self.input_w = engine.get_binding_shape(binding)[-1]
self.input_h = engine.get_binding_shape(binding)[-2]
host_inputs.append(host_mem)
cuda_inputs.append(cuda_mem)
else:
host_outputs.append(host_mem)
cuda_outputs.append(cuda_mem)
# Store
self.stream = stream
self.context = context
self.engine = engine
self.host_inputs = host_inputs
self.cuda_inputs = cuda_inputs
self.host_outputs = host_outputs
self.cuda_outputs = cuda_outputs
self.bindings = bindings
self.batch_size = engine.max_batch_size
def infer(self, raw_image_generator):
threading.Thread.__init__(self)
# Make self the active context, pushing it on top of the context stack.
self.ctx.push()
# Restore
stream = self.stream
context = self.context
engine = self.engine
host_inputs = self.host_inputs
cuda_inputs = self.cuda_inputs
host_outputs = self.host_outputs
cuda_outputs = self.cuda_outputs
bindings = self.bindings
# Do image preprocess
batch_image_raw = []
batch_input_image = np.empty(
shape=[self.batch_size, 3, self.input_h, self.input_w])
for i, image_raw in enumerate(raw_image_generator):
batch_image_raw.append(image_raw)
input_image = self.preprocess_cls_image(image_raw)
np.copyto(batch_input_image[i], input_image)
batch_input_image = np.ascontiguousarray(batch_input_image)
# Copy input image to host buffer
np.copyto(host_inputs[0], batch_input_image.ravel())
start = time.time()
# Transfer input data to the GPU.
cuda.memcpy_htod_async(cuda_inputs[0], host_inputs[0], stream)
# Run inference.
context.execute_async(batch_size=self.batch_size,
bindings=bindings, stream_handle=stream.handle)
# Transfer predictions back from the GPU.
cuda.memcpy_dtoh_async(host_outputs[0], cuda_outputs[0], stream)
# Synchronize the stream
stream.synchronize()
end = time.time()
# Remove any context from the top of the context stack, deactivating it.
self.ctx.pop()
# Here we use the first row of output in that batch_size = 1
output = host_outputs[0]
# Do postprocess
for i in range(self.batch_size):
classes_ls, predicted_conf_ls, category_id_ls = self.postprocess_cls(
output)
cv2.putText(batch_image_raw[i], str(
classes_ls), (10, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 1, cv2.LINE_AA)
print(classes_ls, predicted_conf_ls)
return batch_image_raw, end - start
def destroy(self):
# Remove any context from the top of the context stack, deactivating it.
self.ctx.pop()
def get_raw_image(self, image_path_batch):
"""
description: Read an image from image path
"""
for img_path in image_path_batch:
yield cv2.imread(img_path)
def get_raw_image_zeros(self, image_path_batch=None):
"""
description: Ready data for warmup
"""
for _ in range(self.batch_size):
yield np.zeros([self.input_h, self.input_w, 3], dtype=np.uint8)
def preprocess_cls_image(self, input_img):
im = cv2.cvtColor(input_img, cv2.COLOR_BGR2RGB)
im = cv2.resize(im, (self.input_h, self.input_w))
im = np.float32(im)
im /= 255.0
im -= self.mean
im /= self.std
im = im.transpose(2, 0, 1)
# prepare batch
batch_data = np.expand_dims(im, axis=0)
return batch_data
def postprocess_cls(self, output_data):
classes_ls = []
predicted_conf_ls = []
category_id_ls = []
output_data = output_data.reshape(self.batch_size, -1)
output_data = torch.Tensor(output_data)
p = torch.nn.functional.softmax(output_data, dim=1)
score, index = torch.topk(p, 3)
for ind in range(index.shape[0]):
input_category_id = index[ind][0].item() # 716
category_id_ls.append(input_category_id)
predicted_confidence = score[ind][0].item()
predicted_conf_ls.append(predicted_confidence)
classes_ls.append(classes[input_category_id])
return classes_ls, predicted_conf_ls, category_id_ls
class inferThread(threading.Thread):
def __init__(self, yolov5_wrapper, image_path_batch):
threading.Thread.__init__(self)
self.yolov5_wrapper = yolov5_wrapper
self.image_path_batch = image_path_batch
def run(self):
batch_image_raw, use_time = self.yolov5_wrapper.infer(
self.yolov5_wrapper.get_raw_image(self.image_path_batch))
for i, img_path in enumerate(self.image_path_batch):
parent, filename = os.path.split(img_path)
save_name = os.path.join('output', filename)
# Save image
cv2.imwrite(save_name, batch_image_raw[i])
print('input->{}, time->{:.2f}ms, saving into output/'.format(
self.image_path_batch, use_time * 1000))
class warmUpThread(threading.Thread):
def __init__(self, yolov5_wrapper):
threading.Thread.__init__(self)
self.yolov5_wrapper = yolov5_wrapper
def run(self):
batch_image_raw, use_time = self.yolov5_wrapper.infer(
self.yolov5_wrapper.get_raw_image_zeros())
print(
'warm_up->{}, time->{:.2f}ms'.format(batch_image_raw[0].shape, use_time * 1000))
if __name__ == "__main__":
# load custom plugin and engine
engine_file_path = "build/yolov5s_cls.engine"
if len(sys.argv) > 1:
engine_file_path = sys.argv[1]
if os.path.exists('output/'):
shutil.rmtree('output/')
os.makedirs('output/')
# a YoLov5TRT instance
yolov5_wrapper = YoLov5TRT(engine_file_path)
try:
print('batch size is', yolov5_wrapper.batch_size)
image_dir = "samples/"
image_path_batches = get_img_path_batches(
yolov5_wrapper.batch_size, image_dir)
for i in range(10):
# create a new thread to do warm_up
thread1 = warmUpThread(yolov5_wrapper)
thread1.start()
thread1.join()
for batch in image_path_batches:
# create a new thread to do inference
thread1 = inferThread(yolov5_wrapper, batch)
thread1.start()
thread1.join()
finally:
# destroy the instance
yolov5_wrapper.destroy()
from yolov5_trt_lib import YoloV5TRT
import cv2
frame = cv2.imread("/home/ilens/tensorrtx/yolov5/samples/bus.jpg")
engine_file_path = "build/yolov5s.engine"
yolo_v5_wrapper = YoloV5TRT(engine_file_path, conf_thresh=0.5, iou_thresh= 0.4)
result_boxes, result_scores, result_classid = yolo_v5_wrapper.infer(frame)
print(result_boxes)
import time
import multiprocessing
from multiprocessing import Process
#from torch.multiprocessing import Pool, Process, set_start_method
from yolov5_trt_lib import YoloV5TRT
import cv2
#print(torch.cuda.is_available())
engine_file_path = "build/yolov5s.engine"
yolo_v5_wrapper = YoloV5TRT(engine_file_path, conf_thresh= 0.5, iou_thresh= 0.4, )
def detectObject(video,name):
cap = cv2.VideoCapture(video)
while cap.isOpened():
pTime = time.time()
ret, img = cap.read()
if img is None:
break
else:
result_boxes, result_scores, result_classid = yolo_v5_wrapper.infer(img)
print(str(result_classid), str(name))
cTime = time.time()
print("fps", str(1/(cTime - pTime)))
#cv2.imshow(name, img)
#cv2.waitKey(1)
cap.release()
try:
#set_start_method('spawn', force=True)
multiprocessing.set_start_method('spawn')
except RuntimeError:
pass
Videos = ['traffic1.mp4', 'traffic3.mp4']
if __name__ =='__main__':
for i in Videos:
process = Process(target=detectObject, args=(i, str(i)))
process.start()
"""
An example that uses TensorRT's Python api to make inferences.
"""
import ctypes
import os
import shutil
import random
import sys
import threading
import time
import cv2
import numpy as np
import pycuda.autoinit
import pycuda.driver as cuda
import tensorrt as trt
CONF_THRESH = 0.5
IOU_THRESHOLD = 0.4
def get_img_path_batches(batch_size, img_dir):
ret = []
batch = []
for root, dirs, files in os.walk(img_dir):
for name in files:
if len(batch) == batch_size:
ret.append(batch)
batch = []
batch.append(os.path.join(root, name))
if len(batch) > 0:
ret.append(batch)
return ret
def plot_one_box(x, img, color=None, label=None, line_thickness=None):
"""
description: Plots one bounding box on image img,
this function comes from YoLov5 project.
param:
x: a box likes [x1,y1,x2,y2]
img: a opencv image object
color: color to draw rectangle, such as (0,255,0)
label: str
line_thickness: int
return:
no return
"""
tl = (
line_thickness or round(0.002 * (img.shape[0] + img.shape[1]) / 2) + 1
) # line/font thickness
color = color or [random.randint(0, 255) for _ in range(3)]
c1, c2 = (int(x[0]), int(x[1])), (int(x[2]), int(x[3]))
cv2.rectangle(img, c1, c2, color, thickness=tl, lineType=cv2.LINE_AA)
if label:
tf = max(tl - 1, 1) # font thickness
t_size = cv2.getTextSize(label, 0, fontScale=tl / 3, thickness=tf)[0]
c2 = c1[0] + t_size[0], c1[1] - t_size[1] - 3
cv2.rectangle(img, c1, c2, color, -1, cv2.LINE_AA) # filled
cv2.putText(
img,
label,
(c1[0], c1[1] - 2),
0,
tl / 3,
[225, 255, 255],
thickness=tf,
lineType=cv2.LINE_AA,
)
class YoLov5TRT(object):
"""
description: A YOLOv5 class that warps TensorRT ops, preprocess and postprocess ops.
"""
def __init__(self, engine_file_path):
# Create a Context on this device,
self.ctx = cuda.Device(0).make_context()
stream = cuda.Stream()
TRT_LOGGER = trt.Logger(trt.Logger.INFO)
runtime = trt.Runtime(TRT_LOGGER)
# Deserialize the engine from file
with open(engine_file_path, "rb") as f:
engine = runtime.deserialize_cuda_engine(f.read())
context = engine.create_execution_context()
host_inputs = []
cuda_inputs = []
host_outputs = []
cuda_outputs = []
bindings = []
for binding in engine:
print('bingding:', binding, engine.get_binding_shape(binding))
size = trt.volume(engine.get_binding_shape(binding)) * engine.max_batch_size
dtype = trt.nptype(engine.get_binding_dtype(binding))
# Allocate host and device buffers
host_mem = cuda.pagelocked_empty(size, dtype)
cuda_mem = cuda.mem_alloc(host_mem.nbytes)
# Append the device buffer to device bindings.
bindings.append(int(cuda_mem))
# Append to the appropriate list.
if engine.binding_is_input(binding):
self.input_w = engine.get_binding_shape(binding)[-1]
self.input_h = engine.get_binding_shape(binding)[-2]
host_inputs.append(host_mem)
cuda_inputs.append(cuda_mem)
else:
host_outputs.append(host_mem)
cuda_outputs.append(cuda_mem)
# Store
self.stream = stream
self.context = context
self.engine = engine
self.host_inputs = host_inputs
self.cuda_inputs = cuda_inputs
self.host_outputs = host_outputs
self.cuda_outputs = cuda_outputs
self.bindings = bindings
self.batch_size = engine.max_batch_size
def infer(self, raw_image_generator):
threading.Thread.__init__(self)
# Make self the active context, pushing it on top of the context stack.
self.ctx.push()
# Restore
stream = self.stream
context = self.context
engine = self.engine
host_inputs = self.host_inputs
cuda_inputs = self.cuda_inputs
host_outputs = self.host_outputs
cuda_outputs = self.cuda_outputs
bindings = self.bindings
# Do image preprocess
batch_image_raw = []
batch_origin_h = []
batch_origin_w = []
batch_input_image = np.empty(shape=[self.batch_size, 3, self.input_h, self.input_w])
for i, image_raw in enumerate(raw_image_generator):
input_image, image_raw, origin_h, origin_w = self.preprocess_image(image_raw)
batch_image_raw.append(image_raw)
batch_origin_h.append(origin_h)
batch_origin_w.append(origin_w)
np.copyto(batch_input_image[i], input_image)
batch_input_image = np.ascontiguousarray(batch_input_image)
# Copy input image to host buffer
np.copyto(host_inputs[0], batch_input_image.ravel())
start = time.time()
# Transfer input data to the GPU.
cuda.memcpy_htod_async(cuda_inputs[0], host_inputs[0], stream)
# Run inference.
context.execute_async(batch_size=self.batch_size, bindings=bindings, stream_handle=stream.handle)
# Transfer predictions back from the GPU.
cuda.memcpy_dtoh_async(host_outputs[0], cuda_outputs[0], stream)
# Synchronize the stream
stream.synchronize()
end = time.time()
# Remove any context from the top of the context stack, deactivating it.
self.ctx.pop()
# Here we use the first row of output in that batch_size = 1
output = host_outputs[0]
# Do postprocess
for i in range(self.batch_size):
result_boxes, result_scores, result_classid = self.post_process(
output[i * 6001: (i + 1) * 6001], batch_origin_h[i], batch_origin_w[i]
)
# Draw rectangles and labels on the original image
for j in range(len(result_boxes)):
box = result_boxes[j]
plot_one_box(
box,
batch_image_raw[i],
label="{}:{:.2f}".format(
categories[int(result_classid[j])], result_scores[j]
),
)
return batch_image_raw, end - start
def destroy(self):
# Remove any context from the top of the context stack, deactivating it.
self.ctx.pop()
def get_raw_image(self, image_path_batch):
"""
description: Read an image from image path
"""
for img_path in image_path_batch:
yield cv2.imread(img_path)
def get_raw_image_zeros(self, image_path_batch=None):
"""
description: Ready data for warmup
"""
for _ in range(self.batch_size):
yield np.zeros([self.input_h, self.input_w, 3], dtype=np.uint8)
def preprocess_image(self, raw_bgr_image):
"""
description: Convert BGR image to RGB,
resize and pad it to target size, normalize to [0,1],
transform to NCHW format.
param:
input_image_path: str, image path
return:
image: the processed image
image_raw: the original image
h: original height
w: original width
"""
image_raw = raw_bgr_image
h, w, c = image_raw.shape
image = cv2.cvtColor(image_raw, cv2.COLOR_BGR2RGB)
# Calculate widht and height and paddings
r_w = self.input_w / w
r_h = self.input_h / h
if r_h > r_w:
tw = self.input_w
th = int(r_w * h)
tx1 = tx2 = 0
ty1 = int((self.input_h - th) / 2)
ty2 = self.input_h - th - ty1
else:
tw = int(r_h * w)
th = self.input_h
tx1 = int((self.input_w - tw) / 2)
tx2 = self.input_w - tw - tx1
ty1 = ty2 = 0
# Resize the image with long side while maintaining ratio
image = cv2.resize(image, (tw, th))
# Pad the short side with (128,128,128)
image = cv2.copyMakeBorder(
image, ty1, ty2, tx1, tx2, cv2.BORDER_CONSTANT, None, (128, 128, 128)
)
image = image.astype(np.float32)
# Normalize to [0,1]
image /= 255.0
# HWC to CHW format:
image = np.transpose(image, [2, 0, 1])
# CHW to NCHW format
image = np.expand_dims(image, axis=0)
# Convert the image to row-major order, also known as "C order":
image = np.ascontiguousarray(image)
return image, image_raw, h, w
def xywh2xyxy(self, origin_h, origin_w, x):
"""
description: Convert nx4 boxes from [x, y, w, h] to [x1, y1, x2, y2] where xy1=top-left, xy2=bottom-right
param:
origin_h: height of original image
origin_w: width of original image
x: A boxes numpy, each row is a box [center_x, center_y, w, h]
return:
y: A boxes numpy, each row is a box [x1, y1, x2, y2]
"""
y = np.zeros_like(x)
r_w = self.input_w / origin_w
r_h = self.input_h / origin_h
if r_h > r_w:
y[:, 0] = x[:, 0] - x[:, 2] / 2
y[:, 2] = x[:, 0] + x[:, 2] / 2
y[:, 1] = x[:, 1] - x[:, 3] / 2 - (self.input_h - r_w * origin_h) / 2
y[:, 3] = x[:, 1] + x[:, 3] / 2 - (self.input_h - r_w * origin_h) / 2
y /= r_w
else:
y[:, 0] = x[:, 0] - x[:, 2] / 2 - (self.input_w - r_h * origin_w) / 2
y[:, 2] = x[:, 0] + x[:, 2] / 2 - (self.input_w - r_h * origin_w) / 2
y[:, 1] = x[:, 1] - x[:, 3] / 2
y[:, 3] = x[:, 1] + x[:, 3] / 2
y /= r_h
return y
def post_process(self, output, origin_h, origin_w):
"""
description: postprocess the prediction
param:
output: A numpy likes [num_boxes,cx,cy,w,h,conf,cls_id, cx,cy,w,h,conf,cls_id, ...]
origin_h: height of original image
origin_w: width of original image
return:
result_boxes: finally boxes, a boxes numpy, each row is a box [x1, y1, x2, y2]
result_scores: finally scores, a numpy, each element is the score correspoing to box
result_classid: finally classid, a numpy, each element is the classid correspoing to box
"""
# Get the num of boxes detected
num = int(output[0])
# Reshape to a two dimentional ndarray
pred = np.reshape(output[1:], (-1, 6))[:num, :]
# Do nms
boxes = self.non_max_suppression(pred, origin_h, origin_w, conf_thres=CONF_THRESH, nms_thres=IOU_THRESHOLD)
result_boxes = boxes[:, :4] if len(boxes) else np.array([])
result_scores = boxes[:, 4] if len(boxes) else np.array([])
result_classid = boxes[:, 5] if len(boxes) else np.array([])
return result_boxes, result_scores, result_classid
def bbox_iou(self, box1, box2, x1y1x2y2=True):
"""
description: compute the IoU of two bounding boxes
param:
box1: A box coordinate (can be (x1, y1, x2, y2) or (x, y, w, h))
box2: A box coordinate (can be (x1, y1, x2, y2) or (x, y, w, h))
x1y1x2y2: select the coordinate format
return:
iou: computed iou
"""
if not x1y1x2y2:
# Transform from center and width to exact coordinates
b1_x1, b1_x2 = box1[:, 0] - box1[:, 2] / 2, box1[:, 0] + box1[:, 2] / 2
b1_y1, b1_y2 = box1[:, 1] - box1[:, 3] / 2, box1[:, 1] + box1[:, 3] / 2
b2_x1, b2_x2 = box2[:, 0] - box2[:, 2] / 2, box2[:, 0] + box2[:, 2] / 2
b2_y1, b2_y2 = box2[:, 1] - box2[:, 3] / 2, box2[:, 1] + box2[:, 3] / 2
else:
# Get the coordinates of bounding boxes
b1_x1, b1_y1, b1_x2, b1_y2 = box1[:, 0], box1[:, 1], box1[:, 2], box1[:, 3]
b2_x1, b2_y1, b2_x2, b2_y2 = box2[:, 0], box2[:, 1], box2[:, 2], box2[:, 3]
# Get the coordinates of the intersection rectangle
inter_rect_x1 = np.maximum(b1_x1, b2_x1)
inter_rect_y1 = np.maximum(b1_y1, b2_y1)
inter_rect_x2 = np.minimum(b1_x2, b2_x2)
inter_rect_y2 = np.minimum(b1_y2, b2_y2)
# Intersection area
inter_area = np.clip(inter_rect_x2 - inter_rect_x1 + 1, 0, None) * \
np.clip(inter_rect_y2 - inter_rect_y1 + 1, 0, None)
# Union Area
b1_area = (b1_x2 - b1_x1 + 1) * (b1_y2 - b1_y1 + 1)
b2_area = (b2_x2 - b2_x1 + 1) * (b2_y2 - b2_y1 + 1)
iou = inter_area / (b1_area + b2_area - inter_area + 1e-16)
return iou
def non_max_suppression(self, prediction, origin_h, origin_w, conf_thres=0.5, nms_thres=0.4):
"""
description: Removes detections with lower object confidence score than 'conf_thres' and performs
Non-Maximum Suppression to further filter detections.
param:
prediction: detections, (x1, y1, x2, y2, conf, cls_id)
origin_h: original image height
origin_w: original image width
conf_thres: a confidence threshold to filter detections
nms_thres: a iou threshold to filter detections
return:
boxes: output after nms with the shape (x1, y1, x2, y2, conf, cls_id)
"""
# Get the boxes that score > CONF_THRESH
boxes = prediction[prediction[:, 4] >= conf_thres]
# Trandform bbox from [center_x, center_y, w, h] to [x1, y1, x2, y2]
boxes[:, :4] = self.xywh2xyxy(origin_h, origin_w, boxes[:, :4])
# clip the coordinates
boxes[:, 0] = np.clip(boxes[:, 0], 0, origin_w -1)
boxes[:, 2] = np.clip(boxes[:, 2], 0, origin_w -1)
boxes[:, 1] = np.clip(boxes[:, 1], 0, origin_h -1)
boxes[:, 3] = np.clip(boxes[:, 3], 0, origin_h -1)
# Object confidence
confs = boxes[:, 4]
# Sort by the confs
boxes = boxes[np.argsort(-confs)]
# Perform non-maximum suppression
keep_boxes = []
while boxes.shape[0]:
large_overlap = self.bbox_iou(np.expand_dims(boxes[0, :4], 0), boxes[:, :4]) > nms_thres
label_match = boxes[0, -1] == boxes[:, -1]
# Indices of boxes with lower confidence scores, large IOUs and matching labels
invalid = large_overlap & label_match
keep_boxes += [boxes[0]]
boxes = boxes[~invalid]
boxes = np.stack(keep_boxes, 0) if len(keep_boxes) else np.array([])
return boxes
class inferThread(threading.Thread):
def __init__(self, yolov5_wrapper, image_path_batch):
threading.Thread.__init__(self)
self.yolov5_wrapper = yolov5_wrapper
self.image_path_batch = image_path_batch
def run(self):
batch_image_raw, use_time = self.yolov5_wrapper.infer(self.yolov5_wrapper.get_raw_image(self.image_path_batch))
for i, img_path in enumerate(self.image_path_batch):
parent, filename = os.path.split(img_path)
save_name = os.path.join('output', filename)
# Save image
cv2.imwrite(save_name, batch_image_raw[i])
print('input->{}, time->{:.2f}ms, saving into output/'.format(self.image_path_batch, use_time * 1000))
class warmUpThread(threading.Thread):
def __init__(self, yolov5_wrapper):
threading.Thread.__init__(self)
self.yolov5_wrapper = yolov5_wrapper
def run(self):
batch_image_raw, use_time = self.yolov5_wrapper.infer(self.yolov5_wrapper.get_raw_image_zeros())
print('warm_up->{}, time->{:.2f}ms'.format(batch_image_raw[0].shape, use_time * 1000))
if __name__ == "__main__":
# load custom plugin and engine
PLUGIN_LIBRARY = "build/libmyplugins.so"
engine_file_path = "build/yolov5s.engine"
if len(sys.argv) > 1:
engine_file_path = sys.argv[1]
if len(sys.argv) > 2:
PLUGIN_LIBRARY = sys.argv[2]
ctypes.CDLL(PLUGIN_LIBRARY)
# load coco labels
categories = ["person", "bicycle", "car", "motorcycle", "airplane", "bus", "train", "truck", "boat", "traffic light",
"fire hydrant", "stop sign", "parking meter", "bench", "bird", "cat", "dog", "horse", "sheep", "cow",
"elephant", "bear", "zebra", "giraffe", "backpack", "umbrella", "handbag", "tie", "suitcase", "frisbee",
"skis", "snowboard", "sports ball", "kite", "baseball bat", "baseball glove", "skateboard", "surfboard",
"tennis racket", "bottle", "wine glass", "cup", "fork", "knife", "spoon", "bowl", "banana", "apple",
"sandwich", "orange", "broccoli", "carrot", "hot dog", "pizza", "donut", "cake", "chair", "couch",
"potted plant", "bed", "dining table", "toilet", "tv", "laptop", "mouse", "remote", "keyboard", "cell phone",
"microwave", "oven", "toaster", "sink", "refrigerator", "book", "clock", "vase", "scissors", "teddy bear",
"hair drier", "toothbrush"]
if os.path.exists('output/'):
shutil.rmtree('output/')
os.makedirs('output/')
# a YoLov5TRT instance
yolov5_wrapper = YoLov5TRT(engine_file_path)
try:
print('batch size is', yolov5_wrapper.batch_size)
image_dir = "samples/"
image_path_batches = get_img_path_batches(yolov5_wrapper.batch_size, image_dir)
for i in range(10):
# create a new thread to do warm_up
thread1 = warmUpThread(yolov5_wrapper)
thread1.start()
thread1.join()
for batch in image_path_batches:
# create a new thread to do inference
thread1 = inferThread(yolov5_wrapper, batch)
thread1.start()
thread1.join()
finally:
# destroy the instance
yolov5_wrapper.destroy()
"""
An example that uses TensorRT's Python api to make inferences.
"""
import ctypes
import os
import shutil
import random
import sys
import threading
import time
import cv2
import numpy as np
from cuda import cudart
import tensorrt as trt
CONF_THRESH = 0.5
IOU_THRESHOLD = 0.4
def get_img_path_batches(batch_size, img_dir):
ret = []
batch = []
for root, dirs, files in os.walk(img_dir):
for name in files:
if len(batch) == batch_size:
ret.append(batch)
batch = []
batch.append(os.path.join(root, name))
if len(batch) > 0:
ret.append(batch)
return ret
def plot_one_box(x, img, color=None, label=None, line_thickness=None):
"""
description: Plots one bounding box on image img,
this function comes from YoLov5 project.
param:
x: a box likes [x1,y1,x2,y2]
img: a opencv image object
color: color to draw rectangle, such as (0,255,0)
label: str
line_thickness: int
return:
no return
"""
tl = (
line_thickness or round(0.002 * (img.shape[0] + img.shape[1]) / 2) + 1
) # line/font thickness
color = color or [random.randint(0, 255) for _ in range(3)]
c1, c2 = (int(x[0]), int(x[1])), (int(x[2]), int(x[3]))
cv2.rectangle(img, c1, c2, color, thickness=tl, lineType=cv2.LINE_AA)
if label:
tf = max(tl - 1, 1) # font thickness
t_size = cv2.getTextSize(label, 0, fontScale=tl / 3, thickness=tf)[0]
c2 = c1[0] + t_size[0], c1[1] - t_size[1] - 3
cv2.rectangle(img, c1, c2, color, -1, cv2.LINE_AA) # filled
cv2.putText(
img,
label,
(c1[0], c1[1] - 2),
0,
tl / 3,
[225, 255, 255],
thickness=tf,
lineType=cv2.LINE_AA,
)
class YoLov5TRT(object):
"""
description: A YOLOv5 class that warps TensorRT ops, preprocess and postprocess ops.
"""
def __init__(self, engine_file_path):
TRT_LOGGER = trt.Logger(trt.Logger.INFO)
runtime = trt.Runtime(TRT_LOGGER)
# Deserialize the engine from file
with open(engine_file_path, "rb") as f:
engine = runtime.deserialize_cuda_engine(f.read())
context = engine.create_execution_context()
# Create a Stream on this device,
_, stream = cudart.cudaStreamCreate()
host_inputs = []
cuda_inputs = []
host_outputs = []
cuda_outputs = []
bindings = []
for binding in engine:
print('bingding:', binding, engine.get_binding_shape(binding))
size = trt.volume(engine.get_binding_shape(binding)) * engine.max_batch_size
dtype = trt.nptype(engine.get_binding_dtype(binding))
# Allocate host and device buffers
host_mem = np.empty(size, dtype=dtype)
_, cuda_mem = cudart.cudaMallocAsync(host_mem.nbytes, stream)
# Append the device buffer to device bindings.
bindings.append(int(cuda_mem))
# Append to the appropriate list.
if engine.binding_is_input(binding):
self.input_w = engine.get_binding_shape(binding)[-1]
self.input_h = engine.get_binding_shape(binding)[-2]
host_inputs.append(host_mem)
cuda_inputs.append(cuda_mem)
else:
host_outputs.append(host_mem)
cuda_outputs.append(cuda_mem)
# Store
self.stream = stream
self.context = context
self.engine = engine
self.host_inputs = host_inputs
self.cuda_inputs = cuda_inputs
self.host_outputs = host_outputs
self.cuda_outputs = cuda_outputs
self.bindings = bindings
self.batch_size = engine.max_batch_size
def infer(self, raw_image_generator):
threading.Thread.__init__(self)
# Restore
stream = self.stream
context = self.context
engine = self.engine
host_inputs = self.host_inputs
cuda_inputs = self.cuda_inputs
host_outputs = self.host_outputs
cuda_outputs = self.cuda_outputs
bindings = self.bindings
# Do image preprocess
batch_image_raw = []
batch_origin_h = []
batch_origin_w = []
batch_input_image = np.empty(shape=[self.batch_size, 3, self.input_h, self.input_w])
for i, image_raw in enumerate(raw_image_generator):
input_image, image_raw, origin_h, origin_w = self.preprocess_image(image_raw)
batch_image_raw.append(image_raw)
batch_origin_h.append(origin_h)
batch_origin_w.append(origin_w)
np.copyto(batch_input_image[i], input_image)
batch_input_image = np.ascontiguousarray(batch_input_image)
# Copy input image to host buffer
np.copyto(host_inputs[0], batch_input_image.ravel())
start = time.time()
# Transfer input data to the GPU.
cudart.cudaMemcpyAsync(cuda_inputs[0], host_inputs[0].ctypes.data, host_inputs[0].nbytes,
cudart.cudaMemcpyKind.cudaMemcpyHostToDevice, stream)
# Run inference.
context.execute_async(batch_size=self.batch_size, bindings=bindings, stream_handle=stream)
# Transfer predictions back from the GPU.
cudart.cudaMemcpyAsync(host_outputs[0].ctypes.data, cuda_outputs[0], host_outputs[0].nbytes,
cudart.cudaMemcpyKind.cudaMemcpyDeviceToHost, stream)
# Synchronize the stream
cudart.cudaStreamSynchronize(stream)
end = time.time()
# Here we use the first row of output in that batch_size = 1
output = host_outputs[0]
# Do postprocess
for i in range(self.batch_size):
result_boxes, result_scores, result_classid = self.post_process(
output[i * 6001: (i + 1) * 6001], batch_origin_h[i], batch_origin_w[i]
)
# Draw rectangles and labels on the original image
for j in range(len(result_boxes)):
box = result_boxes[j]
plot_one_box(
box,
batch_image_raw[i],
label="{}:{:.2f}".format(
categories[int(result_classid[j])], result_scores[j]
),
)
return batch_image_raw, end - start
def destroy(self):
# Remove any stream and cuda mem
cudart.cudaStreamDestroy(self.stream)
cudart.cudaFree(self.cuda_inputs[0])
cudart.cudaFree(self.cuda_outputs[0])
def get_raw_image(self, image_path_batch):
"""
description: Read an image from image path
"""
for img_path in image_path_batch:
yield cv2.imread(img_path)
def get_raw_image_zeros(self, image_path_batch=None):
"""
description: Ready data for warmup
"""
for _ in range(self.batch_size):
yield np.zeros([self.input_h, self.input_w, 3], dtype=np.uint8)
def preprocess_image(self, raw_bgr_image):
"""
description: Convert BGR image to RGB,
resize and pad it to target size, normalize to [0,1],
transform to NCHW format.
param:
input_image_path: str, image path
return:
image: the processed image
image_raw: the original image
h: original height
w: original width
"""
image_raw = raw_bgr_image
h, w, c = image_raw.shape
image = cv2.cvtColor(image_raw, cv2.COLOR_BGR2RGB)
# Calculate widht and height and paddings
r_w = self.input_w / w
r_h = self.input_h / h
if r_h > r_w:
tw = self.input_w
th = int(r_w * h)
tx1 = tx2 = 0
ty1 = int((self.input_h - th) / 2)
ty2 = self.input_h - th - ty1
else:
tw = int(r_h * w)
th = self.input_h
tx1 = int((self.input_w - tw) / 2)
tx2 = self.input_w - tw - tx1
ty1 = ty2 = 0
# Resize the image with long side while maintaining ratio
image = cv2.resize(image, (tw, th))
# Pad the short side with (128,128,128)
image = cv2.copyMakeBorder(
image, ty1, ty2, tx1, tx2, cv2.BORDER_CONSTANT, None, (128, 128, 128)
)
image = image.astype(np.float32)
# Normalize to [0,1]
image /= 255.0
# HWC to CHW format:
image = np.transpose(image, [2, 0, 1])
# CHW to NCHW format
image = np.expand_dims(image, axis=0)
# Convert the image to row-major order, also known as "C order":
image = np.ascontiguousarray(image)
return image, image_raw, h, w
def xywh2xyxy(self, origin_h, origin_w, x):
"""
description: Convert nx4 boxes from [x, y, w, h] to [x1, y1, x2, y2] where xy1=top-left, xy2=bottom-right
param:
origin_h: height of original image
origin_w: width of original image
x: A boxes numpy, each row is a box [center_x, center_y, w, h]
return:
y: A boxes numpy, each row is a box [x1, y1, x2, y2]
"""
y = np.zeros_like(x)
r_w = self.input_w / origin_w
r_h = self.input_h / origin_h
if r_h > r_w:
y[:, 0] = x[:, 0] - x[:, 2] / 2
y[:, 2] = x[:, 0] + x[:, 2] / 2
y[:, 1] = x[:, 1] - x[:, 3] / 2 - (self.input_h - r_w * origin_h) / 2
y[:, 3] = x[:, 1] + x[:, 3] / 2 - (self.input_h - r_w * origin_h) / 2
y /= r_w
else:
y[:, 0] = x[:, 0] - x[:, 2] / 2 - (self.input_w - r_h * origin_w) / 2
y[:, 2] = x[:, 0] + x[:, 2] / 2 - (self.input_w - r_h * origin_w) / 2
y[:, 1] = x[:, 1] - x[:, 3] / 2
y[:, 3] = x[:, 1] + x[:, 3] / 2
y /= r_h
return y
def post_process(self, output, origin_h, origin_w):
"""
description: postprocess the prediction
param:
output: A numpy likes [num_boxes,cx,cy,w,h,conf,cls_id, cx,cy,w,h,conf,cls_id, ...]
origin_h: height of original image
origin_w: width of original image
return:
result_boxes: finally boxes, a boxes numpy, each row is a box [x1, y1, x2, y2]
result_scores: finally scores, a numpy, each element is the score correspoing to box
result_classid: finally classid, a numpy, each element is the classid correspoing to box
"""
# Get the num of boxes detected
num = int(output[0])
# Reshape to a two dimentional ndarray
pred = np.reshape(output[1:], (-1, 6))[:num, :]
# Do nms
boxes = self.non_max_suppression(pred, origin_h, origin_w, conf_thres=CONF_THRESH, nms_thres=IOU_THRESHOLD)
result_boxes = boxes[:, :4] if len(boxes) else np.array([])
result_scores = boxes[:, 4] if len(boxes) else np.array([])
result_classid = boxes[:, 5] if len(boxes) else np.array([])
return result_boxes, result_scores, result_classid
def bbox_iou(self, box1, box2, x1y1x2y2=True):
"""
description: compute the IoU of two bounding boxes
param:
box1: A box coordinate (can be (x1, y1, x2, y2) or (x, y, w, h))
box2: A box coordinate (can be (x1, y1, x2, y2) or (x, y, w, h))
x1y1x2y2: select the coordinate format
return:
iou: computed iou
"""
if not x1y1x2y2:
# Transform from center and width to exact coordinates
b1_x1, b1_x2 = box1[:, 0] - box1[:, 2] / 2, box1[:, 0] + box1[:, 2] / 2
b1_y1, b1_y2 = box1[:, 1] - box1[:, 3] / 2, box1[:, 1] + box1[:, 3] / 2
b2_x1, b2_x2 = box2[:, 0] - box2[:, 2] / 2, box2[:, 0] + box2[:, 2] / 2
b2_y1, b2_y2 = box2[:, 1] - box2[:, 3] / 2, box2[:, 1] + box2[:, 3] / 2
else:
# Get the coordinates of bounding boxes
b1_x1, b1_y1, b1_x2, b1_y2 = box1[:, 0], box1[:, 1], box1[:, 2], box1[:, 3]
b2_x1, b2_y1, b2_x2, b2_y2 = box2[:, 0], box2[:, 1], box2[:, 2], box2[:, 3]
# Get the coordinates of the intersection rectangle
inter_rect_x1 = np.maximum(b1_x1, b2_x1)
inter_rect_y1 = np.maximum(b1_y1, b2_y1)
inter_rect_x2 = np.minimum(b1_x2, b2_x2)
inter_rect_y2 = np.minimum(b1_y2, b2_y2)
# Intersection area
inter_area = np.clip(inter_rect_x2 - inter_rect_x1 + 1, 0, None) * \
np.clip(inter_rect_y2 - inter_rect_y1 + 1, 0, None)
# Union Area
b1_area = (b1_x2 - b1_x1 + 1) * (b1_y2 - b1_y1 + 1)
b2_area = (b2_x2 - b2_x1 + 1) * (b2_y2 - b2_y1 + 1)
iou = inter_area / (b1_area + b2_area - inter_area + 1e-16)
return iou
def non_max_suppression(self, prediction, origin_h, origin_w, conf_thres=0.5, nms_thres=0.4):
"""
description: Removes detections with lower object confidence score than 'conf_thres' and performs
Non-Maximum Suppression to further filter detections.
param:
prediction: detections, (x1, y1, x2, y2, conf, cls_id)
origin_h: original image height
origin_w: original image width
conf_thres: a confidence threshold to filter detections
nms_thres: a iou threshold to filter detections
return:
boxes: output after nms with the shape (x1, y1, x2, y2, conf, cls_id)
"""
# Get the boxes that score > CONF_THRESH
boxes = prediction[prediction[:, 4] >= conf_thres]
# Trandform bbox from [center_x, center_y, w, h] to [x1, y1, x2, y2]
boxes[:, :4] = self.xywh2xyxy(origin_h, origin_w, boxes[:, :4])
# clip the coordinates
boxes[:, 0] = np.clip(boxes[:, 0], 0, origin_w - 1)
boxes[:, 2] = np.clip(boxes[:, 2], 0, origin_w - 1)
boxes[:, 1] = np.clip(boxes[:, 1], 0, origin_h - 1)
boxes[:, 3] = np.clip(boxes[:, 3], 0, origin_h - 1)
# Object confidence
confs = boxes[:, 4]
# Sort by the confs
boxes = boxes[np.argsort(-confs)]
# Perform non-maximum suppression
keep_boxes = []
while boxes.shape[0]:
large_overlap = self.bbox_iou(np.expand_dims(boxes[0, :4], 0), boxes[:, :4]) > nms_thres
label_match = boxes[0, -1] == boxes[:, -1]
# Indices of boxes with lower confidence scores, large IOUs and matching labels
invalid = large_overlap & label_match
keep_boxes += [boxes[0]]
boxes = boxes[~invalid]
boxes = np.stack(keep_boxes, 0) if len(keep_boxes) else np.array([])
return boxes
class inferThread(threading.Thread):
def __init__(self, yolov5_wrapper, image_path_batch):
threading.Thread.__init__(self)
self.yolov5_wrapper = yolov5_wrapper
self.image_path_batch = image_path_batch
def run(self):
batch_image_raw, use_time = self.yolov5_wrapper.infer(self.yolov5_wrapper.get_raw_image(self.image_path_batch))
for i, img_path in enumerate(self.image_path_batch):
parent, filename = os.path.split(img_path)
save_name = os.path.join('output', filename)
# Save image
cv2.imwrite(save_name, batch_image_raw[i])
print('input->{}, time->{:.2f}ms, saving into output/'.format(self.image_path_batch, use_time * 1000))
class warmUpThread(threading.Thread):
def __init__(self, yolov5_wrapper):
threading.Thread.__init__(self)
self.yolov5_wrapper = yolov5_wrapper
def run(self):
batch_image_raw, use_time = self.yolov5_wrapper.infer(self.yolov5_wrapper.get_raw_image_zeros())
print('warm_up->{}, time->{:.2f}ms'.format(batch_image_raw[0].shape, use_time * 1000))
if __name__ == "__main__":
# load custom plugin and engine
PLUGIN_LIBRARY = "build/libmyplugins.so"
engine_file_path = "build/yolov5s.engine"
if len(sys.argv) > 1:
engine_file_path = sys.argv[1]
if len(sys.argv) > 2:
PLUGIN_LIBRARY = sys.argv[2]
ctypes.CDLL(PLUGIN_LIBRARY)
cudart.cudaDeviceSynchronize()
# load coco labels
categories = ["person", "bicycle", "car", "motorcycle", "airplane", "bus", "train", "truck", "boat",
"traffic light",
"fire hydrant", "stop sign", "parking meter", "bench", "bird", "cat", "dog", "horse", "sheep", "cow",
"elephant", "bear", "zebra", "giraffe", "backpack", "umbrella", "handbag", "tie", "suitcase",
"frisbee",
"skis", "snowboard", "sports ball", "kite", "baseball bat", "baseball glove", "skateboard",
"surfboard",
"tennis racket", "bottle", "wine glass", "cup", "fork", "knife", "spoon", "bowl", "banana", "apple",
"sandwich", "orange", "broccoli", "carrot", "hot dog", "pizza", "donut", "cake", "chair", "couch",
"potted plant", "bed", "dining table", "toilet", "tv", "laptop", "mouse", "remote", "keyboard",
"cell phone",
"microwave", "oven", "toaster", "sink", "refrigerator", "book", "clock", "vase", "scissors",
"teddy bear",
"hair drier", "toothbrush"]
if os.path.exists('output/'):
shutil.rmtree('output/')
os.makedirs('output/')
# a YoLov5TRT instance
yolov5_wrapper = YoLov5TRT(engine_file_path)
try:
print('batch size is', yolov5_wrapper.batch_size)
image_dir = "samples/"
image_path_batches = get_img_path_batches(yolov5_wrapper.batch_size, image_dir)
for i in range(10):
# create a new thread to do warm_up
thread1 = warmUpThread(yolov5_wrapper)
thread1.start()
thread1.join()
for batch in image_path_batches:
# create a new thread to do inference
thread1 = inferThread(yolov5_wrapper, batch)
thread1.start()
thread1.join()
finally:
# destroy the instance
yolov5_wrapper.destroy()
import ctypes
import time
import cv2
import numpy as np
import pycuda.autoinit
import pycuda.driver as cuda
import tensorrt as trt
PLUGIN_LIBRARY = "build/libmyplugins.so"
ctypes.CDLL(PLUGIN_LIBRARY)
class YoloV5TRT(object):
"""
description: A YOLOv5 class that warps TensorRT ops, preprocess and postprocess ops.
"""
def __init__(self, engine_file_path, conf_thresh, iou_thresh):
self.CONF_THRESH = conf_thresh
self.IOU_THRESHOLD = iou_thresh
self.ctx = cuda.Device(0).make_context()
stream = cuda.Stream()
TRT_LOGGER = trt.Logger(trt.Logger.INFO)
runtime = trt.Runtime(TRT_LOGGER)
with open(engine_file_path, "rb") as f:
engine = runtime.deserialize_cuda_engine(f.read())
context = engine.create_execution_context()
host_inputs = []
cuda_inputs = []
host_outputs = []
cuda_outputs = []
bindings = []
for binding in engine:
size = trt.volume(engine.get_binding_shape(binding)) * engine.max_batch_size
dtype = trt.nptype(engine.get_binding_dtype(binding))
host_mem = cuda.pagelocked_empty(size, dtype)
cuda_mem = cuda.mem_alloc(host_mem.nbytes)
bindings.append(int(cuda_mem))
if engine.binding_is_input(binding):
self.input_w = engine.get_binding_shape(binding)[-1]
self.input_h = engine.get_binding_shape(binding)[-2]
host_inputs.append(host_mem)
cuda_inputs.append(cuda_mem)
else:
host_outputs.append(host_mem)
cuda_outputs.append(cuda_mem)
self.stream = stream
self.context = context
self.engine = engine
self.host_inputs = host_inputs
self.cuda_inputs = cuda_inputs
self.host_outputs = host_outputs
self.cuda_outputs = cuda_outputs
self.bindings = bindings
self.batch_size = engine.max_batch_size
def infer(self, frame):
self.ctx.push()
stream = self.stream
context = self.context
engine = self.engine
host_inputs = self.host_inputs
cuda_inputs = self.cuda_inputs
host_outputs = self.host_outputs
cuda_outputs = self.cuda_outputs
bindings = self.bindings
input_image, image_raw, origin_h, origin_w = self.preprocess_image(frame)
np.copyto(host_inputs[0], input_image.ravel())
start = time.time()
cuda.memcpy_htod_async(cuda_inputs[0], host_inputs[0], stream)
context.execute_async(batch_size=self.batch_size, bindings=bindings, stream_handle=stream.handle)
cuda.memcpy_dtoh_async(host_outputs[0], cuda_outputs[0], stream)
stream.synchronize()
self.ctx.pop()
output = host_outputs[0]
result_boxes, result_scores, result_classid = [], [], []
for i in range(self.batch_size):
result_boxes, result_scores, result_classid = self.post_process(
output[i * 6001: (i + 1) * 6001], frame.shape[0], frame.shape[1])
# if len(result_boxes) > 0:
# for i in range(len(result_boxes)):
# print("Result -->", result_boxes[i])
# print("Scores -->", result_scores[i])
# print("Class ID -->", result_classid[i])
# result_boxes = list(map(int, result_boxes))
return result_boxes, result_scores, result_classid
def destroy(self):
self.ctx.pop()
def preprocess_image(self, raw_bgr_image):
"""
description: Convert BGR image to RGB,
resize and pad it to target size, normalize to [0,1],
transform to NCHW format.
param:
input_image_path: str, image path
return:
image: the processed image
image_raw: the original image
h: original height
w: original width
"""
image_raw = raw_bgr_image
h, w, c = image_raw.shape
image = cv2.cvtColor(image_raw, cv2.COLOR_BGR2RGB)
r_w = self.input_w / w
r_h = self.input_h / h
if r_h > r_w:
tw = self.input_w
th = int(r_w * h)
tx1 = tx2 = 0
ty1 = int((self.input_h - th) / 2)
ty2 = self.input_h - th - ty1
else:
tw = int(r_h * w)
th = self.input_h
tx1 = int((self.input_w - tw) / 2)
tx2 = self.input_w - tw - tx1
ty1 = ty2 = 0
image = cv2.resize(image, (tw, th))
image = cv2.copyMakeBorder(
image, ty1, ty2, tx1, tx2, cv2.BORDER_CONSTANT, (128, 128, 128)
)
image = image.astype(np.float32)
image /= 255.0
image = np.transpose(image, [2, 0, 1])
image = np.expand_dims(image, axis=0)
image = np.ascontiguousarray(image)
return image, image_raw, h, w
def xywh2xyxy(self, origin_h, origin_w, x):
"""
description: Convert nx4 boxes from [x, y, w, h] to [x1, y1, x2, y2] where xy1=top-left, xy2=bottom-right
param:
origin_h: height of original image
origin_w: width of original image
x: A boxes numpy, each row is a box [center_x, center_y, w, h]
return:
y: A boxes numpy, each row is a box [x1, y1, x2, y2]
"""
y = np.zeros_like(x)
r_w = self.input_w / origin_w
r_h = self.input_h / origin_h
if r_h > r_w:
y[:, 0] = x[:, 0] - x[:, 2] / 2
y[:, 2] = x[:, 0] + x[:, 2] / 2
y[:, 1] = x[:, 1] - x[:, 3] / 2 - (self.input_h - r_w * origin_h) / 2
y[:, 3] = x[:, 1] + x[:, 3] / 2 - (self.input_h - r_w * origin_h) / 2
y /= r_w
else:
y[:, 0] = x[:, 0] - x[:, 2] / 2 - (self.input_w - r_h * origin_w) / 2
y[:, 2] = x[:, 0] + x[:, 2] / 2 - (self.input_w - r_h * origin_w) / 2
y[:, 1] = x[:, 1] - x[:, 3] / 2
y[:, 3] = x[:, 1] + x[:, 3] / 2
y /= r_h
return y
def post_process(self, output, origin_h, origin_w):
"""
description: postprocess the prediction
param:
output: A numpy likes [num_boxes,cx,cy,w,h,conf,cls_id, cx,cy,w,h,conf,cls_id, ...]
origin_h: height of original image
origin_w: width of original image
return:
result_boxes: finally boxes, a boxes numpy, each row is a box [x1, y1, x2, y2]
result_scores: finally scores, a numpy, each element is the score correspoing to box
result_classid: finally classid, a numpy, each element is the classid correspoing to box
"""
num = int(output[0])
pred = np.reshape(output[1:], (-1, 6))[:num, :]
boxes = self.non_max_suppression(pred, origin_h, origin_w, conf_thres=self.CONF_THRESH,
nms_thres=self.IOU_THRESHOLD)
result_boxes = boxes[:, :4].astype(int) if len(boxes) else np.array([])
result_scores = boxes[:, 4] if len(boxes) else np.array([])
result_classid = boxes[:, 5].astype(int) if len(boxes) else np.array([])
return result_boxes, result_scores, result_classid
def bbox_iou(self, box1, box2, x1y1x2y2=True):
"""
description: compute the IoU of two bounding boxes
param:
box1: A box coordinate (can be (x1, y1, x2, y2) or (x, y, w, h))
box2: A box coordinate (can be (x1, y1, x2, y2) or (x, y, w, h))
x1y1x2y2: select the coordinate format
return:
iou: computed iou
"""
if not x1y1x2y2:
b1_x1, b1_x2 = box1[:, 0] - box1[:, 2] / 2, box1[:, 0] + box1[:, 2] / 2
b1_y1, b1_y2 = box1[:, 1] - box1[:, 3] / 2, box1[:, 1] + box1[:, 3] / 2
b2_x1, b2_x2 = box2[:, 0] - box2[:, 2] / 2, box2[:, 0] + box2[:, 2] / 2
b2_y1, b2_y2 = box2[:, 1] - box2[:, 3] / 2, box2[:, 1] + box2[:, 3] / 2
else:
b1_x1, b1_y1, b1_x2, b1_y2 = box1[:, 0], box1[:, 1], box1[:, 2], box1[:, 3]
b2_x1, b2_y1, b2_x2, b2_y2 = box2[:, 0], box2[:, 1], box2[:, 2], box2[:, 3]
inter_rect_x1 = np.maximum(b1_x1, b2_x1)
inter_rect_y1 = np.maximum(b1_y1, b2_y1)
inter_rect_x2 = np.minimum(b1_x2, b2_x2)
inter_rect_y2 = np.minimum(b1_y2, b2_y2)
inter_area = np.clip(inter_rect_x2 - inter_rect_x1 + 1, 0, None) * \
np.clip(inter_rect_y2 - inter_rect_y1 + 1, 0, None)
b1_area = (b1_x2 - b1_x1 + 1) * (b1_y2 - b1_y1 + 1)
b2_area = (b2_x2 - b2_x1 + 1) * (b2_y2 - b2_y1 + 1)
iou = inter_area / (b1_area + b2_area - inter_area + 1e-16)
return iou
def non_max_suppression(self, prediction, origin_h, origin_w, conf_thres=0.5, nms_thres=0.4):
"""
description: Removes detections with lower object confidence score than 'conf_thres' and performs
Non-Maximum Suppression to further filter detections.
param:
prediction: detections, (x1, y1, x2, y2, conf, cls_id)
origin_h: original image height
origin_w: original image width
conf_thres: a confidence threshold to filter detections
nms_thres: a iou threshold to filter detections
return:
boxes: output after nms with the shape (x1, y1, x2, y2, conf, cls_id)
"""
boxes = prediction[prediction[:, 4] >= conf_thres]
boxes[:, :4] = self.xywh2xyxy(origin_h, origin_w, boxes[:, :4])
boxes[:, 0] = np.clip(boxes[:, 0], 0, origin_w - 1)
boxes[:, 2] = np.clip(boxes[:, 2], 0, origin_w - 1)
boxes[:, 1] = np.clip(boxes[:, 1], 0, origin_h - 1)
boxes[:, 3] = np.clip(boxes[:, 3], 0, origin_h - 1)
confs = boxes[:, 4]
boxes = boxes[np.argsort(-confs)]
keep_boxes = []
while boxes.shape[0]:
large_overlap = self.bbox_iou(np.expand_dims(boxes[0, :4], 0), boxes[:, :4]) > nms_thres
label_match = boxes[0, -1] == boxes[:, -1]
invalid = large_overlap & label_match
keep_boxes += [boxes[0]]
boxes = boxes[~invalid]
boxes = np.stack(keep_boxes, 0) if len(keep_boxes) else np.array([])
return boxes
class inferThread():
def __init__(self, yolov5_wrapper):
self.yolov5_wrapper = yolov5_wrapper
def run(self):
cap = cv2.VideoCapture("test2.mp4")
ret, frame = cap.read()
while ret:
result_boxes, result_scores, result_classid = self.yolov5_wrapper.infer(frame)
out = [{"points": list(points), "conf": conf, "class": class_id} for points, conf, class_id in
zip(result_boxes, result_scores, result_classid)]
print(out)
ret, frame = cap.read()
if __name__ == "__main__":
engine_file_path = "build/yolov5s.engine"
categories = ["cement_bag"]
yolov5_wrapper = YoloV5TRT(engine_file_path)
try:
inf = inferThread(yolov5_wrapper)
inf.run()
finally:
yolov5_wrapper.destroy()
import time
from multiprocessing import Process
#from torch.multiprocessing import Pool, Process, set_start_method
from yolov5_trt_lib import YoloV5TRT
import cv2
# print(torch.cuda.is_available())
engine_file_path = "build/yolov5s.engine"
yolo_v5_wrapper = YoloV5TRT(engine_file_path, conf_thresh= 0.5, iou_thresh= 0.4)
def detectObject(video):
cap = cv2.VideoCapture(video)
while cap.isOpened():
pTime = time.time()
ret, img = cap.read()
if img is None:
break
else:
result_boxes, result_scores, result_classid = yolo_v5_wrapper.infer(img)
print(result_classid)
cap.release()
# try:
# set_start_method('spawn', force=True)
# except RuntimeError:
# pass
Videos = ['traffic1.mp4']
if __name__ =='__main__':
detectObject(video="traffic1.mp4")
# for i in Videos:
# process = Process(target=detectObject, args=(i, str(i)))
# process.start()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment