IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ワコムの特許一覧

特開2023-153238デジタルインク生成装置、方法及びプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023153238
(43)【公開日】2023-10-17
(54)【発明の名称】デジタルインク生成装置、方法及びプログラム
(51)【国際特許分類】
   G06F 3/04883 20220101AFI20231005BHJP
【FI】
G06F3/04883
【審査請求】有
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023131047
(22)【出願日】2023-08-10
(62)【分割の表示】P 2021119352の分割
【原出願日】2019-10-07
(31)【優先権主張番号】P 2018207701
(32)【優先日】2018-11-02
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000139403
【氏名又は名称】株式会社ワコム
(74)【代理人】
【識別番号】100176072
【弁理士】
【氏名又は名称】小林 功
(74)【代理人】
【識別番号】100169225
【弁理士】
【氏名又は名称】山野 明
(72)【発明者】
【氏名】ウェーバー マーカス
(57)【要約】
【課題】メタデータの生成時又は生成後におけるデジタルインクの取扱性を高めるデジタルインク生成装置、方法及びプログラムを提供する。
【解決手段】デジタルインク生成装置(10)は、第1集合データ(42)及び第2集合データ(44)を用いて、第1集合と第2集合の間の包含関係を判定する。デジタルインク生成装置(10)は、第1集合と第2集合の間に包含関係があると判定された場合、上位集合又は下位集合である第2集合の第2メタデータ(53)に依存するように第1集合の第1メタデータ(56~58)を生成する。
【選択図】図9
【特許請求の範囲】
【請求項1】
ストロークの集合毎のメタ情報を記述するメタデータを含むデジタルインクを生成するデジタルインク生成装置であって、
メタ情報がまだ付与されていない第1集合に属するストローク要素を示す第1集合データを取得する第1取得部と、
メタ情報が既に付与されている第2集合に属するストローク要素を示す第2集合データをストロークの集合毎に取得する第2取得部と、
前記第1取得部により取得された前記第1集合データ及び前記第2取得部により取得された前記第2集合データを用いて、前記第1集合と前記第2集合の間の包含関係を判定する集合判定部と、
前記集合判定部により前記第1集合と前記第2集合の間に包含関係があると判定された場合、上位集合又は下位集合である前記第2集合の第2メタデータに依存するように前記第1集合の第1メタデータを生成するデータ生成部と、
を備えることを特徴とするデジタルインク生成装置。
【請求項2】
前記データ生成部は、前記第1集合と前記第2集合の間に包含関係があると判定された場合、前記第2集合の識別コードを参照する態様で前記第1メタデータを生成することを特徴とする請求項1に記載のデジタルインク生成装置。
【請求項3】
前記データ生成部は、前記第1集合と前記第2集合の間に包含関係がないと判定された場合、予め定められたメタ情報の付与順に従う位置に前記第1メタデータを生成することを特徴とする請求項1に記載のデジタルインク生成装置。
【請求項4】
前記第1集合を構成する複数のストロークの位置又は形状の相互関係に基づいて、前記第1集合に付与されるべき属性を推定する属性推定部をさらに備えることを特徴とする請求項1に記載のデジタルインク生成装置。
【請求項5】
前記属性推定部は、ストロークの端点に関する特徴量を入力し、セマンティクス属性のラベル値を出力する識別器を含んで構成されることを特徴とする請求項4に記載のデジタルインク生成装置。
【請求項6】
複数本のストロークを表示領域内に同時に表示可能であるとともに、ユーザの手書き入力によって前記複数本のストロークの中から前記第1集合に属するストローク要素を選択可能に構成されるUI部をさらに備え、
前記UI部は、前記第1集合に付与するセマンティクス属性を入力可能なユーザコントロールをさらに表示し、
前記データ生成部は、前記ユーザコントロールを用いて入力されたセマンティクス属性を示す前記第1メタデータを生成する
ことを特徴とする請求項5に記載のデジタルインク生成装置。
【請求項7】
前記UI部は、前記属性推定部により推定されたセマンティック属性を前記ユーザコントロールの初期値として表示することを特徴とする請求項6に記載のデジタルインク生成装置。
【請求項8】
ストロークの集合毎のメタ情報を記述するメタデータを含むデジタルインクを生成するデジタルインク生成装置であって、
ストロークの集合に属するストローク要素を示す集合データを集合毎に取得するデータ取得部と、
前記データ取得部により取得された集合毎の前記集合データに基づいて、複数の集合間の包含関係を示すメタデータを出力するデータ出力部と、
を備えることを特徴とするデジタルインク生成装置。
【請求項9】
前記データ出力部は、集合の包含関係を示すデータ構造によってセマンティクス属性を記述するメタチャンクを含む前記メタデータを出力することを特徴とする請求項8に記載のデジタルインク生成装置。
【請求項10】
ストロークの集合毎のメタ情報を記述するメタデータを含むデジタルインクを生成するデジタルインク生成方法であって、
メタ情報がまだ付与されていない第1集合に属するストローク要素を示す第1集合データを取得する第1取得ステップと、
メタ情報が既に付与されている第2集合に属するストローク要素を示す第2集合データをストロークの集合毎に取得する第2取得ステップと、
それぞれ取得された前記第1集合データ及び前記第2集合データを用いて、前記第1集合と前記第2集合の間の包含関係を判定する判定ステップと、
前記判定ステップで前記第1集合と前記第2集合の間に包含関係があると判定された場合、上位集合又は下位集合である前記第2集合の第2メタデータに依存するように前記第1集合の第1メタデータを生成する生成ステップと、
を1つ又は複数のコンピュータが実行することを特徴とするデジタルインク生成方法。
【請求項11】
ストロークの集合毎のメタ情報を記述するメタデータを含むデジタルインクを生成するためのデジタルインク生成プログラムであって、
メタ情報がまだ付与されていない第1集合に属するストローク要素を示す第1集合データを取得する第1取得ステップと、
メタ情報が既に付与されている第2集合に属するストローク要素を示す第2集合データをストロークの集合毎に取得する第2取得ステップと、
それぞれ取得された前記第1集合データ及び前記第2集合データを用いて、前記第1集合と前記第2集合の間の包含関係を判定する判定ステップと、
前記判定ステップで前記第1集合と前記第2集合の間に包含関係があると判定された場合、上位集合又は下位集合である前記第2集合の第2メタデータに依存するように前記第1集合の第1メタデータを生成する生成ステップと、
を1つ又は複数のコンピュータに実行させることを特徴とするデジタルインク生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタルインクを生成するデジタルインク生成装置、方法及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、入力デバイスを特定するN種類のメタデータと、M個のストロークデータを対応付けてメタデータブロックを作成し、当該ブロックをストロークデータとともにインクファイルに書き込む方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際特許出願公開第2016/157400号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の目的は、メタデータの生成時又は生成後におけるデジタルインクの取扱性を高めるデジタルインク生成装置、方法及びプログラムを提供することである。
【課題を解決するための手段】
【0005】
第1の本発明におけるデジタルインク生成装置は、ストロークの集合毎のメタ情報を記述するメタデータを含むインクデータを生成する装置であって、メタ情報がまだ付与されていない第1集合に属するストローク要素を示す第1集合データを取得する第1取得部と、メタ情報が既に付与されている第2集合に属するストローク要素を示す第2集合データをストロークの集合毎に取得する第2取得部と、前記第1取得部により取得された前記第1集合データ及び前記第2取得部により取得された前記第2集合データを用いて、両方のストローク要素を比較することで、前記第1集合と前記第2集合の間の包含関係を判定する集合判定部と、前記集合判定部の判定結果に応じて異なる態様の記述により前記第1集合の第1メタデータを生成するデータ生成部と、を備える。
【0006】
第2の本発明におけるデジタルインク生成装置は、ストロークの集合毎のメタ情報を記述するメタデータを含むインクデータを生成する装置であって、ストロークの集合に属するストローク要素を示す集合データを集合毎に取得するデータ取得部と、前記データ取得部により取得された集合毎の前記集合データに基づいて、複数の集合間の包含関係を示すメタデータを出力するデータ出力部と、を備える。
【0007】
第3の本発明におけるデジタルインク生成方法は、ストロークの集合毎のメタ情報を記述するメタデータを含むインクデータを生成する方法であって、メタ情報がまだ付与されていない第1集合に属するストローク要素を示す第1集合データを取得する第1取得ステップと、メタ情報が既に付与されている第2集合に属するストローク要素を示す第2集合データをストロークの集合毎に取得する第2取得ステップと、それぞれ取得された前記第1集合データ及び前記第2集合データを用いて、両方のストローク要素を比較することで、前記第1集合と前記第2集合の間の包含関係を判定する判定ステップと、前記判定ステップでの判定結果に応じて異なる態様の記述により前記第1集合の第1メタデータを生成する生成ステップと、を1つ又は複数のコンピュータが実行する。
【0008】
第4の本発明におけるデジタルインク生成プログラムは、ストロークの集合毎のメタ情報を記述するメタデータを含むインクデータを生成するためのプログラムであって、メタ情報がまだ付与されていない第1集合に属するストローク要素を示す第1集合データを取得する第1取得ステップと、メタ情報が既に付与されている第2集合に属するストローク要素を示す第2集合データをストロークの集合毎に取得する第2取得ステップと、それぞれ取得された前記第1集合データ及び前記第2集合データを用いて、両方のストローク要素を比較することで、前記第1集合と前記第2集合の間の包含関係を判定する判定ステップと、前記判定ステップでの判定結果に応じて異なる態様の記述により前記第1集合の第1メタデータを生成する生成ステップと、を1つ又は複数のコンピュータに実行させる。
【発明の効果】
【0009】
本発明によれば、メタデータの生成時又は生成後におけるデジタルインクの取扱性を高めることができる。
【図面の簡単な説明】
【0010】
図1】本発明の一実施形態におけるインクデータ生成装置の全体構成図である。
図2図1のインクデータの一例を示す図である。
図3図2のインクデータに基づいて可視化されたコンテンツを示す図である。
図4図1に示すインクデータ生成装置の動作説明に供される第1のフローチャートである。
図5】ラッソ操作による新規集合の指定方法を示す図である。
図6A】サブグループの選択方法を示す図である。
図6B】サブグループにおける特徴量の抽出方法を示す図である。
図7A】識別器の構成例を示す図である。
図7B】ヒストグラムの導出方法を示す図である。
図8図4のステップS5における画面の表示例を示す図である。
図9】コンテンツ及び2つのラッソの間の位置関係を示す図である。
図10図9に対応するインクデータの記述例を示す図である。
図11図1に示すインクデータ生成装置の動作説明に供される第2のフローチャートである。
図12】コンテンツ及び3つのラッソの間の位置関係を示す図である。
図13図12に対応するインクデータの記述例を示す図である。
図14】コンテンツ及び3つのラッソの間の位置関係を示す図である。
図15図14に対応するインクデータの第1の記述例を示す図である。
図16図14に対応するインクデータの第2の記述例を示す図である。
図17図14に対応するインクデータの第3の記述例を示す図である。
図18】コンテンツ及び3つのラッソの間の位置関係を示す図である。
図19図18に対応するインクデータの記述例を示す図である。
図20】セマンティクス属性の付与結果を示す図である。
【発明を実施するための形態】
【0011】
[インクデータ生成装置10の構成]
<全体構成>
図1は、本発明の一実施形態におけるインクデータ生成装置10の全体構成図である。インクデータ生成装置10は、タッチパネルディスプレイ12を備える電子機器であり、例えば、タブレット型端末、スマートフォン、パーソナルコンピュータで構成される。このインクデータ生成装置10は、具体的には、タッチパネルディスプレイ12と、表示駆動IC14と、タッチセンサIC16と、ホストプロセッサ18と、メモリ20と、を含んで構成される。
【0012】
タッチパネルディスプレイ12は、コンテンツを可視的に表示可能な表示パネル22と、表示パネル22の上に配置されるタッチセンサ24と、を含んで構成される。表示パネル22は、モノクロ画像又はカラー画像を表示可能であり、例えば、液晶パネル、有機EL(Electro-Luminescence)パネルであってもよい。タッチセンサ24は、センサ座標系のX軸の位置を検出するための複数のXライン電極と、Y軸の位置を検出するための複数のYライン電極と、を備える。
【0013】
表示駆動IC14は、表示パネル22の駆動制御を行う集積回路である。表示駆動IC14は、ホストプロセッサ18から供給された表示信号に基づいて表示パネル22を駆動する。これにより、表示パネル22上には、インクデータ50が示すコンテンツが表示される。
【0014】
タッチセンサIC16は、タッチセンサ24の駆動制御を行う集積回路である。タッチセンサIC16は、ホストプロセッサ18から供給された制御信号に基づいてタッチセンサ24を駆動する。これにより、タッチセンサIC16は、スタイラス26の状態を検出する「ペン検出機能」や、ユーザの指などによるタッチを検出する「タッチ検出機能」を実行する。
【0015】
このペン検出機能は、例えば、タッチセンサ24のスキャン機能、ダウンリンク信号の受信・解析機能、スタイラス26の状態(例えば、位置、姿勢、筆圧)の推定機能、スタイラス26に対する指令を含むアップリンク信号の生成・送信機能を含む。また、タッチ検出機能は、例えば、タッチセンサ24の二次元スキャン機能、タッチセンサ24上の検出マップの取得機能、検出マップ上の領域分類機能(例えば、指、手の平などの分類)を含む。
【0016】
このように、タッチセンサ24及びスタイラス26による入力機能と、表示パネル22による出力機能を組み合わせることで、ユーザ・インターフェース(以下、UI部28)が構築される。
【0017】
ホストプロセッサ18は、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)を含む処理演算装置によって構成される。ホストプロセッサ18は、メモリ20に格納されたプログラムを読み出して実行することで、第1取得部30、第2取得部32、属性推定部34、集合判定部36、データ生成部38(データ出力部)、及び描画処理部40として機能する。
【0018】
メモリ20は、非一過性であり、かつ、コンピュータ読み取り可能な記憶媒体で構成されている。ここで、コンピュータ読み取り可能な記憶媒体は、ハードディスクドライブ(HDD:Hard Disk Drive)、ソリッドステートドライブ(SSD:Solid State Drive)を含む記憶装置、あるいは、光磁気ディスク、ROM、CD-ROM、フラッシュメモリ等の可搬媒体である。本図の例では、メモリ20には、新規集合データ42(第1集合データ)、既存集合データ44(第2集合データ)、学習パラメータ群46、及びインクデータ50が格納されている。
【0019】
<インクデータ50の一例>
図2は、図1のインクデータ50の一例を示す図である。以下、デジタルインクをXML(eXtensible Markup Language)形式で記述するInkML(Ink Markup Language)の例を挙げて説明する。なお、インクデータ50のデータ形式、いわゆる「インク記述言語」は、InkMLに限られず、例えば、WILL(Wacom Ink Layer Language)あるいはISF(Ink Serialized Format)であってもよい。また、このインクデータ50をJSON(JavaScript(登録商標) Object Notation)のデータ構造形式を用いて記述することで、様々なソフトウェアやプログラミング言語間でのデータのやり取りが容易になる。
【0020】
本図の例では、インクデータ50は、少なくとも1本(本図の例では24本)のストロークを記述するストロークデータ51を含んで構成される。本図から理解されるように、1本のストロークは、<trace>タグ内に順次配列される複数のポイントデータにより記述される。各々のポイントデータは、少なくとも指示位置(X座標、Y座標)からなり、カンマなどのデリミタで区切られる。図示の便宜上、ストロークの始点及び終点を示すポイントデータのみを表記し、複数の経由点を示すポイントデータを省略している。なお、このポイントデータには、上記した指示位置の他に、筆記の順序、スタイラス26の筆圧、姿勢などが含まれてもよい。
【0021】
図3は、図2のインクデータ50に基づいて可視化されたコンテンツを示す図である。表示パネル22(図1)上において、タッチセンサ24の検出位置を特定するための二次元座標系(以下、センサ座標系:X-Y)が定義される。このコンテンツは、「This is a pencil.」からなる文字列と、鉛筆の絵を含んで構成される。なお、括弧内の数字は、ストロークの筆記順(ストロークID=01-24)を示しており、コンテンツの一部を構成しない点に留意する。
【0022】
[インクデータ生成装置10の第1動作]
この実施形態におけるインクデータ生成装置10は、以上のように構成される。まず、インクデータ生成装置10の第1動作について、図4のフローチャート及び図5図10を参照しながら説明する。この「第1動作」とは、ユーザによるメタ情報(例えば、データの属性、作成者、作成日時、使用デバイスなど)の付与を支援する動作を意味する。
【0023】
第1動作に先立ち、描画処理部40は、メモリ20から読み出したインクデータ50を解析し、ストロークデータ51に対して所望のラスタライズ処理を行い、コンテンツを示す表示信号を生成する。表示駆動IC14は、ホストプロセッサ18から供給された表示信号に基づいて表示パネル22を駆動する。これにより、表示パネル22上には可視化されたコンテンツが表示される。
【0024】
<第1動作の説明>
図4のステップS1において、ホストプロセッサ18は、メタ情報を付与しようとするストロークの新規集合(第1集合)の指定操作を受け付けたか否かを確認する。この「指定操作」は、複数のストロークの中から1本以上のストロークを選択するための操作であり、例えば、選択対象をラッソ(投げ縄)で囲む「ラッソ操作」が挙げられる。
【0025】
図5は、ラッソ操作による新規集合の指定方法を示す図である。ユーザは、表示パネル22上のタッチ面にてスタイラス26を移動させながら、メタ情報を付与しようとするストローク全体を囲む筆記操作を行う。この手書き入力により、可視化されたコンテンツの上にラッソLtmpが重ねて表示される。
【0026】
ユーザの指定操作をまだ受け付けていない場合(ステップS1:NO)、この指定操作を受け付けるまでステップS1に留まる。一方、ユーザの指示操作を受け付けた場合(ステップS1:YES)、次のステップS2に進む。
【0027】
ステップS2において、第1取得部30は、ステップS1で受け付けた指示操作の内容に基づいて、新規集合に属するストローク要素を示すデータ(以下、新規集合データ42という)を取得する。この新規集合データ42は、ストローク要素を特定可能なデータであり、例えば、ストロークの識別情報であるストロークIDであってもよい。図2及び図5の例では、第1取得部30は、新規集合データ42としてストロークID=01-18を取得する。
【0028】
ステップS3において、ホストプロセッサ18は、メタ情報の入力を支援するモード(以下、単に「入力支援モード」という)のオン・オフを確認する。この入力支援モードが「オフ」である場合(ステップS3:OFF)、ステップS4の実行を省略してステップS5に進む。一方、入力支援モードが「オン」である場合(ステップS3:ON)、次のステップS4に進む。
【0029】
ステップS4において、属性推定部34は、ステップS1で指定された新規集合を構成する複数のストロークの位置又は形状の相互関係に基づいて、新規集合に付与されるべき属性を推定する。ここでは、属性推定部34は、機械学習により構築された識別器70(図7A参照)を用いて、新規集合のセマンティクス属性を推定する。以下、属性の推定方法について、図6及び図7を参照しながら詳細に説明する。
【0030】
図6A及び図6Bは、識別器70に対する入力データの生成方法の一例を示す図である。より詳しくは、図6Aはサブグループ74の選択方法を示す図であり、図6Bはサブグループ74における特徴量の抽出方法を示す図である。
【0031】
図6Aに示すように、属性推定部34は、18本のストローク要素(ストロークID=01-18)から構成されるグループ72の中から、所定のストローク本数からなるサブグループ74を1つ選択する。ここでは、ID=01から始まる連続する5つのID=01-05を有する5本のストロークが抽出されたとする。
【0032】
図6Bに示すように、属性推定部34は、サブグループ74に属する5本のストロークをすべて網羅する正方形領域を設定し、この領域に対応する二次元座標系(以下、正規化座標系;X’-Y’)を定義する。この正規化座標系の原点O’は、センサ座標系の原点Oに最も近い位置にある、正方形領域の頂点に相当する。正規化座標系のX’軸はセンサ座標系のX軸に平行であるとともに、正規化座標系のY’軸はセンサ座標系のY軸に平行である。また、X’軸,Y’軸のスケールは、正方形領域をなす4つの頂点の座標が(0,0),(1,0),(0,1),(1,1)となるように正規化されている。
【0033】
属性推定部34は、ストロークデータ51(図2)を参照し、センサ座標系におけるストロークの始点Psの座標値(X,Y)及び終点Peの座標値(X,Y)を取得する。そして、属性推定部34は、座標系の線形変換を施すことで、正規化座標系におけるストロークの始点Psの座標値(X’,Y’)及び終点Peの座標値(X’,Y’)をそれぞれ導出する。
【0034】
図7A及び図7Bは、セマンティクス属性の推定方法の一例を示す図である。より詳しくは、図7Aは識別器70の構成例を示す図であり、図7Bはヒストグラムの導出方法を示す図である。
【0035】
図7Aに示すように、識別器70は、例えば、入力層76、中間層78及び出力層80からなる階層型ニューラルネットワークで構成される。識別器70の演算規則は、学習パラメータの集合体である学習パラメータ群46の値によって定められる。学習パラメータ群46は、例えば、ニューロンに相当するユニットの活性化関数を記述する係数、シナプス結合の強さに相当する重み付け係数、各層を構成するユニットの個数、中間層78の数を含んでもよい。学習パラメータ群46は、学習の終了によって各値が確定された状態でメモリ20(図1)に格納され、必要に応じて適時に読み出される。
【0036】
入力層76は、ストロークの端点に関する特徴量を入力する層であり、本図の例では20個のユニットから構成される。この特徴量は、[1]始点PsのX’座標、[2]始点PsのY’座標、[3]終点PeのX’座標、[4]終点PeのY’座標、をストロークIDの順に配列した20個の成分からなる入力ベクトルである。
【0037】
出力層80は、セマンティクス属性のラベル群を出力する層であり、本図の例では6個のユニットから構成される。このラベル群は、[1]テキスト(英語)、[2]テキスト(日本語)、[3]図(グラフィック)、[4]図(イラスト)、[5]数式、[6]化学式、の確からしさを示す6個の成分からなる出力ベクトルである。
【0038】
識別器70は、サブグループ74から生成した特徴量を入力層76から入力し、中間層78を経由して、サブグループ74に応じたラベル群を出力層80に出力する。例えば、各々のラベルが[0,1]の範囲で定義されている場合、ラベルの値が最大となるセマンティクス属性、例えば「テキスト(英語)」が選択される。
【0039】
図7Bに示すように、属性推定部34は、最初のサブグループ74のセマンティクス属性を識別した後、ストロークIDを1つずつずらし、5本のストローク(ID=02-06)から構成される次のサブグループ74を選択して上記した識別処理を行う。そして、属性推定部34は、複数のサブグループ74による識別結果を集計し、セマンティクス属性の個数を「度数」とするヒストグラムを作成する。本図の例では、ヒストグラムの度数が最大となる「テキスト(英語)」が、新規集合(図6aのグループ72)に付与されるべきセマンティクス属性であると推定される。
【0040】
図4のステップS5において、ホストプロセッサ18は、メタ情報(例えば、アノテーション)を入力するための入力用ウィンドウ82を表示パネル22上に表示させる。この入力用ウィンドウ82は、例えば、ラッソLtmpによって囲まれる閉領域と重ならない位置に表示される。
【0041】
図8に示すように、入力用ウィンドウ82内には、2つのユーザコントロール84,86と、[OK][中止]と表記されたボタン88が配置されている。1つ目のユーザコントロール84は、例えば、セマンティクス属性を入力可能に構成されるプルダウンメニューである。2つ目のユーザコントロール86は、例えば、バリュー属性を入力可能に構成されるテキストボックスである。
【0042】
入力支援モードが「オン」である場合、つまり、図4の「ステップS3:ON」を経由した場合、ユーザコントロール84の入力欄には、ステップS4で推定されたセマンティクス属性が初期値(つまり、推奨値)として表示される。一方、入力支援モードが「オフ」である場合、つまり、図4の「ステップS3:OFF」を経由した場合、ユーザコントロール84の入力欄には、属性が選択されていない状態を示す表示(例えば、ブランク表示)がなされる。
【0043】
ユーザは、自身の意図に合致するセマンティクス属性が提示された場合、ユーザコントロール84の操作を省略することができる。一方、ユーザは、自身の意図に合致しないセマンティクス属性が提示された場合、所望の属性が選択されるようにユーザコントロール84を操作してもよい。
【0044】
ステップS6において、ホストプロセッサ18は、データ入力の確定操作、より詳しくは[OK]ボタン88(図8)のタッチ操作を受け付けたか否かを確認する。確定操作をまだ受け付けていない場合(ステップS6:NO)、この確定操作を受け付けるまでステップS6に留まる。一方、確定操作を受け付けた場合(ステップS6:YES)、図11で後述するステップS7に進む。
【0045】
図9は、コンテンツ及び2つのラッソLprv,Ltmpの間の位置関係を示す図である。ユーザは、ラッソLprvで囲んだストローク集合に対して1番目のアノテーション操作を行い、その後、ラッソLtmpで囲んだストローク集合に対して2番目のアノテーション操作を行ったとする。1番目のアノテーション操作を通じて、ID=11-17,19-23をストローク要素とする集合に対して、セマンティクス属性(Sem)が「なし」であり、バリュー属性(Value)が「鉛筆」であるメタ情報が付与される。2番目のアノテーション操作を通じて、ID=01-18をストローク要素とする集合に対して、セマンティクス属性が「テキスト(英語)」であり、バリュー属性が「なし」であるメタ情報が付与される。
【0046】
図10は、図9に対応するインクデータ50の記述例を示す図である。このインクデータ50は、ストロークデータ51とメタデータ52から構成される。メタデータ52は、2つのメタチャンク53,54を含んで構成される。1番目のメタチャンク53は、ラッソLprvが示すストローク集合に付与されるメタ情報を記述する。2番目のメタチャンク54は、ラッソLtmpが示すストローク集合に付与されるメタ情報を記述する。
【0047】
<第1動作による効果>
以上のように、このインクデータ生成装置10は、ストロークの集合毎のメタ情報を記述するメタデータ52を含むインクデータ50を生成する装置であって、メタ情報がまだ付与されていない新規集合に属するストローク要素を示す新規集合データ42を取得する第1取得部30と、新規集合を構成する複数のストロークの位置又は形状の相互関係に基づいて、新規集合に付与されるべき属性を推定する属性推定部34と、推定された属性を新規集合に付与するためのメタチャンク53,54(第1メタデータ)を生成するデータ生成部38と、を備える。
【0048】
あるいは、このインクデータ生成方法及びプログラムによれば、1つ又は複数のプロセッサ(例えば、ホストプロセッサ18)が、メタ情報がまだ付与されていない新規集合に属するストローク要素を示す新規集合データ42を取得する第1取得ステップ(図4のS2)と、新規集合を構成する複数のストロークの位置又は形状の相互関係に基づいて、新規集合に付与されるべき属性を推定する推定ステップ(図4のS4)と、推定された属性を新規集合に付与するためのメタチャンク53,54(第1メタデータ)を生成する生成ステップ(後述する図11のS10,S11)と、を備える。
【0049】
このように構成したので、複数のストロークの位置又は形状の相互関係が考慮された妥当性が高い属性を自動的に選択可能となり、ユーザによる属性の入力作業が軽減される。
【0050】
また、属性推定部34は、ストロークの端点に関する特徴量を入力し、セマンティクス属性のラベル群を出力する識別器70を含んで構成されてもよい。ストロークの端点とセマンティック属性の間の関連性に着目することで、セマンティック属性の推定精度が向上する。
【0051】
また、インクデータ生成装置10は、複数本のストロークを表示領域内に同時に表示可能であるとともに、ユーザの手書き入力によって複数本のストロークの中から新規集合に属するストローク要素を選択可能に構成されるUI部28をさらに備え、UI部28は、新規集合に付与するセマンティクス属性を入力可能なユーザコントロール84をさらに表示し、データ生成部38は、ユーザコントロール84を用いて入力されたセマンティクス属性を示すメタチャンク53,54を生成してもよい。これにより、ユーザ・インターフェースを利用したセマンティクス属性の円滑な入力が行われる。
【0052】
また、UI部28は、属性推定部34により推定されたセマンティック属性をユーザコントロール84の初期値として表示してもよい。これにより、ユーザコントロール84の初期状態からの変更操作が不要となる可能性が高まるとともに、ユーザに対して変更の機会を与えることができる。
【0053】
[インクデータ生成装置10の第2動作]
続いて、インクデータ生成装置10の第2動作について、図11のフローチャート及び図12図17を参照しながら説明する。この「第2動作」は、第1動作により入力されたメタ情報に基づいてインクデータ50を生成する動作を意味する。ここで、データ生成部38は、メタ情報を付与する度にインクデータ50を逐次更新する「フロー型」のデータ処理を行う。
【0054】
<第2動作の説明>
図11のステップS7において、第2取得部32は、メタ情報が既に付与されているストロークの集合(以下、既存集合という)に属するストローク要素を示すデータ(以下、既存集合データ44という)を取得する。この既存集合データ44は、新規集合データ42と同様に、ストローク要素を特定可能なデータであり、例えば、ストロークの識別情報であるストロークIDであってもよい。
【0055】
ステップS8において、集合判定部36は、図4のステップS2で取得された新規集合データ42と、ステップS7で取得された既存集合データ44を用いて、両方のストローク要素を比較することで、新規集合と既存集合の間の包含関係を判定する。具体的には、集合判定部36は、既存集合が新規集合の(1)上位集合、(2)下位集合、又は(3)包含関係にない、のいずれに該当するかを判定する。なお、複数の既存集合が存在する場合、集合判定部36は、各々の既存集合に対して包含関係の判定を行う点に留意する。
【0056】
ステップS9において、集合判定部36は、新規集合と包含関係を有する既存集合が存在するか否かを確認する。
【0057】
図12は、コンテンツ及び3つのラッソLpr1,Lpr2,Ltmpの間の位置関係を示す図である。ここで、ユーザは、第1-第8のアノテーション操作を行った後、ラッソLtmpで囲んだストローク集合に対して9番目のアノテーション操作を行ったとする。9番目のアノテーション操作を通じて、ID=19-24をストローク要素とする集合に対して、セマンティクス属性(Sem)が「図」であり、バリュー属性(Value)が「なし」であるメタ情報が付与される。図示の便宜上、3-8番目のラッソの表記が省略されている。
【0058】
本図から理解されるように、ラッソLpr1(第1のアノテーション操作)で指定された既存集合は、ID=19-23のストローク要素を含むが、ID=24のストローク要素を含まない。また、ラッソLpr2(第2のアノテーション操作)で指定された既存集合は、ID=19-24のストローク要素を含まない。この場合、新規集合と既存集合の間に包含関係がないとして(ステップS9:NO)、ステップS10に進む。
【0059】
ステップS10において、データ生成部38は、図4のステップS6で入力が確定されたメタ情報を記述するメタチャンク55を生成し、予め定められたメタ情報の付与順に従う位置に配置する。
【0060】
図13は、図12に対応するインクデータ50の記述例を示す図である。このインクデータ50は、ストロークデータ51とメタデータ52Aから構成される。メタデータ52Aは、メタチャンク53,54,55を含む、9個のメタチャンクから構成される。1番目のメタチャンク53は、ラッソLpr1で指定された既存集合に付与されるメタ情報を記述する。2番目のメタチャンク54は、ラッソLpr2で指定された既存集合に付与されるメタ情報を記述する。9番目のメタチャンク55は、ラッソLtmpで指定された新規集合に付与されるメタ情報を記述する。図示の便宜上、3-8番目のメタチャンクの表記が省略されている。
【0061】
本図の例では、新たに付与されたメタ情報を下方の位置に逐次追加する規則が設けられるので、9番目のメタチャンク55は、メタデータ52の最後尾の位置に追加される。本図とは逆に、新たに付与されたメタ情報を上方の位置に逐次追加する規則が設けられる場合、メタチャンク55は、メタデータ52の先頭の位置に追加されることになる。
【0062】
一方、図14は、コンテンツ及び3つのラッソLpr1,Lpr2,Ltmpの間の位置関係を示す図である。この図14は、ラッソLtmpによる指定範囲が異なる点のみにおいて図12と異なっている。9番目のアノテーション操作を通じて、ID=19-23をストローク要素とする集合に対して、セマンティクス属性が「図」であり、バリュー属性が「なし」であるメタ情報が付与される。
【0063】
本図から理解されるように、ラッソLpr1で指定された既存集合は、ストローク要素(ID=19-23)をすべて含むので、新規集合の「上位集合」に該当する。つまり、新規集合と既存集合の間に包含関係があるとして(ステップS9:YES)、ステップS11に進む。
【0064】
ステップS11において、データ生成部38は、新規集合の上位集合又は下位集合である既存集合のメタチャンク54(第2メタデータ)に依存するようにメタチャンク56-58(第1メタデータ)を生成する。以下、メタチャンク56-58の生成方法の具体例について、図15図17を参照しながら説明する。
【0065】
図15は、図14に対応するインクデータ50の第1の記述例を示す図である。インクデータ50は、ストロークデータ51とメタデータ52Bから構成される。メタデータ52Bは、メタチャンク53,54,56を含む、9個のメタチャンクから構成される。メタチャンク53,54は、図13の場合と同じデータであるため説明を省略する。
【0066】
9番目のメタチャンク56は、ラッソLtmpで指定された新規集合に付与されるメタ情報を記述する。本図の例では、新たに付与されたメタ情報を下方の位置に逐次追加する規則があるにもかかわらず、9番目のメタチャンク56は、メタチャンク53内に組み込むように追加される。
【0067】
このように、データ生成部38は、新規集合と既存集合の間に包含関係があると判定された場合、該当する既存集合のメタチャンク53内の位置に、新規集合のメタチャンク56を生成してもよい。この記述例によっても、インクデータ50の生成時に、包含関係を有するメタチャンク53,56同士を対応付けることができる。
【0068】
図16は、図14に対応するインクデータ50の第2の記述例を示す図である。インクデータ50は、ストロークデータ51とメタデータ52Cから構成される。メタデータ52Cは、メタチャンク53,54,57を含む、9個のメタチャンクから構成される。メタチャンク53,54は、図13の場合と同じデータであるため説明を省略する。
【0069】
9番目のメタチャンク57は、ラッソLtmpで指定された新規集合に付与されるメタ情報を記述する。本図の例では、新たに付与されたメタ情報を下方の位置に逐次追加する規則があるにもかかわらず、9番目のメタチャンク56は、メタチャンク53の直下(メタチャンク54の直上)の位置に追加される。
【0070】
このように、データ生成部38は、新規集合と既存集合の間に包含関係があると判定された場合、該当する既存集合のメタチャンク53の直上又は直下の位置に新規集合のメタチャンク57を生成してもよい。この記述例によっても、インクデータ50の生成時に、包含関係を有するメタチャンク53,57同士を対応付けることができる。
【0071】
図17は、図14に対応するインクデータ50の第3の記述例を示す図である。インクデータ50は、ストロークデータ51とメタデータ52Dから構成される。メタデータ52Dは、メタチャンク53,54,58を含む、9個のメタチャンクから構成される。メタチャンク53,54は、図13の場合と同じデータであるため説明を省略する。
【0072】
9番目のメタチャンク58は、ラッソLtmpで指定された新規集合に付与されるメタ情報を記述する。本図の例では、9番目のメタチャンク58は、新たに付与されたメタ情報を下方の位置に逐次追加する規則に従って、メタデータ52Dの最後尾の位置に追加される。ただし、メタチャンク55は、<traceView>タグ内にて、メタチャンク53に含まれるストローク集合の識別コード(ここでは、グループID=g1)を参照した態様で記述されている。
【0073】
つまり、データ生成部38は、新規集合と既存集合の間に包含関係があると判定された場合、メタチャンク53に含まれる既存集合の識別コードを参照する態様で、新規集合のメタチャンク58を生成してもよい。この記述例によっても、インクデータ50の生成時に、包含関係を有するメタチャンク53,58同士を対応付けることができる。
【0074】
このように、データ生成部38は、ステップS8の判定結果に応じて異なる態様の記述によりメタチャンク55,56-58を生成した後(ステップS10,S11)、次のステップS12に進む。
【0075】
図11のステップS12において、データ生成部38は、ステップS10又はS11で作成・更新されたインクデータ50を出力する。この「出力」とは、具体的には、メモリ20への格納、データファイルへの書き込み処理、外部装置への送信処理が挙げられる。これにより、インクデータ生成装置10の動作が終了する。
【0076】
<第2動作による効果>
以上のように、インクデータ生成装置10は、ストロークの集合毎のメタ情報を記述するメタデータ52を含むインクデータ50を生成する装置であって、メタ情報がまだ付与されていない新規集合(第1集合)に属するストローク要素を示す新規集合データ42(第1集合データ)を取得する第1取得部30と、メタ情報が既に付与されている既存集合(第2集合)に属するストローク要素を示す既存集合データ44(第2集合データ)をストロークの集合毎に取得する第2取得部32と、それぞれ取得された新規集合データ42及び既存集合データ44を用いて、両方のストローク要素を比較することで、新規集合と既存集合の間の包含関係を判定する集合判定部36と、集合判定部36の判定結果に応じて異なる態様の記述により新規集合の第1メタデータ(メタチャンク55,56-58)を生成するデータ生成部38と、を備える。
【0077】
あるいは、このインクデータ生成方法及びプログラムによれば、1つ又は複数のプロセッサ(例えば、ホストプロセッサ18)が、メタ情報がまだ付与されていない新規集合に属するストローク要素を示す新規集合データ42を取得する第1取得ステップ(図4のS2)と、メタ情報が既に付与されている既存集合に属するストローク要素を示す既存集合データ44をストロークの集合毎に取得する第2取得ステップ(S7)と、それぞれ取得された新規集合データ42及び既存集合データ44を用いて、両方のストローク要素を比較することで、新規集合と既存集合の間の包含関係を判定する判定ステップ(S8)と、判定ステップでの判定結果に応じて異なる態様の記述によりメタチャンク55,56-58を生成する生成ステップ(S10,S11)と、を実行する。
【0078】
このように構成したので、メタデータ52の記述態様を解析することでストロークの集合同士の包含関係を把握可能となり、この包含関係を考慮したメタ情報の様々な処理、具体的には、編集支援(例えば、メタ情報の相互参照)や自動編集(例えば、メタ情報の結合・置換・継承)などを行うことができる。これにより、メタデータ52の生成時又は生成後におけるインクデータ50の取扱性を高めることができる。
【0079】
また、データ生成部38は、既存集合と新規集合の間に包含関係があると判定された場合、上位集合又は下位集合である既存集合のメタチャンク53に依存するようにメタチャンク56-58を生成してもよい。メタチャンク53,56-58の間に依存関係を設けておくことで、両者の包含関係がより把握しやすくなる。
【0080】
[変形例]
以下、インク記述言語がWILLであるインクデータ60をJSONの表記方法に従って生成する例について説明する。
【0081】
<インクデータ60の生成例>
図18は、コンテンツ及び3つのラッソLpr1,Lpr2,Lpr3の間の位置関係を示す図である。ユーザは、ラッソLpr1で囲んだストローク集合に対して11番目のアノテーション操作を行い、ラッソLpr2で囲んだストローク集合に対して12番目のアノテーション操作を行ったとする。11番目のアノテーション操作を通じて、ID=01-06をストローク要素とする集合に対して、種類(Type)が「ワード」であり、値(Value)が「This」であるメタ情報が付与される。12番目のアノテーション操作を通じて、ID=07-09をストローク要素とする集合に対して、種類が「ワード」であり、値が「is」であるメタ情報が付与される。
【0082】
ユーザは、第11-第18のアノテーション操作を行った後、ラッソLpr3で囲んだストローク集合に対して19番目のアノテーション操作を行ったとする。19番目のアノテーション操作を通じて、ID=01-09をストローク要素とする集合に対して、種類が「テキスト行」であり、値が「なし」であるメタ情報が付与される。図示の便宜上、13-18番目のラッソの表記が省略されている。
【0083】
ここで、データ生成部38は、ユーザにより付与されたメタ情報を蓄積した後、所定のタイミングでインクデータ60を一括的に更新する「ストック型」のデータ処理を行う。この場合、データ生成部38は、集合判定部36による判定結果を取得し、上記した包含関係を満たす場合、該当するメタ情報を階層的に記述するメタチャンク65を含むようにインクデータ60を生成する。また、データ生成部38は、上位集合又は下位集合に既に付与されているメタ情報との関係から、まだ付与されていないメタ情報を決定し、当該メタ情報を付与するためのコード文68を自動的に追加してもよい。
【0084】
図19は、図18に対応するインクデータ60の記述例を示す図である。インクデータ60は、ストローク及びストローク集合をそれぞれ記述するストロークデータ61と、セマンティクス属性を記述するメタデータ62を含んで構成される。メタデータ62は、メタチャンク63,64,65を含む、9個のメタチャンクから構成される。11番目のメタチャンク63は、ラッソLpr1で指定された集合(tg11)に付与されるメタ情報を記述する。12番目のメタチャンク64は、ラッソLpr2で指定された集合(tg12)に付与されるメタ情報を記述する。
【0085】
19番目のメタチャンク65は、ラッソLpr3で指定された集合(tg19)に付与されるメタ情報を記述する。本図の例では、19番目のメタチャンク65は、新たに付与されたメタ情報を下方の位置に逐次追加する規則に従って、メタデータ62の最後尾の位置に追加される。ただし、メタチャンク65内には、「has_subgroup」を用いて、2つの集合(tg11,tg12)を下位集合として定義する階層化データ66が追記されている。
【0086】
また、メタチャンク65内には、上位集合(tg19)の値が「This is」であることを示すコード文68が追加されている。この「This is」は、下位集合(tg11)の値である「This」と、下位集合(tg12)の値である「is」を結合してなる文字列である。
【0087】
その結果、図20に示すように、ID=01-09をストローク要素とする集合(tg19)に対して、メタ情報として「種類:テキスト行」が付与されるとともに、メタ情報として「値:This is」及び「サブグループ:tg11,tg12」が自動的に付与される。本図の例では、値が「なし」である場合に「This is」のメタ情報を自動的に付与しているが、ユーザの意向に従ってメタ情報を付与しなくてもよい。
【0088】
このように、データ生成部38は、第1集合(tg19)と第2集合(tg11,tg12)の間に包含関係があると判定された場合、第2集合の識別コード(tg11,tg12)を参照する態様で、第1集合のメタチャンク65を生成してもよい。この記述例によっても、インクデータ60の生成時に、包含関係を有するメタチャンク63-65同士を対応付けることができる。
【0089】
<変形例による効果>
以上のように、インクデータ生成装置10は、ストロークの集合毎のメタ情報を記述するメタデータ62を含むインクデータ60を生成する装置であって、ストロークの集合に属するストローク要素を示す集合データ(新規集合データ42、既存集合データ44)を集合毎に取得するデータ取得部(第1取得部30、第2取得部32)と、取得された集合毎の集合データに基づいて、複数の集合間の包含関係を示すメタデータ62を含むインクデータ60を出力するデータ出力部(データ生成部38)を備える。
【0090】
あるいは、このインクデータ生成方法及びプログラムによれば、1つ又は複数のプロセッサ(例えば、ホストプロセッサ18)が、ストロークの集合に属するストローク要素を示す集合データを集合毎に取得する取得ステップ(図4のS2、図11のS7)と、取得された集合毎の集合データに基づいて、複数の集合間の包含関係を示すメタデータ62を含むインクデータ60を出力する出力ステップ(図11のS12)を実行する。
【0091】
このように構成したので、出力されたメタデータ62の内容を解析することでストロークの集合同士の包含関係を把握可能となり、この包含関係を考慮したメタ情報の様々な処理、具体的には、編集支援や自動編集などを行うことができる。これにより、メタデータ62の出力時又は出力後におけるインクデータ60の取扱性を高めることができる。
【0092】
また、データ出力部は、集合の包含関係を示すデータ構造によってセマンティクス属性を記述するメタチャンク65を含むメタデータを出力してもよい。
【符号の説明】
【0093】
10 インクデータ生成装置、12 タッチパネルディスプレイ、18 ホストプロセッサ、20 メモリ、28 UI部、30 第1取得部、32 第2取得部、34 属性推定部、36 集合判定部、38 データ生成部(データ出力部)、40 描画処理部、42 新規集合データ(第1集合データ)、44 既存集合データ(第2集合データ)、50,60 インクデータ、51,61 ストロークデータ、52(A/B/C/D),62 メタデータ、53,54,65 メタチャンク(第2メタデータ)、55-58,63,64 メタチャンク(第1メタデータ)。
図1
図2
図3
図4
図5
図6A
図6B
図7A
図7B
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20