ニューラルネットでカタロム検索?



あるときニューラルネットでカタロムサークルカットを検索しようと思い立ちました。
で、実際に作ってみました。本番に間に合いませんでしたが。


内容

チェックリストを読み込んでサークルカットをニューラルネットワークに学習させ、
学習後のネットワークで別の回のカタロムデータのサークルカットを検索します。
検索にヒットすると別のチェックリストに書き出します。


操作方法

起動後、ウィンドウにカタロムデータのあるフォルダをドラッグ&ドロップします。
フォルダ内にはCDATAフォルダとPDATAフォルダが必要です。
カタロムのCDATAとPDATAを、HDDの適当なフォルダにコピーしておいてください。
サークルデータを読み込み終えると確認ウィンドウが出ます。

続いてチェックリスト(csvファイル)をドラッグ&ドロップします。
チェックリストを読み込み終えると確認ウィンドウが出ます。

メニューの設定をクリック、設定ウィンドウを出して設定します。
最初の項目に1未満を設定すると学習誤差の目標値の設定、
1以上を設定すると学習回数の設定となります。
適用誤差はまだ設定しないで良いです。
検索開始サークル位置は特に設定しないで良いです。

メニューの開始をクリックすると学習が始まります。
状況はウィンドウのタイトルバーに出てきます。手抜きですね。
学習中カット、学習回数、学習誤差、出力1、出力2、出力3
の順で表示されます。
学習を中断したい時はメニューの中断をクリックします。
学習には時間がかかるので注意してください。

検索する前に、検索したい回のカタロムデータのあるフォルダをドラッグ&ドロップします。
検索するには学習終了(中断)後にウィンドウを左クリックします。
検索にヒットするとウィンドウにサークルカットが表示され、チェックリストに書き込みます。
もう一度左クリックで検索を終了します。
初期設定ではうまく検索できませんので、設定で適用誤差を適当に修正してください。
ウィンドウのタイトルバーにある出力を参考に、適用誤差をなんとなく設定します。
出力が1、0、1でヒットと判断するので、学習後に0.9、0.1、0.9と出たら0.1くらいとします。

書き出されるチェックリストはresult.csvとなります。
カタログブラウザで多分見れます。


詳しく

サークルカットで処理するのはサークル名を除いた部分です。
(160×200ドット)
実際には1/4に縮小してモノクロ256階調としてネットワークに入力します。
(縮小方法は4画素の平均値、サークルカット元データは4階調)
使用したニューラルネットワークは、
入力ユニット数8000
隠れ層ユニット数160
出力ユニット数3
の3層フィードフォワードネットワーク、学習はバックプロパゲーション法で行っています。

ニューラルネット部のリスト
libpng使って読み込んでからネットに突っ込みます。
なんでテンプレートにしたのかは忘れてしまった…
float使ってるのはそのうちSSEで書こうと思ったからです。SSE2が動く環境無いし。



おことわり

☆このプログラムを実行して起きる一切の結果や問題に責任を負いません。
☆適当に作ったのでエラーチェックは不十分で不都合も残っています。
☆したがって実行中に止まる可能性があります。
☆学習時間が長い割に結果を見てもガッカリです。
☆学習中はマシンの動作が遅くなることがあります。
☆Windows2000、WindowsXPでの実行をおすすめします。
☆C65とC66のデータで試しましたが他でどうなるかは分かりません。

以上の項目をよく読んだ上でダウンロードしてください。

ニューラルネットでカタロム検索?Ver.0


[PR]無料でデコメ取り放題♪:カワイイ素材いっぱいあるよ