教師データの色分布を算出できたので、次は検証データを使って色分布の類似度を計算していきます。前回からの流れを含め、全体の流れは次のようになります。
(1) 教師データの作成、それぞれの教師データの色分布をcsvへ保存:今回は美しい夕焼け10件、美しくない夕焼け3件
(2) 教師データと検証データから色分布の類似度をcos類似度で算出:結果はcsvに保存
(3) 検証データの閾値以上のデータをDBへアップロード
注意点
・cos類似度は教師データ、検証データの両方の色分布を100%に変換してからやっている
・DBには閾値を超えたcos類似度とその時の教師データをセットにして保存
[データベース構造]
今回、teachers(教師データの色分布を保存)とtests(検証用データの閾値以上のcos類似度)、dates(観測日)を利用しています。それぞれのテーブルは次のようになります。
[teachers]
CREATE TABLE IF NOT EXISTS `teachers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`path` text NOT NULL,
`white` double DEFAULT NULL,
`olive` double DEFAULT NULL,
`yellow` double DEFAULT NULL,
`fuchsia` double DEFAULT NULL,
`silver` double DEFAULT NULL,
`aqua` double DEFAULT NULL,
`lime` double DEFAULT NULL,
`red` double DEFAULT NULL,
`gray` double DEFAULT NULL,
`blue` double DEFAULT NULL,
`green` double DEFAULT NULL,
`purple` double DEFAULT NULL,
`black` double DEFAULT NULL,
`navy` double DEFAULT NULL,
`teal` double DEFAULT NULL,
`maroon` double DEFAULT NULL,
`madder` double DEFAULT NULL,
`dawn` double DEFAULT NULL,
`created` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=26 ;
[tests]
CREATE TABLE IF NOT EXISTS `tests` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`date_id` date NOT NULL,
`path` text NOT NULL,
`teacher_id` int(11) NOT NULL,
`value` double NOT NULL,
`created` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=296 ;
[dates]
CREATE TABLE IF NOT EXISTS `dates` (
`id` varchar(255) NOT NULL,
`created` date DEFAULT NULL,
`modified` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
検証用データDB
http://mznsada.mizunolab.info/tests/index2
ソースコード
https://github.com/smzn/PixelColor
説明動画(かなりボソボソ話しています)
https://www.youtube.com/watch?v=fjthiMfRLcU
0 件のコメント:
コメントを投稿