[Raspberry Pi] [OpenCV] [DarkNet] fatal error: opencv2/core/version.hpp: No such file or directory

pxrksuhn·2023년 4월 5일
0
post-thumbnail

나같은 경우에는 OpenCV 설치를 다른 Raspberry Pi 1에 하고 용량이 너무커서 USB로 옮겨 다른 Raspberry Pi 2에 사용하려는 방법을 선택하였다.

OpenCV를 설치한 이유는 Raspberry Pi를 통해 DarkNet을 사용하기 위함인데, DarkNet은 정상적으로 설치 되었으나, make 과정에서 이러한 오류가 발생하였다.

기존에 있던 opencv를 지우고 다시 설치해보았다.

오류가 잔뜩 나고 팅겨버렸다..,
하지만 굴하지 않고 다시 설치를 해보았다.

다시 DarkNet - make를 실행하였다.

여전히 같은 오류가 나왔다.
오류가 나는 폴더에 들어가서 확인해보았다.

해당 파일을 열어보면

너무 멀쩡하다 ..,


해당 사이트 👉 https://forums.developer.nvidia.com/t/fatal-error-opencv2-core-version-hpp-no-such-file-or-directory/209931

해당 사이트를 보면 /usr/include에 있다던 폴더가 원래 설치했던 Raspberry Pi 1에 /usr/include/opencv2 나 opencv4 중 아무 폴더도 존재하지 않았다.

(폴더는 알파벳순으로 나열되어있다.)


해당 사이트 👉 https://answers.opencv.org/question/230076/hpp-files-include-wrong-directories/


여기에서 보면 비슷한 오류에 대한 답변을 발견할 수 있었다.

위에서 제시 해준대로 Raspberry Pi 1에 접속하여 /usr/local/include를 들어가보았다

이렇게 떡하니 있다니 ..,

OpenCV 폴더만 옮긴 Raspberry Pi 2에는 아무 파일도 존재하지 않았다.

Raspberry Pi 1에 있는 opencv4 파일 복사하여

붙혀준다.

압축을 하기 위해서 아래의 명령어를 입력해준다.

따로 파일 만들 필요없이 해당 폴더와 같은 이름으로 압축 파일이 생성된다.

zip opencv4.zip -r opencv4

이제 이 파일은 USB에 옮기던지 VNC Viewer에서 옮기던지 Email로 옮기던지 해서 Raspberry Pi 2에 옮겨준다.

이때는 아까와 다르게 압축을 풀기전에 압축을 풀어 담을 폴더를 생성해줘야 한다.

unzip opencv4.zip -d opencv4

압축을 풀면 압축폴더 안에 파일이 이동되기 때문에 똑같이 'opencv4'로 설정해주었다.

/home/pi에서 opencv4의 폴더에 압축을 풀었기 때문에 /usr/local/include폴더에 옮겨줘야한다. 이때 관리자 권한으로 폴더를 옮겨야 하는데 폴더에서 폴더로 파일만 드래그해서 옮기면 이런 문구가 뜬다.

그래서 관리자 권한으로 폴더를 정상적으로 옮기기 위해

sudo cp -r /home/pi/opencv4 /usr/local/include

옮길 파일이 있는 경로에서 옮길 파일 경로로 이동을 관리자 권한으로 실행하여 준다.

파일이 정상적으로 옮겨진 것을 확인할 수 있다.

darknet의 make 파일을 만들었더니

bash: ./darknet: Permission denied 이 떴다 ..,

열심히 찾아서 또 해당 파일에 권한을 부여하였다..

chmod +x fileName

make가 정상적으로 작동하지 않음 ..,

위는 정상적인 make 실행 방식이다..,

나 .., 어쩌면 좋지 ..?


대충 라이브러리가 없다고 생각을 하고 아에 그냥
안되는 상태로

wget https://pjreddie.com/media/files/yolov3.weights

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

를 돌려보았다 ..,

최선이 안되면 차선이라도 ..,
어떻게 안되겠냐는 심정으로 검색해보았다 ..,


해당 사이트 👉 https://github.com/pjreddie/darknet/issues/382

미친 해결했다 오늘안에 해결책 들고 돌아올께요 ㅎ

해결책 들고옴

23.04.07 /usr/local 에서 include, share, lib의 opencv4, opencv4, aarch64-linux-gnu 폴더를 압축하여 옮겨 해당 지점으로 옮겨준다 ㅎ 😎

0개의 댓글