[go: up one dir, main page]

JP6883761B2 - プログラム生成方法、プログラム生成装置および制御プログラム - Google Patents

プログラム生成方法、プログラム生成装置および制御プログラム Download PDF

Info

Publication number
JP6883761B2
JP6883761B2 JP2017154793A JP2017154793A JP6883761B2 JP 6883761 B2 JP6883761 B2 JP 6883761B2 JP 2017154793 A JP2017154793 A JP 2017154793A JP 2017154793 A JP2017154793 A JP 2017154793A JP 6883761 B2 JP6883761 B2 JP 6883761B2
Authority
JP
Japan
Prior art keywords
image
script
similar
similarity
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017154793A
Other languages
English (en)
Other versions
JP2018165974A (ja
Inventor
和豊 高田
和豊 高田
幸治 森川
幸治 森川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co Ltd
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 Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Publication of JP2018165974A publication Critical patent/JP2018165974A/ja
Application granted granted Critical
Publication of JP6883761B2 publication Critical patent/JP6883761B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • G06T11/10
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Processing Or Creating Images (AREA)

Description

本開示は、画像を変化させるためのコンピュータプログラムを生成するプログラム生成方法などに関する。
現在、ソースコードを記述しなくても、視覚的な操作でプログラミングが可能なビジュアルプログラミング言語が提供されている。MITメディアラボの開発したScratchは、子ども向けのビジュアルプログラミング言語である(非特許文献参照)。このScratchでは、子供などの初心者が、正しい構文の書き方などを覚えることなくプログラミングができる。例えば、Scratchでは、プログラム作成に必要な幾つかのコマンドがビジュアルブロックとして予め用意されている。子供などのユーザは、画像を描き、その用意された幾つかのコマンドから、自らが描いた画像に適用される1つまたは複数のコマンドを選択して組み合わせる。さらに、ユーザは、その選択したコマンドのパラメータを編集する。これによって、その画像に対するコンピュータプログラム(スクリプト)が生成される。そのコンピュータプログラムを実行することによって、ユーザに描かれた画像がアニメーションのように変化する。
このようなScratchを用いたプログラム生成方法では、遊び心のあるインタラクティブアニメーションなどを製作することができ、プログラミングの学習のやる気を子供などに起こさせることができる。
Scratch インターネット<URL:https://scratch.mit.edu/>
しかしながら、上記従来のプログラム生成方法では、コンピュータプログラムの生成に手間がかかるという問題がある。
そこで、本開示の非限定的で例示的な一態様は、画像を変化させるためのコンピュータプログラムを簡単に生成することができるプログラム生成方法を提供する。
本開示の一態様に係るプログラム生成方法は、類似画像を検索するプログラム生成装置におけるプログラム生成方法であって、前記プログラム生成装置の処理回路が、(a)ディスプレイに表示された少なくとも1つの画像を含む第1の画像セットを取得し、(b)N(N≧2)個の第2の画像セットと、N個の前記第2の画像セットのそれぞれに含まれる少なくとも1つの画像のそれぞれに関連付けられた、当該画像を変化させるためのコンピュータプログラムとを格納する記録媒体にアクセスし、(c)前記第1の画像セットに含まれる処理対象画像に類似する少なくとも1つの類似画像を前記記録媒体から検索し、(d)前記記録媒体において、検索された少なくとも1つの前記類似画像のそれぞれに関連付けられているコンピュータプログラムから、1つのコンピュータプログラムを選択することによって、前記処理対象画像に適用されるコンピュータプログラムを適用プログラムとして生成し、前記(c)では、(c1)前記記録媒体に格納されているN個の前記第2の画像セットのそれぞれについて、当該第2の画像セットに含まれる画像と前記処理対象画像との間の第1の類似度と、当該第2の画像セットと前記第1の画像セットとの間の第2の類似度と、前記第1の画像セットの完成度とに基づいて、当該第2の画像セットに含まれる画像の前記処理対象画像に対する総合類似度を算出し、(c2)前記記録媒体に格納されているN個の前記第2の画像セットのそれぞれに含まれる画像に対して算出された前記総合類似度に基づいて、少なくとも1つの前記類似画像を検索する。
なお、この包括的または具体的な態様は、装置、システム、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能な記録媒体で実現されてもよく、装置、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばCD−ROM(Compact Disc−Read Only Memory)などの不揮発性の記録媒体を含む。
本開示によれば、画像を変化させるためのコンピュータプログラムを簡単に生成することができる。本開示の一態様の付加的な恩恵及び有利な点は本明細書及び図面から明らかとなる。この恩恵及び/又は有利な点は、本明細書及び図面に開示した様々な態様及び特徴により個別に提供され得るものであり、その1以上を得るために全てが必要ではない。
図1は、実施の形態におけるプログラム生成システムの構成を示す図である。 図2は、実施の形態における端末装置のディスプレイに表示される画面の一例を示す図である。 図3は、実施の形態におけるコマンドリストの一例を示す図である。 図4は、実施の形態におけるプログラム生成装置の構成を示すブロック図である。 図5は、実施の形態におけるデータベースに格納されている各データの関連付けを示す図である。 図6は、実施の形態におけるプログラム生成装置によって生成されるスクリプトの一例を示す図である。 図7は、実施の形態における画像検索部による類似画像の検索に用いられる各類似度を示す図である。 図8は、実施の形態におけるプログラム生成装置の全体的な処理動作の一例を示すフローチャートである。 図9は、実施の形態における第1の重みαおよび第2の重みβを示す図である。 図10は、図8に示すステップS1300の類似画像の検索における詳細な処理動作の一例を示すフローチャートである。 図11は、図10に示すステップS1330の重みの導出における詳細な処理動作の一例を示すフローチャートである。 図12は、図10に示すステップS1330の重みの導出における詳細な処理動作の他の例を示すフローチャートである。 図13は、図10に示すステップS1340の類似画像リストの生成における詳細な処理動作の一例を示すフローチャートである。 図14は、実施の形態における類似画像リストの一例を示す図である。 図15は、図8に示すステップS1400のスクリプトの生成における詳細な処理動作の一例を示すフローチャートである。 図16は、実施の形態の変形例に係るプログラム生成装置の構成を示すブロック図である。 図17は、図8に示すステップS1400のスクリプトの生成における詳細な処理動作の一例を示すフローチャートである。 図18は、実施の形態における、選択スクリプトをスクリプト候補リストに追加する処理を示す図である。 図19は、実施の形態における、スクリプト候補リストに示される各候補スクリプトが実行される状態の一例を示す。 図20は、本開示の一態様に係るプログラム生成方法の一例を示すフローチャートである。 図21は、実施の形態における端末装置のディスプレイに表示される画面の一例を示す図である。 図22は、実施の形態における端末装置のディスプレイに表示される画面の一例を示す図である。
(本開示の基礎となった知見)
本発明者は、「背景技術」の欄において記載したScratchに関し、以下の問題が生じることを見出した。
上述のように、Scratchでは、それぞれ画像を変化させるためのコンピュータプログラムである複数種のコマンドが用意されている。ユーザは、入力手段(例えば、マウス及び/またはキーボード)を用いて、画像を選択、及び/または、画像を描画することによって、その画像を入力画像としてディスプレイに表示させる。次に、ユーザは、その入力画像に適用される少なくも1つのコマンドを、予め用意されている複数種のコマンドの中から選択する。そして、ユーザは、選択された少なくとも1つのコマンドのそれぞれに含まれるパラメータを設定する。パラメータは、画像の変化の度合いを示す。これにより、入力画像は、その選択された少なくとも1つのコマンドからなるスクリプトによって、設定されたパラメータに示される度合いだけ変化する。
しかしながら、ユーザが、入力画像に適用されるコマンドを複数種のコマンドからわざわざ選択して組み合わせるには手間がかかってしまう。そこで、入力画像に適用されるプログラム(スクリプト)を自動的に生成すれば、その手間を大幅に削減することができる。ここで、入力画像に適用されるプログラム(スクリプト)を自動的に生成するために、予め用意されたデータベースから、その入力画像に相応しいプログラムを検索することが考えられる。例えば、入力画像に類似する画像に対して既に生成されたプログラムがあれば、そのプログラムを検索することによって、入力画像に適用されるプログラムを自動的に生成することができる。
しかし、何れの画像が入力画像に類似しているかを適切に判断する必要があり、その判断に誤りがあれば、入力画像に相応しいプログラムを生成することができないという問題がある。
このような問題を解決するために、本開示の一態様に係るプログラム生成方法は、(a)ディスプレイに表示された少なくとも1つの画像を含む第1の画像セットを取得し、(b)N(N≧2)個の第2の画像セットと、N個の前記第2の画像セットのそれぞれに含まれる少なくとも1つの画像のそれぞれに関連付けられた、当該画像を変化させるためのコンピュータプログラムとを格納する記録媒体にアクセスし、(c)前記第1の画像セットに含まれる処理対象画像に類似する少なくとも1つの類似画像を前記記録媒体から検索し、(d)前記記録媒体において、検索された少なくとも1つの前記類似画像のそれぞれに関連付けられているコンピュータプログラムから、1つのコンピュータプログラムを選択することによって、前記処理対象画像に適用されるコンピュータプログラムを適用プログラムとして生成し、前記(c)では、(c1)前記記録媒体に格納されているN個の前記第2の画像セットのそれぞれについて、当該第2の画像セットに含まれる画像と前記処理対象画像との間の第1の類似度と、当該第2の画像セットと前記第1の画像セットとの間の第2の類似度と、前記第1の画像セットの完成度とに基づいて、当該第2の画像セットに含まれる画像の前記処理対象画像に対する総合類似度を算出し、(c2)前記記録媒体に格納されているN個の前記第2の画像セットのそれぞれに含まれる画像に対して算出された前記総合類似度に基づいて、少なくとも1つの前記類似画像を検索する。例えば、前記第1の類似度は、1つの前記第2の画像セットに含まれる少なくとも1つの画像のそれぞれと、前記処理対象画像との間の類似度のうちの最大の類似度であってもよい。また、例えば、前記(c2)では、前記記録媒体に格納されているN個の前記第2の画像セットのそれぞれで、第1の閾値以上の前記総合類似度が算出された画像を、前記類似画像として検索してもよい。
これにより、入力画像として描かれた処理対象画像に類似する少なくとも1つの類似画像が検索され、その少なくとも1つの類似画像のそれぞれに関連付けられているコンピュータプログラムから、1つのコンピュータプログラムが適用プログラムとして選択される。その結果、処理対象画像に適用されるコンピュータプログラムが自動的に生成される。したがって、ディスプレイに入力画像を描画したユーザは、その入力画像に適用されるコンピュータプログラムを、予め用意されている複数種のコマンドを組み合わせて作成する必要がない。その結果、入力画像を変化させるためのコンピュータプログラムを簡単に生成することができる。
また、本開示の一態様に係るプログラム生成方法では、第1の類似度および第2の類似度と、第1の画像セットの完成度とに基づいて、第2の画像セットに含まれる画像の処理対象画像に対する総合類似度が算出される。つまり、全体的な類似度および部分的な類似度と、第1の画像セットの完成度とに基づく総合類似度が算出され、その総合類似度を用いて類似画像が検索される。
例えば、第2の画像セットにボールを表す画像が含まれ、第1の画像セットの処理対象画像がボールを表している場合に、それらの画像だけを比較すれば、それらの画像は互いに類似している。しかし、第2の画像セットの全体が例えば野球の場面を表し、第1の画像セットの全体が例えばテニスまたはゴルフの場面を表している場合がある。このような場合には、第2の画像セットに含まれるボールを表す画像が、第1の画像セットに含まれるボールを表す処理対象画像に、類似していると言えない。また、第1の画像セットの完成度が低ければ、第2の画像セットと第1の画像セットとの間の全体的な類似度の信頼性は低く、逆に、第1の画像セットの完成度が高ければ、第2の画像セットと第1の画像セットとの間の全体的な類似度の信頼性は高い。
そこで、本開示の一態様に係るプログラム生成方法では、上述のように、全体的な類似度および部分的な類似度だけでなく、第1の画像セットの完成度にも基づく総合類似度が算出され、その総合類似度を用いて類似画像が検索される。したがって、処理対象画像に対してより適切な類似画像を検索することができる。その結果、処理対象画像により相応しいコンピュータプログラムを生成することができる。
また、前記(c1)では、前記第1の類似度と第1の重みとの積と、前記第2の類似度と第2の重みとの積との和を算出することによって、前記総合類似度を算出し、前記第1の重みは、前記完成度が高いほど小さい値であり、前記第2の重みは、前記完成度が高いほど大きい値であってもよい。
これにより、第1の類似度と第2の類似度とを、第1の画像セットの完成度に応じて適切に重み付け加算することができる。その結果、総合類似度の信頼性をより高めることができ、処理対象画像により相応しいコンピュータプログラムを生成することができる。
また、前記完成度は、前記第1の画像セットの描画開始からの経過時間の基準時間に対する比、または、前記第1の画像セットに含まれる画像の数の基準数に対する比であってもよい。
例えば、基準時間は、1つの画像セットの描画開始から完成に至るまでの平均時間であり、基準数は、1つの完成された画像セットに含まれる画像の平均的な個数である。これにより、第1の画像セットの完成度を適切な数値として示すことができ、総合類似度の信頼性をより高めることができる。
また、前記完成度が第2の閾値以下のときには、前記第1の重みは1であって、かつ、前記第2の重みは0であり、前記完成度が前記第2の閾値を超えるときには、前記第1の重みは0であって、かつ、前記第2の重みは1であってもよい。
これにより、第1の重みと第2の重みはそれぞれ0または1の二値で表されるため、総合類似度の算出の処理負担を軽減することができる。
また、前記(d)では、前記記録媒体に格納されているN個の前記第2の画像セットから、それぞれ前記類似画像を含むM(N>M≧1)個の第2の画像セットを特定し、M個の前記第2の画像セットから、最大の前記第2の類似度が算出された第2の画像セットを選択し、選択された前記第2の画像セットから、前記処理対象画像との類似度が最大の画像である前記類似画像を特定し、前記記録媒体において、特定された前記類似画像に関連付けられているコンピュータプログラムを選択することによって、前記適用プログラムを生成してもよい。
これにより、検索された少なくとも1つの類似画像を適切に1つに絞り込むことができる。したがって、処理対象画像に相応しいコンピュータプログラムを簡単に生成することができる。
また、前記(d)では、前記記録媒体に格納されているN個の前記第2の画像セットから、それぞれ前記類似画像を含むM(N>M≧2)個の第2の画像セットを特定し、前記記録媒体において、M個の前記第2の画像セットのそれぞれに含まれる前記類似画像に関連付けられているコンピュータプログラムのうち、互いに第3の閾値以上の差がある特徴量を有する複数のコンピュータプログラムのみを候補プログラムとして提示し、提示された複数の前記候補プログラムから、1つの前記候補プログラムを選択することによって、前記適用プログラムを生成し、M個の前記第2の画像セットのそれぞれに含まれる前記類似画像は、当該第2の画像セット内で前記処理対象画像との類似度が最大の画像であってもよい。
これにより、複数のコンピュータプログラムが候補プログラムとして提示されるため、ユーザは、これらの複数の候補プログラムから好ましいコンピュータプログラムを適用プログラムとして選択することができる。また、提示される複数の候補プログラムのそれぞれは、互いに第3の閾値以上の差がある特徴量を有する。つまり、これらの候補プログラムは互いに類似していない。したがって、同じような候補プログラムが幾つも提示されることを抑えることができ、ユーザによるコンピュータプログラムの選択肢の幅を増やすことができる。
また、前記(d)では、前記記録媒体において、M個の前記第2の画像セットのそれぞれに含まれる前記類似画像に関連付けられているコンピュータプログラムの特徴量をベクトルとして導出し、それぞれ導出されたベクトルを有するM個の前記コンピュータプログラムのうち、互いに第4の閾値未満のコサイン距離のベクトルを有する複数のコンピュータプログラムのみを、前記候補プログラムとして提示してもよい。
これにより、M個のコンピュータプログラムから、似ているコンピュータプログラムを適切に除くことができ、互いに似ていないコンピュータプログラムのみを候補プログラムとして提示することができる。
以下、実施の形態について、図面を参照しながら具体的に説明する。
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
また、各図は、模式図であり、必ずしも厳密に図示されたものではない。また、各図において、同じ構成部材については同じ符号を付している。
(実施の形態)
[システム]
図1は、本実施の形態におけるプログラム生成システムの構成を示す。
本実施の形態におけるプログラム生成システム1000は、例えば図1に示すように、プログラム生成装置100と、複数の端末装置200と、通信ネットワーク300とを備える。
複数の端末装置200はそれぞれ、例えばパーソナルコンピュータ、スマートフォンまたはタブレット端末などからなる。また、これらの端末装置200は、ユーザによる操作に応じて、その端末装置200のディスプレイ200dに入力画像を表示する。
通信ネットワーク300は、例えばWAN(Wide Area Network)、LAN(Local Area Network)またはインターネットなどであって、プログラム生成装置100と複数の端末装置200のそれぞれとを相互に通信可能に接続する。
プログラム生成装置100は、通信ネットワーク300を介して端末装置200と通信し、端末装置200のディスプレイ200dに表示される入力画像を変化させるためのコンピュータプログラムを生成する。本実施の形態におけるプログラム生成装置100は、コンピュータプログラムとしてスクリプトを生成する。
図2は、端末装置200のディスプレイ200dに表示される画面の一例を示す。
プログラム生成装置100は、通信ネットワーク300を介して、端末装置200のディスプレイ200dに、スクリプトを生成するためのスクリプト生成画面201を表示する。
スクリプト生成画面201は、画像入力領域202と、スクリプト表示編集領域203と、画像選択ボタン204a〜204cと、操作ボタンS、B1およびB2と、コマンドリストボタン208とを含む。
画像入力領域202には、ユーザによる端末装置200に対する操作に応じて描画された入力画像im1〜im3が表示される。なお、以下、ユーザによる端末装置200に対する操作を、入力操作という。
画像選択ボタン204a〜204cはそれぞれ、画像入力領域202に表示されている入力画像im1〜im3を選択するために用いられる。例えば、入力操作に応じて画像選択ボタン204aが選択されると、画像入力領域202に表示されている入力画像im1〜im3のうちの入力画像im1が、処理対象画像として選択される。例えば、入力操作が行われれば、プログラム生成装置100は、この処理対象画像に対してその入力操作に応じた処理を行う。具体的には、プログラム生成装置100は、処理対象画像に対して生成されたスクリプトを実行したり、そのスクリプトを端末装置200のディスプレイ200dに表示させたり、処理対象画像またはそのスクリプトの修正または編集を行う。なお、プログラム生成装置100は、新たに描画される入力画像については、画像選択ボタンの選択がなくても、その入力画像を処理対象画像として扱ってもよい。
スクリプト表示編集領域203には、処理対象画像に対して生成されたスクリプトが表示される。また、スクリプト表示編集領域203に表示されているスクリプトに含まれるパラメータは、入力操作に応じて修正または編集される。
操作ボタンSは、プログラム生成装置100に処理対象画像のスクリプトを生成させるために用いられる。つまり、操作ボタンSが入力操作によって選択されると、端末装置200は、通信ネットワーク300を介してスクリプトの生成をプログラム生成装置100に指示する。プログラム生成装置100は、端末装置200からその指示を受けると、処理対象画像に対してスクリプトを生成する。
操作ボタンB1は、画像入力領域202に表示されている処理対象画像の修正または編集を行うために用いられる。つまり、操作ボタンB1が入力操作によって選択されると、端末装置200は、通信ネットワーク300を介して処理対象画像の修正をプログラム生成装置100に指示する。プログラム生成装置100は、端末装置200からその指示を受けると、入力操作に応じた処理対象画像に対する修正または編集を、その端末装置200から待ち受ける状態になる。
操作ボタンB2は、画像入力領域202に新しい入力画像の追加を行うために用いられる。つまり、操作ボタンB2が入力操作によって選択されると、端末装置200は、通信ネットワーク300を介して新たな入力画像の追加をプログラム生成装置100に指示する。プログラム生成装置100は、端末装置200からその指示を受けると、入力操作に応じて新たに描画される入力画像を待ち受ける状態になる。端末装置200も、新たな入力画像の描画を受け付ける状態になり、その後の入力操作に応じて描画される新たな入力画像を画像入力領域202に表示する。
コマンドリストボタン208は、プログラム生成装置100で利用可能な複数種のコマンドを含むコマンドリスト(スクリプト制御関数リストともいう)を表示するために用いられる。つまり、このコマンドリストボタン208が入力操作によって選択されると、端末装置200は、通信ネットワーク300を介してコマンドリストの表示をプログラム生成装置100に指示する。プログラム生成装置100は、端末装置200からその指示を受けると、コマンドリストを端末装置200のディスプレイ200dに表示する。端末装置200は、そのコマンドリストの中から、入力画像に適用されるコマンドを入力操作に応じて選択してもよい。
図3は、コマンドリストの一例を示す。
例えば、コマンドリストは、「動き」に属する複数種のコマンド、「見た目」に属する複数種のコマンド、「音」に属する複数種のコマンド、「文字」に属する複数種のコマンド、および「制御」に属する複数種のコマンドなどを含む。
「動き」に属するコマンドは、入力画像を動かすためのコンピュータプログラムである。例えば、「動き」に属するコマンドには、コマンド「x座標を[p1]ずつ変える」およびコマンド「左方向に[p5]度回転する」などがある。また、「制御」に属するコマンドには、コマンド「[p17]回繰り返す」などがある。ここで、各コマンドに含まれている[pn](nは1以上の整数)は、画像または音などの変化の度合いを示すパラメータである。本実施の形態では、各コマンドに含まれるパラメータは、予め定められている。
プログラム生成装置100は、図3に示すコマンドリストからコマンドが入力操作に応じて選択された場合には、その選択されたコマンドのパラメータを入力操作に応じて変更することによって、入力画像に適用される新たなスクリプトを生成してもよい。
ここで、本実施の形態では、画像入力領域202に描画された少なくとも1つの入力画像から第1の画像セットが構成される。つまり、第1の画像セットは、画像入力領域202の全体に描画される画像、すなわち全体画像である。また、第1の画像セットに含まれる各入力画像は、その全体画像を構成する部分画像である。
[装置構成]
図4は、本実施の形態におけるプログラム生成装置100の構成を示すブロック図である。
プログラム生成装置100は、表示されている画像を変化させるためのコンピュータプログラムをスクリプトとして生成する装置である。このプログラム生成装置100は、インターフェース部101と、取得部102と、画像検索部103と、スクリプト選択部104と、重み算出部105と、表示制御部107とを備える。なお、プログラム生成装置100が備える上記各構成要素のうち、インターフェース部101を除く、取得部102と、画像検索部103と、スクリプト選択部104と、重み算出部105と、表示制御部107とは処理回路に備えられている。
インターフェース部101は、プログラム生成装置100の画像検索部103およびスクリプト選択部104がデータベースDBにアクセスするための機能を有する。具体的には、インターフェース部101は、USB(Universal Serial Bus)端子、HDMI(登録商標)(High-Definition Multimedia Interface)端子、または無線通信機器などである。
データベースDBは、N(N≧2)個の第2の画像セットと、N個の第2の画像セットのそれぞれに含まれる少なくとも1つの画像のそれぞれに関連付けられた、当該画像を変化させるためのスクリプトとを格納する記録媒体である。なお、N個の第2の画像セットに含まれる各々の画像セットは、上述の全体画像に相当し、N個の第2の画像セットに含まれる各々の画像セットに含まれる少なくとも1つの画像は、その全体画像を構成する部分画像に相当する。また、データベースDBに格納されている複数のスクリプトのそれぞれは、上述のコマンドリストに含まれる1つのコマンド、または複数のコマンドの組み合わせに相当する。
取得部102は、端末装置200のディスプレイ200dに描かれた少なくとも1つの画像を含む第1の画像セットを取得する。この少なくとも1つの画像のそれぞれは、上述の入力画像、すなわち第1の画像セットによって示される全体画像を構成する部分画像である。以下、入力画像を部分画像という。
また、取得部102は、操作ボタンSの選択などの入力操作に応じた指示を端末装置200から取得する。さらに、取得部102は、画像入力領域202に画像を描くために行われた入力操作を示す操作情報を端末装置200から取得する。なお、操作情報には、例えば、入力操作の種類およびパラメータと、その入力操作が行われた日時などが示されている。
重み算出部105は、取得部102を介して端末装置200から操作情報を逐次取得し、その操作情報から、第1の画像セットの完成度に応じた第1の重みαと第2の重みβとを導出する。
画像検索部103は、インターフェース部101を介してデータベースDBにアクセスする。そして、画像検索部103は、重み算出部105によって導出された第1の重みαと第2の重みβとを用いて、第1の画像セットに含まれる処理対象画像に類似する少なくとも1つの類似画像をデータベースDBから検索する。なお、処理対象画像は、第1の画像セットに含まれる少なくとも1つの部分画像のうち、画像選択ボタン204a〜204cなどのボタンによって選択された部分画像である。
スクリプト選択部104は、インターフェース部101を介してデータベースDBにアクセスする。そして、スクリプト選択部104は、データベースDBにおいて、検索された少なくとも1つの類似画像のそれぞれに関連付けられているスクリプトから、1つのスクリプトを選択することによって、その処理対象画像に適用されるスクリプトを適用スクリプト(すなわち適用プログラム)として生成する。
表示制御部107は、生成された適用スクリプトを実行することによって、端末装置200のディスプレイ200dに表示されている処理対象画像を変化させる。また、表示制御部107は、生成された適用スクリプトを端末装置200のディスプレイ200dに表示する。つまり、適用スクリプトは、スクリプト生成画面201のスクリプト表示編集領域203に表示される。
[データベース]
図5は、本実施の形態におけるデータベースDBに格納されている各データの関連付けを示す。
データベースDBに格納されている各画像には、その画像を識別するための識別子である画像IDが付与されている。さらに、データベースDBに格納されている各スクリプトにも、そのスクリプトを識別するための識別子であるスクリプトIDが付与されている。したがって、データベースDBでは、例えば、図5に示すように、画像ID「I_x_P1_1」を有する画像には、スクリプトID「S_x_P1_1」を有するスクリプトが関連付けられている。また、画像ID「I_x_P1_2」を有する画像には、スクリプトID「S_x_P1_2」を有するスクリプトが関連付けられている。
また、本実施の形態では、少なくとも1つの画像を含む第2の画像セットと、その少なくとも1つの画像のそれぞれに関連付けられたスクリプトとの組み合わせによって、プロジェクトが構成される。また、このようなプロジェクトは、例えば各端末装置200のユーザによって生成されて、データベースDBに格納される。つまり、ユーザによって画像入力領域202に描かれた全ての部分画像と、それらの部分画像に対して生成されたスクリプトとから、プロジェクトが構成される。そして、このプロジェクトがデータベースDBに格納される。そこで、データベースDBでは、各プロジェクトに対して、そのプロジェクトを識別するための識別子であるプロジェクトIDが付与されている。さらに、プロジェクトを生成したユーザに対して、そのユーザを識別するための識別子であるユーザIDが付与されている。データベースDBでは、複数の画像IDは、そのプロジェクトIDごとにグルーピングされ、さらに、複数のプロジェクトIDは、そのユーザIDごとにグルーピングされている。つまり、1つのプロジェクトに含まれる少なくとも1つの画像のそれぞれは、そのプロジェクトに関連付けられ、ユーザによって生成された少なくとも1つのプロジェクトのそれぞれは、そのユーザに関連付けられている。
ここで、データベースDBは、上述のように、N個の第2の画像セットと、N個の第2の画像セットのそれぞれに含まれる少なくとも1つの画像のそれぞれに関連付けられたスクリプトとを格納している。N個の第2の画像セットのそれぞれは、プロジェクトに含まれる少なくとも1つの画像のセットである。つまり、データベースDBは、N個のプロジェクトのそれぞれで、そのプロジェクトに含まれる各画像に関連付けられたスクリプトを格納している。
また、本実施の形態では、第2の画像セットに含まれる少なくとも1つの画像のそれぞれは、画像だけでなく、画像入力領域202におけるその画像の位置、大きさおよび向きなども示す。したがって、それらの画像を組み合わせることによって、第2の画像セットが、画像入力領域202の大きさの全体画像として構成される。
図6は、プログラム生成装置100によって生成されるスクリプトの一例を示す。なお、図6は、スクリプト生成画面201を示すが、画像入力領域202およびスクリプト表示編集領域203以外の構成については、省略する。
例えば、ユーザは、入力操作によって画像入力領域202に矢印の画像im2を描画する。プログラム生成装置100の取得部102は、その画像im2を処理対象画像として取得し、画像検索部103は、その処理対象画像im2に類似する画像を類似画像として、データベースDBから検索する。本実施の形態におけるプログラム生成装置100は、その類似画像に関連付けられたスクリプトをデータベースDBから選択することによって、適用スクリプトを生成する。例えば、適用スクリプトは、「x座標を[10]ずつ変える」、「左方向に[30]度回転する」、および「[10]回繰り返す」からなる。なお、これらのスクリプトに含まれる括弧内の数値は、画像の変化の度合いを示すパラメータである。そして、プログラム生成装置100の表示制御部107は、その生成された適用スクリプトをスクリプト表示編集領域203に表示し、その適用スクリプトを実行する。その結果、画像入力領域202に表示されている処理対象画像im2は、そのスクリプトにしたがって変化する。
ここで、本実施の形態における画像検索部103は、処理対象画像im2に相応しい適用スクリプトが生成されるように、第1の類似度と、第2の類似度と、第1の重みαと、第2の重みβとを用いて類似画像を検索する。つまり、画像検索部103は、第1の類似度と、第2の類似度と、第1の画像セットの完成度とに基づいて、第2の画像セットに含まれる画像の処理対象画像im2に対する総合類似度を算出する。第1の類似度は、データベースDBに格納されているN個の第2の画像セットのそれぞれに含まれる画像と、処理対象画像との間の類似度である。第2の類似度は、第2の画像セットと第1の画像セットとの間の類似度である。さらに、画像検索部103は、データベースDBに格納されているN個の第2の画像セットのそれぞれに含まれる画像に対して算出された総合類似度に基づいて、少なくとも1つの類似画像を検索する。
つまり、本実施の形態における画像検索部103は、第1の画像セットの処理対象画像im2とデータベースDBに格納されている画像との間の類似度だけでなく、第1の画像セットと第2の画像セットの間、すなわち全体画像同士の類似度も用いて、類似画像を検索する。
図7は、画像検索部103による類似画像の検索に用いられる各類似度を示す。
例えば、図7の(a)に示すように、画像入力領域202には、3つの部分画像im11〜im13を含む第1の画像セットが描画される。第1の画像セットはテニスの場面を表し、部分画像im11は、テニスコートに配置されたネットを表し、部分画像im12は、テニスボールを表し、部分画像im13は、テニスラケットを表す。ここで、入力操作によって、部分画像im12が処理対象画像として選択され、さらに、スクリプトの生成を指示するための操作ボタンSが選択される。これにより、プログラム生成装置100の画像検索部103は、例えば図7の(b)に示すように、データベースDBに格納されている第2の画像セットを取得する。第2の画像セットは、例えば野球の場面を表し、画像di11〜di13を含む。画像di11は、野球のピッチャーを表し、画像di12は、野球のボールを表し、画像di13は、野球のバットを表す。そして、画像検索部103は、その第2の画像セットに含まれる画像di11〜di13のうちの何れか1つの画像と、処理対象画像im12との間の画像間類似度を、第1の類似度Spとして算出する。
具体的には、第1の類似度は、第2の画像セットに含まれる画像di11〜di13のそれぞれと、処理対象画像im12との間の類似度のうちの最大の類似度である。例えば、画像検索部103は、画像di12と処理対象画像im12との間の画像間類似度が最大である場合には、その画像間類似度を第1の類似度Spとして算出する。さらに、画像検索部103は、図7の(a)に示す第1の画像セットと、図7の(b)に示す第2の画像セットとの間のセット間類似度を、第2の類似度Swとして算出する。
さらに、画像検索部103は、図7の(a)に示す第1の画像セットに含まれる部分画像im11〜im13の数に応じた数値、または、第1の画像セットの描画にかかった時間に応じた数値などを、第1の画像セットの完成度として導出する。
本実施の形態における画像検索部103は、このように導出される、第1の類似度と、第2の類似度と、第1の画像セットの完成度とを用いて類似画像を検索する。なお、類似画像の検索の詳細な処理については、フローチャートなどを用いて後述する。
[全体動作]
図8は、プログラム生成装置100の全体的な処理動作の一例を示すフローチャートである。
(ステップS1100)
プログラム生成装置100は、まず、ユーザによる入力操作に応じて、画像入力領域202における画像の描画または編集を行うための編集処理を行う。例えば、プログラム生成装置100は、新しい部分画像を受け付けたり、既に描画された部分画像の修正を行う。
(ステップS1200)
次に、プログラム生成装置100は、端末装置200からスクリプトの生成指示があるか否かを判定する。つまり、プログラム生成装置100は、スクリプト生成画面201の操作ボタンSが選択されたか否かを判定する。ここで、スクリプトの生成指示があると判定すると(ステップS1200のYes)、プログラム生成装置100は、ステップS1300の処理に進む。一方、スクリプトの生成指示がないと判定すると(ステップS1200のNo)、プログラム生成装置100は、ステップS1100の処理に戻る。
(ステップS1300)
プログラム生成装置100は、ステップS1200においてスクリプトの生成指示があると判定すると、第1の画像セットに含まれる処理対象画像に類似する類似画像をデータベースDBから検索する。
(ステップS1400)
次に、プログラム生成装置100は、ステップS1300によって検索された類似画像に基づいて、処理対象画像に適用されるスクリプトとして適用スクリプトを生成する。そして、プログラム生成装置100は、その適用スクリプトをスクリプト表示編集領域203に表示する。
(ステップS1500)
ここで、プログラム生成装置100は、端末装置200からスクリプトの実行指示があるか否かを判定する。ここで、スクリプトの実行指示があると判定すると(ステップS1500のYes)、プログラム生成装置100は、ステップS1600の処理に進む。一方、スクリプトの実行指示がないと判定すると(ステップS1500のNo)、プログラム生成装置100は、ステップS1700の処理に進む。
(ステップS1600)
プログラム生成装置100は、ステップS1500において適用スクリプトの実行指示があると判定すると、ステップS1400で生成された適用スクリプトを実行する。これによって、プログラム生成装置100は、第1の画像セットに含まれる処理対象画像を変化させる。
(ステップS1700)
プログラム生成装置100は、ステップS1500において適用スクリプトの実行指示がないと判定すると、さらに、ステップS1400で生成された適用スクリプトに対する修正指示が端末装置200からあるか否かを判定する。ここで、適用スクリプトの修正指示があると判定すると(ステップS1700のYes)、プログラム生成装置100は、ステップS1800の処理に進む。一方、適用スクリプトの修正指示がないと判定すると(ステップS1700のNo)、プログラム生成装置100は、ステップS1900の処理に進む。
(ステップS1800)
プログラム生成装置100は、ステップS1700において適用スクリプトの修正指示があると判定すると、その適用スクリプトをユーザの入力操作に応じて修正する。そして、プログラム生成装置100は、ステップS1900の処理に進む。
(ステップS1900)
プログラム生成装置100は、端末装置200から画像の編集指示があるか否かを判定する。つまり、プログラム生成装置100は、スクリプト生成画面201の操作ボタンB1またはB2が選択されたか否かを判定する。ここで、画像の編集指示があると判定すると(ステップS1900のYes)、プログラム生成装置100は、ステップS1100の処理に戻る。一方、画像の編集指示がないと判定すると(ステップS1900のNo)、プログラム生成装置100は、適用スクリプトの生成に関わる処理を全て終了する。
本実施の形態におけるプログラム生成装置100は、上記ステップS1100〜S1900の処理を行うことによって、上述のプロジェクトを生成する。
[類似画像検索]
ここで、ステップS1300における類似画像の検索について詳細に説明する。
本実施の形態における画像検索部103は、第1の類似度Spと第2の類似度Swとを重み付け加算することによって総合類似度Stを算出する。このとき、画像検索部103は、重み算出部105によって算出された第1の重みαおよび第2の重みβを用いる。つまり、画像検索部103は、総合類似度St=α・Sp×β・Swによって、第2の画像セットに含まれる画像の処理対象画像に対する総合類似度Stを算出する。
図9は、第1の重みαおよび第2の重みβを示す。
第1の重みαは、第1の類似度Spに乗算される重みであって、第1の画像セットの完成度が高いほど小さい0以上1以下の値である。第2の重みβは、第2の類似度Swに乗算される重みであって、第1の画像セットの完成度が高いほど大きい0以上1以下の値である。本実施の形態における画像検索部103は、第1の類似度Spと第1の重みαとの積と、第2の類似度Swと第2の重みβとの積との和を算出することによって、総合類似度Stを算出する。
これにより、第1の類似度Spと第2の類似度Swとを、第1の画像セットの完成度に応じて適切に重み付け加算することができる。つまり、完成度が低い場合には、第1の画像セットと第2の画像セットとの間の類似度が低くても、第1の画像セットの処理対象画像と、第2の画像セットの画像とでは、類似していることがあり得る。逆に、完成度が高い場合には、第1の画像セットと第2の画像セットとの間の類似度が高ければ、第1の画像セットの処理対象画像と、第2の画像セットの画像との間の類似度が低くても、巨視的には、それらの画像が類似していると扱った方がよい。
そこで、本実施の形態では、その完成度が低ければ、第1の類似度Spの重みを大きく、第2の類似度の重みを小さくし、逆に、その完成度が高ければ、第1の類似度Spの重みを小さく、第2の類似度の重みを大きくする。その結果、総合類似度の信頼性をより高めることができ、処理対象画像により相応しいスクリプトを生成することができる。
図10は、図8に示すステップS1300の類似画像の検索における詳細な処理動作の一例を示すフローチャートである。
(S1310)
画像検索部103は、取得部102を介して端末装置200から第1の画像セットを取得する。
(S1320)
重み算出部105は、取得部102を介して端末装置200から操作情報を取得する。
(S1330)
重み算出部105は、取得した操作情報に基づいて第1の重みαと第2の重みβとを導出する。
(S1340)
画像検索部103は、ステップS1310で取得された第1の画像セットと、ステップS1330で導出された第1の重みαおよび第2の重みβとを用いて、少なくとも1つの類似画像を示す類似画像リストを生成する。この類似画像リストの生成によって、少なくとも1つの類似画像が検索される。
図11は、図10に示すステップS1330の重みの導出における詳細な処理動作の一例を示すフローチャートである。
(S1331)
重み算出部105は、端末装置200から取得部102を介して取得した操作情報から、描画指数mを特定する。描画指数mは、例えば、第1の画像セットの描画時間、すなわち、第1の画像セットの描画が開始されてからの経過時間である。例えば、操作情報には、入力操作の内容と、その入力操作が行われた日時とが示されている。したがって、重み算出部105は、第1の画像セットに対する最初の入力操作が行われた日時をその操作情報から導出し、その日時から現在の日時での経過時間を、描画指数mとして特定する。または、描画指数mは、第1の画像セットに含まれる部分画像の数である。なお、描画指数mが部分画像の数である場合には、重み算出部105は、操作情報ではなく、第1の画像セットからその描画指数mを特定してもよい。
(S1332)
重み算出部105は、完成描画指数nを取得する。この完成描画指数nは、画像セットの完成までの平均描画時間、すなわち、画像セットの描画開始から完成までに至る平均的な時間である。または、完成描画指数nは、完成された画像セットにおける平均部分画像数、すなわち、完成された画像セットに含まれる部分画像の平均的な数である。重み算出部105は、その完成描画指数nを例えばデータベースDBから取得してもよく、データベースDB以外の他の記録媒体から取得してもよい。
(S1333)
重み算出部105は、描画指数mと完成描画指数nとを用い、m/nによって示される完成度を導出する。つまり、完成度は、画像セットの完成までの平均描画時間に対する第1の画像セットの描画時間の比である。平均描画時間がn分であり、第1の画像セットの描画時間がm分であれば、完成度は、m分/n分である。または、完成度は、完成された画像セットの平均部分画像数に対する第1の画像セットの部分画像数の比である。平均部分画像数がn個であり、第1の画像セットの部分画像数がm個であれば、完成度は、m個/n個である。
このように、本実施の形態では、完成度は、第1の画像セットの描画開始からの経過時間の基準時間に対する比、または、第1の画像セットに含まれる画像(すなわち部分画像)の数の基準数に対する比である。基準時間は、上述の平均描画時間であり、基準数は、上述の平均部分画像数である。なお、平均描画時間は、ユーザごとの平均的な時間であってもよく、複数人の平均的な時間であってもよい。同様に、平均部分画像数は、ユーザごとの平均的な部分画像の数であってもよく、複数人の平均的な部分画像の数であってもよい。
(S1334)
重み算出部105は、第1の重みαおよび第2の重みβをそれぞれ、α=1−m/nおよびβ=m/nによって算出する。このように、本実施の形態における第1の重みαは、完成度が高いほど小さい値であり、第2の重みβは、完成度が高いほど大きい値である。
図12は、図10に示すステップS1330の重みの導出における詳細な処理動作の他の例を示すフローチャートである。
(S1336)
重み算出部105は、端末装置200から取得部102を介して取得した操作情報から、描画指数mを完成度として特定する。描画指数mは、上述と同様、第1の画像セットの描画時間、または第1の画像セットに含まれる部分画像の数である。なお、描画指数mが部分画像の数である場合には、重み算出部105は、操作情報ではなく、第1の画像セットからその描画指数mを特定してもよい。
(S1337)
重み算出部105は、描画指数mが閾値以下であるか否かを判定する(ステップS1337)。ここで、描画指数mが閾値以下であると判定すると(ステップS1337のYes)、重み算出部105は、ステップS1338の処理に進む。一方、描画指数mが閾値を超えると判定すると(ステップS1337のNo)、重み算出部105は、ステップS1339の処理に進む。
(S1338)
重み算出部105は、描画指数mが小さいため、すなわち完成度が低いため、第1の重みαおよび第2の重みβをそれぞれ、α=1およびβ=0として導出する。
(S1339)
重み算出部105は、描画指数mが大きいため、すなわち完成度が高いため、第1の重みαおよび第2の重みβをそれぞれ、α=0およびβ=1として導出する。
このように、本実施の形態では、第1の重みαおよび第2の重みβはそれぞれ二値で表されてもよい。つまり、完成度が第2の閾値以下のときには、第1の重みαは1であって、かつ、第2の重みβは0であり、完成度が第2の閾値を超えるときには、第1の重みαは0であって、かつ、第2の重みβは1である。これにより、第1の重みαと第2の重みβはそれぞれ0または1の二値で表されるため、総合類似度Stの算出の処理負担を軽減することができる。
なお、図12に示す例では、描画指数mを完成度として用いたが、図11に示す例と同様に、m/nを完成度として用い、その完成度の高さに応じて、第1の重みαおよび第2の重みβをそれぞれ二値で表してもよい。
図13は、図10に示すステップS1340の類似画像リストの生成における詳細な処理動作の一例を示すフローチャートである。
(S1341)
画像検索部103は、第1の画像セットの全体の画像特徴量と、第1の画像セットに含まれる処理対象画像の画像特徴量とを算出する。これらの画像特徴量は、例えばSIFT(Scale-Invariant Feature Transform)またはSURF(Speeded Up Robust Features)などによってベクトルとして算出される。
(S1342)
画像検索部103は、データベースDBから第2の画像セットを選択する。
(S1343)
画像検索部103は、ステップS1341と同様に、選択された第2の画像セットの全体の画像特徴量と、その第2の画像セットに含まれる各画像の画像特徴量とを算出する。
(S1344)
画像検索部103は、第2の画像セットに含まれる各画像の特徴量を示すベクトルと、処理対象画像の特徴量を示すベクトルとの間の各々の距離(すなわち画像間距離)を算出する。この画像間距離は、例えばコサイン距離である。画像検索部103は、これらの算出された画像間距離のうち、最大の画像間距離を選択する。この最大の画像間距離は、上述の最大の画像間類似度、すなわち第1の類似度Spに相当する。なお、この最大の画像間距離が算出された、第2の画像セットに含まれる画像を、以下、最類似部分画像という。
(S1345)
画像検索部103は、第2の画像セットと第1の画像セットとの間の距離(すなわちセット間距離)を算出する。このセット間距離は、第2の画像セットの全体の画像特徴量であるベクトルと、第1の画像セットの全体の画像特徴量であるベクトルとの間の距離であって、上述と同様に、例えばコサイン距離である。また、このセット間距離は、上述のセット間類似度、すなわち第2の類似度Swに相当する。
(S1346)
画像検索部103は、第2の画像セットの最類似部分画像の処理対象画像に対する総合類似度Stを算出する。このとき、画像検索部103は、ステップS1344およびステップS1345で算出された第1の類似度Spおよび第2の類似度Swと、ステップS1330で算出された第1の重みαおよび第2の重みβとを用いる。つまり、画像検索部103は、St=α・Sp+β・Swによって、総合類似度Stを算出する。
(S1347)
画像検索部103は、総合類似度Stが閾値以上か否かを判定する。ここで、総合類似度Stが閾値以上であると判定すると(ステップS1347のYes)、画像検索部103は、ステップS1348の処理に進む。一方、総合類似度Stが閾値未満であると判定すると(ステップS1347のNo)、画像検索部103は、ステップS1349の処理に進む。
(S1348)
画像検索部103は、総合類似度Stが閾値以上の場合には、その総合類似度Stが算出された第2の画像セットを、類似画像リストに追加する。具体的には、画像検索部103は、第2の画像セットに対応するプロジェクトID、その総合類似度St、および、その総合類似度Stが算出された最類似部分画像の画像IDなどを、類似画像リストに追加する。なお、画像検索部103は、総合類似度Stが閾値未満の場合には、その総合類似度Stが算出された第2の画像セットなどを、類似画像リストに追加しない。なお、画像検索部103は類似画像リストを保持してもよい。
つまり、本実施の形態では、データベースDBに格納されているN個の第2の画像セットのそれぞれで、第1の閾値以上の総合類似度Stが算出された画像、すなわち最類似部分画像を、類似画像として検索する。
(S1349)
画像検索部103は、データベースDB内の全ての第2の画像セットを選択したか否かを判定する。ここで、全ての第2の画像セットを選択したと判定すると(ステップS1349のYes)、画像検索部103は、類似画像の検索を終了する。一方、全ての第2の画像セットを選択していないと判定すると(ステップS1349のNo)、画像検索部103は、ステップS1342の処理に戻る。このときには、ステップS1342において、未だ選択されていない第2の画像セットがデータベースDBから選択される。
図14は、類似画像リストの一例を示す。
類似画像リストには、図14に示すように、閾値以上の総合類似度Stが算出された第2の画像セットが示されている。なお、第2の画像セットは、その第2の画像セットに対応するプロジェクトIDによって示されている。
具体的には、類似画像リストは、プロジェクトIDだけでなく、第2の類似度Swと、少なくとも1つの画像IDと、それらの画像IDのうちの最類似部分画像の画像IDと、総合類似度Stとを、そのプロジェクトIDに関連付けて示す。
第2の類似度Swは、関連付けられているプロジェクトIDの第2の画像セットに対して算出された上述のセット間類似度またはセット間距離である。少なくとも1つの画像IDは、関連付けられているプロジェクトIDの第2の画像セットに含まれる全ての画像の画像IDである。最類似部分画像の画像IDは、その全ての画像のうちの1つの画像の画像IDである。総合類似度Stは、その最類似部分画像に対して算出された類似度である。
例えば、画像検索部103は、図13のステップS1347において、総合類似度Stが閾値以上であると判定すると、その総合類似度Stと、その総合類似度Stが算出された最類似部分画像の画像IDとを、類似画像リストに追加する。例えば、総合類似度Stが、図14に示すように「0.90」であれば、画像検索部103は、その総合類似度St「0.90」と、その総合類似度Stが算出された最類似部分画像の画像ID「I_m_P5_1」とを類似画像リストに追加する。
さらに、画像検索部103は、その最類似部分画像を含む第2の画像セットのプロジェクトIDと、その第2の画像セットに対して算出された第2の類似度Swと、その第2の画像セットに含まれる各画像の画像IDとを、類似画像リストに追加する。例えば、最類似部分画像の画像IDが「I_m_P5_1」である場合、画像検索部103は、その最類似部分画像を含む第2の画像セットのプロジェクトID「m_P5」を類似画像リストに追加する。さらに、画像検索部103は、その第2の画像セットに含まれる各画像の画像ID「I_m_P5_1、I_m_P5_2、・・・」を類似画像リストに追加する。
このような類似画像リストは、第1の画像セットに含まれる処理対象画像に類似する少なくとも1つの類似画像を最類似部分画像(具体的には、最類似部分画像の画像ID)として示す。
図15は、図8に示すステップS1400のスクリプトの生成における詳細な処理動作の一例を示すフローチャートである。
(S1401)
スクリプト選択部104は、画像検索部103から類似画像リストを取得する。
(S1402)
スクリプト選択部104は、その類似画像リストを参照し、第1の画像セットに最も類似する第2の画像セットを選択する。つまり、スクリプト選択部104は、類似画像リストに示される最大の第2の類似度Swに関連付けられているプロジェクトIDを、類似画像リストを参照することによって特定する。これによって、特定されたプロジェクトIDによって示される第2の画像セットが選択される。
(S1403)
スクリプト選択部104は、ステップS1402で選択された第2の画像セットから、第1の画像セットに含まれる処理対象画像に最も類似する画像を選択する。つまり、スクリプト選択部104は、選択された第2の画像セットのプロジェクトIDに関連付けられている最類似部分画像の画像IDを、類似画像リストを参照することによって特定する。これによって、処理対象画像に最も類似する画像が選択される。
(S1404)
スクリプト選択部104は、ステップS1403で選択された画像、すなわち最類似部分画像の画像IDに関連付けられているスクリプトを、データベースDBから選択する。このようにスクリプトが選択されることによって、そのスクリプトが適用スクリプトとして生成される。そして、スクリプト選択部104は、その適用スクリプトを表示制御部107に出力する。
(S1405)
表示制御部107は、スクリプト選択部104から適用スクリプトを取得し、その適用スクリプトを端末装置200のディスプレイ200dに表示する。つまり、適用スクリプトが、スクリプト生成画面201のスクリプト表示編集領域203に表示される。
このように、本実施の形態では、ステップS1401で類似画像リストを取得することによって、データベースDBに格納されているN個の第2の画像セットから、それぞれ類似画像(すなわち最類似部分画像)を含むM(N>M≧1)個の第2の画像セットを特定する。そして、ステップS1402では、M個の第2の画像セットから、最大の第2の類似度Swが算出された第2の画像セットを選択する。次に、ステップS1403では、選択された第2の画像セットから、処理対象画像との類似度が最大の画像である類似画像(すなわち最類似部分画像)を特定する。そして、ステップS1404では、データベースDBにおいて、特定された類似画像に関連付けられているスクリプトを選択することによって、適用スクリプトを生成する。
これにより、ステップS1300で検索された少なくとも1つの類似画像(すなわち最類似部分画像)を、適切に1つに絞り込むことができる。したがって、処理対象画像に相応しいスクリプトを簡単に生成することができる。
図21に類似画像の検索前のディスプレイ200dの画面から類似画像の検索後のディスプレイ200dの画面の遷移の一例を示す。ここでの検索とは、図8における類似画像の検索(S1300)を意味する。図21の(a)及び(b)は、完成度が低い場合の画面の例である。具体的には、図21の(a)は、検索前の画面の例であり、図21の(b)は、類似画像の検索前の画面の例である。図21の(c)及び図21の(d)は、完成度が高い場合の画面の例である。図21の(c)は、類似画像の検索前の画面の例であり、図21の(d)は、類似画像の検索後の画面の例である。図21の(a)〜(d)は、図2に示すスクリプト生成画面201と同様である。
表示制御部107は、画像検索部103が類似画像の検索時に用いた完成度に基づいて、スクリプト生成画面201に、類似画像の検索時に用いた完成度に関する情報を表示する。なお、表示制御部107は、図8に示すS1300の後、ディスプレイ200dの画面に、完成度に関する情報を表示しても良い。
図21の(a)及び図21の(c)は、入力画像im4に対する類似画像の検索前の状態を示す。図21の(b)に示すように、完成度が低い場合、表示制御部107は、画像選択領域204d内における選択画像204eを強調するため、選択画像204eを背景204fで囲うように表示する。ここでの背景204fとは、画像選択領域204dの周囲と異なる色を用いた表示、スクリプト生成画面201の内で目立つ色を用いた表示(例えば、原色の色またはスクリプト生成画面201の内で利用されていない色)、周囲を囲む線の太さを他の領域を囲む線より太い線を用いた表示、周囲を囲む線の色を目立つ色を用いた表示、または点滅する表示を含む。図21の(a)の表示と比べて、選択画像204eが強調される表示を意味する。これにより、選択された画像に対して重みを大きくして、類似画像を検索されたことを視覚的にわかるように表示される。
図21の(b)に示すように、完成度が高い場合、表示制御部107は、画像選択領域204d全体を背景204gで囲うように表示する。ここでの背景204gとは、画像選択領域204dの周囲と異なる色を用いた表示、スクリプト生成画面201の内で目立つ色を用いた表示(例えば、原色の色またはスクリプト生成画面201の内で利用されていない色)、周囲を囲む線の太さを他の領域を囲む線より太い線を用いた表示、周囲を囲む線の色を目立つ色を用いた表示、または点滅する表示を含む。図21の(a)の表示と比べて、画像選択領域204d全体が強調される表示を意味する。これにより、画像選択領域204dに表示される全ての画像に対して重みを大きくして、類似画像を検索されたことを視覚的にわかるように表示される。
つまり、同じ画像(入力画像im4)に対する検索であっても、完成度の違いにより検索後の画面は異なる表示にすることにより、ユーザに類似画像検索時の重みが視覚的にわかるように表示をされる。このように、完成度に応じて、類似画像の検索後の画面表示を変えることにより、ユーザは、いずれの画像に重み付されて類似画像が検索されているかを容易に理解することができる。
また、図22に、類似画像の検索前のディスプレイ200dの画面から類似画像の検索後のディスプレイ200dの画面の遷移のその他の一例を示す。図22の(a)及び図22の(b)は、完成度が低い場合の画面の例である。具体的には、図22の(a)は、検索前の画面の例であり、図22の(b)は、類似画像の検索前の画面の例である。図22の(c)及び(d)は、完成度が高い場合の画面の例である。図22の(c)は、類似画像の検索前の画面の例であり、図22の(d)は、類似画像の検索後の画面の例である。図22(a)〜(d)は、図2に示すスクリプト生成画面201と同様である。図22が図21と異なる点は、類似画像検索時の重みを視覚的に表示する方法が異なることである。具体的には、図21では、画像選択領域204dにおいて、画像を強調されているのに対して、図22では、画像入力領域202において、画像が強調されていることである。
図22の(b)において、図21の(b)の背景204fに対応して、背景204hが画像入力領域202に表示される。図22の(d)において、図21の(d)の背景204gに対応して、背景204iが画像入力領域202に表示される。
背景204h及び背景204iは、画像入力領域202の周囲と異なる色を用いた表示、スクリプト生成画面201の内で目立つ色を用いた表示(例えば、原色の色またはスクリプト生成画面201の内で利用されていない色)、周囲を囲む線の太さを他の領域を囲む線より太い線を用いた表示、周囲を囲む線の色を目立つ色を用いた表示、または点滅する表示を含む。
以上のように、本実施の形態におけるプログラム生成装置100では、第1の類似度Spおよび第2の類似度Swと、第1の画像セットの完成度とに基づく総合類似度Stが算出され、その総合類似度Stを用いて類似画像が検索される。したがって、処理対象画像に対してより適切な類似画像を検索することができる。その結果、処理対象画像により相応しいスクリプトを生成することができる。
(変形例)
上記実施の形態では、第1の画像セットの処理対象画像に対して1つのスクリプトを選択し、そのスクリプトを適用スクリプトとして提示する。本変形例では、複数のスクリプトを候補スクリプトとして選択し、その複数の候補スクリプトからユーザによって選択された1つの候補スクリプトを適用スクリプトとして提示する。
図16は、上記実施の形態の変形例に係るプログラム生成装置の構成を示すブロック図である。
本変形例に係るプログラム生成装置100aは、上記実施の形態におけるプログラム生成装置100と同様の構成要素を備えるとともに、さらに、候補提示部108を備える。つまり、本変形例に係るプログラム生成装置100aは、インターフェース部101と、取得部102と、画像検索部103と、スクリプト選択部104と、重み算出部105と、表示制御部107と、候補提示部108とを備える。なお、上記実施の形態におけるプログラム生成装置100と同様、プログラム生成装置100aが備える上記各構成要素のうち、インターフェース部101を除く各構成要素は処理回路に備えられている。
本変形例に係るプログラム生成装置100aは、図8のフローチャートによって示される処理動作を行うが、スクリプトの生成を行うステップS1400では、図15のフローチャートによって示される処理動作とは異なる処理動作を行う。
図17は、図8に示すステップS1400のスクリプトの生成における詳細な処理動作の一例を示すフローチャートである。
(S1411)
スクリプト選択部104は、画像検索部103から類似画像リストを取得する。
(S1412)
スクリプト選択部104は、その類似画像リストを参照し、第2の類似度Swの降順に第2の画像セットを選択する。つまり、スクリプト選択部104は、類似画像リストに示される未だ選択されていない少なくとも1つの第2の画像セットのプロジェクトIDのうち、最も大きい第2の類似度Swに関連付けられたプロジェクトIDを選択する。このプロジェクトIDの選択によって、そのプロジェクトIDに対応する第2の画像セットが選択される。
(S1413)
スクリプト選択部104は、ステップS1412で選択された第2の画像セットに含まれる少なくとも1つの画像のうち、第1の画像セットに含まれる処理対象画像に最も類似する画像を選択する。つまり、スクリプト選択部104は、類似画像リストを参照し、選択された第2の画像セットのプロジェクトIDに関連付けられている最類似部分画像の画像IDを選択する。この画像IDの選択によって、処理対象画像に最も類似する画像が選択される。
(S1414)
スクリプト選択部104は、ステップS1413で選択された画像(すなわち最類似部分画像)の画像IDに関連付けられているスクリプトを、選択スクリプトとしてデータベースDBから選択する。
(S1415)
スクリプト選択部104は、選択スクリプトのスクリプトベクトルSv1を導出する。
(S1416)
スクリプト選択部104は、スクリプト候補リストに示される各スクリプトのスクリプトベクトルSv2を特定する。スクリプト候補リストの詳細については後述する。
(S1417)
スクリプト選択部104は、ステップS1415で導出されたスクリプトベクトルSv1と、ステップS1416で特定された各スクリプトベクトルSv2との間の距離、例えばコサイン距離が閾値以下か否かを判定する。ここで、その距離が閾値以下であると判定すると(ステップS1417のYes)、スクリプト選択部104は、ステップS1418の処理に進む。なお、スクリプト候補リストにスクリプトが示されず、その距離が閾値以下か否かを判定できない場合にも、スクリプト選択部104は、ステップS1418の処理に進む。一方、その距離が閾値を超えると判定すると(ステップS1417のNo)、スクリプト選択部104は、ステップS1419の処理に進む。
(S1418)
スクリプト選択部104は、選択スクリプトをスクリプト候補リストに追加する。つまり、スクリプト候補リストに示される各スクリプトのスクリプトベクトルSv2との間の距離が長いスクリプトベクトルSv1を有するスクリプトが、そのスクリプト候補リストに新たに追加される。言い換えれば、スクリプト候補リストに示される何れのスクリプトベクトルSv2にも似ていないスクリプトベクトルSv1を有するスクリプトが、そのスクリプト候補リストに追加される。具体的には、選択スクリプトのスクリプトIDが、スクリプト候補リストに追加される。
(S1419)
スクリプト選択部104は、スクリプト候補リストに示されるスクリプトの数が最大数に達したか否かを判定する。最大数は、スクリプト候補リストに対して予め定められた数である。ここで、スクリプトの数が最大数に達したと判定すると(ステップS1419のYes)、スクリプト選択部104は、ステップS1420の処理に進む。一方、スクリプトの数が最大数未満であると判定すると(ステップS1419のNo)、スクリプト選択部104は、ステップS1412からの処理に戻る。
(S1420)
候補提示部108は、最大数だけのスクリプトを示すスクリプト候補リストをスクリプト選択部104から取得する。そして、候補提示部108は、そのスクリプト候補リストに示される各スクリプトを、表示制御部107を介して端末装置200のディスプレイ200dに表示する。または、候補提示部108は、その各スクリプトを表示制御部107に順に実行させる。具体的には、候補提示部108は、スクリプト候補リストに示される各スクリプトIDを有するスクリプトを、スクリプト選択部104を介してデータベースDBから取得する。そして、候補提示部108は、その取得したスクリプトの提示または実行を表示制御部107にさせる。これにより、そのスクリプトが候補スクリプトとして提示または実行される。
(S1421)
ステップS1420で各候補スクリプトが提示または実行されると、ユーザは、端末装置200に対する入力操作によって、何れかの候補スクリプトを選択する。候補提示部108は、例えば取得部102を介して、その選択された候補スクリプトを示す情報(例えばスクリプトID)を取得する。これにより、候補提示部108は、スクリプト候補リストに示される各スクリプトの中から、入力操作に応じた1つのスクリプトを選択する。
(S1422)
候補提示部108は、ステップS1421で選択された1つのスクリプトを、適用スクリプトとして表示制御部107に通知する。すなわち、適用スクリプトのスクリプトIDが表示制御部107に通知される。表示制御部107は、そのスクリプトIDを有する適用スクリプトを端末装置200のディスプレイ200dに表示する。つまり、適用スクリプトが、スクリプト生成画面201のスクリプト表示編集領域203に表示される。
ここで、スクリプト候補リストについて図18を用いて詳細に説明する。
図18は、選択スクリプトをスクリプト候補リストに追加する処理を示す。
スクリプト候補リストは、例えば、最大数Mk以下のスクリプトを示すことができる。具体的には、スクリプト候補リストは、スクリプトのスクリプトIDおよびスクリプトベクトルSv2を示す。図18に示す例では、スクリプト候補リストには、4つのスクリプトのそれぞれのスクリプトIDおよびスクリプトベクトルSv2が示されている。
候補提示部108は、例えば図17に示すステップS1415において、スクリプトID「S_z_P5_5」によって示される選択スクリプトに対して、スクリプトベクトルSv1(0,2,1,・・・,1)を導出する。スクリプトベクトルは、例えばQ(Qは1以上の整数)次元のベクトルであって、スクリプトベクトルに含まれる各要素の値は、その要素に対応する種類のコマンドが出現する頻度、またはそのコマンドのtf(Term Frequency)−idf(Inverse Document Frequency)を示す。コマンドは、画像を変化させる命令であって、その変化の種類は例えば、画像の移動、回転、跳ね返る、または歩行などである。
次に、候補提示部108は、スクリプト候補リストに示される各スクリプトのスクリプトベクトルSv2を特定する。例えば、候補提示部108は、スクリプト候補リストに示される4つのスクリプトベクトルSv2(1,3,0,・・・,1)、(0,0,4,・・・,2)、(2,0,1,・・・,3)、および(1,1,2,・・・,5)を特定する。そして、候補提示部108は、スクリプトベクトルSv1(0,2,1,・・・,1)と、4つのスクリプトベクトルSv2(1,3,0,・・・,1)、(0,0,4,・・・,2)、(2,0,1,・・・,3)、および(1,1,2,・・・,5)のそれぞれとの間の距離を算出する。次に、候補提示部108は、その算出された何れの距離も閾値以下であると判定すると、選択スクリプトのスクリプトベクトルSv1(0,2,1,・・・,1)と、その選択スクリプトのスクリプトID「S_z_P5_5」とをスクリプト候補リストに追加する。このとき、スクリプトベクトルSv1は、新たなスクリプトベクトルSv2として追加される。
図19は、スクリプト候補リストに示される各候補スクリプトが実行される状態の一例を示す。
表示制御部107は、図17のステップS1420では、候補提示部108からの指示に応じて、スクリプト候補リストに示される各候補スクリプトを順に実行する。例えば、図19の(a)に示すように、表示制御部107は、画像入力領域202に表示されている処理対象画像im12に対して第1の候補スクリプトを実行する。これにより、例えば、その処理対象画像im12は右方向に移動する。次に、表示制御部107は、その処理対象画像im12に対して第2の候補スクリプトを実行する。これにより、例えば図19の(b)に示すように、その処理対象画像im12は放物線に沿うように移動する。次に、表示制御部107は、その処理対象画像im12に対して第3の候補スクリプトを実行する。これにより、例えば図19の(c)に示すように、その処理対象画像im12は回転する。また、表示制御部107は、各候補スクリプトを実行しているときには、その実行されている候補スクリプトを、スクリプト表示編集領域203に表示してもよい。
ユーザは、処理対象画像im12が変化している様子を見ることによって、または、表示される候補スクリプトを見ることによって、スクリプト候補スクリプトに示される各候補スクリプトの中から、何れか1つの候補スクリプトを選択する。例えば、表示制御部107は、スクリプト生成画面201に、各候補スクリプトを選択するためのボタンを表示し、ユーザによる入力操作によって選択されたボタンに対応する候補スクリプトを選択する。その結果、候補提示部108は、端末装置200から取得部102を介して、その選択された候補スクリプトを示す情報(例えばスクリプトID)を取得する。これにより、その候補スクリプトが、処理対象画像im2に適用される適用スクリプトとして生成される。
このように、本変形例では、図17のステップS1411で類似画像リストを取得することによって、データベースDBに格納されているN個の第2の画像セットから、それぞれ類似画像(すなわち最類似部分画像)を含むM(N>M≧2)個の第2の画像セットを特定する。そして、ステップS1412〜S1420では、データベースDBにおいて、M個の第2の画像セットのそれぞれに含まれる類似画像に関連付けられているスクリプトのうち、互いに第3の閾値以上の差がある特徴量を有する複数のスクリプトのみを候補スクリプトとして提示する。ここで、M個の第2の画像セットのそれぞれに含まれる類似画像は、その第2の画像セット内で処理対象画像との類似度が最大の画像である。次に、ステップS1421では、提示された複数の候補スクリプトから、1つの候補スクリプトを選択することによって、適用スクリプトを生成する。
これにより、複数のスクリプトが候補スクリプトとして提示されるため、ユーザは、これらの複数の候補スクリプトから好ましいスクリプトを適用スクリプトとして選択することができる。また、提示される複数の候補スクリプトのそれぞれは、互いに第3の閾値以上の差がある特徴量を有する。つまり、これらの候補スクリプトは互いに類似していない。したがって、同じような候補スクリプトが幾つも提示されることを抑えることができ、ユーザによるスクリプトの選択肢の幅を増やすことができる。
また、本変形例における図17のステップS1415では、データベースDBにおいて、M個の第2の画像セットのそれぞれに含まれる類似画像に関連付けられているスクリプトの特徴量をスクリプトベクトルとして導出する。そして、それぞれ導出されたスクリプトベクトルを有するM個のスクリプトのうち、互いに第4の閾値未満のコサイン距離のスクリプトベクトルを有する複数のスクリプトのみを、候補スクリプトとして提示する。
これにより、M個のスクリプトから、似ているスクリプトを適切に除くことができ、互いに似ていないスクリプトのみを候補スクリプトとして提示することができる。
(まとめ)
図20は、本開示の一態様に係るプログラム生成方法の一例を示すフローチャートである。
本開示の一態様に係るプログラム生成方法は、表示されている画像を変化させるためのコンピュータプログラムをスクリプトとして生成する方法であって、ステップS11〜S14の処理を含む。ユーザは、入力手段(例えば、マウス及び/またはキーボード)を用いて、画像を選択、及び/または、画像を描画することによって、その画像をディスプレイ200d上に表示させる。
ステップS11では、ディスプレイ200dに表示された少なくとも1つの画像を含む第1の画像セットを取得する。ステップS12では、N(N≧2)個の第2の画像セットと、N個の第2の画像セットのそれぞれに含まれる少なくとも1つの画像のそれぞれに関連付けられた、当該画像を変化させるためのスクリプトとを格納するデータベースDBにアクセスする。ステップS13では、第1の画像セットに含まれる処理対象画像に類似する少なくとも1つの類似画像をデータベースDBから検索する。ステップS14では、データベースDBにおいて、検索された少なくとも1つの類似画像のそれぞれに関連付けられているスクリプトから、1つのスクリプトを選択することによって、処理対象画像に適用されるスクリプトを適用スクリプトとして生成する。
ここで、上述のステップS13は、ステップS13aおよびS13bを含む。ステップS13aでは、データベースDBに格納されているN個の第2の画像セットのそれぞれについて、当該第2の画像セットに含まれる画像の処理対象画像に対する総合類似度Stを算出する。このとき、当該第2の画像セットに含まれる画像と処理対象画像との間の第1の類似度Spと、当該第2の画像セットと第1の画像セットとの間の第2の類似度Swと、第1の画像セットの完成度とに基づいて、総合類似度Stを算出する。ステップS13bでは、データベースDBに格納されているN個の第2の画像セットのそれぞれに含まれる画像に対して算出された総合類似度Stに基づいて、少なくとも1つの類似画像を検索する。
これにより、入力画像として描かれた処理対象画像に類似する少なくとも1つの類似画像が検索され、その少なくとも1つの類似画像のそれぞれに関連付けられているスクリプトから、1つのスクリプトが適用スクリプトとして選択される。その結果、処理対象画像に適用されるスクリプトが自動的に生成される。したがって、ディスプレイ200dに入力画像を描画したユーザは、その入力画像に適用されるスクリプトを、予め用意されている複数種のコマンドを組み合わせて作成する必要がない。その結果、入力画像を変化させるためのスクリプトを簡単に生成することができる。
また、本開示の一態様に係るプログラム生成方法では、第1の類似度Spおよび第2の類似度Swと、第1の画像セットの完成度とに基づいて、第2の画像セットに含まれる画像の処理対象画像に対する総合類似度Stが算出される。つまり、全体的な類似度および部分的な類似度と、第1の画像セットの完成度とに基づく総合類似度Stが算出され、その総合類似度Stを用いて類似画像が検索される。
例えば、第2の画像セットにボールを表す画像が含まれ、第1の画像セットの処理対象画像がボールを表している場合に、それらの画像だけを比較すれば、それらの画像は互いに類似している。しかし、第2の画像セットの全体が例えば野球の場面を表し、第1の画像セットの全体が例えばテニスまたはゴルフの場面を表している場合がある。このような場合には、第2の画像セットに含まれるボールを表す画像が、第1の画像セットに含まれるボールを表す処理対象画像に、類似していると言えない。また、第1の画像セットの完成度が低ければ、第2の画像セットと第1の画像セットとの間の全体的な類似度の信頼性は低く、逆に、第1の画像セットの完成度が高ければ、第2の画像セットと第1の画像セットとの間の全体的な類似度の信頼性は高い。
そこで、本開示の一態様に係るプログラム生成方法では、上述のように、全体的な類似度および部分的な類似度と、第1の画像セットの完成度とに基づく総合類似度Stが算出され、その総合類似度Stを用いて類似画像が検索される。したがって、処理対象画像に対してより適切な類似画像を検索することができる。その結果、処理対象画像により相応しいスクリプトを生成することができる。
以上、一つまたは複数の態様に係るプログラム生成装置またはプログラム生成方法について、実施の形態およびその変形例に基づいて説明したが、本開示は、この実施の形態などに限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態およびその変形例に施したものや、実施の形態と各変形例における構成要素を組み合わせて構築される形態も、本開示の範囲内に含まれてもよい。
例えば、上記実施の形態およびその変形例では、プログラム生成装置は、通信ネットワーク300を介して端末装置200のディスプレイ200dに入力画像を表示して変化させるが、端末装置200がプログラム生成装置と通信することなく入力画像を変化させてもよい。つまり、端末装置200が、スクリプトを生成し、そのスクリプトを実行することによって入力画像を変化させてもよい。この場合、例えば、端末装置200は、プログラム生成装置100の機能を実現するための制御プログラムを、例えば、プログラム生成装置100から、ダウンロードする。そして、端末装置200は、その制御プログラムを実行することによって、上記実施の形態またはその変形例と同様に、スクリプトを生成し、入力画像を変化させる。
また、上記実施の形態およびその変形例では、コンピュータプログラムとしてスクリプトを生成したが、生成されるコンピュータプログラムは特定のプログラム言語に限定されるものではなく、どのような言語のプログラムであってもよい。
なお、上記実施の形態および各変形例において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記実施の形態のプログラム生成装置などを実現するソフトウェアは、図8、図10〜図13、図15、図17および図20に示すフローチャートに含まれる各ステップをコンピュータに実行させる。
また、本開示において、ユニット、デバイスの全部又は一部、又は図4もしくは図16に示されるブロック図の機能ブロックの全部又は一部は、半導体装置、半導体集積回路(IC)、又はLSI(large scale integration)を含む一つ又は一つ以上の電子回路によって実行されてもよい。LSI又はICは、一つのチップに集積されてもよいし、複数のチップを組み合わせて構成されてもよい。例えば、記憶素子以外の機能ブロックは、一つのチップに集積されてもよい。ここでは、LSIやICと呼んでいるが、集積の度合いによって呼び方が変わり、システムLSI、VLSI(very large scale integration)、若しくはULSI(ultra large scale integration)と呼ばれるかもしれない。LSIの製造後にプログラムされる、Field Programmable Gate Array(FPGA)、又はLSI内部の接合関係の再構成又はLSI内部の回路区画のセットアップができるreconfigurable logic deviceも同じ目的で使うことができる。
さらに、ユニット、装置、又は装置の一部の、全部又は一部の機能又は操作は、ソフトウエア処理によって実行することが可能である。この場合、ソフトウエアは一つ又は一つ以上のROM、光学ディスク、ハードディスクドライブ、などの非一時的記録媒体に記録され、ソフトウエアが、処理装置(processor)によって実行された場合に、ソフトウエアは、ソフトウエア内の特定の機能を、処理装置(processor)と周辺のデバイスに実行させる。システム又は装置は、ソフトウエアが記録されている一つ又は一つ以上の非一時的記録媒体、処理装置(processor)、及び必要とされるハードウエアデバイス、例えばインターフェース、を備えていても良い。
本開示は、画像を変化させるためのコンピュータプログラムを簡単に生成することができるという効果を奏し、例えば、プログラミングの学習システムなどに適用することができる。
100、100a プログラム生成装置
101 インターフェース部
102 取得部
103 画像検索部
104 スクリプト選択部
105 重み算出部
107 表示制御部
108 候補提示部
200 端末装置
200d ディスプレイ
201 スクリプト生成画面
202 画像入力領域
203 スクリプト表示編集領域
204a〜204c 画像選択ボタン
208 コマンドリストボタン
300 通信ネットワーク
1000 プログラム生成システム
B1 操作ボタン
B2 操作ボタン
DB データベース
R 操作ボタン
S 操作ボタン

Claims (11)

  1. 類似画像を検索するプログラム生成装置におけるプログラム生成方法であって、
    前記プログラム生成装置の処理回路が、
    (a)ディスプレイに表示された少なくとも1つの画像を含む第1の画像セットを取得し、
    (b)N(N≧2)個の第2の画像セットと、N個の前記第2の画像セットのそれぞれに含まれる少なくとも1つの画像のそれぞれに関連付けられた、当該画像を変化させるためのコンピュータプログラムとを格納する記録媒体にアクセスし、
    (c)前記第1の画像セットに含まれる処理対象画像に類似する少なくとも1つの類似画像を前記記録媒体から検索し、
    (d)前記記録媒体において、検索された少なくとも1つの前記類似画像のそれぞれに関連付けられているコンピュータプログラムから、1つのコンピュータプログラムを選択することによって、前記処理対象画像に適用されるコンピュータプログラムを適用プログラムとして生成し、
    前記(c)では、
    (c1)前記記録媒体に格納されているN個の前記第2の画像セットのそれぞれについて、当該第2の画像セットに含まれる画像と前記処理対象画像との間の第1の類似度と、当該第2の画像セットと前記第1の画像セットとの間の第2の類似度と、前記第1の画像セットの完成度とに基づいて、当該第2の画像セットに含まれる画像の前記処理対象画像に対する総合類似度を算出し、
    (c2)前記記録媒体に格納されているN個の前記第2の画像セットのそれぞれに含まれる画像に対して算出された前記総合類似度に基づいて、少なくとも1つの前記類似画像を検索する
    プログラム生成方法。
  2. 前記第1の類似度は、1つの前記第2の画像セットに含まれる少なくとも1つの画像のそれぞれと、前記処理対象画像との間の類似度のうちの最大の類似度である
    請求項1に記載のプログラム生成方法。
  3. 前記(c2)では、
    前記記録媒体に格納されているN個の前記第2の画像セットのそれぞれで、第1の閾値以上の前記総合類似度が算出された画像を、前記類似画像として検索する
    請求項1または2に記載のプログラム生成方法。
  4. 前記(c1)では、
    前記第1の類似度と第1の重みとの積と、前記第2の類似度と第2の重みとの積との和を算出することによって、前記総合類似度を算出し、
    前記第1の重みは、前記完成度が高いほど小さい値であり、前記第2の重みは、前記完成度が高いほど大きい値である
    請求項1〜3の何れか1項に記載のプログラム生成方法。
  5. 前記完成度は、
    前記第1の画像セットの描画開始からの経過時間の基準時間に対する比、または、前記第1の画像セットに含まれる画像の数の基準数に対する比である
    請求項4に記載のプログラム生成方法。
  6. 前記完成度が第2の閾値以下のときには、
    前記第1の重みは1であって、かつ、前記第2の重みは0であり、
    前記完成度が前記第2の閾値を超えるときには、
    前記第1の重みは0であって、かつ、前記第2の重みは1である
    請求項4または5に記載のプログラム生成方法。
  7. 前記(d)では、
    前記記録媒体に格納されているN個の前記第2の画像セットから、それぞれ前記類似画像を含むM(N>M≧1)個の第2の画像セットを特定し、
    M個の前記第2の画像セットから、最大の前記第2の類似度が算出された第2の画像セットを選択し、
    選択された前記第2の画像セットから、前記処理対象画像との類似度が最大の画像である前記類似画像を特定し、
    前記記録媒体において、特定された前記類似画像に関連付けられているコンピュータプログラムを選択することによって、前記適用プログラムを生成する
    請求項1〜6の何れか1項に記載のプログラム生成方法。
  8. 前記(d)では、
    前記記録媒体に格納されているN個の前記第2の画像セットから、それぞれ前記類似画像を含むM(N>M≧2)個の第2の画像セットを特定し、
    前記記録媒体において、M個の前記第2の画像セットのそれぞれに含まれる前記類似画像に関連付けられているコンピュータプログラムのうち、互いに第3の閾値以上の差がある特徴量を有する複数のコンピュータプログラムのみを候補プログラムとして提示し、
    提示された複数の前記候補プログラムから、1つの前記候補プログラムを選択することによって、前記適用プログラムを生成し、
    M個の前記第2の画像セットのそれぞれに含まれる前記類似画像は、当該第2の画像セット内で前記処理対象画像との類似度が最大の画像である
    請求項1〜6の何れか1項に記載のプログラム生成方法。
  9. 前記(d)では、
    前記記録媒体において、M個の前記第2の画像セットのそれぞれに含まれる前記類似画像に関連付けられているコンピュータプログラムの特徴量をベクトルとして導出し、
    それぞれ導出されたベクトルを有するM個の前記コンピュータプログラムのうち、互いに第4の閾値未満のコサイン距離のベクトルを有する複数のコンピュータプログラムのみを、前記候補プログラムとして提示する
    請求項8に記載のプログラム生成方法。
  10. N(N≧2)個の第2の画像セットと、N個の前記第2の画像セットのそれぞれに含まれる少なくとも1つの画像のそれぞれに関連付けられた、当該画像を変化させるためのコンピュータプログラムとを格納する記録媒体にアクセスするためのインターフェース部と、
    処理回路とを備え、
    前記処理回路は、
    (a)ディスプレイに表示された少なくとも1つの画像を含む第1の画像セットを取得し、
    (b)前記インターフェース部を介して前記記録媒体にアクセスし、
    (c)前記第1の画像セットに含まれる処理対象画像に類似する少なくとも1つの類似画像を前記記録媒体から検索し、
    (d)前記記録媒体において、検索された少なくとも1つの前記類似画像のそれぞれに関連付けられているコンピュータプログラムから、1つのコンピュータプログラムを選択することによって、前記処理対象画像に適用されるコンピュータプログラムを適用プログラムとして生成し、
    前記(c)では、
    (c1)前記記録媒体に格納されているN個の前記第2の画像セットのそれぞれについて、当該第2の画像セットに含まれる画像と前記処理対象画像との間の第1の類似度と、
    当該第2の画像セットと前記第1の画像セットとの間の第2の類似度と、前記第1の画像セットの完成度とに基づいて、当該第2の画像セットに含まれる画像の前記処理対象画像に対する総合類似度を算出し、
    (c2)前記記録媒体に格納されているN個の前記第2の画像セットのそれぞれに含まれる画像に対して算出された前記総合類似度に基づいて、少なくとも1つの前記類似画像を検索する
    プログラム生成装置。
  11. (a)ディスプレイに表示された少なくとも1つの画像を含む第1の画像セットを取得し、
    (b)N(N≧2)個の第2の画像セットと、N個の前記第2の画像セットのそれぞれに含まれる少なくとも1つの画像のそれぞれに関連付けられた、当該画像を変化させるためのコンピュータプログラムとを格納する記録媒体にアクセスし、
    (c)前記第1の画像セットに含まれる処理対象画像に類似する少なくとも1つの類似画像を前記記録媒体から検索し、
    (d)前記記録媒体において、検索された少なくとも1つの前記類似画像のそれぞれに関連付けられているコンピュータプログラムから、1つのコンピュータプログラムを選択することによって、前記処理対象画像に適用されるコンピュータプログラムを適用プログラムとして生成し、
    前記(c)では、
    (c1)前記記録媒体に格納されているN個の前記第2の画像セットのそれぞれについて、当該第2の画像セットに含まれる画像と前記処理対象画像との間の第1の類似度と、当該第2の画像セットと前記第1の画像セットとの間の第2の類似度と、前記第1の画像セットの完成度とに基づいて、当該第2の画像セットに含まれる画像の前記処理対象画像に対する総合類似度を算出し、
    (c2)前記記録媒体に格納されているN個の前記第2の画像セットのそれぞれに含まれる画像に対して算出された前記総合類似度に基づいて、少なくとも1つの前記類似画像を検索する
    ことをプログラム生成装置のコンピュータに実行させる制御プログラム。
JP2017154793A 2016-10-17 2017-08-09 プログラム生成方法、プログラム生成装置および制御プログラム Active JP6883761B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662409080P 2016-10-17 2016-10-17
US62/409,080 2016-10-17
JP2017080716 2017-04-14
JP2017080716 2017-04-14

Publications (2)

Publication Number Publication Date
JP2018165974A JP2018165974A (ja) 2018-10-25
JP6883761B2 true JP6883761B2 (ja) 2021-06-09

Family

ID=61903885

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017154793A Active JP6883761B2 (ja) 2016-10-17 2017-08-09 プログラム生成方法、プログラム生成装置および制御プログラム

Country Status (3)

Country Link
US (1) US10303446B2 (ja)
JP (1) JP6883761B2 (ja)
CN (1) CN107957866B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110494843B (zh) * 2017-04-03 2023-10-10 创首公司 混合模式编程
US10255526B2 (en) * 2017-06-09 2019-04-09 Uptake Technologies, Inc. Computer system and method for classifying temporal patterns of change in images of an area
CN108762749B (zh) * 2018-05-24 2021-12-21 福州大学 基于代码分析的系统对象图自动生成方法
CN108958725B (zh) * 2018-07-06 2022-06-14 广州慧通编程教育科技有限公司 图形化模式编程平台生成方法、装置及计算机设备
EP3640804B1 (en) * 2018-10-17 2020-11-25 Eyevido GmbH Screen recording preparation method for evaluating software usability, computing system, computer program and computer-readable storage medium implementing the method
DE102020004305A1 (de) * 2020-07-17 2022-02-24 Head Technology Gmbh Charakterisierung einer Ballspielschlägerbespannung
CN116361283B (zh) * 2022-12-01 2023-09-26 北京码牛科技股份有限公司 识别海量数据关联关系的方法、系统、终端及存储介质
JP2024098287A (ja) * 2023-01-10 2024-07-23 トヨタ自動車株式会社 文書管理システム
KR102646777B1 (ko) * 2023-05-12 2024-03-12 (주)인스웨이브시스템즈 멀티 기기용 반응형 페이지를 위한 그리드 레이아웃 설정 방법 및 이를 수행하는 프로그램

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10143663A (ja) 1996-11-13 1998-05-29 Hamamatsu Photonics Kk 指紋情報処理装置
US5974254A (en) * 1997-06-06 1999-10-26 National Instruments Corporation Method for detecting differences between graphical programs
JP4253498B2 (ja) * 2002-12-09 2009-04-15 オリンパス株式会社 画像検索プログラム、そのプログラムを記憶した記憶媒体、画像検索装置及び画像検索方法
JP2006190199A (ja) * 2005-01-07 2006-07-20 Matsushita Electric Ind Co Ltd Cad進捗管理システム、進捗管理方法、及びそのプログラム
JP2007206833A (ja) * 2006-01-31 2007-08-16 Toshiba Corp 生体照合方法および生体照合装置
JP4874701B2 (ja) 2006-04-18 2012-02-15 富士フイルム株式会社 類似画像検索装置および方法並びにプログラム
JP4657149B2 (ja) * 2006-05-26 2011-03-23 京セラミタ株式会社 画像形成装置用ユーザアプリケーション開発支援装置
JP5358083B2 (ja) * 2007-11-01 2013-12-04 株式会社日立製作所 人物画像検索装置及び画像検索装置
US8487936B2 (en) * 2007-05-30 2013-07-16 Kyocera Corporation Portable electronic device and character display method for the same
US8289287B2 (en) * 2008-12-30 2012-10-16 Nokia Corporation Method, apparatus and computer program product for providing a personalizable user interface
JP4906900B2 (ja) * 2009-09-24 2012-03-28 ヤフー株式会社 画像検索装置、画像検索方法及びプログラム
JP2011119869A (ja) 2009-12-01 2011-06-16 Nippon Hoso Kyokai <Nhk> 番組制作システム及び番組制作プログラム
JP2011221812A (ja) * 2010-04-09 2011-11-04 Sony Corp 情報処理装置及び方法、並びにプログラム
JP5733565B2 (ja) * 2011-03-18 2015-06-10 ソニー株式会社 画像処理装置および方法、並びにプログラム
ES2681432T3 (es) * 2011-08-05 2018-09-13 Rakuten, Inc. Dispositivo de determinación de color, sistema de determinación de color, procedimiento de determinación de color, medio de grabación de información y programa
JP5863375B2 (ja) * 2011-10-12 2016-02-16 キヤノン株式会社 情報処理システム、画像処理システム、情報処理方法、およびプログラム
US8989515B2 (en) * 2012-01-12 2015-03-24 Kofax, Inc. Systems and methods for mobile image capture and processing
JP2013257692A (ja) 2012-06-12 2013-12-26 Sharp Corp 情報処理装置、情報処理システム、情報処理方法およびプログラム
WO2014091543A1 (ja) * 2012-12-10 2014-06-19 三菱電機株式会社 Ncプログラム検索方法、ncプログラム検索装置、ncプログラム作成方法およびncプログラム作成装置
JP2014203309A (ja) * 2013-04-05 2014-10-27 オムロン株式会社 画像処理装置、制御方法およびプログラム
WO2015015699A1 (ja) * 2013-08-01 2015-02-05 パナソニック株式会社 類似症例検索装置、症例データベース、類似症例検索方法、およびプログラム
JP6211407B2 (ja) * 2013-12-06 2017-10-11 株式会社デンソーアイティーラボラトリ 画像検索システム、画像検索装置、検索サーバ装置、画像検索方法、及び画像検索プログラム
US10152796B2 (en) * 2014-02-24 2018-12-11 H. Lee Moffitt Cancer Center And Research Institute, Inc. Methods and systems for performing segmentation and registration of images using neutrosophic similarity scores
CN105320695B (zh) * 2014-07-31 2020-01-17 腾讯科技(深圳)有限公司 图片处理方法及装置
JP6027065B2 (ja) * 2014-08-21 2016-11-16 富士フイルム株式会社 類似画像検索装置、類似画像検索装置の作動方法、および類似画像検索プログラム
CN104536729B (zh) * 2014-11-28 2019-02-22 北京奇虎科技有限公司 一种实现在浏览器页面中进行截图的方法和装置
JP6622295B2 (ja) * 2015-04-30 2019-12-18 富士フイルム株式会社 画像処理装置、画像処理装置の作動方法及びプログラム
US10559062B2 (en) * 2015-10-22 2020-02-11 Korea Institute Of Science And Technology Method for automatic facial impression transformation, recording medium and device for performing the method
JPWO2017119134A1 (ja) * 2016-01-08 2018-11-01 オリンパス株式会社 画像処理装置、画像処理方法およびプログラム

Also Published As

Publication number Publication date
JP2018165974A (ja) 2018-10-25
CN107957866A (zh) 2018-04-24
US10303446B2 (en) 2019-05-28
CN107957866B (zh) 2023-04-28
US20180107460A1 (en) 2018-04-19

Similar Documents

Publication Publication Date Title
JP6883761B2 (ja) プログラム生成方法、プログラム生成装置および制御プログラム
CN109618222B (zh) 一种拼接视频生成方法、装置、终端设备及存储介质
US11317139B2 (en) Control method and apparatus
Chen et al. Sketch2photo: Internet image montage
CA2777742C (en) Dynamic exercise content
US20100210358A1 (en) Modification of images from a user&#39;s album for spot-the-differences
JP2020109627A (ja) 画像現実感予測器
US12494007B2 (en) Image processing method, apparatus, and readable storage medium for performing feature analysis on at least one image material to acquire a content feature set
Manuvinakurike et al. Edit me: A corpus and a framework for understanding natural language image editing
CN118035493A (zh) 一种图像生成方法、装置、设备、存储介质以及程序产品
CN117292026A (zh) 动画生成方法、装置和电子设备
US20180107762A1 (en) Program generation method, program generation apparatus, and storage medium
Husa et al. HOST-ATS: automatic thumbnail selection with dashboard-controlled ML pipeline and dynamic user survey
CN114881715B (zh) 文本生成方法及装置
CN109040838B (zh) 一种视频数据的处理方法、装置及视频播放方法、客户端
CN115119014A (zh) 视频处理方法、插帧数量模型的训练方法及装置
US9886767B2 (en) Method, apparatus and computer program product for segmentation of objects in images
CN112616086A (zh) 一种互动视频生成方法及装置
Ilisescu et al. Responsive action-based video synthesis
CN108235118A (zh) 一种视频调色处理方法和装置
CN110008364B (zh) 图像处理方法、装置和系统
JP2010176235A (ja) 画像インターフェース、および画像検索プログラム
US12536730B2 (en) AI face decoration texture generation in social media platform
Hong Fine-Grained Image and Video Analysis with Limited Supervision
US20240404170A1 (en) Ai face decoration texture generation in social media platform

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210316

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210406

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210416

R151 Written notification of patent or utility model registration

Ref document number: 6883761

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151