【解決手段】 イメージ編集装置によるイメージ編集方法において、代替テキストに対応するテキストデータと、第1イメージとをイメージ編集モデルに入力する段階と、代替テキストが含まれる第2イメージをイメージ編集モデルから獲得する段階と、を含むが、該イメージ編集モデルは、第1イメージの一部領域に、代替テキストを合成し、第2イメージを生成することを特徴とする一実施形態によるイメージ編集方法である。
【発明を実施するための形態】
【0015】
本開示は、多様な変更を加えることができ、さまざまな実施形態を有することができるが、特定実施形態を図面に例示し、それについて、詳細な説明を介して説明する。しかし、それは、本開示を、特定の実施形態について限定するものではなく、本開示の思想及び技術範囲に含まれる全ての変更、均等物ないし代替物を含むものであると理解されなければならない。
【0016】
本実施形態についての説明において、関連公知技術についての具体的な説明が、要旨を必要以上に不明確にすると判断される場合、その詳細な説明を省略する。また、本実施形態の説明過程で利用される数(例えば、第1、第2など)は、1つの構成要素を他の構成要素と区分するための識別記号に過ぎない。
【0017】
また、本明細書において、一構成要素が他の構成要素と「連結される」、「接続される」というように言及されたときには、その一構成要素が他の構成要素と直接連結されることも、直接接続されることもあるが、特別に反対となる記載がない限り以上、中間に、他の構成要素を媒介させて連結又は接続されることもあると理解されなければならない。
【0018】
また、本明細書において、「〜部(ユニット)」、「モジュール」というように表現される構成要素は、2個以上の構成要素が1つの構成要素に合わされるか、あるいは1つの構成要素がさらに細分化された機能別に、2個以上に分化されることもある。また、以下で説明する構成要素それぞれは、それ自体が担当する主機能以外にも、他の構成要素が担当する機能のうち、一部または全部の機能を追加して遂行することもでき、構成要素それぞれが担当する主機能のうち、一部機能が他の構成要素によって専用担当されても遂行されるということは言うまでもない。
【0019】
また、本明細書において、「イメージ」は、静止映像を含んでもよい。また、本明細書において、「テキスト」は、イメージに含まれる文字、数及び記号を含んでもよい。
【0020】
以下、本開示の技術的思想による実施形態について、順に詳細に説明する。
【0021】
図1は、一実施形態によるイメージ編集装置100を図示する図面である。
【0022】
一実施形態によるイメージ編集装置100は、代替テキストに対応するテキストデータ30と、第1イメージ10とを獲得し、既に保存されているイメージ編集モデル300を介して、第1イメージ10に含まれていたテキストが代替テキストに変更された第2イメージ50を生成することができる。
【0023】
第1イメージ10の一部領域(例えば、テキストを含む領域)に代替テキストが合成されることにより、第2イメージ50が生成されるのである。
【0024】
第1イメージ10は、チェックカード、クレジットカードなどの実物カードを撮影したイメージ、動画を構成する少なくとも1つのイメージなどを含んでもよいが、それらに限定されるものではない。
【0025】
実物カードを撮影したイメージに含まれる個人情報(例えば、カード番号、有効期間など)が代替情報に変更されることにより、個人情報の流出が遮断される。また、映画を構成するフレームに含まれる特定言語の字幕が、他の言語の字幕にも変更される。
【0026】
後述するように、イメージ編集装置100は、サーバ装置またはクライアント装置にも適用される。イメージ編集装置100がサーバ装置で具現される場合、イメージ編集装置100は、クライアント装置から受信した第1イメージ10、内部保存装置に保存された第1イメージ10、及び/またはネットワークを介して連結された外部装置から受信した第1イメージ10を編集し、第2イメージ50を生成することができる。
【0027】
イメージ編集装置100がクライアント装置で具現される場合、イメージ編集装置100は、カメラによって撮影された第1イメージ10、内部保存装置に保存された第1イメージ10、及び/またはネットワークを介して外部装置から受信した第1イメージ10を編集し、第2イメージ50を生成することもできる。
【0028】
図2は、一実施形態によるイメージ編集装置100によるイメージ編集方法を示すフローチャートである。
【0029】
S210段階において、イメージ編集装置100は、代替テキストに対応するテキストデータ30、及び第1イメージ10を、イメージ編集モデル300に入力する。一例示として、第1イメージ10において、編集が必要な一部領域の位置情報が、イメージ編集モデル300にもさらに入力される。
【0030】
代替テキストは、第2イメージ50に含めるテキストであり、ユーザから入力されることもあり、またはイメージ編集装置100がランダムに決定したり、所定規則により、直接決定したりもする。
【0031】
一実施形態において、イメージ編集装置100は、第1イメージ10をイメージ編集モデル300に入力する前に、編集が必要な第1イメージ10の一部領域(例えば、テキストを含む領域)を識別し、当該領域を除去する前処理を行うことができる。ここで、第1イメージ10の一部領域の除去とは、第1イメージ10の一部領域に含まれる値(例えば、ピクセル値)を、既定値に変更することを意味する。
【0032】
S220段階において、イメージ編集装置100は、代替テキストが含まれた第2イメージ50を、イメージ編集モデル300から獲得する。第1イメージ10内一部領域が代替テキストに置き換えられることにより、 第2イメージ50が生成されるのである。
【0033】
イメージ編集モデル300は、ニューラルネットワークモデルであり、学習用データに基づいて訓練された内部パラメータを利用し、第2イメージ50を生成することができる。該内部パラメータは、ニューラルネットワークをなす各レイヤの演算過程で利用される値であり、例えば、入力値を所定演算式に適用するときに利用される加重値を含んでもよい。
【0034】
イメージ編集モデル300は、第1イメージ10の一部領域に、代替テキストを合成し、第2イメージ50を生成することができる。
【0035】
イメージ編集モデル300の構造については、
図3を参照して説明する。
【0036】
図3は、一実施形態によるイメージ編集モデル300を示す図面である。
【0037】
イメージ編集モデル300は、第1エンコーダ310、第1デコーダ320、第2エンコーダ330及び第2デコーダ340を含んでもよい。第1エンコーダ310、第1デコーダ320、第2エンコーダ330及び第2デコーダ340のそれぞれは、少なくとも1層の畳み込みレイヤ(convolution layer)を含んでもよい。畳み込みレイヤは、データから、所望する特性を抽出するために、畳み込み演算を行うことができる。
【0038】
第1エンコーダ310は、第1イメージ10に対し、畳み込み演算を適用し、特徴マップ(feature map)を出力する。
【0039】
第1デコーダ320は、第1エンコーダ310から出力される特徴マップとテキストデータ30とを入力され、それに対応するイメージを生成して出力する。第1エンコーダ310から出力される特徴マップとテキストデータ30は、連結(concatenation)され、第1デコーダ320にも入力される。
【0040】
第2エンコーダ330は、第1デコーダ320の出力イメージを入力され、それに対応する特徴マップを出力する。
【0041】
第2デコーダ340は、第2エンコーダ330の特徴マップ及びテキストデータ30を入力され、それに対応する第2イメージ50を出力する。第2エンコーダ330から出力される特徴マップと、テキストデータ30は、連結され、第2デコーダ340にも入力される。
【0042】
図3は、イメージ編集モデル300が、2つのエンコーダと、2つのデコーダとを含むように図示しているが、それは1つの例示であり、エンコーダ及びデコーダそれぞれの個数は、多様にも変更される。
【0043】
第1デコーダ320及び第2デコーダ340には、テキストデータ30が入力されるが、該テキストデータ30は、代替テキストを入力された循環モデル400から出力されるテキストベクトルを含んでもよい。
【0044】
図4を参照すれば、循環モデル400は、代替テキストを順次に入力され、それに対応するベクトル、例えば、埋め込み(embedding)ベクトルを出力することができる。例えば、1048という代替テキストに対応する埋め込みベクトルを獲得しようとするとき、まず、数字8が循環モデル400のレイヤAに入力される。次に、m字4がレイヤAに入力される。このとき、数字8に対応する埋め込みベクトルが、数字4と共に、レイヤAに入力される。すなわち、以前段階での出力が、次の段階で利用されるのである。最後の数字1までレイヤAに入力されれば、最終的に、h
tという埋め込みベクトルが獲得されるが、この最終埋め込みベクトルが、イメージ編集モデル300に入力されるのである。
【0045】
図5は、一実施形態による第1イメージ10を示す図面であり、
図6は、一実施形態による第2イメージ50を示す図面である。
【0046】
図5に図示されているように、第1イメージ10は、カードを撮影したイメージであり、個人情報に該当するカード番号などを含んでいる。第1イメージ10に含まれていたテキストである3456を代替テキストに変更しようとするとき、イメージ編集装置100は、第1イメージ10(または、前処理された第1イメージ)、及び代替テキストに対応するテキストデータ30を、イメージ編集モデル300に入力することができる。3456を含む領域11の位置情報がイメージ編集モデル300にさらに入力される。
【0047】
イメージ編集モデル300は、3456のテキストが代替テキストに変更された第2イメージ50を生成するが、
図6に図示されているように、第2イメージ50には、3456のテキストの代わりに、51で示される0125 のテキストが含まれる。
【0048】
図7は、他の実施形態による第1イメージ10を示す図面であり、
図8は、他の実施形態による第2イメージ50を示す図面である。
【0049】
図7に図示されているように、第1イメージ10は、動画を構成する1つのフレームであり、英語の字幕を含んでいる。英語字幕をハングル字幕に変更しようとするとき、イメージ編集装置100は、第1イメージ10(または、前処理された第1イメージ)、及びハングル字幕に対応するテキストデータ30を、イメージ編集モデル300に入力することができる。イメージ編集装置100は、英語字幕を含む領域11の位置情報を、イメージ編集モデル300にさらに入力することもできる。
【0050】
図8に図示されているように、イメージ編集モデル300は、英語字幕がハングル字幕51に変更された第2イメージ50を生成することができる。
【0051】
図9は、一実施形態によるイメージ編集モデル300の訓練方法について説明するための図面である。
【0052】
一実施形態によるイメージ編集装置100は、イメージ編集モデル300訓練のための区別モデル900を保存することができる。区別モデル900は、イメージ編集モデル300から出力される第2イメージ50の真偽を判断する。区別モデル900は、編集されていない学習用イメージに基づいても訓練される。
【0053】
区別モデル900は、第2イメージ50が編集されていないリアル(real)イメージに該当する場合、リアルイメージという判断結果を出力し、第2イメージ50が編集されたフェイク(fake)イメージに該当する場合、フェイクイメージであるという判断結果を出力することができる。
【0054】
イメージ編集モデル300は、区別モデル900から出力される判断結果に基づき、内部パラメータを更新することができる。イメージ編集モデル300は、区別モデル900が第2イメージ50をリアルイメージと判断するように、内部パラメータを更新することができる。すなわち、イメージ編集モデル300は、区別モデル900を欺くために、さらに精巧な第2イメージ50を生成することができるのである。
【0055】
一実施形態において、区別モデル900は、第1区別モデル910及び第2区別モデル930を含んでもよい。第1区別モデル910は、第2イメージ50全体領域に対して真偽を判断し、第2区別モデル930は、第2イメージ50内の一部領域、例えば、編集された領域に対して真偽を判断することができる。
【0056】
第1区別モデル910及び第2区別モデル930の判断結果に基づき、イメージ編集モデル300は、イメージ編集が適用される一部領域及び全体領域に対して、リアルイメージ対比で差がない第2イメージ50が生成されるように、内部パラメータを更新することができる。
【0057】
図10は、一実施形態によるイメージ編集方法を示すフローチャートである。
【0058】
S1010段階において、イメージ編集装置100は、第1イメージ10を獲得する。イメージ編集装置100は、ネットワークを介して、外部装置から第1イメージ10を受信するか、あるいは内部保存装置に保存された第1イメージ10を獲得することができる。
【0059】
第1イメージ10には、第1言語のテキストが含まれている。
【0060】
S1020段階において、イメージ編集装置100は、編集が必要な第1イメージ10内の一部領域を選択する。
【0061】
イメージ編集装置100は、第1イメージ10内テキストを含む領域を直接選択することができる。一例として、イメージ編集装置100は、第1イメージ10を、深層学習基盤の公知の単語領域識別モデルに入力し、第1イメージ10内テキスト領域を識別することができる。
【0062】
他の例として、イメージ編集装置100は、ユーザから第1イメージ10内の一部領域を選択されてもよい。
【0063】
S1030段階において、イメージ編集装置100は、代替テキストのための第2言語を選択する。イメージ編集装置100は、既定の第2言語を選択するか、あるいはユーザから、代替テキストのための第2言語を選択されてもよい。
【0064】
S1040段階において、イメージ編集装置100は、第1イメージ10内の一部領域に含まれるテキストに基づいて代替テキストを決定する。
【0065】
イメージ編集装置100は、第1イメージ10内の一部領域に含まれる第1言語のテキストを、OCR(optical character recognition)を介して認識し、認識されたテキストに基づき、S1030段階で選択された第2言語のテキストを決定することができる。例えば、第1イメージ10に、英語テキストが含まれている場合、イメージ編集装置100は、第2言語に該当する韓国語テキストを決定することができるのである。
【0066】
イメージ編集装置100は、第1イメージ10内の一部領域に含まれる第1言語のテキストを認識するために、深層学習基盤の公知のテキスト識別モデルを利用することができる。
【0067】
S1050段階において、イメージ編集装置100は、第1イメージ10(または、前処理された第1イメージ)、代替テキストをイメージ編集モデル300に入力し、イメージ編集モデル300から出力される第2イメージ50を獲得することができる。
【0068】
図10に図示された実施形態は、動画に含まれる第1言語の字幕を、第2言語の字幕に変更するのに有用である。一例として、ユーザが、動画を構成する複数のイメージをイメージ編集装置100に提供すれば、イメージ編集装置100は、複数のイメージそれぞれにおいて、テキスト領域を識別し、複数のイメージに含まれる第1言語のテキストを、第2言語のテキストに変更することができる。他の例において、ユーザがイメージ編集装置100に動画を提供した場合、イメージ編集装置100は、当該動画を複数のイメージに分割し、複数のイメージに含まれる第1言語のテキストを、第2言語のテキストに変更することもできる。
【0069】
一実施形態において、字幕翻訳を所望するユーザが、第1イメージ10をイメージ編集装置100に提供すれば、イメージ編集装置100は、深層学習基盤の公知の単語領域識別モデル及び/またはテキスト識別モデルを介して、編集が必要な第1イメージ10内の一部領域を識別し、識別された一部領域に含まれる第1言語(例えば、英語)のテキストを確認することができる。そして、イメージ編集装置100は、第1言語のテキストに対応する第2言語(例えば、韓国語)のテキストを決定した後、イメージ編集モデル300を介して、第2イメージ50を生成することもできる。すなわち、その場合、ユーザは、第1イメージ10をイメージ編集装置100に提供することだけで、翻訳サービスを提供されるのである。
【0070】
図11は、イメージ編集のためのユーザ端末のUI(user interface)画面を示す例示的な図面である。
【0071】
ユーザ5は、ユーザ端末の画面に表示された第1イメージ10において編集が必要な領域1110を選択することができ、選択された領域1110内のテキストを変更するための言語種類を、「言語」メニュー1120を介して選択することができる。また、ユーザが、「代替テキスト」メニューにおいて自動ボタン1130を選択すれば、イメージ編集装置100は、ユーザが選択した領域1110内のテキストを認識し、認識されたテキストに対応する他言語の代替テキストを決定することができる。
【0072】
ユーザが、「代替テキスト」メニューにおいて、直接入力ボタン1140を選択し、図示されていないテキスト入力ボックスを介して、代替テキストを直接入力した場合、イメージ編集装置100は、言語種類と関係なく、第1イメージ10内の一部領域1110に含まれるテキストを、ユーザが入力した代替テキストに変更することができる。
【0073】
図12は、一実施形態によるイメージ編集装置100の構成を図示するブロック図である。
【0074】
図12を参照すれば、イメージ編集装置100は、メモリ1210、通信モジュール1230及びプロセッサ1250を含んでもよい。メモリ1210には、少なくとも1つの命令が保存され、プロセッサ1250は、少なくとも1つの命令により、イメージ編集モデル300、循環モデル400及び区別モデル900のうち少なくとも1つの訓練を制御することができる。
【0075】
図12は、1つのメモリ1210、及び1つのプロセッサ1250だけを図示しているが、イメージ編集装置100は、複数のメモリ、及び/または複数のプロセッサを含んでもよい。
【0076】
メモリ1210は、イメージ編集モデル300、循環モデル400及び区別モデル900を保存することができる。
【0077】
プロセッサ1250は、イメージ編集モデル300に、第1イメージ10及びテキストデータ30を入力し、イメージ編集モデル300から出力される第2イメージ50を獲得することができる。
【0078】
一実施形態において、プロセッサ1250は、学習用データに基づき、イメージ編集モデル300、循環モデル400及び区別モデル900のうち少なくとも1つを訓練することができる。
【0079】
通信モジュール1230は、ネットワークを介して、外部装置とデータを送受信する。例えば、通信モジュール1230は、外部装置と、イメージを送受信することができる。
【0080】
図13は、一実施形態によるイメージ編集装置100が適用されるサーバ装置1310及びクライアント装置1320を図示する図面である。
【0081】
イメージ編集装置100は、サーバ装置1310に具現されるか、あるいはクライアント装置1320にも具現される。
【0082】
イメージ編集装置100がサーバ装置1310に具現される場合、サーバ装置1310は、クライアント装置1320から第1イメージ10を受信し、代替テキストが合成された第2イメージ50を生成することができる。一例において、サーバ装置1310は、ネットワークを介して、外部装置から第1イメージ10を受信するか、あるいは内部保存装置に保存された第1イメージ10を編集し、第2イメージ50を生成することができる。
【0083】
サーバ装置1310は、第2イメージ50を内部保存装置に保存した後、人工知能モデルの訓練に利用するか、あるいは第2イメージ50をクライアント装置1320で伝送することができる。
【0084】
また、サーバ装置1310は、クライアント装置1320を含んだ外部装置から、学習用データを受信するか、あるいは内部に保存された学習用データを利用し、イメージ編集モデル300、循環モデル400及び区別モデル900のうち少なくとも1つの訓練を制御することもできる。
【0085】
イメージ編集装置100がクライアント装置1320に具現される場合、クライアント装置1320は、クライアント装置1320のカメラによって撮影されたイメージ、またはクライアント装置1320に保存された第1イメージ10を編集し、第2イメージ50を生成することができる。
【0086】
一実施形態において、クライアント装置1320は、イメージ編集モデル300、循環モデル400及び区別モデル900のうち少なくとも1つの実行のためのデータを、サーバ装置1310から受信することができる。クライアント装置1320は、カメラモジュールを介して撮影されたイメージ、内部メモリに保存されたイメージ、または外部装置から受信されたイメージを、イメージ編集モデル300に入力させ、当該イメージを編集することができる。
【0087】
クライアント装置1320は、外部装置から学習用データを受信するか、あるいは内部に保存された学習用データを利用し、イメージ編集モデル300、循環モデル400及び区別モデル900のうち少なくとも1つの訓練を制御することもできる。具現例により、クライアント装置1320は、イメージ編集モデル300、循環モデル400及び区別モデル900のうち少なくとも1つの実行のためのデータを、サーバ装置1310から受信してインストールし、サーバ装置1310は、学習用データに基づき、イメージ編集モデル300、循環モデル400及び区別モデル900のうち少なくとも1つの訓練を制御することもできる。その場合、サーバ装置1310は、訓練結果として更新された加重値情報のみをクライアント装置1320に伝送し、クライアント装置1320は、受信された情報により、イメージ編集モデル300、循環モデル400及び区別モデル900のうち少なくとも1つを更新することができる。
【0088】
図13は、クライアント装置1320として、デスクトップPC(personal computer)を図示しているが、それに限定されるものではなく、クライアント装置1320は、ノート型パソコン、スマートフォン、タブレットPC、AI(artificial intelligence)ロボット、AIスピーカ、ウェアラブル機器などを含んでもよい。
【0089】
なお、前述の本開示の実施形態はコンピュータで実行されるプログラムに作成可能であり、作成されたプログラムは、媒体にも保存される。
【0090】
該媒体は、コンピュータで実行可能なプログラムを続けて保存するか、あるいは実行またはダウンロードのために臨時保存するものでもある。また、該媒体は、単一または数個のハードウェアが結合された形態の多様な記録手段または保存手段でもあるが、あるコンピューターシステムに直接接続される媒体に限定されるものではなく、ネットワーク上に分散存在するものでもある。該媒体の例示としては、ハードディスク、フロッピーディスク及び磁気テープのような磁気媒体;CD−ROM(compact disc read only memory)及びDVD(digital versatile disc)のような光記録媒体、フロプティカルディスク(floptical disk のような磁気・光媒体(magneto-optical medium);及びROM(read-only memory)、RAM(random access memory)、フラッシュメモリなどを含み、プログラム命令語が保存されるように構成されたものでもある。また、他の媒体の例示として、アプリケーションを流通するアプリストアや、その他多様なソフトウェアを供給したり流通させたりするサイト、サーバなどで管理する記録媒体または保存媒体も挙げることができる。
【0091】
以上、本開示の技術的思想について、望ましい実施形態を挙げて詳細に説明したが、本開示の技術的思想は、前記実施形態に限定されるものではなく、本開示の技術的思想の範囲内において、当分野において当業者により、さまざまな変形及び変更が可能である。