(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024173423
(43)【公開日】2024-12-12
(54)【発明の名称】情報処理装置、方法およびプログラム
(51)【国際特許分類】
G06V 10/82 20220101AFI20241205BHJP
G06T 7/00 20170101ALI20241205BHJP
G06F 40/169 20200101ALI20241205BHJP
G06F 40/157 20200101ALI20241205BHJP
【FI】
G06V10/82
G06T7/00 350C
G06F40/169
G06F40/157
【審査請求】未請求
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2023091835
(22)【出願日】2023-06-02
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】石田 智也
【テーマコード(参考)】
5B109
5L096
【Fターム(参考)】
5B109SA14
5B109TA11
5B109VC03
5L096CA22
5L096CA25
5L096DA04
5L096FA69
5L096HA11
5L096JA11
5L096JA22
5L096KA04
(57)【要約】
【課題】画像からユーザが所望するコメントを適切に生成する情報処理装置を提供する。
【解決手段】情報処理装置は、画像を取得する第1取得手段と、前記第1取得手段により取得された前記画像から特徴部分を抽出する抽出手段と、前記抽出手段により抽出された前記特徴部分に対応するワードを受け付ける受付手段と、前記抽出手段により抽出された前記特徴部分のカテゴリを取得する第2取得手段と、前記第2取得手段により取得された前記カテゴリと関連するワードであり、前記第1取得手段により取得された前記画像に基づき推論手段により推論されたコメントに含まれる当該ワードを、前記受付手段により受け付けたワードに置き換えることにより、前記推論されたコメントを変換する変換手段とを備える。
【選択図】
図7
【特許請求の範囲】
【請求項1】
画像を取得する第1取得手段と、
前記第1取得手段により取得された前記画像から特徴部分を抽出する抽出手段と、
前記抽出手段により抽出された前記特徴部分に対応するワードを受け付ける受付手段と、
前記抽出手段により抽出された前記特徴部分のカテゴリを取得する第2取得手段と、
前記第2取得手段により取得された前記カテゴリと関連するワードであり、前記第1取得手段により取得された前記画像に基づき推論手段により推論されたコメントに含まれる当該ワードを、前記受付手段により受け付けたワードに置き換えることにより、前記推論されたコメントを変換する変換手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記変換手段により変換されたコメントを、前記第1取得手段により取得された前記画像とともに表示する表示手段をさらに備えることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記カテゴリと、当該カテゴリと関連するワードと対応づけて記憶する記憶手段をさらに備えることを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記カテゴリと、当該カテゴリと関連するワードとは類義語もしくは同義語の関係であることを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記記憶手段は、前記カテゴリと対応づけられた複数のワードを記憶することを特徴とする請求項3に記載の情報処理装置。
【請求項6】
前記複数のワードそれぞれについて、前記推論されたコメントに含まれるか否かを判定する判定手段をさらに備え、
前記判定手段により前記推論されたコメントに含まれると判定された場合、前記変換手段は、当該含まれると判定されたワードを、前記受付手段により受け付けたワードに置き換える、
ことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記複数のワードには優先順位が設定されており、
前記判定手段は、前記優先順位に従って、前記複数のワードそれぞれについて、前記推論されたコメントに含まれるか否かを判定する、
ことを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記第1取得手段により取得された前記画像の第1特徴部分および第2特徴部分それぞれについて前記第2取得手段により取得された前記カテゴリが異なる場合、
前記第1特徴部分のカテゴリに基づき前記判定手段により前記推論されたコメントに含まれると判定された第1ワードは前記受付手段により受け付けた前記第1特徴部分に対応する第2ワードに置き換えられ、
前記第2特徴部分のカテゴリに基づき前記判定手段により前記推論されたコメントに含まれると判定された第3ワードは前記受付手段により受け付けた前記第2特徴部分に対応する第4ワードに置き換えられることを特徴とする請求項6に記載の情報処理装置。
【請求項9】
前記第1取得手段により取得された前記画像の第3特徴部分および第4特徴部分それぞれについて前記第2取得手段により取得された前記カテゴリが同じ場合、前記判定手段により前記推論されたコメントに含まれると判定された第5ワードは複数形を表していることを特徴とする請求項6に記載の情報処理装置。
【請求項10】
前記第5ワードは、前記受付手段により受け付けた前記第3特徴部分に対応する第6ワードと前記第4特徴部分に対応する第7ワードに置き換えられることを特徴とする請求項9に記載の情報処理装置。
【請求項11】
前記第5ワードは、接続詞を伴って、前記第6ワードと前記第7ワードに置き換えられることを特徴とする請求項10に記載の情報処理装置。
【請求項12】
前記第1取得手段により取得された前記画像の第5特徴部分および第6特徴部分のそれぞれについて重要度を設定する設定手段をさらに備え、
前記判定手段による判定は、前記設定手段による設定に基づいて実行されることを特徴とする請求項6に記載の情報処理装置。
【請求項13】
前記設定手段により設定された重要度が所定の重要度である場合、当該所定の重要度が設定された特徴部分について前記判定手段による判定は行われず、前記置き換えは行われないことを特徴とする請求項12に記載の情報処理装置。
【請求項14】
前記第5特徴部分について第1重要度が前記設定手段により設定され、前記第6特徴部分について前記第1重要度より低い第2重要度が前記設定手段により設定された場合、前記判定手段による判定は、前記第6特徴部分より先に前記第5特徴部分について行われることを特徴とする請求項12に記載の情報処理装置。
【請求項15】
前記特徴部分は、顔であることを特徴とする請求項1に記載の情報処理装置。
【請求項16】
前記受付手段により受け付ける前記特徴部分に対応するワードは人物の固有の名称であり、前記推論されたコメントに含まれるワードは汎用的な名称であり、
前記変換手段は、前記汎用的な名称を前記固有の名称に置き換えることを特徴とする請求項1に記載の情報処理装置。
【請求項17】
前記推論手段は、LSTM(Long Short-term memory)を用いたモデルであることを特徴とする請求項1に記載の情報処理装置。
【請求項18】
情報処理装置において実行される方法であって、
画像を取得する第1取得工程と、
前記第1取得工程において取得された前記画像から特徴部分を抽出する抽出工程と、
前記抽出工程において抽出された前記特徴部分に対応するワードを受け付ける受付工程と、
前記抽出工程において抽出された前記特徴部分のカテゴリを取得する第2取得工程と、
前記第2取得工程において取得された前記カテゴリと関連するワードであり、前記第1取得工程において取得された前記画像に基づき推論手段により推論されたコメントに含まれる当該ワードを、前記受付工程において受け付けたワードに置き換えることにより、前記推論されたコメントを変換する変換工程と、
を有することを特徴とする方法。
【請求項19】
請求項1乃至17のいずれか1項に記載の情報処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、方法およびプログラムに関する。
【背景技術】
【0002】
従来、一枚の画像を入力として、その画像を説明するコメントを自動生成する技術が知られている。特許文献1には、文中から固有名詞を抽出し、その固有名詞をより分かりやすい固有名詞に変換することが記載されている。また、例えばユーザにより撮影された画像から、コメントを自動生成する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
画像から自動生成されるコメントは汎用的なものであり、必ずしもユーザが望むものではない場合があり、コメントの自動生成についてさらなる改善が求められている。
【0005】
本発明は、画像からユーザが所望するコメントを適切に生成する情報処理装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明に係る情報処理装置は、画像を取得する第1取得手段と、前記第1取得手段により取得された前記画像から特徴部分を抽出する抽出手段と、前記抽出手段により抽出された前記特徴部分に対応するワードを受け付ける受付手段と、前記抽出手段により抽出された前記特徴部分のカテゴリを取得する第2取得手段と、前記第2取得手段により取得された前記カテゴリと関連するワードであり、前記第1取得手段により取得された前記画像に基づき推論手段により推論されたコメントに含まれる当該ワードを、前記受付手段により受け付けたワードに置き換えることにより、前記推論されたコメントを変換する変換手段とを備えることを特徴とする。
【発明の効果】
【0007】
本発明によれば、画像からユーザが所望するコメントを適切に生成することができる。
【図面の簡単な説明】
【0008】
【
図7】情報処理装置における処理を示すフローチャートである。
【
図8】情報処理装置における処理を示すフローチャートである。
【
図9】画像からコメントを推論するためのモデルを示す図である。
【
図11】ユーザインタフェース画面を示す図である。
【
図12】ユーザインタフェース画面を示す図である。
【
図13】ユーザインタフェース画面を示す図である。
【
図14】ユーザインタフェース画面を示す図である。
【
図15】ユーザインタフェース画面を示す図である。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0010】
[第1実施形態]
図1は、本実施形態における印刷システムの構成の一例を示す図である。本印刷システムは、クライアントコンピュータ(以下、PC)100、ディスプレイ(表示装置)110、ルータ120、モバイル端末200、サーバコンピュータ(以下、サーバ)300、プリンタ400を含む。PC100は、ディスプレイ110と通信ケーブルで接続され、PC100のユーザに対して各種ユーザインタフェース画面をディスプレイ110に表示する。PC100自身のみならず、PC100とディスプレイ110とを含んで情報処理装置と称する場合がある。また、PC100は、有線通信もしくは無線通信により、ルータ120に接続され、ルータ120を介してインターネット130を経由して他の通信機器と相互に通信可能である。モバイル端末200は、無線通信により、ルータ120を介してインターネット130を経由して他の通信機器と相互に通信可能である。サーバ300は、例えば、印刷対象のコンテンツデータをユーザが作成/編集可能なWebアプリケーションを提供するWebサーバである。サーバ300は、インターネット130を経由して他の通信機器と相互に通信可能である。そして、サーバ300は、PC100やモバイル端末200で保持されているデータを受信してメモリに保存し、データの加工や、PC100等の他の機器へのデータ送信を実行可能である。プリンタ400は、PC100、モバイル端末200、もしくはサーバ300に保存されているデータを受信し、印刷用紙等の記録媒体に対して印刷を行う。
【0011】
図1の印刷システムでは、PC100のユーザは、サーバ300のWebアプリケーションを用いて作成したコンテンツをプリンタ400で印刷することが可能である。また、PC100のユーザは、サーバ300のWebアプリケーションを用いずに、PC100に予めインストールされたネイティブアプリケーションを用いて、印刷対象のコンテンツをプリンタ400で印刷することが可能である。PC100のユーザは、Webアプリケーションとネイティブアプリケーションとを連携可能に予め対応付けておき、Webアプリケーションにより作成されたコンテンツを、ネイティブアプリケーションを介してプリンタ400で印刷することが可能である。本実施形態では、上記の各形態に関わらず、ユーザがPC100上でコンテンツを印刷するためのアプリケーションを単に「アプリケーション」と称する。以下、
図1の各装置のハードウェア構成を説明する。
【0012】
図2は、
図1の印刷システムの各装置のハードウェア構成の一例を示す図である。まず、PC100のハードウェア構成について説明する。CPU101は、中央演算装置であり、情報処理装置であるPC100を統括的に制御する。ROM102は、不揮発性のストレージであり、各種データやプログラム、テーブルを保持する。ROM102には、例えば、基本プログラムや各種アプリケーションプログラムが記憶される。アプリケーションプログラムは例えば、外部のサーバからダウンロードしてインストールされた印刷アプリケーションプログラムや、サーバ300のWebアプリケーションにおけるフロントエンドプログラムを含む。RAM103は、揮発性のストレージであり、プログラムやデータを一時的に保持する。外部記憶装置104は、ハードディスクドライブ(HDD)やSolid State Drive(SSD)等の不揮発性のストレージであり、プログラムやデータを保持する。CPU101は、ROM102、RAM103、外部記憶装置104に保存されているプログラムやデータに基づいて、各種処理を実行する。例えば、本実施形態におけるPC100の動作は、CPU101がROM102に記憶されているプログラムをRAM103に読み出して実行することにより実現される。
【0013】
データ通信インタフェース(I/F)105は、外部の機器とのデータ通信を実行する。例えば、データ通信I/F105は、ルータ120を介し、サーバ300及びプリンタ400との間におけるデータの送受信を制御する。データ通信方式として、例えば、USB、IEEE1394、LAN等の有線接続方式や、Bluetooth(登録商標)、WiFi(登録商標)等の無線接続方式が用いられる。入力デバイス制御部106は、入力装置107を介して受け付けたユーザ操作に関する情報を取得し、CPU101にその情報を送信する。入力装置107は、キーボード、マウス等のHID(Human Interface Device)である。表示装置制御部108は、ユーザインタフェース画面等の画面データを描画用データに変換し、描画用データをディスプレイ110に送信して表示させる。PC100内の各ブロックは、内部バス109を介して相互に接続される。PC100の構成は、
図2に示す構成に限られず、PC100として適用されるデバイスが実行可能な機能に応じた構成を適宜有する。
【0014】
次に、モバイル端末200のハードウェア構成について説明する。モバイル端末200は、主に、タブレットコンピュータ、スマートフォンのような情報処理装置の機能を備え、表示および入力I/Fを兼ねるタッチパネルを備えている。CPU201は、中央演算装置であり、モバイル端末200を統括的に制御する。ROM202は、不揮発性のストレージであり、各種データやプログラムを保持する。ROM202には、例えば、基本プログラムや各種アプリケーションプログラムが記憶される。RAM203は、揮発性のストレージであり、プログラムやデータを一時的に保持する。外部記憶装置204は、ハードディスクドライブ(HDD)やSolid State Drive(SSD)等の不揮発性のストレージであり、プログラムやデータを保持する。外部記憶装置204は、外付けで構成されても良い。CPU201は、ROM202、RAM203、外部記憶装置204に保存されているプログラムやデータに基づいて、各種処理を実行する。例えば、本実施形態におけるモバイル端末200の動作は、CPU201がROM202に記憶されているプログラムをRAM203に読み出して実行することにより実現される。
【0015】
データ通信I/F205は、外部の機器とのデータ通信を実行する。データ通信方式として、例えば、USB、IEEE1394、LAN等の有線接続方式や、Bluetooth、WiFi等の無線接続方式が用いられる。入力デバイス制御部206は、入力装置207を介して受け付けたユーザ操作に関する情報を取得し、CPU201にその情報を送信する。入力装置207は、例えば、タブレットコンピュータやスマートフォンに備えられている表示および入力の機能を備えたタッチパネルのような画面上で入力操作を受付可能な装置である。表示装置制御部208は、ユーザインタフェース画面等の画面データを描画用データに変換し、その描画用データを表示装置209に表示させる。モバイル端末200内の各ブロックは、内部バス210を介して相互に接続される。モバイル端末200の構成は、
図2に示す構成に限られず、モバイル端末200として適用されるデバイスが実行可能な機能に応じた構成を適宜有する。
【0016】
次に、サーバ300のハードウェア構成について説明する。CPU301は、中央演算装置であり、サーバ300を統括的に制御する。ROM302は、不揮発性のストレージであり、各種テーブルデータやプログラムを保持する。ROM302には、例えば、基本プログラムや各種アプリケーションプログラムが記憶される。アプリケーションプログラムとしては例えば、ユーザがダウンロード可能な印刷アプリケーションが含まれる。RAM303は、揮発性のストレージであり、プログラムやデータを一時的に保持する。外部記憶装置304は、ハードディスクドライブ(HDD)やSolid State Drive(SSD)等の不揮発性のストレージであり、プログラムやデータを保持する。例えば、本実施形態におけるサーバ300の動作は、CPU301がROM302に記憶されているプログラムをRAM303に読み出して実行することにより実現される。
【0017】
データ通信I/F305は、外部の機器とのデータ通信を実行する。例えば、データ通信I/F305は、ルータ120を介し、PC100及びプリンタ400との間におけるデータの送受信を制御する。データ通信方式として、例えば、USB、IEEE1394、LAN等の有線接続方式や、Bluetooth、WiFi等の無線接続方式が用いられる。サーバ300内の各ブロックは、内部バス306を介して相互に接続される。サーバ300の構成は、
図2に示す構成に限られず、サーバ300として適用されるデバイスが実行可能な機能に応じた構成を適宜有する。
【0018】
次に、プリンタ400のハードウェア構成について説明する。データ通信I/F401は、外部の機器とのデータ通信を実行する。例えば、データ通信I/F401は、ルータ120を介し、PC100及びサーバ300との間におけるデータの送受信を制御する。データ通信方式として、例えば、USB、IEEE1394、LAN等の有線接続方式や、Bluetooth、WiFi等の無線接続方式が用いられる。
【0019】
プリンタ400は、PC100、モバイル端末200、サーバ300で生成された印刷データを受信して記録媒体への印刷を実行可能である。なお、印刷データには、印刷対象の画像データと、印刷設定が規定された印刷設定データとが含まれる。プリンタコントローラ402は、外部の機器から受信した印刷データに基づいて、プリンタエンジン403の制御を行う。
【0020】
プリンタコントローラ402は、例えば、印刷設定データで規定される用紙の種類に応じた色空間変換や色材への色分解処理などを画像データに対して実行し、プリンタエンジン403が処理可能な記録データを生成する。また、プリンタコントローラ402は、出力階調補正やハーフトーニングといった画像処理を、ルックアップテーブルなどの画像処理用パラメータを用いて実行する。
【0021】
プリンタエンジン403は、印刷データの画像データをプリンタ400内で用いられる各インクのインク色データに変換し、印刷処理を実行する。なお、プリンタエンジン403は、プリンタ400の記録方式に対応した構成を有する。例えば、本実施形態では、プリンタ400として、インクジェット記録方式により記録媒体への記録が行われるインクジェットプリンタを想定している。その場合、プリンタエンジン403は、各インクを貯留するインクタンクや、インク滴を吐出するノズル列が設けられた記録ヘッドを含んで構成される。印刷処理では、記録データに基づいて、記録ヘッドに搭載されたヒータの加熱動作等を制御し、インク滴をノズルから吐出するよう制御する。
【0022】
プリンタ400の構成は、
図2に示す構成に限られず、プリンタ400として適用されるデバイスが実行可能な機能に応じた構成を適宜有する。また、プリンタ400は、インクジェット記録方式を用いたプリンタに限られず、電子写真方式等、他の記録方式が用いられたプリンタであっても良い。また、プリンタ400は、スキャナやファクシミリ等の機能が一体的に構成された複合機(MultiFunctional Peripheral(MFP))であっても良い。
【0023】
サーバ300は例えば、印刷対象のコンテンツデータ(例えばポスター画像データ)をユーザが作成・編集可能なWebアプリケーションを提供するWebサーバである。その場合、サーバ300のソフトウェアは、PC100等のWebブラウザの表示制御を行うフロントエンドと、バックエンドとを含んで構成される。フロントエンドは、Webブラウザ上で実行されるプログラム(JavaScript)を管理/保持し、例えばPC100に送信(ダウンロード)されることで、PC100のWebブラウザで対応した表示が行われる。フロントエンドは例えば、ユーザ認証を行うためのプログラム、コンテンツの作成/編集の処理を行うためのプログラムを含む。なお、フロントエンドのプログラムがPC100にダウンロードされた状態において、そのプログラムは、PC100のソフトウェア構成の一部となる。
【0024】
本実施形態では、コンテンツデータを作成・編集可能なアプリケーションの一例として、PC100に予めインストールされたネイティブアプリケーションを想定する。なお、PC100には、プリンタ400に対応するプリンタドライバがインストールされている。しかしながら、PC100側のフロントエンドによりポスター等のコンテンツがユーザにより作成/編集され、サーバ300側のバックエンドによりレンダリング処理が実行される構成でも良い。その場合、フロントエンドは、ユーザからの印刷指示を受け付けると、プリンタドライバに対する印刷設定に基づきバックエンドに印刷を指示するとともに、ユーザにより作成/編集されたコンテンツデータをバックエンドに送信する。バックエンドは、送信されたコンテンツデータに対してレンダリング処理を行ってPC100に送信する。レンダリング処理が行われたコンテンツデータは、プリンタドライバに対応するプリンタで印刷される。
【0025】
図3は、PC100のソフトウェアの構成の一例を示す図である。PC100は、ソフトウェア構成として、アプリケーション2、オペレーティングシステム3、モニタドライバ4、プリンタドライバ5を備える。
【0026】
本実施形態では、アプリケーション2は、例えば、ポスターを作成・編集するためのアプリケーションである。なお、アプリケーション2は、PC100に予めインストールされたネイティブアプリケーションを想定するが、Webアプリケーションのフロントエンドのプログラムであっても良い。アプリケーション2は、作成・編集等の処理の実行結果を出力するための各種描画処理命令群(イメージ描画命令、テキスト描画命令、またはグラフィクス描画命令等)を発行する。そして、アプリケーション2によって発行された描画命令群は、オペレーティングシステム3を介してモニタドライバ4に入力される。また、描画処理命令群が印刷に関する場合は、アプリケーション2によって発行された描画命令群は、オペレーティングシステム3を介してプリンタドライバ5に入力される。プリンタドライバ5は、入力された描画処理命令群を処理して印刷データを作成し、プリンタ400に印刷させるためのソフトウェアである。また、モニタドライバ4は、入力された描画処理命令群を処理して表示データを作成し、ディスプレイ110に表示させるためのソフトウェアである。
【0027】
アプリケーション2は、文字等のテキストに分類されるテキストデータ、図形等のグラフィクスに分類されるグラフィクスデータ、画像等に分類される画像データを用いて出力画像データを作成する。出力画像データは、ディスプレイ110に表示可能である。例えば、アプリケーション2は、ユーザによる作成・編集の対象となる出力画像データのポスター画像をアプリケーション2のユーザインタフェース画面上に表示する。また、アプリケーション2は、ユーザインタフェース画面上でユーザ指示を受け付けて出力画像データに基づく画像を印刷する場合、オペレーティングシステム3に印刷出力を要求する。それらの場合、テキストデータ部分がテキスト描画命令により構成され、グラフィクスデータ部分がグラフィクス描画命令により構成され、画像データ部分がイメージ描画命令により構成される描画処理命令群が、オペレーティングシステム3に対して発行される。
【0028】
図4は、アプリケーション2の構成の一例を示す図である。アプリケーション2は、コメント推論部411、顔検出部412、カテゴリ検出部413、名称設定部414、コメント候補リスト取得部415、重要度設定部416、コメント変換部417を含む。以降の説明では、アプリケーション2をポスター作成ソフトウェア500として説明する。
【0029】
図5は、ポスター作成ソフトウェア500の編集画面の一例を示す図である。ポスター作成ソフトウェア500の編集画面510は、テンプレート一覧領域521、テンプレート編集領域522、人物設定領域523を含んで構成される。テンプレート一覧領域521には、予め用意されたテンプレート531、532、533が表示される。ユーザは、テンプレート一覧領域521から所望のテンプレートを選択する。
図5では、ユーザがテンプレート532を選択し、そのテンプレートが選択状態542となっていることを示している。テンプレート一覧521で選択されたテンプレート532は、テンプレート編集領域522に編集対象のテンプレート552として表示される。編集対象のテンプレート552には、ユーザが画像を設定するための画像設定部561と、画像に対するコメントを設定するコメント設定部562とが配置されている。
【0030】
図6は、ポスター作成ソフトウェア500の編集画面510で、ユーザの画像を画像設定部561に設定した様子を示したものである。ユーザは、自身で撮影するなどして保持している画像(以降、ユーザ画像と呼ぶ)を画像設定部561にドラッグ&ドロップなどの操作によって、そのユーザ画像を画像設定部561に設定する。ユーザ画像は、ユーザにより撮影されPC100に保持されている画像でも良いし、インターネットを経由して取得した画像などであっても良い。ユーザ画像601が画像設定部561に設定されると、人物設定領域523が表示される。人物設定領域523には、検出された人物の名前を設定する名前設定部620、検出された人物の重要度を設定する重要度設定部630が配置されている。名前設定部620には、ユーザ画像601から特徴部分として検出された顔領域611、顔領域611に写った人物の名前を設定するためのフィールド621(以降、名称設定フィールド621と呼ぶ)が配置されている。ユーザは、名称設定フィールド621にユーザの名前を入力することが可能である。
図6では、ユーザが「Olivia」という名前を設定している。
【0031】
重要度設定部630には、ユーザ画像601から検出された顔領域611、顔領域611に写った人物の重要度を設定するための重要度設定フィールド631が表示されている。
図6では、「main」「sub」「other」の3段階で重要度が設定でき、「main」が設定されている。「main」は重要度が高く、「sub」は重要度が中間程度、「other」は重要度が低いことを表している。ユーザは、それらの重要度を選択することが可能である。本例では、3段階で重要度を設定しているが、3段階に限定されるものではなく、重要か否かの2段階で設定しても良いし、4段階以上で重要度を設定するようにしても良い。
【0032】
図7は、本実施形態におけるコメントの表示処理を示すフローチャートである。
図7の処理は例えば、CPU101がROM102に記憶されたプログラムをRAM103に読み出して実行することにより実現される。また、
図7の処理は例えば、ポスター作成ソフトウェア500が起動された場合に開始する。
【0033】
S701において、CPU101は、ポスター作成ソフトウェア500の編集画面510を表示する。S702において、CPU101は、テンプレート一覧領域521においてテンプレートの一覧を表示し、ユーザが所望するテンプレートの選択を受け付ける。ユーザによりテンプレートが選択されると、S703において、CPU101は、テンプレート編集領域522の画像設定部561で、ユーザからユーザ画像の入力を受け付ける。ユーザ画像が入力されると、S704において、CPU101は、ユーザ画像を画像設定部561に表示する。S705において、CPU101は、コメント推論部411を用いて、ユーザ画像からコメントを推論する。ここで、推論されたコメントを推論コメントと呼ぶ。
【0034】
図9は、画像からコメントを推論するためのモデルを図示したものである。ユーザ画像601は例えばフラフープをしている少女の画像であり、ユーザ画像601がモデルへ入力される。入力されたユーザ画像601は、CNN(Convolutional Neural Network)901によって、特徴マップに変換される。この特徴マップは、LSTM(Long Short-term memory)902に入力され、推論コメント910が出力される。このようにして、ユーザ画像601から推論コメント910が生成される。このモデルは、事前に大量の画像とそのコメントのセットによって、学習が行われる。この例では、LSTMを使ったモデルについて説明したが、本実施形態ではこのモデルに限定されるもではなく、RNN(Recurrent Neural Network)など他のネットワークを使っても良く、画像からコメントを推論するモデルであれば良い。
【0035】
S706において、CPU101は、顔検出部412により、ユーザ画像601から顔を検出する。S707において、CPU101は、S706の処理の結果、1つ以上顔を検出したか否かを判定する。顔が1つ以上検出されたと判定された場合、S708において、CPU101は、カテゴリ検出部413により、検出された顔のカテゴリを検出する。検出された顔がないと判定された場合、S716に進む。
【0036】
S706およびS708の処理については、例えば、R-CNN(Region Base Convolutional Neural Network)を用いた手法が用いられる。R-CNNは、CNNをベースとした手法で、入力画像から物体の候補領域を抽出し、その候補領域に対してCNNを適用することにより、特徴マップを抽出してクラス分類を行うものである。ただし、本実施形態は、R-CNNの手法に限定されるものではなく、画像の中から物体の位置を特定し、その物体の種類を特定する手法であれば良い。
【0037】
S709において、CPU101は、名前設定部620を表示する。S710において、CPU101は、名前設定部620を介してユーザから、検出された顔に対する名前の入力を受け付ける。
【0038】
S711において、CPU101は、検出された顔に対して重要度を設定するか否かを判定する。なお、重要度を設定するか否かについては、ポスター作成ソフトウェア500で予め決められるようにしても良い。また、ポスター作成ソフトウェア500内で設定可能であっても良い。その場合、S711の判定処理は、ポスター作成ソフトウェア500の設定内容に基づいて行われる。重要度を設定すると判定された場合、S712において、CPU101は、重要度設定部630を表示する。そして、S713において、CPU101は、重要度設定部630を介してユーザから、重要度の設定を受け付ける。S714において、CPU101は、コメント候補リスト取得部415により、コメント候補リストを取得する。
【0039】
図10は、コメント候補リストを説明するための図である。コメント候補リストとは、物体検出で得られるカテゴリ(例えば、「girl」、「boy」など)に対して、コメント推論部411で推論され得るワードをコメント候補のリストとして保持したものである。例えば、少女が写った画像の場合、顔検出部412でその少女の顔が検出され、カテゴリ検出部413で「girl」というカテゴリが検出される。この画像をコメント推論部411によりコメントを推論すると、例えば、「A little girl ・・・」や、「A cute child ・・・」のようなコメントが推論される。その場合、「A little girl」や「A cute child」がカテゴリ「girl」に関連するコメント候補となる。
【0040】
コメント候補の作成方法としては、例えばカテゴリの単語に対して類義語や同義語の関係にあるワードをコメント候補とする方法がある。しかしながら、その方法に限定されず、他の方法が用いられても良い。例えば、推論モデルの学習時に利用したコメントからコメント候補を抽出しても良い。カテゴリに対するコメント候補は複数あるため、リストで保持される。本実施形態では、そのリストをコメント候補リストと呼ぶことにする。また、コメント候補リストはカテゴリごとに存在するので、本実施形態では、そのリストをまとめたものをコメント候補リスト一覧と呼ぶことにする。
図10は、一例として、コメント候補リスト一覧1010、1020、1030、1040を示している。
【0041】
コメント候補リスト一覧1010には以下のコメント候補リストが含まれる。
【0042】
(1)カテゴリ「girl」に対するコメント候補リスト1011
(2)カテゴリ「boy」に対するコメント候補リスト1012
(3)カテゴリ「woman」に対するコメント候補リスト1013
(4)カテゴリ「man」に対するコメント候補リスト1014
例えば、コメント候補リスト1011は、「* girl,* child,* kid,* woman, * person」であり、「* girl」、「* child」「* kid」「* person」という4個のコメント候補を持っていることを意味する。ここで「*」は正規表現のワイルドカードであり、例えば「* girl」に対して、「A girl」や「A little girl」のような文字列が対応する。ここでは、コメント候補を正規表現で表したが、それに限定されるものではなく、単純に「Girl」のような正規表現ではないものであっても良い。
【0043】
コメント候補リスト一覧1020には以下のコメント候補リストが含まれる。
【0044】
(1)カテゴリ「girl」に対するコメント候補リスト1021
(2)カテゴリ「boy」に対するコメント候補リスト1022
(3)カテゴリ「woman」に対するコメント候補リスト1023
(4)カテゴリ「man」に対するコメント候補リスト1024
例えば、コメント候補リスト1021は、「* girl,* girls,* child,* children,* kid,* kids,* woman,* women,* person,* people」であり、8つのコメント候補を持っていることを意味する。コメント候補リスト1011と異なるのは、複数系である「* children, * kids, * women, * people」が含まれていることである。コメント推論部411で推論されるコメントは、複数系で表現されることもあるため、このような複数形を含むコメント候補を利用しても良い。
【0045】
コメント候補リスト一覧1030には以下のコメント候補リストが含まれる。
【0046】
(1)カテゴリ「girl」に対するコメント候補リスト1031
(2)カテゴリ「boy」に対するコメント候補リスト1032
(3)カテゴリ「woman」に対するコメント候補リスト1033
(4)カテゴリ「man」に対するコメント候補リスト1034
例えば、コメント候補リスト1031は、「* girl > * child > * kid > * woman > * person」である。コメント候補は、「* girl」、「* child」、「* kid」、「* woman」、「* person」であり、コメント候補リスト1011と同じである。ただし、コメント候補リスト1031には優先順位が設定されており、例えば「* girl」の方が「* child」よりも優先順位が高い。「>」の記号は優先順位の大小を示す。優先順位は例えば、カテゴリの単語に対する単語間の類似度で基づいて設定されても良い。例えば、カテゴリ「girl」とコメント候補「* child」の類似度を計算し、その類似度に基づいて優先順位を設定する。類似度の計算時は、「*」を取り除き、カテゴリの「girl」とコメント候補の「child」とで単語間の類似度を計算する。具体的な類似度の計算には、例えば、単語をWord2Vecの手法でベクトル表現に変換し、そのコサイン類似度を計算する方法が用いられても良い。このようにして、カテゴリとコメント候補の類似度を計算し、その類似度が高いほど優先順位を高くする。ここでは、類似度の計算については、Word2Vecを用いた方法で説明したが、それに限定されるものではなく、他の方法を用いても良い。
【0047】
コメント候補リスト一覧1040には以下のコメント候補リストが含まれる。
【0048】
(1)カテゴリ「girl」に対するコメント候補リスト1041
(2)カテゴリ「boy」に対するコメント候補リスト1042
(3)カテゴリ「woman」に対するコメント候補リスト1043
(4)カテゴリ「man」に対するコメント候補リスト1044
コメント候補リスト1041、1042、1043、1044は、前述した優先順付きのコメント候補リストに、複数系を含んだ形である。コメント推論部411で推論されるコメントは、複数系で表現されることもあるため、このような複数形を含むコメント候補を利用しても良い。
【0049】
S715において、CPU101は、コメント変換部417によりコメント変換処理を実行する。以降の説明では、変換されたコメントを変換コメントと呼ぶことにする。コメント変換処理については、
図8を参照して説明する。
【0050】
S716において、CPU101は、コメント設定部562にコメントを表示する。ここで表示されるコメントは、S715でコメント変換処理が行われた場合は変換コメントである。一方、S707で検出された顔がないと判定された場合には、表示されるコメントは推論コメントである。S716の後、
図7の処理を終了する。
【0051】
図8は、S715のコメント変換処理を示すフローチャートである。まず、CPU101は、S706で検出された顔の数分、S801~S807の繰り返し処理を行うようループ処理を実行する。ここでは、このループ処理を第1ループ処理と呼ぶことにする。
【0052】
S802において、CPU101は、重要度設定部630で設定された重要度に基づいて、第1ループ処理で現在着目する顔が名称変換の対象であるか否かを判定する。本実施形態では、検出された顔の重要度設定を行わない場合はS802の条件判定は常にYESとなり、S803に進む。重要度設定を行う場合で、その重要度設定に基づいて、名称変換の対象でないと判定された場合、その顔に関しては第1ループ処理をスキップする。例えば、重要度設定部630で所定の重要度を表す「other」が設定されている場合、名称変換の対象ではないと判定する。
【0053】
S802で名称変換の対象であると判定された場合、CPU101は、コメント候補リストに含まれるコメント候補の数分、S803~S806の繰り返し処理を行うようにループ処理を実行する。ここでは、このループ処理を第2ループ処理と呼ぶことにする。
【0054】
S804において、CPU101は、第2ループ処理で現在着目するコメント候補のそれぞれについて、推論コメントに含まれるか否かを判定する。第2ループ処理で現在着目するコメント候補が推論コメントに含まれると判定された場合、S805において、CPU101は、コメント変換辞書に、推論コメントの中で一致した文字列と変換対象の名称との対の情報(以降、変換情報と呼ぶ)を追加する。コメント変換辞書は、文字列と名称とを変換するための組み合わせを規定したものであり、推論コメントに含まれる文字列の変換に用いられる。コメント変換辞書の例は後述する。コメント変換辞書に変換情報を追加した後、CPU101は、第2ループ処理を終了する。また、検出された全ての顔に対して処理が終了した場合、CPU101は、第1ループ処理を終了する。
【0055】
S808において、CPU101は、コメント変換辞書に変換情報が含まれるか否かを判定する。コメント変換辞書に変換情報が含まれると判定された場合、S809において、CPU101は、コメント変換辞書に基づいて、推論コメントを変換コメントに変換する。
【0056】
【0057】
図11は、フラフープをしている少女の画像601について、本実施形態を適用した場合の例である。
図11は、S701~S704の処理が実行された状態を示している。CPU101は、コメント推論部411により、ユーザ画像601からコメントを推論し、推論コメント「A girl is playing with hoop」を取得する(S705)。次に、CPU101は、顔検出部412により、ユーザ画像601から顔を検出し、顔領域611を取得する(S706)。次に、CPU101は、カテゴリ検出部413により顔領域611のカテゴリ「girl」を取得する(S708)。次に、CPU101は、名称設定部414により顔領域611の名称設定を行う(S709、S710)。
図11に示すように、名称設定フィールド621には「Olivia」が設定されている。本例では、重要度設定はポスター作成ソフトウェア500の設定でオフになっており、重要度設定はしないと設定されている。即ち、S711では、重要度を設定しないと判定される。
【0058】
次に、CPU101は、コメント候補リスト取得部415により、コメント候補リスト一覧1010を取得する(S714)。本例では、コメント候補リスト一覧1010からカテゴリ「girl」に対するコメント候補リスト1011「* girl,* child,* kid,* woman,* person」を取得する。
【0059】
次に、CPU101は、検出された顔の数分、コメント変換部417によりコメント変換処理を行う(S715)。ユーザ画像601の場合、検出された顔が1つであるため、S801~S807の第1ループ処理の実行回数は1回である。本例では、ポスター作成ソフトウェア500で重要度設定がオフに設定されているため、検出されたすべての顔が名称変換の対象となる(S802でYES)。
【0060】
取得されたコメント候補リスト1011の要素は5個であるため、S803~S806の第2ループ処理の実行回数は5回である。CPU101は、コメント候補リスト1011に含まれる「* girl」が推論コメントに含まれるか否かを判定する(S804)。ここで、含まれないと判定された場合、CPU101は、他のコメント候補である「* child」が推論コメント「A girl is playing with hoop」に含まれるか否かを判定する。このようにして、CPU101は、コメント候補リスト1011に含まれるコメント候補を1つずつ判定する。本例では、コメント候補「* girl」が、推論コメントの「A girl」の文字列に一致するので、S804からS805に進む。そして、CPU101は、一致した文字列と変換する名称との対をコメント変換辞書に追加する(S805)。本例では、コメント変換辞書に「A girl」に対して「Olivia」へ変換するという変換情報(以降、変換情報「A girl」->「Olivia」と表す)が追加される。そして、CPU101は、コメント変換辞書に変換情報が含まれるか否かを判定し(S808)、変換情報が含まれると判定された場合、CPU101は、コメント変換辞書を用いて、推論コメントを変換コメント「Olivia is playing with hula hoop」に変換する(S809)。そして、CPU101は、変換コメントをコメント設定部562に表示する(S716)。
【0061】
以上のように、本実施形態によれば、画像から検出された顔に基づきカテゴリを抽出する。そして、カテゴリに対応するコメント候補リストが推論コメントに含まれることに基づいて、推論コメントを、ユーザが設定した名称を含む変換コメントに変換する。それにより、汎用的なワードで構成される推論コメントに基づいて、ユーザが所望するコメントを適切に生成することができる。
【0062】
図12は、少女と男性が本を読んでいる画像1201について、本実施形態を適用した場合の例である。
図12は、S701~S704の処理が実行された状態を示している。CPU101は、コメント推論部411により、ユーザ画像1201からコメントを推論し、推論コメント「A little child and a man are reading a book」を取得する(S705)。次に、CPU101は、顔検出部412により、ユーザ画像1201から顔を検出し、顔領域1211、1212を取得する(S706)。次に、CPU101は、カテゴリ検出部413により顔領域1211のカテゴリ「girl」、顔領域1212のカテゴリ「man」を取得する(S708)。次に、CPU101は、名称設定部414により顔領域1211、1212の名称設定を行う(S709、S710)。
図12に示すように、本例では、名称設定フィールド1221に「Olivia」、名称設定フィールド1222に「Craig」が設定されている。本例では、重要度設定はポスター作成ソフトウェア500の設定でオフになっており、重要度設定はしないと設定されている。即ち、S711では、重要度を設定しないと判定される。
【0063】
次に、CPU101は、コメント候補リスト取得部415により、コメント候補リスト一覧1010を取得する(S714)。本例では、コメント候補リスト一覧1010からカテゴリ「girl」に対するコメント候補リスト1011「* girl,* child,* kid,* woman,* person」を取得する。また、カテゴリ「man」に対するコメント候補リスト1014「* man,* male,* guy,* person」を取得する。
【0064】
次に、CPU101は、検出された顔の数分、コメント変換部417によりコメント変換処理を行う(S715)。ユーザ画像1201の場合、検出された顔が2個であるため、S801~S807の第1ループ処理の実行回数は2回である。本例では、顔領域1211から先に第1ループ処理を実施する。
【0065】
顔領域1211のカテゴリは「girl」であるため、そのコメント候補リストは1011である。コメント候補リスト1011の要素は5個であるため、顔領域1211に対するS803~S806の第2ループ処理の実行回数は5回である。CPU101は、コメント候補リスト1011に含まれる「* girl」が推論コメントに含まれるか否かを判定する(S804)。ここで、含まれないと判定された場合、CPU101は、他のコメント候補である「* child」が推論コメントに含まれるか否かを判定する。このようにして、CPU101は、コメント候補リスト1011に含まれるコメント候補を1つずつ判定する。本例では、コメント候補「* child」が、推論コメント「A little child」の文字列に一致するので、S804からS805に進む。そして、CPU101は、変換情報「A little child」->「Olivia」をコメント変換辞書に追加する(S805)。
【0066】
次に、CPU101は、顔画像1212に対して第1ループ処理を実施する。顔領域1212のカテゴリは「man」であるため、そのコメント候補リストは1014である。コメント候補リスト1014の要素は4個であるため、顔領域1212に対する第2ループ処理の実行回数は4回である。まず、CPU101は、コメント候補リスト1014に含まれる「* man」が推論コメントに含まれるか否かを判定する(S804)。ここで、含まれないと判定された場合、CPU101は、他のコメント候補である「* male」が推論コメントに含まれるか否かを判定する。このようにして、CPU101は、コメント候補リスト1014に含まれるコメント候補を1つずつ判定する。本例では、コメント候補「* man」が、推論コメントの「a man」の文字列に一致するので、S804からS805に進む。そして、CPU101は、変換情報「a man」->「Craig」をコメント変換辞書に追加する(S805)。
【0067】
ユーザ画像1201の場合は、検出された顔が2個であるため、ここで第1ループ処理は終了する。上記のように、コメント変換辞書への追加が行われているので、S808では、コメント変換辞書に変換情報が含まれると判定される。そして、CPU101は、コメント変換辞書を用いて、推論コメントを変換コメント「Olivia and Craig are reading a book」に変換する(S809)。そして、CPU101は、変換コメントをコメント設定部562に表示する(S716)。
【0068】
以上のように、本実施形態によれば、画像から検出された複数の顔がカテゴリが異なる場合、そのようなケースに応じて、画像からユーザが所望するコメントを適切に生成することができる。
【0069】
なお、本例では、少女から先に第1ループ処理を実行するとして説明したが、それに限定されるものではなく、どの順番で変換処理を実施しても良い。また、重要度設定部416により設定された重要度の高いものから変換処理を実行するようにしても良い。
【0070】
図13は、海岸に2人の少女がいる画像1301について、本実施形態を適用した場合の例である。
図13は、S701~S704の処理が実行された状態を示している。CPU101は、コメント推論部411により、ユーザ画像1301からコメントを推論し、推論コメント「A couple of people standing on top of a sandy beach」を取得する(S705)。次に、CPU101は、顔検出部412により、ユーザ画像1301から顔を検出し、顔領域1311、1312を取得する(S706)。次に、CPU101は、カテゴリ検出部413により顔領域1311のカテゴリ「girl」、顔領域1312のカテゴリ「girl」を取得する(S708)。次に、CPU101は、名称設定部414により顔領域1311、1312の名称設定を行う(S709、S710)。
図13に示すように、本例では、名称設定フィールド1321に「Olivia」、名称設定フィールド1322に「Emma」が設定されている。本例では、重要度設定はポスター作成ソフトウェア500の設定でオフになっており、重要度設定はしないと設定されている。即ち、S711では、重要度を設定しないと判定される。
【0071】
次に、CPU101は、コメント候補リスト取得部415により、コメント候補リスト一覧1020を取得する(S714)。ここで、コメント候補リスト一覧1020からコメント候補リストを取得したのは、同じカテゴリ(本例では「girl」)が複数検出されたためである。同じカテゴリが複数検出された場合は、コメント推論部411によって推論されるコメントに複数系が含まれることが多い。例えば、カテゴリ「girl」が複数検出された場合の、推論コメントには「girls」が含まれることがある。本実施形態では、同じカテゴリが複数検出された場合に、複数系を含むコメント候補リストを使用するが、それに限定されるものでない。同じカテゴリが複数検出された場合でも、単数形だけのコメント候補リストを使用しても良い。また、逆に、あるカテゴリが1つだけ検出された場合でも、複数系を含むコメント候補リストを使用しても良い。本例では、コメント候補リスト一覧1020からカテゴリ「girl」に対するコメント候補リスト1021「* girl,* girls,* child,* children,* kid, * kids,* woman,* women,* person,* people」を取得する。
【0072】
次に、CPU101は、検出された顔の数分、コメント変換部417によりコメント変換処理を行う(S715)。ユーザ画像1301の場合、検出された顔が2個であるため、S801~S807の第1ループ処理の実行回数は2回である。本例では、顔領域1311から先に第1ループ処理を実行する。
【0073】
顔領域1311のカテゴリは「girl」であるため、そのコメント候補リストは1021である。コメント候補リスト1021の要素は10個であるため、顔領域1311に対するS803~S806の第2ループ処理の実行回数は10回である。CPU101は、コメント候補リスト1021に含まれる「* girl」が推論コメントに含まれるか否かを判定する(S804)。ここで、含まれないと判定された場合、CPU101は、他のコメント候補である「* girls」が推論コメントに含まれるか否かを判定する。このようにして、CPU101は、コメント候補リスト1021に含まれるコメント候補を1つずつ判定する。本例では、コメント候補「* people」が、推論コメントの「A couple of people」の文字列に一致するので、S804からS805に進む。そして、CPU101は、変換情報「A couple of people」->「Olivia」をコメント変換辞書に追加する(S805)。
【0074】
次に、CPU101は、顔画像1312に対して第1ループ処理を実施する。顔領域1312のカテゴリは「girl」であるため、そのコメント候補リストは1021である。コメント候補リスト1021の要素は10個であるため、顔領域1312に対する第2ループ処理の実行回数は10回である。まず、CPU101は、コメント候補リスト1021に含まれる「* girl」が推論コメントに含まれるか否かを判定する(S804)。ここで、含まれないと判定された場合、CPU101は、他のコメント候補である「* girls」が推論コメントに含まれるか否かを判定する。このようにして、CPU101は、コメント候補リスト1021に含まれるコメント候補を1つずつ判定する。本例では、コメント候補「* people」が、推論コメントの「A couple of people」の文字列に一致するので、S804からS805に進む。そして、CPU101は、変換情報「A couple of people」->「Emma」をコメント変換辞書に追加する(S805)。
【0075】
ユーザ画像1301の場合は、検出された顔が2個であるため、ここで第1ループ処理は終了する。上記のように、コメント変換辞書への追加が行われているので、S808では、コメント変換辞書に変換情報が含まれると判定される。そして、CPU101は、コメント変換辞書を用いて、推論コメントを変換する。本例では、「A couple of people」に対して、2つの変換対象「Olivia」と「Emma」があるため、CPU101は、接続詞「and」で繋げて「Olivia and Emma」に変換する(S809)。最終的に、推論コメントは変換コメント「Olivia and Emma standing on top of a sandy beach」に変換される。そして、CPU101は、変換コメントをコメント設定部562に表示する(S716)。
【0076】
以上のように、本実施形態によれば、画像から検出された複数の顔が同じカテゴリである場合、そのようなケースに応じて、画像からユーザが所望するコメントを適切に生成することができる。
【0077】
図14は、テニスをしている画像1401について、本実施形態を適用した場合の例である。
図14は、S701~S704の処理が実行された状態を示している。CPU101は、コメント推論部411により、ユーザ画像1401からコメントを推論し、推論コメント「a man teaching a girl to play tennis」を取得する(S705)。次に、CPU101は、顔検出部412により、ユーザ画像1401から顔を検出し、顔領域1411、1412を取得する(S706)。次に、CPU101は、カテゴリ検出部413により顔領域1411のカテゴリ「girl」、顔領域1412のカテゴリ「man」を取得する(S708)。次に、CPU101は、名称設定部414により顔領域1411、1412の名称設定を行う(S709、S710)。
図14に示すように、本例では、名称設定フィールド1421に「Olivia」が設定され、名称設定フィールド1422には何も設定されていない。本例では、顔領域1412の男性は顔領域1411の少女にテニスを教えており、顔領域1412については、名前を設定せず最終的な変換コメントにも男性の名前を入れないものとする。
【0078】
次に、CPU101は、コメント候補リスト取得部415により、コメント候補リスト一覧1010を取得する(S714)。本例では、コメント候補リスト一覧1010からカテゴリ「girl」に対するコメント候補リスト1011「* girl,* child,* kid,* woman,* person」を取得し、カテゴリ「man」に対するコメント候補リスト1014「* man,* male,* guy,* person」を取得する。
【0079】
次に、CPU101は、重要度設定部416により、人物の重要度を設定する(S712、S713)。重要度設定部630では、重要度設定フィールド1431と、重要度設定フィールド1432が設けられている。本例では、顔領域1411に対しては重要度設定フィールド1431で重要度「main」が設定されている。顔領域1412に対しては重要度設定フィールド1432で重要度「other」が設定されている。
【0080】
次に、CPU101は、検出された顔の数分、コメント変換部417によりコメント変換処理を行う(S715)。ユーザ画像1401の場合、検出された顔が2個であるため、S801~S807の第1ループ処理の実行回数は2回である。本例では、重要度設定部416で設定された優先度の高いものから順に第1ループ処理を実行する。本例では、顔領域1411の方が顔領域1412よりも優先順位が高いため、優先順位の高い顔領域1411から先に第1ループ処理を実行する。
【0081】
顔領域1411のカテゴリーは「girl」であるため、そのコメント候補リストは1011である。コメント候補リスト1011の要素は5個であるため、顔領域1411に対するS803~S806の第2ループ処理の実行回数は5回である。CPU101は、コメント候補リスト1011に含まれる「* girl」が推論コメントに含まれるか否かを判定する(S804)。ここで、含まれないと判定された場合、CPU101は、他のコメント候補である「* child」が推論コメントに含まれるか否かを判定する。このようにして、CPU101は、コメント候補リスト1011に含まれるコメント候補を1つずつ判定する。本例では、コメント候補「* girl」が、推論コメントの「a girl」の文字列に一致するので、S804からS805に進む。そして、CPU101は、変換情報「a girl」->「Olivia」をコメント変換辞書に追加する(S805)。
【0082】
次に、CPU101は、顔画像1412に対して第1ループ処理を実施する。上述のように、顔画像1412に関しては、重要度がotherで設定されている。そのため、顔画像1412に関しては、名称変換の対象でないと判断し(S802でNO)、顔画像1412に関する名称変換の処理は実行されない。
【0083】
ユーザ画像1401の場合は、検出された顔が2個であるため、ここで第1ループ処理は終了する。上記のように、コメント変換辞書への追加が行われているので、S808では、コメント変換辞書に変換情報が含まれると判定される。そして、CPU101は、コメント変換辞書により、推論コメントを変換コメント「a man teaching Olivia to play tennis」に変換する(S809)。そして、CPU101は、変換コメントをコメント設定部562に表示する(S716)。
【0084】
以上のように、本実施形態によれば、画像から検出された複数の顔間で重要度が設定されている場合、そのようなケースに応じて、画像からユーザが所望するコメントを適切に生成することができる。
【0085】
図15は、ギターを弾いている少女の画像1501について、本実施形態を適用した場合の例である。
図15は、S701~S704の処理が実行された状態を示している。CPU101は、コメント推論部411により、ユーザ画像1501からコメントを推論し、推論コメント「a little girl is playing guitar and a woman is watching it」を取得する(S705)。次に、CPU101は、顔検出部412により、ユーザ画像1501から顔を検出し、顔領域1511、1512を取得する(S706)。次に、CPU101は、カテゴリ検出部413により顔領域1511のカテゴリ「girl」、顔領域1512のカテゴリ「woman」を取得する(S708)。次に、CPU101は、名称設定部414により顔領域1511、1512の名称設定を行う(S709、S710)。
図15に示すように、本例では、名称設定フィールド1521に「Olivia」が設定され、名称設定フィールド1522に「Jenifer」が設定されている。次に、CPU101は、コメント候補リスト取得部415により、コメント候補リスト一覧1030を取得する(S714)。本例では、コメント候補リスト一覧1030からカテゴリ「girl」に対するコメント候補リスト1031「* girl > * child > * kid > * woman > * person」を取得する。また、カテゴリ「woman」に対するコメント候補リスト1033「* woman > * female > * person」を取得する。これらのコメント候補リストは優先順位付のリストである。
【0086】
次に、CPU101は、重要度設定部416により、人物の重要度を設定する(S712、S713)。重要度設定部630では、重要度設定フィールド1531と、重要度設定フィールド1532が設けられている。本例では、顔領域1511に対しては重要度設定フィールド1531で重要度「main」が設定されている。顔領域1512に対しては重要度設定フィールド1532で重要度「sub」が設定されている。
【0087】
次に、CPU101は、検出された顔の数分、コメント変換部417により、コメント変換処理を行う(S715)。ユーザ画像1501の場合、検出された顔が2個であるため、S801~S807の第1ループ処理の実行回数は2回である。本例では、重要度設定部416で設定された優先度の高いものから順に第1ループ処理を実行する。本例では、顔領域1511の方が顔領域1512よりも優先順位が高いため、優先順位の高い顔領域1511から先に第1ループ処理を実行する。
【0088】
顔領域1511のカテゴリは「girl」であるため、そのコメント候補リストは1031である。コメント候補リスト1031の要素は5個であるため、顔領域1511に対するS803~S806の第2ループ処理の実行回数は5回である。本例では、コメント候補リスト1031は優先順位付のリストであるため、第2ループ処理は優先度の高いものから順に行われる。まず、コメント候補リスト1031に含まれる「* girl」が最も優先順位が高いため、CPU101は、「* girl」が推論コメントに含まれるか否かを判定する(S804)。ここで、含まれないと判定された場合、CPU101は、次に優先順位の高いコメント候補である「* child」が推論コメントに含まれるか否かを判定する。このようにして、CPU101は、コメント候補リスト1031に含まれるコメント候補を優先順位順に1つずつ判定する。本例では、コメント候補「* girl」が、推論コメントの「a little girl」の文字列に一致するので、S804からS805に進む。そして、CPU101は、変換情報「a little girl」->「Olivia」をコメント変換辞書に追加する(S805)。
【0089】
次に、CPU101は、顔画像1512に対して第1ループ処理を実行する。顔領域1512のカテゴリは「woman」であるため、そのコメント候補リストは1033である。コメント候補リスト1033の要素は3個であるため、顔領域1512に対する第2ループ処理の実行回数は3回である。CPU101は、コメント候補リスト1033に含まれる「* woman」が推論コメントに含まれるか否かを判定する(S804)。ここで、含まれないと判定された場合、CPU101は、他のコメント候補である「* female」が推論コメントに含まれるか否かを判定する。このようにして、CPU101は、コメント候補リスト1033に含まれるコメント候補を1つずつ判定する。本例では、コメント候補「* woman」が、推論コメントの「a woman」の文字列に一致するので、S804からS805に進む。そして、CPU101は、変換情報「a woman」->「jenifer」をコメント変換辞書に追加する(S805)。
【0090】
ユーザ画像1501の場合は、検出された顔が2個であるため、ここで第1ループ処理は終了する。上記のように、コメント変換辞書への追加が行われているので、S808では、コメント変換辞書に変換情報が含まれると判定される。そして、CPU101は、コメント変換辞書により、推論コメントを変換コメント「Olivia is playing guitar and Jenifer is watching it」に変換する(S809)。そして、CPU101は、変換コメントをコメント設定部562に表示する(S716)。
【0091】
コメント候補リスト1031ではなく、優先順位付きのリストではないコメント候補リスト1011を用いた場合、「* girl」よりも「* woman」について先に第2ループ処理が実行される場合があり得る。この場合、「* woman」が推論コメントの「a woman」に一致するため、最終的な変換コメントが「a little girl is playing guitar and Olivia is watching it」となる。この結果、少女がギターを弾いているところを見ていることになり、ユーザ画像1501のコメントを正しく表現できていない。本実施形態では、優先順位付きのコメント候補リストを用いることで、正しい変換コメントを生成することができる。
【0092】
本実施形態では、特徴部分として人物の顔を検出することを説明したが、ペットなど動物であっても良い。また、上述の各実施形態では、英語でコメントを推論する例を説明したが、英語に限定されるものではなく、他の言語であっても良い。また、本実施形態では、名称として人物の名前を設定したが、それに限定されるものではなく、人物やペットのあだ名や呼び名であっても良い。本実施形態では、ポスター作成ソフトウェアで説明したが、それに限定されるものではない。フォトアルバム作成ソフトウェアや、はがきを作成するソフトウェアなど、画像に対してコメントを生成するようなソフトウェアであれば良い。
【0093】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0094】
本実施形態の開示は、以下の情報処理装置、方法およびプログラムを含む。
(項目1)
画像を取得する第1取得手段と、
前記第1取得手段により取得された前記画像から特徴部分を抽出する抽出手段と、
前記抽出手段により抽出された前記特徴部分に対応するワードを受け付ける受付手段と、
前記抽出手段により抽出された前記特徴部分のカテゴリを取得する第2取得手段と、
前記第2取得手段により取得された前記カテゴリと関連するワードであり、前記第1取得手段により取得された前記画像に基づき推論手段により推論されたコメントに含まれる当該ワードを、前記受付手段により受け付けたワードに置き換えることにより、前記推論されたコメントを変換する変換手段と、
を備えることを特徴とする情報処理装置。
(項目2)
前記変換手段により変換されたコメントを、前記第1取得手段により取得された前記画像とともに表示する表示手段をさらに備えることを特徴とする項目1に記載の情報処理装置。
(項目3)
前記カテゴリと、当該カテゴリと関連するワードと対応づけて記憶する記憶手段をさらに備えることを特徴とする項目1又は2に記載の情報処理装置。
(項目4)
前記カテゴリと、当該カテゴリと関連するワードとは類義語もしくは同義語の関係であることを特徴とする項目3に記載の情報処理装置。
(項目5)
前記記憶手段は、前記カテゴリと対応づけられた複数のワードを記憶することを特徴とする項目3又は4に記載の情報処理装置。
(項目6)
前記複数のワードそれぞれについて、前記推論されたコメントに含まれるか否かを判定する判定手段をさらに備え、
前記判定手段により前記推論されたコメントに含まれると判定された場合、前記変換手段は、当該含まれると判定されたワードを、前記受付手段により受け付けたワードに置き換える、
ことを特徴とする項目5に記載の情報処理装置。
(項目7)
前記複数のワードには優先順位が設定されており、
前記判定手段は、前記優先順位に従って、前記複数のワードそれぞれについて、前記推論されたコメントに含まれるか否かを判定する、
ことを特徴とする項目6に記載の情報処理装置。
(項目8)
前記第1取得手段により取得された前記画像の第1特徴部分および第2特徴部分それぞれについて前記第2取得手段により取得された前記カテゴリが異なる場合、
前記第1特徴部分のカテゴリに基づき前記判定手段により前記推論されたコメントに含まれると判定された第1ワードは前記受付手段により受け付けた前記第1特徴部分に対応する第2ワードに置き換えられ、
前記第2特徴部分のカテゴリに基づき前記判定手段により前記推論されたコメントに含まれると判定された第3ワードは前記受付手段により受け付けた前記第2特徴部分に対応する第4ワードに置き換えられることを特徴とする項目6又は7に記載の情報処理装置。
(項目9)
前記第1取得手段により取得された前記画像の第3特徴部分および第4特徴部分それぞれについて前記第2取得手段により取得された前記カテゴリが同じ場合、前記判定手段により前記推論されたコメントに含まれると判定された第5ワードは複数形を表していることを特徴とする項目6乃至8のいずれか1項に記載の情報処理装置。
(項目10)
前記第5ワードは、前記受付手段により受け付けた前記第3特徴部分に対応する第6ワードと前記第4特徴部分に対応する第7ワードに置き換えられることを特徴とする項目9に記載の情報処理装置。
(項目11)
前記第5ワードは、接続詞を伴って、前記第6ワードと前記第7ワードに置き換えられることを特徴とする項目10に記載の情報処理装置。
(項目12)
前記第1取得手段により取得された前記画像の第5特徴部分および第6特徴部分のそれぞれについて重要度を設定する設定手段をさらに備え、
前記判定手段による判定は、前記設定手段による設定に基づいて実行されることを特徴とする項目6乃至11のいずれか1項に記載の情報処理装置。
(項目13)
前記設定手段により設定された重要度が所定の重要度である場合、当該所定の重要度が設定された特徴部分について前記判定手段による判定は行われず、前記置き換えは行われないことを特徴とする項目12に記載の情報処理装置。
(項目14)
前記第5特徴部分について第1重要度が前記設定手段により設定され、前記第6特徴部分について前記第1重要度より低い第2重要度が前記設定手段により設定された場合、前記判定手段による判定は、前記第6特徴部分より先に前記第5特徴部分について行われることを特徴とする項目12に記載の情報処理装置。
(項目15)
前記特徴部分は、顔であることを特徴とする項目1乃至14のいずれか1項に記載の情報処理装置。
(項目16)
前記受付手段により受け付ける前記特徴部分に対応するワードは人物の固有の名称であり、前記推論されたコメントに含まれるワードは汎用的な名称であり、
前記変換手段は、前記汎用的な名称を前記固有の名称に置き換えることを特徴とする項目1乃至15のいずれか1項に記載の情報処理装置。
(項目17)
前記推論手段は、LSTM(Long Short-term memory)を用いたモデルであることを特徴とする項目1乃至16のいずれか1項に記載の情報処理装置。
(項目18)
情報処理装置において実行される方法であって、
画像を取得する第1取得工程と、
前記第1取得工程において取得された前記画像から特徴部分を抽出する抽出工程と、
前記抽出工程において抽出された前記特徴部分に対応するワードを受け付ける受付工程と、
前記抽出工程において抽出された前記特徴部分のカテゴリを取得する第2取得工程と、
前記第2取得工程において取得された前記カテゴリと関連するワードであり、前記第1取得工程において取得された前記画像に基づき推論手段により推論されたコメントに含まれる当該ワードを、前記受付工程において受け付けたワードに置き換えることにより、前記推論されたコメントを変換する変換工程と、
を有することを特徴とする方法。
(項目19)
項目1乃至17のいずれか1項に記載の情報処理装置の各手段としてコンピュータを機能させるためのプログラム。
【0095】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0096】
100 PC: 200 モバイル端末: 300 サーバ: 400 プリンタ: 101、201、301 CPU: 102、202、302 ROM: 103、203、303 RAM