Frameworks/OpenCV

    [OpenCV] cv2.fillPoly 도중 Segmentation fault + gdb 사용법

    [OpenCV] cv2.fillPoly 도중 Segmentation fault + gdb 사용법

    Introduction 얼마 전 모델 학습을 돌리다가 시작 후 3~4일쯤 지나서 Segmentation fault (core dumped) 라는 메시지와 함께 아무 에러 트레이스백 없이 프로세스가 종료되는 현상이 반복적으로 발생했다. 따로 디버거를 활성화 시켜 놓고 돌리지도 않았고, 무엇보다도 학습 시작 후 한참 이후에 아무 정보 없이 프로세스가 종료되니 디버그를 도저히 진행할 수가 없었다. 그런데 어느날, 학습 시작 후 몇 분만에 에러가 재현되는 학습 세팅을 발견해 비로소 디버그 작업에 착수할 수 있었다. 빠르게 제목의 상황의 해결법을 보고 싶다면 우측 목차를 통해 문제 해결 단락으로 넘어가자! 삽질의 과정 파이썬 스크립트 실행 도중 Segmentation fault 에러가 발생할 때 파이썬 디버거 (..

    [OpenCV] TypeError: Expected cv::UMat for argument

    [OpenCV] TypeError: Expected cv::UMat for argument

    Introduction Python에서 OpenCV를 이용하다 보면 아래와 같은 에러 메시지를 분명히 본 적이 있을 것이다. TypeError: Expected cv::UMat for argument [...] TypeError: Expected Ptr for argument [...] 벌써부터 화가 난다... 말해주는 바는 명확하다. argument 뒤에 오는 인자의 타입으로 cv::UMat을 기대했지만 실제로는 아니라는 것이다. 하지만 우리가 일반적으로 파이썬 버전의 OpenCV에서 사용하는 데이터 타입은 numpy.ndarray 이다. 이 시점부터 혼란이 시작된다. numpy.ndarray에 어떤 조건이 더 걸려야 cv::UMat으로 타입 인식이 되는 걸까? 조건을 잘 만족시킨 것 같은데 왜 계속 ..