DelphiでHaar Cascade識別器を実装し、画像から顔領域や目の領域を認識検出

57 views
Skip to first unread message

mam

unread,
Jan 6, 2023, 8:19:55 PM1/6/23
to Japan RAD Studio User Group
あけましておめでとうございます。
表題の件、そのままですが、OpenCVのHaar Cascadeと同じように、
Delphiで画像から顔領域や目の領域を検出できるクラスを作りました。

https://mam-mam.net/delphi/haar_cascade.html

別途DLLなどは不要ですが、学習済みファイル(haarcascade_***.xml)はOpenCV4.7のものを使用します。(XMLファイルの読み込みが少し遅いです・・・)
以上、よろしければよろしくお願いします。

mam

unread,
Jan 9, 2023, 6:51:48 AM1/9/23
to Japan RAD Studio User Group
Haar Cascadeクラスを使って、Webカメラからの画像から顔領域を認識してスタンプ付き写真が撮影できるアプリを作ってみました。
2023年1月7日土曜日 10:19:55 UTC+9 mam:

mam

unread,
Jan 10, 2023, 9:46:51 PM1/10/23
to Japan RAD Studio User Group
ソースコードを見ていただくとわかるように、
haar cascadeでは画像の畳み込みを行っているのですが、
なかなか良い畳み込みのパラメータが把握出来ていないです。
もしくは畳み込みの良いアルゴリズム等も解っていないです、

尚、このクラスにある畳み込みは、
AnnやFann(ニューラルネットワーク)でも応用出来ます。
ただし、Haar Cascadeでは窓サイズを順次変更していますが、
ニューラルネットワークでは、
どうしても窓サイズは固定(例えば20×20ピクセルで入力層400等)となり、
モノクロ変換した元画像サイズを
段々小さく(ニアレストネイバー?Bilinear?バイキュービック?重そう)して
畳み込みを行う事になると思います?
2023年1月9日月曜日 20:51:48 UTC+9 mam:

mam

unread,
Jan 11, 2023, 6:55:42 PM1/11/23
to Japan RAD Studio User Group
ちなみに、画像をバイキュービックで拡大縮小する関数も作成して公開しています。
処理速度はお世辞にも速いとは言えないです。(処理速度を考えるとバイリニアのほうが良いのかもですが。)

バイキュービック法(bicubic)を使って写真画像を拡大縮小する(VCL)
https://mam-mam.net/delphi/bicubic.html

バイキュービック法(bicubic)を使って写真画像を拡大縮小する(FMX)
https://mam-mam.net/delphi/fmx_bicubic.html





2023年1月11日水曜日 11:46:51 UTC+9 mam:
Reply all
Reply to author
Forward
0 new messages