JP6658795B2 - 機械学習装置、撮影時期推定装置、機械学習プログラムおよび写真データの生産方法 - Google Patents

機械学習装置、撮影時期推定装置、機械学習プログラムおよび写真データの生産方法 Download PDF

Info

Publication number
JP6658795B2
JP6658795B2 JP2018091951A JP2018091951A JP6658795B2 JP 6658795 B2 JP6658795 B2 JP 6658795B2 JP 2018091951 A JP2018091951 A JP 2018091951A JP 2018091951 A JP2018091951 A JP 2018091951A JP 6658795 B2 JP6658795 B2 JP 6658795B2
Authority
JP
Japan
Prior art keywords
photograph
data
fading
photographing
degree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018091951A
Other languages
English (en)
Other versions
JP2019197452A (ja
Inventor
哲也 浅野
哲也 浅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2018091951A priority Critical patent/JP6658795B2/ja
Priority to CN201910382768.2A priority patent/CN110473162B/zh
Priority to US16/407,313 priority patent/US10915790B2/en
Publication of JP2019197452A publication Critical patent/JP2019197452A/ja
Application granted granted Critical
Publication of JP6658795B2 publication Critical patent/JP6658795B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10008Still image; Photographic image from scanner, fax or copier
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/10Recognition assisted with metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Quality & Reliability (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Image Analysis (AREA)

Description

本発明は、機械学習装置、撮影時期推定装置、機械学習プログラムおよび写真データの生産方法に関する。
従来、複数の写真をスキャンし、日付順に並び替えるというニーズが存在した。例えば、特許文献1においては、ネガフィルムと写真プリントとをスキャンし、スキャン結果から同一の画像を検索し、ネガフィルムから抽出した写し込み日付をプリント画像の撮影日付として特定する技術が開示されている。
特開2004−348620号公報
写真に撮影日が写し込まれていない場合には、写真の撮影時期を特定することができなかった。
上記目的を達成するための機械学習装置は、スキャンした写真の写真データを取得する取得部と、写真データに基づいて、撮影日が写し込まれていない写真の撮影時期を学習する学習部と、を備える。以上の構成によれば、写真に撮影日が写し込まれていなくても、写真が撮影された撮影時期を推定することができる。
また、学習部は、写真データと、写真の撮影時期とを対応づけた教師データに基づいて学習を行う構成であっても良い。この構成によれば、写真の特徴と撮影時期との関係とを人間の判断によって明確に定義しなくても、写真の撮影時期を推定することが可能になる。
さらに、教師データは、撮影日が写し込まれている写真をスキャンした写真データと、写し込まれている撮影日を示す撮影時期とが対応づけられたデータを含んでいてもよい。すなわち、撮影日が写し込まれていることにより、撮影日が明確に特定される写真をスキャンして写真データを生成すれば、当該撮影日と写真データとを対応づけることにより、正確な出力を得る可能性が高い教師データを生成することができる。
機械学習装置および画像処理装置のブロック図である。 機械学習処理を示すフローチャートである。 ニューラルネットワークの構造を示す図である。 モデルの一実施例を示す図である。 画像処理を示すフローチャートである。 インターフェース画面の例を示す図である。 画像処理を示すフローチャートである。
ここでは、下記の順序に従って本発明の実施の形態について説明する。
(1)機械学習装置および画像処理装置の構成:
(2)機械学習処理:
(3)画像処理:
(4)他の実施形態:
(1)機械学習装置および画像処理装置の構成:
図1は、本発明の実施形態にかかる機械学習装置および画像処理装置を示すブロック図である。本実施形態にかかる機械学習装置および画像処理装置は、スキャナー2が接続されたコンピューター1によって実現される。コンピューター1は、プロセッサー10と、HDD(ハードディスクドライブ)20と、機器インターフェース30と、ディスプレイインターフェース40とを備えている。
機器インターフェース30は、既定の通信プロトコル(例えばUSB(Universal Serial Bus)規格)に従って通信を行う機器を接続可能なインターフェースである。本実施形態において、機器インターフェース30には、スキャナー2、マウス3a、キーボード3bが接続されている。スキャナー2は、原稿に光を照射する光源と、原稿からの光を受光して読み取りデータとするカラーイメージセンサーと、各種の可動部を移動させるための機械部品等を備えている。
本実施形態において、スキャナー2は、プリントされた写真を読み取って写真データを出力することができる。コンピューター1は、機器インターフェース30を介してスキャナー2が出力する写真データを取得し、HDD20に写真データ20aとして記録する。スキャナー2における原稿の読取方式は、種々の態様であって良く、フラットベッドであっても良いしADFによる搬送原稿を読み取る方式であっても良く、双方が可能であっても良い。
マウス3aは、利用者に把持されて移動される操作部とボタンとを備えており、操作部の移動量を示す情報とボタンに対する操作結果を示す情報とを出力する。コンピューター1は、機器インターフェース30を介してマウス3aが出力する情報を取得し、当該情報に基づいて利用者の操作を受け付けることができる。キーボード3bは、複数のキーを備えており、キーに対する操作を示す情報を出力する。コンピューター1は、機器インターフェース30を介してキーボード3bが出力する情報を取得し、当該情報に基づいて利用者の操作を受け付けることができる。
ディスプレイインターフェース40は、ディスプレイ4が接続されるインターフェースである。コンピューター1は、ディスプレイインターフェース40を介してディスプレイ4に制御信号を出力し、ディスプレイ4に各種の画像を表示させることが可能である。
プロセッサー10は、CPU,RAM等を備え、HDD20に記録された種々のプログラムを実行することができる。本実施形態においては、これらのプログラムに機械学習プログラム11と画像処理プログラム12とが含まれている。機械学習プログラム11は、スキャンした写真の写真データに基づいて、撮影日が写し込まれていない写真の撮影時期を学習する機能をプロセッサー10に実行させるプログラムである。機械学習プログラム11が実行されると、プロセッサー10は、学習対象取得部11a,学習部11bとして機能する。
画像処理プログラム12は、写真をスキャンした写真データに基づいて、写真の退色の程度を計算し、退色の程度が大きいほど古い写真であると見なし、写真データを写真の古さに応じて整理する機能をプロセッサー10に実行させるプログラムである。画像処理プログラム12が実行されると、プロセッサー10は、取得部12a,計算部12b,読取部12c,整理部12dとして機能する。
(2)機械学習処理:
次に、プロセッサー10が実行する機械学習処理を説明する。図2は機械学習処理を示すフローチャートである。機械学習処理は、写真の撮影時期を推定する前に予め実行される。機械学習処理が開始されると、プロセッサー10は、学習部11bの機能により、訓練モデルを取得する(ステップS100)。ここで、モデルとは、推定対象のデータと推定結果のデータとの対応関係を導出する式を示す情報であり、本実施形態においては写真データまたは写真データから導出されるデータ(退色の程度)を撮影時期に対応づけるモデルを例にして説明する。
入力データを出力データに変換する限りにおいて、モデルは種々の定義が可能である。本実施形態においては、モデルの少なくとも一部にニューラルネットワークが含まれている。図3は本実施形態において利用されるモデルを含み得るニューラルネットワークの構造を模式的に示した図である。図3においては、ニューロンを模したノードを丸で示し、ノード間の結合を実線の直線で示している(ただし、図を簡易化するためノードおよび結合は一部のみが示されている)。また、図3においては、同一層に属するノードを縦に並べて示しており、左端の層が入力層Li、右端の層が出力層Loである。
ここでは、2層の関係において入力層Liに近い層を上位層、出力層Loに近い層を下位層と呼ぶ。すなわち、ある層においては、1層上位の層の出力を入力とし、重みの乗算とバイアスの和算を行い、活性化関数を介して出力を行う構造となっている。例えば、図3に示す層LPのノードの数がP個であり、層LPの各ノードに対する入力データがx1,,,,xMであり、バイアスがb1,,,,bPであり、層LPのk番目のノードに対する重みがwk1,,,,wkM、活性化関数がh(u)である場合、当該層LPの各ノードにおける中間出力u1,,,,uPは以下の式1で表現される。
Figure 0006658795
従って、式1を活性化関数h(uk)に代入すると層LPの各ノードにおける出力y1,,,,yPが得られる。
モデルは、このように一般化されるノードが複数層設けられることによって構成される。従って、本実施形態において、モデルは、少なくとも各層における重みとバイアスと活性化関数を示すデータによって構成される。なお、活性化関数は、種々の関数、例えば、シグモイド関数や、双曲線関数(tanh)、ReLU(Rectified Linear Unit)や他の関数を使用可能であり、非線形関数であることが好ましい。むろん、機械学習を行う際に必要な他の条件、例えば、最適化アリゴリズムの種類や学習率等のパラメーターが含まれていても良い。また、層の数やノードの数、相関の結合関係は種々の態様とすることができる。
本実施形態においては、写真データまたは写真データから導出されるデータを入力層Liへの入力データとし、出力層Loから写真の撮影時期を示す出力データを出力するモデルが構築される。例えば、図3に示す例において、入力層Liの各ノードへの入力データが写真データの各画素の階調値(を規格化した値)であり、出力層Loからの出力データが撮影時期の範囲を示す例を想定可能である。撮影時期を出力する構成としては、例えば、各ノードに1900年代、1910年代、1920年代などの時期範囲が割り当てられており、最大値を出力したノードに割り当てられた範囲が入力された写真の撮影時期であると見なされる構成等が挙げられる。
むろん、図3に示すモデルの一部を既知の関数で表現し、残りを未知の関数として表現し、未知の関数を学習対象としても良い。いずれにしても、写真データを入力すると最終的に撮影時期が出力されるモデルが構築されていれば、写真データから撮影時期を推定するためのモデルを学習することができる。本実施形態においては、このような着想の元にモデルが構築されているが、この着想は、写真プリントの色が時間経過に従って退色していくという事実に基づいている。
すなわち、本実施形態において、写真の古さはプリントされた日と現在との時間間隔に対応していると見なされている。また、本実施形態においては、プリントされた日と現在との時間間隔が長いほど退色の程度が大きいと見なされている。さらに、本実施形態においては、プリントされた日と撮影日とが大きく(例えば、数年単位で)異なっているのはまれであると見なされている。このように見なすと、写真の退色の程度と撮影時期の古さとが対応していると見なすことができ、写真データを入力して退色の程度を計算すれば、当該計算を経て写真の古さ、すなわち、撮影時期を推定することができる。
このような着想によれば、図3に示すニューラルネットワークが入力層Liに写真データを入力し、出力層Loから撮影時期を出力するように学習した場合には、その層のいずれか1以上の層において、退色の程度を示す値が出力されると考えられる。このように、退色の程度を介した撮影時期の推定を可能にするためには、退色の程度を出力する層が機械学習によって隠れ層で自動的に学習されても良いし、より明示的に退色の程度がモデル内に導入されても良い。
例えば、写真データを入力して退色の程度を計算する関数を予め用意し、当該退色の程度を入力するニューラルネットワークが構築されても良い。このようなモデルは、例えば、図3に示すモデルの入力層Liから退色の程度を出力する層LFまでの間を既知の関数fで表現することで構築することができる。すなわち、写真データ(Ri,Gi,Bi)の階調値から退色の程度を計算する関数fを予め定義し、当該関数の出力Fiを、層LFへの入力とするモデルを構築しても良い。
図4は、当該関数fを利用して退色の程度を示す値Fiを計算するモデルを模式的に示す図である。すなわち、ある写真データiは、画素毎の各色チャネルの階調値が(Ri,Gi,Bi)であり、これらの階調値を関数fに入力すると、退色の程度を示す出力値Fi1〜FiNが得られる。退色の程度を示す出力値Fi1〜FiNは、層LFに入力され、層LFから出力層Loの間のモデルが機械学習で最適化されれば、写真の退色の程度から写真の撮影時期を示す情報(Ti1〜TiO)を出力するモデルを学習することができる。
なお、退色の低程度を計算する関数fは、種々の手法で定義されて良い。また、退色の程度は、種々の手法で評価されて良い。例えば、例えば、プリントされた写真において劣化しやすいとされている色(黄色等)のコントラストの幅を解析すれば、当該色のコントラストが狭いほど退色の程度が大きいと判定可能である。着目する色は、写真データの色成分の少なくとも1個であっても良いし、2個以上の色成分から計算された色(黄色等)であってもよい。むろん、着目する対象は、色相以外の対象であっても良く、明度や彩度のコントラストに基づいて退色の程度が判定されても良い。むろん、これらの処理以外にも、公知の種々の処理が採用されてよい。
いずれにしても、退色の程度を示す値を計算するための関数fが予め定義され、その出力Fi1〜FiNが層LFへの入力値となる。退色の程度を示す値の数(関数fの数)は1以上であれば良く、1個の写真について退色の程度が1種類の値で表現されるのであれば、層LFのノード数は1個になる。なお、図3,図4のいずれの場合であっても入力データの範囲は、写真の全範囲でなくてもよいし、特定の色チャネルでも良いし、特定の色チャネルに対して重みが設けられても良い。
本明細書においては、以後、写真データに基づいて関数fによって退色の程度を計算し、退色の程度を示す値をニューラルネットワークのノードに入力する、図4に示すモデルを例にして実施形態を説明する。なお、ここでも写真の撮影時期は、既定の期間(1900年代等)で表現されるモデルを想定するが、むろん、写真の撮影時期は他にも種々の形式で表現されて良い。なお、図4に示す例では、撮影時期を示す情報が既定の範囲の期間である場合、出力層Loの出力値(Ti1〜TiO)が1に最も近い場合に、そのノードが対応づけられた期間が撮影時期であると推定される。例えば、出力値Ti1を出力するノードに1900年代が対応づけられており、各ノードで示す期間が10年単位である場合、1900年代が対応づけられたノードの出力値が0.95、他のノードの出力値が0.95より小さい値である場合に(全ノードの出力の総和は1)撮影時期が1900年代であると推定される。
図2に示すフローチャートにおけるステップS100では、訓練モデルを取得する。ここで、訓練とは、学習対象であることを示す。すなわち、訓練モデルにおいては、写真データから退色の程度を計算し、当該退色の程度に基づいて写真の撮影時期を出力するが、写真データと写真の撮影時期との対応関係は初期において正確ではない。すなわち、訓練モデルにおいては、ノードが構成する層の数やノードの数は決められるが、入出力の関係を規定するパラメーター(上述の重みやバイアス等)は最適化されていない。これらのパラメーターは、機械学習の過程で最適化される(すなわち、訓練される)。
訓練モデルは、予め決定されていても良いし、利用者がマウス3aやキーボード3bを操作して入力することによって取得されても良い。いずれにしても、プロセッサー10は、図4に示す例において写真データから退色の程度を計算する関数と、退色の程度を入力して写真の撮影時期を出力するニューラルネットワークのパラメーターとを訓練モデルとして取得する。当該訓練モデルはHDD20に訓練モデル20eとして記録される。
次に、プロセッサー10は、学習対象取得部11aの機能により、教師データを取得する(ステップS105)。本実施形態において、教師データ20cは、スキャンした写真の写真データと、写真の撮影時期とを対応づけた教師データである。本実施形態においては、スキャナー2によって予め複数の写真がスキャンされ、HDD20に記録されている。プロセッサー10は、写真に写し込まれた撮影日を読み取る機能を実行することができる(後述する読取部12c)。
ここで、プロセッサー10は、写真データに基づいて数値の形状の特徴を有する部分を検出し、検出された部分の形状の特徴に基づいて数値を特定する。そして、数値の並びが撮影日であると見なし、撮影時期を取得する。撮影時期が取得された場合、プロセッサー10は、当該写真の写真データに対して撮影時期を対応づける。また、利用者が写真の撮影時期を記憶している場合、利用者は、自身の記憶に基づいてスキャンされた写真の撮影時期を特定し、マウス3aやキーボード3bを操作することで撮影時期を入力する。プロセッサー10は、当該入力結果に基づいて、写真データと撮影時期とを対応づける。
この結果、HDD20には、撮影時期が対応づけられた複数の写真の写真データが記録されている状態になる。撮影時期を示す情報は、写真の撮影日が含まれる時期であれば良く、種々の形式で定義されて良いが、少なくとも、訓練モデルの出力によって表現される撮影時期の形式と一致している。図4に示す例であれば、1900年代等のように既定の期間で表現された撮影時期が写真データに対応づけられている。本実施形態においては、このようにして撮影時期が対応づけられた写真データの一部が教師データになる。そこで、プロセッサー10は、HDD20を参照して撮影時期が対応づけられた写真データを、例えば、ランダムに抽出して教師データと見なし、HDD20に記録する(教師データ20c)。
次に、プロセッサー10は、学習対象取得部11aの機能により、テストデータを取得する(ステップS110)。本実施形態においては、撮影時期が対応づけられた写真データの中で、教師データとならなかったデータの全てまたは一部がテストデータになる。そこで、プロセッサー10は、HDD20を参照して撮影時期が対応づけられた写真データの中で教師データと見なされなかったデータからテストデータを取得し、HDD20に記録する(テストデータ20d)。なお、テストデータ20dの情報量(写真の枚数)と教師データ20cの情報量(写真の枚数)は、種々の量であって良いが、本実施形態においては、教師データ20cの方がテストデータ20dより多くなるように設定される。
次に、プロセッサー10は、学習部11bの機能により、初期値を決定する(ステップS115)。すなわち、プロセッサー10は、ステップS100で取得した訓練モデルのうち、可変のパラメーターに対して初期値を与える。初期値は、種々の手法で決定されて良い。例えば、ランダム値や0等を初期値とすることができ、重みとバイアスとで異なる思想で初期値が決定されても良い。むろん、学習の過程でパラメーターが最適化されるように初期値が調整されても良い。
次に、プロセッサー10は、学習部11bの機能により、学習を行う(ステップS120)。すなわち、プロセッサー10は、ステップS100で取得した訓練モデルにステップS105で取得した教師データ20cを入力し、撮影時期を示す出力を計算する。また、出力された撮影時期と教師データ20cが示す撮影時期との誤差を示す損失関数によって誤差を特定する。そして、プロセッサー10は、損失関数のパラメーターによる微分に基づいてパラメーターを更新する処理を既定回数繰り返す。
例えば、図4に示すモデルであれば、プロセッサー10は、ステップS105で取得された教師データ20cが示すi番目の写真の写真データを関数fに入力することで、i番目の写真の退色の程度(Fi1〜FiN)を取得する。さらに、プロセッサー10は、i番目の写真の退色の程度(Fi1〜FiN)を層LFのニューラルネットワークに入力し、i番目の写真の撮影時期を示す出力値(Ti1〜TiO)を取得する。教師データ20cに対応づけられた撮影時期を示す情報は、各ノードの出力値のいずれかが1である情報であり、これらの情報を(ti1〜tiO)と表記すると、ti1〜tiOのいずれかの値が1であり他の値は0である。
そこで、訓練モデルの出力値をTiと表記し、教師データ20cが示す撮影時期をtiと表記すると、i番目の写真についての損失関数はL(Ti,ti)と表記可能である。むろん、損失関数は、種々の関数を採用可能であり、例えば、交差エントロピー誤差などを採用可能である。以上のような損失関数Lを算出する処理は、教師データ20cが示す写真の全てについて実施され、その平均や総和によって1回の学習における損失関数が表現される。例えば、総和によって損失関数が表現される場合、全体の損失関数Eは次の式2で表現される。
Figure 0006658795
損失関数Eが得られたら、プロセッサー10は、既定の最適化アルゴリズム、例えば、確率的勾配降下法等によってパラメーターを更新する。
以上のようにして、既定回数のパラメーターの更新が行われると、プロセッサー10は、訓練モデルの汎化が完了したか否かを判定する(ステップS125)。すなわち、プロセッサー10は、ステップS110で取得したテストデータ20dを訓練モデルに入力して撮影時期を示す出力を取得する。そして、プロセッサー10は、出力された撮影時期と、テストデータに対応づけられた撮影時期とが一致している数を取得し、テストデータ20dが示す写真数で除することで推定精度を取得する。本実施形態において、プロセッサー10は、推定精度が閾値以上である場合に汎化が完了したと判定する。
なお、汎化性能の評価に加え、ハイパーパラメーターの妥当性の検証が行われてもよい。すなわち、重みとバイアス以外の可変量であるハイパーパラメーター、例えば、ノードの数等がチューニングされる構成において、プロセッサー10は、検証データに基づいてハイパーパラメーターの妥当性を検証しても良い。検証データは、ステップS110と同様の処理により、撮影時期が対応づけられた複数の写真の写真データから検証データを予め抽出し、訓練に用いないデータとして確保しておくことで取得すれば良い。
ステップS125において、訓練モデルの汎化が完了したと判定されない場合、プロセッサー10は、ステップS120を繰り返す。すなわち、さらに重みおよびバイアスを更新する。一方、ステップS125において、訓練モデルの汎化が完了したと判定された場合、プロセッサー10は、学習済モデルを記録する(ステップS130)。すなわち、プロセッサー10は、訓練モデルを学習済モデル20bとしてHDD20に記録する。
以上の構成によれば、任意の写真データを学習済モデル20bに入力して撮影時期を示す情報を出力することにより、任意の写真の撮影時期を推定することが可能になる。従って、写真に撮影日が写し込まれていなくても、写真が撮影された撮影時期を推定することができる。さらに、本実施形態においては、写真データと写真の撮影時期とを対応づけた教師データに基づいて学習を行うため、写真の特徴と撮影時期との関係とを人間の判断によって明確に定義しなくても、写真の撮影時期を推定することが可能になる。図4に示すモデルには、写真データの退色の程度を計算する関数fが含まれるが、少なくとも退色の程度と撮影時期との関係については、人為的に明示的に定義しなくても、写真の撮影時期を推定することが可能である。特に写真の退色の程度は写真の保管環境に大きく影響されるため、メーカーが写真の特徴と撮影時期との関係を定義するよりもユーザーが保管している写真に基づいて写真の特徴と撮影時期との関係を学習して定義する方がより正確に撮影時期を推定することができる。
さらに、本実施形態における教師データには、写真に写し込まれた撮影日を読み取って撮影時期を確認することで、写真データと撮影時期とを対応づけたデータが含まれている。従って、この教師データにおいては、写真の撮影日を正確に示す撮影時期が対応づけられたデータが含まれている。このため、当該教師データによれば、学習済モデル20bが撮影時期を正確に出力する可能性を高めることができる。
(3)画像処理:
次に、プロセッサー10が実行する画像処理を説明する。図5は、画像処理を示すフローチャートである。画像処理は、写真データに関する処理(整理や編集等)を実行したい場合に、利用者によって実行される。すなわち、利用者は、ディスプレイ4を視認しながらマウス3aやキーボード3bを操作し、画像処理を行うための指示を行う。当該指示は、種々の手法で行われて良く、本実施形態においては画像をスキャンするためのアプリケーションプログラムの起動指示がこれに該当する。
画像処理が開始されると、プロセッサー10は、取得部12aの機能により、ユーザーインターフェース画面を表示する(ステップS200)。すなわち、プロセッサー10は、取得部12aの機能により、HDD20に記録された図示しないアイコンのデータ等を参照して、予め決められた表示項目を備えるユーザーインターフェース画面を描画する(画像データ等をRAMに記録する)。そして、プロセッサー10は、ディスプレイインターフェース40を介してディスプレイ4に描画内容を出力することにより、ディスプレイ4にインターフェース画面を表示させる。
図6は、インターフェース画面の例を示す図である。図6に示す例においては、画面の上部に実行対象の機能を示すボタンBsc、Bsh、Bup、Bed,Bdeが表示されている。また、画面の左側には、写真を示す写真データの保存場所を示す領域Z1と、当該保存場所に保存された写真データの縮小画像を表示するための領域Z2が設けられている。領域Z2においては、同一の保存場所に記録された写真の全てを一覧表示できない場合にスクロールバーが表示され、大量の写真が存在しても、利用者はスクロールバーによる指示で所望の写真を探すことができる。さらに、画面の右側には、領域Z1に表示された写真から選択された一つの写真を表示するための領域Z3と、写真をソートする際のキーを指示するための領域Z4が設けられている。ソートキーは種々のキーであって良く、本実施形態においては、撮影時期が含まれている。他にも、ファイル名や他の条件がソートキーとして選択可能であって良い。
ボタンBscはスキャン機能を実行させる指示を行うためのボタンであり、ボタンBshは写真をシェアする(例えばメールで送信する等)指示を行うためのボタンであり、ボタンBupは写真を既定のサーバーにアップロードする指示を行うためのボタンである。なお、図1において、通信のために利用されるハードウェアは省略されている。また、ボタンBedは写真を編集する(明るさの調整等)指示を行うためのボタンであり、ボタンBdeは写真を削除する指示を行うためのボタンである。スキャン機能以外の指示を行う際、利用者は、領域Z2に表示された写真をマウス3aやキーボード3bで選択し、選択された写真に対する機能をボタンBsh等によって指示する。また、利用者に指示された写真は、プロセッサー10により、領域Z3に表示される。図6に示す例においては、領域Z2内で選択された写真の外枠が太い実線で示されており、当該選択された写真が領域Z3に表示されている。
マウス3aやキーボード3bによって利用者がボタンBscを指示すると、プロセッサー10は、機器インターフェース30を制御してスキャナー2による写真のスキャンを開始させる。本実施形態において、利用者は、図6に示すインターフェース画面に表示された写真をソートし、ソート後の順序で表示させることが可能である。領域Z4においては、プルダウン形式でソートキーを表示させることが可能であり、利用者がソートキーを選択すると、プロセッサー10は、選択されたソートキーによって写真をソートし、ソートされた順序で領域Z2内に写真を再表示させる。なお、図6に示す例において、領域Z2内には4枚の写真が表示されているが、むろん、表示される写真の数は任意の数であって良い。
プロセッサー10は、図5に示す順序でユーザーインターフェース画面上での利用者の操作に応じた処理を行う。このため、プロセッサー10は、利用者による操作を受け付ける(ステップS205)。すなわち、プロセッサー10は、機器インターフェース30を介してマウス3aやキーボード3bの出力情報を受け付け、利用者が行った操作が、ボタンBsc、Bsh、Bup、Bed,Bdeのいずれかに対する指示、領域Z4におけるソートキーの選択、のいずれであったかを判定する。
利用者が行った操作がボタンBscに対する指示であった場合、プロセッサー10は、ステップS210でスキャン指示が行われたと判定する。ステップS210でスキャン指示が行われたと判定された場合、プロセッサー10は、取得部12aの機能により、写真をスキャンして、写真データを取得する(ステップS215)。すなわち、プロセッサー10は、機器インターフェース30を介してスキャナー2に対して制御信号を出力し、利用者がスキャナー2にセットした写真をスキャンさせる。この結果、スキャナー2は読み取り結果として得られた写真データを出力し、プロセッサー10は、機器インターフェース30を介して当該写真データを取得する。なお、本実施形態においてプロセッサー10は、スキャンした写真データをHDD20におけるデフォルトの保存場所(フォルダ)に保存し、スキャンした写真データが示す写真を領域Z2内に表示させる。なお、複数の写真がスキャン対象である場合、利用者はスキャナー2に対する写真のセットを繰り返し、プロセッサー10は、複数の写真のスキャンを行う。
次に、プロセッサー10は、読取部12cの機能により、写真に写し込まれている撮影日を読み取る(ステップS220)。すなわち、プロセッサー10は、ステップS215でスキャンされた写真の写真データに基づいて数値の形状の特徴を有する部分を検出し、検出された部分の形状の特徴に基づいて数値を特定する。そして、数値の並びが撮影日であると見なし、撮影時期を取得する。例えば、図6に示す写真Z21であれば、撮影日が1961年4月1日であるため、プロセッサー10は1960年代を撮影時期として取得する。プロセッサー10は、以上のような撮影日の読み取りが成功したか否かを判定し(ステップS225)、撮影日の読み取りが成功した場合、プロセッサー10は、当該写真の写真データに対して撮影時期(撮影日)を対応づける(ステップS240)。
一方、ステップS225において、撮影日の読み取りが成功したと判定されない場合、プロセッサー10は、計算部12bの機能により、写真データを前処理する(ステップS230)。すなわち、本実施形態においてプロセッサー10は、学習済モデル20bに基づいて写真の撮影時期を推定する。学習済モデル20bは、上述のように既定のモデルに従って、入力された写真データの撮影時期を出力するように構成されている。そして、写真データを入力するためのフォーマットは、例えば、図4に示す例であれば上述の関数fに入力可能なフォーマットである必要がある。そこで、プロセッサー10は、学習済モデル20bに入力可能なフォーマットになるように、前処理(例えば、拡大処理や縮小処理、規格化等)を実行する。
次に、プロセッサー10は、計算部12bおよび整理部12dの機能により、学習済モデルによる推定を実行する(ステップS235)。すなわち、プロセッサー10は、HDD20から学習済モデル20bを取得する。そして、プロセッサー10は、ステップS230で前処理された写真データを学習済モデル20bに対する入力データとし、学習済モデル20bによる出力結果を撮影時期として取得する。なお、図4に示す例において、学習済モデル20bは入力された写真データに基づいて写真の退色の程度を取得し、当該退色の程度をニューラルネットワークに入力して写真の撮影時期を出力する。従って、プロセッサー10は、ステップS235において、計算部12bによる退色の程度の推定と整理部12dによる撮影時期の推定(古さの推定)とを行っていることになる。
次に、プロセッサー10は、整理部12dの機能により、写真データに撮影時期を対応づけて記録する(ステップS240)。すなわち、プロセッサー10は、ステップS235によって推定された撮影時期を示す情報を写真データに対応づけ、HDD20に記録する(写真データ20a)。以上の処理によれば、スキャンした写真に撮影時期を対応づけた写真データ20aが生成される。なお、以上の処理により、本実施形態においては、撮影時期を対応づけた写真データ20aを生産する方法を、コンピューター1が実行していると見なすことができる。撮影時期を示す情報を写真データに対応づけるということは、対応する写真データを含む写真ファイルの内部(例えばヘッダー)に撮影時期を記入するのでもよいし、写真データとは別の撮影時期ファイルに撮影時期を記入するのでもよい。
その後、プロセッサー10は、整理部12dの機能により、後述する領域Z4におけるソートキーによって選択されているソートキーに従った順番で写真を追加した画像を描画し、描画された画像をディスプレイ4に表示させる。
一方、利用者が行った操作が領域Z4におけるソートキーの選択であった場合、プロセッサー10は、ステップS245でソート指示が行われたと判定する。ステップS245でソート指示が行われたと判定された場合、プロセッサー10は、整理部12dの機能により、ソートキーに基づいて写真をソートする(ステップS250)。すなわち、利用者は、領域Z4においてソートキーを選択し、写真データ20aに対応づけられた情報を参照し、選択されたーソートキーに基づいて写真をソートする。ソートが行われると、プロセッサー10は、ソート後の順番で写真を並べた画像を描画し、描画された画像をディスプレイ4に表示させる。
なお、本実施形態において利用者はソートキーとして撮影時期を選択することができる。撮影時期が選択された場合、プロセッサー10は、撮影時期をソートキーにして写真をソートする。すなわち、本実施形態においては、スキャンされた写真を示す写真データ20aに対して、ステップS240の処理によって撮影時期が対応づけられる。そこで、プロセッサー10は、写真データ20aに対応づけられた撮影時期を参照し、その昇順または降順にソートする(昇順または降順のいずれかは利用者が選択しても良いし、予め決められていても良い)。
なお、本実施形態においては、ステップS220において撮影日の読み取りが行われ、読み取りが成功した写真データ20aに対しては、読み取られた撮影時期がステップS240において対応づけられる。従って、当該写真については学習済モデルによって推定される撮影時期ではなく、読み取られた撮影時期が対応づけられている。このため、撮影日の読み取りが行われた写真については、読み取られた撮影日がソートキーとなり、学習済モデル20bによって出力される撮影時期(退色の程度に基づいて推定された撮影時期)はソートキーとならない。従って、本実施形態においてソートが行われる場合、読み取りによって得られた撮影日(撮影時期)や利用者が入力した撮影日(撮影時期)が、学習済モデル20bによって出力される撮影時期よりも優先的に利用されている。
なお、ステップS250において、撮影時期がソートキーになる場合、撮影時期が対応づけられていない写真データ20aが存在すれば、撮影時期の推定を試み、推定に成功した場合には推定した撮影時期でソートをし、推定に失敗した場合には当該写真データ20aによる写真のソートはスキップされる。
一方、利用者が行った操作がスキャン指示、ソート指示以外の他の指示であった場合(ボタンBsh、Bup、Bed,Bdeのいずれかであった場合)、プロセッサー10は、指示されたボタンに応じた他の処理を実行する(ステップS255)。すなわち、プロセッサー10は、利用者の指示に応じて指示に応じた処理を実行する。例えば、ボタンBshによる指示が行われた場合、プロセッサー10は、選択された写真をシェアするために必要な情報の入力画面をディスプレイ4に表示させる。入力後に利用者が実行を指示すると、シェア対象として指定された人と写真がシェアされる状態になる。
ボタンBupによる指示が行われた場合、プロセッサー10は、図示しない通信部を介して図示しない既定のサーバーに、選択された写真の写真データ20aを送信する。ボタンBedによる指示が行われた場合、プロセッサー10は、選択された写真を編集するために必要な情報の入力画面をディスプレイ4に表示させる。入力後に利用者が実行を指示すると、編集内容が反映された状態で写真データ20aの更新が行われる。この編集は、画像自体に対するトリミング等の編集や画像に対応付けられる情報の編集を含む。利用者が写真の撮影時期を記憶している場合には、この編集によってユーザーが撮影時期を入力する。ユーザーが撮影時期を入力した場合、撮影時期の入力の確定に応じて、学習と推定をやり直すようにしてもよい。ボタンBdeによる指示が行われた場合、プロセッサー10は、選択された写真の写真データ20aをHDD20から削除する。
以上のような本実施形態によれば、学習済モデル20bに基づいて任意の写真の撮影時期を推定することができる。学習済モデル20bは、写真の特徴(退色の程度等)に基づいて写真の撮影時期を出力するように構成されているため、写真に撮影日が写し込まれていなくても、写真の撮影時期を推定することができる。従って、出力された撮影時期に基づいてソート等の整理を行うことにより、古さに応じて写真を整理することができる。なお、本実施形態においては、ソートの際に学習済モデル20bに基づいて写真の撮影時期を推定する。従って、コンピューター1は、スキャンした写真の写真データと当該写真の撮影時期とを対応づけた教師データに基づいて機械学習が行われたモデルから、撮影日が写し込まれていない写真の撮影時期を取得する撮影時期推定装置として機能している。
なお、本実施形態においては、写真に写し込まれている撮影日を読み取ることができた場合に、学習済モデル20bで推定された撮影時期よりも、読み取られた撮影日(撮影時期)が優先的に参照されたソートが行われる。従って、退色の程度よりも確実に写真の撮影日を特定することができる、より正確な情報に基づいて古さに応じた整理を行うことが可能になる。
(4)他の実施形態:
以上の実施形態は本発明を実施するための一例であり、他にも種々の実施形態を採用可能である。例えば、本発明の一実施形態にかかる機械学習装置、画像処理装置は、読み取り以外の目的にも使用される電子機器、例えば複合機等に適用されていても良い。さらに、以上の実施形態のように写真データに基づいて、撮影日が写し込まれていない写真の撮影時期を推定する手法や、推定のための学習を行う手法は、プログラムの発明、方法の発明としても実現可能である。
さらに、画像処理装置を構成する装置の数は任意の数であって良い。例えば、コンピューター1とスキャナー2とが一体化された装置によって実現されても良いし、他の各種デバイス、例えば、ディスプレイ4が一体化されていても良い。また、コンピューター1とディスプレイ4とが一体化されたタブレット端末によってスキャナー2が制御されてもよい。
さらに、コンピューター1の機能が複数の装置によって実現される構成が採用されてもよい。例えば、サーバーとクライアントとが接続可能に構成され、サーバーとクライアントの一方で機械学習プログラムが実行され、他方で画像処理プログラムが実行されるように構成されていても良い。機械学習と、画像処理とが離れた位置に存在する装置で実行される場合、学習済モデルは各装置で共有されても良いし、一方の装置に存在しても良い。学習済モデルが機械学習を行う装置に存在し、画像処理を行う装置に存在しない場合、画像処理を行う装置は機械学習を行う装置に撮影時期の問合せを行う構成となる。むろん、機械学習装置が複数の装置に分散して存在する構成や、画像処理装置が複数の装置に分散して存在する構成等であっても良い。さらに、上述の実施形態は一例であり、一部の構成が省略されたり、他の構成が追加されたりする実施形態が採用され得る。
取得部は、写真をスキャンした写真データを複数取得することができればよい。すなわち、取得部は、整理の対象となる複数の写真を示す写真データを取得することができればよい。なお、写真データは退色の程度を計算する対象でもあるため、退色の程度を計算可能なフォーマットである。このフォーマットは種々のフォーマットで良いが、例えば、複数の色チャネル(R:レッド、G:グリーン、B:ブルー等)で構成される例が挙げられる。写真データには生成日等の付加情報が付加されて良いが、当該写真データはスキャンによって得られるため、撮影された写真の写真データのように写真データが生成された日が撮影日であるとは限らない。従って、写真に撮影日が写し込まれている、写真の撮影日が既知である(例えば、プリントされた写真の裏にメモしてある等)、などの事情がなければ写真の撮影時期は未知である。取得部においては、撮影時期が対応づけられていない写真を少なくとも1枚取得する。
計算部は、写真データについて写真の退色の程度を計算することができればよい。退色は、プリントされた写真の色の変化や劣化であれば良く、プリントされた写真の色が経時変化した場合、当該写真は退色している。退色の程度は、各種の手法で評価されて良い。上述の実施形態において、写真データを入力し、撮影時期を出力するモデルが構築される場合等のように、退色の程度が明示的に計算されているか否か不明であっても、退色の程度は写真の古さに関連しているため、モデル内で退色の程度が計算されていると見なすことができる。すなわち、学習されたモデルによって退色の程度の計算を含む出力が行われたと見なすことができる。
整理部は、退色の程度が大きいほど古い写真であるとみなして写真データを古さに応じて整理することができればよい。すなわち、一般に、写真は、プリント後の経過時間が長いほど退色の程度が大きくなる。そこで、整理部は、退色の程度が大きいほど、その写真が古いとみなす。
古さは、写真がプリントされた日と現在との時間間隔であり、プリントされた日と現在との時間間隔が長いほど古い。プリント写真においては、写真がプリントされた後に退色が開始するため、撮影日から長時間経過後に写真がプリントされると退色の程度と撮影日の古さとの関連が少ない状況になり得る。また、プリント後の写真の保管状況によって退色の程度は変化し得る。従って、写真の古さと撮影日の古さとの関連が強い写真と弱い写真とが存在し得る。しかし、多くの場合、撮影日とプリントされた日は近く、退色の程度で評価された古さが撮影日の古さであると見なされたとしても、古さに応じて写真が整理されると、利用者による撮影時期の入力の手間をかけることなく時系列のソートを可能にするなどの効果が得られる。
整理部における整理は、古さに基づいて複数の写真に各種の秩序を与える処理であれば良い。従って、整理は、上述の実施形態のようなソート以外にも各種の処理が該当し得る。例えば、古さによるフィルタリングであっても良いし、写真データに対する付加情報の付加(撮影日や撮影時期の付与等)であっても良いし、写真データに対するファイル名の付与、分類、フォルダへの保存、移動、削除、加工等であっても良く、各種の処理が挙げられる。むろん、ソートやフィルタリングは写真データの表示のみならず、他の処理、例えば、付加情報の付加やファイル名の付与等に利用されても良い。
読取部は、写真に写し込まれている撮影日を読み取ることができればよいが、むろん、撮影日の一部を読み取る構成であっても良い。例えば、撮影日を示す数値の中の日付が不明瞭で読み取ることができず、撮影年と撮影月を読み取ることが出来た場合、撮影年月が読み取られる構成であっても良い。撮影日は写真に写し込まれていれば良い。すなわち、プリントされた写真の辺や角の付近に、写真に使われにくい色の数値で表現された撮影年月日がプリントされていれば良い。
読取部による読み取りは、数値を認識する各種の技術によって実現されて良い。従って、上述のように、数値の形状の特徴を取得することによって撮影日を認識する技術が利用されても良いし、機械学習によって画像から数値を認識する技術が利用されても良く、種々の構成が採用可能である。なお、数値を認識する場合、日付としてありえる数値の並びになっているものから数値の位置に基づいて撮影日を選択するのが好ましい。日付としてありえる数値の並びとは、例えばYYYY/MM/DDといった並びであり、2月35日のようにありえない日付をとっていないということである。
撮影日を退色の程度に優先させて整理する際には、退色の程度から推定される古さよりも、読み取られた撮影日を優先して整理に反映させることができればよい。優先させて整理するとは、同一の写真について撮影日と退色の程度から推定される古さとが取得された場合、当該写真については撮影日に基づいて整理が行われることを指す。例えば、整理としての処理がソートである場合、撮影日と退色の程度から推定される古さとが取得されているならば、撮影日に基づいてソートが行われる。
撮影時期は、撮影された時期であれば良く、撮影日であっても良いし、より長期の区切り(例えば、撮影月、撮影年等)であっても良い。むろん、他の手法で分類された時期、例えば、1980年代、1980年前後などのように、複数の年を跨ぐ時期や、範囲によって特定された時期であっても良いし、現在からの時間間隔(40年前等)等であっても良い。
上述の実施形態において、整理部12dは、学習済モデル20bの出力に基づいて写真の古さ、すなわち、写真の撮影時期を取得する。しかし、他の手法によって写真の古さが判断されても良い。例えば、既定の基準に基づいて写真の古さを判断する構成等が採用されてもよく、退色の程度が写真の古さと一致すると見なされて整理されても良い。
具体的には、上述の図1に示す実施形態において、プロセッサー10が、図7に示す画像処理を行うことによって写真の古さを判断する構成等を採用可能である。図7に示す画像処理は、図5に示す画像処理の一部が変更された処理であり、図7において図5と同一の処理は同一の符号を付して示している。ここでは、図5と同一の処理の説明を省略し、図5と異なる処理について主に説明する。
この例において、プロセッサー10は、ステップS220において、読取部12cの機能により、撮影日が写し込まれている写真から撮影日の読み取りを行う(以後、撮影日が写し込まれている写真を第1写真と呼ぶ)。次にプロセッサー10は、撮影日の読み取りが成功したか否かを判定する(ステップS225)。読み取りが成功した場合、プロセッサー10は、整理部12dの機能により、写真データに撮影時期を対応づけて記録する(ステップS226)。すなわち、プロセッサー10は、ステップS235によって推定された撮影時期(撮影日)を示す情報を写真データに対応づけ、HDD20に記録する(写真データ20a)。
ステップS225において、読み取りが成功したと判定されない場合、プロセッサー10は、ステップS226をスキップする。この場合、プロセッサー10は、スキャンされた写真に撮影日が写し込まれていないと見なす(以後、撮影日が写し込まれていない写真を第2写真と呼ぶ)。
次に、プロセッサー10は、計算部12bの機能により写真の退色の程度を計算する(ステップS227)。退色の程度の計算法は、種々の手法が採用されてよい。例えば、上述の関数fによって退色の程度を計算する構成や、退色の程度が対応づけられた写真データに基づく機械学習で得られたモデルに基づいて退色の程度を計算する構成等が挙げられる。計算部12bの機能によって退色の程度が計算されると、プロセッサー10は、各写真の写真データ20aに対して退色の程度を示す情報を対応付けてHDD20に記録する(ステップS228)。
プロセッサー10が、以上のようにして写真データ20aを生成すると、当該写真データ20aに基づいて写真の撮影時期を推定可能な状態になる。本実施形態においてプロセッサー10は、ステップS251において写真をソートする場合に写真の撮影時期を推定し、推定された撮影時期の順序に写真をソートする。すなわち、本実施形態において、プロセッサー10は、撮影日が写し込まれている第1写真の退色の程度と撮影日が写し込まれていない第2写真の退色の程度とを比較し、第1写真と第2写真との古さを判断して整理する。
具体的にはプロセッサー10は、全ての第2写真を順次判定対象とし、各判定対象について比較対象の第1写真を特定する。さらに、プロセッサー10は、当該比較対象の第1写真における退色の程度と判定対象の第2写真における退色の程度とを比較する。そして、プロセッサー10は、第1写真の退色の程度よりも第2写真における退色の程度が大きい場合には、比較対象の第1写真よりも判定対象の第2写真の方が古いと判定する。また、プロセッサー10は、第1写真の退色の程度よりも第2写真における退色の程度が小さい場合には、比較対象の第1写真の方が判定対象の第2写真よりも古いと判定する。以上の構成によれば、撮影日が既知の写真を基準にして撮影日が未知の写真の古さを判断することができる。
第2写真と比較される比較対象は、種々の手法で選択されて良い。例えば、退色の程度が最も近い第1写真が比較対象とされても良いし、退色の程度が近い複数の第1写真が比較対象とされても良いし、特定の第1写真が比較対象とされても良いし、他にも種々の手法が採用されてよい。本実施形態において、第1写真には撮影時期が特定されているため、プロセッサー10は、当該撮影時期に基づいて第1写真をソートする。そして、プロセッサー10は、ソートされた第1写真を基準とし、第1写真を基準にして古さが特定された第2写真を第1写真の時系列の順序に挿入することによってソートを行う。
以上の構成によれば、撮影時期が読み取りによって確定している第1写真をソートして基準とし、撮影時期が読み取りによって確定しない第2写真をソートすることができる。ソートが行われると、プロセッサー10は、ソート後の順番で写真を並べた画像を描画し、描画された画像をディスプレイ4に表示させる。なお、第1写真と第2写真との比較により、全ての写真について古さの関係が決定できない場合、第2写真同士で退色の程度を比較して古さの関係を決定しても良い。
さらに、退色の程度に基づいて古さの関係のみならず、撮影時期を推定する構成であっても良い。この構成は、プロセッサー10が写真データ20aを参照し、整理部12dの機能により、第1写真の退色の程度と第2写真の退色の程度とに基づいて第2写真の撮影時期を推定する構成等によって実現可能である。具体的には、プロセッサー10が第1写真の退色の程度に対して第1写真の撮影時期(撮影日)を対応付け、退色の程度が類似している第2写真は撮影時期が同時期であると見なす構成を採用可能である。
また、退色の程度が異なる場合、プロセッサー10は、撮影時期が異なるとみなしてもよい。さらに、第1写真が2枚以上存在する場合、各第1写真の退色の程度の差異に基づいて任意の退色の程度に対応する撮影時期が特定されても良い。例えば、ある第2写真の退色の程度が、2枚の第1写真の退色の程度の間である場合、当該第2写真は、これらの第1写真の撮影時期の間に撮影されたと見なされる構成が採用可能である。むろん、2枚の第1写真の退色の程度の差異がこれらの第1写真の撮影時期の差異に対応していると見なし、第1写真の退色の程度と第2写真の退色の程度の差異に相当する撮影時期の差異から第2写真の撮影時期が推定されても良い。以上の構成によれば、撮影日が既知の写真を基準にして撮影日が未知の写真の撮影時期を推定することができる。
学習対象取得部は、スキャンした写真の写真データを複数取得することができればよい。すなわち、学習対象取得部は、機械学習の対象となる複数の写真の写真データを取得することができればよい。写真データは、学習の際に参照される教師データとなれば良く、写真データに対して予め撮影時期が対応づけられていても良いし、写真に基づいて撮影時期が推定されて対応づけられても良い。後者は種々の手法で行われて良く、例えば、撮影時期が既知の写真と、撮影時期が未知の写真とのそれぞれで写真の退色の程度を特定し、退色の程度に基づいて後者の写真の撮影時期を推定する構成等を採用可能である。むろん、撮影時期の推定手法は他の手法であっても良いし、写真の裏のメモや利用者の記憶等に基づいて利用者が指定しても良い。
写真データは、撮影時期を学習する対象であるため、撮影時期を示す情報が少なくとも間接的に含まれるデータである。例えば、写真の古さと撮影時期とがほぼ一致すると見なす推定は合理的な推定であるため、写真データは写真の古さ、例えば、退色の程度を反映していることが好ましい。このためには、写真データが退色の程度を計算可能なフォーマットである。このフォーマットは種々のフォーマットで良いが、例えば、複数の色チャネル(R:レッド、G:グリーン、B:ブルー等)で構成される例が挙げられる。
むろん、写真データに対して機械学習前の前処理が行われてもよい。例えば、学習の際に入力されるべき写真データのサイズ(画素数等)が限定される場合、各種の写真データが既定のサイズとなるように、拡大、縮小等によって調整されても良い。また、写真データの階調値の範囲を既定範囲に変換する正規化等が行われても良いし、エッジ強調やガンマ変換等の各種の画像処理が行われる構成等であっても良い。
学習部は、写真データに基づいて、撮影日が写し込まれていない写真の撮影時期を学習することができればよい。すなわち、学習部は、写真データと当該写真の撮影時期とに基づいて機械学習を行うことができればよい。機械学習の手法は、種々の手法であって良い。すなわち、写真データや写真データから導出される値(退色の程度等)を入力し、写真の撮影時期を出力するモデルを構築し、当該モデルによる出力と教師データにおける撮影時期との差分を極小化する学習を行うことができればよい。
従って、例えばニューラルネットワークによる機械学習が行われる場合、モデルを構成する層の数やノードの数、活性化関数の種類、損失関数の種類、勾配降下法の種類、勾配降下法の最適化アルゴリズムの種類、ミニバッチ学習の有無やバッチの数、学習率、初期値、過学習抑制手法の種類や有無、畳み込み層の有無、畳み込み演算におけるフィルタのサイズ、フィルタの種類、パディングやストライドの種類、プーリング層の種類や有無、、全結合層の有無、再帰的な構造の有無など、種々の要素を適宜選択して機械学習が行われればよい。むろん、他の機械学習、例えば、サポートベクターマシンやクラスタリング、強化学習等によって学習が行われてもよい。
さらに、モデルの構造(例えば、層の数や層毎のノードの数等)が自動的に最適化される機械学習が行われてもよい。さらに、学習は複数段階に分割されて実行されてもよい。例えば、写真データから退色の程度学習する機械学習と、退色の程度から撮影時期を学習する機械学習とを実行する構成が採用されてもよい。さらに、サーバーにおいて機械学習が行われる構成において、複数のクライアントから教師データが収集され、この教師データに基づいて機械学習が行われる構成であっても良い。
撮影日が写し込まれていない写真は、プリントされた写真の辺や角の付近に日付を示す数値がプリントされていない状態の他、数値が退色等によって劣化して読み取り不可能になっている場合が含まれていても良い。すなわち、数値が読み取り不可能であれば、撮影日が写し込まれていない状態と等価である。撮影日が写し込まれている写真は、撮影日を読み取ることによって撮影日を正確に特定可能であるため、撮影日の推定は必要ないが、むろん、学習のためのサンプルに加えられても良い。
撮影時期は、写真が撮影された時期として推定される時期であれば良く、撮影日であっても良いし、より長期の区切り(例えば、撮影月、撮影年等)であっても良いし、1980年代、1980年前後などのように、複数の年を跨ぐ時期や、範囲によって特定された時期であっても良いし、現在からの時間間隔(40年前等)等であっても良い。むろん、撮影時期は、連続値(例えば、確率や信頼度等)で特定されても良いし、離散値(例えば、複数の候補のいずれかであるかを示すフラグ等)で特定されても良い。
なお、写真データと写真の撮影時期とを対応づけた教師データに基づいて学習が行われる場合、写真データと撮影時期とがニューラルネットワーク等のモデルに対する入力および出力となっても良いし、入力が加工された値(例えば、退色の程度を示す値等)が入力および出力となってもよい。
学習や撮影時期の推定は、ユーザーの明示の指示に基づいて行うようにしてもよい。例えば「撮影時期の推定」というボタンを表示し、そのボタンが操作されることで学習と推定とを行うようにしてもよい。
また、撮影時期を退色の程度に基づいて推定するものに限られず、他の要素を用いて推定してもよい。例えば、退色の程度と写真紙の劣化の程度とに基づいて推定してもよい。
さらに本発明は、コンピューターが実行するプログラムや、方法としても適用可能である。また、以上のようなプログラム、方法は、単独の装置として実現される場合もあれば、複数の装置が備える部品を利用して実現される場合もあり、各種の態様を含むものである。また、一部がソフトウェアであり一部がハードウェアであったりするなど、適宜、変更可能である。さらに、プログラムの記録媒体としても発明は成立する。むろん、そのプログラムの記録媒体は、磁気記録媒体であってもよいし半導体メモリ等であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。
1…コンピューター、2…スキャナー、3a…マウス、3b…キーボード、4…ディスプレイ、10…プロセッサー、11…機械学習プログラム、11a…学習対象取得部、11b…学習部、12…画像処理プログラム、12a…取得部、12b…計算部、12c…読取部、12d…整理部、20…HDD、20a…写真データ、20b…学習済モデル、20c…教師データ、20d…テストデータ、20e…訓練モデル、30…機器インターフェース、40…ディスプレイインターフェース

Claims (5)

  1. スキャンした写真の写真データを複数取得する学習対象取得部と、
    前記写真データから算出した前記写真の退色の程度と、前記写真の撮影時期とを対応づけた教師データに基づいて、撮影日が写し込まれていない前記写真の撮影時期と前記写真の退色の程度との関係を学習する学習部と、
    を備える機械学習装置。
  2. 前記教師データは、
    撮影日が写し込まれている前記写真をスキャンした前記写真データと、写し込まれている撮影日を示す撮影時期とが対応づけられたデータを含む、
    請求項1に記載の機械学習装置。
  3. スキャンした写真の写真データから算出した前記写真の退色の程度と当該写真の撮影時期とを対応づけた教師データに基づいて機械学習が行われたモデルから、前記写真の退色の程度に応じて、撮影日が写し込まれていない写真の撮影時期を取得する、
    撮影時期推定装置。
  4. コンピューターを、
    スキャンした写真の写真データを取得する学習対象取得部、
    前記写真データから算出した前記写真の退色の程度と、前記写真の撮影時期とを対応づけた教師データに基づいて、撮影日が写し込まれていない前記写真の撮影時期と前記写真の退色の程度との関係を学習する学習部、
    として機能させる機械学習プログラム。
  5. スキャンした写真の写真データから算出した前記写真の退色の程度と当該写真の撮影時期とを対応づけた教師データに基づいて機械学習が行われたモデルから、前記写真の退色の程度に応じて、撮影日が写し込まれていない写真の撮影時期を取得し、当該写真に対して当該撮影時期を対応づけた写真データを生産する、
    写真データの生産方法。
JP2018091951A 2018-05-11 2018-05-11 機械学習装置、撮影時期推定装置、機械学習プログラムおよび写真データの生産方法 Active JP6658795B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018091951A JP6658795B2 (ja) 2018-05-11 2018-05-11 機械学習装置、撮影時期推定装置、機械学習プログラムおよび写真データの生産方法
CN201910382768.2A CN110473162B (zh) 2018-05-11 2019-05-08 机器学习装置、摄影时间估计装置及学习模型的生成方法
US16/407,313 US10915790B2 (en) 2018-05-11 2019-05-09 Machine learning apparatus, imaging time estimation apparatus, machine learning program, and generation method of photographic data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018091951A JP6658795B2 (ja) 2018-05-11 2018-05-11 機械学習装置、撮影時期推定装置、機械学習プログラムおよび写真データの生産方法

Publications (2)

Publication Number Publication Date
JP2019197452A JP2019197452A (ja) 2019-11-14
JP6658795B2 true JP6658795B2 (ja) 2020-03-04

Family

ID=68464712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018091951A Active JP6658795B2 (ja) 2018-05-11 2018-05-11 機械学習装置、撮影時期推定装置、機械学習プログラムおよび写真データの生産方法

Country Status (3)

Country Link
US (1) US10915790B2 (ja)
JP (1) JP6658795B2 (ja)
CN (1) CN110473162B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7450703B2 (ja) 2020-03-30 2024-03-15 富士フイルム株式会社 情報処理装置、情報処理方法、及びプログラム
CN114347043B (zh) * 2022-03-16 2022-06-03 季华实验室 一种机械手模型学习方法、装置、电子设备及存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050036692A1 (en) 2003-05-26 2005-02-17 Takayuki Iida Method and device for determining time-of-photograph of individual image, and image retrieving method and computer program for the method
JP2004348620A (ja) 2003-05-26 2004-12-09 Fuji Photo Film Co Ltd プリント画像の撮影時期特定装置及び方法
JP2005115672A (ja) 2003-10-08 2005-04-28 Fuji Photo Film Co Ltd 画像処理装置
CN100583952C (zh) * 2005-03-07 2010-01-20 富士胶片株式会社 图像输出系统、图像拍摄设备、输出设备、图像输出方法、图像拍摄方法、以及输出方法
JP2009194711A (ja) * 2008-02-15 2009-08-27 Oki Electric Ind Co Ltd 領域利用者管理システムおよびその管理方法
JP5397059B2 (ja) * 2009-07-17 2014-01-22 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
JP2013074461A (ja) * 2011-09-28 2013-04-22 Casio Comput Co Ltd 画像処理装置、画像処理方法及びプログラム
JP6351496B2 (ja) * 2014-12-16 2018-07-04 株式会社日立ソリューションズ 画像生成システム及び画像生成方法
WO2017027031A1 (en) * 2015-08-12 2017-02-16 Hewlett Packard Enterprise Development Lp Assigning classifiers to classify security scan issues
CN105120167B (zh) * 2015-08-31 2018-11-06 广州市幸福网络技术有限公司 一种证照相机及证照拍摄方法
US20170330264A1 (en) * 2016-05-10 2017-11-16 YOURO, Inc. Methods, apparatuses and systems for computer vision and deep learning
CN106204677A (zh) * 2016-07-14 2016-12-07 北京大学 一种提高动态对比增强磁共振图像时间分辨率的装置
US10664750B2 (en) * 2016-08-10 2020-05-26 Google Llc Deep machine learning to predict and prevent adverse conditions at structural assets
CN106373112B (zh) * 2016-08-31 2020-08-04 北京比特大陆科技有限公司 图像处理方法、装置和电子设备
JP2018041261A (ja) * 2016-09-07 2018-03-15 東芝テック株式会社 情報処理装置及びプログラム
JP6549546B2 (ja) * 2016-10-18 2019-07-24 北海道瓦斯株式会社 融雪制御装置、ニューラルネットワークの学習方法、融雪制御方法及び融雪制御用プログラム
KR101854431B1 (ko) * 2016-11-15 2018-05-03 주식회사 로보러스 컨시어지 로봇
CN107194987B (zh) * 2017-05-12 2021-12-10 西安蒜泥电子科技有限责任公司 对人体测量数据进行预测的方法
CN107564063B (zh) * 2017-08-30 2021-08-13 广州方硅信息技术有限公司 一种基于卷积神经网络的虚拟物显示方法及装置
CN107516330B (zh) * 2017-08-31 2021-02-09 上海联影医疗科技股份有限公司 模型生成方法、图像处理方法及医学成像设备
US11126914B2 (en) * 2017-10-11 2021-09-21 General Electric Company Image generation using machine learning
CN107930103B (zh) * 2017-12-18 2023-06-23 昆山市工研院智能制造技术有限公司 一种应用于人机交互的位置推算装置及位置推算方法
US11011257B2 (en) * 2018-11-21 2021-05-18 Enlitic, Inc. Multi-label heat map display system
US10736594B2 (en) * 2018-11-26 2020-08-11 General Electric Company Data-based scan gating
CN109697740B (zh) * 2018-12-26 2020-09-22 上海联影智能医疗科技有限公司 图像重建方法、装置和计算机设备

Also Published As

Publication number Publication date
CN110473162B (zh) 2023-04-18
US20190347521A1 (en) 2019-11-14
US10915790B2 (en) 2021-02-09
CN110473162A (zh) 2019-11-19
JP2019197452A (ja) 2019-11-14

Similar Documents

Publication Publication Date Title
JP4902270B2 (ja) デジタル画像のコレクションの組み立て方法
US8044945B2 (en) Image display apparatus and method, computer-readable recording medium on which the program is recorded, and photograph print order accepting apparatus
JP6039942B2 (ja) 情報処理装置及びその制御方法及びプログラム
JP4559437B2 (ja) デジタルカラー画像における空の検出
US9852325B2 (en) Apparatus, image processing method and storage medium storing program
US9400942B2 (en) System and method for estimating/determining the date of a photo
JP2015087903A (ja) 情報処理装置及び情報処理方法
CN109409398A (zh) 图像处理装置、图像处理方法以及存储介质
US11915430B2 (en) Image analysis apparatus, image analysis method, and storage medium to display information representing flow quantity
JP2001309225A (ja) 顔を検出するためのカメラ及び方法
JP6935809B2 (ja) 情報処理装置、およびプログラム
US20070009178A1 (en) Image-clustering method and apparatus
US10013639B1 (en) Analyzing digital images based on criteria
JP6658795B2 (ja) 機械学習装置、撮影時期推定装置、機械学習プログラムおよび写真データの生産方法
JP2019067261A (ja) 画像処理装置、制御方法およびプログラム
US20200267331A1 (en) Capturing a photo using a signature motion of a mobile device
JP7095389B2 (ja) 画像処理装置、画像処理プログラムおよび写真データの生産方法
JP2020017839A (ja) スキャンシステム、スキャンプログラムおよび機械学習装置
KR102430743B1 (ko) 데이터 증강 기반 사물 분석 모델 학습 장치 및 방법
JP4556739B2 (ja) 画像管理装置、画像管理方法、および画像管理プログラム
JP2010262531A (ja) 画像情報処理装置、画像情報処理方法及びプログラム
JP2021111228A (ja) 学習装置、学習方法、及びプログラム
JP2003087442A (ja) 画像評価方法および装置並びにプログラム
JP4650034B2 (ja) 画像管理装置、画像管理方法、および画像管理プログラム
CN110489584B (zh) 基于密集连接的MobileNets模型的图像分类方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180613

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20180910

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20181120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191223

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200120

R150 Certificate of patent or registration of utility model

Ref document number: 6658795

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150