JP2022026867A - 情報処理装置、情報処理装置の制御方法、およびプログラム - Google Patents

情報処理装置、情報処理装置の制御方法、およびプログラム Download PDF

Info

Publication number
JP2022026867A
JP2022026867A JP2020130532A JP2020130532A JP2022026867A JP 2022026867 A JP2022026867 A JP 2022026867A JP 2020130532 A JP2020130532 A JP 2020130532A JP 2020130532 A JP2020130532 A JP 2020130532A JP 2022026867 A JP2022026867 A JP 2022026867A
Authority
JP
Japan
Prior art keywords
nail
inclination
image
captured image
determining
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
Application number
JP2020130532A
Other languages
English (en)
Inventor
遼也 川合
Ryoya Kawai
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2020130532A priority Critical patent/JP2022026867A/ja
Priority to US17/374,057 priority patent/US20220036509A1/en
Publication of JP2022026867A publication Critical patent/JP2022026867A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/60Rotation of a whole image or part thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1205Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1208Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1292Mobile client, e.g. wireless printing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00132Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture in a digital photofinishing system, i.e. a system where digital photographic images undergo typical photofinishing processing, e.g. printing ordering
    • H04N1/00169Digital image input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00132Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture in a digital photofinishing system, i.e. a system where digital photographic images undergo typical photofinishing processing, e.g. printing ordering
    • H04N1/00185Image output
    • H04N1/00188Printing, e.g. prints or reprints
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00132Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture in a digital photofinishing system, i.e. a system where digital photographic images undergo typical photofinishing processing, e.g. printing ordering
    • H04N1/00185Image output
    • H04N1/0019Image output on souvenir-type products or the like, e.g. T-shirts or mugs
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J11/00Devices or arrangements  of selective printing mechanisms, e.g. ink-jet printers or thermal printers, for supporting or handling copy material in sheet or web form
    • B41J11/008Controlling printhead for accurately positioning print image on printing material, e.g. with the intention to control the width of margins
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J11/00Devices or arrangements  of selective printing mechanisms, e.g. ink-jet printers or thermal printers, for supporting or handling copy material in sheet or web form
    • B41J11/0095Detecting means for copy material, e.g. for detecting or sensing presence of copy material or its leading or trailing end
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J3/00Typewriters or selective printing or marking mechanisms characterised by the purpose for which they are constructed
    • B41J3/407Typewriters or selective printing or marking mechanisms characterised by the purpose for which they are constructed for marking on special material
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Abstract

【課題】オブジェクト画像を挿入する際の傾きを適切に決定する。【解決手段】撮影画像に含まれる所定の領域にオブジェクト画像を挿入する際の前記オブジェクト画像の傾きを決定するプログラムは、コンピュータを、撮影画像から所定の領域を検出する検出手段と、検出手段で検出した所定の領域を内包する矩形を作成する作成手段と、矩形の前記撮影画像の水平線または垂直線に対する傾きを、オブジェクト画像を挿入する際の傾きとして決定する決定手段と、として機能させる。【選択図】図6

Description

本発明は、オブジェクト画像を挿入する際の傾きを決定する技術に関する。
近年、プリンターを使用して爪にネイルアートを印刷することが可能になっている。以下、爪にネイルアートを印刷するプリンターをネイルプリンターと称する。
特許文献1には、ネイルプリンターを使用してネイルアートを爪に印刷する際に、ネイルアートの方向を爪の方向に合わせた状態で印刷を施す技術が開示されている。具体的には、特許文献1では、爪の画像から、爪の表面に存在する筋の延在方向を検出し、検出した筋の延在方向にネイルアートの方向を合わせることで、ネイルアートの方向を爪の方向に合わせる技術が記載されている。
特開2016-120051号公報
しかしながら、特許文献1に記載の技術では、爪の筋が検出できない状態においては、爪の方向を検出することができない。
本発明は、オブジェクト画像を挿入する際の傾きを適切に決定することを目的とする。
本発明の一態様に係るプログラムは、撮影画像に含まれる所定の領域にオブジェクト画像を挿入する際の前記オブジェクト画像の傾きを決定するプログラムであって、コンピュータを、前記撮影画像から前記所定の領域を検出する検出手段と、前記検出手段で検出した前記所定の領域を内包する矩形を作成する作成手段と、前記矩形の前記撮影画像の水平線または垂直線に対する傾きを、前記オブジェクト画像を挿入する際の傾きとして決定する決定手段と、として機能させることを特徴とする。
本発明によれば、オブジェクト画像を挿入する際の傾きを適切に決定することができる。
システム構成を示す概略図である。 ネイルアートの選択画面を示すUI画面を説明する図である。 ネイル画像データ設定画面を示すUI画面を説明する図である。 印刷データ作成画面を示すUI画面を説明する図である。 印刷領域を設定する例を説明する図である。 ネイル画像データの方向を印刷領域の方向に合わせる例を説明する図である。 ネイル画像データの方向を印刷領域の方向に合わせる例を説明する図である。 プレビュー領域の他の表示例を示す図である。 情報処理装置の機能ブロックの一例を示す図である。 処理の一例を示すシーケンス図である。 爪領域に基づく印刷領域を設定する処理を示すフローチャートである。 爪領域に基づく印刷領域を設定する処理を示すフローチャートである。 オブジェクトの挿入方向を決定する例を説明する図である。
以下、本発明の実施の形態を詳細に説明する。なお、以下の実施の形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。また、本発明は、その要旨を逸脱しない限り、様々な変形が可能である。
<<第1実施形態>>
<システムの構成>
本実施形態は、情報処理装置とプリンターとを含むシステムによって構成される形態である。本実施形態では、情報処理装置としてタブレット端末を例に挙げて説明する。なお、情報処理装置は、タブレット端末に限定されるものではない。情報処理装置として、携帯端末、ノート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を有する。これらはシステムバスを介して互いに接続されている。
入力インターフェース102は、物理キーボード、ボタン、およびタッチパネルなどの操作部(不図示)を介して、ユーザからのデータ入力または操作指示を受け付けるためのインターフェースである。なお、本実施形態では、後述の表示部108と操作部との少なくとも一部が一体であり、例えば、画面の出力とユーザからの操作の受け付けとを同一の画面において行うものとする。
CPU103は、システム制御部であり、プログラムの実行またはハードウェアの起動などのように情報処理装置101の全体を制御する。ROM104は、CPU103が実行する制御プログラム、データテーブル、組み込みオペレーティングシステム(以下、OSという。)、およびプログラムなどのデータを格納する。本実施形態では、ROM104に格納されている各制御プログラムは、ROM104に格納されている組み込みOSの管理下で、例えば、スケジューリング、タスクスイッチ、および割り込み処理などのソフトウエア実行制御を行う。
RAM105は、SRAM(Static Random Access Memory)またはDRAM(Dinamic Random Access Memory)などで構成される。なお、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内のアクセスポイント(不図示)に接続可能である。つまり、本実施形態では、プリンター151内の通信部156が、アクセスポイントとして動作することが可能である。なお、アクセスポイントは一例であり、通信部156がIEEE802.11シリーズに準拠した無線通信を行う際の親局として動作すればよい。例えば、Wi-Fi(WirelessFidelity)(登録商標)ダイレクトのグループオーナとして動作してもよい。通信部109とプリンター内のアクセスポイントとが接続することで、情報処理装置101およびプリンター151は、相互にダイレクト無線通信が可能となる。なお、通信部109は、無線通信でプリンター151とダイレクト通信してもよいし、外部に存在する外部アクセスポイント(アクセスポイント131)を介して通信してもよい。また、無線通信方式としては、例えば、Wi-Fi(登録商標)に限らず、Bluetooth(登録商標)などでもよい。また、外部のアクセスポイント131としては、例えば、無線LANルーターなどの機器などが挙げられる。本実施形態において、情報処理装置101とプリンター151とが外部のアクセスポイント131を介さずにダイレクトに接続する方式をダイレクト接続方式という。また、情報処理装置101とプリンター151とが外部のアクセスポイント131を介して接続する方式をインフラストラクチャー接続方式という。なお、情報処理装置101とプリンター151とは、USBケーブルなどの有線で接続される形態でもよい。
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を有する。これらは、システムバスを介して互いに接続されている。図1(b)は、プリンター151の外観を示す概略図である。図1(b)に示すように、プリンター151には、印刷対象を挿入するための空間である印刷対象挿入部158が設けられている。図1(b)では、印刷対象挿入部158に、ユーザが自身の手を入れている様子を示している。このように、本実施形態において、印刷対象挿入部158には、人間の手が挿入されることを想定している。また、本実施形態において印刷対象は、爪である。印刷対象挿入部158には指を載せるための4本レールが搭載されており、1~4本の指を挿入することができる。レールが上昇することで印刷に最適な高さに爪の高さを調整することが可能である。この上昇動作はネイルアプリからの指示で実行される。なお本実施形態では手の爪を印刷対象とする例を示すが、手に限らず足の爪を印刷対象としてもよい。
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は、情報処理装置101などの外部装置とダイレクト接続方式にて無線通信するためのアクセスポイントとして動作可能である。本実施形態においては、このアクセスポイントとして動作する通信部156は、情報処理装置101の通信部109と接続可能である。通信部156は、無線通信で情報処理装置101とダイレクトに通信してもよいし、外部のアクセスポイント131を介して通信してもよい。なお、通信部156が外部のアクセスポイント131とインフラストラクチャー接続方式にて接続する場合、通信部156が子局として動作し、外部のアクセスポイント131が親局として動作することとなる。また、通信部156は、アクセスポイントとして機能するハードウェアを備えていてもよいし、アクセスポイントとして機能させるためのソフトウエアにより、アクセスポイントとして動作してもよい。
撮影部157は、撮影機能を有するデバイスである。撮影機能をもつデバイスは、プリンター151に付属及び設置されている。撮影部157は、印刷対象挿入部158に挿入される印刷対象(爪)を含む所定の領域を撮影し、撮影した画像(静止画または動画)をリアルタイムに情報処理装置101に送る機能を有する。本実施形態では、撮影部157は、動画および静止画を撮影するものである。撮影機能を有するデバイスは、少なくともレンズおよびイメージセンサーにより構成されるカメラモジュールである。レンズは、印刷対象挿入部158に挿入される印刷対象を写してイメージセンサー上に結像する。イメージセンサーは、レンズが写した光をCPU154が処理できる電気信号に変換する。このような機能を有していれば、撮影機能を有するデバイスとしてスマートフォン、携帯端末、またはデジタルカメラなどが代用して用いられてもよい。プリントエンジン155は、印刷対象挿入部158に挿入された印刷対象に対して印刷を行う。
なお、プリンター151には、外付けHDDまたはSDカードなどのメモリが装着されてもよく、プリンター151に保存される情報は、当該メモリに保存されてもよい。また、図1に示す構成は、一例に過ぎず、情報処理装置101およびプリンター151には、これ以外の構成も含み得るが、ここでの説明は省略する。
<用語の定義>
次に、本実施形態で使用する用語を説明する。本実施形態は、主に爪にネイルアートを印刷する形態である。また、本実施形態は、片方の手の各爪にネイルアートを施す(印刷する)形態である。一般的に、各爪に施されるネイルアートは、同一のコンセプトであるが、個々の爪に施されるネイルアートは、完全に同一のネイルアートではない場合がある。例えば、デザインAのネイルアートセットには、10個のネイルアート(10本の各爪に対応するネイルアート)が含まれており、その10個のネイルアートは、相互に共通のデザインコンセプトのものであるが、完全に同一の模様などになっていないことがある。以上の点を踏まえて、本実施形態では、以下のように用語を扱うものとする。
・「ネイル画像データ」:1つの爪に施されるネイルアートの画像データのことである。
・「ネイルアートデータ」:複数のネイル画像データの集合体の画像データである。つまり、ネイルアートデータは、複数のネイル画像データのデータセットともいえる。典型的には、右手、左手合わせて10本の爪のネイルアートに対応する各ネイル画像データの画像を集約した画像データである。ネイルアートデータは、10本の各ネイル画像データが集まったデータ(つまり、10個の画像データのセット)でもよいし、10本の各ネイル画像データを合成して1つの画像とした画像データでもよい。尚、ネイルアートデータは、片方の手の5本の爪のネイルアートに対応する各ネイル画像データのデータセットであってもよい。
このように、本実施形態では、「ネイル画像データ」と称する場合、個別の爪のネイルアートの画像のデータを指し、ネイルアートデータと称する場合、10本分(または5本分)のネイルアートの画像のセットのデータのことを指すものとする。また、ネイル画像データに対応する画像を、ネイル画像またはオブジェクト画像ともいう。
<ネイルアートの印刷の概要>
本実施形態では、情報処理装置101のCPU103が、ROM104または外部記憶装置106に記憶されているネイルアプリのプログラムを実行することで、ネイルアプリを起動する。そして、ネイルアプリを用いることで、ユーザは、自身が選択したネイルアートデータのネイル画像データを印刷領域に反映して、爪にネイルアートを印刷することができる。つまり、以下の一例の動作がネイルアプリを用いて行われる。(1)ユーザが、アプリケーション上でネイル画像データのセット(すなわち、ネイルアートデータ)を選択する。(2)アプリケーションが、ネイルプリンターの内部にあるカメラを起動する。(3)アプリケーションは、ネイルプリンターから送信されたカメラ画像を表示する。(4)ユーザが、ネイルプリンターに手を挿入する。(5)アプリケーションがカメラ画像から爪の領域を検出し、ネイルアートを印刷する印刷領域を設定する。(6)アプリケーションは、設定した印刷領域に、ネイルアートデータに含まれるネイル画像データを反映させる。例えば、アプリケーションは、印刷領域に重ねてネイル画像データを表示させる。(7)アプリケーションは、設定した印刷領域がユーザによって調整される場合、印刷領域を編集する。(8)アプリケーションは、反映されたネイル画像データを用いてネイルプリンターに印刷を実行させる。
本実施形態では、上記の(5)および(6)の工程において、検出された爪の領域から爪の傾き方向(カメラ画像の水平線または垂直線に対する傾き方向)を検出する。そして、ネイルアートデータの挿入方向(回転方向)と爪の傾き方向とを合わせて反映する形態を説明する。即ち、撮影画像に含まれる所定の領域(爪の領域)にオブジェクト(ネイル画像)を反映する際に、オブジェクトを反映する傾き(回転角度)を適切に決定して、オブジェクトを反映する例を説明する。なお、プリンター151に手を入れるユーザと、アプリケーションを操作するユーザは、同一のユーザであっても良いし、異なるユーザであっても良い。
また、ネイルプリンターを利用する場合、ネイルアートをより精彩に印刷するために、あらかじめユーザの爪にジェル状の液体を塗布することが行われる。以下、この液体をベースコートと呼ぶ。ネイルアートを爪に印刷する際には、既に爪にベースコートが塗布されていることが一般的である。本実施形態では、上記の(4)の時点で、ユーザの爪にはベースコートが塗布されているものとする。
<ネイルアプリのユーザインターフェース>
理解を容易にするために、ネイルアプリで表示されるユーザインターフェース(以下、UIという)画面を先に説明することにする。以下で説明するUI画面は、ネイルアプリを実行するCPU103によって、表示部108に表示されるものである。また、入力インターフェース102は、表示部108と一体となった操作部として機能するものとして説明する。本実施形態におけるネイルアプリのUI画面は、大きく3種類存在する。第一UI画面は、図2に示すネイルアートデータの選択画面である。第二UI画面は、図3に示すネイル画像データ設定画面である。第三UI画面は、図4に示す印刷データ作成画面である。以下、各画面を用いてネイルアプリのUI画面を説明する。
図2は、ネイルアートデータの選択画面201を示すUI画面(第一UI画面)を説明する図である。図2に示すネイルアートデータの選択画面201は、ネイルアートデータ表示領域202と、ネイルアートデータ決定ボタン204とを有する。
ネイルアートデータ表示領域202には、各爪に印刷するネイルアートの各デザインコンセプトに対応したネイルアートデータが複数表示される。具体的には、図2の画面上では、ネイルアートデータ203が4つ分表示されている。1つのネイルアートデータ203には、親指、人差し指、中指、薬指、小指のそれぞれの左手および右手の爪に対応する10種類のネイル画像データが含まれている。ユーザは、1つまたは複数のネイルアートデータ203を選択できる。ユーザは、選択したネイルアートデータ203を解除することもできる。ユーザがネイルアートデータ203を選択または解除する方法の一例として、ユーザがネイルアートデータ203を1回タップすることでネイルアートデータ203を選択することができる。また、選択済みのネイルアートデータ203をユーザがもう一度タップすると、選択状態を解除することができる。
ネイルアートデータ決定ボタン204は、ユーザがネイルアートデータ表示領域202から1つまたは複数のネイルアートデータ203を選択した後に押下することで、図3に示すネイル画像データ設定画面301に遷移させる機能を有する。
なお、本実施形態では、各種のボタンを操作する際には「押下」と称し、各領域を操作するときは、タッチパネルの操作であるとして、「タップ」、「タッチ」、「ピンチイン」、「ピンチアウト」などと説明するが、これらは例示に過ぎない。例えば、タッチパネル上の各種のボタンをタッチすることで各種のボタンの押下動作が実現されてもよい。また、各領域の操作は、例えばマウスなどを用いたカーソル操作によって各領域の操作が行われてもよい。また、入力インターフェース102が各種の方向指示ボタンを備えており、その方向指示ボタンによって各領域の操作が行われてもよい。
図3は、ネイル画像データ設定画面301を示すUI画面(第二UI画面)を説明する図である。図3に示すネイル画像データ設定画面301は、ネイルアートデータ表示領域302と、左手プレビュー領域303と、右手プレビュー領域304と、選択モード切り替えボタン305と、選択解除ボタン306と、設定完了ボタン307を有している。
ネイルアートデータ表示領域302は、ユーザがネイルアートデータの選択画面201で選択したネイルアートデータを表示する領域である。
左手プレビュー領域303および右手プレビュー領域304は、親指から小指まで計5つの爪設定領域308をそれぞれ保持している。ユーザがネイルアートデータ表示領域302からネイルアートデータまたはネイル画像データを選択することで、左手プレビュー領域303および右手プレビュー領域304の爪設定領域308にネイル画像データを設定することができる。なお、図3における手のプレビュー画像は、予め用意された画像を想定し、爪設定領域308も予め設定された領域を想定しているが、これに限られない。ユーザがプリンター151の印刷対象挿入部158に手を挿入することで撮影された画像でもよく、この場合、爪設定領域308も、撮影された画像において検出された爪領域としてもよい。
選択モード切り替えボタン305は、左手プレビュー領域303および右手プレビュー領域304が保持する爪設定領域308に設定するネイルアートデータまたはネイル画像データを選択する方法を切り替えるボタンである。一括選択モードがONになっている場合、ユーザがネイルアートデータ表示領域302から選択したネイルアートデータを、左手プレビュー領域303および右手プレビュー領域304が保持する爪設定領域308に一括で反映することができる。一括選択モードがOFFになっている場合、ユーザがネイルアートデータ表示領域302から選択したネイル画像データを、左手プレビュー領域303または右手プレビュー領域304が保持する爪設定領域308のいずれかに設定することができる。
選択解除ボタン306は、既に左手プレビュー領域303および右手プレビュー領域304が保持する爪設定領域308に1つでもネイル画像データを設定している場合に選択できるボタンである。選択解除ボタン306を押下すると、設定されているすべてのネイル画像データが解除される。
設定完了ボタン307は、左手プレビュー領域303および右手プレビュー領域304が保持する爪設定領域308に、ユーザが1つでもネイル画像データを設定している場合に選択できるボタンである。設定完了ボタン307が押下されると、図4に示す印刷データ作成画面401に遷移する。
図4は、印刷データ作成画面401を示すUI画面(第三UI画面)を説明する図である。図4に示す印刷データ作成画面401は、設定データ表示領域402と、印刷対象表示領域403と、プリンター検索ボタン404と、プリンター名表示領域405とを有している。また、撮影ボタン406と、プレビュー領域407と、印刷領域設定ボタン408と、印刷ボタン410とを有している。プレビュー領域407には、後述する印刷領域409が含まれる。
設定データ表示領域402は、図3に示すネイル画像データ設定画面301で設定したネイル画像データを、左手のデータおよび右手のデータのように、最大4つに分けて表示する領域である。本例では、設定データの分け方として、左手の人差し指、中指、薬指、小指の4本で1つ、左手の親指で1つ、右手の人差し指、中指、薬指、小指の4本で1つ、右手の親指で1つの組み合わせで表示する例を示している。図4の設定データ表示領域402では、左手および右手のすべての爪にネイル画像データが設定されている場合の表示を示している。即ち、設定データ表示領域402(a)には、設定されている左手の人差し指、中指、薬指、および小指のネイル画像データが示されている。設定データ表示領域402(b)には、設定されている左手の親指のネイル画像データが示されている。同様に、設定データ表示領域402(c)には、設定されている右手の人差し指、中指、薬指、および小指のネイル画像データが、設定データ表示領域402(d)には、設定されている右手の親指のネイル画像データが、それぞれ示されている。尚、1つの設定データ表示領域には、4つのネイル画像データをいれるスロットが設けられている。設定データ表示領域のそれぞれに設定されたネイル画像データのそれぞれを総称して設定データともいう。
印刷対象表示領域403は、各設定データ表示領域402(a)~(d)が、どの爪の設定データ表示領域であるかを示す最大4つのアイコン群である。印刷対象表示領域403は、設定データ表示領域402と同様に、左手の人差し指、中指、薬指、および小指の4本で1つ、左手の親指で1つ、右手の人差し指、中指、薬指、および小指の4本で1つ、右手の親指で1つの組み合わせで表示されている。図4の印刷対象表示領域403では、左手および右手のすべての爪にネイル画像データが設定されている場合の表示を示している。即ち、印刷対象表示領域403(a)には、左手の人差し指、中指、薬指、および小指を印刷対象として表示している。同様に、印刷対象表示領域403(b)には、左手の親指を、印刷対象表示領域403(c)には、右手の人差し指、中指、薬指、および小指を、印刷対象表示領域403(d)には、右手の親指を、印刷対象としてそれぞれ表示している。
プリンター検索ボタン404は、ユーザによって押下されると、ネイルアプリと通信可能なプリンター151を検索する機能を実施するためのボタンである。検索の結果、プリンター151が発見された場合、ネイルアプリは、発見したプリンター151を特定する情報を表示する。発見したプリンター151を特定する情報はリスト表示され、ユーザはリストから任意のプリンター151を1つ選択することができ、選択されたプリンター151の名前は、プリンター名表示領域405に表示される。尚、プリンターのリストは、プリンター検索ボタン404を押下した場合以外に表示されてもよい。例えば、プリンター151が未登録の状態で印刷データ作成画面401に遷移した場合、ネイルアプリが、自動でプリンター151を検索し、プリンターのリストを表示することができる。
撮影ボタン406は、ユーザによって押下されることでプリンター名表示領域405に表示されたプリンター151と通信し、プリンター151の撮影部157で撮影された動画をリアルタイムで受け取ってプレビュー領域407に表示するためのボタンである。本実施形態では、印刷対象挿入部158に人間の手を入れることを想定している。このため、例えばユーザが片方の手を入れて、他方の手で、撮影ボタン406を押下することで、爪を含むユーザの手先の画像がプレビュー領域407にリアルタイムで表示される。プレビュー領域407に動画を表示するのは撮影ボタン406を押下したときだけでなく、プリンター151が既に登録されている状態で印刷データ作成画面401に遷移したときでもよい。この場合、ネイルアプリは、印刷データ作成画面401遷移時にプリンター151と通信し、プリンター151と通信可能である場合に、プリンター151の撮影部157で撮影された動画を受け取ることができる。尚、この使い方は一例であり、例えば、ネイルサロンの利用客が片方の手を入れて、ネイルサロンの従業員がUI画面301上で撮影ボタン406を押下してもよい。
印刷領域設定ボタン408は、プレビュー領域407に動画が表示されているときにユーザによって押下されることで、印刷領域409を設定する領域設定モードに移行するためのボタンである。
図5は、印刷領域設定ボタン408が押下されたことに応じて、ネイルアプリが印刷領域409を設定可能な領域設定モードに遷移し、動画または静止画から爪の領域を自動検出して、印刷領域409を設定する例を説明する図である。印刷領域409は、ネイル画像データを反映する対象の領域となる矩形領域(点線で示す)である。ネイル画像データは、爪であるオブジェクトを内包する矩形の画像データである。爪以外の部分は、所定の背景色(例えば白)であってもよいし、透過データになっていてもよい。図5では、既に4本の指の印刷領域409が設定されており、これらの印刷領域409にそれぞれのネイル画像データが反映された結果を示した図になっている。図5を用いて、本実施形態における爪の領域を自動検出する方法の一例を説明する。
具体的には、まず、ユーザは、印刷領域設定ボタン408を押下してプレビュー領域407を領域設定モードにする。そして、ネイルアプリは、撮影部157からユーザの爪を含む手の静止画を取得して、その静止画から爪の領域を自動検出する。そして印刷領域409を設定する。自動検出された爪の領域のことを爪領域という。印刷領域409は、爪領域を少なくとも包含する矩形領域である。爪領域を自動的に検出する方法の一例として、例えば撮影した静止画において所定の色値の画素を爪領域として検出することができる。また、撮影した静止画に対してエッジ検出処理を行い、その結果得られた情報を用いてもよい。あるいは、機械学習で生成した学習モデルを使用して爪領域を決定してもよい。ここで使用する学習モデルは、爪を含む静止画を入力すると、入力された静止画に対応する爪領域を出力する学習モデルである。ネイルアプリは、検出した爪領域を含む矩形領域を、自動的に印刷領域409として設定する。
ネイルアプリは、印刷領域409の設定後に、設定データ表示領域402から、ユーザが選択したネイル画像データを自動的に印刷領域409に挿入(反映)する。ここで、印刷領域409は、爪領域によって定まる爪の傾き方向に合わせて設定されている。このため、プレビュー領域407において印刷領域409が傾いている場合がある。この場合、設定データ表示領域402のネイル画像データを印刷領域409に反映させる際に、ネイル画像データの傾き方向と印刷領域409の傾き方向とを合わせる必要がある。即ち、ネイル画像データを印刷領域409の傾き方向に併せて回転させたうえで、印刷領域409に反映させる必要がある。本実施形態においては、図6に示す方法を用いて、ネイル画像データの傾き方向と印刷領域409の傾き方向とを合わせる処理が行われる。
図6は、本実施形態において、ネイル画像データの傾き方向を印刷領域409の傾き方向に合わせる例を説明する図である。前述したように、印刷領域409(図6では不図示)は、検出した爪領域600を包含している。そこで、本実施形態では、爪領域600が示す爪が延在する方向に応じて、印刷領域409に挿入するネイル画像データの傾き方向を合わせる。図6では、一本の指の領域を例に挙げて説明する。
図6において、ネイルアプリは、まず爪領域600を形成する点の座標のうち、最上部601・最下部602、最左部603、および最右部604の座標を特定する。尚、ここでは図6に示すように静止画のxy平面において爪の先端がある側を上部とし、指の付け根がある側を下部としているが、上下および左右の少なくとも一方が逆になっていてもよい。x軸は、静止画における水平方向(水平線の方向)を指し、y軸は、静止画における垂直方向(垂直線の方向)を指すものとする。本例では、図6に示すように、横軸をx(右が正方向)、縦軸をy(上が正方向)とする。この場合、爪領域600を形成する点は、全て座標(x、y)の形で表すことができる。図6では、y座標が最大の点が最上部601、y座標が最小の点が最下部602、x座標が最小の点が最左部603、x座標が最大の点が最右部604となる。
次に、ネイルアプリは、特定した全ての座標を通り、爪領域600を内包する矩形605を作成する。矩形605は、爪領域600を全て含む(完全に内包する)ように作成される。この矩形605は、印刷領域409とは異なる。印刷領域409は、印刷用のマージンを含めた矩形領域であり、矩形605は、そのようなマージンがなく、爪領域600に接する領域となっている。尚、本例では、矩形605と印刷領域409とが異なるものとして説明するが、両者が結果として同じ領域を指してもよい。次に、ネイルアプリは、作成した矩形605を構成する辺の1つを利用し、座標軸に対するその辺の傾き606(回転角度)を決定する。印刷領域409に挿入されるネイル画像データは、座標軸に垂直および水平な画像のデータである。このため、座標軸に対する矩形605の辺の傾きが決定できれば、ネイル画像データを挿入する際の傾きも決定することができる。y軸に対する傾きを決定する場合は、ネイルアプリは、傾き606の決定に使用する辺として、矩形605の左辺または右辺を使用する。図6は、矩形605の右辺を使用して傾き606を決定する場合の例を示している。ネイルアプリは、このようにして決定した傾き606を、ネイル画像データを挿入する挿入方向(回転方向)とする。ネイルアプリは、ネイル画像データを挿入する方向を決定すると、その方向で印刷領域409にネイル画像データを表示する。即ち、決定した傾き方向に合わせてネイル画像データを回転処理し、回転させたネイル画像データを印刷領域409に重ねて表示する。ネイル画像データの回転処理は、アフィン変換など公知の手法を用いればよい。尚、ここではy軸に併せて傾きを決定する例を説明したが、x軸に併せて傾きを決定してもよい。
以上説明したように、本実施形態では、検出した爪領域600の上下左右の端部の点を用いて爪領域の傾き方向を決定する処理が行われる。このような処理によれば、ベースコートを塗布した爪であっても爪領域600の傾き方向(または延在方向)を検出することができる。この結果、ネイル画像データの傾き方向と印刷領域409の傾き方向とを適切に合わせることが容易に可能となる。このため、適切な傾きで爪に施術(印刷)が行われることになる。プリンター151を使用してネイルアートを爪に施術する場合、ベースコートを塗布した状態で爪の領域を検出することが一般的である。このため、本実施形態による処理は、多くの場面で有用となる。また、本実施形態では、ユーザが、ネイル画像データの傾き方向と印刷領域409の傾き方向とを合わせるためにプレビュー領域407上で操作しなくてよい。このため、ユーザビリティも向上する。また、例えば4本の爪全てにネイル画像データを反映する場合、印刷領域409の傾きは全て異なる可能性がある。本実施形態の処理を行わない場合、ユーザは、それぞれの印刷領域409の傾きに合うようにネイル画像データを回転操作させる必要がある。本実施形態によれば、これらの操作を省略することができるので、操作性を向上させることができる。
尚、図6で説明した例では、爪領域600を内包する矩形605が一意に定まる例を説明したが、矩形605が一意に定まらない場合、即ち、矩形が複数作成される場合がある。この場合、作成された複数の矩形605の中から任意の1つを選択することで矩形の辺の傾きを決定してよい。任意の1つを選択する方法としては、各種方法があるが、いずれの方法でもよい。例えば、複数の矩形605のうち、傾きの最も大きいものを選択する方法でもよいし、傾きの最も小さいものを選択する方法でもよい。また、傾きの最大値および最小値から中央値を決定し、その中央値を傾きとして採用してもよい。さらに、作成された複数の矩形605から傾きの平均値を計算し、その計算結果を傾きとして採用してもよい。ネイル画像データの傾き方向と爪領域600(印刷領域409)の傾き方向とを可能な限り一致させることでも、上述した各種効果を同様に得ることができる。
図7は、ネイル画像データの傾き方向を印刷領域409の傾き方向に合わせる他の例を説明する図である。図7は、図6に示す方法では、爪領域600を内包する矩形605を一意に定めることができなかった場合の別の例を説明する図である。図7では、まず、爪領域700を形成する点の座標のうち、最上部701、最下部702、最左部703、および最右部704の座標を特定する。図7の例では、この特定した座標を全ての座標を通り、爪領域を内包する矩形が作成できないものとする。このため、次に、ネイルアプリは、最上部701および最下部702をそれぞれ通り、プレビュー領域407と水平な直線705および直線706を作成する。また、最左部703および最右部704をそれぞれ通り、プレビュー領域407と垂直な直線707および直線708を作成する。この4つの直線705~708により形成される矩形709を左回りに同じ回転量で少しずつ回転させていく。このとき、回転させた後の矩形709を構成する直線705~708は常に座標701~704を通るものとする。このように、直線705~708を回転させていき、回転させた直線を4辺とする矩形709が最初に印刷領域409を内包しない場合、回転を再度行う。回転させた直線を4辺とする矩形709が最初に印刷領域409を内包した時点で回転を止める。この時点の矩形709の傾きを構成する辺の1つを利用し、座標軸に対するその辺の傾きを決定する。傾きの決定に使用する辺は、y軸に対する傾きを決定する場合は、矩形709の左辺707または右辺708を使用する。このようにして決定した傾きを、ネイル画像データを挿入する方向とする。ネイル画像データを挿入する方向が決定したら、その方向で印刷領域409にネイル画像データを表示する。尚、本例では、指が左側に傾いているので、左回りに回転させているが、傾きの方向に応じて回転方向を変えてよい。
図7で説明した方法によっても、ネイル画像データの傾き方向と印刷領域409の傾き方向とを可能な限り一致させることができる。このため、図6で説明した各種効果を同様に得ることができる。
尚、図4~図6で説明したプレビュー領域407には、撮影部157で撮影された画像が加工されずに表示される例を示している。これらの例と異なり、プレビュー領域407には、撮影部157で撮影された画像を加工した画像が表示される場合がある。この結果、プレビュー領域407に表示されている印刷領域409が、実際に作成する印刷データとは異なる方向で表示されている場合がある。図8を用いて説明する。
図8は、プレビュー領域407の他の表示例を示す図である。図8は、撮影部157で撮影された画像を加工して表示した例を示している。具体的には、撮影部157で撮影された画像を、各指の領域ごとに切り取り、各指をプレビュー領域407において垂直に表示している。即ち、図8の例では、印刷領域409を構成する直線が、常にプレビュー領域407と水平・垂直に表示される。
図8に示すプレビュー領域407の場合、ネイル画像データを常に一定方向で確認できるなどのメリットがある。このようなケースにおいては、印刷領域409に反映されるネイル画像データの傾き方向は、プレビュー領域407に表示されている印刷領域409の方向に合わせるのではなく、実際の印刷データに対する印刷領域の方向に合わせる必要がある。そこで、図8に示すプレビュー領域407を表示する場合、プレビュー領域407にネイル画像データを反映する際は、ネイル画像データをそのままの方向で反映する。その一方、印刷データ生成時には印刷データを本来の印刷領域の傾きに合わせる必要があるので、図6~図7で説明した方法により、ネイル画像データの傾きを決定する。このように得られた傾きを用いることで、印刷データにおいても、ネイル画像データの傾き方向と印刷領域の傾き方向とを合わせることができる。このため、プレビュー領域407に表示されている印刷領域409が、実際の印刷データの方向と異なっている場合であっても、ネイル画像データを適切な方向で印刷データの印刷領域に反映させることができる。
また、本実施形態では、ネイル画像データを印刷領域409の方向に合わせて挿入する際に、ネイル画像データの大きさも印刷領域409に合わせて変更することができる。例えば、印刷領域409にネイル画像データの全体が入るように拡大または縮小してネイル画像データを反映(挿入)することが考えられる。また、ネイル画像データ内の特定部分が印刷領域409に入るように拡大または縮小してもよい。このように、ネイル画像データの方向だけでなく、ネイル画像データの大きさも印刷領域409に合わせて補正することができる。尚、ネイル画像データを印刷領域409に拡大または縮小して反映する際に、アスペクト比が異なる場合には、ネイル画像データを拡大または縮小した後に、印刷領域409に満たない部分には、所定の画素で埋めればよい。あるいは、印刷領域409を超えた部分の画像をトリミングするなどしてもよい。
尚、ユーザは、自動的に設定された印刷領域409の大きさを自由に編集することができる。また、ユーザは、設定した印刷領域409を削除することもできる。ユーザがネイルアートを施したい爪は、手の全ての指の爪である場合もあれば、一部の指の爪である場合もあり得る。このため、本実施形態では、ユーザが、自動的に設定された印刷領域409を手動で編集することが可能となっている。また、本実施形態において画像を反映する印刷対象の領域である印刷領域409は、ユーザの爪を想定している。このため、設定されている印刷領域409の大きさは、各々異なるサイズとなり得る。本実施形態では、プリンター151内にユーザが手を挿入して、実際の爪の画像を確認しながら、印刷領域409を設定することで適切な爪の位置にネイルアートを印刷することができる。なお、ネイルアプリは、一度設定した印刷領域409を、画像認識処理などによって追従させてもよい。例えば、印刷領域409を設定した後に、プリンター151内で指(または爪)の位置がずれた場合には、ネイルアプリは、設定された印刷領域409の画像領域を追従して、自動的に印刷領域409が変わってもよい。
図4に戻り、印刷データ作成画面401の説明を続ける。印刷データ作成画面401における印刷ボタン410は、印刷開始を指示するボタンである。印刷ボタン410が押下されると、ネイルアプリは、爪に印刷するための印刷データを、印刷領域409に反映されたネイル画像データを元に作成する。そして、ネイルアプリは、作成した印刷データを、プリンター名表示領域405に表示されたプリンター151に送信する。図4に示す例では、印刷データは、プレビュー領域407から4つの印刷領域409を抽出して作成される。印刷データを作成する際に、図8で説明した例のように、ネイル画像データの傾きをプレビュー領域に表示されている傾きから変更する必要がある場合は、ネイルアプリは、傾きの変更を反映して印刷データを作成する。プリンター151は、ネイルアプリから送られた印刷データを基に爪に印刷する。
<情報処理装置の構成>
図9は、上述した機能を実現するための情報処理装置101の機能ブロックの一例を示す図である。情報処理装置101は、ネイルアプリ900を備えている。ネイルアプリ900は、情報処理装置101のCPU103が、ROM104または外部記憶装置106に記憶されているネイルアプリ900のプログラムを実行することで、CPU103にネイルアプリ900の機能を実行させることが可能となる。ネイルアプリ900は、表示制御部910を有する。表示制御部910は、図2に示すネイルアートデータの選択画面201、図3に示すネイル画像データ設定画面301、および図4に示す印刷データ作成画面401を含む各UI画面を、表示部108に表示させる機能を有する。また、表示制御部910は、入力インターフェース102の機能を有しており、ユーザから入力される操作指示に応じて各種の制御を行う。
表示制御部910は、ネイルアートデータ選択受付部911、ネイル画像データ設定部912、撮影指示部913、画像表示制御部914、爪検出部915を有する。また、印刷領域設定部916、反映データ受付部917、反映実行部918、および印刷指示部919を有する。
ネイルアートデータ選択受付部911は、図2に示すように、ユーザからのネイルアートデータ203の選択を受け付け、選択されたネイルアートデータ203を取得する。ネイル画像データ設定部912は、図3に示すように、ユーザが左手プレビュー領域303および右手プレビュー領域304の爪設定領域308に設定したネイル画像データを取得する。撮影指示部913は、図4の撮影ボタン406の押下またはプリンター151が登録されている状態での印刷データ作成画面401への遷移を検知し、プリンター151に動画の撮影を指示する。画像表示制御部914は、プリンター151から送信された動画の画像データを、プレビュー領域407に表示する。
爪検出部915は、爪検出処理をおこない、検出した爪領域600を出力する。印刷領域設定部916は、爪検出部915による爪領域600の検出結果を用いて、プレビュー領域407上に印刷領域409を設定する。反映データ受付部917は、設定データ表示領域402においてユーザが選択したネイル画像データと印刷領域409との対応付けを行い、ユーザが設定データ表示領域402から印刷領域409に選択したネイル画像データを受け付ける。反映実行部918は、設定データ表示領域402からユーザが選択したネイル画像データを、対応する印刷領域409に反映させる。このとき、ネイル画像データは、印刷領域409の傾き方向に合わせて反映(挿入)される。尚、図8で説明したように、プレビュー領域407の画像が、印刷領域409に傾きが発生していない画像である場合、プレビュー表示される印刷領域409には、設定されたネイル画像データを傾けずに表示する。
印刷指示部919は、印刷領域409に反映されたネイル画像データを含む印刷データを作成し、作成した印刷データをプリンター151に送信する。印刷領域409の方向に合わせて傾けた状態でネイル画像データが反映されている場合には、回転したネイル画像データを含む印刷データが作成される。尚、図8で説明したように、プレビュー領域407に表示されているネイル画像データと実際の印刷データでは、ネイル画像データの傾きを変える必要がある場合、印刷データ生成時に適切な傾きになるように補正した印刷データを作成する。
<処理の流れ>
図10は、本実施形態の処理の一例を示すシーケンス図である。図10のネイルアプリ900の処理は、情報処理装置101のCPU103がROM104または外部記憶装置106に記憶されているプログラムコードをRAM105に展開し実行することにより行われる。あるいはまた、図10におけるステップの一部または全部の機能をASICまたは電子回路などのハードウェアで実現してもよい。なお、各処理の説明における記号「S」は、当該シーケンスにおけるステップであることを意味する。図10においては、ユーザがネイルアプリ900を起動し、ネイルアプリ900の制御によって、印刷対象挿入部158に挿入された爪にプリントエンジン155がネイルアートを印刷する流れを説明する。
まず、ユーザは、ネイルアプリ900を起動する。S1001で表示制御部910は、図2に示す選択画面201を表示する。ネイルアートデータ選択受付部911は、選択画面201のネイルアートデータ表示領域202から1つまたは複数のネイルアートデータ203の選択を受け付ける。ユーザが、1つまたは複数のネイルアートデータ203を選択後、ネイルアートデータ決定ボタン204を押下すると、表示制御部910は、ボタン押下を検知し、図3に示すネイル画像データ設定画面301を表示部108に表示する。
図3に示すネイル画像データ設定画面301が表示部108に表示されると、ユーザが選択したネイルアートデータがネイルアートデータ表示領域302に表示される。S1002でネイル画像データ設定部912は、ユーザが選択したネイル画像データを爪設定領域308に設定する。これにより、各爪設定領域308とネイル画像データとの対応付けが行われる。
ユーザが設定完了ボタン307を押下すると、表示制御部910は、ボタン押下を検知し、図4に示す印刷データ作成画面401を表示部108に表示する。
図4に示す印刷データ作成画面401が表示部108に表示されると、印刷データ作成画面401中の設定データ表示領域402に、S1002でユーザによって設定された1つまたは複数のネイル画像データが表示される。
プリンター151が登録されていない場合は、ネイルアプリ900は、ネイルアプリ900と通信可能なプリンター151を検索する。表示制御部910は、検索結果を示すプリンターリストを表示部108に表示する。プリンターリストが表示部108を表示されると、ユーザは、プリンター151を指定する。S1003において表示制御部910は、ユーザによって指定されたプリンター151を選択する。
S1004において撮影指示部913は、S1004で選択されたプリンター151と通信する。そして、ネイルアプリ900は、プリンター151に対して、撮影部157による撮影を指示する。なお、S1004において、ネイルアプリ900が、プリンター151に対してカメラ起動ジョブを送信してもよい。そして、プリンター151は、このカメラ起動ジョブの受信に基づいて、撮影部157を起動して撮影を開始してもよい。
S1005においてプリンター151は、撮影部157で撮影している動画をネイルアプリ900に送信する。この動画は、図4に示す印刷データ作成画面401のプレビュー領域407に表示される。撮影部157で撮影された動画は、ほぼリアルタイムでプレビュー領域407に表示される。この時点においてユーザの手が既に挿入さている場合、プレビュー領域407には、印刷対象挿入部158に挿入されたユーザの指先の動画が表示されている状態となる。
ユーザは、設定データ表示領域402の中から、爪に印刷するネイル画像データ(設定データ)を1つ選択する。S1006において反映データ受付部917は、ユーザから、1つのネイル画像データの選択を受け付ける。表示制御部910は、ユーザによって選択されたネイル画像データをハイライト表示する。
ユーザは、S1007において、印刷するプリンター151に設けられた印刷対象挿入部158にユーザの手を挿入する。このとき、ネイル画像データをより精彩に印刷するために、あらかじめユーザの爪にジェル状の液体(ベースコート)を塗布しておく。このベースコートの色は、複数存在し、例えば白、半透明などがある。また、ネイルアプリ900は、S1006の後に、プリンター151に手を挿入することをユーザに促すメッセージを表示してもよい。
S1005でプレビュー領域407に動画が表示され、S1006でネイル画像データの選択を受け付けている状態において、ユーザは、印刷領域設定ボタン408を押下する。ネイルアプリ900は、印刷領域設定ボタン408の押下を契機に印刷領域409の設定指示を受け付け、S1030の印刷領域設定処理を行う。S1030の印刷領域設定処理では、爪検出部915によって、プレビュー領域407上における爪領域600が自動で検出され、検出した爪領域600に基づいて印刷領域409が設定される。本フローチャートの説明では、設定可能な印刷領域409の数が予め所定値に規定されているものとする。本実施形態は、片手の人差し指、中指、薬指、および小指の爪の数に対応しているので、所定値は、「4」として規定されている。この所定値は、印刷対象挿入部158に搭載されたレールの本数および設定データに含まれるネイル画像データの数に対応する。本実施形態においては、ユーザが、この所定値と同じ数の印刷領域409を設定する形態を例に挙げて説明する。つまり、本実施形態では、印刷領域409が4つ設定されるものとする。
S1009において撮影指示部913は、静止画の撮影指示をプリンター151に送る。撮影指示には、撮影対象となる爪に対応するレール番号も含めて送る。例えば4本のレールを左から1~4の番号とした場合、左手の小指を撮影する際は「1」、左手の人差し指を撮影する際は「4」、右手の人差し指を撮影する際は「1」、右手の小指を撮影する際は「4」の番号を送る。尚、撮影指示部913は、静止画の撮影指示を送る代わりに、動画像のフレームを切り出して用いてもよい。
S1010においてプリンター151は、全てのレールを上昇させて、爪がプリンター151のプリントヘッドと近接する高さとなるように調整する。プリントヘッドに近接する高さに爪を配置することで、インクジェットプリンターであればプリントヘッドから吐出されるインクが確実に爪に着弾できるようにする。高さ調整にはプリンター151に搭載された可動型のレーザーセンサーが用いられる。レーザーセンサーをプリントヘッドと近接した高さに設置し、レーザーが遮断されないぎりぎりの高さまで爪の高さを上げるようにレールが制御される。爪の高さ調整では、爪のおおよその位置を把握した上でレーザーセンサーでの稼働範囲を爪の範囲に絞った方が指全体を可動範囲とするよりも効率的に高さ調整を行える。そのため、爪の高さ調整を行う前に事前に爪検出を行い、S1009の撮影指示と合わせて爪の位置情報をネイルアプリ900からプリンター151に送るようにするとよい。本実施形態では、このような事前の爪検出のことをプレ爪検出と呼ぶことにする。プレ爪検出を行う場合は、S1009の前にネイルアプリ900からプリンター151に撮影指示を送信する。プレ爪検出では爪の高さ調整は行わないため、送信する撮影指示には前述したレール番号は含まなくてよい。プリンター151は撮影指示を受信したら、撮影部157で静止画の撮影を行う。撮影が終了したら、プリンター151は撮影画像をネイルアプリ900に送信する。ネイルアプリ900は受信した撮影画像内の爪を検出し、検出した全ての爪の爪位置情報を保持しておき、S1009で撮影指示する際にレール番号と合わせて撮影対象の爪の位置情報をプリンター151に送信する。プリンター151は、受信した爪位置情報をもとに、レーザーセンサーの可動範囲を絞って爪の高さを調整する。
爪の高さ調整が終了したら、S1011で撮影部157は、静止画の撮影を行う。撮影が終了したらレールの高さを初期値に戻し、S1012でプリンター151はネイルアプリ900に撮影データを送信する。
S1013において、ネイルアプリ900は、受信した撮影画像から爪の領域を検出する。ここで検出した爪領域600に基づいて、印刷領域409が決定される。爪領域の検出の一手法として、爪に塗布したベースコートの白色を画像処理で検出する方法がある。具体的には撮影画像のRGB値から所定の閾値(例えばR>200、G>200、B>200)を超える画素を検出し、検出した領域を爪領域と判定する。爪検出の際に、指の下にあるレールを爪と誤検出しないように、レールは黒などの白以外の色にするとよい。またライトの反射で撮影画像が白飛びした部分を誤検知しないように、光が乱反射する素材でレールを構成するのが望ましい。また画像処理による検出ではベースコートが半透明の場合に検出が困難になるため、別の検出方法として機械学習を用いてもよい。機械学習で学習させる画像に、白または半透明のベースコートが塗布された爪画像を用いることで、白だけでなく半透明のベースコートであっても爪領域の検出が可能になる。機械学習では、用意した学習画像のどこに爪があるかを学習させていき、学習モデルを構築する。構築した学習モデルはネイルアプリ900に組み込まれ、CPU103またはGPU110によって処理され、撮影画像から爪領域を検出するのに利用される。肌の色および爪の形は個人によって異なるため、学習画像に多くの手のパターンを用意し学習させるとよい。機械学習には数多くのフレームワークが存在しており、既存のフレームワークを利用することで機械学習を実現することができる。
S1009からS1013のステップは撮影対象の爪の数だけ繰り返し行う。例えば、左手の小指から人差し指の4つの爪が対象になる場合、指ごとに撮影および爪検出を繰り返し行う。撮影画像は合計4枚になる。印刷領域設定部916が印刷領域409を設定する際は、各撮影画像から対象の爪が撮影された部分を切り出してプレビュー領域407に表示する。つまり、プレビュー領域407には切り出された4枚の爪画像が並べられて表示され、各爪画像に印刷領域409が設定される。尚、切り出された爪画像は、図5に示すように傾きを有して表示されてもよいし、図8に示すように傾きが補正されて表示されてもよい。また、ここでは個々の爪画像を撮影する例を説明したが、1枚の撮影画像から爪領域を検出してもよい。
印刷領域設定部916によって印刷領域409が設定された後、反映データ受付部917は、S1014において、印刷領域409に反映させる反映データとして、設定データに設定されている4種類のネイル画像データを受け付ける。そして、反映データ受付部917は、設定データに設定されている4種類のネイル画像データと設定された4つの印刷領域409との対応付けを行う。そして、反映実行部918は、この対応付けに基づいて印刷領域409に設定データを反映する。このS1014において、印刷領域409の傾き方向に合わせてネイル画像データが反映される。印刷領域409とネイル画像データの方向を合わせる際の処理フローは、図11を用いて後述する。ネイル画像データを印刷領域409に反映する際、印刷領域409の大きさに合わせてネイル画像データが反映される。
S1015において、ユーザは、必要に応じて印刷領域409を編集する。例えば、ユーザが、印刷領域409の大きさ等を調整したい場合には、印刷領域409を編集することもできる。この場合、反映データ受付部917が編集の受付を行い、編集した結果の反映は、反映実行部918によって行われる。
次に、ユーザは、印刷領域409における設定データの反映状態を確認した後に、印刷ボタン410を押下する。これを受けて、S1016において印刷指示部919は、設定データ(ネイル画像データ)を印刷領域409に反映した印刷データを作成する。このとき、ネイルアプリ900は、「プリンター151に挿入されている手を動かさないでください」という主旨のメッセージを表示してもよい。また、プレビュー領域407に表示されている印刷領域409の傾き方向と、実際の印刷データにおける印刷領域の傾き方向とが異なる場合、印刷データにおける印刷領域の方向に合わせてネイル画像データを反映する。この場合の処理フローは、後述する図11の処理と同じである。
S1017においてネイルアプリ900は、作成された印刷データをプリンター151に送信する。S1018においてプリンター151はS1010で上昇させた時と同じ高さにレールを上昇させる。これにより、爪の位置が印刷に適した位置に再度設定される。S1019においてプリンター151は、送信された印刷データに基づいて、印刷を行う。この結果、ユーザの爪にネイルの画像が印刷されることになる。S1017からS1019のステップは印刷対象の爪の数だけ繰り返し行われる。例えば、左手の小指から人差し指の4つの爪が対象になる場合、指ごとに印刷データ送信/印刷が繰り返し行われる。
なお、プリンター151は、印刷中も爪の撮影を継続しており、印刷が完了する前に手がプリンター151から離れたことを検知した場合、印刷を停止してもよい。また、印刷が完了する前に手がプリンター151から離れたことをネイルアプリ900が検知して、ネイルアプリ900がプリンター151に印刷の停止を指示してもよい。
図11は、S1014で行われる、爪領域600に基づく印刷領域409を設定する処理を示すフローチャートである。即ち、撮影画像に含まれる所定の領域(爪領域)にオブジェクト(ネイル画像)を挿入する際に、オブジェクトを挿入する傾きを適切に決定する例を説明する。
S1101においてネイルアプリ900は、爪領域600を形成する点の座標のうち、最上部601、最下部602、最左部603、および最右部604の座標を特定する。次にS1102においてネイルアプリ900は、特定した全ての座標を通り、印刷領域409を内包する矩形605を作成する。続いてS1103においてネイルアプリ900は、作成した矩形605の辺の一部を用いて、座標軸に対するその辺の傾きを特定する。この傾きがネイル画像データを挿入する方向となる。S1103でネイル画像データを挿入する方向を決定すると、S1104でネイルアプリ900は、その方向で印刷領域409にネイル画像データを表示する。この処理フローにより、ネイル画像データの方向と印刷領域409の方向を合わせて爪に印刷を施すことができる。ネイル画像データの方向と印刷領域409との方向をユーザ操作によって合わせる工程を削減できるので、ユーザビリティを向上させることができる。尚、前述したように、印刷データ作成時に、図11の処理が行われてもよい。この場合、S1104の「ネイル画像データを表示」を「ネイル画像データを反映」と読み替えればよい。
図12は、爪領域に基づく印刷領域409を設定する他の処理を示すフローチャートである。図12は、印刷領域409の方向が一意に定まらなかった場合を含んだ処理フローである。図12は、図11の代わりに実行される処理である。尚、図11と同様の処理については、同じ符号を付している。
S1101およびS1102の処理は、図11で説明した例と同様である。S1201において、ネイルアプリ900は、印刷領域409を内包する矩形605を生成可能な数は、1つであるかを確認する。生成可能な矩形605が1つの場合、S1103に処理が進む。S1103の処理は、図11で説明した例と同様である。そして、その後、S1104に進む。S1104の処理も、図11で説明した例と同様である。
一方、S1201で、印刷領域409を内包する矩形605が1つでない場合、即ち、矩形605が2つ以上存在する場合、処理はS1202に進む。S1202でネイルアプリ900は、生成可能な複数の矩形605の中から、傾きが最小の矩形605を選択する。ネイルアプリ900は、選択された矩形605の傾きを、S1104で用いる傾きとして特定し、S1104に進み処理を進める。
尚、図12の処理では、ネイルアプリ900は、S1202で傾きが最小となる矩形605を選択する例を示したが、選択する際の基準はこれに限らない。例えば、傾きが最大となる矩形605を選択しても良いし、傾きが中央値となる矩形605を選択しても良い。矩形605を1つ選択できる方法であればどのような方法でも構わない。このような処理フローにより、印刷領域409を内包する矩形605が複数存在する場合であっても、ネイル画像データの方向と印刷領域409の方向とを合わせた状態でネイル画像データを印刷領域409に挿入(反映)することができる。
以上説明したように、本実施形態によれば、オブジェクトを挿入する際の傾きを適切に決定することができる。このため、例えば爪の筋が検出できない状態においても、爪の傾き方向を検出し、ネイルアートを爪の傾き方向に合わせた状態で印刷することができる。即ち、ベースコートが塗布された爪であっても印刷領域の傾き方向を検出し、ネイル画像データと印刷領域409の傾き方向を合わせてネイル画像データを挿入することができる。これにより、ユーザがネイル画像データの傾き方向と印刷領域の傾き方向とを合わせる必要性を低減することができ、ユーザビリティを向上させることができる。
<<第2実施形態>>
第1実施形態では、検出した爪領域の傾き方向を用いてネイル画像データの挿入方向を決定する例を説明した。本実施形態では、ネイル画像データの挿入方向を決定する際に、爪領域ではなく、指の傾き方向を利用する例を説明する。即ち、ネイル画像データを挿入する方向を、第一対象物である爪ではなく、第一対象物である爪に付随して移動可能な第二対象物である指の傾き方向に合わせる例を説明する。本実施形態は、印刷領域設定ボタン408の操作に応じた爪検出部915の動作(S1013の処理)において、爪領域を検出できない場合にも効果を得ることができる。本実施形態による処理でも、ベースコートが塗布された爪に対して効果を発揮することができる。
本実施形態においても、第1実施形態と同様に、図5における印刷領域設定ボタン408が押下されたことに応じて、ネイルアプリ900は、印刷領域409を設定可能な領域設定モードに遷移する。第1実施形態では、撮影された静止画に基づいて爪領域を検出して印刷領域409を設定する例を説明した。本実施形態では、爪領域を検出できなかった場合には、指の輪郭を検出するようにネイルアプリが動作する。
図13は、本実施形態におけるオブジェクトの挿入方向を決定する例を説明する図である。ネイルアプリ900は、静止画から爪領域を検出できず、印刷領域409を設定できなかった場合、静止画から指の輪郭を検出する。指の輪郭を検出する方法の一例として、機械学習で生成した学習モデルを使用することができる。指の輪郭を検出するために使用する学習モデルは、指を含む静止画を入力すると指の輪郭を出力する学習モデルである。なお、指の輪郭の検出を実現するにあたり、必ずしも機械学習を用いる必要はなく、指を示す色とその土台となっている背景色の色との差分を用いた画像処理により実現してもよい。特に、指の輪郭を検出する際は、指を配置する土台の色を特定の色に固定しておくことにより、色の差分が明確になり、機械学習を用いるよりも低コストで指の輪郭を検出することができる。
図13に示すように、プリンター151に挿入される指はそれぞれ異なる方向に傾いていることが一般的であり、ネイル画像データを指の方向に合わせて反映することが求められる。指の輪郭1301を検出した後は、ネイルアプリ900は、検出した指の輪郭1301を用いて、近似直線1302を描画する。近似直線1302の算出には、例えば最小二乗法を用いることができる。最小二乗法とは、n個のデータセット(x,y)が与えられる状況において、n個のxとyに最も相応しい直線を引く方法である。この直線は、傾きA=Cov(X,Y)/σX 2、切片B=μY-AμXで表される。ここで、μXはn個のXの平均、σXはn個のXの標準偏差、μYはn個のYの平均、Cov(X,Y)は共分散を示す。
このとき、指の輪郭1301を全て用いる必要はなく、指の輪郭1301を構成する各点の座標の一部を使用するようにしてもよい。特に、指の輪郭1301の上部を含めて近似直線1302を算出した場合、本来の指の方向とは差分が大きくなってしまう可能性がある。そのため、指の輪郭1301を構成する各点の座標のうち、上部を除いた座標を除いて近似直線1302を算出する方が、精度を高めることができる。また、指の輪郭1301を構成する各点のうち、指の左側と右側のどちらか一方を使用して近似直線1302を描画することも可能である。また、左側と右側に分けた指の輪郭1301を構成する各点からそれぞれの中心点を算出し、その中心点を用いて近似直線1302を描画することもできる。具体的には、n組の2点(x,y1)および(x,y2)をつくり、それぞれを結ぶ直線からn個の中心点(x,(y1+y2)/2)を算出し、このn個の中心点を用いて、近似直線1302を描画する。このようにして描画できる近似直線1302の傾き1303を指の傾きとすることができる。この指の傾きからネイル画像データを挿入する方向を決定する。ネイル画像データを挿入する方向が決定したら、その方向で印刷領域409にネイル画像データを表示する。尚、上記は一例に過ぎず、他の方法を用いてもよい。例えば、指の第一関節より上の部分を使用するなど、近似直線1302を描画する際に使用する座標は、任意に抽出してよい。
このように、本実施形態によれば、指の傾きからネイル画像データを挿入する方向を決定することができる。この結果、ネイル画像データの方向と印刷領域409の方向とを可能な限り一致させてネイル画像データを挿入することができる。また、本実施形態によっても、ユーザビリティを向上させることができる。また、ベースコートを塗布した爪であっても、ネイル画像データを印刷領域409に可能な限り適切な方向で施すことができる。尚、本実施形態では、爪領域が検出できない場合に指の輪郭を検出する例を説明したが、爪領域の検出に関わらず、指の輪郭を検出して、検出した指の輪郭からネイル画像データを挿入する方向を決定してもよい。
<<第3実施形態>>
本実施形態では、ネイル画像データの挿入方向を決定する方法としてAI(機械学習で生成した学習モデル)を使用する例を説明する。ここで使用する学習モデルは、爪を含む静止画を入力すると、爪の方向を検出した結果を出力する学習モデルである。第3実施形態3では、第1実施形態における印刷領域設定ボタン408の操作に応じて行われる爪検出部915の動作(S1012)の処理において、本学習モデルを用いて、ネイル画像データの挿入方向を決定する。本実施形態による方法を用いてもベースコートが塗布された爪に対して効果を発揮することができる。
このような機能を実現するための学習モデルは、深層学習により構成することができる。教師データとしてベースコートが塗布された爪を含む静止画と、その静止画に対する正解情報であるその爪の傾きとを用いて学習し、これを積み重ねることによって学習モデルとする。このようにして構成した学習モデルを用いることにより、入力として爪を含む処理対象の静止画を与えると、処理対象の静止画に含まれる爪の方向が出力される。このようにして得られた爪の方向を、ネイル画像データを反映させる方向とすることで、ネイル画像データの方向と印刷領域409の方向を合わせることができる。
このように、本実施形態においても、ネイル画像データの方向と印刷領域409の方向とを可能な限り一致させてネイル画像データを挿入することができる。また、本実施形態によっても、ユーザビリティを向上させることができる。また、ベースコートを塗布した爪であっても、ネイル画像データを印刷領域409に可能な限り適切な方向で施すことができる。
<<その他の実施形態>>
第1実施形態から第3実施形態においては、印刷対象挿入部158に片手の手を入れる形態のプリンター151を例に挙げて説明したが、これに限られない。例えば、店舗などに設置されるようなプリンターで、両手を入れるようなものでもよい。この場合、操作は、店員などが行えばよい。
また、上述した各実施形態では、主に、ネイルアートとして画像(模様)を印刷する例を挙げて説明したが、3次元構造物などを示す形状データと画像データとを用いて、模様を含む構造物をネイルアートとして形成するような形態でもよい。
また、上述した各実施形態では、手をプリンター151に挿入し、爪に直接印刷する形態で説明したが、別の形態でも構わない。例えば、シール等の爪に装着するオブジェクトに対して印刷を行うプリンターを使って印刷する場合に、上述した各実施形態の処理が適用されても構わない。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
900 ネイルアプリ
910 表示制御部
915 爪検出部
916 印刷領域設定部
917 反映データ受付部
918 反映実行部

Claims (23)

  1. 撮影画像に含まれる所定の領域にオブジェクト画像を挿入する際の前記オブジェクト画像の傾きを決定するプログラムであって、
    コンピュータを、
    前記撮影画像から前記所定の領域を検出する検出手段と、
    前記検出手段で検出した前記所定の領域を内包する矩形を作成する作成手段と、
    前記矩形の前記撮影画像の水平線または垂直線に対する傾きを、前記オブジェクト画像を挿入する際の傾きとして決定する決定手段と、
    として機能させるためのプログラム。
  2. 前記作成手段は、
    前記検出手段で検出した前記所定の領域の最上部、最下部、最左部、および最右部の座標をそれぞれ取得し、
    前記取得したすべての座標を通る前記矩形を作成することを特徴とする請求項1に記載のプログラム。
  3. 前記作成手段によって、前記取得したすべての座標を通る前記矩形が複数作成された場合、前記決定手段は、複数の前記矩形のうち、いずれか1つの矩形の傾きを用いて前記オブジェクト画像を挿入する際の傾きを決定することを特徴とする請求項2に記載のプログラム。
  4. 前記作成手段は、
    前記検出手段で検出した前記所定の領域の最上部、最下部、最左部、および最右部の座標をそれぞれ取得し、
    前記最上部の座標および前記最下部の座標からそれぞれ水平な直線を決定し、前記最左部の座標および前記最右部の座標からそれぞれ垂直な直線を決定し、
    それぞれの前記直線を同じ角度で回転させ、回転させた直線を4辺とする矩形が前記所定の領域を内包する場合、前記決定手段は、前記回転させた直線の傾きを、前記オブジェクト画像を挿入する際の傾きとして決定することを特徴とする請求項1に記載のプログラム。
  5. 前記作成手段は、それぞれの前記直線を同じ角度で回転させ、回転させた直線を4辺とする矩形が前記所定の領域を内包しない場合、前記回転を再度行うことを特徴とする請求項4に記載のプログラム。
  6. 前記コンピュータを、
    前記決定手段で決定した前記傾きに従って前記オブジェクト画像を回転させ、回転させた前記オブジェクト画像を前記所定の領域に挿入する挿入手段としてさらに機能させることを特徴とする請求項1乃至5のいずれか一項に記載のプログラム。
  7. 前記挿入手段は、前記オブジェクト画像を拡大または縮小させて前記所定の領域に挿入することを特徴とする請求項6に記載のプログラム。
  8. 前記コンピュータを、
    前記挿入手段によって挿入されたデータを用いて印刷データを印刷装置に出力する出力手段としてさらに機能させることを特徴とする請求項6または7に記載のプログラム。
  9. 前記オブジェクト画像は、前記所定の領域に印刷される画像であることを特徴とする請求項1乃至8のいずれか一項に記載のプログラム。
  10. 前記撮影画像は、爪を含む画像であり、
    前記所定の領域は、前記爪の領域であることを特徴とする請求項9に記載のプログラム。
  11. 前記検出手段は、所定の色の画素の集合を前記所定の領域として検出することを特徴とする請求項9または10に記載のプログラム。
  12. 前記検出手段は、前記撮影画像を学習モデルに入力して得られた出力に基づいて、前記所定の領域を決定することを特徴とする請求項9または10に記載のプログラム。
  13. 撮影画像に含まれる所定の領域にオブジェクト画像を挿入する際の前記オブジェクト画像の傾きを決定するプログラムであって、
    コンピュータを、
    前記所定の領域が示す第一対象物に付随して移動可能な第二対象物の輪郭を、前記撮影画像から検出する検出手段と、
    前記検出手段で検出した輪郭の全部または一部を用いて、前記輪郭の全部または一部の近似直線を決定する第一決定手段と、
    前記第一決定手段で決定した前記近似直線の前記撮影画像の水平線または垂直線に対する傾きを、前記オブジェクト画像を挿入する際の傾きとして決定する第二決定手段と、
    として機能させることを特徴とするプログラム。
  14. 前記第一決定手段は、最小二乗法を利用して前記近似直線を決定することを特徴とする請求項13に記載のプログラム。
  15. 前記第一対象物は爪であり、前記第二対象物は指であることを特徴とする請求項13または14に記載のプログラム。
  16. 前記検出手段は、前記撮影画像を学習モデルに入力して得られた出力に基づいて、前記輪郭を決定することを特徴とする請求項13乃至15のいずれか一項に記載のプログラム。
  17. 撮影画像に含まれる所定の領域にオブジェクト画像を挿入する際の前記オブジェクト画像の傾きを決定するプログラムであって、
    コンピュータを、
    画像を入力すると画像内に含まれる所定の領域の傾きを示す情報を出力するように学習された学習モデルに対して、前記撮影画像を入力することで前記撮影画像内に含まれる所定の領域の前記撮影画像の水平線または垂直線に対する傾きを決定する第一決定手段と、
    前記第一決定手段で決定した前記傾きを、前記オブジェクト画像を挿入する際の傾きとして決定する第二決定手段と、
    として機能させるためのプログラム。
  18. 撮影画像に含まれる所定の領域にオブジェクト画像を挿入する際の前記オブジェクト画像の傾きを決定する情報処理装置であって、
    前記撮影画像から前記所定の領域を検出する検出手段と、
    前記検出手段で検出した前記所定の領域を内包する矩形を作成する作成手段と、
    前記矩形の前記撮影画像の水平線または垂直線に対する傾きを、前記オブジェクト画像を挿入する際の傾きとして決定する決定手段と、
    を備えることを特徴とする情報処理装置。
  19. 撮影画像に含まれる所定の領域にオブジェクト画像を挿入する際の前記オブジェクト画像の傾きを決定する情報処理装置であって、
    前記所定の領域が示す第一対象物に付随して移動可能な第二対象物の輪郭を、前記撮影画像から検出する検出手段と、
    前記検出手段で検出した輪郭の全部または一部を用いて、前記輪郭の全部または一部の近似直線を決定する第一決定手段と、
    前記第一決定手段で決定した前記近似直線の前記撮影画像の水平線または垂直線に対する傾きを、前記オブジェクト画像を挿入する際の傾きとして決定する第二決定手段と、
    を備えることを特徴とする情報処理装置。
  20. 撮影画像に含まれる所定の領域にオブジェクト画像を挿入する際の前記オブジェクト画像の傾きを決定する情報処理装置であって、
    画像を入力すると画像内に含まれる所定の領域の傾きを示す情報を出力するように学習された学習モデルに対して、前記撮影画像を入力することで前記撮影画像内に含まれる所定の領域の前記撮影画像の水平線または垂直線に対する傾きを決定する第一決定手段と、
    前記第一決定手段で決定した前記傾きを、前記オブジェクト画像を挿入する際の傾きとして決定する第二決定手段と、
    を備えることを特徴とする情報処理装置。
  21. 撮影画像に含まれる所定の領域にオブジェクト画像を挿入する際の前記オブジェクト画像の傾きを決定する情報処理装置の制御方法であって、
    前記撮影画像から前記所定の領域を検出する検出工程と、
    前記検出工程で検出した前記所定の領域を内包する矩形を作成する作成工程と、
    前記矩形の前記撮影画像の水平線または垂直線に対する傾きを、前記オブジェクト画像を挿入する際の傾きとして決定する決定工程と、
    を備えることを特徴とする情報処理装置の制御方法。
  22. 撮影画像に含まれる所定の領域にオブジェクト画像を挿入する際の前記オブジェクト画像の傾きを決定する情報処理装置の制御方法であって、
    前記所定の領域が示す第一対象物に付随して移動可能な第二対象物の輪郭を、前記撮影画像から検出する検出工程と、
    前記検出工程で検出した輪郭の全部または一部を用いて、前記輪郭の全部または一部の近似直線を決定する第一決定工程と、
    前記第一決定工程で決定した前記近似直線の前記撮影画像の水平線または垂直線に対する傾きを、前記オブジェクト画像を挿入する際の傾きとして決定する第二決定工程と、
    を備えることを特徴とする情報処理装置の制御方法。
  23. 撮影画像に含まれる所定の領域にオブジェクト画像を挿入する際の前記オブジェクト画像の傾きを決定する情報処理装置の制御方法であって、
    画像を入力すると画像内に含まれる所定の領域の傾きを示す情報を出力するように学習された学習モデルに対して、前記撮影画像を入力することで前記撮影画像内に含まれる所定の領域の前記撮影画像の水平線または垂直線に対する傾きを決定する第一決定工程と、
    前記第一決定工程で決定した前記傾きを、前記オブジェクト画像を挿入する際の傾きとして決定する第二決定工程と、
    を備えることを特徴とする情報処理装置の制御方法。
JP2020130532A 2020-07-31 2020-07-31 情報処理装置、情報処理装置の制御方法、およびプログラム Pending JP2022026867A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020130532A JP2022026867A (ja) 2020-07-31 2020-07-31 情報処理装置、情報処理装置の制御方法、およびプログラム
US17/374,057 US20220036509A1 (en) 2020-07-31 2021-07-13 Information processing apparatus, control method of information processing apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020130532A JP2022026867A (ja) 2020-07-31 2020-07-31 情報処理装置、情報処理装置の制御方法、およびプログラム

Publications (1)

Publication Number Publication Date
JP2022026867A true JP2022026867A (ja) 2022-02-10

Family

ID=80003116

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020130532A Pending JP2022026867A (ja) 2020-07-31 2020-07-31 情報処理装置、情報処理装置の制御方法、およびプログラム

Country Status (2)

Country Link
US (1) US20220036509A1 (ja)
JP (1) JP2022026867A (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7124419B2 (ja) * 2018-04-25 2022-08-24 カシオ計算機株式会社 ネイルプリント装置
CN109349774A (zh) * 2018-10-29 2019-02-19 徐悦 一种自动美甲方法和设备
JP2021137510A (ja) * 2020-03-10 2021-09-16 カシオ計算機株式会社 印刷装置、印刷方法及びプログラム
JP7219866B2 (ja) * 2020-03-25 2023-02-09 カシオ計算機株式会社 印刷装置、印刷装置の制御方法及び制御プログラム

Also Published As

Publication number Publication date
US20220036509A1 (en) 2022-02-03

Similar Documents

Publication Publication Date Title
JP5656111B2 (ja) 画像合成装置及び画像合成プログラム
US10460421B2 (en) Image processing apparatus and storage medium
JP2009245071A (ja) レイアウト決定方法、プログラムおよび装置
US11494065B2 (en) Storage medium, control method of information processing apparatus, and information processing apparatus
JP4957327B2 (ja) 表示制御装置
JP5472019B2 (ja) 画像合成装置及び画像合成プログラム並びに画像合成方法
JP2018160120A (ja) 表示装置および表示システム
JP2015026189A (ja) 画像処理システム、携帯端末装置、表示装置及びコンピュータプログラム
JP2022026867A (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
US11816270B2 (en) Electronic device that operates according to user's hand gesture, and image forming apparatus
JP6399371B1 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
US20210386178A1 (en) Storage medium, computer control method, and information processing apparatus
JP2018207342A (ja) 画像読取装置、その制御方法、並びにプログラム
CN114052374B (zh) 存储介质、信息处理设备的控制方法和信息处理设备
US11494136B2 (en) Storage medium having fingernail image processing, information processing apparatus, and control method of information processing apparatus
JP2021108010A (ja) 情報処理装置、情報処理装置の制御方法、学習モデルの生成方法、およびプログラム
JP2023169706A (ja) プログラム、情報処理装置、ネイルプリント装置、および制御方法
JP6477558B2 (ja) 文字学習システム
JP2022026875A (ja) プログラム、情報処理装置、印刷システム、および制御方法
JP4579106B2 (ja) 写真撮影装置、写真撮影装置の制御方法および写真撮影装置の制御プログラム
JP6515539B2 (ja) 画像形成装置
JP6677410B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
JP7237614B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
JP5187001B2 (ja) 情報処理システム及び情報処理装置
JP2009076983A (ja) 情報処理システム及び情報処理装置