HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0203
oshirohspcvでメモリエラー?1解決


oshiro

リンク

2009/2/3(Tue) 03:31:12|NO.23195

hspcvで顔認識をしようとしていますが、cvfacedetect繰り返し使っているとcvAllocのメモリエラーになることがあるようです。
例えば次のようなスクリプトで、パソコンを変えても10100〜10200回ほど経過するとこのエラーが発生します。
タスクマネージャで見ていると繰り返しが進むにつれ、使用メモリが増加していっていき、エラー発生時は250MB程度となっているようです。
JavaでのOpenCVを使った顔認識プログラムではこのエラーは発生しないようなので、OpenCV自体ではなくhspcv.dllなどでの処理に問題があるのではと考えています。
また、私のhspcvの使い方に問題があるのかもしれませんが、どなたかご意見・情報いただけませんでしょうか。
よろしくお願いします。Windows Vista/XPともに同じエラーが発生しています。

※下記では、repeat中での処理をcvfacedetectのみにしてみています。

#include "hspcv.as" onexit goto *exit ; 終了時の処理設定 title "HSPCVサンプル" screen ,320,240 dir="C:\\Program Files\\hsp31\\sample\\hspcv\\" cvloadxml dir+"haarcascade_frontalface_alt2.xml" ; 顔認識パラメータ読み込み cvcapture ; カメラ取り込み開始 cvgetcapture repeat 20000 ;redraw 0 title ""+cnt ;cvgetcapture : cvflip : cvgetimg cvfacedetect ;redraw 1 await 0 loop *exit cvendcapture ; キャプチャ終了 end



この記事に返信する


oshiro

リンク

2009/2/5(Thu) 21:09:59|NO.23228

hspcvのソースって公開されてたんですね。先に探してたんですが見つけられていませんでした。
hspsdk31.zipを入手し見てみたところstorageの解放がなされていないようです。

可能でしたら対応よろしくお願いします。

解決にします。


--- hspsdk31/hspcv/main.cpp.org 2007-03-14 19:12:18.000000000 +0900 +++ hspsdk31/hspcv/main.cpp 2009-02-05 20:53:11.932000000 +0900 @@ -762,6 +762,7 @@ cvReleaseImage( &gray ); cvReleaseImage( &small_img ); + cvReleaseMemStorage( &storage ); return -cvface_total; }



ONION software Copyright 1997-2018(c) All rights reserved.