2017-12-19 1 views
0

다음 코드는 Tesseract-OCR (python wrapper-tesserocr)을 사용하여 텍스트가 포함 된 이미지에서 글꼴 속성을 추출합니다.이미지에서 피쳐를 추출하기위한 파이썬 루프가 완전히 실행되지 않습니다

for image in image_list: 
    print "Starting for ",image 
    font_attribute_list = [] 
    with PyTessBaseAPI(oem=0) as api: 
     image1 = PIL.Image.open(path+image) 
     api.SetImage(image1) 
     api.Recognize() 
     iterator = api.GetIterator() 
     font_attribute_list.append(iterator.WordFontAttributes()) 
    word_font_attribute_dataframe = word_font_attribute_dataframe.append([font_attribute_list[0]], ignore_index=True) 
    image1.close() 

이것은 약간의 이미지에만 적용되며 그 숫자는 계속 변경됩니다. 때로는 약 13-14 이미지로 실행되기도하고 때로는 약 100으로 실행되는 경우도 있습니다. 오류 또는 아무것도 없습니다. 그저 끝난다. 때때로 "Segmentation fault (core dumped)"오류가 발생합니다. 우분투 14.04를 사용하고 있습니다.

어떻게 해결할 수 있습니까?

답변

0

모두 재미있게 들립니다. 일반적으로 세분화 오류가 발생하면 너무 많은 작업을 한꺼번에 처리하려고 시도하고있어 메모리가 꽉 차 있다는 뜻입니다. 코드가 오류없이 멈추는 것이 아니라 계속 진행될 수 있습니다. 실제로는 아주 천천히 진행될 수 있습니다.

루프 반복마다 이미지가 열려있는 것처럼 보입니다. 따라서 열려있는 모든 이미지가 작업 메모리를 사용하고있는 것 같습니다. 루프가 끝나기 전에 이미지를 닫으십시오.

+0

I'v도 오류를 계속 발생시키지 않았습니다. 매우 천천히 실행되지 않고 약 1 초 만에 하나의 이미지로 끝나고 13 개의 이미지, 때로는 100 개의 이미지 등으로 멈 춥니 다. P.S - close 문을 포함하도록 코드를 편집했습니다. –

관련 문제