(1) gstreamer가 설치된 docker image를 다운받고 이것으로 container진입
docker pull ducksouplab/ubuntu-cuda-gstreamer:ubuntu22.04-cuda11.7.0-gstreamer1.22.0
docker run --gpus all -it ducksouplab/ubuntu-cuda-gstreamer:ubuntu22.04-cuda11.7.0-gstreamer1.22.0 /bin/bash
(2) opencv, opencv_contrib의 소스를 다운 받음
mkdir -p /opencv/src && cd /opencv/src
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.7.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.7.0.zip
unzip opencv.zip && unzip opencv_contrib.zip
(3) build폴더 만듬
cd /opencv
rm -rf build
mkdir build && cd build
(4) PKG_CONFIG_PATH 초기화 (필수)
unset PKG_CONFIG_PATH
(5) cmake 구성
# 이대로 복사하면 실행 안됨. chatgpt에 넣고 다시 생성
# 당연히 src는 다 받아 놓은 상태여야
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=../src/opencv_contrib-4.7.0/modules \
-D WITH_GSTREAMER=ON \
-D WITH_CUDA=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D WITH_CUBLAS=1 \
-D WITH_V4L=ON \
-D WITH_OPENGL=ON \
-D BUILD_opencv_python3=ON \
-D PYTHON3_EXECUTABLE=$(which python3) \
-D PYTHON3_INCLUDE_DIR=$(python3 -c "from sysconfig import get_paths as gp; print(gp()['include'])") \
-D PYTHON3_LIBRARY=$(python3 -c "from sysconfig import get_config_var; print(get_config_var('LIBDIR'))")/libpython3.10.so \
-D BUILD_EXAMPLES=OFF ../src/opencv-4.7.0
(6) make 실행
make -j$(nproc)
(7) install 실행
make install
ldconfig
(8) 설치 확인 및 GStreamer 체크: gstreamer가 yes인지 체크
python3 -c "import cv2; print(cv2.__version__); print(cv2.getBuildInformation())"
(9) container를 이미지화
sudo docker ps -a
sudo docker commit 7b2450127c68 opencv-gst-cuda-v2:latest # 여기서 만듬
sudo docker images
sudo docker run --gpus all -it opencv-gst-cuda-v2:latest /bin/bash
(10) Docker Hub 업로드
docker ps -a
sudo docker login -u 도커id # 비번넣어야
sudo docker tag opencv-gst-cuda-v2:latest funmv/opencv-gst-cuda-v2:latest
sudo docker push funmv/opencv-gst-cuda-v2:latest
댓글 없음:
댓글 쓰기