본문 바로가기

자료

[YOLO][Darknet - 윈도우10 오류 해결법]

728x90

[YOLO][Darknet - 윈도우10 오류 해결법]


1. darknet.sln 이나 no_gpu_darknet.sln 을 빌드하고싶은데 열리지가 않습니다.

 

 + 비주얼 스튜디오 2015를 설치하셔야 합니다. 

 

→ 참고 링크 : https://reyrei.tistory.com/19

 

 

[YOLO - darknet] Window 10에서 YOLO 빌드 및 실행하기 (visual studio 2015) +20.8.13 수정

(+ 2020.08.13) YOLO를 사용할때는 CUDA8.0과 cuDNN 6.0을 쓰도록 합시다. VS 2015에서 darknet.sln 파일을 열 때, CUDA8.0 이 필요하기때문에 버젼이 안맞으면 솔루션(sln)파일이 열리지 않습니다. ※ Windows..

reyrei.tistory.com

 

 

2. GPU로 동작하는 darknet.sln을 빌드하고싶은데 비주얼 스튜디오 2015인데도 오류가 나면서 열리지가 않습니다.

 

+ CUDA 버젼이 8.0이 아니면 열리지 않습니다.

   꼭 CUDA를 8.0으로 설치하고 Cudnn 버전도 맞춰줍시다.

 

→ 참고 링크 : https://reyrei.tistory.com/19

 

 

 

3. darknet.exe 파일이 제대로 실행되지 않습니다.

 

+ CUDA 버젼과 Cudnn 버젼을 꼭 맞춰줍시다.

 

 


 

[Darkflow - windows 10 / 저사양 그래픽카드로 동작 시 생기는 문제]

 

(제가 쓰고 있는 DELL inspiron 7577 노트북 gtx1060 max-q 기준입니다.)

 

 

1. darkflow는 제가 원하는 데이터셋을 이용해서 학습이 불가능한가요?

 

 + darknet은 YOLO-MARK를 이용하여 레이블링 후 txt 파일로 해주면 되지만,

    darkflow는 레이블링 xml 파일이 필요합니다.

    labelImg github[클릭]에서 다운받아 python으로 실행한 다음,

    이미지를 불러와서 레이블링하면 xml파일로 저장할수 있습니다.

 

 

2. darkflow로 GPU 실행을 시키면 오류가 뜹니다.

 

 + 노트북에서 darkflow를 GPU로 실행시키면 CUDA_ERROR_OUT_OF_MEMORY, CUDNN_STATUS_ALLOC_FAILED 

    오류를 볼 수도 있습니다.

 

(저는 GTX 1060 max-Q 그래픽카드로 동작시킬 때 발생하는 것을 확인하였습니다.

 컴퓨터 사양이 좋으면.. 2080ti로 돌렸을 때는 오류가 안나더라구요..)

 

명령어 뒤에 이렇게 넣어주시면 됩니다.

 

 

<폴더 안에 있는 testset 이미지 전체에 대한 결과를 얻고 싶을 때>

 

python flow --imgdir ./testset/ --model ./cfg/yolo.cfg --threshold 0.01 --load -1 --batch 1 --gpu 0.3 

 

--imgdir ./testset/  → testset 이라는 폴더에 있는 이미지들 전체에 대한 결과를 얻는다. 

 

 

<동영상 실행시>

 

python flow --demo Test.mp4 --model ./cfg/yolo.cfg --saveVideo --threshold 0.01 --load -1 --gpu 0.3 

 

--load -1  → 가장 최근 생성된 학습 가중치 파일(weights)을 학습모델로 사용한다.

 

 

<custom train 시>

 

python flow --model cfg/yolo.cfg --load bin/yolo.weights --train --annotation train/Annotations --dataset train/Images --load -1 --gpu 0.3 --batch 5

 

--anoation train/Annoations → 어노테이션(레이블링) 한 xml 파일이 있는 폴더

--dataset train/Images → 어노테이션(레이블링) 한 이미지 파일이 있는 폴더

--load -1  → 가장 최근 weights 파일에 이어서 train을 진행한다.

--gpu 0.3 → gpu를 30%만 사용하겠다.  gpu 1.0 = 100% 

                 제 노트북은 0.4에서 다시 cuda 메모리 오류가 납니다. ㅠㅅㅠ 0.3까지가 안전빵!

--batch 5 → train 시에 배치사이즈를 줄여줍니다.

 

 

 

→ 참고 링크 1 : https://reyrei.tistory.com/31?category=824469

 

[YOLO - darkflow] CUDA_ERROR_OUT_OF_MEMORY, CUDNN_STATUS_ALLOC_FAILED 오류 해결 방법

※ CUDA_ERROR_OUT_OF_MEMORY, CUDNN_STATUS_ALLOC_FAILED 오류 해결 방법  →그래픽 카드 사양이...좋지 않기때문에...............생기는 오류같습니다...  gpu 와 batch를 이렇게 수정하면 됩니다. ㅠㅅㅠ (d..

reyrei.tistory.com

→ 참고 링크 2 : https://reyrei.tistory.com/16

 

 

[YOLO / darkflow] YOLO와 Python을 이용한 object detection (1) - 설치 및 테스트 (+20.08.13. GPU 오류 해결 완료

(+2020.8.13) CUDA_ERROR_OUT_OF_MEMORY, CUDNN_STATUS_ALLOC_FAILED 오류 해결했습니다. GPU를 30%정도만 사용하고 배치를 작게 잡으면 됩니다. - 맨 하단 기술함. ※ 본 포스팅은 darkflow 유투브(https://www...

reyrei.tistory.com

 

 

3. darkflow에서 AssertionError: expect 202335260 bytes, found 203934260 형식의 오류가 나는 경우

 

  darkflow \ utils \  폴더의  loader.py에서

 

self.offset = 16을  찾아서  self.offset = 16 + found_value - expected_value 형식으로 변경

 

self.offset = 16 + 203934260 - 202335260 

 

 

 

참고 : https://stackoverflow.com/questions/55224586/assertionerror-expect-202335260-bytes-found-203934260-soccer-ball-detection-us/58269646#58269646

728x90