(57)【要約】      （修正有）【課題】写真の撮影時期を特定することができる機械学習装置、撮影時期推定装置、機械学習プログラム、及び写真データの生産方法を提供する。【解決手段】スキャンした写真の写真データを複数取得する学習対象取得部と、写真データに基づいて、撮影日が写し込まれていない写真の撮影時期を学習する学習部と、を備える機械学習装置を構成する。学習部は、写真データと、写真の撮影時期とを対応づけた教師データに基づいて学習を行う。教師データは、撮影日が写し込まれている写真をスキャンした写真データと、写し込まれている撮影日を示す撮影時期とが対応づけられたデータを含む。【選択図】図１
2019197452.tif 000002
【特許請求の範囲】
【請求項１】
スキャンした写真の写真データを複数取得する学習対象取得部と、
前記写真データに基づいて、撮影日が写し込まれていない前記写真の撮影時期を学習する学習部と、
を備える機械学習装置。
【請求項２】
前記学習部は、
前記写真データと、前記写真の撮影時期とを対応づけた教師データに基づいて学習を行う、
請求項１に記載の機械学習装置。
【請求項３】
前記教師データは、
撮影日が写し込まれている前記写真をスキャンした前記写真データと、写し込まれている撮影日を示す撮影時期とが対応づけられたデータを含む、
請求項２に記載の機械学習装置。
【請求項４】
スキャンした写真の写真データと当該写真の撮影時期とを対応づけた教師データに基づいて機械学習が行われたモデルから、撮影日が写し込まれていない写真の撮影時期を取得する、
撮影時期推定装置。
【請求項５】
コンピューターを、
スキャンした写真の写真データを取得する学習対象取得部、
前記写真データに基づいて、撮影日が写し込まれていない前記写真の撮影時期を学習する学習部、
として機能させる機械学習プログラム。
【請求項６】
スキャンした写真の写真データと当該写真の撮影時期とを対応づけた教師データに基づいて機械学習が行われたモデルから、撮影日が写し込まれていない写真の撮影時期を取得し、当該写真に対して当該撮影時期を対応づけた写真データを生産する、
写真データの生産方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習装置、撮影時期推定装置、機械学習プログラムおよび写真データの生産方法に関する。
【背景技術】
【０００２】
従来、複数の写真をスキャンし、日付順に並び替えるというニーズが存在した。例えば、特許文献１においては、ネガフィルムと写真プリントとをスキャンし、スキャン結果から同一の画像を検索し、ネガフィルムから抽出した写し込み日付をプリント画像の撮影日付として特定する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３４８６２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
写真に撮影日が写し込まれていない場合には、写真の撮影時期を特定することができなかった。
【課題を解決するための手段】
【０００５】
上記目的を達成するための機械学習装置は、スキャンした写真の写真データを取得する取得部と、写真データに基づいて、撮影日が写し込まれていない写真の撮影時期を学習する学習部と、を備える。以上の構成によれば、写真に撮影日が写し込まれていなくても、写真が撮影された撮影時期を推定することができる。
【０００６】
また、学習部は、写真データと、写真の撮影時期とを対応づけた教師データに基づいて学習を行う構成であっても良い。この構成によれば、写真の特徴と撮影時期との関係とを人間の判断によって明確に定義しなくても、写真の撮影時期を推定することが可能になる。
【０００７】
さらに、教師データは、撮影日が写し込まれている写真をスキャンした写真データと、写し込まれている撮影日を示す撮影時期とが対応づけられたデータを含んでいてもよい。すなわち、撮影日が写し込まれていることにより、撮影日が明確に特定される写真をスキャンして写真データを生成すれば、当該撮影日と写真データとを対応づけることにより、正確な出力を得る可能性が高い教師データを生成することができる。
【図面の簡単な説明】
【０００８】
【図１】機械学習装置および画像処理装置のブロック図である。
【図２】機械学習処理を示すフローチャートである。
【図３】ニューラルネットワークの構造を示す図である。
【図４】モデルの一実施例を示す図である。
【図５】画像処理を示すフローチャートである。
【図６】インターフェース画面の例を示す図である。
【図７】画像処理を示すフローチャートである。
【発明を実施するための形態】
【０００９】
ここでは、下記の順序に従って本発明の実施の形態について説明する。
（１）機械学習装置および画像処理装置の構成：
（２）機械学習処理：
（３）画像処理：
（４）他の実施形態：
【００１０】
（１）機械学習装置および画像処理装置の構成：
図１は、本発明の実施形態にかかる機械学習装置および画像処理装置を示すブロック図である。本実施形態にかかる機械学習装置および画像処理装置は、スキャナー２が接続されたコンピューター１によって実現される。コンピューター１は、プロセッサー１０と、ＨＤＤ（ハードディスクドライブ）２０と、機器インターフェース３０と、ディスプレイインターフェース４０とを備えている。
【００１１】
機器インターフェース３０は、既定の通信プロトコル（例えばＵＳＢ（Universal Serial Bus）規格）に従って通信を行う機器を接続可能なインターフェースである。本実施形態において、機器インターフェース３０には、スキャナー２、マウス３ａ、キーボード３ｂが接続されている。スキャナー２は、原稿に光を照射する光源と、原稿からの光を受光して読み取りデータとするカラーイメージセンサーと、各種の可動部を移動させるための機械部品等を備えている。
【００１２】
本実施形態において、スキャナー２は、プリントされた写真を読み取って写真データを出力することができる。コンピューター１は、機器インターフェース３０を介してスキャナー２が出力する写真データを取得し、ＨＤＤ２０に写真データ２０ａとして記録する。スキャナー２における原稿の読取方式は、種々の態様であって良く、フラットベッドであっても良いしＡＤＦによる搬送原稿を読み取る方式であっても良く、双方が可能であっても良い。
【００１３】
マウス３ａは、利用者に把持されて移動される操作部とボタンとを備えており、操作部の移動量を示す情報とボタンに対する操作結果を示す情報とを出力する。コンピューター１は、機器インターフェース３０を介してマウス３ａが出力する情報を取得し、当該情報に基づいて利用者の操作を受け付けることができる。キーボード３ｂは、複数のキーを備えており、キーに対する操作を示す情報を出力する。コンピューター１は、機器インターフェース３０を介してキーボード３ｂが出力する情報を取得し、当該情報に基づいて利用者の操作を受け付けることができる。
【００１４】
ディスプレイインターフェース４０は、ディスプレイ４が接続されるインターフェースである。コンピューター１は、ディスプレイインターフェース４０を介してディスプレイ４に制御信号を出力し、ディスプレイ４に各種の画像を表示させることが可能である。
【００１５】
プロセッサー１０は、ＣＰＵ，ＲＡＭ等を備え、ＨＤＤ２０に記録された種々のプログラムを実行することができる。本実施形態においては、これらのプログラムに機械学習プログラム１１と画像処理プログラム１２とが含まれている。機械学習プログラム１１は、スキャンした写真の写真データに基づいて、撮影日が写し込まれていない写真の撮影時期を学習する機能をプロセッサー１０に実行させるプログラムである。機械学習プログラム１１が実行されると、プロセッサー１０は、学習対象取得部１１ａ，学習部１１ｂとして機能する。
【００１６】
画像処理プログラム１２は、写真をスキャンした写真データに基づいて、写真の退色の程度を計算し、退色の程度が大きいほど古い写真であると見なし、写真データを写真の古さに応じて整理する機能をプロセッサー１０に実行させるプログラムである。画像処理プログラム１２が実行されると、プロセッサー１０は、取得部１２ａ，計算部１２ｂ，読取部１２ｃ，整理部１２ｄとして機能する。
【００１７】
（２）機械学習処理：
次に、プロセッサー１０が実行する機械学習処理を説明する。図２は機械学習処理を示すフローチャートである。機械学習処理は、写真の撮影時期を推定する前に予め実行される。機械学習処理が開始されると、プロセッサー１０は、学習部１１ｂの機能により、訓練モデルを取得する（ステップＳ１００）。ここで、モデルとは、推定対象のデータと推定結果のデータとの対応関係を導出する式を示す情報であり、本実施形態においては写真データまたは写真データから導出されるデータ（退色の程度）を撮影時期に対応づけるモデルを例にして説明する。
【００１８】
入力データを出力データに変換する限りにおいて、モデルは種々の定義が可能である。本実施形態においては、モデルの少なくとも一部にニューラルネットワークが含まれている。図３は本実施形態において利用されるモデルを含み得るニューラルネットワークの構造を模式的に示した図である。図３においては、ニューロンを模したノードを丸で示し、ノード間の結合を実線の直線で示している（ただし、図を簡易化するためノードおよび結合は一部のみが示されている）。また、図３においては、同一層に属するノードを縦に並べて示しており、左端の層が入力層Ｌｉ、右端の層が出力層Ｌｏである。
【００１９】
ここでは、２層の関係において入力層Ｌｉに近い層を上位層、出力層Ｌｏに近い層を下位層と呼ぶ。すなわち、ある層においては、１層上位の層の出力を入力とし、重みの乗算とバイアスの和算を行い、活性化関数を介して出力を行う構造となっている。例えば、図３に示す層ＬPのノードの数がＰ個であり、層ＬPの各ノードに対する入力データがｘ1，，，，ｘMであり、バイアスがｂ1，，，，ｂPであり、層ＬPのｋ番目のノードに対する重みがｗk1，，，，ｗkM、活性化関数がｈ（ｕ）である場合、当該層ＬPの各ノードにおける中間出力ｕ1，，，，ｕPは以下の式１で表現される。
【数１】
2019197452.tif 000003
従って、式１を活性化関数ｈ（ｕk）に代入すると層ＬPの各ノードにおける出力ｙ1，，，，ｙPが得られる。
【００２０】
モデルは、このように一般化されるノードが複数層設けられることによって構成される。従って、本実施形態において、モデルは、少なくとも各層における重みとバイアスと活性化関数を示すデータによって構成される。なお、活性化関数は、種々の関数、例えば、シグモイド関数や、双曲線関数（ｔａｎｈ）、ＲｅＬＵ（Rectified Linear Unit）や他の関数を使用可能であり、非線形関数であることが好ましい。むろん、機械学習を行う際に必要な他の条件、例えば、最適化アリゴリズムの種類や学習率等のパラメーターが含まれていても良い。また、層の数やノードの数、相関の結合関係は種々の態様とすることができる。
【００２１】
本実施形態においては、写真データまたは写真データから導出されるデータを入力層Ｌｉへの入力データとし、出力層Ｌｏから写真の撮影時期を示す出力データを出力するモデルが構築される。例えば、図３に示す例において、入力層Ｌｉの各ノードへの入力データが写真データの各画素の階調値（を規格化した値）であり、出力層Ｌｏからの出力データが撮影時期の範囲を示す例を想定可能である。撮影時期を出力する構成としては、例えば、各ノードに１９００年代、１９１０年代、１９２０年代などの時期範囲が割り当てられており、最大値を出力したノードに割り当てられた範囲が入力された写真の撮影時期であると見なされる構成等が挙げられる。
【００２２】
むろん、図３に示すモデルの一部を既知の関数で表現し、残りを未知の関数として表現し、未知の関数を学習対象としても良い。いずれにしても、写真データを入力すると最終的に撮影時期が出力されるモデルが構築されていれば、写真データから撮影時期を推定するためのモデルを学習することができる。本実施形態においては、このような着想の元にモデルが構築されているが、この着想は、写真プリントの色が時間経過に従って退色していくという事実に基づいている。
【００２３】
すなわち、本実施形態において、写真の古さはプリントされた日と現在との時間間隔に対応していると見なされている。また、本実施形態においては、プリントされた日と現在との時間間隔が長いほど退色の程度が大きいと見なされている。さらに、本実施形態においては、プリントされた日と撮影日とが大きく（例えば、数年単位で）異なっているのはまれであると見なされている。このように見なすと、写真の退色の程度と撮影時期の古さとが対応していると見なすことができ、写真データを入力して退色の程度を計算すれば、当該計算を経て写真の古さ、すなわち、撮影時期を推定することができる。
【００２４】
このような着想によれば、図３に示すニューラルネットワークが入力層Ｌｉに写真データを入力し、出力層Ｌｏから撮影時期を出力するように学習した場合には、その層のいずれか１以上の層において、退色の程度を示す値が出力されると考えられる。このように、退色の程度を介した撮影時期の推定を可能にするためには、退色の程度を出力する層が機械学習によって隠れ層で自動的に学習されても良いし、より明示的に退色の程度がモデル内に導入されても良い。
【００２５】
例えば、写真データを入力して退色の程度を計算する関数を予め用意し、当該退色の程度を入力するニューラルネットワークが構築されても良い。このようなモデルは、例えば、図３に示すモデルの入力層Ｌｉから退色の程度を出力する層ＬFまでの間を既知の関数ｆで表現することで構築することができる。すなわち、写真データ（Ｒｉ，Ｇｉ，Ｂｉ）の階調値から退色の程度を計算する関数ｆを予め定義し、当該関数の出力Ｆｉを、層ＬFへの入力とするモデルを構築しても良い。
【００２６】
図４は、当該関数ｆを利用して退色の程度を示す値Ｆｉを計算するモデルを模式的に示す図である。すなわち、ある写真データｉは、画素毎の各色チャネルの階調値が（Ｒｉ，Ｇｉ，Ｂｉ）であり、これらの階調値を関数ｆに入力すると、退色の程度を示す出力値Ｆi1〜ＦiNが得られる。退色の程度を示す出力値Ｆi1〜ＦiNは、層ＬFに入力され、層ＬFから出力層Ｌｏの間のモデルが機械学習で最適化されれば、写真の退色の程度から写真の撮影時期を示す情報（Ｔi1〜ＴiO）を出力するモデルを学習することができる。
【００２７】
なお、退色の低程度を計算する関数ｆは、種々の手法で定義されて良い。また、退色の程度は、種々の手法で評価されて良い。例えば、例えば、プリントされた写真において劣化しやすいとされている色（黄色等）のコントラストの幅を解析すれば、当該色のコントラストが狭いほど退色の程度が大きいと判定可能である。着目する色は、写真データの色成分の少なくとも１個であっても良いし、２個以上の色成分から計算された色（黄色等）であってもよい。むろん、着目する対象は、色相以外の対象であっても良く、明度や彩度のコントラストに基づいて退色の程度が判定されても良い。むろん、これらの処理以外にも、公知の種々の処理が採用されてよい。
【００２８】
いずれにしても、退色の程度を示す値を計算するための関数ｆが予め定義され、その出力Ｆi1〜ＦiNが層ＬFへの入力値となる。退色の程度を示す値の数（関数ｆの数）は１以上であれば良く、１個の写真について退色の程度が１種類の値で表現されるのであれば、層ＬFのノード数は１個になる。なお、図３，図４のいずれの場合であっても入力データの範囲は、写真の全範囲でなくてもよいし、特定の色チャネルでも良いし、特定の色チャネルに対して重みが設けられても良い。
【００２９】
本明細書においては、以後、写真データに基づいて関数ｆによって退色の程度を計算し、退色の程度を示す値をニューラルネットワークのノードに入力する、図４に示すモデルを例にして実施形態を説明する。なお、ここでも写真の撮影時期は、既定の期間（１９００年代等）で表現されるモデルを想定するが、むろん、写真の撮影時期は他にも種々の形式で表現されて良い。なお、図４に示す例では、撮影時期を示す情報が既定の範囲の期間である場合、出力層Ｌｏの出力値（Ｔi1〜ＴiO）が１に最も近い場合に、そのノードが対応づけられた期間が撮影時期であると推定される。例えば、出力値Ｔi1を出力するノードに１９００年代が対応づけられており、各ノードで示す期間が１０年単位である場合、１９００年代が対応づけられたノードの出力値が０．９５、他のノードの出力値が０．９５より小さい値である場合に（全ノードの出力の総和は１）撮影時期が１９００年代であると推定される。
【００３０】
図２に示すフローチャートにおけるステップＳ１００では、訓練モデルを取得する。ここで、訓練とは、学習対象であることを示す。すなわち、訓練モデルにおいては、写真データから退色の程度を計算し、当該退色の程度に基づいて写真の撮影時期を出力するが、写真データと写真の撮影時期との対応関係は初期において正確ではない。すなわち、訓練モデルにおいては、ノードが構成する層の数やノードの数は決められるが、入出力の関係を規定するパラメーター（上述の重みやバイアス等）は最適化されていない。これらのパラメーターは、機械学習の過程で最適化される（すなわち、訓練される）。
【００３１】
訓練モデルは、予め決定されていても良いし、利用者がマウス３ａやキーボード３ｂを操作して入力することによって取得されても良い。いずれにしても、プロセッサー１０は、図４に示す例において写真データから退色の程度を計算する関数と、退色の程度を入力して写真の撮影時期を出力するニューラルネットワークのパラメーターとを訓練モデルとして取得する。当該訓練モデルはＨＤＤ２０に訓練モデル２０ｅとして記録される。
【００３２】
次に、プロセッサー１０は、学習対象取得部１１ａの機能により、教師データを取得する（ステップＳ１０５）。本実施形態において、教師データ２０ｃは、スキャンした写真の写真データと、写真の撮影時期とを対応づけた教師データである。本実施形態においては、スキャナー２によって予め複数の写真がスキャンされ、ＨＤＤ２０に記録されている。プロセッサー１０は、写真に写し込まれた撮影日を読み取る機能を実行することができる（後述する読取部１２ｃ）。
【００３３】
ここで、プロセッサー１０は、写真データに基づいて数値の形状の特徴を有する部分を検出し、検出された部分の形状の特徴に基づいて数値を特定する。そして、数値の並びが撮影日であると見なし、撮影時期を取得する。撮影時期が取得された場合、プロセッサー１０は、当該写真の写真データに対して撮影時期を対応づける。また、利用者が写真の撮影時期を記憶している場合、利用者は、自身の記憶に基づいてスキャンされた写真の撮影時期を特定し、マウス３ａやキーボード３ｂを操作することで撮影時期を入力する。プロセッサー１０は、当該入力結果に基づいて、写真データと撮影時期とを対応づける。
【００３４】
この結果、ＨＤＤ２０には、撮影時期が対応づけられた複数の写真の写真データが記録されている状態になる。撮影時期を示す情報は、写真の撮影日が含まれる時期であれば良く、種々の形式で定義されて良いが、少なくとも、訓練モデルの出力によって表現される撮影時期の形式と一致している。図４に示す例であれば、１９００年代等のように既定の期間で表現された撮影時期が写真データに対応づけられている。本実施形態においては、このようにして撮影時期が対応づけられた写真データの一部が教師データになる。そこで、プロセッサー１０は、ＨＤＤ２０を参照して撮影時期が対応づけられた写真データを、例えば、ランダムに抽出して教師データと見なし、ＨＤＤ２０に記録する（教師データ２０ｃ）。
【００３５】
次に、プロセッサー１０は、学習対象取得部１１ａの機能により、テストデータを取得する（ステップＳ１１０）。本実施形態においては、撮影時期が対応づけられた写真データの中で、教師データとならなかったデータの全てまたは一部がテストデータになる。そこで、プロセッサー１０は、ＨＤＤ２０を参照して撮影時期が対応づけられた写真データの中で教師データと見なされなかったデータからテストデータを取得し、ＨＤＤ２０に記録する（テストデータ２０ｄ）。なお、テストデータ２０ｄの情報量（写真の枚数）と教師データ２０ｃの情報量（写真の枚数）は、種々の量であって良いが、本実施形態においては、教師データ２０ｃの方がテストデータ２０ｄより多くなるように設定される。
【００３６】
次に、プロセッサー１０は、学習部１１ｂの機能により、初期値を決定する（ステップＳ１１５）。すなわち、プロセッサー１０は、ステップＳ１００で取得した訓練モデルのうち、可変のパラメーターに対して初期値を与える。初期値は、種々の手法で決定されて良い。例えば、ランダム値や０等を初期値とすることができ、重みとバイアスとで異なる思想で初期値が決定されても良い。むろん、学習の過程でパラメーターが最適化されるように初期値が調整されても良い。
【００３７】
次に、プロセッサー１０は、学習部１１ｂの機能により、学習を行う（ステップＳ１２０）。すなわち、プロセッサー１０は、ステップＳ１００で取得した訓練モデルにステップＳ１０５で取得した教師データ２０ｃを入力し、撮影時期を示す出力を計算する。また、出力された撮影時期と教師データ２０ｃが示す撮影時期との誤差を示す損失関数によって誤差を特定する。そして、プロセッサー１０は、損失関数のパラメーターによる微分に基づいてパラメーターを更新する処理を既定回数繰り返す。
【００３８】
例えば、図４に示すモデルであれば、プロセッサー１０は、ステップＳ１０５で取得された教師データ２０ｃが示すｉ番目の写真の写真データを関数ｆに入力することで、ｉ番目の写真の退色の程度（Ｆi1〜ＦiN）を取得する。さらに、プロセッサー１０は、ｉ番目の写真の退色の程度（Ｆi1〜ＦiN）を層ＬFのニューラルネットワークに入力し、ｉ番目の写真の撮影時期を示す出力値（Ｔi1〜ＴiO）を取得する。教師データ２０ｃに対応づけられた撮影時期を示す情報は、各ノードの出力値のいずれかが１である情報であり、これらの情報を（ｔi1〜ｔiO）と表記すると、ｔi1〜ｔiOのいずれかの値が１であり他の値は０である。
【００３９】
そこで、訓練モデルの出力値をＴiと表記し、教師データ２０ｃが示す撮影時期をｔiと表記すると、ｉ番目の写真についての損失関数はＬ（Ｔi，ｔi）と表記可能である。むろん、損失関数は、種々の関数を採用可能であり、例えば、交差エントロピー誤差などを採用可能である。以上のような損失関数Ｌを算出する処理は、教師データ２０ｃが示す写真の全てについて実施され、その平均や総和によって１回の学習における損失関数が表現される。例えば、総和によって損失関数が表現される場合、全体の損失関数Ｅは次の式２で表現される。
【数２】
2019197452.tif 000004
損失関数Ｅが得られたら、プロセッサー１０は、既定の最適化アルゴリズム、例えば、確率的勾配降下法等によってパラメーターを更新する。
【００４０】
以上のようにして、既定回数のパラメーターの更新が行われると、プロセッサー１０は、訓練モデルの汎化が完了したか否かを判定する（ステップＳ１２５）。すなわち、プロセッサー１０は、ステップＳ１１０で取得したテストデータ２０ｄを訓練モデルに入力して撮影時期を示す出力を取得する。そして、プロセッサー１０は、出力された撮影時期と、テストデータに対応づけられた撮影時期とが一致している数を取得し、テストデータ２０ｄが示す写真数で除することで推定精度を取得する。本実施形態において、プロセッサー１０は、推定精度が閾値以上である場合に汎化が完了したと判定する。
【００４１】
なお、汎化性能の評価に加え、ハイパーパラメーターの妥当性の検証が行われてもよい。すなわち、重みとバイアス以外の可変量であるハイパーパラメーター、例えば、ノードの数等がチューニングされる構成において、プロセッサー１０は、検証データに基づいてハイパーパラメーターの妥当性を検証しても良い。検証データは、ステップＳ１１０と同様の処理により、撮影時期が対応づけられた複数の写真の写真データから検証データを予め抽出し、訓練に用いないデータとして確保しておくことで取得すれば良い。
【００４２】
ステップＳ１２５において、訓練モデルの汎化が完了したと判定されない場合、プロセッサー１０は、ステップＳ１２０を繰り返す。すなわち、さらに重みおよびバイアスを更新する。一方、ステップＳ１２５において、訓練モデルの汎化が完了したと判定された場合、プロセッサー１０は、学習済モデルを記録する（ステップＳ１３０）。すなわち、プロセッサー１０は、訓練モデルを学習済モデル２０ｂとしてＨＤＤ２０に記録する。
【００４３】
以上の構成によれば、任意の写真データを学習済モデル２０ｂに入力して撮影時期を示す情報を出力することにより、任意の写真の撮影時期を推定することが可能になる。従って、写真に撮影日が写し込まれていなくても、写真が撮影された撮影時期を推定することができる。さらに、本実施形態においては、写真データと写真の撮影時期とを対応づけた教師データに基づいて学習を行うため、写真の特徴と撮影時期との関係とを人間の判断によって明確に定義しなくても、写真の撮影時期を推定することが可能になる。図４に示すモデルには、写真データの退色の程度を計算する関数ｆが含まれるが、少なくとも退色の程度と撮影時期との関係については、人為的に明示的に定義しなくても、写真の撮影時期を推定することが可能である。特に写真の退色の程度は写真の保管環境に大きく影響されるため、メーカーが写真の特徴と撮影時期との関係を定義するよりもユーザーが保管している写真に基づいて写真の特徴と撮影時期との関係を学習して定義する方がより正確に撮影時期を推定することができる。
【００４４】
さらに、本実施形態における教師データには、写真に写し込まれた撮影日を読み取って撮影時期を確認することで、写真データと撮影時期とを対応づけたデータが含まれている。従って、この教師データにおいては、写真の撮影日を正確に示す撮影時期が対応づけられたデータが含まれている。このため、当該教師データによれば、学習済モデル２０ｂが撮影時期を正確に出力する可能性を高めることができる。
【００４５】
（３）画像処理：
次に、プロセッサー１０が実行する画像処理を説明する。図５は、画像処理を示すフローチャートである。画像処理は、写真データに関する処理（整理や編集等）を実行したい場合に、利用者によって実行される。すなわち、利用者は、ディスプレイ４を視認しながらマウス３ａやキーボード３ｂを操作し、画像処理を行うための指示を行う。当該指示は、種々の手法で行われて良く、本実施形態においては画像をスキャンするためのアプリケーションプログラムの起動指示がこれに該当する。
【００４６】
画像処理が開始されると、プロセッサー１０は、取得部１２ａの機能により、ユーザーインターフェース画面を表示する（ステップＳ２００）。すなわち、プロセッサー１０は、取得部１２ａの機能により、ＨＤＤ２０に記録された図示しないアイコンのデータ等を参照して、予め決められた表示項目を備えるユーザーインターフェース画面を描画する（画像データ等をＲＡＭに記録する）。そして、プロセッサー１０は、ディスプレイインターフェース４０を介してディスプレイ４に描画内容を出力することにより、ディスプレイ４にインターフェース画面を表示させる。
【００４７】
図６は、インターフェース画面の例を示す図である。図６に示す例においては、画面の上部に実行対象の機能を示すボタンＢｓｃ、Ｂｓｈ、Ｂｕｐ、Ｂｅｄ，Ｂｄｅが表示されている。また、画面の左側には、写真を示す写真データの保存場所を示す領域Ｚ1と、当該保存場所に保存された写真データの縮小画像を表示するための領域Ｚ2が設けられている。領域Ｚ2においては、同一の保存場所に記録された写真の全てを一覧表示できない場合にスクロールバーが表示され、大量の写真が存在しても、利用者はスクロールバーによる指示で所望の写真を探すことができる。さらに、画面の右側には、領域Ｚ1に表示された写真から選択された一つの写真を表示するための領域Ｚ3と、写真をソートする際のキーを指示するための領域Ｚ4が設けられている。ソートキーは種々のキーであって良く、本実施形態においては、撮影時期が含まれている。他にも、ファイル名や他の条件がソートキーとして選択可能であって良い。
【００４８】
ボタンＢｓｃはスキャン機能を実行させる指示を行うためのボタンであり、ボタンＢｓｈは写真をシェアする（例えばメールで送信する等）指示を行うためのボタンであり、ボタンＢｕｐは写真を既定のサーバーにアップロードする指示を行うためのボタンである。なお、図１において、通信のために利用されるハードウェアは省略されている。また、ボタンＢｅｄは写真を編集する（明るさの調整等）指示を行うためのボタンであり、ボタンＢｄｅは写真を削除する指示を行うためのボタンである。スキャン機能以外の指示を行う際、利用者は、領域Ｚ2に表示された写真をマウス３ａやキーボード３ｂで選択し、選択された写真に対する機能をボタンＢｓｈ等によって指示する。また、利用者に指示された写真は、プロセッサー１０により、領域Ｚ3に表示される。図６に示す例においては、領域Ｚ2内で選択された写真の外枠が太い実線で示されており、当該選択された写真が領域Ｚ3に表示されている。
【００４９】
マウス３ａやキーボード３ｂによって利用者がボタンＢｓｃを指示すると、プロセッサー１０は、機器インターフェース３０を制御してスキャナー２による写真のスキャンを開始させる。本実施形態において、利用者は、図６に示すインターフェース画面に表示された写真をソートし、ソート後の順序で表示させることが可能である。領域Ｚ4においては、プルダウン形式でソートキーを表示させることが可能であり、利用者がソートキーを選択すると、プロセッサー１０は、選択されたソートキーによって写真をソートし、ソートされた順序で領域Ｚ2内に写真を再表示させる。なお、図６に示す例において、領域Ｚ2内には４枚の写真が表示されているが、むろん、表示される写真の数は任意の数であって良い。
【００５０】
プロセッサー１０は、図５に示す順序でユーザーインターフェース画面上での利用者の操作に応じた処理を行う。このため、プロセッサー１０は、利用者による操作を受け付ける（ステップＳ２０５）。すなわち、プロセッサー１０は、機器インターフェース３０を介してマウス３ａやキーボード３ｂの出力情報を受け付け、利用者が行った操作が、ボタンＢｓｃ、Ｂｓｈ、Ｂｕｐ、Ｂｅｄ，Ｂｄｅのいずれかに対する指示、領域Ｚ4におけるソートキーの選択、のいずれであったかを判定する。
【００５１】
利用者が行った操作がボタンＢｓｃに対する指示であった場合、プロセッサー１０は、ステップＳ２１０でスキャン指示が行われたと判定する。ステップＳ２１０でスキャン指示が行われたと判定された場合、プロセッサー１０は、取得部１２ａの機能により、写真をスキャンして、写真データを取得する（ステップＳ２１５）。すなわち、プロセッサー１０は、機器インターフェース３０を介してスキャナー２に対して制御信号を出力し、利用者がスキャナー２にセットした写真をスキャンさせる。この結果、スキャナー２は読み取り結果として得られた写真データを出力し、プロセッサー１０は、機器インターフェース３０を介して当該写真データを取得する。なお、本実施形態においてプロセッサー１０は、スキャンした写真データをＨＤＤ２０におけるデフォルトの保存場所（フォルダ）に保存し、スキャンした写真データが示す写真を領域Ｚ2内に表示させる。なお、複数の写真がスキャン対象である場合、利用者はスキャナー２に対する写真のセットを繰り返し、プロセッサー１０は、複数の写真のスキャンを行う。
【００５２】
次に、プロセッサー１０は、読取部１２ｃの機能により、写真に写し込まれている撮影日を読み取る（ステップＳ２２０）。すなわち、プロセッサー１０は、ステップＳ２１５でスキャンされた写真の写真データに基づいて数値の形状の特徴を有する部分を検出し、検出された部分の形状の特徴に基づいて数値を特定する。そして、数値の並びが撮影日であると見なし、撮影時期を取得する。例えば、図６に示す写真Ｚ21であれば、撮影日が１９６１年４月１日であるため、プロセッサー１０は１９６０年代を撮影時期として取得する。プロセッサー１０は、以上のような撮影日の読み取りが成功したか否かを判定し（ステップＳ２２５）、撮影日の読み取りが成功した場合、プロセッサー１０は、当該写真の写真データに対して撮影時期（撮影日）を対応づける（ステップＳ２４０）。
【００５３】
一方、ステップＳ２２５において、撮影日の読み取りが成功したと判定されない場合、プロセッサー１０は、計算部１２ｂの機能により、写真データを前処理する（ステップＳ２３０）。すなわち、本実施形態においてプロセッサー１０は、学習済モデル２０ｂに基づいて写真の撮影時期を推定する。学習済モデル２０ｂは、上述のように既定のモデルに従って、入力された写真データの撮影時期を出力するように構成されている。そして、写真データを入力するためのフォーマットは、例えば、図４に示す例であれば上述の関数ｆに入力可能なフォーマットである必要がある。そこで、プロセッサー１０は、学習済モデル２０ｂに入力可能なフォーマットになるように、前処理（例えば、拡大処理や縮小処理、規格化等）を実行する。
【００５４】
次に、プロセッサー１０は、計算部１２ｂおよび整理部１２ｄの機能により、学習済モデルによる推定を実行する（ステップＳ２３５）。すなわち、プロセッサー１０は、ＨＤＤ２０から学習済モデル２０ｂを取得する。そして、プロセッサー１０は、ステップＳ２３０で前処理された写真データを学習済モデル２０ｂに対する入力データとし、学習済モデル２０ｂによる出力結果を撮影時期として取得する。なお、図４に示す例において、学習済モデル２０ｂは入力された写真データに基づいて写真の退色の程度を取得し、当該退色の程度をニューラルネットワークに入力して写真の撮影時期を出力する。従って、プロセッサー１０は、ステップＳ２３５において、計算部１２ｂによる退色の程度の推定と整理部１２ｄによる撮影時期の推定（古さの推定）とを行っていることになる。
【００５５】
次に、プロセッサー１０は、整理部１２ｄの機能により、写真データに撮影時期を対応づけて記録する（ステップＳ２４０）。すなわち、プロセッサー１０は、ステップＳ２３５によって推定された撮影時期を示す情報を写真データに対応づけ、ＨＤＤ２０に記録する（写真データ２０ａ）。以上の処理によれば、スキャンした写真に撮影時期を対応づけた写真データ２０ａが生成される。なお、以上の処理により、本実施形態においては、撮影時期を対応づけた写真データ２０ａを生産する方法を、コンピューター１が実行していると見なすことができる。撮影時期を示す情報を写真データに対応づけるということは、対応する写真データを含む写真ファイルの内部（例えばヘッダー）に撮影時期を記入するのでもよいし、写真データとは別の撮影時期ファイルに撮影時期を記入するのでもよい。
その後、プロセッサー１０は、整理部１２ｄの機能により、後述する領域Ｚ4におけるソートキーによって選択されているソートキーに従った順番で写真を追加した画像を描画し、描画された画像をディスプレイ４に表示させる。
【００５６】
一方、利用者が行った操作が領域Ｚ4におけるソートキーの選択であった場合、プロセッサー１０は、ステップＳ２４５でソート指示が行われたと判定する。ステップＳ２４５でソート指示が行われたと判定された場合、プロセッサー１０は、整理部１２ｄの機能により、ソートキーに基づいて写真をソートする（ステップＳ２５０）。すなわち、利用者は、領域Ｚ4においてソートキーを選択し、写真データ２０ａに対応づけられた情報を参照し、選択されたーソートキーに基づいて写真をソートする。ソートが行われると、プロセッサー１０は、ソート後の順番で写真を並べた画像を描画し、描画された画像をディスプレイ４に表示させる。
【００５７】
なお、本実施形態において利用者はソートキーとして撮影時期を選択することができる。撮影時期が選択された場合、プロセッサー１０は、撮影時期をソートキーにして写真をソートする。すなわち、本実施形態においては、スキャンされた写真を示す写真データ２０ａに対して、ステップＳ２４０の処理によって撮影時期が対応づけられる。そこで、プロセッサー１０は、写真データ２０ａに対応づけられた撮影時期を参照し、その昇順または降順にソートする（昇順または降順のいずれかは利用者が選択しても良いし、予め決められていても良い）。
【００５８】
なお、本実施形態においては、ステップＳ２２０において撮影日の読み取りが行われ、読み取りが成功した写真データ２０ａに対しては、読み取られた撮影時期がステップＳ２４０において対応づけられる。従って、当該写真については学習済モデルによって推定される撮影時期ではなく、読み取られた撮影時期が対応づけられている。このため、撮影日の読み取りが行われた写真については、読み取られた撮影日がソートキーとなり、学習済モデル２０ｂによって出力される撮影時期（退色の程度に基づいて推定された撮影時期）はソートキーとならない。従って、本実施形態においてソートが行われる場合、読み取りによって得られた撮影日（撮影時期）や利用者が入力した撮影日（撮影時期）が、学習済モデル２０ｂによって出力される撮影時期よりも優先的に利用されている。
【００５９】
なお、ステップＳ２５０において、撮影時期がソートキーになる場合、撮影時期が対応づけられていない写真データ２０ａが存在すれば、撮影時期の推定を試み、推定に成功した場合には推定した撮影時期でソートをし、推定に失敗した場合には当該写真データ２０ａによる写真のソートはスキップされる。
【００６０】
一方、利用者が行った操作がスキャン指示、ソート指示以外の他の指示であった場合（ボタンＢｓｈ、Ｂｕｐ、Ｂｅｄ，Ｂｄｅのいずれかであった場合）、プロセッサー１０は、指示されたボタンに応じた他の処理を実行する（ステップＳ２５５）。すなわち、プロセッサー１０は、利用者の指示に応じて指示に応じた処理を実行する。例えば、ボタンＢｓｈによる指示が行われた場合、プロセッサー１０は、選択された写真をシェアするために必要な情報の入力画面をディスプレイ４に表示させる。入力後に利用者が実行を指示すると、シェア対象として指定された人と写真がシェアされる状態になる。
【００６１】
ボタンＢｕｐによる指示が行われた場合、プロセッサー１０は、図示しない通信部を介して図示しない既定のサーバーに、選択された写真の写真データ２０ａを送信する。ボタンＢｅｄによる指示が行われた場合、プロセッサー１０は、選択された写真を編集するために必要な情報の入力画面をディスプレイ４に表示させる。入力後に利用者が実行を指示すると、編集内容が反映された状態で写真データ２０ａの更新が行われる。この編集は、画像自体に対するトリミング等の編集や画像に対応付けられる情報の編集を含む。利用者が写真の撮影時期を記憶している場合には、この編集によってユーザーが撮影時期を入力する。ユーザーが撮影時期を入力した場合、撮影時期の入力の確定に応じて、学習と推定をやり直すようにしてもよい。ボタンＢｄｅによる指示が行われた場合、プロセッサー１０は、選択された写真の写真データ２０ａをＨＤＤ２０から削除する。
【００６２】
以上のような本実施形態によれば、学習済モデル２０ｂに基づいて任意の写真の撮影時期を推定することができる。学習済モデル２０ｂは、写真の特徴（退色の程度等）に基づいて写真の撮影時期を出力するように構成されているため、写真に撮影日が写し込まれていなくても、写真の撮影時期を推定することができる。従って、出力された撮影時期に基づいてソート等の整理を行うことにより、古さに応じて写真を整理することができる。なお、本実施形態においては、ソートの際に学習済モデル２０ｂに基づいて写真の撮影時期を推定する。従って、コンピューター１は、スキャンした写真の写真データと当該写真の撮影時期とを対応づけた教師データに基づいて機械学習が行われたモデルから、撮影日が写し込まれていない写真の撮影時期を取得する撮影時期推定装置として機能している。
【００６３】
なお、本実施形態においては、写真に写し込まれている撮影日を読み取ることができた場合に、学習済モデル２０ｂで推定された撮影時期よりも、読み取られた撮影日（撮影時期）が優先的に参照されたソートが行われる。従って、退色の程度よりも確実に写真の撮影日を特定することができる、より正確な情報に基づいて古さに応じた整理を行うことが可能になる。
【００６４】
（４）他の実施形態：
以上の実施形態は本発明を実施するための一例であり、他にも種々の実施形態を採用可能である。例えば、本発明の一実施形態にかかる機械学習装置、画像処理装置は、読み取り以外の目的にも使用される電子機器、例えば複合機等に適用されていても良い。さらに、以上の実施形態のように写真データに基づいて、撮影日が写し込まれていない写真の撮影時期を推定する手法や、推定のための学習を行う手法は、プログラムの発明、方法の発明としても実現可能である。
【００６５】
さらに、画像処理装置を構成する装置の数は任意の数であって良い。例えば、コンピューター１とスキャナー２とが一体化された装置によって実現されても良いし、他の各種デバイス、例えば、ディスプレイ４が一体化されていても良い。また、コンピューター１とディスプレイ４とが一体化されたタブレット端末によってスキャナー２が制御されてもよい。
【００６６】
さらに、コンピューター１の機能が複数の装置によって実現される構成が採用されてもよい。例えば、サーバーとクライアントとが接続可能に構成され、サーバーとクライアントの一方で機械学習プログラムが実行され、他方で画像処理プログラムが実行されるように構成されていても良い。機械学習と、画像処理とが離れた位置に存在する装置で実行される場合、学習済モデルは各装置で共有されても良いし、一方の装置に存在しても良い。学習済モデルが機械学習を行う装置に存在し、画像処理を行う装置に存在しない場合、画像処理を行う装置は機械学習を行う装置に撮影時期の問合せを行う構成となる。むろん、機械学習装置が複数の装置に分散して存在する構成や、画像処理装置が複数の装置に分散して存在する構成等であっても良い。さらに、上述の実施形態は一例であり、一部の構成が省略されたり、他の構成が追加されたりする実施形態が採用され得る。
【００６７】
取得部は、写真をスキャンした写真データを複数取得することができればよい。すなわち、取得部は、整理の対象となる複数の写真を示す写真データを取得することができればよい。なお、写真データは退色の程度を計算する対象でもあるため、退色の程度を計算可能なフォーマットである。このフォーマットは種々のフォーマットで良いが、例えば、複数の色チャネル（Ｒ：レッド、Ｇ：グリーン、Ｂ：ブルー等）で構成される例が挙げられる。写真データには生成日等の付加情報が付加されて良いが、当該写真データはスキャンによって得られるため、撮影された写真の写真データのように写真データが生成された日が撮影日であるとは限らない。従って、写真に撮影日が写し込まれている、写真の撮影日が既知である（例えば、プリントされた写真の裏にメモしてある等）、などの事情がなければ写真の撮影時期は未知である。取得部においては、撮影時期が対応づけられていない写真を少なくとも１枚取得する。
【００６８】
計算部は、写真データについて写真の退色の程度を計算することができればよい。退色は、プリントされた写真の色の変化や劣化であれば良く、プリントされた写真の色が経時変化した場合、当該写真は退色している。退色の程度は、各種の手法で評価されて良い。上述の実施形態において、写真データを入力し、撮影時期を出力するモデルが構築される場合等のように、退色の程度が明示的に計算されているか否か不明であっても、退色の程度は写真の古さに関連しているため、モデル内で退色の程度が計算されていると見なすことができる。すなわち、学習されたモデルによって退色の程度の計算を含む出力が行われたと見なすことができる。
【００６９】
整理部は、退色の程度が大きいほど古い写真であるとみなして写真データを古さに応じて整理することができればよい。すなわち、一般に、写真は、プリント後の経過時間が長いほど退色の程度が大きくなる。そこで、整理部は、退色の程度が大きいほど、その写真が古いとみなす。
【００７０】
古さは、写真がプリントされた日と現在との時間間隔であり、プリントされた日と現在との時間間隔が長いほど古い。プリント写真においては、写真がプリントされた後に退色が開始するため、撮影日から長時間経過後に写真がプリントされると退色の程度と撮影日の古さとの関連が少ない状況になり得る。また、プリント後の写真の保管状況によって退色の程度は変化し得る。従って、写真の古さと撮影日の古さとの関連が強い写真と弱い写真とが存在し得る。しかし、多くの場合、撮影日とプリントされた日は近く、退色の程度で評価された古さが撮影日の古さであると見なされたとしても、古さに応じて写真が整理されると、利用者による撮影時期の入力の手間をかけることなく時系列のソートを可能にするなどの効果が得られる。
【００７１】
整理部における整理は、古さに基づいて複数の写真に各種の秩序を与える処理であれば良い。従って、整理は、上述の実施形態のようなソート以外にも各種の処理が該当し得る。例えば、古さによるフィルタリングであっても良いし、写真データに対する付加情報の付加（撮影日や撮影時期の付与等）であっても良いし、写真データに対するファイル名の付与、分類、フォルダへの保存、移動、削除、加工等であっても良く、各種の処理が挙げられる。むろん、ソートやフィルタリングは写真データの表示のみならず、他の処理、例えば、付加情報の付加やファイル名の付与等に利用されても良い。
【００７２】
読取部は、写真に写し込まれている撮影日を読み取ることができればよいが、むろん、撮影日の一部を読み取る構成であっても良い。例えば、撮影日を示す数値の中の日付が不明瞭で読み取ることができず、撮影年と撮影月を読み取ることが出来た場合、撮影年月が読み取られる構成であっても良い。撮影日は写真に写し込まれていれば良い。すなわち、プリントされた写真の辺や角の付近に、写真に使われにくい色の数値で表現された撮影年月日がプリントされていれば良い。
【００７３】
読取部による読み取りは、数値を認識する各種の技術によって実現されて良い。従って、上述のように、数値の形状の特徴を取得することによって撮影日を認識する技術が利用されても良いし、機械学習によって画像から数値を認識する技術が利用されても良く、種々の構成が採用可能である。なお、数値を認識する場合、日付としてありえる数値の並びになっているものから数値の位置に基づいて撮影日を選択するのが好ましい。日付としてありえる数値の並びとは、例えばYYYY/MM/DDといった並びであり、２月３５日のようにありえない日付をとっていないということである。
【００７４】
撮影日を退色の程度に優先させて整理する際には、退色の程度から推定される古さよりも、読み取られた撮影日を優先して整理に反映させることができればよい。優先させて整理するとは、同一の写真について撮影日と退色の程度から推定される古さとが取得された場合、当該写真については撮影日に基づいて整理が行われることを指す。例えば、整理としての処理がソートである場合、撮影日と退色の程度から推定される古さとが取得されているならば、撮影日に基づいてソートが行われる。
【００７５】
撮影時期は、撮影された時期であれば良く、撮影日であっても良いし、より長期の区切り（例えば、撮影月、撮影年等）であっても良い。むろん、他の手法で分類された時期、例えば、１９８０年代、１９８０年前後などのように、複数の年を跨ぐ時期や、範囲によって特定された時期であっても良いし、現在からの時間間隔（４０年前等）等であっても良い。
【００７６】
上述の実施形態において、整理部１２ｄは、学習済モデル２０ｂの出力に基づいて写真の古さ、すなわち、写真の撮影時期を取得する。しかし、他の手法によって写真の古さが判断されても良い。例えば、既定の基準に基づいて写真の古さを判断する構成等が採用されてもよく、退色の程度が写真の古さと一致すると見なされて整理されても良い。
【００７７】
具体的には、上述の図１に示す実施形態において、プロセッサー１０が、図７に示す画像処理を行うことによって写真の古さを判断する構成等を採用可能である。図７に示す画像処理は、図５に示す画像処理の一部が変更された処理であり、図７において図５と同一の処理は同一の符号を付して示している。ここでは、図５と同一の処理の説明を省略し、図５と異なる処理について主に説明する。
【００７８】
この例において、プロセッサー１０は、ステップＳ２２０において、読取部１２ｃの機能により、撮影日が写し込まれている写真から撮影日の読み取りを行う（以後、撮影日が写し込まれている写真を第１写真と呼ぶ）。次にプロセッサー１０は、撮影日の読み取りが成功したか否かを判定する（ステップＳ２２５）。読み取りが成功した場合、プロセッサー１０は、整理部１２ｄの機能により、写真データに撮影時期を対応づけて記録する（ステップＳ２２６）。すなわち、プロセッサー１０は、ステップＳ２３５によって推定された撮影時期（撮影日）を示す情報を写真データに対応づけ、ＨＤＤ２０に記録する（写真データ２０ａ）。
【００７９】
ステップＳ２２５において、読み取りが成功したと判定されない場合、プロセッサー１０は、ステップＳ２２６をスキップする。この場合、プロセッサー１０は、スキャンされた写真に撮影日が写し込まれていないと見なす（以後、撮影日が写し込まれていない写真を第２写真と呼ぶ）。
【００８０】
次に、プロセッサー１０は、計算部１２ｂの機能により写真の退色の程度を計算する（ステップＳ２２７）。退色の程度の計算法は、種々の手法が採用されてよい。例えば、上述の関数ｆによって退色の程度を計算する構成や、退色の程度が対応づけられた写真データに基づく機械学習で得られたモデルに基づいて退色の程度を計算する構成等が挙げられる。計算部１２ｂの機能によって退色の程度が計算されると、プロセッサー１０は、各写真の写真データ２０ａに対して退色の程度を示す情報を対応付けてＨＤＤ２０に記録する（ステップＳ２２８）。
【００８１】
プロセッサー１０が、以上のようにして写真データ２０ａを生成すると、当該写真データ２０ａに基づいて写真の撮影時期を推定可能な状態になる。本実施形態においてプロセッサー１０は、ステップＳ２５１において写真をソートする場合に写真の撮影時期を推定し、推定された撮影時期の順序に写真をソートする。すなわち、本実施形態において、プロセッサー１０は、撮影日が写し込まれている第１写真の退色の程度と撮影日が写し込まれていない第２写真の退色の程度とを比較し、第１写真と第２写真との古さを判断して整理する。
【００８２】
具体的にはプロセッサー１０は、全ての第２写真を順次判定対象とし、各判定対象について比較対象の第１写真を特定する。さらに、プロセッサー１０は、当該比較対象の第１写真における退色の程度と判定対象の第２写真における退色の程度とを比較する。そして、プロセッサー１０は、第１写真の退色の程度よりも第２写真における退色の程度が大きい場合には、比較対象の第１写真よりも判定対象の第２写真の方が古いと判定する。また、プロセッサー１０は、第１写真の退色の程度よりも第２写真における退色の程度が小さい場合には、比較対象の第１写真の方が判定対象の第２写真よりも古いと判定する。以上の構成によれば、撮影日が既知の写真を基準にして撮影日が未知の写真の古さを判断することができる。
【００８３】
第２写真と比較される比較対象は、種々の手法で選択されて良い。例えば、退色の程度が最も近い第１写真が比較対象とされても良いし、退色の程度が近い複数の第１写真が比較対象とされても良いし、特定の第１写真が比較対象とされても良いし、他にも種々の手法が採用されてよい。本実施形態において、第１写真には撮影時期が特定されているため、プロセッサー１０は、当該撮影時期に基づいて第１写真をソートする。そして、プロセッサー１０は、ソートされた第１写真を基準とし、第１写真を基準にして古さが特定された第２写真を第１写真の時系列の順序に挿入することによってソートを行う。
【００８４】
以上の構成によれば、撮影時期が読み取りによって確定している第１写真をソートして基準とし、撮影時期が読み取りによって確定しない第２写真をソートすることができる。ソートが行われると、プロセッサー１０は、ソート後の順番で写真を並べた画像を描画し、描画された画像をディスプレイ４に表示させる。なお、第１写真と第２写真との比較により、全ての写真について古さの関係が決定できない場合、第２写真同士で退色の程度を比較して古さの関係を決定しても良い。
【００８５】
さらに、退色の程度に基づいて古さの関係のみならず、撮影時期を推定する構成であっても良い。この構成は、プロセッサー１０が写真データ２０ａを参照し、整理部１２ｄの機能により、第１写真の退色の程度と第２写真の退色の程度とに基づいて第２写真の撮影時期を推定する構成等によって実現可能である。具体的には、プロセッサー１０が第１写真の退色の程度に対して第１写真の撮影時期（撮影日）を対応付け、退色の程度が類似している第２写真は撮影時期が同時期であると見なす構成を採用可能である。
【００８６】
また、退色の程度が異なる場合、プロセッサー１０は、撮影時期が異なるとみなしてもよい。さらに、第１写真が２枚以上存在する場合、各第１写真の退色の程度の差異に基づいて任意の退色の程度に対応する撮影時期が特定されても良い。例えば、ある第２写真の退色の程度が、２枚の第１写真の退色の程度の間である場合、当該第２写真は、これらの第１写真の撮影時期の間に撮影されたと見なされる構成が採用可能である。むろん、２枚の第１写真の退色の程度の差異がこれらの第１写真の撮影時期の差異に対応していると見なし、第１写真の退色の程度と第２写真の退色の程度の差異に相当する撮影時期の差異から第２写真の撮影時期が推定されても良い。以上の構成によれば、撮影日が既知の写真を基準にして撮影日が未知の写真の撮影時期を推定することができる。
【００８７】
学習対象取得部は、スキャンした写真の写真データを複数取得することができればよい。すなわち、学習対象取得部は、機械学習の対象となる複数の写真の写真データを取得することができればよい。写真データは、学習の際に参照される教師データとなれば良く、写真データに対して予め撮影時期が対応づけられていても良いし、写真に基づいて撮影時期が推定されて対応づけられても良い。後者は種々の手法で行われて良く、例えば、撮影時期が既知の写真と、撮影時期が未知の写真とのそれぞれで写真の退色の程度を特定し、退色の程度に基づいて後者の写真の撮影時期を推定する構成等を採用可能である。むろん、撮影時期の推定手法は他の手法であっても良いし、写真の裏のメモや利用者の記憶等に基づいて利用者が指定しても良い。
【００８８】
写真データは、撮影時期を学習する対象であるため、撮影時期を示す情報が少なくとも間接的に含まれるデータである。例えば、写真の古さと撮影時期とがほぼ一致すると見なす推定は合理的な推定であるため、写真データは写真の古さ、例えば、退色の程度を反映していることが好ましい。このためには、写真データが退色の程度を計算可能なフォーマットである。このフォーマットは種々のフォーマットで良いが、例えば、複数の色チャネル（Ｒ：レッド、Ｇ：グリーン、Ｂ：ブルー等）で構成される例が挙げられる。
【００８９】
むろん、写真データに対して機械学習前の前処理が行われてもよい。例えば、学習の際に入力されるべき写真データのサイズ（画素数等）が限定される場合、各種の写真データが既定のサイズとなるように、拡大、縮小等によって調整されても良い。また、写真データの階調値の範囲を既定範囲に変換する正規化等が行われても良いし、エッジ強調やガンマ変換等の各種の画像処理が行われる構成等であっても良い。
【００９０】
学習部は、写真データに基づいて、撮影日が写し込まれていない写真の撮影時期を学習することができればよい。すなわち、学習部は、写真データと当該写真の撮影時期とに基づいて機械学習を行うことができればよい。機械学習の手法は、種々の手法であって良い。すなわち、写真データや写真データから導出される値（退色の程度等）を入力し、写真の撮影時期を出力するモデルを構築し、当該モデルによる出力と教師データにおける撮影時期との差分を極小化する学習を行うことができればよい。
【００９１】
従って、例えばニューラルネットワークによる機械学習が行われる場合、モデルを構成する層の数やノードの数、活性化関数の種類、損失関数の種類、勾配降下法の種類、勾配降下法の最適化アルゴリズムの種類、ミニバッチ学習の有無やバッチの数、学習率、初期値、過学習抑制手法の種類や有無、畳み込み層の有無、畳み込み演算におけるフィルタのサイズ、フィルタの種類、パディングやストライドの種類、プーリング層の種類や有無、、全結合層の有無、再帰的な構造の有無など、種々の要素を適宜選択して機械学習が行われればよい。むろん、他の機械学習、例えば、サポートベクターマシンやクラスタリング、強化学習等によって学習が行われてもよい。
【００９２】
さらに、モデルの構造（例えば、層の数や層毎のノードの数等）が自動的に最適化される機械学習が行われてもよい。さらに、学習は複数段階に分割されて実行されてもよい。例えば、写真データから退色の程度学習する機械学習と、退色の程度から撮影時期を学習する機械学習とを実行する構成が採用されてもよい。さらに、サーバーにおいて機械学習が行われる構成において、複数のクライアントから教師データが収集され、この教師データに基づいて機械学習が行われる構成であっても良い。
【００９３】
撮影日が写し込まれていない写真は、プリントされた写真の辺や角の付近に日付を示す数値がプリントされていない状態の他、数値が退色等によって劣化して読み取り不可能になっている場合が含まれていても良い。すなわち、数値が読み取り不可能であれば、撮影日が写し込まれていない状態と等価である。撮影日が写し込まれている写真は、撮影日を読み取ることによって撮影日を正確に特定可能であるため、撮影日の推定は必要ないが、むろん、学習のためのサンプルに加えられても良い。
【００９４】
撮影時期は、写真が撮影された時期として推定される時期であれば良く、撮影日であっても良いし、より長期の区切り（例えば、撮影月、撮影年等）であっても良いし、１９８０年代、１９８０年前後などのように、複数の年を跨ぐ時期や、範囲によって特定された時期であっても良いし、現在からの時間間隔（４０年前等）等であっても良い。むろん、撮影時期は、連続値（例えば、確率や信頼度等）で特定されても良いし、離散値（例えば、複数の候補のいずれかであるかを示すフラグ等）で特定されても良い。
【００９５】
なお、写真データと写真の撮影時期とを対応づけた教師データに基づいて学習が行われる場合、写真データと撮影時期とがニューラルネットワーク等のモデルに対する入力および出力となっても良いし、入力が加工された値（例えば、退色の程度を示す値等）が入力および出力となってもよい。
学習や撮影時期の推定は、ユーザーの明示の指示に基づいて行うようにしてもよい。例えば「撮影時期の推定」というボタンを表示し、そのボタンが操作されることで学習と推定とを行うようにしてもよい。
また、撮影時期を退色の程度に基づいて推定するものに限られず、他の要素を用いて推定してもよい。例えば、退色の程度と写真紙の劣化の程度とに基づいて推定してもよい。
【００９６】
さらに本発明は、コンピューターが実行するプログラムや、方法としても適用可能である。また、以上のようなプログラム、方法は、単独の装置として実現される場合もあれば、複数の装置が備える部品を利用して実現される場合もあり、各種の態様を含むものである。また、一部がソフトウェアであり一部がハードウェアであったりするなど、適宜、変更可能である。さらに、プログラムの記録媒体としても発明は成立する。むろん、そのプログラムの記録媒体は、磁気記録媒体であってもよいし半導体メモリ等であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。
【符号の説明】
【００９７】
１…コンピューター、２…スキャナー、３ａ…マウス、３ｂ…キーボード、４…ディスプレイ、１０…プロセッサー、１１…機械学習プログラム、１１ａ…学習対象取得部、１１ｂ…学習部、１２…画像処理プログラム、１２ａ…取得部、１２ｂ…計算部、１２ｃ…読取部、１２ｄ…整理部、２０…ＨＤＤ、２０ａ…写真データ、２０ｂ…学習済モデル、２０ｃ…教師データ、２０ｄ…テストデータ、２０ｅ…訓練モデル、３０…機器インターフェース、４０…ディスプレイインターフェース
【図１】
2019197452.tif 000005
【図２】
2019197452.tif 000006
【図３】
2019197452.tif 000007
【図４】
2019197452.tif 000008
【図５】
2019197452.tif 000009
【図６】
2019197452.tif 000010
【図７】
2019197452.tif 000011
【手続補正書】
【提出日】令和1年9月4日(2019.9.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
スキャンした写真の写真データを複数取得する学習対象取得部と、
前記写真データに基づいて、撮影日が写し込まれていない前記写真の撮影時期と前記写真の退色の程度との関係を学習する学習部と、
を備える機械学習装置。
【請求項２】
前記学習部は、
前記写真データから算出した前記写真の退色の程度と、前記写真の撮影時期とを対応づけた教師データに基づいて学習を行う、
請求項１に記載の機械学習装置。
【請求項３】
前記教師データは、
撮影日が写し込まれている前記写真をスキャンした前記写真データと、写し込まれている撮影日を示す撮影時期とが対応づけられたデータを含む、
請求項２に記載の機械学習装置。
【請求項４】
スキャンした写真の写真データと当該写真の撮影時期とを対応づけた教師データに基づいて機械学習が行われたモデルから、前記写真の退色の程度に応じて、撮影日が写し込まれていない写真の撮影時期を取得する、
撮影時期推定装置。
【請求項５】
コンピューターを、
スキャンした写真の写真データを取得する学習対象取得部、
前記写真データに基づいて、撮影日が写し込まれていない前記写真の撮影時期と前記写真の退色の程度との関係を学習する学習部、
として機能させる機械学習プログラム。
【請求項６】
スキャンした写真の写真データと当該写真の撮影時期とを対応づけた教師データに基づいて機械学習が行われたモデルから、前記写真の退色の程度に応じて、撮影日が写し込まれていない写真の撮影時期を取得し、当該写真に対して当該撮影時期を対応づけた写真データを生産する、
写真データの生産方法。