gilbert가 쓴 instance segmentation 활용기를 따라하다보면, 문제가 발생할 수 있다. 두 가지 고비가 있는데, 우선 첫번째로 labelme로 경계면을 세세하게 따준 예쁜 라벨링을 coco dataset format으로 변환한 것을 coco dataloader에 register 해주는 데에 생기는 문제다.
1. coco dataloader register
이것은 크게 파일 경로 설정 문제와 파이썬 코드 실행간에 정보 단절이 있다.
파일 경로 설정 문제의 경우, 데이터 라벨링에 적힌 이미지 파일 경로대로 labelme2coco.py가 변환을 할 것인데, 이 변환 결과를 저장하는 train.json에는 이 경로를 그대로 반영한다. 나의 경우, 여러 사람들이 하나의 폴더 구성 규칙을 정하지 않고, 각자 나름대로의 폴더명('label', 또는 'txt'...)과 나름대로의 위치를 설정해서 모두가 달랐다. 하지만, coco dataset 변환을 위해선 오류가 나지 않는 안전한 이미지들과 폴더 배치 형식이 있고, 이를 따르는 것이 안전할 것이라 판단되어 gilbert의 형식으로 전부다 수정해주었다.
두번째로, gilbert의 colab은 jupyter notebook과 같이 한 줄 한줄 실행해도 정보가 이어진다. 하지만 내 컴퓨터(로컬)에서 이 코드들을 각각의 python 파일로 저장하고 각각 실행하면 앞서 coco dataloader에 등록한 내 dataset 정보가 날라가는 걸지도 모르겠다 싶어 한 파일에 <register-dataload(학습을 할 수 있는 coco dataset 형식대로 불러온다.)-radom sample check-train-inference)를 한 python 파일 안에 넣고 실행시켰다.
2. 실행은 마음대로 편하게 이뤄지지 않는다.
<register-dataload-radom sample check-train-inference> 과정 중에서 register은 성공적으로 마쳤으나, dataload와 random sample check 중 어딘가에서 cv2와 엮인 qt가 말썽이었다.
에러문구는 "플러그인이 있으나, 불러지지 않아서 문제다!" 라고 적혀졌으나, 수많은 해결과정중 가장 확실하고 많은 사람들을 감동시킨 해결방법은 그 플러그인을 삭제하는 방법이었다. 나도 다른 방법은 다 안되고 이것으로 문제를 끝냈다.
[BUG] qt.qpa.plugin: Could not load the Qt platform plugin "xcb" -- fixed
https://github.com/wkentaro/labelme/issues/842
숨겨진 경로 안에 삭제해야할 플러그인 폴더 자체를 이름만 남기고 그 안에 내용을 날려버리자.
'건축 컴퓨터 비전 > Computer Vision' 카테고리의 다른 글
다양한 visual slam 자료 (0) | 2022.07.08 |
---|---|
nvidia driver와 cudatoolkit과 nvcc 설치 (0) | 2022.02.28 |