Trouble 55

Docker 사용 시 Error response from daemon: could not select device driver "" with capabilities: [[compute utility graphics gpu]] 문제

멀쩡히 docker를 잘 사용하다가 nvidia driver를 업데이트한 이후로 다음 오류가 발생했다. Error response from daemon: could not select device driver "" with capabilities: [[compute utility graphics gpu]] 1) 기존 만들어둔 컨테이너를 start/attach하는 경우 2) 새로운 컨테이너는 run하는 경우 위 두 경우 모두에서 같은 오류가 났다. 해결법 sudo apt-get update sudo apt-get install nvidia-container-toolkit sudo systemctl restart docker nvidia container toolkit을 설치하고 docker를 재시작하면 해..

Trouble/Docker 2023.12.12

Pycharm 에서 matplotlib.pyplot 사용 시, module 'backend_interagg' has no attribute 'FigureCanvas' 문제

pycharm과 matplotlib.pyplot 둘 다 python 코딩할 때 굉장히 많이 쓰는데 특정 조합에서 다음과 같은 에러가 났었다. AttributeError: module 'backend_interagg' has no attribute 'FigureCanvas' 나 같은 경우, pycharm 2020 + matplotlib 3.8.2로 사용했을 때 위 오류가 났다. 위 에러는 site-packages/matplotlib.pyplot.py, line 343 에서 발생한 오류라서 matplotlib 자체 오류이고 뭔가 코딩을 잘못해서 그런 것은 아니다. 원인 이런 오류의 대부분은 버전 문제이듯이, 이 문제도 기본적으로 버전 문제가 맞다. FigureCanvas는 버전 3.6에서 deprecated..

ERROR:optimizer got an empty parameter list

최근 python으로 최적화 코드를 짜던 와중 발견한 오류다. pytorch의 nn.Parameter를 이용해서 짜거나 CVPR2023에 공개된 pypose (https://github.com/pypose/pypose) 의 pp.Parameter를 이용해서 짤 때 발견된다. 참고로 pypose는 pytorch와 호환되도록 짜여져있어서 똑같은 에러가 발생했다. 오류명에서도 알 수 있다시피 pytorch optimizer나 pypose optimizer 모두 optimzier 에게 최적화 대상이 되는 Neural network model 혹은 Error model의 파라미터를 넘겨주어야 하는데 이게 없다는 소리다. 즉, optmizer(model)로 초기화를 할 때 model.parameters()가 호출되..

import cv2 시 'numpy._DTypeMeta' object is not subscriptable 오류

pip install opencv-python으로 cv2 설치하는 것은 아주 간단한데, 설치하고 나서 다음 오류가 떴다. Traceback (most recent call last): File "/home/jseob/Desktop/yjs/codes/3DDFA_V2/demo.py", line 7, in import cv2 File "/home/jseob/anaconda3/envs/face/lib/python3.9/site-packages/cv2/__init__.py", line 181, in bootstrap() File "/home/jseob/anaconda3/envs/face/lib/python3.9/site-packages/cv2/__init__.py", line 175, in bootstrap if..

Trouble/Vision 2023.09.04

이미지가 일부가 깨져 열리지 않는 문제 : image file is truncated

이미지 파일이 잘 존재하고 뷰어로는 잘 열리는 상황에서도 opencv cv2.imread로 이미지가 읽히지 않는 현상이 있다. 결론부터 말하면 이미지 파일이 손상되어있는 것이 원인인데 뷰어에서는 열리므로 약간 손상되어있는 것이다. 자세히 보면 아래 사진처럼 뷰어에서 일부가 회색으로 보일 것이다. 이미지가 실제로 (128, 128, 128)을 갖는 것이 아니라 pixel에 값이 존재 하지 않는 것이다. 문제 상황 check0 = os.path.exists(img_path) # True check1 = os.path.isfile(img_path) # True cvimg = cv2.imread(img_path) # None pilimg = Image.open(img_path) # image file is tr..

Trouble/Vision 2023.08.25

cv2.fisheye 사용 시 error: (-215:Assertion failed) objectPoints.type() == CV_32FC3 || objectPoints.type() == CV_64FC3 in function 문제

cv2.error: OpenCV(4.7.0) /io/opencv/modules/calib3d/src/fisheye.cpp:77: error: (-215:Assertion failed) objectPoints.type() == CV_32FC3 || objectPoints.type() == CV_64FC3 in function 'projectPoints' cv2.fisheye를 쓸 일이 드물긴 하지만 가끔 어쩌다 쓸 때 위와 같은 오류를 자주 볼 수 있다. 오류명만 봐서는 사용하는 변수 타입이 float64, flaot32 중 하나로 통일이 안되어있단 뜻 같은데 타입을 맞춰도 오류가 해결되지 않기 때문에 조금 귀찮다. 그 경우 대부분 objectPoints 즉, 사용하는 3D point의 shape이 잘못되..

Trouble/Vision 2023.06.27

Docker container 내에서 Open3D visualization 문제 : [Open3D WARNING] GLFW Error: X11: Failed to open display unix:1

Docker container 내에서 open3d를 이용한 geometry visualization할 경우, 다음과 같은 오류가 뜰 수 있다. No protocol specified [Open3D WARNING] GLFW Error: X11: Failed to open display unix:1 [Open3D WARNING] Failed to initialize GLFW [Open3D WARNING] [DrawGeometries] Failed creating OpenGL window. OpenCV를 이용한 image visualization을 할 때 비슷한 에러가 날 경우, 다음 argument를 추가함으로써 간단히 해결했지만 Open3D는 몇가지가 더 있다. -v /tmp/.X11-unix:/tmp/...

Trouble/Docker 2023.04.18

C++ 코드 build 시, C++ 버전으로 인한 실패 해결법

C++ 코드를 build하는 과정에서 CMake, make를 한 번만 쳐서 성공하는 경우는 거의 없다. 환경 설정이 간단하지 않기 때문에 오류명을 보면서 시도의 시도를 거듭해서 build하는 경우가 더 많다. 나 역시도 그런다. 특히 C++을 안 쓴지 오래 돼서 사실 상 초급자가 되어버렸기 때문에 실수 때문이든 몰라서든 자주 구르면서 build를 가까스로 해낸다. 내가 겪은 오류 중 가장 간단해보이지만 원인을 찾아내기까지 가장 오래 걸렸던 C++ 버전 관련 오류의 해결법을 기록해두고자 한다. 오류 양상std와 같은 C++ 대표 namespace에 함수나 변수가 없다는 오류들.thirdparty 설치를 빼먹지 않았음에도 발생하는 not found, missing 오류들.예를 들어, std::integer_..

Docker 컨테이너 내 opencv-python 설치 시 ImportError: libGL.so.1 문제

ImportError: libGL.so.1: cannot open shared object file: No such file or directoryPython opencv를 사용하고자 하면 단순하게 pip install opencv-python을 입력하면 끝이라 큰 이슈가 없지만 Docker 컨테이너 내에서 같은 명령어를 치면 위 오류가 날 수 있다. 딱 봐도 libGL이 없다는 오류라는 것을 알 수 있는데 libgl1-mesa-glx를 설치해주면 된다. 컨테이너에 직접 설치할 경우, 다음과 같이 하면 끝이고pip install libgl1-mesa-glx Docker 이미지에 선반영되게 만들고 싶다면, DockerFile 내에 다음을 추가해주면 된다. -y tag를 까먹지 말자.~~~~ 생략 RUN a..

Trouble/Docker 2023.03.21