본문 바로가기
공부/ML

darkflow 오류 해결 : bad character range , AttributeError, ZeroDivisionError

by happyeuni 2020. 5. 24.

re.error: bad character range t-2 at position 66

위의 에러는 파일의 이름에 다른 것이 들어가서 발생한다.

특수기호나 "-" "." 의 경우 모두 없애주면 해결된다.

애초에 파일을 저장할 때 파일명을 다듬어서 저장하는 것이 좋을 것 같다.ㅠㅠ

꼭! 파일명을 다듬고 라벨링을 하자...xml파일 모두 같이 바꿔야해서 매우 번거롭다.

+ xml파일을 편집기로 들어가서 filename 안을 바꾸어 주어야 한다.

<filename>태그 안의 - 를 지워준다 ㅠㅠ

AttributeError: 'NoneType' object has no attribute 'shape'

dataset의 파일 확장자가 jpg가 아닌경우나 한글이 포함되어있는 경우 발생한다.

어느 파일이 문제가 있는지 쉽게 알기 위해 ./darkflow/darkflow/net/yolov2/data.py 를 수정해준다.

아래의 코드처럼 print(jpg)를 넣고 다시 학습시키는 코드를 실행해본다면 알 수 있다.

 

# preprocess
    jpg = chunk[0]; w, h, allobj_ = chunk[1]
    allobj = deepcopy(allobj_)
    path = os.path.join(self.FLAGS.dataset, jpg)
    # print(jpg)
    img = self.preprocess(path, allobj)

ok-54524703이라는 파일에서 멈춘 것이 그 파일이 문제가 있는 것 같다.

 

 

ZeroDivisionError: float division by zero

문제가 있는 해당 xml파일을 편집기로 들어가면 <width>0</width> 또는 <height>0</height> 로 되어있다.

이 부분을 dataset의 jpg 파일의 속성에 들어가서 너비와 높이의 값을 각각 width와 height의 값으로 바꾸어 주면 된다.

이 과정이 귀찮다면 생략하고 두 파일을 삭제해도 된다. 

'공부 > ML' 카테고리의 다른 글

darkflow load 학습 가중치 불러오기  (1) 2020.05.17

댓글