Tuesday, September 17, 2024

complie opencv with gpu support (cuda)

THE BEST


Build and Install OpenCV 4.5.1 with CUDA GPU บน Windows 10 แบบละเอียดยิบ

ติดตั้ง OpenCV v.4.5.1 เพื่อรันบน CUDA GPU บน Windows 10 ด้วยการ makefile มาเริ่มกันเลยครับ

  1. ขั้นตอนการเตรียมความพร้อมของระบบ
  2. ติดตั้ง OpenCV 4.5.1 for CUDA GPU

1.ขั้นตอนการเตรียมความพร้อมของระบบ

1.1 เตรียมความพร้อมของระบบโดยทำการติดตั้ง package ต่อไปนี้ก่อน

  • Ananconda Python 3.8
  • Microsoft Visual C++ 2015–2019 Redistributable (x64)
  • NVIDIA CUDA
  • cuDNN

สามารถดูได้จากบทความ การติดตั้ง TensorFlow GPU v. 2.4.1 Python 3.8 บน Windows 10 แบบง่าย

1.2 ติดตั้ง CMake ในบทความนี้ใช้ cmake-3.19.4-win64-x64.msi

1. https://cmake.org

1.3 สร้างโฟรเดอร์สำหรับ build project ในที่นี้จะสร้างไว้ที่ OpenCV-Build

1.4 Download OpenCV 4.5.1 Source จากเว็ป https://opencv.org/releases/ และทำการแตกไฟล์ไว้ที่พาธ OpenCV-Build

2. https://opencv.org/releases

1.5 Download opencv_contrib จากเว็ป https://github.com/opencv/opencv_contrib และทำการแตกไฟล์ไว้ที่พาธ OpenCV-Build

3. OpenCV_Build

2.ติดตั้ง OpenCV 4.5.1 for CUDA GPU

2.1 สร้างโฟลเดอร์ build และ install ไว้ที่พาธ C:\OpenCV-Build

4. folder for makefile

2.2 เปิดโปรแกรม CMake
- กำหนดพาธ Where is the source code: ไว้ที่ C:/OpenCV-Build/opencv-4.5.1
- กำหนดพาธ Where to build the binaries: ไว้ที่ C:/OpenCV-Build/build
- ติ๊กช่อง Grouped

5. Cmake config #1

2.3 ที่ Configure > Optional platform for generator เลือก x64

6. Cmake config #2

2.4 หากสำเร็จจะได้ผลลัพธ์ตามรูปที่ 7.

7. Result of the first config step

2.5 ค้นหาและเลือกตรงช่อง WITH_CUDA

8. Cmake config #3

2.6 ค้นหาและเลือกตรงช่อง BUILD_opencv_dnn

9. Cmake config #4

2.7 ค้นหาและเลือกตรงช่อง OPENCV_DNN_CUDA

10. Cmake config #5

2.8 ค้นหาและเลือกตรงช่อง ENABLE_FAST_MATH

11. Cmake config #6

2.9 ค้นหาและเลือกตรงช่อง BUILD_opencv_world

12. Cmake config #7

2.10 ให้แน่ใจว่า ได้เลือกทั้งสามตัวนี้แล้ว BUILD_opencv_python3, BUILD_opencv_python_bindings_generator, BUILD_opencv_python_tests

13. Cmake config #8

2.11 กำหนดพาธ ตรงช่อง OPENCV_EXTRA_MODULES_PATH

เป็น C:/OpenCV-Build/opencv_contrib-4.5.1/modules กด Configure

14. Cmake config #9

2.12 หลังจากนั้น ให้ค้นหาและเลือกตรงช่อง CUDA_FAST_MATH

15. Cmake config #10

2.13 หลังจากนั้น ให้ค้นหาและเลือกตรงช่อง CUDA_ARCH_BIN

16. Cmake config #11

ค้นหารุ่นการ์ดจอด้วยคำสั่ง

nvidia-smi

ในที่นี้ใช้ GeForce GTX 1650 ตามรูปที่ 17

17. nvidia-smi

จากนั้นให้ไปที่เว็ป https://en.wikipedia.org/wiki/CUDA เพื่อค้นหา Compute
capability (version)

18. en.wikipedia.org/wiki/CUDA

ในที่นี้คือค่า 7.5 นำไปใส่ในช่อง CUDA_ARCH_BIN ดังรูปที่ 19

19. Compute capability CUDA_ARCH_BIN version

2.14 ค้นหาและเลือกตรงช่อง CMAKE_INSTALL_PREFIX

แล้วแก้ไขพาธเป็น C:/OpenCV-Build/install ดังรูปที่ 20

20. Cmake config #12

2.15 ค้นหาและเลือกตรงช่อง CMAKE_CONFIGURATION_TYPES ลบ Debug ออก เหลือแค่ Releaseดังรูปที่ 21. กด Configure

21. Cmake config #13

2.16 จะได้ผลลัพธ์ตามรูปที่ 22 จากนั้นกดปุ่ม Generate

22. Cmake config #14

2.17 เปิด Command prompt (Run as administrator) และรันคำสั่งนี้

"C:\Program Files\CMake\bin\cmake.exe" --build "C:\OpenCV-Build\build" --target INSTALL --config Release
23. Makefile

ซึ่งขั้นตอนนี้จะใช้เวลานานพอสมควร รอจนกว่าจะเสร็จสิ้นกระบวนการ

24. Makefile complete

หลังจากที่รอกันมานานนม เราก็จะสามารถใช้งาน OpenCV v4.5.1 ได้แล้ว โดยรันคำสั่ง

python
import cv2
print(cv2.__version__)
25. Finally Installation Completed

จะได้ผลลัพธ์การรัน OpenCV บน base environment ดังรูป

++ Special plus การติดตั้ง OpenCV บน environment อื่น !!

conda -n opencv-gpu python==3.8
conda activate opencv-gpu

ที่ CMake กำหนดค่า python3 ให้ชี้ไปที่พาธที่สร้าง environment ไว้ กด Configure, Gennerate และทำขั้นตอนที่ 2.17 อีกครั้ง

กำหนดค่า CMake
ผลลัพธ์การรัน OpenCV บน New Environment

จะได้ผลลัพธ์ดังรูป ขอขอบคุณทุกท่านที่อ่านมาถึงตรงนี้ หวังว่าคงจะมีประโยชน์ไม่มากก็น้อยนะครับ ในบทต่อไป เราจะมารันโปรแกรมที่ใช้ OpenCV บน GPU กันต่อครับ ขอบคุณครับ


CR
1. https://amornpan.medium.com/build-and-install-opencv-4-5-1-with-cuda-gpu-%E0%B8%9A%E0%B8%99-windows-10-%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B8%A5%E0%B8%B0%E0%B9%80%E0%B8%AD%E0%B8%B5%E0%B8%A2%E0%B8%94%E0%B8%A2%E0%B8%B4%E0%B8%9A-5751c56e8c5c
2. https://www.youtube.com/watch?v=YsmhKar8oOc

3. https://jordanbenge.medium.com/anaconda3-opencv-with-cuda-gpu-support-for-windows-10-e038569e228

  --3. was useful--

4. if install new python need to  --> pip install numpy

5.dnn lib copy lib match version into cuda vX.X