рдкрд░рд┐рдЪрдп
рдпрд╣ рдЖрд▓реЗрдЦ
рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд
CUDA 10 рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ
C / C ++ ,
Python 2 рдФрд░
Python 3 рдХреЗ рд▓рд┐рдП
OpenCV 4 рдХреА рдЕрд╕реЗрдВрдмрд▓реА рдФрд░ рд╕реНрдерд╛рдкрдирд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ред
рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдЙрди рд╕рднреА рд╕реВрдХреНрд╖реНрдорддрд╛рдУрдВ рдФрд░ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬреЛ рдЖрдк рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдореИрдиреБрдЕрд▓ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
- рд╡рд┐рдВрдбреЛрдЬ 8.1 + рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2017 + рдкрд╛рдпрдерди 2/3 + CUDA 10.0 + GeForce 840m
- рд╡рд┐рдВрдбреЛрдЬ 10 + рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2019 + рдкрд╛рдпрдерди 2/3 + рдХреНрдпреБрдбрд╛ 10.0 + GeForce GTX 1060
рдЪреЗрддрд╛рд╡рдиреА! рдмрд┐рд▓реНрдб рд╕рдВрд╕реНрдХрд░рдг 10 рдХреЗ рдиреАрдЪреЗ
OpenCV 4.0.1 рдФрд░ / рдпрд╛
CUDA рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
CUDA 9 рдФрд░ рдиреАрдЪреЗ
OpenCV 3 рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред
рдЖрдкрдХреЛ рдХреНрдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдореЗрд░реА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрдкрдХрд░рдг рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдереЗ:
- рд╕реАрдПрдордХреЗ 3.15
- рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдПрдордПрд╕ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2019 64-рдмрд┐рдЯ + рд╕реАрдПрдордХреЗ рд╕реА ++ рдЯреВрд▓
- рдкрд╛рдпрдерди 3.7.3 64-рдмрд┐рдЯ + рдиреНрдпреВрдордкреА 64-рдмрд┐рдЯ
- рдкрд╛рдпрдерди 2.7.16 64-рдмрд┐рдЯ + рдиреНрдпреВрдордкреА 64-рдмрд┐рдЯ
- рд╕реАрдпреВрдбреАрдП 10.0
- CuDNN 7.6.2
- OpenCV 4.1.1 рдФрд░ OpenCV-contrib-4.1.1
рд╕реНрдерд╛рдкрдирд╛
рдЪреВрдВрдХрд┐ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХрдВрд╕реЛрд▓ рдХрдорд╛рдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдФрд░ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рд╕реНрдерд╛рдкрдирд╛ рдкрдереЛрдВ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд▓рд┐рдП рдмрджрд▓реЗрдВред
рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░
CUDA рд╕реЗ рдкрд╣рд▓реЗ
рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреНрд░рдорд╢рдГ
CMAT, рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ, рдкрд╛рдпрдерди, CUDA, CuDNN рдХреЗ рд▓рд┐рдП рдкрде PATH, PYTHONPATH, CUDA_PATH рдФрд░
cudnn рдЪрд░ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред
рдЕрдЧрд▓рд╛, рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд╛рди рдкрд░
opencv-4.1.1 рдФрд░
opencv-contrib-4.1.1 рд╕реНрд░реЛрдд рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣
C: \ OpenCV \ ) рд╣реИред
git clone https://github.com/opencv/opencv.git -b "4.1.1" git clone https://github.com/opencv/opencv_contrib.git -b "4.1.1"

Opencv-4.1.1 рдХреЗ рдЕрдВрджрд░
рдмрд┐рд▓реНрдб / рдлреЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВред

рдЖрдЧреЗ, рд╣рдо
cmake рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрд╕реЗрдВрдмрд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬрдирд░реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо
cmake рдХреЗ рдХрдВрд╕реЛрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐
cmake-gui рдХреБрдЫ рдЪрд░ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
OPENCV_PYTHON3_VERSION ) рдФрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдлрд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
рд╣рдо рдкрде
C: \ OpenCV \ рдХреЗ рд╕рд╛рде рдХрдВрд╕реЛрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рдЪрд░ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВред
set "opencvSource=opencv-4.1.1" set "opencvExtraModules=opencv_contrib-4.1.1/modules" set "opencvBuild=%opencvSource%\build" set "compiler=Visual Studio 16 2019" set "buildType=Release"
рдиреЛрдЯред рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2017 рдХреЗ рд▓рд┐рдП, рдЬрдирд░реЗрдЯрд░ рдХреЛ "
рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 15 2017 рд╡рд┐рди 64 " рдФрд░ рдмрд┐рдирд╛
- рдзреНрд╡рдЬ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдХрд▓реЗрдХреНрдЯрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдЬрдЧрд░ 2 рдФрд░ рдЕрдЬрдЧрд░ 3 рдХреЗ рд▓рд┐рдП рдЕрдЬрдЧрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
set "python2_executable=C:/Python27/python.exe" set "python2_include_dir=C:/Python27/include" set "python2_library=C:/Python27/libs/python27.lib" set "python2_numpy_include_dirs=C:/Python27/Lib/site-packages/numpy/core/include" set "python2_packages_path=C:/Python27/Lib/site-packages" set "python3_executable=C:/Users/root/Anaconda3/python.exe" set "python3_include_dir=C:/Users/root/Anaconda3/include" set "python3_library=C:/Users/root/Anaconda3/libs/python37.lib" set "python3_numpy_include_dirs=C:/Users/root/Anaconda3/lib/site-packages/numpy/core/include" set "python3_packages_path=C:/Users/root/Anaconda3/Lib/site-packages"
рдиреЛрдЯред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
NumPy рд▓рд╛рдЗрдмреНрд░реЗрд░реА
OpenCV рдЬреИрд╕реА рд╣реА рдереЛрдбрд╝реА рдЧрд╣рд░реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ:
import numpy.distutils.system_info as sysinfo print(sysinfo.platform_bits)
рдиреАрдЪреЗ рджреА рдЧрдИ рд▓рдВрдмреА рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдПрдВред рдЖрджреЗрд╢ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЕрд╕рдлрд▓ рдкреАрдврд╝реА рдпрд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ,
рдмрд┐рд▓реНрдб / рдФрд░ред
рдХреИрд╢ / рдФрд░ рдореЗрдВ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░рдХреЗ рджреЛрд╣рд░рд╛рдпрд╛ рдкреАрдврд╝реА рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
cmake ^ -B"%opencvBuild%/" ^ -H"%opencvSource%/" ^ -G"%compiler%" ^ -Ax64 ^ -DCMAKE_BUILD_TYPE=%buildType% ^ -DBUILD_opencv_world=ON ^ -DINSTALL_TESTS=OFF ^ -DINSTALL_C_EXAMPLES=OFF ^ -DBUILD_EXAMPLES=OFF ^ -DOPENCV_EXTRA_MODULES_PATH="%opencvExtraModules%/" ^ -DBUILD_PROTOBUF=ON ^ -DBUILD_opencv_python_bindings_generator=ON ^ -DWITH_CUDA=ON ^ -DCUDA_FAST_MATH=ON ^ -DWITH_CUBLAS=ON ^ -DCUDA_ARCH_PTX=7.5 ^ -DBUILD_opencv_python2=ON ^ -DPYTHON2_EXECUTABLE="%python2_executable%" ^ -DOPENCV_PYTHON2_VERSION=2.7.16 ^ -DPYTHON2_INCLUDE_DIR="%python2_include_dir%" ^ -DPYTHON2_LIBRARY="%python2_library%" ^ -DPYTHON2_NUMPY_INCLUDE_DIRS="%python2_numpy_include_dirs%" ^ -DPYTHON2_PACKAGES_PATH="%python2_packages_path%" ^ -DBUILD_opencv_python3=ON ^ -DPYTHON3_EXECUTABLE="%python3_executable%" ^ -DOPENCV_PYTHON3_VERSION=3.7.3 ^ -DPYTHON3_INCLUDE_DIR="%python3_include_dir%" ^ -DPYTHON3_LIBRARY="%python3_library%" ^ -DPYTHON3_NUMPY_INCLUDE_DIRS="%python3_numpy_include_dirs%" ^ -DPYTHON3_PACKAGES_PATH="%python3_packages_path%"
рдХреБрдЫ рдЭрдВрдбреЛрдВ рдХрд╛ рдЕрд░реНрде- BUILD_opencv_world - рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди рдЪрдпрдирд┐рдд рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдкреНрд░рддрд┐рдпреЛрдВ рд╡рд╛рд▓рд╛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдореЙрдбреНрдпреВрд▓ред C ++ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ opencv рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ opencv_world411.lib рдирд┐рд░реНрднрд░рддрд╛ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
- INSTALL_EXAMPLES / INSTALL_TESTS - opencv рдХреЛрдб рдЙрджрд╛рд╣рд░рдг / рдкрд░реАрдХреНрд╖рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛
- CUDA_FAST_MATH, with_CUBLAS - CUDA рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдореЙрдбреНрдпреВрд▓, рдЧрдгрдирд╛ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛
- CUDA_ARCH_PTX - рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП PTX рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг
- OPENCV_EXTRA_MODULES_PATH - opencv-contrib ( CUDA рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ) рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдкрде
- BUILD_PROTOBUF - рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ opencv рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП, Protobuf рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ( opencv рд╕рдВрдЧреНрд░рд╛рд╣рдХ рд╡реИрд╕реЗ рднреА BUILD_PROTOBUF = рдЪрд╛рд▓реВ рдХрд░реЗрдЧрд╛)
рд▓рдЧрднрдЧ 10 рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдЕрдВрддрд┐рдо рд▓рд╛рдЗрдиреЗрдВ "
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ " рдФрд░ "
рдХрд┐рдпрд╛ рдЧрдпрд╛ рдирд┐рд░реНрдорд╛рдг " рдХрдВрд╕реЛрд▓ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред рд╣рдо рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ
NVIDIA CUDA, рдкрд╛рдпрдерди 2, рдкрд╛рдпрдерди 3 рдХреЗ рдЕрдиреБрднрд╛рдЧред

рдЕрдЧрд▓рд╛, рд╣рдо рд╕рдорд╛рдзрд╛рди рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВред рдЖрдкрдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдФрд░
рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдореЗрдВ рдХрдИ рдШрдВрдЯреЗ рд▓рдЧ рд╕рдХрддреЗ рд╣реИрдВред
cmake --build %opencvBuild% --target ALL_BUILD --config Release
рд╕рдорд╛рдзрд╛рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
cmake --build %opencvBuild% --target INSTALL --config Release
рд╕рдлрд▓ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рдмрд╛рдж,
OPENCV_DIR рд╕рд┐рд╕реНрдЯрдо рд╡реИрд░рд┐рдПрдмрд▓
C: \ OpenCV \ opencv-4.1.1 \ build \ install \ x64 \ vc15 \ bin рд╕реЗ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рднреА
рдкрд╛рде рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред
рдХрд╕реМрдЯреА
рд╣рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрд╛ рдХреЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
CUDA рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде
OpenCV рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗред
OpenCV рдХреЛ Visual Studio рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ- рд░рд┐рд▓реАрдЬ / x64 рдмрд┐рд▓реНрдб рдкреНрд░рдХрд╛рд░ рд╕реЗрдЯ рдХрд░реЗрдВ (рдбреАрдмрдЧ рдХреЗ рд▓рд┐рдП, рдбреАрдмрдЧ рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде OpenCV рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ)
- рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЧреБрдг тЖТ C / C ++ тЖТ рд╕рд╛рдорд╛рдиреНрдп тЖТ рдЕрддрд┐рд░рд┐рдХреНрдд "рд╢рд╛рдорд┐рд▓" рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди "C: \ OpenCV \ opencv-4.1.1 \ build \ install \" рдЬреЛрдбрд╝реЗрдВ
- рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЧреБрдг тЖТ рд▓рд┐рдВрдХрд░ тЖТ рд╕рд╛рдорд╛рдиреНрдп тЖТ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП "C: \ OpenCV \ opencv-4.1.1 \ build \ install \ x64 \ vc16 \ lib" рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВ
- рдЕрддрд┐рд░рд┐рдХреНрдд рдЧреБрдгреЛрдВ рдХреЗ рдЕрдВрдд рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЧреБрдг тЖТ рд▓рд┐рдВрдХрд░ тЖТ рд╕рд╛рдорд╛рдиреНрдп тЖТ "рдЬреЛрдбрд╝реЗрдВ; opencv_world411.lib" ("; opencv_world411d.lib" рдбрд┐рдмрдЧ рдХреЗ рд▓рд┐рдП)
рдкрд╛рдпрдерди 3 рдЙрджрд╛рд╣рд░рдг import numpy as np import cv2 as cv import time rand = np.random.random((1024, 1024)).astype(np.float32) h_array1 = np.stack([rand, rand],axis=2) h_array2 = h_array1 d_array1 = cv.cuda_GpuMat() d_array2 = cv.cuda_GpuMat() d_array1.upload(h_array1) d_array2.upload(h_array2) start = time.time() cv.cuda.gemm(d_array1, d_array2, 1, None, 0, None, 1) end = time.time() print("Time elapsed:", end - start, "sec")
рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ
Time elapsed: 0.3130002021789551
C ++ рдЙрджрд╛рд╣рд░рдг #include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/cudaarithm.hpp> using namespace std; using namespace cv; using namespace cv::cuda; int main() { Mat h_array1 = Mat::ones(1024, 1024, CV_32FC2); Mat h_array2 = Mat::ones(1024, 1024, CV_32FC2); Mat h_array3 = Mat::zeros(1024, 1024, CV_32FC2); Mat h_result; GpuMat d_array1, d_array2, d_array3, d_result; d_array1.upload(h_array1); d_array2.upload(h_array2); const clock_t begin_time = clock(); cuda::gemm(d_array1, d_array2, 1.0, d_array3, 0.0, d_result); cout << "Time elapsed: " << (float(clock() - begin_time) / CLOCKS_PER_SEC) << " sec" << endl; d_result.download(h_result); return 0; }
рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ
Time elapsed: 0.354
рдирд┐рд╖реНрдХрд╛рд╕рди
OpenCV рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
cmake --build %opencvBuild% --target uninstall --config Release
рдФрд░
OPENCV_DIR рд╕рд┐рд╕реНрдЯрдо рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВ рдФрд░
PATH рд╕реЗ OpenCV рдХрд╛ рд░рд╛рд╕реНрддрд╛ рдирд┐рдХрд╛рд▓реЗрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ
рд╡рд┐рдВрдбреЛрдЬ 10 рдХреЗ рд▓рд┐рдП
рдУрдкрдирд╕реАрд╡реА 4 рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХреАред рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо
рд╡рд┐рдВрдбреЛрдЬ 8.1 рдФрд░
рд╡рд┐рдВрдбреЛрдЬ 10 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЗрд╕реЗ
рд╡рд┐рдВрдбреЛрдЬ 7 рдкрд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕реНрд░реЛрддреЛрдВ рдХреА рд╕реВрдЪреА рджреЗрдЦреЗрдВред
PS рдЕрдВрдд рдореЗрдВ, рд╣рдо рд╕рднреА рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХрдорд╛рдВрдбреНрд╕ рдХреЛ рдПрдХ
.bat рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд╛рдПрдВрдЧреЗ, рдЬреЛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
install_opencv411.bat cd C:\OpenCV git clone https://github.com/opencv/opencv_contrib.git -b "4.1.1" git clone https://github.com/opencv/opencv.git -b "4.1.1" ren opencv opencv-4.1.1 ren opencv_contrib-4.1.1 set "opencvSource=opencv-4.1.1" set "opencvExtraModules=opencv_contrib-4.1.1/modules" set "opencvBuild=%opencvSource%\build" set "compiler=Visual Studio 16 2019" set "buildType=Release" set "python2_executable=C:/Python27/python.exe" set "python2_include_dir=C:/Python27/include" set "python2_library=C:/Python27/libs/python27.lib" set "python2_numpy_include_dirs=C:/Python27/Lib/site-packages/numpy/core/include" set "python2_packages_path=C:/Python27/Lib/site-packages" set "python3_executable=C:/Users/root/Anaconda3/python.exe" set "python3_include_dir=C:/Users/root/Anaconda3/include" set "python3_library=C:/Users/root/Anaconda3/libs/python37.lib" set "python3_numpy_include_dirs=C:/Users/root/Anaconda3/lib/site-packages/numpy/core/include" set "python3_packages_path=C:/Users/root/Anaconda3/Lib/site-packages" cmake ^ -B"%opencvBuild%/" ^ -H"%opencvSource%/" ^ -G"%compiler%" ^ -Ax64 ^ -DCMAKE_BUILD_TYPE=%buildType% ^ -DBUILD_opencv_world=ON ^ -DINSTALL_TESTS=OFF ^ -DINSTALL_C_EXAMPLES=OFF ^ -DBUILD_EXAMPLES=OFF ^ -DOPENCV_EXTRA_MODULES_PATH="%opencvExtraModules%/" ^ -DBUILD_PROTOBUF=ON ^ -DBUILD_opencv_python_bindings_generator=ON ^ -DWITH_CUDA=ON ^ -DCUDA_FAST_MATH=ON ^ -DWITH_CUBLAS=ON ^ -DCUDA_ARCH_PTX=7.5 ^ -DBUILD_opencv_python2=ON ^ -DPYTHON2_EXECUTABLE="%python2_executable%" ^ -DOPENCV_PYTHON2_VERSION=2.7.16 ^ -DPYTHON2_INCLUDE_DIR="%python2_include_dir%" ^ -DPYTHON2_LIBRARY="%python2_library%" ^ -DPYTHON2_NUMPY_INCLUDE_DIRS="%python2_numpy_include_dirs%" ^ -DPYTHON2_PACKAGES_PATH="%python2_packages_path%" ^ -DBUILD_opencv_python3=ON ^ -DPYTHON3_EXECUTABLE="%python3_executable%" ^ -DOPENCV_PYTHON3_VERSION=3.7.3 ^ -DPYTHON3_INCLUDE_DIR="%python3_include_dir%" ^ -DPYTHON3_LIBRARY="%python3_library%" ^ -DPYTHON3_NUMPY_INCLUDE_DIRS="%python3_numpy_include_dirs%" ^ -DPYTHON3_PACKAGES_PATH="%python3_packages_path%" cmake --build %opencvBuild% --target ALL_BUILD --config Release cmake --build %opencvBuild% --target INSTALL --config Release
рд╕реВрддреНрд░реЛрдВ рдХреА рд╕реВрдЪреА
- docs.opencv.org/4.1.1/d3/d52/tutorial_windows_install.html
- www.learnopencv.com/install-opencv-4-on-windows
- jamesbowley.co.uk/build-opencv-4-0-0-with-cuda-10-0-and-intel-mkl-tbb-in-windows
- lightbuzz.com/opencv-cuda
- OpenCV рдФрд░ CUDA рдХреЗ рд╕рд╛рде рд╣реИрдВрдбреНрд╕-рдСрди GPU- рддреНрд╡рд░рд┐рдд рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬрд╝рди рдХреА рдкреБрд╕реНрддрдХ рдХрд╛ рд╕реНрд░реЛрдд "рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА"