JP2021108010A - 情報処理装置、情報処理装置の制御方法、学習モデルの生成方法、およびプログラム - Google Patents
情報処理装置、情報処理装置の制御方法、学習モデルの生成方法、およびプログラム Download PDFInfo
- Publication number
- JP2021108010A JP2021108010A JP2019239150A JP2019239150A JP2021108010A JP 2021108010 A JP2021108010 A JP 2021108010A JP 2019239150 A JP2019239150 A JP 2019239150A JP 2019239150 A JP2019239150 A JP 2019239150A JP 2021108010 A JP2021108010 A JP 2021108010A
- Authority
- JP
- Japan
- Prior art keywords
- nail
- data
- image data
- user
- learning model
- 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.)
- Pending
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A45—HAND OR TRAVELLING ARTICLES
- A45D—HAIRDRESSING OR SHAVING EQUIPMENT; EQUIPMENT FOR COSMETICS OR COSMETIC TREATMENTS, e.g. FOR MANICURING OR PEDICURING
- A45D29/00—Manicuring or pedicuring implements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/107—Static hand or arm
-
- A—HUMAN NECESSITIES
- A45—HAND OR TRAVELLING ARTICLES
- A45D—HAIRDRESSING OR SHAVING EQUIPMENT; EQUIPMENT FOR COSMETICS OR COSMETIC TREATMENTS, e.g. FOR MANICURING OR PEDICURING
- A45D29/00—Manicuring or pedicuring implements
- A45D2029/005—Printing or stamping devices for applying images or ornaments to nails
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- User Interface Of Digital Computer (AREA)
- Image Analysis (AREA)
Abstract
【課題】学習モデルを用いて画像内の領域を検出する際に、検出精度を向上させること。【解決手段】ネイルアプリ900は、情報処理装置101を、ユーザ情報を取得するユーザ情報入力部911と、爪を含んだユーザの指の画像データを取得する画像表示制御部914と、画像データとユーザ情報とを爪検出モデル1102に入力することで爪検出モデル1102から出力される、画像データにおける爪の領域を示すデータに基づいて、爪領域を検出する爪検出部915として機能させる。【選択図】図11
Description
本発明は、機械学習を利用して画像内の領域を検出する技術に関する。
近年、プリンターを使用して爪にネイルアートを印刷することが可能になっている。以下、爪にネイルアートを印刷するためのプリンターをネイルプリンターと称する。
特許文献1には、ネイルプリンターを用いて爪にネイルアートを印刷する際に、機械学習を用いて爪の輪郭を検出する技術が記載されている。
特許文献1に記載の技術では、学習データとして爪を含む手の画像を使用している。しかしながら、人間の爪は、環境、地域、年齢、または性別などの特徴によって、大きさ又は形状が様々であり、爪を含む手の画像のみに依存した学習では、ユーザの爪を誤検出する虞がある。
本発明は、学習モデルを用いて画像内の領域を検出する際に、検出精度を向上させることを目的とする。
本発明の一態様に係るプログラムは、コンピュータを、爪を含んだユーザの指の画像データと、当該ユーザのユーザ情報とを取得する取得手段と、前記取得手段で取得した画像データとユーザ情報とを学習モデルに入力することで前記学習モデルから出力される、前記画像データにおける爪の領域を示すデータに基づいて、前記取得手段で取得した画像データにおける爪領域を検出する検出手段と、として機能させるためのプログラムである。
本発明によれば、学習モデルを用いて画像内の領域を検出する際に、検出精度を向上させることができる。
以下、本発明の実施の形態を詳細に説明する。なお、以下の実施の形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。また、本発明は、その要旨を逸脱しない限り、様々な変形が可能である。
<<第1実施形態>>
<システムの構成>
本実施形態は、情報処理装置とプリンターとを含むシステムによって構成される形態である。本実施形態では、情報処理装置としてタブレット端末を例に挙げて説明する。なお、情報処理装置は、タブレット端末に限定されるものではない。情報処理装置として、携帯端末、ノートPC、スマートフォン、PDA(Personal Digital Assistant)、デジタルカメラなど、種々のものを適用可能である。また、本実施形態では、プリンターとして、例えば、インクジェットプリンター、モノクロプリンター、または3Dプリンターなどを適用することができる。その他、本実施形態のプリンターは、複写機能、FAX機能、または印刷機能などの複数の機能を備える複合機であってもよい。本実施形態のプリンターは、人の手の爪に直接描画する機能を持つものである。なお、本実施形態では、情報処理装置とプリンターとを別の装置として説明するが、両者の機能を一体的に含む装置を用いる形態でもよい。
<システムの構成>
本実施形態は、情報処理装置とプリンターとを含むシステムによって構成される形態である。本実施形態では、情報処理装置としてタブレット端末を例に挙げて説明する。なお、情報処理装置は、タブレット端末に限定されるものではない。情報処理装置として、携帯端末、ノートPC、スマートフォン、PDA(Personal Digital Assistant)、デジタルカメラなど、種々のものを適用可能である。また、本実施形態では、プリンターとして、例えば、インクジェットプリンター、モノクロプリンター、または3Dプリンターなどを適用することができる。その他、本実施形態のプリンターは、複写機能、FAX機能、または印刷機能などの複数の機能を備える複合機であってもよい。本実施形態のプリンターは、人の手の爪に直接描画する機能を持つものである。なお、本実施形態では、情報処理装置とプリンターとを別の装置として説明するが、両者の機能を一体的に含む装置を用いる形態でもよい。
図1は、本実施形態の情報処理装置101およびプリンター151を含むシステムを説明する図である。図1(a)には、情報処理装置101およびプリンター151のブロック図が示されている。図1(b)には、プリンター151の外観の模式図が示されている。以下、図1を用いて情報処理装置101およびプリンター151の構成を説明する。
<情報処理装置>
図1(a)に示すように、情報処理装置101は、入力インターフェース102、CPU103、ROM104、RAM105、外部記憶装置106、出力インターフェース107、通信部109、及びGPU110を有する。これらはシステムバスを介して互いに接続されている。
図1(a)に示すように、情報処理装置101は、入力インターフェース102、CPU103、ROM104、RAM105、外部記憶装置106、出力インターフェース107、通信部109、及びGPU110を有する。これらはシステムバスを介して互いに接続されている。
入力インターフェース102は、物理キーボード、ボタン、およびタッチパネルなどの操作部(不図示)を介して、ユーザからのデータ入力または操作指示を受け付けるためのインターフェースである。なお、本実施形態では、後述の表示部108と操作部との少なくとも一部が一体であり、例えば、画面の出力とユーザからの操作の受け付けとを同一の画面において行うような形態である。
CPU103は、システム制御部であり、プログラムの実行またはハードウェアの起動など、情報処理装置101の全体を制御する。ROM104は、CPU103が実行する制御プログラム、データテーブル、組み込みオペレーティングシステム(以下、OSという。)、およびプログラムなどのデータを格納する。本実施形態では、ROM104に格納されている各制御プログラムは、ROM104に格納されている組み込みOSの管理下で、例えば、スケジューリング、タスクスイッチ、および割り込み処理などのソフトウエア実行制御を行う。
RAM105は、SRAM(Static Random Access Memory)またはDRAMなどで構成される。なお、RAM105は、図示しないデータバックアップ用の1次電池によってデータが保持されていてもよい。その場合、RAM105は、プログラム制御変数などのデータを揮発させずに格納することができる。また、RAM105には、情報処理装置101の設定情報および情報処理装置101の管理データなどを格納するメモリエリアも設けられている。また、RAM105は、CPU103の主メモリおよびワークメモリとしても用いられる。
外部記憶装置106は、印刷実行機能を提供するアプリケーション、および、プリンター151が解釈可能な印刷情報を生成する印刷情報生成プログラムなどを保存している。また、外部記憶装置106は、通信部109を介して接続しているプリンター151との間で情報を送受信する情報送受信制御プログラムなどの各種プログラム、および、これらのプログラムが使用する各種情報を保存している。
出力インターフェース107は、表示部108によるデータの表示および情報処理装置101の状態の通知などの制御を行うインターフェースである。
表示部108は、LED(発光ダイオード)またはLCD(液晶ディスプレイ)などから構成され、データの表示および情報処理装置101の状態の通知などを行う。なお、表示部108上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キーなどのキーを備えるソフトキーボードを設置することで、表示部108を介してユーザからの入力を受け付けてもよい。また、表示部108は、前述のように、タッチパネルディスプレイとして構成されていてもよい。表示部108は、出力インターフェース107を通じてシステムバスと接続されている。
通信部109は、プリンター151などの外部装置と接続して、データ通信を実行するように構成されている。通信部109は、例えば、プリンター151内のアクセスポイント(不図示)に接続可能である。通信部109とプリンター内のアクセスポイントとが接続することで、情報処理装置101およびプリンター151は、相互に無線通信可能となる。なお、通信部109は、無線通信でプリンター151とダイレクトに通信してもよいし、外部に存在する外部アクセスポイント(アクセスポイント131)を介して通信してもよい。無線通信方式としては、例えば、Wi−Fi(WirelessFidelity)(登録商標)およびBluetooth(登録商標)などが挙げられる。また、アクセスポイント131としては、例えば、無線LANルータなどの機器などが挙げられる。本実施形態において、情報処理装置101とプリンター151とが外部アクセスポイント131を介さずにダイレクトに接続する方式をダイレクト接続方式という。また、情報処理装置101とプリンター151とが外部アクセスポイント131を介して接続する方式をインフラストラクチャー接続方式という。なお、情報処理装置101とプリンター151とは、有線で接続される形態でもよい。
GPU110は、グラフィックス・プロセッシング・ユニットである。本実施形態では、学習モデルを用いた処理が行われる。GPU110は、多くのデータを並列処理することで効率的な演算を行うことができるので、ディープラーニングのような学習モデルを用いて複数回に渡り学習を行う場合にはGPU110で処理を行うことが有効である。そこで、そこで本実施形態では、学習モデルを使用する処理では、CPU103に加えてGPU110を用いる。具体的には、学習モデルを学習する学習プログラムを実行する場合に、CPU103とGPU110とが協働して演算を行う。なお、学習済みの学習モデルを使用する処理では、CPU103またはGPU110のみにより演算が行われてもよい。
本実施形態では、情報処理装置101は、ROM104または外部記憶装置106などに所定のアプリケーションを格納しているものとする。所定のアプリケーションとは、例えば、ユーザからの操作に応じて、ネイルアートデータを印刷させるための印刷ジョブを、プリンター151に送信するためのアプリケーションプログラムである。このような機能を有するアプリケーションを、以後ネイルアプリという。なお、ネイルアプリは、印刷機能以外に、他の機能を備えていてもよい。例えば、本実施形態におけるネイルアプリは、プリンター151と通信して、プリンター151の撮影部157のカメラを起動する機能を備えていてもよい。すなわち、ネイルアプリは、印刷ジョブ以外に、カメラ起動ジョブをプリンター151に送信する機能を有していてもよい。また、ROM104または外部記憶装置106などに格納されている所定のアプリケーションは、ネイルアプリに限定されず、印刷以外の機能を備えているアプリケーションプログラムであってもよい。
<プリンター>
プリンター151は、ROM152、RAM153、CPU154、プリントエンジン155、通信部156、および撮影部157を有する。これらは、システムバスを介して互いに接続されている。また、プリンター151は、印刷対象を挿入するための空間である印刷対象挿入部158を有する。図1(b)は、プリンター151の外観を示す概略図である。図1(b)に示すように、プリンター151の内部には、印刷対象挿入部158が設けられている。図1(b)では、印刷対象挿入部158に、ユーザが、自身の手を入れている様子を示している。このように、本実施形態において、印刷対象挿入部158には、人間の手が挿入されることを想定している。また、本実施形態において印刷対象は、爪である。
プリンター151は、ROM152、RAM153、CPU154、プリントエンジン155、通信部156、および撮影部157を有する。これらは、システムバスを介して互いに接続されている。また、プリンター151は、印刷対象を挿入するための空間である印刷対象挿入部158を有する。図1(b)は、プリンター151の外観を示す概略図である。図1(b)に示すように、プリンター151の内部には、印刷対象挿入部158が設けられている。図1(b)では、印刷対象挿入部158に、ユーザが、自身の手を入れている様子を示している。このように、本実施形態において、印刷対象挿入部158には、人間の手が挿入されることを想定している。また、本実施形態において印刷対象は、爪である。
ROM152は、CPU154が実行する制御プログラム、データテーブル、およびOSプログラムなどのデータを格納する。本実施形態では、ROM152に格納されている各制御プログラムは、ROM152に格納されている組み込みOSの管理下で、スケジューリング、タスクスイッチ、および割り込み処理などのソフトウエア実行制御を行う。
RAM153は、SRAMまたはDRAMなどで構成される。なお、RAM153は、図示しないデータバックアップ用の1次電池によってデータが保持されていてもよい。この場合、RAM153には、プログラム制御変数などデータを揮発させずに格納することができる。また、プリンター151の設定情報およびプリンター151の管理データなどを格納するメモリエリアもRAM153に設けられている。また、RAM153は、CPU154の主メモリおよびワークメモリとしても用いられ、情報処理装置101から受信した印刷情報および各種情報などを一旦保存することができる。
CPU154は、システム制御部であり、プログラムの実行またはハードウェアの起動により、プリンター151の全体を制御する。プリントエンジン155は、RAM153に保存された情報または情報処理装置101から受信した印刷ジョブに基づき、インクなどの記録剤を用いて、印刷対象挿入部158に挿入されている爪などの被記録媒体上に画像を形成する。
通信部156は、プリンター151内部のアクセスポイントとして、情報処理装置101などの外部装置と接続するためのアクセスポイントを有している。このアクセスポイントは、情報処理装置101の通信部109に接続可能である。通信部156は、無線通信で情報処理装置101とダイレクトに通信してもよいし、外部のアクセスポイント131を介して通信してもよい。また、通信部156は、アクセスポイントとして機能するハードウェアを備えていてもよいし、アクセスポイントとして機能させるためのソフトウエアにより、アクセスポイントとして動作してもよい。
撮影部157は、撮影機能を有するデバイスである。撮影機能をもつデバイスは、プリンター151に付属及び設置されている。撮影部157は、印刷対象挿入部158に挿入される印刷対象(爪)を含む所定の領域を撮影し、撮影した画像(静止画または動画)をリアルタイムに情報処理装置101に送る機能を有する。本実施形態では、撮影部157は、動画を撮影するものである。撮影機能を有するデバイスは、少なくともレンズおよびイメージセンサーにより構成されるカメラモジュールである。レンズは、印刷対象挿入部158に挿入される印刷対象を写してイメージセンサー上に結像する。イメージセンサーは、レンズが写した光をCPU154が処理できる電気信号に変換する。このような機能を有していれば、撮影機能を有するデバイスとしてスマートフォン、携帯端末、またはデジタルカメラなどが代用して用いられてもよい。プリントエンジン155は、印刷対象挿入部158に挿入された印刷対象に対して印刷を行う。
なお、プリンター151には、外付けHDDまたはSDカードなどのメモリが装着されてもよく、プリンター151に保存される情報は、当該メモリに保存されてもよい。また、図1に示す構成は、一例に過ぎず、情報処理装置101およびプリンター151には、これ以外の構成も含み得るが、ここでの説明は省略する。
<用語の定義>
次に、本実施形態で使用する用語を説明する。本実施形態は、主に爪にネイルアートを印刷する形態である。また、本実施形態は、片方の手の各爪にネイルアートを施す(印刷する)形態である。一般的に、各爪に施されるネイルアートは、同一のコンセプトであるが、個々の爪に施されるネイルアートは、完全に同一のネイルアートではない場合がある。例えば、デザインAのネイルアートセットには、5つのネイルアート(5本の各爪に対応するネイルアート)が含まれており、その5つネイルアートは、相互に共通のデザインコンセプトのものであるが、完全に同一の模様などになっていないことがある。以上の点を踏まえて、本実施形態では、以下のように用語を扱うものとする。
次に、本実施形態で使用する用語を説明する。本実施形態は、主に爪にネイルアートを印刷する形態である。また、本実施形態は、片方の手の各爪にネイルアートを施す(印刷する)形態である。一般的に、各爪に施されるネイルアートは、同一のコンセプトであるが、個々の爪に施されるネイルアートは、完全に同一のネイルアートではない場合がある。例えば、デザインAのネイルアートセットには、5つのネイルアート(5本の各爪に対応するネイルアート)が含まれており、その5つネイルアートは、相互に共通のデザインコンセプトのものであるが、完全に同一の模様などになっていないことがある。以上の点を踏まえて、本実施形態では、以下のように用語を扱うものとする。
・「ネイル画像データ」:1つの爪に施されるネイルアートの画像データのことである。
・「ネイルアートデータ」:複数のネイル画像データの集合体の画像データである。つまり、ネイルアートデータは、複数のネイル画像データのデータセットともいえる。典型的には、5本の爪のネイルアートに対応する各ネイル画像データの画像を集約した画像データである。ネイルアートデータは、5本の各ネイル画像データが集まったデータ(つまり、5つの画像データのセット)でもよいし、5本の各ネイル画像データを合成して1つの画像とした画像データでもよい。
このように、「ネイル画像データ」と称する場合、個別の爪のネイルアートの画像のデータを指し、ネイルアートデータと称する場合、5本分のネイルアートの画像のセットのデータのことを指すものとする。
<ネイルアートの印刷の概要>
本実施形態では、情報処理装置101のCPU103が、ROM104または外部記憶装置106に記憶されているネイルアプリのプログラムを実行することで、ネイルアプリを起動する。そして、ネイルアプリを用いることで、ユーザは、自身が選択したネイルアートデータのネイル画像データを印刷領域に反映して、爪にネイルアートを印刷することができる。また、本実施形態では、ネイルアプリは、学習済みの学習モデルを用いて爪領域を自動的に設定する。さらに、ネイルアプリは、爪領域の設定の結果を学習モデルに反映(再学習)させる処理を行う。
本実施形態では、情報処理装置101のCPU103が、ROM104または外部記憶装置106に記憶されているネイルアプリのプログラムを実行することで、ネイルアプリを起動する。そして、ネイルアプリを用いることで、ユーザは、自身が選択したネイルアートデータのネイル画像データを印刷領域に反映して、爪にネイルアートを印刷することができる。また、本実施形態では、ネイルアプリは、学習済みの学習モデルを用いて爪領域を自動的に設定する。さらに、ネイルアプリは、爪領域の設定の結果を学習モデルに反映(再学習)させる処理を行う。
ネイルアプリを用いた一例の動作の概略を以下に説明する。尚、以下では、ユーザは、ネイルアートを爪に施す人物であり、かつネイルアプリを操作する人物であるものとして説明する。(1)ユーザが、アプリケーション上でユーザ情報を入力する。(2)ユーザが、アプリケーション上でネイル画像データのセット(すなわち、ネイルアートデータ)を選択する。(3)ユーザが、ネイルプリンターに手を挿入する。(4)ユーザが、ネイルプリンターの内部にあるカメラを起動する。(5)アプリケーションは、ネイルプリンターから送信されたカメラ画像を表示する。(6)アプリケーションは、表示されているカメラ画像上において、ネイルアートを印刷する印刷領域である爪の領域を、学習モデルを用いて設定する。このとき、ユーザは、学習モデルを用いて自動設定された爪の領域を、必要に応じて手動で設定し直す場合がある。(7)ユーザは、設定した印刷領域に、ネイルアートデータに含まれるネイル画像データを反映させる。(8)アプリケーションは、反映された画像データを用いてネイルプリンターに印刷を実行させる。(9)アプリケーションは、ユーザの操作に応じた内容を学習モデルに反映して学習モデルをアップデートする。
このように、本実施形態では、上記の(6)の工程において、ネイルアートを印刷する爪の領域が、学習モデルを使用して自動的に設定される処理を含むものである。学習モデルは、機械学習によって生成される。以下では、上述したネイルアプリの一連の処理を、図面を参照して説明し、その後に、学習モデルの生成方法(学習方法)を説明する。尚、ここでは、プリンター151に手を挿入するユーザと、アプリケーションを操作するユーザとは、同一の人物(ユーザ)であるとして説明したが、両者は、異なるユーザであっても良い。
<ネイルアプリのユーザインターフェース>
理解を容易にするために、ネイルアプリで表示されるユーザインターフェース(以下、UIという)画面を先に説明することにする。以下で説明するUI画面は、ネイルアプリを実行するCPU103によって、表示部108に表示されるものである。また、入力インターフェース102は、表示部108と一体となった操作部として機能するものとして説明する。本実施形態におけるネイルアプリのUI画面は、大きく2種類存在する。第一UI画面は、図2に示すネイルアートデータの選択画面である。第二UI画面は、図3に示す印刷データ作成画面である。以下、各画面を用いてネイルアプリのUI画面を説明する。
理解を容易にするために、ネイルアプリで表示されるユーザインターフェース(以下、UIという)画面を先に説明することにする。以下で説明するUI画面は、ネイルアプリを実行するCPU103によって、表示部108に表示されるものである。また、入力インターフェース102は、表示部108と一体となった操作部として機能するものとして説明する。本実施形態におけるネイルアプリのUI画面は、大きく2種類存在する。第一UI画面は、図2に示すネイルアートデータの選択画面である。第二UI画面は、図3に示す印刷データ作成画面である。以下、各画面を用いてネイルアプリのUI画面を説明する。
図2は、ネイルアートデータの選択画面201を示すUI画面(第一UI画面)を説明する図である。本実施形態では、ネイルアートデータの選択に先立って、ユーザ情報の入力が行われる。図2(a)に示すネイルアートデータの選択画面201は、ユーザ情報を入力するダイアログ205を表示している。ダイアログ205が表示されるタイミングの例として、本実施形態ではネイルアプリを起動したタイミングで表示されるものとする。ダイアログ205では、ユーザ情報の例として、年齢、国籍、性別を入力する例を示している。ユーザ情報は、少なくとも1種類以上のユーザの属性を示す情報を含んでいればよい。ユーザは、1つもしくは複数のユーザの属性を示すユーザ情報を入力する。尚、ユーザは、ダイアログ205に表示されている少なくとも1つの属性を入力すればよく、全ての属性を入力しなくてもよい。ユーザは、ユーザ情報を入力後、完了ボタン206を押下し、ダイアログ205を閉じる。そして、図2(b)に示す画面が表示される。尚、入力されたユーザ情報は、任意の場所に保存される。保存場所は、ネイルアプリ内部のデータベースでも、不図示のサーバー上のデータベースでもよい。
ここでは、ユーザ情報の入力が、ネイルアプリの起動時に、ネイルアートデータの選択に先立って行われる例を説明したが、これに限られない。後述するように、爪の領域が学習モデルによって設定される前までにユーザ情報の入力が行われていればよい。また、ネイルアプリに事前にユーザ情報が登録されている場合には、図2(a)に示すユーザ情報の入力はスキップしてよい。また、図2(a)の選択画面201は、図2(b)で説明するネイルアートデータ表示領域202にオーバーラップして表示される例を示したが、ネイルアプリは、オーバーラップ表示ではなく、ユーザ情報の入力画面を別個に表示してもよい。
次に、図2(b)に示す画面を説明する。図2(b)に示すネイルアートデータの選択画面201は、ネイルアートデータ表示領域202と、ネイルアートデータ決定ボタン204とを有する。
ネイルアートデータ表示領域202には、各爪に印刷するネイルアートの各デザインコンセプトに対応したネイルアートデータが複数表示される。具体的には、図2(b)の画面上では、ネイルアートデータ203が4つ分表示されている。1つのネイルアートデータ203には、親指、人差し指、中指、薬指、小指のそれぞれの爪に対応する5種類のネイル画像データが含まれている。ユーザは、1つもしくは複数のネイルアートデータ203を選択できる。ユーザは、選択したネイルアートデータ203を解除することもできる。
図2(c)は、ユーザがネイルアートデータ203を選択または解除する方法の一例を示す図である。図2(c)では、ユーザがネイルアートデータ203を1回タップすることでネイルアートデータ203を選択することを示している。また、選択済みのネイルアートデータ203をユーザがもう一度タップすると、選択状態を解除することができる。
ネイルアートデータ決定ボタン204は、ユーザがネイルアートデータ表示領域202から1つもしくは複数のネイルアートデータ203を選択した後に押下することで、図3示す印刷データ作成画面301に遷移させる機能を有する。
なお、本実施形態では、各種のボタンを操作する際には「押下」と称し、各領域を操作するときは、タッチパネルの操作であるとして、「タップ」、「タッチ」、「ピンチイン」、「ピンチアウト」などと説明するが、これらは例示に過ぎない。例えば、タッチパネル上の各種のボタンをタッチすることで各種のボタンの押下動作が実現されてもよい。また、各領域の操作は、例えばマウスなどを用いたカーソル操作によって各領域の操作が行われてもよい。また、入力インターフェース102が各種の方向指示ボタンを備えており、その方向指示ボタンによって各領域の操作が行われてもよい。
図3は、印刷データ作成画面301を示すUI画面(第二UI画面)を説明する図である。図3に示す印刷データ作成画面301は、選択データ表示領域302と、ネイルアートデータ確定領域303と、プリンター検索ボタン305と、プリンター名表示領域306とを有している。また、印刷データ作成画面301は、撮影ボタン307と、動画表示領域308と、領域設定ボタン309と、画像データ解除ボタン311と、印刷ボタン312とを有している。動画表示領域308には、後述する印刷領域310が含まれる。
選択データ表示領域302は、図2(b)に示すネイルアートデータ203の選択画面201でユーザが選択した1つもしくは複数のネイルアートデータ203を表示する領域である。ユーザは、印刷に用いるネイルアートデータ203を選択データ表示領域302から1つ選択できる。また、ユーザは、選択したネイルアートデータ203を解除することもできる。ユーザがネイルアートデータ203を選択または解除する方法の一例を示す。ユーザは、ネイルアートデータ203を1回タップすることでネイルアートデータ203を選択することができる。また、ユーザは、選択済みのネイルアートデータ203をもう一度タップすると選択状態を解除することができる。つまり、ユーザは、複数の印刷デザインの中から、印刷に用いる候補のデザイン(ネイルアートデータ203)を図2(b)に示す選択画面201で1つ以上選択しておく。そして、ユーザは、印刷データ作成画面301では、その1つ以上選択した印刷デザイン(ネイルアートデータ203)の中から、印刷に用いるネイルアートデータ203を選択する。選択データ表示領域302から選択されたネイルアートデータ203は、ネイルアートデータ確定領域303に表示される。
ネイルアートデータ確定領域303には、選択データ表示領域302から選択されたネイルアートデータ203が表示される。ネイルアートデータ確定領域303に表示されるネイルアートデータにおいては、5種類のネイル画像データ304がそれぞれ独立して表示される。具体的には、親指、人差し指、中指、薬指、小指の各爪のネイル画像データ304a〜304eが独立して表示されている。なお、本明細書において「ネイル画像データ304」のように、枝番の符号を省略する場合には、その対象物の全般的なものを指しており、「ネイル画像データ304a」のように枝番の符号を含めている場合には、個々の対象物を指しているものとする。つまり、ネイルアートデータ確定領域303には、個々のネイル画像を含むネイル画像群が表示されている。
本実施形態においてネイルアートデータ確定領域303に表示されているネイル画像データ304は、後述するように、順番を入れ替えることができる。例えば、親指の爪のネイル画像データ304aと中指の爪のネイル画像データ304cとを入れ替えることができる。このように、ネイルアートデータ確定領域303に表示されるネイル画像データ304は、個別の画像データとして扱うことができる。なお、ネイルアートデータ確定領域303に表示されるネイル画像データ304は、ネイルアートデータ203に含まれる各画像を分離して得られる画像データでもよい。あるいは、ネイルアートデータ203に対応する個別のネイル画像データ304が予め用意されており、この対応する個別のネイル画像データ304がそれぞれ表示されてもよい。
また、ネイルアートデータ確定領域303に表示されているネイル画像データ304は、個別の画像データとして扱うことが可能であればよく、表示画面上で個別の画像データとして視認されなくてもよい。図3の例では、ネイル画像データ304は、独立した画像として表示されている例を示している。しかしながら、例えば選択データ表示領域302に表示されているネイルアートデータ203のように、各ネイルの画像間に境界が表示されない形でネイルアートデータ確定領域303に表示されていてもよい。この場合、1つのネイルアートデータ203の画像中の各ネイルの位置情報に基づいて、個別の画像のデータとしてネイルアプリ内で内部的に処理ができればよい。
プリンター検索ボタン305は、ユーザによって押下されると、ネイルアプリと通信可能なプリンター151を検索する機能を実施するためのボタンである。検索の結果、プリンター151を発見した場合、ネイルアプリは、発見したプリンター151を特定する情報を表示する。
図4は、プリンター検索ボタン305の押下に応じて検索が行われ、検索の結果、ネイルアプリが発見したプリンター151のプリンターリスト401を示す画面である。ここでは、発見されたプリンター名またはプリンターの機種名などがプリンターリスト401として表示される。ユーザは、このようなプリンターリスト401から任意のプリンター151を1つ選択することができ、選択されたプリンター151はプリンター名表示領域306に表示される。
撮影ボタン307は、ユーザによって押下されることでプリンター名表示領域306に表示されたプリンター151と通信し、プリンター151の撮影部157で撮影された動画をリアルタイムで受け取って動画表示領域308に表示するためのボタンである。本実施形態では、印刷対象挿入部158に人間の手を入れることを想定している。このため、例えばユーザが片方の手を入れて、他方の手で、UI画面501上で撮影ボタン307を押下することで、爪を含むユーザの手先の画像が動画表示領域308にリアルタイムで表示される。なお、この使い方は一例であり、例えば、ネイルサロンの利用客が片方の手を入れて、ネイルサロンの従業員がUI画面501上で撮影ボタン307を押下しても良い。
領域設定ボタン309は、動画表示領域308に動画が表示されているときにユーザによって押下されることで、表示されている動画の中から印刷領域310をユーザが設定する領域設定モードに移行するためのボタンである。本実施形態において印刷領域310は、爪の輪郭を示す爪領域に相当する。尚、図3および後述する図5などにおいて印刷領域310は、説明のため、爪を包含する矩形領域として点線で示されている。しかしながら、実際のネイルアプリにおいては、印刷領域310は、爪の輪郭に沿った爪の領域が設定されることになる。
図5は、領域設定ボタン309が押下されたことに応じて、ネイルアプリが印刷領域310を設定可能な領域設定モードに遷移する例を説明する図である。本実施形態では、ネイルアプリは、動画から爪の領域を自動検出して印刷領域310を設定する処理を含む。図5(a)は、爪の領域を自動検出する方法の一例を示す図である。まず、ユーザは、領域設定ボタン309を押下して動画表示領域308を領域設定モードにする。領域設定モードに遷移すると、ネイルアプリは、動画からユーザの爪を含む手の静止画を作成する。そしてネイルアプリは、その静止画から、爪の領域を自動検出して印刷領域310を設定する。本実施形態では、ネイルアプリは、ユーザ情報とユーザの爪を含む手の静止画の画像データとを学習モデルに入力することで、その学習モデルから出力される得られる爪の領域を示すデータを取得する。学習モデルを用いる処理の詳細は、後述する。ネイルアプリは、学習モデルから出力された爪の領域を示すデータに基づいて、図5(a)に示すように、各爪に対応する領域に、自動的に印刷領域310を設定する。
尚、自動的に設定された印刷領域310は、ユーザが自由に変更することができる。また、ユーザは、設定した印刷領域310を削除することもできる。図5(b)は、印刷領域の大きさを変更する方法の一例を示す図である。図5(b)に示すように、ユーザは、設定した印刷領域310をタップすると、タップした印刷領域310が選択状態になる。ユーザは、印刷領域310を構成する線を指の操作で伸縮できる。図5(b)では、印刷領域310を拡大している例を示している。また、ユーザが、変更したい印刷領域310にタップした後に、爪の領域を、指またはスタイラスペンなどでなぞることで、印刷領域310を変更することもできる。このように、ユーザは、爪の輪郭の幅、長さ、角度を編集することができる。
図5(c)は、設定した印刷領域310を削除する例を示す図である。図5(c)に示すように、ユーザは、設定した印刷領域310をダブルタップすると、設定した印刷領域310を削除することができる。
ユーザがネイルアートを施したい爪は、手の全ての指の爪である場合もあれば、一部の指の爪である場合もあり得る。このため、本実施形態では、ユーザが、所望とする印刷領域310を設定することが可能となっている。また、本実施形態において画像を反映する印刷対象の領域である印刷領域310は、ユーザの爪を想定している。このため、設定されている印刷領域310の大きさは、各々異なるサイズとなり得る。従って、本実施形態では、プリンター151内にユーザが手を挿入して得られた実際の爪の画像と、ユーザ情報とに基づいて、学習モデルから好適な爪の領域を出力する処理が行われる。ネイルアプリが、爪の領域を、ユーザが視認可能なように表示することで、ユーザは、爪の画像を確認しながら、必要に応じて印刷領域310を変更することができる。このように、個々の爪に適した印刷領域310を設定することで、適切な爪の位置にネイルアートを印刷することができる。なお、本実施形態では、ユーザが設定した印刷領域310の数は、5つであるものとして説明する。
なお、一度設定した印刷領域310は、画像認識処理などによって追従させてもよい。例えば、ユーザが印刷領域310を設定した後に、プリンター151内で指(または爪)の位置がずれた場合には、設定された印刷領域310の画像領域を追従して、自動的に印刷領域310が変わってもよい。あるいは、前述したように、学習モデルに再度データを入力して得られた領域を用いて再度印刷領域310を設定してもよい。
印刷領域310が設定されると、ネイルアプリは、ユーザの爪にネイルアートを印刷するために、設定された印刷領域310にネイル画像データ304を反映させる処理を行う。ネイルアプリは、印刷領域310にネイル画像データ304を反映させるために、まず設定されている5つの印刷領域310と、5種類のネイル画像データ304a〜304eとの対応付けを行う。
図6は、印刷領域310とネイル画像データ304との対応付けを説明する図である。図6(a)は、設定された5つの印刷領域310a〜310eと、5種類のネイル画像データ304a〜304eとに、それぞれ識別情報601を順番に割り振る例を示している。具体的には、ネイルアプリは、印刷対象挿入部158にユーザの右手が挿入されていた場合、親指の爪1番、人差し指の爪2番、中指の爪3番…といったように親指の爪から小指の爪まで1番〜5番までの識別情報601を割り振る。同様に、ネイルアプリは、ネイルアートデータ確定領域303に表示されている5種類のネイル画像データ304にも左から1番、2番、3番…と1番〜5番までの識別情報601を割り振る。即ち、印刷領域310aとネイル画像データ304aとが対応付けられ、印刷領域310bとネイル画像データ304bとが対応付けられ、印刷領域310cとネイル画像データ304cとが対応付けられる。また、印刷領域310dとネイル画像データ304dとが対応付けられ、印刷領域310eとネイル画像データ304eとが対応付けられる。このように割り振った識別情報601は、ユーザが視認可能なように動画表示領域308に表示される。即ち、識別情報601は、印刷領域310およびネイル画像データ304の近傍にそれぞれ表示される。なお、識別情報601は、ネイルアプリ内で対応付けが可能であればよく、UI画面上に表示されなくてもよい。
この識別情報601は随時更新される。例えば、ユーザが動画表示領域308に表示されている識別情報と、ネイル画像データ304に表示されている識別情報601とを確認して、対応付けを変更したいと考える場合がある。この場合には、ユーザが対応付けを変更することで識別情報601が更新される。
図6(b)および図6(c)は、識別情報601が更新される例を示す図である。図6(b)では、ユーザが5種類のネイル画像データ304の内1つをドラッグ&ドロップしてネイル画像データ304の順番を入れ替えている例を示している。この例では、ユーザは、中指の爪の印刷領域310cに対応付けられているネイル画像データ304cと、人差し指の爪の印刷領域310bに対応付けられているネイル画像データ304bとを入れ替えたいと考えている。そこで、ユーザがネイル画像データ304cをドラッグして、ネイル画像データ304bよりも図中の左側に置くようにドロップすることで、ネイル画像データ304の順番が入れ替わる。図6(c)では、図6(b)のようにしてネイル画像データ304の順番を入れ替えた後、識別情報601をもう一度ネイル画像データ304の左から右へ順番に割り振り直し、識別情報601を更新している例を示している。つまり、図6(a)と図6(c)とを比べると、ネイル画像データ304bとネイル画像データ304cとの位置が入れ替わっており、かつ、識別情報601も入れ替わっている。つまり、ネイル画像データ304と印刷領域310との対応付けが部分的に変更され、かつ、その変更された様子がユーザにとって視認可能な状態で表示されている。このように、ネイル画像データ304の並び順を変更する操作がされた場合、識別情報601の割り当てが再度行われることになる。
なお、図6の例では、印刷領域310とネイル画像データ304との対応付けを行う際に、識別情報601として番号を割り振る形態を例に挙げて説明した。しかし、印刷領域310とネイル画像データ304との対応付けがわかるようなものであれば、どのような形態でもよい。例えば、識別情報601として英文字を割り振ってもよいし、絵文字のようなものを割り振ってもよい。また、異なる5つのアイコンを割り振ってもよい。また、対応付けが分かればよいので、ネイル画像データ304の背景部分の色を変更し、これに応じて印刷領域310の色を変更することで、対応付けをユーザが認識できるようにしてもよい。つまり、印刷領域310およびネイル画像データ304の一部の表示を変更することで、ユーザが対応付けを視認可能にしてもよい。その後、ユーザは、ネイル画像データ304を印刷領域に反映させる操作を行う。
図7は、ユーザが、印刷領域310に反映させるネイル画像データ304を選択する例を示す図である。図7(a)では、ユーザが、選択するネイル画像データ304を、ピンチアウト操作を用いて指で囲っている例を示している。図7(b)では、ユーザが、選択するネイル画像データ304を、ピンチイン操作を用いてネイル画像データ304の範囲を閉じるように指を動かして選択する例を示している。このように、ピンチインまたはピンチアウトで囲われた範囲のネイル画像データ304を、ユーザが選択したとみなす。別の方法を図7(c)に示す。図7(c)は、印刷データ作成画面301に画像データ選択ボタン701を設けた例を示した図である。ユーザは、画像データ選択ボタン701を押下後、1つもしくは複数のネイル画像データ304をタップすることで、印刷領域310に反映させるネイル画像データ304を選択することができる。ネイルアプリは、ユーザによってタップされたネイル画像データ304が選択されたものと扱う。なお、これまでの図においては、右手が印刷対象挿入部158に挿入された状態で、右手でネイル画像データ304を選択する例を示しているが、操作者が単一ユーザである場合には、左手でネイル画像データ304を選択することになる。ネイル画像データ304を選択した後、選択したネイル画像データ304を印刷領域310に反映する処理が行われる。
図8は、ユーザによる選択が完了したネイル画像データ304を動画表示領域308の印刷領域310に反映する例を示す図である。図8(a)は、選択したネイル画像データ304を動画表示領域308にドラッグ&ドロップして、ネイル画像データ304a〜304eに対応付けられている印刷領域310a〜310eにネイル画像データ304をそれぞれ反映する例を示している。即ち、選択したネイル画像データ304が動画表示領域308にドラッグ&ドロップされることで、ネイルアプリは、ユーザによる選択が完了したと判定して、反映処理を行う。なお、このとき、選択したネイル画像データ304の一部が動画表示領域308にドロップされた場合、即ち、選択したネイル画像データ304が動画表示領域308に少しでも重なった場合に反映が実行されてもよい。別の例を図8(b)に示す。図8(b)は、印刷データ作成画面301に画像データ決定ボタン801を設置した例である。ユーザが画像データ決定ボタン801を押下すると、ユーザによる選択が完了したと判定され、選択されているネイル画像データ304が、ネイル画像データ304と対応付けている印刷領域310に反映される。印刷領域310にネイル画像データ304が反映されると、動画表示領域308に表示されている動画(画像)のうち、印刷領域310にはネイル画像データ304の画像が重畳して表示されることになる。つまり、ネイルアートの画像がプレビュー表示される。
図7および図8で説明したように、本実施形態においては、複数の印刷領域310が存在する場合において、各印刷領域310に適用するネイル画像データ304を反映する際に、複数のネイル画像データ304をまとめて反映させることができる。即ち、ネイルアプリは、印刷領域310とネイル画像データ304との対応付けを行う。そして、ユーザは、ネイル画像データ304のうち、反映したいネイル画像データ304を選択する。その後、ユーザは、選択したネイル画像データ304を反映する操作を行う。このように本実施形態では、複数の印刷領域310に対してネイル画像データ304を1つずつドラッグ&ドロップして反映しなくて済むので、印刷対象の画像を印刷領域310に反映させる際のユーザの手間を軽減することができる。なお、ここではユーザは、反映したいネイル画像データ304を選択する操作を行い、その後、選択したネイル画像データ304を反映する操作を行う例を示しているが、これに限られない。ユーザが反映したいネイル画像データ304を選択する操作を行った結果、選択されたネイル画像データ304が自動的に印刷領域310に反映されてもよい。即ち、ユーザが、反映したいネイル画像データ304を図7に示すように選択することで、ネイルアプリが、この選択に応じてネイル画像データ304を印刷領域310に自動的に反映する処理を行ってもよい。
図3に戻り印刷データ作成画面301のUI画面の説明を続ける。図3の印刷データ作成画面301における画像データ解除ボタン311は、印刷領域310に反映されたネイル画像データ304を解除するためのボタンである。ユーザが画像データ解除ボタン311を押下すると、印刷領域310に反映されたネイル画像データ304が解除される。
図3の印刷データ作成画面301における印刷ボタン312は、印刷開始を指示するボタンである。印刷ボタン312が押下されると、ネイルアプリは、爪に印刷するための印刷データを、印刷領域310に反映されたネイル画像データ304を元に作成し、作成した印刷データをプリンター名表示領域306に表示されたプリンター151に送信する。印刷データは、動画表示領域308から5つの印刷領域310を抽出して作成される。プリンター151はネイルアプリから送られた印刷データを基に爪に印刷する。
印刷後には、学習モデルを再学習させてアップデートする処理が実行される。なお、再学習およびアップデート処理のタイミングは、印刷後である必要はなく、印刷前に実行されてもよい。再学習の詳細は、後述する。
<情報処理装置の構成>
図9は、上述した機能を実現するための情報処理装置101の機能ブロックの一例を示す図である。情報処理装置101は、ネイルアプリ900を備えている。ネイルアプリ900は、情報処理装置101のCPU103が、ROM104または外部記憶装置106に記憶されているネイルアプリ900のプログラムを実行することで、CPU103にネイルアプリ900の機能を実行させることが可能となる。ネイルアプリ900は、表示制御部910を有する。表示制御部910は、図2に示すネイルアートデータの選択画面201および図3に示す印刷データ作成画面301を含む各UI画面を、表示部108に表示させる機能を有する。また、表示制御部910は、入力インターフェース102の機能を有しており、ユーザから入力される操作指示に応じて各種の制御を行う。
図9は、上述した機能を実現するための情報処理装置101の機能ブロックの一例を示す図である。情報処理装置101は、ネイルアプリ900を備えている。ネイルアプリ900は、情報処理装置101のCPU103が、ROM104または外部記憶装置106に記憶されているネイルアプリ900のプログラムを実行することで、CPU103にネイルアプリ900の機能を実行させることが可能となる。ネイルアプリ900は、表示制御部910を有する。表示制御部910は、図2に示すネイルアートデータの選択画面201および図3に示す印刷データ作成画面301を含む各UI画面を、表示部108に表示させる機能を有する。また、表示制御部910は、入力インターフェース102の機能を有しており、ユーザから入力される操作指示に応じて各種の制御を行う。
表示制御部910は、ユーザ情報入力部911、ネイルアートデータ選択受付部912、撮影指示部913、画像表示制御部914、爪検出部915、印刷領域設定部916、反映データ受付部917、反映実行部918、および印刷指示部919を有する。
ユーザ情報入力部911は、図2(a)に示すように、ユーザ情報を入力するダイアログ205からユーザ情報の入力を受け付ける。入力を受け付けたユーザ情報は、RAM105などに保存される。ネイルアートデータ選択受付部912は、図2(c)に示すように、ユーザからのネイルアートデータ203の選択を受け付け、選択されたネイルアートデータ203を取得する。撮影指示部913は、図3の撮影ボタン307の押下を検知し、撮影ボタン307の押下の検知に応じてプリンター151に動画の撮影を指示する。画像表示制御部914は、プリンター151から送信された動画の画像データを、動画表示領域308に表示する。
爪検出部915は、学習モデル(爪検出モデルともいう)を用いて爪の領域を印刷領域として検出する。爪検出部915は、学習モデルを保持していてもよく、保持している学習モデルを用いて爪領域を検出してもよい。あるいは、爪検出部915は、学習モデルを保持する外部のサーバーに爪領域の検出を依頼し、その結果を用いてもよい。爪検出部915は、学習モデルに画像データとユーザ情報とを入力することで学習モデルから出力される爪領域を、印刷領域310として検出する。
印刷領域設定部916は、ユーザからの指示に従って、動画表示領域308上に印刷領域310を設定する。印刷領域設定部916は、爪検出部915によって検出された爪領域の変更がユーザから指示された場合には、変更後の爪領域を印刷領域310として設定する。爪検出部915によって検出された爪領域の変更がユーザから指示されない場合、爪検出部915によって検出された爪領域を印刷領域310として設定する。
反映データ受付部917は、ネイル画像データ304と印刷領域310との対応付けを行い、印刷領域310に反映させるネイル画像データ304の選択をユーザから受け付ける。反映実行部918は、ユーザによる選択が完了したネイル画像データ304を、対応する印刷領域310に反映させる。印刷指示部919は、印刷領域310に反映されたネイル画像データ304をプリンター151に印刷するための印刷データを作成し、印刷データをプリンター151に送信する。
<処理の流れ>
図10は、本実施形態の処理の一例を示すシーケンス図である。図10のネイルアプリ900の処理は、情報処理装置101のCPU103がROM104または外部記憶装置106に記憶されているプログラムコードをRAM105に展開し実行することにより行われる。あるいはまた、図10におけるステップの一部または全部の機能をASICまたは電子回路などのハードウェアで実現してもよい。なお、各処理の説明における記号「S」は、当該シーケンスにおけるステップであることを意味する。図10においては、ユーザがネイルアプリ900を起動し、ネイルアプリ900の制御によって、印刷対象挿入部158に挿入された爪にプリントエンジン155がネイルアートを印刷する流れを説明する。
図10は、本実施形態の処理の一例を示すシーケンス図である。図10のネイルアプリ900の処理は、情報処理装置101のCPU103がROM104または外部記憶装置106に記憶されているプログラムコードをRAM105に展開し実行することにより行われる。あるいはまた、図10におけるステップの一部または全部の機能をASICまたは電子回路などのハードウェアで実現してもよい。なお、各処理の説明における記号「S」は、当該シーケンスにおけるステップであることを意味する。図10においては、ユーザがネイルアプリ900を起動し、ネイルアプリ900の制御によって、印刷対象挿入部158に挿入された爪にプリントエンジン155がネイルアートを印刷する流れを説明する。
まず、ユーザは、ネイルアプリ900を起動する。ユーザがネイルアプリ900を起動すると、S1000において表示制御部910は、図2(a)に示すダイアログ205を含む画面を表示する。ユーザは、ユーザ情報を入力し、ユーザ情報入力部911は、ユーザ情報の入力を受け付ける。尚、既にユーザ情報が登録されている場合、ユーザ情報入力部911は、登録されているユーザ情報を取得すればよい。また、ユーザ情報入力部911の処理は、一連の最初の処理に行われなくてもよく、後述するS1010の爪検出モデルを用いた印刷領域310の設定の前に行われていればよい。
S1001で表示制御部910は、図2(b)に示す選択画面201を表示する。ネイルアートデータ選択受付部912は、選択画面201のネイルアートデータ表示領域202から1つまたは複数のネイルアートデータ203の選択を受け付ける。
ユーザが、1つまたは複数のネイルアートデータ203を選択後、ネイルアートデータ決定ボタン204を押下すると、S1002において表示制御部910は、ボタン押下を検知し、図3に示す印刷データ作成画面301を表示部108に表示する。図3に示す印刷データ作成画面301が表示部108に表示されると、印刷データ作成画面301中の選択データ表示領域302に、S1001でユーザによって選択された1つまたは複数のネイルアートデータ203が表示される。
ユーザは、選択データ表示領域302の中から、爪に印刷するネイルアートデータ203を1つ選択する。S1003においてネイルアートデータ選択受付部912は、ユーザから、1つのネイルアートデータ203の選択を受け付ける。表示制御部910は、ユーザによって選択されたネイルアートデータ203をネイルアートデータ確定領域303に表示する。
S1003で爪に印刷するネイルアートデータが決定された後、S1004で表示制御部910は、プリンター検索ボタン305の押下を受け付ける。プリンター検索ボタン305が押下されると、ネイルアプリ900は、ネイルアプリと通信可能なプリンター151を検索する。表示制御部910は、検索結果を示すプリンターリスト401を表示部108に表示する。
プリンターリスト401が表示部108を表示されると、ユーザは、プリンター151を指定する。S1005において表示制御部910は、ユーザによって指定されたプリンター151を選択する。
ユーザは、S1006において、S1005で選択したプリンター151に設けられた印刷対象挿入部158にユーザの手を挿入する。このとき、S1003で選択したネイルアートデータ203をより精彩に印刷するために、あらかじめユーザの爪にジェル状の液体を塗布しておく。以下、この液体をベースコートと呼ぶ。このベースコートの色は、複数存在し、例えば白、半透明などがある。また、ネイルアプリ900は、このタイミングで、プリンター151に手を挿入することをユーザに促すメッセージを表示しても良い。
S1007において撮影指示部913は、ユーザからの撮影ボタン307の押下を受け付ける。ユーザによって撮影ボタン307が押下されると、S1008においてネイルアプリ900は、S1005で選択されているプリンター151と通信する。そして、ネイルアプリ900は、プリンター151に対して、撮影部157による撮影を指示する。なお、S1008において、ネイルアプリ900が、プリンター151に対してカメラ起動ジョブを送信しても良い。そして、プリンター151は、このカメラ起動ジョブの受信に基づいて、撮影部157を起動して撮影を開始しても良い。
S1009においてプリンター151は、撮影部157で撮影している動画をネイルアプリ900に送信する。この動画は、図3に示す印刷データ作成画面301の動画表示領域308に表示される。撮影部157で撮影された動画は、ほぼリアルタイムで動画表示領域308に表示される。この時点においては、動画表示領域308には、印刷対象挿入部158に挿入されたユーザの指先の動画が表示されている状態となる。
S1009で動画表示領域308に動画が表示されている状態において、S1010でユーザは、領域設定ボタン309を押下する。爪検出部915は、領域設定ボタン309の押下を検知すると、爪検出モデルを用いて爪領域の検出を行う。即ち、爪検出部915は、爪を含む指の画像データと、ユーザ情報とを爪検出モデルに入力することで爪検出モデルから出力される爪領域を検出する。印刷領域設定部916は、爪検出部915で検出された爪領域を印刷領域310として設定する。図5で説明したように、印刷領域設定部916は、爪検出モデルによって出力された爪領域を、印刷領域310として動画表示領域308上に設定する。尚、印刷領域設定部916は、爪検出モデルによって出力された印刷領域310を、ユーザの指定に応じて変更することもできる。
尚、本実施形態では、設定可能な印刷領域310の数が予め所定値に規定されているものとする。本実施形態は、片手の爪の数に対応しているので、所定値は、「5」として規定されている。この所定値は、ネイルアートデータ203に含まれるネイル画像データの数に対応する。本実施形態においては、ユーザが、この所定値と同じ数の印刷領域310を設定する形態を例に挙げて説明する。つまり、本実施形態では、印刷領域310が5つ設定されるものとする。
印刷領域設定部916によって印刷領域310が設定された後、反映データ受付部917は、S1011において、ネイルアートデータ確定領域303に表示されている5種類のネイル画像データ304と、設定された5つの印刷領域310との対応付けを行う。このとき、図6において説明したように、ユーザは、ネイル画像データ304と印刷領域310との対応付けを変更することもできる。
S1011でネイル画像データ304と印刷領域310との対応付けが完了後、S1012で反映データ受付部917は、図7のように、ユーザからネイル画像データ304の選択を受け付ける。ユーザは、対応付けが完了したネイルアートデータ確定領域303から、1つまたは複数のネイル画像データ304を選択する。反映データ受付部917は、このユーザの選択を受け付ける。ここでネイルアプリが、印刷したいネイル画像データの選択を促すメッセージを表示しても良い。
S1013において反映実行部は、S1012で選択を受け付けたネイル画像データ304を印刷領域310に反映する。例えば、図7および図8で説明したように、ユーザは、1つまたは複数のネイル画像データ304を印刷領域310に反映することができる。例えば、ネイルアートデータ確定領域303の全部のネイル画像データ304をユーザが選択している場合、全部のネイル画像データ304が印刷領域310に反映される。ネイルアートデータ確定領域303の一部のネイル画像データ304が選択された場合、その一部のネイル画像データ304が、対応する印刷領域310に反映される。選択されていないネイル画像データ304に対応する印刷領域310には、ネイル画像データ304は反映されない。即ち、動画表示領域308上では、ネイル画像データ304が反映される印刷領域310には、ネイル画像が表示され、ネイル画像データ304が反映されない印刷領域310は、ユーザの爪の動画がそのまま表示されることになる。
S1014において印刷指示部919は、ネイル画像データ304が印刷領域310に反映された印刷データを作成する。例えば、ユーザは、印刷領域310に反映されたネイル画像データ304が反映された内容を確認した後に、印刷ボタン312を押下する。印刷指示部919は、印刷ボタン312の押下に応じて印刷データを作成する。この際、ネイルアプリは、「プリンター151に挿入されている手を動かさないでください」という主旨のメッセージを表示しても良い。
S1015においてネイルアプリ900は、作成された印刷データをプリンター151に送信する。S1016においてプリンター151は、送信された印刷データに基づいて、印刷を行う。この結果、ユーザの爪にネイルの画像が印刷されることになる。なお、プリンター151は、印刷中も爪の撮影を継続しており、印刷が完了する前に手がプリンター151から離れたことを検知した場合、印刷を停止しても構わない。また、印刷が完了する前に手がプリンター151から離れたことをネイルアプリが検知して、ネイルアプリ900がプリンター151に印刷の停止を指示しても構わない。
S1017においてネイルアプリ900は、爪検出モデルをアップデートする。ネイルアプリ900は、印刷に使用したユーザの爪を含む手の画像と、ユーザ情報とを顧客情報として1つにまとめたものを爪検出モデル1102の再学習に使用する。尚、再学習は、図10に示す一連の処理において行われてもよいし、図10の処理とは別のタイミングで別個に行われてもよい。
<学習モデル>
次に、爪検出部915が用いる学習モデル(爪検出モデル)を説明する。上述したように、本実施形態では、爪領域を自動検出する方法として、機械学習で生成した学習モデルを使用する。機械学習の具体的なアルゴリズムとしては、最近傍法、ナイーブベイズ法、決定木、またはサポートベクターマシンなどが挙げられる。また、ニューラルネットワークを利用して、学習するための特徴量および結合重み付け係数を自ら生成する深層学習(ディープラーニング)も例として挙げられる。適宜、上記アルゴリズムのうち利用できるものを用いて本実施形態に適用することができる。
次に、爪検出部915が用いる学習モデル(爪検出モデル)を説明する。上述したように、本実施形態では、爪領域を自動検出する方法として、機械学習で生成した学習モデルを使用する。機械学習の具体的なアルゴリズムとしては、最近傍法、ナイーブベイズ法、決定木、またはサポートベクターマシンなどが挙げられる。また、ニューラルネットワークを利用して、学習するための特徴量および結合重み付け係数を自ら生成する深層学習(ディープラーニング)も例として挙げられる。適宜、上記アルゴリズムのうち利用できるものを用いて本実施形態に適用することができる。
図11は、学習モデルにニューラルネットワークを用いた学習の例を説明する図である。即ち、本実施形態では、ニューラルネットワークを用いて学習するモデルを学習モデルとする。図11には、学習モデルとして爪検出モデル1102を示している。ニューラルネットワークは、各ノード間の結合重み付け係数等が含まれており、各ノード間の結合重み付け係数等を調整することで学習が行われる。爪検出モデル1102は、入力データ1101を入力すると、出力データ1103を出力するように、学習が行われる。本実施形態の入力データ1101は、爪を含むユーザの手の画像と、ユーザ情報とを含むものである。出力データ1103は、爪の輪郭を示すデータである。
図12は、爪検出モデル1102の学習時および推論時における入出力の構造を示す概念図である。図12(a)は、学習時における、爪検出モデル1102とその入出力データとの関係を示す。学習時において用いられる学習用データは、入力データX(1201)と教師データT(1202)とを含む。入力データX(1201)は、爪検出モデル1102の入力層のデータである。本実施形態における入力データXは、爪を含むユーザの手の画像と、ユーザ情報とを含むデータである。入力データXを爪検出モデル1102に入力すると、その画像に対応する爪領域を示すデータが、出力データY(1203)として出力される。学習時には、入力データXに対応する正解となる爪領域を示すデータが、教師データT(1202)として与えられている。このため、出力データYと教師データTとを損失関数1204に与えることにより、予測結果の正解からのずれ量L(1205)(予測誤差ともいう)が得られる。尚、爪領域を示すデータは、画像中の座標を示すデータでもよいし、ベクターデータでもよいし、当該画像内において爪領域を示すように加工した画像データでもよい。以下では、爪領域を示すデータは、手の画像から爪の領域を示すように加工した画像データであるものとして説明する。
学習時においては、多数の学習用データに対してずれ量L(1205)が小さくなるように、爪検出モデル1102中のRNNのパラメータ等(ノード間の結合重み付け係数等)を更新する。本実施形態では、使用する機械学習アルゴリズムとしてRNNを用いる例を説明したが、他の再帰型ニューラルネットワークを用いてもよい。例えば、Long short−term memory(LSTM)または双方向RNNなどを用いてもよい。さらにネットワーク構造として、複数のネットワーク構造を組み合わせたものを用いてもよい。例えば、畳み込みニューラルネットワーク(CNN)と、RNNもしくはLSTMなどの再帰型ニューラルネットワークまたはオートエンコーダなどとを組み合わせてもよい。
図12(b)は、推論時における、爪検出モデル1102とその入出力データとの関係を示す。入力データX(1101)は、爪検出モデル1102の入力層のデータである。推論時における入力データX(1101)もまた、爪を含むユーザの手の画像と、ユーザ情報とを含むデータである。入力データXを爪検出モデル1102に入力すると、その画像に対応する爪領域を示すデータが、出力データY(1103)として出力される。推論時には、この出力データYを推論結果として利用する。即ち、爪検出部915は、出力データY(1103)を、爪領域を示すデータとして取得する。尚、推論時の爪検出モデル1102は、学習時の爪検出モデル1102と同等のネットワーク構造を備えるものとして説明したが、推論で必要な部分のみを抽出したものを爪検出モデル1102として用意することもできる。これによって爪検出モデル1102のデータ量を削減したり、推論処理の時間を短縮したりすることが可能である。
このように、本実施形態では、爪検出モデル1102を学習させるための学習用データとして次のデータを用いる。即ち、爪を含んだ学習対象者(ユーザ)の手の画像と、学習対象者の手の画像に紐づく学習対象者の情報と、を入力データとし、学習対象者の手の画像から爪の領域を示すように加工した画像を教師データとする学習用データである。尚、爪を含んだ学習対象者の手の画像の指の本数は、どのような数でもよい。また、右手の画像でも左手の画像でもよい。
本実施形態では、学習対象者の手の画像に紐づく学習対象者の情報の具体例として、学習対象者の年齢を用いる例を説明する。例えば、子供の爪は小さいが、年齢を重ね大人になるにつれて爪が大きくなる、といった傾向があるため、年齢によって爪の大きさの違いが表れやすい。よって本実施形態では学習対象者の年齢を学習対象者の爪に紐づく情報として用いる。学習用データとして使用する学習対象者の情報の数は、どのような数でもよい。また、学習対象者の情報は、国籍(もしくは地域)または性別でもよい。年齢と同様に、国籍(地域)または性別の違いも爪の大きさの違いが表れやすいため、学習対象者の爪に紐づく情報として用いてもよい。
表1に示す学習用のデータ構造の例は、ユーザの爪を含む手の画像と、ユーザ属性(ここでは年齢)を入力データとし、爪の領域を示す画像を、その入力データに対応する教師データとした学習用データのセットの例を示している。爪検出モデル1102(学習モデル)を生成する学習部は、このような学習用のデータを用いて爪検出モデル1102を生成する。
先に説明した図11は、学習によって生成された爪検出モデル1102を用いて推論を行う例を示している。即ち、爪検出モデル1102は、入力データ1101として、動画から作成した爪を含むユーザの手の画像と、ユーザの手の画像に紐づくユーザ情報を入力することで、出力データ1103として爪の領域を示すデータ出力する。本実施形態では、爪検出モデル1102は、ネイルアプリ900の爪検出部915に組み込まれているものとする。尚、爪検出モデル1102の生成および後述する再学習は、ネイルアプリ900自身が行ってもよい。あるいは、不図示のサーバーからの指示によって、ネイルアプリ900が保持する爪検出モデル1102が学習されてもよい。また、不図示のサーバーにおいて学習が行われた爪検出モデルによって、ネイルアプリ900が保持する爪検出モデル1102が更新されてもよい。
次に、印刷後に行われ得る爪検出モデル1102のアップデート処理(再学習)を説明する。爪に印刷後、ユーザが印刷に使用した手の画像と、保存していたユーザ情報と、印刷領域310の設定と、を1つにまとめた顧客情報として、ネイルアプリ900内部に保存する。なお、保存場所は、ネイルアプリ900内だけでなく、情報処理装置101内の他の部分でも、不図示のサーバー上のデータベースでもよい。前述したように、ユーザは、爪検出モデル1102によって検出された爪領域をそのまま印刷領域310として用いる場合もあれば、検出された爪領域を変更して印刷領域310として用いる場合がある。このため、印刷に用いた情報を再学習に用いることで、爪領域の検出精度をより向上させることができる。
保存された顧客情報は、一定のタイミングで、爪検出モデル1102に学習用データとして入力され、爪検出モデル1102を再学習させる。即ち、ユーザが印刷に使用した手の画像と、ユーザ情報とを入力データとし、印刷領域310を示すデータを教師データとして用いて、爪検出モデル1102が再学習される。再学習の実施は、ネイルアプリ900が行ってもよいし、不図示の他のサーバーが行ってもよい。尚、ここでは、顧客情報として、ユーザが印刷に使用した手の画像と、保存していたユーザ情報と、印刷領域310の設定とをまとめたものを説明したが、これに限られない。印刷領域310の情報の持ち方によっては、保存していたユーザ情報と、印刷領域310の設定とをまとめたものとしてもよい。印刷領域310が、ユーザが印刷に使用した手の画像であり、当該画像における爪領域(印刷領域)を示すように加工されている場合には、再学習時に、印刷領域310を示す画像から学習用のデータを作成することもが可能だからである。
尚、ユーザが例えば3本の指だけに印刷領域310を設定した場合には、残りの指の部分の爪領域は、爪検出部915が検出したままの領域を再学習に用いる印刷領域310の設定に含ませてもよい。
再学習が行われる一定のタイミングは、ユーザが設定してもよい。一定数の顧客情報が保存されたタイミングとしてもよい。ユーザが任意に実行してもよい。また、時間指定または日にち指定としてもよい。また、顧客情報が保存されたら、すぐに学習用データとして使用してもよい。
以上説明したように、本実施形態によれば、爪を含むユーザの手の画像と、そのユーザのユーザ情報と、その画像における爪の領域を示す画像とを学習データとして用いて爪検出モデル1102を学習させる。これにより、爪検出モデル1102を用いてユーザの爪領域を検出する精度を向上させることができる。また、このように学習された爪検出モデル1102を用いることで、ユーザの爪領域を精度よく検出することができる。また、実際にユーザが設定した印刷領域310を用いて爪検出モデル1102を再学習させることで、さらに高い精度で爪を検出することができる。
<<第2実施形態>>
第1実施形態では、ネイルアプリ900が爪検出モデル1102を保持し、ネイルアプリ900の爪検出部915は、保持されている爪検出モデル1102を用いて爪領域を検出する例を説明した。本実施形態は、爪検出モデル1102が、ネイルアプリ900が起動される情報処理装置101とは異なる他のサーバー装置に保持されている例を説明する。
第1実施形態では、ネイルアプリ900が爪検出モデル1102を保持し、ネイルアプリ900の爪検出部915は、保持されている爪検出モデル1102を用いて爪領域を検出する例を説明した。本実施形態は、爪検出モデル1102が、ネイルアプリ900が起動される情報処理装置101とは異なる他のサーバー装置に保持されている例を説明する。
図13は、本実施形態における情報処理システム1300の構成を示す図である。情報処理システム1300は、ローカルエリアネットワーク1302またはインターネット1304で接続されたクラウドサーバー1320、エッジサーバー1330、情報処理装置101、およびプリンター151を含む。情報処理装置101およびプリンター151は、ローカルエリアネットワーク1302で相互に接続され、ローカルエリアネットワーク1302に設置されているルータ1303を介してインターネット1304と接続することが可能である。
情報処理装置101およびエッジサーバー1330は、ルータ1303を介して接続されたインターネット1304を経由してクラウドサーバー1320と相互に通信することが可能である。エッジサーバー1330と情報処理装置101とは、ローカルエリアネットワーク1302を経由して相互に通信することが可能である。また、情報処理装置101とプリンター151もローカルエリアネットワーク1302を経由して相互に通信することが可能である。また、情報処理装置101とプリンター151とは、近距離無線通信1501によって通信可能である。近距離無線通信1501としては、Bluetooth(登録商標)規格またはNFC規格に則った無線通信を利用するものが考えられる。
クラウドサーバー1320およびエッジサーバー1330もまた、情報処理装置の一種であり、ハードウェア構成も、図1に示す例と同等の構成とすることができる。本実施形態では、爪検出モデル1102の学習は、クラウドサーバー1320またはエッジサーバー1330で行われる。この場合、ネイルアプリ900を起動する情報処理装置101は、GPU110を備えていなくてもよく、学習を行うサーバーがGPUを備えていてもよい。
図14は、情報処理システム1300のソフトウエア構成を示す図である。図14では、ソフトウエア構成のうち、本実施形態における学習および推論の処理に関わるものを中心に記載しており、その他のソフトウェアモジュールについては不図示としている。例えば情報処理装置101またはサーバー上で動作するオペレーティングシステム、各種ミドルウェア、およびメンテナンスのためのアプリケーション等については図示を省略している。
クラウドサーバー1320は、学習用データ生成部1321、学習部1322、および学習モデル生成部1323を備える。学習用データ生成部1321は、外部から受信したデータから、学習部1322が処理可能な学習用データを生成するモジュールである。例えば、学習用データ生成部1321は、第1実施形態で説明したような入力データXおよび教師データTを生成する。尚、学習用データ生成部1321に、第1実施形態で説明したような入力データXおよび教師データTが入力される場合、学習用データ生成部1321は、入力されたデータをそのまま学習部1322に渡す処理を行うモジュールであってもよい。また、第1実施形態で説明したように、再学習用のデータを加工して得る場合には、学習用データ生成部1321が加工をしてもよい。
学習部1322は、学習用データ生成部1321から受け取った学習用データを用いて学習モデル生成部1323で保持される爪検出モデル1102に対する学習を実行するプログラムモジュールである。即ち、学習部1322による学習によって爪検出モデル1102が学習モデル生成部1323において生成される。学習部1322によって学習が行われた爪検出モデル1102は、エッジサーバー1330に配信され、エッジサーバー1330において管理される。エッジサーバー1330において管理される爪検出モデル1102は、エッジサーバー1330において行われる推論処理に用いられる。
エッジサーバー1330は、データ収集・提供部1331、推論部1332、および爪検出モデル1102を保持する学習モデル保持部1333を備える。データ収集・提供部1331は、ネイルアプリ900から受信したデータを、学習に用いるためのデータ群としてクラウドサーバー1320に送信するモジュールである。推論部1332は、ネイルアプリ900から送られるデータを基に、学習モデル保持部1333が保持する爪検出モデル1102を用いて推論を実行し、その結果をネイルアプリ900に返送するプログラムモジュールである。ネイルアプリ900から送られるデータは、推論部1332の入力データXとなるデータである。
学習モデル保持部1333が保持する爪検出モデル1102は、エッジサーバー1330が行う推論に用いられる。学習モデル保持部1333は、クラウドサーバー1320で蓄積して配信された爪検出モデル1102を格納する。学習モデル保持部1333が格納する爪検出モデル1102は、クラウドサーバー1320で生成された爪検出モデル1102の全部が配信されたものであってもよい。あるいは、爪検出モデル1102のうち、エッジサーバー1330での推論に必要な一部分だけが抜き出されて配信されたものであってもよい。
ネイルアプリ900は、爪検出部915とデータ送受信部1401とを含む。ネイルアプリ900は、図9で説明した他の構成も備えるが、ここでは省略する。データ送受信部1401は、エッジサーバー1330に学習または推論を依頼するモジュールである。学習時には、データ送受信部1401は、爪検出部915からの依頼により、学習に用いるデータをエッジサーバー1330のデータ収集・提供部1331に送信する。また、推論時には、データ送受信部1401は、爪検出部915からの依頼により推論に用いるデータをエッジサーバー1330に送信し、その結果を受信して爪検出部915に返す。
尚、図14では、クラウドサーバー1320で学習して生成した爪検出モデル1102をエッジサーバー1330に配信し、配信された爪検出モデル1102をエッジサーバー1330が推論に利用する例を説明した。しかしながら、学習または推論を、それぞれ、クラウドサーバー1320、エッジサーバー1330、ネイルアプリ900のどこで実行するかは、ハードウェア資源の配分、または、計算量もしくはデータ通信量の大小などに応じて構成を決定すればよい。あるいはこれら資源の配分、または、計算量もしくはデータ通信量の増減に応じて動的に変えるように構成してもよい。学習および推論を行う主体が異なる場合、推論側は、推論のみで使用するロジックを用いたり、爪検出モデル1102の容量を削減したりすることで、より高速で実行できるように構成したりすることが可能である。
以上説明したように、ネイルアプリ900は、他のサーバーに保持されている爪検出モデル1102に対して、爪を含むユーザの手の画像と、そのユーザのユーザ情報とを送信し、爪検出モデル1102から受信した爪領域のデータを用いることができる。また、エッジサーバー1330またはクラウドサーバー1320において各ユーザのデータを収集して学習に用いることで、多様なユーザに対応した爪検出モデルをネイルアプリが利用することができる。
<<その他の実施形態>>
前述した実施形態では、印刷対象挿入部158に片手の手を入れる形態のプリンター151を例に挙げて説明したが、これに限られない。例えば、店舗などに設置されるようなプリンターで、両手を入れるようなものでもよい。この場合、操作は、店員などが行えばよい。
前述した実施形態では、印刷対象挿入部158に片手の手を入れる形態のプリンター151を例に挙げて説明したが、これに限られない。例えば、店舗などに設置されるようなプリンターで、両手を入れるようなものでもよい。この場合、操作は、店員などが行えばよい。
また、上述した各実施形態では、主に、ネイルアートとして画像(模様)を印刷する例を挙げて説明したが、3次元構造物などを示す形状データと画像データとを用いて、模様を含む構造物をネイルアートとして形成するような形態でもよい。
また、上述した各実施形態では、手をプリンター151に挿入し、爪に直接印刷する形態で説明したが、別の形態でも構わない。例えば、シール等の爪に装着するオブジェクトに対して印刷を行うプリンターを使って印刷する場合に、上述した各実施形態が適用されても構わない。
また、上述した各実施形態では、ネイルプリンターを用いた印刷処理を行う際に、爪の領域を検出する例を説明した。爪領域を検出する処理は、ネイルプリンターのみならず、他の所定の処理に適用することもできる。例えば、爪を用いて各種の診断を画像処理などによって行う場合に、自動的に検出した爪領域のデータを用いて診断が行われてもよい。
また、爪領域を自動的に検出することで、爪にベースコートを塗布する工程も自動的に行われてもよい。また、ネイルアートを拠り外す処理を自動的に行う場合に、上述した爪領域の検出処理を適用してもよい。
また、上述した各実施形態では、印刷対象が爪である例を説明したが、これに限られない。ユーザの体の一部に印刷を行う場合に、ユーザの属性に応じて印刷領域が変わり得るような場合には、上述した各実施形態を同様に適用することができる。例えば、爪ではなく、指に所定のアートを印刷する処理に適用してもよい。また、フェイスペイントを行う場合に頬などの体の一部を印刷領域として検出するような処理にも適用可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
コンピュータは、1または複数のプロセッサーまたは回路を有し、コンピュータ実行可能命令を読み出し実行するために、分離した複数のコンピュータまたは分離した複数のプロセッサーまたは回路のネットワークを含みうる。プロセッサーまたは回路は、中央演算処理装置(CPU)、マイクロプロセッシングユニット(MPU)、グラフィクスプロセッシングユニット(GPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートウェイ(FPGA)を含みうる。また、プロセッサーまたは回路は、デジタルシグナルプロセッサ(DSP)、データフロープロセッサ(DFP)、またはニューラルプロセッシングユニット(NPU)を含みうる。
900 ネイルアプリ
910 表示制御部
911 ユーザ情報入力部
915 爪検出部
916 印刷領域設定部
910 表示制御部
911 ユーザ情報入力部
915 爪検出部
916 印刷領域設定部
Claims (19)
- コンピュータを、
爪を含んだユーザの指の画像データと、当該ユーザのユーザ情報とを取得する取得手段と、
前記取得手段で取得した画像データとユーザ情報とを学習モデルに入力することで前記学習モデルから出力される、前記画像データにおける爪の領域を示すデータに基づいて、前記取得手段で取得した画像データにおける爪領域を検出する検出手段と、
として機能させるためのプログラム。 - 前記学習モデルは、爪を含んだユーザの指の画像データと、当該ユーザのユーザ情報とを入力すると、前記入力された画像データにおける爪の領域を示すデータを出力するように学習された学習モデルであることを特徴とする請求項1に記載のプログラム。
- 前記学習モデルは、爪を含んだユーザの指の画像データと、当該ユーザのユーザ情報とを入力データとし、前記入力された画像データにおける爪を示す領域を示すデータを教師データとする学習用データを用いて学習された学習モデルであることを特徴とする請求項1または2に記載のプログラム。
- 前記コンピュータを、
前記検出手段で検出された爪領域に所定の処理を行う処理手段としてさらに機能させることを特徴とする請求項1乃至3のいずれか一項に記載のプログラム。 - 前記コンピュータを、
前記検出手段で検出された爪領域をユーザの操作に応じて変更し、変更後の爪領域に所定の処理を行う処理手段としてさらに機能させることを特徴とする請求項1乃至3のいずれか一項に記載のプログラム。 - 前記コンピュータを、
前記処理手段での前記所定の処理に応じて、前記学習モデルを再学習させるためのデータを出力する出力手段としてさらに機能させることを特徴とする請求項4または5に記載のプログラム。 - 前記出力手段は、前記学習モデルを再学習させるためのデータとして、前記所定の処理が行われた前記爪領域を少なくとも含むデータと、前記取得手段で取得した前記ユーザ情報とを含むデータを出力することを特徴とする請求項6に記載のプログラム。
- 前記出力手段は、前記学習モデルを再学習させるためのデータを蓄積するデータベースに当該データを出力することを特徴とする請求項6または7に記載のプログラム。
- 前記所定の処理は、前記爪領域に印刷をする印刷指示を出力する処理であることを特徴とする請求項4乃至8のいずれか一項に記載のプログラム。
- 前記ユーザ情報は、国、地域、性別、または年齢のうちの少なくとも一つを含むことを特徴とする請求項1乃至9のいずれか一項に記載のプログラム。
- 前記検出手段が前記学習モデルに入力する前記画像データは、撮影装置によって撮影された画像データであることを特徴とする請求項1乃至10のいずれか一項に記載のプログラム。
- コンピュータを、
印刷対象を一部に含む画像データと、印刷を行うユーザのユーザ情報とを取得する取得手段と、
前記取得手段で取得した画像データとユーザ情報とを学習モデルに入力することで前記学習モデルから出力される、前記画像データにおける印刷領域を示すデータに基づいて、前記取得手段で取得した画像データにおける印刷領域を検出する検出手段と、
として機能させるためのプログラム。 - コンピュータを、
爪を含んだユーザの指の画像データと、当該ユーザのユーザ情報とを入力データとして取得する第一取得手段と、
前記画像データにおける爪の領域を示すデータを教師データとして取得する第二取得手段と、
前記入力データを学習モデルに入力した場合に出力される出力データと、前記教師データとの誤差が小さくなるように前記学習モデルを学習することで前記学習モデルを生成する生成手段と、
として機能させるためのプログラム。 - 爪を含んだユーザの指の画像データと、当該ユーザのユーザ情報とを取得する取得手段と、
前記取得手段で取得した画像データとユーザ情報とを学習モデルに入力することで前記学習モデルから出力される、前記画像データにおける爪の領域を示すデータに基づいて、前記取得手段で取得した画像データにおける爪領域を検出する検出手段と、
を有することを特徴とする情報処理装置。 - プリンターと通信可能な情報処理装置であって、
印刷対象を一部に含む画像データと、印刷を行うユーザのユーザ情報とを取得する取得手段と、
前記取得手段で取得した画像データとユーザ情報とを学習モデルに入力することで前記学習モデルから出力される、前記画像データにおける印刷領域を示すデータに基づいて、前記取得手段で取得した画像データにおける印刷領域を検出する検出手段と、
を有することを特徴とする情報処理装置。 - 爪を含んだユーザの指の画像データと、当該ユーザのユーザ情報とを入力データとして取得する第一取得手段と、
前記画像データにおける爪の領域を示すデータを教師データとして取得する第二取得手段と、
前記入力データを学習モデルに入力した場合に出力される出力データと、前記教師データとの誤差が小さくなるように前記学習モデルを学習することで前記学習モデルを生成する生成手段と、
を有することを特徴とする情報処理装置。 - 情報処理装置の制御方法であって、
爪を含んだユーザの指の画像データと、当該ユーザのユーザ情報とを取得する取得工程と、
前記取得工程で取得した画像データとユーザ情報とを学習モデルに入力することで前記学習モデルから出力される、前記画像データにおける爪の領域を示すデータに基づいて、前記取得工程で取得した画像データにおける爪領域を検出する検出工程と、
を有することを特徴とする情報処理装置の制御方法。 - 情報処理装置の制御方法であって、
印刷対象を一部に含む画像データと、印刷を行うユーザのユーザ情報とを取得する取得工程と、
前記取得工程で取得した画像データとユーザ情報とを学習モデルに入力することで前記学習モデルから出力される、前記画像データにおける印刷領域を示すデータに基づいて、前記取得工程で取得した画像データにおける印刷領域を検出する検出工程と、
を有することを特徴とする情報処理装置の制御方法。 - 学習モデルの生成方法であって、
爪を含んだユーザの指の画像データと、当該ユーザのユーザ情報とを入力データとして取得する第一取得工程と、
前記画像データにおける爪の領域を示すデータを教師データとして取得する第二取得工程と、
前記入力データを学習モデルに入力した場合に出力される出力データと、前記教師データとの誤差が小さくなるように前記学習モデルを学習することで前記学習モデルを生成する生成工程と、
を有することを特徴とする学習モデルの生成方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019239150A JP2021108010A (ja) | 2019-12-27 | 2019-12-27 | 情報処理装置、情報処理装置の制御方法、学習モデルの生成方法、およびプログラム |
US17/124,841 US11903476B2 (en) | 2019-12-27 | 2020-12-17 | Information processing apparatus, method of controlling information processing apparatus, and method of generating learning model |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019239150A JP2021108010A (ja) | 2019-12-27 | 2019-12-27 | 情報処理装置、情報処理装置の制御方法、学習モデルの生成方法、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021108010A true JP2021108010A (ja) | 2021-07-29 |
Family
ID=76546898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019239150A Pending JP2021108010A (ja) | 2019-12-27 | 2019-12-27 | 情報処理装置、情報処理装置の制御方法、学習モデルの生成方法、およびプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US11903476B2 (ja) |
JP (1) | JP2021108010A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022026888A (ja) | 2020-07-31 | 2022-02-10 | キヤノン株式会社 | プログラム、情報処理装置の制御方法、および情報処理装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5382078B2 (ja) * | 2011-08-12 | 2014-01-08 | カシオ計算機株式会社 | ネイルプリント装置及び印刷制御方法 |
GB2544971B (en) * | 2015-11-27 | 2017-12-27 | Holition Ltd | Locating and tracking fingernails in images |
JP7035405B2 (ja) * | 2017-09-21 | 2022-03-15 | カシオ計算機株式会社 | 輪郭検出装置、描画装置、輪郭検出方法及び輪郭検出プログラム |
JP6992367B2 (ja) * | 2017-09-27 | 2022-01-13 | カシオ計算機株式会社 | 爪輪郭検出装置、爪輪郭検出方法及び爪輪郭検出プログラム |
JP7039991B2 (ja) | 2017-12-22 | 2022-03-23 | カシオ計算機株式会社 | 輪郭検出装置、描画装置、輪郭検出方法及び輪郭検出プログラム |
-
2019
- 2019-12-27 JP JP2019239150A patent/JP2021108010A/ja active Pending
-
2020
- 2020-12-17 US US17/124,841 patent/US11903476B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11903476B2 (en) | 2024-02-20 |
US20210196023A1 (en) | 2021-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109313576B (zh) | 跨设备任务执行 | |
CN106575195B (zh) | 移动设备上的改进的拖放操作 | |
US20150264206A1 (en) | Image-forming apparatus, system, information processing method and storage medium | |
WO2018113512A1 (zh) | 图像处理方法以及相关装置 | |
CN103997584A (zh) | 信息处理终端、信息处理装置、信息处理系统以及信息处理方法 | |
JP2019053355A (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
CN108475221A (zh) | 用于提供多任务处理视图的方法和装置 | |
JP6540721B2 (ja) | 情報処理装置 | |
JP5338821B2 (ja) | 画像形成装置、端末装置、画像形成システム、および制御プログラム | |
JP2022026888A (ja) | プログラム、情報処理装置の制御方法、および情報処理装置 | |
CN108701010A (zh) | 移动装置的打印数据处理方法以及移动装置 | |
US10440208B2 (en) | Information processing apparatus with cooperative function identification | |
US10567608B2 (en) | Information processing apparatus and non-transitory computer readable medium | |
JP2021108010A (ja) | 情報処理装置、情報処理装置の制御方法、学習モデルの生成方法、およびプログラム | |
JP4491486B2 (ja) | 印刷指示装置、印刷システム、印刷方法、プログラムおよび記録媒体 | |
US20210386178A1 (en) | Storage medium, computer control method, and information processing apparatus | |
JP2012226531A (ja) | ファイル処理システム、管理装置、および制御プログラム | |
JP7237614B2 (ja) | 情報処理装置、情報処理装置の制御方法、およびプログラム | |
EP2986007A1 (en) | Information processing apparatus, data processing method thereof, and program | |
JP2022026860A (ja) | プログラム、情報処理装置の制御方法、および情報処理装置 | |
US20240054812A1 (en) | Image acquisition apparatus, image acquisition method, and non-transitory computer-readable storage medium | |
JP7059715B2 (ja) | 画像形成装置、画像形成システム | |
JP2021082870A (ja) | 推定システム、方法およびプログラム | |
JP6972964B2 (ja) | 画像形成装置及び画像形成システム | |
JP2017201502A (ja) | 情報処理装置及びプログラム |