2017-12-19 17 views
0

Tesseract-OCR(python wrapper-tesserocr)を使用してテキストを含むイメージからフォント属性を抽出する次のコードがあります。イメージからフィーチャーを抽出するためのPythonループが完全に実行されない

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)"というエラーが発生することがあります。私はUbuntu 14.04を使用しています。

どうすれば解決できますか?

答えて

0

すべてが楽しいように聞こえる。通常、セグメンテーションフォルトが発生すると、一度に多すぎることをしようとしていて、それがあなたの記憶を妨害していることを意味します。あなたのコードがエラーなしで停止しているだけでなく、まだまだ進んでいる可能性があります。

ループの繰り返しごとに画像を開くように見えるので、すべての開いている画像が作業メモリを使い果たしている可能性があります。ループの終了前に画像を閉じることができます。

+0

私もそれらを閉じてみましたが、まだエラーが発生しています。 それは非常にゆっくり実行されません、それは約1秒で1つのイメージのために終わり、13のイメージ、時々100イメージのような後にちょうど停止します。 P.S - –

関連する問題