Hướng dẫn install opencv-python 3.9 windows

Hướng dẫn install opencv-python 3.9 windows

OpenCV (Open Source Computer Vision) là một thư viện mã nguồn mở và đa nền tảng trong lĩnh vực thị giác máy tính. OpenCV hỗ trợ khá nhiều ngôn ngữ lập trình như C/C++, C#, Python, Java, Matlab, … Trong phạm vi bài viết này, mình xin chỉ trình bày cách cài đặt OpenCV với ngôn ngữ Python.

Download Python từ trang chủ: https://www.python.org/

Hướng dẫn install opencv-python 3.9 windows

Chạy file cài đặt sau khi download xong.

Hướng dẫn install opencv-python 3.9 windows

Check vào mục Add Python 3.7 to PATH để Python được tự động thêm vào biến môi trường, sau đó bấm vào Install Now để bắt đầu cài đặt.

Hướng dẫn install opencv-python 3.9 windows

Sau khi cài đặt hoàn tất, mở command line lên và chạy thử lệnh sau để kiểm tra.

python

Hướng dẫn install opencv-python 3.9 windows

2. Cài đặt OpenCV

Pip là hệ thống quản lý các package của Python. Mình có thể tìm kiếm các package mà pip hỗ trợ thông qua lệnh pip search.

pip search "opencv"

Hướng dẫn install opencv-python 3.9 windows

Như hình trên mình thấy, pip hiện tại hỗ trợ package opencv-python (phiên bản 3.4.2.16), nên mình có thể cài đặt OpenCV cho Python thông qua pip. Sử dụng lệnh pip install để cài đặt OpenCV.

pip install opencv-python==3.4.2.16

Hướng dẫn install opencv-python 3.9 windows

Kiểm tra lại, nếu có thể import được OpenCV mà không báo lỗi thì việc cài đặt thành công.

import cv2

<

Hướng dẫn install opencv-python 3.9 windows

3. Tham khảo

Danh sách các lệnh của pip: https://pip.pypa.io/en/stable/reference/

Post navigation

Để viết code Opencv bằng python bạn chỉ cần cài package opencv-python là được, tuy nhiên package này chỉ chạy trên CPU. Muốn sử dụng sức mạnh CUDA của GPU NVIDA thì các bạn phải tự make -> build -> install thủ công. Bài viết này hướng dẫn các bước để cài đặt package opencv-python từ source code có sử dụng CUDA.

Lưu ý với các bạn OpenCV có khả năng linh hoạt cực cao, có thể gọi tới các model Deep Learning khác bằng module DNN. Do đó sau khi build OpenCV python CUDA thì các bạn có thể chạy các thuật toán Deep Learning mới nhất hiện nay mà không cần implement quá phức tạp.

Bước 1: chuẩn bị các tool cần thiết

  1. Visual Studio 2017: để build source code (không nên chọn cũ hơn, còn 2019 thì không ổn định)
  2. Python 3.7.3 x64 (3.6 trở lên là được): chọn bản Windows x86-64 executable installer để download, cài đặt xong thì restart máy
  3. Cmake (mình đang sử dụng Cmake 3.14.2)
  4. CUDA 10.1: cài đặt thành công thì mới có thể build OpenCV sử dụng CUDA

Bước 2: chuẩn bị source code

Download source code OpenCV 4.5.0 tại link https://github.com/opencv/opencv/releases/tag/4.5.0, chọn file Source code (zip)

Download source code OpenCV contrib 4.5.0 tại link: https://github.com/opencv/opencv_contrib/releases/tag/4.5.0

Contrib viết tắt của từ Contribution – đóng góp, đây là code do cộng đồng mã nguồn mở viết thêm 1 số thư viện, ví dụ như Face. Nhưng quan trọng nhất là lib cudev để gọi hàm cho GPU xử lý

Trong máy mình sẽ để trong 2 folder là D:\Lib\opencv\opencv450D:\Lib\opencv\opencv_contrib-4.5.0

Bước 3: config Cmake để tạo solution Visual Studio

Các bạn chọn folder source và folder build giống hình dưới, sau đó chọn tool để build là Visual Studio 15 2017, chọn platform là x64 vì CUDA chỉ chạy được trên x64

Hướng dẫn install opencv-python 3.9 windows

Set folder contrib giống hình dưới bằng cách tìm từ khóa extra, sau đó chỉnh đường dẫn đến folder contrib đã download, lưu ý chọn folder con modules

Hướng dẫn install opencv-python 3.9 windows

Tương tự chọn các option CUDA, lưu ý là để chọn được các bạn phải cài CUDA thành công. Đọc bài Tăng tốc Deep Learning bằng CUDA 10.1 để biết cách cài đặt CUDA

Hướng dẫn install opencv-python 3.9 windows

Tương tự như trên các bạn check tiếp các tham số sau:
ENABLE_FAST_MATH
ENABLE_PYLINT: dùng cho Python

Ngoài ra có 1 số thứ mình không thích hoặc không cần thiết nên mình bỏ check:
ENABLE_PRECOMPILED_HEADERS: config project build nhiều nơi phải sửa macro nhiều quá nên mình bỏ
INSTALL_PDB: chỉ dùng để debug C++
WITH_JASPER: 1 loại file ảnh rất ít dùng
WITH_OPENEXR: 1 loại file ảnh rất ít dùng
WITH_WEBP: Webp cũng chỉ có 1 số trang gần đây dùng, check hay uncheck tùy bạn
BUILD_PERF_TESTS: test hiệu năng
BUILD_TESTS: test case

Sau khi check xong giống như trên thì ấn nút Generate để tạo ra các file solution *.sln và project *.vcxproject. Trong quá trình generate sẽ có download 1 số file nên còn tùy thuộc đường truyền của bạn, thường thì tầm 1-2 phút thôi.

Sau khi thành công sẽ có log Configuring doneGenerating done như bên dưới

Hướng dẫn install opencv-python 3.9 windows

Các file solution và project được make ra thành công trong folder D:\LIB\opencv\opencv450\build

Hướng dẫn install opencv-python 3.9 windows

Trong quá trình config/make/build rất dễ xảy ra sai sót, mình recommend các bạn sử dụng SVN hoặc Git để quản lý, nếu sai revert lại rồi làm tiếp

Bước 4: config solution và build

Mở solution OpenCV.sln lên, ấn chuột phải vào project INSTALL chọn Make as startup project

Hướng dẫn install opencv-python 3.9 windows

Ở build mode chọn Release

Hướng dẫn install opencv-python 3.9 windows

Sau đó ấn nút build và chờ, trên PC dùng CPU core i5 2500, RTX 2060 chạy mất gần 6 tiếng để build tất cả project do build CUDA hơi lâu.

Hướng dẫn install opencv-python 3.9 windows

Nguyên lý của việc build là Visual Studio sẽ compile code thành file *.pyd tại đường dẫn .\build\lib\python3\Release\cv2.cp37-win_amd64.pyd, sau đó copy vào folder C:\Users\vohungvi\AppData\Local\Programs\Python\Python37\Lib\site-packages\cv2\python-3.7

VD máy của mình sau khi install xong OpenCV-python sử dụng CUDA

Hướng dẫn install opencv-python 3.9 windows

Bước 5: kiểm tra cài đặt thành công hay không

Mở cmd chạy Python, trong python import OpenCV và print số GPU đang sử dụng, nếu số lượng lớn hơn 0 là đúng (máy mình hiện ra 1 do chỉ có 1 GPU)

python
import cv2
cv2.cuda.getCudaEnabledDeviceCount()

Hướng dẫn install opencv-python 3.9 windows

Bước 6: chạy code YOLO detect object để so sánh tốc độ

Các bạn clone source code YOLO example tại link https://thigiacmaytinh.com/phat-hien-vat-the-bang-yolo-bai-2-thu-nghiem-cac-model-train-san.

Mở file YOLOv3.py, tìm tới đoạn: # if install opencv-python CUDA successful uncomment 3 lines bellow rồi uncomment 3 dòng bên dưới. Đoạn code đó kiểm tra số GPU được enable và chạy với CUDA nếu số GPU > 0

Sau đó chạy file 3.Predict_video.bat, nếu CUDA load như hình dưới thì các bạn đã thành công. Tốc độ xử lý 1 frame fullHD từ 700ms giảm xuống còn 20ms.

Hướng dẫn install opencv-python 3.9 windows

Chúc các bạn thành công