ntire 경진대회를 참가하지 않았지만, 그 데이터를 이용하여 트레이닝을 해보기위해서는

제공되지 않는 transmission map과 atmospheric light를 만들어낼 필요가 있었다.

 

그래서 다른 코드를 가져와서 transmission map과 atmopheric light를 만들어 내기로 했다.

 

아래는 생성한 transmission map과 atmospheric light이다.

* atmospheric light의 경우, 2차원 bgr로 표현할 필요가 없었지만,

* 어차피 트레이닝에 들어가면서 다시 차원을 확장하는 부분이 있길래, 첨부터 이미지처럼 취급하기로 했다.

 

여기서 내가 기억해야 할 코드 부분만을 적어두도록 하겠다.

 

transmission map의 경우 단순 1600x1200인데, 그거를 3차원으로 복사하여 확장하였다.

(BGR에 대해서)

그리고 atmospheric light의 경우, 상수값을 1600x1200x3으로 확장하였다.

또한, 기존 값이 float이기 때문에 초기값을 float로 선언하여 int로 추후에 변경하는 코드를 사용하였다.

output_name_trans = './trans/'+file[:-9]+'_trans.png'
Transmap_np = np.dstack((Transmap, Transmap))
Transmap_np2 = np.dstack((Transmap_np, Transmap))
cv2.imwrite(output_name_trans, f2i(Transmap_np2))

output_name_atmos = './atmos/'+file[:-9]+'_atmos.png'
A_np = np.full((1200, 1600, 3), A[0], dtype = np.float32)
cv2.imwrite(output_name_atmos, f2i(A_np))

 

 

 

문제 상황

코드를 돌리려던 중 본 에러를 발견.

ModuleNotFoundError: No module named 'skimage'

 

해결을 위한 시도

다음 코드를 통해 skimage를 설치.

pip install scikit-image

본 코드를 통해 설치를 한 이후는 문제가 해결되었다.

 

참고한 사이트

stackoverflow.com/questions/38087558/import-error-no-module-named-skimage

requirements.txt가 존재한다고 가정.

 

문제는 requirements.txt가 온전하지 않은 경우인데, 그런 경우에는

pip install -r <설치하고 싶은 모듈 이름과 정보>

를 쓰면 된다.

 

그리고 pytorch의 경우, pip로 설치하는 것 보다는 공식 홈페이지에 가서 cuda에 맞는 걸 깔고,

없으면 wheel로 깔아야한다.

 

여러 시도 끝에 train 성공함.

 

 

해야 하는 것.

 

윈도우의 경우, 바로 setup.py를 돌리면 에러가 나기 때문에

python setup.py install

python setup.py build

를 해주어야 한다.

 

그리고 setup.py 셋팅을 다 해주면 json 에러가 나는데, 이거는 json의 경로를 위 사진처럼 써주면 된다.

python train.py <json 경로>

그냥 기억 안날까봐 정리해두는 내용.

가상환경 목록을 확인하기 위해서는 

conda info --envs

를 입력해서 확인하면 된다.

그리고 우분투에서는 conda activate 가상환경 이름으로 구동하는 것이 아니라

source activate 가상환경이름

이렇게 구동한다.

 

 

문제 상황

kitti 데이터를 가져오는데 문제 발생

FileNotFoundError: [Errno 2] No such file or directory: 'D:\\monodepth2-master\\kitti_data\\2011_10_03/2011_10_03_drive_0034_sync\\image_02/data\\0000001441.jpg'

본 문제는 아마 파일의 경로가 리눅스에서 윈도우로 바뀌면서 생기는 문제점이라고 파악됨.

보면 경로상에 슬래쉬가 반대로 되어있는 부분이 있어서, 이 부분을 통일해주어야 한다고 생각했다.

 

해결을 위한 시도

해당 코드를 이런식으로 처리해주었다.

/ ☞ \\

 

 

아까의 슬래쉬 반대로 된 것 중에 한 군데는 고쳐졌지만, 다른 한쪽은 고쳐지지 않았다는 것을 파악하였다.

'D:\\monodepth2-master\\kitti_data\\2011_09_30/2011_09_30_drive_0033_sync\\image_02\\data\\0000000393.jpg'

이 부분은 os.path.join함수로 인해서 변경되지 않는 부분이라고 생각되어, replace문을 통해 문자열 중 /를 \\로 치환하도록 하였다.

 

FileNotFoundError: [Errno 2] No such file or directory: 'D:\\monodepth2-master\\kitti_data\\2011_09_30\\2011_09_30_drive_0034_sync\\image_02\\data\\0000000552.jpg'

 

앗 그런데 이렇게 바보같을 수가 원래 파일이 없었다.

그래서 이거를 이용해서 파일을 받아주었다.

wget -i splits/kitti_archives_to_download.txt -P kitti_data/

받고 난 다음에 추가 작성하겠다.

참고한 사이트

 

ponyozzang.tistory.com/334

 

문제 상황

train 코드를 돌리기 위해 구동하는 중에, 해당 에러 발생.

ModuleNotFoundError: No module named 'IPython'

 

해결을 위한 시도

먼저 해당 모듈의 버전을 확인하였다.

ipython --version

7.13.0 버전이라고 한다.

하지만 버전은 잘 출력되었다.

그래도 pip를 이용하여 한번 더 설치를 해보겠다.

conda install -c anaconda ipython

설치를 다시 하니 버전이 7.16.1로 업그레이드되었다.

그렇게 하니까 에러가 해결되었다!

 

참고한 사이트

stackoverflow.com/questions/45179915/importerror-no-module-named-ipython

문제 상황

레이아웃 관련해서 수정하다가 치명적인 문제를 발견하였다.

연구실 홈페이지를 수정하는 과정에서 발생했는데, 왜 발생했는지도 모르겠고,

이거 직전에 관리자 설정이 약간 버벅인걸 무시하면 안되었는데

그걸 무시하고 업데이트하고, 관리자 설정 몇 개를 건드리다보니 아예 홈페이지가 죽어버렸다.

 

홈페이지에 유달리 스팸 댓글이 많길래 확인해보니, 130000개나 스팸 댓글이 달려있었다.
그래서 그 댓글들을 일괄적으로 지우는 방법은 모르겠어서
일단 60000개의 댓글이 달려있던 공지 게시글을 지우고,
댓글을 관리자만 달 수 있게 하고, 스팸으로 의심되는 이메일 연동하지 않은 계정의 권한을 박탈했다.

그뒤로 설정 페이지가 버벅인걸 보면, 이거 때문인것같기도 하다.

 

심지어 admin을 건드려도 뭐가 되지 않고 있는 상황.

이걸 수정하기 위해서 어떤 조치를 취해야 하는지 확인해보았다.

 

따로 가리진 않겠습니다. 홈피 주소 모른척 해주세요.. 프라이버시..

Fatal error: Call to a member function getAction() on a non-object in C:\APM_Setup\htdocs\classes\db\DB.class.php on line 629

 

닷홈 호스팅(이것도 4년 전..)이 아닌 APMsetup을 이용한 웹은 안다뤄본지 5년정도 되었기 때문에, 진짜 기억이 전혀 나지 않았다.

최근에 한 코딩도 모두 C++ 아니면 자바 아니면 파이썬이었는데

진짜 미치겠다

내가 만든 게 아닌데 고장냈다는 사실이 나를 더 힘들게했다.

하지만 힘들어 할 시간에 복구를 해야한다는 생각이 더 많이 들었기 때문에 이렇게 해결과 함께 정리중이다.

 

해결을 위한 시도

 

 

1. 웹 url상으로 admin이 접근되는지부터 확인하였다.

홈피url/admin

음 그래도 똑같이 문제가 발생했다.

심지어 같은 getAction()함수에서 발생한 문제였다.

 

2. 해당 웹 페이지를 구동할 수 있게 하는 서버에 접속해야한다고 해서, 서버를 구동하고 있는 컴퓨터를 확인하였다.

 

3. 서버 컴퓨터에서 캐시파일 재생성이 필요하다는 의견이 있어서 캐시 파일 재생성을 시도하였다. (대부분의 문제는 이거로 해결하시면 될듯)

 

서버를 구동하고 있는 컴퓨터의 cache에 들어가보니, 오늘 업데이트한 내용들에 대해서 캐시가 저장되어 있는 것을 확인할 수 있었다.

저기서 queries 폴더를 날리면 거의 대부분의 문제는 해결되는데, 나의 경우는 저 cache안에 있는 폴더들을 모두 날린뒤에
다시 queries 폴더를 날려주니까 구동이 된 케이스다.

 

 

 

그래서 해당 내용들을 일단 지워주었다.

캐시기 때문에, 기존에 저장되어 있던 데이터들에는 크게 영향이 없을거라고 생각하고 지워주었다.

 

그래도 구동이 되지 않았다.

 

그래서 일단 서버 컴퓨터의 상황을 파악해보았다.

디스크 상황이 굉장히 살벌한 상황이었다.

 

 

이거 때문이었나보다.

 

일단 디스크 관리를 해주어야 할 것같아서, 기존 휴지통에 있던 애들을 모두 지워주기로 했다.

 

지웠는데도 용량이 3.5기가 정도밖에 남지 않았고, 여전히 상황은 개선되지 않았다.

 

4. apmsetup 의 서버를 껐다가 켜보기로 했다.

그래도 달라지는 부분이 없었다.

 

5. php 문제는 아닌 것 같은게 아까까지만 해도 잘 되던것이 안되는 문제였기 때문에, 디스크 또는 캐시 문제라고 판단해서 다시 기존 방법들을 되짚어보면서 재실행해보기로했다.

 

6. *(해결) 다시 아까의 cache폴더에 들어가니까

 

이렇게 쿼리가 또 생겨있길래

쿼리 폴더를 아예 날려버렸다.

 

 

이렇게 홈페이지 복구에 성공.

레이아웃에서 메뉴 출력되지 않던 문제도 해결완료.

 

이제 도메인 바꿔서 모든 게시물 수정해야하는데, 안 건드리고 싶다...

 

 

참고한 사이트

github.com/xpressengine/xe-core/issues/1926

xe1.xpressengine.com/qna/22630442

jwkim96.tistory.com/33

문제 상황

pandas를 pip로 설치한 이후에 다시 train 코드를 돌리려니 다음과 같은 에러가 발생했다.

raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled

그래서 내 오랜만에 내 가상환경에 어떤 것들이 설치되어 있었는지를 재 점검해보았다.

conda list
............................................................

pytorch                   1.4.0           cpu_py36ha775e86_0
torchvision               0.5.0           pypi_0    pypi

............................................................

pytorch와 torchvision이 멀쩡히 잘 설치되어 있었다.

 

파이썬 버전도 확인해보았다.

python -V
Python 3.6.10 :: Anaconda, Inc.

보니까 파이썬도 3.6으로 잘 설치되어있다.

 

그리고 cuda 또한 잘 설치되어있다.

GPU가 없는 컴도 아닌데 이런 에러가 난다는 것에 매우 놀라면서(논문 써야해서, 우분투에서 윈도우로 갈아타서 쓰는 중인데,

새삼스럽게 윈도우는 이런 일도 있구나 싶다)

 

해결을 위한 시도

에러 해결을 위해 서치를 해보니, 이 문제는 아무래도 pytorch의 버전에서 생기는 에러였던 듯 하다.

그래서 서치한 사이트에서 발견한 나와 같은 버전을 가진 사람 - 윈도우 10, CUDA v10.0를 가진 사람의 코멘트를 따라 다음과 같은 명령어를 입력해주었다.

pip install torch===1.5.0 torchvision===0.6.0 -f https://download.pytorch.org/whl/torch_stable.html

이렇게 되면 기존의 torch버전과 torchvision의 버전이 0.1 씩 올라가게 되는 것이다.

 

 

 

참고한 사이트

github.com/pytorch/pytorch/issues/30664

문제 상황

pytorch에서 train코드를 돌리다가 다음 에러가 발생.

data.py", line 1, in <module>
    import pandas as pd
ModuleNotFoundError: No module named 'pandas'

 

해결을 위한 시도

그래서 이렇게 코드를 입력해주었다.

pip install pandas

 

 

문제 상황

File "demo.py", line 367, in updateRGBD
AttributeError: module 'glm' has no attribute 'vec3'

PyQt5 모듈을 다운로드 받고,

다시 코드를 수행해보니 위와 같은 에러가 발생하였다.

PyGLM PySide2

를 설치하면서 생기는 문제로 보인다.

 

해당 코드의 경우 glm 이 필요없는 상황인데 glm이 같이 설치되어 발생되는 문제라고 여겨진다.

따라서, glm을 지워주도록 한다.

 

문제 해결

pip uninstall glm

해당 코드를 수행해주면 이렇게 좋은 demo가 나오는 것을 확인할 수 있었다.

 

에러 전문은 이런식으로 생겼다.

qt.qpa.plugin: Could not load the Qt platform plugin "windows" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: direct2d, minimal, offscreen, webgl, windows.

 

에러 발생하게 된 상황

- 가상환경을 통해 파이썬 코드를 돌리던 중, 3차원 시각화하는 툴을 로딩하다가 본 에러가 났다.

- 해결 시도는 두 가지였고, 해결이 된 방법은 두 번째이니, 결론을 보고 싶은 사람은 아래부터 읽기를 바란다.

 

해결을 위한 시도 1번

에러를 구글링해보니, 환경변수로 QT 플러그인 경로를 넣어주어야 하는 듯하다.

python

import sys
print(sys.path)

위 코드와 같이 입력을 해주면 파이썬이 설치된 경로를 확인할 수 있다.

 

 

나의 경우에는 가상환경으로 설치했기때문에 conda안에 있는 가상환경 폴더에 파이썬이 설치되어있었다.

이런식으로 path가 주르륵 뜨는데, 나의 경우 처음에 나와있는 경로가 실제 파이썬이 설치되어 있는 경로에 해당하였다.

제어판에 있는 고급 시스템 설정에서 환경 변수를 찾아준다.

시스템 변수의 새로만들기를 눌러준다.

그리고 새 시스템 변수의 이름은

QT_QPA_PLATFORM_PLUGIN_PATH

으로 설정해준다.

 

변수 값의 경우, 기존 python이 설치된 경로에 이어서

\Lib\site-packages\PyQt5\Qt\plugins\platforms

 

를 붙여준다.

그래도 에러가 해결되지 않았다.

변수를 바꿔줬는데도 해결되지 않아서, 경로를 자세히 살펴봤는데, 해당하는 경로가 애초에 폴더상에 존재하지 않는것을 발견하였다.

(이거부터 확인했으면 삽질을 덜했을 것 같은데ㅋㅋ 아쉽다)

 

해결을 위한 시도 2번(해결완료)

변수를 확인하는 중간에 QT 자체가 깔리지 않았다는 것을 알게 되어

먼저 저자가 요구조건으로 넣은 PyGLM PySide2 pyopengl 를 재설치했다.

 

pip uninstall PyGLM PySide2 pyopengl
pip install PyGLM PySide2 pyopengl

이 다음에 pyqt5관련 모듈들을 깔아주었다.

pip install pyqt5
pip install pyqt5-tools

그 다음에 컴퓨터를 재부팅하였다

원래 시스템변수같은거는 부팅하고 나야 재설정되는 경우가 많아서, 그렇게 했다.

그랬더니 에러가 사라졌다.

 

 

 

참고한 사이트

해결 방법 1 관련 참고 doongkibangki.tistory.com/24

 

해결 방법 2 관련 참고 blog.naver.com/PostView.nhn?blogId=blueqnpfr1&logNo=221582202946&from=search&redirect=Log&widgetTypeCall=true&directAccess=false