2019年12月31日火曜日

夕焼け画像分析 (2) 検証データで夕焼け抽出

教師データの色分布を算出できたので、次は検証データを使って色分布の類似度を計算していきます。前回からの流れを含め、全体の流れは次のようになります。

(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 件のコメント:

コメントを投稿