JP5289566B2 - アウトライン文字をスタイル化ストローク文字に変換する方法 - Google Patents
アウトライン文字をスタイル化ストローク文字に変換する方法 Download PDFInfo
- Publication number
- JP5289566B2 JP5289566B2 JP2011518104A JP2011518104A JP5289566B2 JP 5289566 B2 JP5289566 B2 JP 5289566B2 JP 2011518104 A JP2011518104 A JP 2011518104A JP 2011518104 A JP2011518104 A JP 2011518104A JP 5289566 B2 JP5289566 B2 JP 5289566B2
- Authority
- JP
- Japan
- Prior art keywords
- stroke
- ssf
- outline
- centerline
- character
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/109—Font handling; Temporal or kinetic typography
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
- G06F40/129—Handling non-Latin characters, e.g. kana-to-kanji conversion
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/53—Processing of non-Latin text
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Controls And Circuits For Display Device (AREA)
- Document Processing Apparatus (AREA)
Description
本発明は、従来のアウトラインフォントで表された文字(すなわちアウトライン文字)をスタイル化ストロークフォントで表された文字(すなわちスタイル化ストローク文字)に自動的に変換する方法を提供する。
図2に示すように、中国語のカリグラフィックストローク(calligraphic stroke)のスタイルは、大きくは、用紙に沿った3段階の筆の移動、すなわち開始201、展開202、及び終了203によって規定される。
文字600について図6に示すように、距離場は、空間における任意の点について、その点から文字の境界までの距離を指定する。通常、外側の点601は負であり、内側の点602は正であり、アウトライン上の点603は0である。
図7に示すように、アウトライン文字をスタイル化ストローク文字(すなわちSSF文字)に変換する方法は、2つの段階701〜702を有する。第1段階701の期間中、スタイル化ストローク文字が初期化され、その後、文字の形状及び構造の情報が、スタイル化ストローク文字及びアウトライン文字の双方について計算される。第2段階702の期間中、この形状及び構造の情報が使用されて、スタイル化ストローク文字が、アウトライン文字と一致するように反復的に修正される。
図8Aに示すような変換されるアウトライン文字は、閉じた交わらない領域の輪郭を描く一連の閉輪郭によって表される。ステップ1は、アウトライン文字の閉じた交わらない領域を識別する。次に、サンプリングされた符号付き距離場が各領域について求められる。各領域は解析され、その領域を規定する輪郭の高密度サンプリングされた線分近似の周知のドロネー(Delaunay)三角形分割を使用してストローク本体及び末端の候補ロケーションが求められる(図9A参照)。
スタイル化ストローク文字は、均一幅ストロークフォントからの対応する文字を使用して初期化される。SSF中心線は、対応する均一幅ストローク文字の経路を使用して初期化される。SSF輪郭は一定値に初期化される。SSFストローク本体は、末端を有しないように初期化される。コーナーを有する経路は、複数のSSFストローク本体を形成するように区画される。
ステップ3は、どのSSFストロークセットが各アウトライン領域に対応するのかを求める(図11A〜図11C参照)。SSFグリフは変換されて、自身の軸位置合わせされたバウンディングボックスが、対応するアウトライングリフの軸位置合わせされたバウンディングボックスにマッピングされる。アウトライン領域の距離場を使用して、各SSFストロークセットは、その後、自身の最も近いアウトライン領域に割り当てられる。アウトライン領域がSSFストロークセットに割り当てられない場合、近くのSSFストロークサブセット又はSSFストロークがそのアウトライン領域に再割り当てされる。アウトライン領域に最も近いSSFストロークサブセット又はSSFストローク(SSFストロークサブセットの一部でない)は、そのアウトライン領域に再割り当てされる。
ステップ3において、SSFストロークのセットをアウトライン領域に割り当てると、1つ又は複数のSSFストロークセットが、各アウトライン領域に割り当てられたことになる。各アウトライン領域の形状は、その領域を規定する暗に含まれたストロークの合成形状であることを思い出されたい。
最終的には、ストローク本体の各SSF中心線は、アウトライン文字の対応する暗に含まれたストロークのストローク本体の中心線に位置合わせされる。SSF中心線の位置合わせは、アウトライン領域の距離場がSSF中心線を挟んでどのように変化するのかを反映するエネルギーを使用して定量化される。SSF中心線は、このエネルギーを削減するようにSSF中心線に沿って力を印加して、SSF中心線をその対応する暗に含まれたストロークの中心線に接近させることにより反復的に修正される。
アウトライン領域に対応するSSFストロークは、階層ツリー構造の順序で反復的に修正される。アウトライン領域に対応するSSFストロークセットは、ツリー構造Tに置かれ、ツリー構造Tにおいて、各SSFストロークセットは、Tのルートノードの子である(図10参照)。
ステップ4において、SSF本体をフィットさせる際に、SSF本体は、たとえフィットしなかったエリアが、暗に含まれたストロークの本体に対応した可能性があっても、該SSF本体がフィットしなかったエリアの外部では収縮せざるを得ない(図12D)。例えば、或るSSF本体は、その端部が2つの暗に含まれたストロークの接合部に対応するエリアに位置していたことから、収縮した可能性がある。
SSF末端が、図13に示す末端のセット1300から選択される(図12F)。末端は、アウトラインフォントのサンプル文字の小さなセットを調べることによってインタラクティブにあらかじめ決定される。各SSF末端は、そのSSF末端をSSF本体にフィットさせるために、関連付けられたユーザー定義の最大の回転及び拡大縮小が許容されている。SSF末端を規定する経路は、アウトライン領域の距離場のゼロレベル等位面に位置するべきである。経路に沿った任意の点pにおいてこれが生じたとき、アウトライン領域の距離場の値はpにおいて0であり、距離場の勾配は、pにおいて末端経路に垂直である。
図12A〜図12Fは、本発明による方法ステップの要約を示す。図12Aは、スタイル化ストローク文字が最初にどのように変換されて、その軸位置合わせされたバウンディングボックスが、アウトライン文字の軸位置合わせされたバウンディングボックスにマッピングされるのかを示している。SSFストロークセットがアウトライン領域に割り当てられた後(図12B)、各アウトライン領域に対応するストロークは、それらのバウンディングボックスの結合体が、アウトライン領域のバウンディングボックスに位置合わせされるように変換される。
本発明者の自動変換方法は、多数の拡張及び変化に対応し、(1)輪郭402を、単一の二次ベジェ曲線ではなく、線分及びベジェ曲線の区間的に連続な経路として表すことができること、(2)輪郭402が、単一の輪郭ではなく左輪郭及び右輪郭から構成することができ、それによって、変換プロセスが目的のアウトライン文字とよりよく一致することが可能になること、(3)数例挙げれば、サンプリングされた距離マップ、適応的にサンプリングされた距離マップ(ADF:Adaptively Sampled Distance Field)、手順、又はメモリに記憶された距離値のセット等のさまざまな方法で距離場を表すことができること、(4)SSFストロークを領域と一致させるプロセスを改善するのに二部マッチング方法を使用することができること等に対応する。
本発明は、多数の汎用又は専用のコンピューティングシステム環境又はコンピューティングシステム構成で動作することができる。本発明と共に使用するのに適した周知のコンピューティングシステム、コンピューティング環境、及び/又はコンピューティング構成の例には、パーソナルコンピューター、サーバーコンピューター、ハンドヘルドデバイス又はラップトップデバイス、マルチプロセッサシステム又はマルチコアシステム、グラフィックス処理ユニット(GPU:Graphics Processing Unit)、特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)、フィールドプログラマブルゲートアレイ(FPGA:Field Programmable Gate Array)、マイクロコントローラーベースシステム、セットトップボックス、プログラマブル民生用電子機器、ネットワークPC、ミニコンピューター、メインフレームコンピューター、上記システム又はデバイスの任意のものを含む分散コンピューティング環境等が含まれるが、これらに限定されるものではない。
この自動変換方法を、2,500個のよく使用される語から成る中国政府の教育省のリストの2,484個について試験した。この文字のセットは、その文字形状の変化が中国語文字セット全体を代表することから選択されたものである。
Claims (13)
- アウトライン文字をスタイル化ストローク文字に変換する、コンピュータによって実行される方法であって、前記方法は、
前記コンピュータの有する手段が、前記アウトライン文字の領域を識別するステップであって、各領域が閉じて交わっていない、識別するステップと、
前記コンピュータの有する手段が、各領域について、ストローク本体及び末端の候補ロケーションを求めるステップと、
前記コンピュータの有する手段が、前記スタイル化ストローク文字の前記ストローク本体を初期化するステップと、
前記コンピュータの有する手段が、前記ストローク本体を階層的ツリー構造に編成するステップと、
前記コンピュータの有する手段が、前記階層的ツリー構造の順序で前記ストローク本体を反復的に修正するステップであって、修正されたストローク本体を作成する、修正するステップと、
前記コンピュータの有する手段が、調整されたストローク本体が前記アウトライン文字と一致するように前記修正されたストローク本体の端部位置を調整するステップと、
前記コンピュータの有する手段が、前記調整されたストローク本体の前記末端を選択するステップと、
を含む方法。 - 各領域は距離場で表され、前記求めるステップは、前記領域を規定する輪郭の高密度サンプリングされた線分近似のドロネー三角形分割を使用する、請求項1に記載の方法。
- 前記ストローク本体は均一幅を有し、前記ストローク本体の中心線は、対応する均一幅ストローク文字の経路を使用し、コーナーを有する前記経路は区画されて、複数のストローク本体が形成される、請求項2に記載の方法。
- 前記ストローク本体は、各領域について独立に修正及び調整される、請求項1に記載の方法。
- 前記コンピュータの有する手段が、各ストローク本体の前記中心線を前記アウトライン文字の対応する暗に含まれたストロークの中心線に位置合わせするステップ、
をさらに含む、請求項3に記載の方法。 - 前記位置合わせするステップは、前記領域の前記距離場が各ストローク本体の前記中心線を挟んでどのように変化するのかを反映するエネルギーを使用して定量化される、請求項5に記載の方法。
- 各ストローク本体の前記中心線は、前記中心線に沿って力を印加して前記エネルギーを削減し、各ストローク本体の前記中心線を前記アウトライン文字の前記対応する暗に含まれたストロークの前記中心線に接近させることにより反復的に修正される、請求項6に記載の方法。
- 前記エネルギーは、各ストローク本体の前記中心線に沿った等間隔サンプル点における前記エネルギーの平均である、請求項7に記載の方法。
- 前記エネルギーは、エネルギーの変化が所定のしきい値よりも小さくなるまで削減される、請求項7に記載の方法。
- 前記位置合わせするステップは、アフィン変換を使用する、請求項5に記載の方法。
- 各末端は、前記末端の開口部が特定のストローク本体の前記中心線に垂直になり、前記特定のストローク本体のエッジに位置合わせされるように、平行移動、回転、及び拡大縮小される、請求項1に記載の方法。
- 前記コンピュータの有する手段が、前記アウトライン文字の距離場と前記スタイル化ストローク文字の距離場との間の差を測定するステップであって、変換誤差を識別する、差を測定するステップ、
をさらに含む、請求項1に記載の方法。 - 前記調整するステップは、
前記コンピュータの有する手段が、前記修正されたストローク本体を接続して延長するステップであって、前記アウトライン文字と一致させる、前記修正されたストローク本体を接続して延長するステップ、
をさらに含む、請求項1に記載の方法。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/359,819 US8306328B2 (en) | 2009-01-26 | 2009-01-26 | Method for converting outline characters to stylized stroke characters |
| US12/359,819 | 2009-01-26 | ||
| PCT/JP2010/050855 WO2010084974A2 (en) | 2009-01-26 | 2010-01-15 | Method for converting outline characters to stylized stroke characters |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2012507062A JP2012507062A (ja) | 2012-03-22 |
| JP5289566B2 true JP5289566B2 (ja) | 2013-09-11 |
Family
ID=42354211
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011518104A Expired - Fee Related JP5289566B2 (ja) | 2009-01-26 | 2010-01-15 | アウトライン文字をスタイル化ストローク文字に変換する方法 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US8306328B2 (ja) |
| EP (1) | EP2382557B1 (ja) |
| JP (1) | JP5289566B2 (ja) |
| KR (1) | KR101285984B1 (ja) |
| CN (1) | CN102292721B (ja) |
| WO (1) | WO2010084974A2 (ja) |
Families Citing this family (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8854375B2 (en) * | 2010-10-19 | 2014-10-07 | Dynacomware Taiwan Inc. | Method and system for generating gray dot-matrix font from binary dot-matrix font |
| US20130093668A1 (en) * | 2011-10-12 | 2013-04-18 | Samsung Electronics Co., Ltd. | Methods and apparatus for transmitting/receiving calligraphed writing message |
| CN102637078B (zh) * | 2012-02-27 | 2015-09-09 | 厦门大学 | 一种结构优化的汉字字形生成方法 |
| US20150113372A1 (en) * | 2013-10-18 | 2015-04-23 | Apple Inc. | Text and shape morphing in a presentation application |
| KR102443697B1 (ko) | 2015-09-11 | 2022-09-15 | 삼성전자주식회사 | 경로 스트로크를 수행하는 방법 및 장치 |
| CN106570538B (zh) * | 2015-10-10 | 2019-08-30 | 北大方正集团有限公司 | 字符图片处理方法和装置 |
| CN108305209B (zh) * | 2017-01-12 | 2021-06-04 | 富士通株式会社 | 字符变形方法和字符变形设备 |
| US10438098B2 (en) * | 2017-05-19 | 2019-10-08 | Hand Held Products, Inc. | High-speed OCR decode using depleted centerlines |
| US10510186B2 (en) | 2017-12-22 | 2019-12-17 | Adobe Inc. | Digital media environment for intuitive modifications of digital graphics |
| US10388045B2 (en) | 2018-01-04 | 2019-08-20 | Adobe Inc. | Generating a triangle mesh for an image represented by curves |
| CN110147528B (zh) * | 2018-02-13 | 2020-12-29 | 北大方正集团有限公司 | 一种字形笔画的控制方法、控制系统、计算机设备和计算机可读存储介质 |
| CN109241750B (zh) * | 2018-07-20 | 2023-04-07 | 海南大学 | 个性化英文字母展示风格变换方法 |
| US10832446B2 (en) * | 2019-01-07 | 2020-11-10 | Adobe Inc. | Bone handle generation |
| US10943375B2 (en) | 2019-04-17 | 2021-03-09 | Adobe Inc. | Multi-state vector graphics |
| US12417567B2 (en) | 2021-01-28 | 2025-09-16 | Beijing Zitiao Network Technology Co., Ltd. | Method for generating signed distance field image, method for generating text effect image, device and medium |
| CN114820836B (zh) * | 2021-01-28 | 2025-03-18 | 北京字跳网络技术有限公司 | 有向距离场图像、文字效果图像生成方法、设备及介质 |
| US11631207B2 (en) * | 2021-09-09 | 2023-04-18 | Adobe Inc. | Vector object stylization from raster objects |
| US11763064B2 (en) * | 2021-10-28 | 2023-09-19 | Adobe Inc. | Glyph accessibility and swash control system |
| EP4383122A1 (en) * | 2022-12-08 | 2024-06-12 | CHU, John | Font library generation method and apparatus, electronic device and storage medium |
| CN116597452B (zh) * | 2023-05-05 | 2026-04-07 | 浙江大学 | 基于ct-gsa的手写汉字书写路径生成方法及装置 |
| EP4625329A1 (en) * | 2024-03-24 | 2025-10-01 | Esko Software BV | Method and systems for converting fill to stroke in a graphics file |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2651009B2 (ja) * | 1989-04-06 | 1997-09-10 | キヤノン株式会社 | 情報認識装置 |
| JP3008555B2 (ja) * | 1991-05-16 | 2000-02-14 | カシオ計算機株式会社 | ベクトルフォント出力装置 |
| JPH0511740A (ja) * | 1991-07-04 | 1993-01-22 | Photo Composing Mach Mfg Co Ltd | 文字発生装置 |
| JP2876942B2 (ja) * | 1993-07-28 | 1999-03-31 | ブラザー工業株式会社 | データ変換装置 |
| JPH0764533A (ja) * | 1993-08-31 | 1995-03-10 | Fujitsu Ltd | 文字フォント生成処理システム |
| US6173075B1 (en) * | 1995-08-30 | 2001-01-09 | Usanimation, Inc. | Drawing pixmap to vector conversion |
| JPH09134156A (ja) * | 1995-11-09 | 1997-05-20 | Fujitsu Ltd | アウトラインフォントのストローク化及びパーツ化方法 |
| CN1154520A (zh) * | 1995-11-09 | 1997-07-16 | 富士通株式会社 | 轮廓字型笔划化及区段化的方法 |
| CN1159666C (zh) * | 2002-03-29 | 2004-07-28 | 上海汉峰信息科技有限公司 | 基于笔划中心线技术的曲线字形的还原显示方法 |
| WO2004006166A2 (en) * | 2002-07-03 | 2004-01-15 | 2012244 Ontario Inc. | Scalable stroke font system and method |
| US7251365B2 (en) * | 2002-07-03 | 2007-07-31 | Vadim Fux | Scalable stroke font system and method |
| US7227993B2 (en) * | 2003-01-27 | 2007-06-05 | Microsoft Corporation | Learning-based system and process for synthesizing cursive handwriting |
| CN100354860C (zh) * | 2004-09-17 | 2007-12-12 | 华南理工大学 | 一种含书写时序信息的动态汉字字库的处理方法 |
-
2009
- 2009-01-26 US US12/359,819 patent/US8306328B2/en not_active Expired - Fee Related
-
2010
- 2010-01-15 JP JP2011518104A patent/JP5289566B2/ja not_active Expired - Fee Related
- 2010-01-15 CN CN201080005374.2A patent/CN102292721B/zh not_active Expired - Fee Related
- 2010-01-15 WO PCT/JP2010/050855 patent/WO2010084974A2/en not_active Ceased
- 2010-01-15 KR KR1020117016121A patent/KR101285984B1/ko not_active Expired - Fee Related
- 2010-01-15 EP EP10717880.8A patent/EP2382557B1/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP2382557A2 (en) | 2011-11-02 |
| JP2012507062A (ja) | 2012-03-22 |
| CN102292721B (zh) | 2014-03-12 |
| EP2382557B1 (en) | 2019-05-01 |
| US8306328B2 (en) | 2012-11-06 |
| KR20110105797A (ko) | 2011-09-27 |
| KR101285984B1 (ko) | 2013-07-23 |
| WO2010084974A2 (en) | 2010-07-29 |
| WO2010084974A3 (en) | 2010-11-18 |
| CN102292721A (zh) | 2011-12-21 |
| US20100189362A1 (en) | 2010-07-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5289566B2 (ja) | アウトライン文字をスタイル化ストローク文字に変換する方法 | |
| Piegl et al. | Parametrization for surface fitting in reverse engineering | |
| US11704802B2 (en) | Multi-dimensional model merge for style transfer | |
| US20130127847A1 (en) | System and Method for Interactive Image-based Modeling of Curved Surfaces Using Single-view and Multi-view Feature Curves | |
| Rabinovich et al. | Modeling curved folding with freeform deformations | |
| Zhao et al. | Inverse diffusion curves using shape optimization | |
| JP2017073120A (ja) | グラフィックス処理システム | |
| Avril et al. | Animation setup transfer for 3D characters | |
| US9001126B2 (en) | Displaying text on path | |
| Messner | A fast, efficient direct slicing method for slender member structures | |
| KR20220034216A (ko) | 집적 회로 칩들의 랜덤 영역들에 걸친 마스크 합성 일관성 시행 | |
| Williamson et al. | Neural geometry processing via spherical neural surfaces | |
| US11392806B2 (en) | Differentiable rasterizer for vector font generation and editing | |
| CN117315078A (zh) | 一种基于离散几何映射的等几何分析参数化迁移方法 | |
| Xu et al. | Hexahedral meshing with varying element sizes | |
| JP2006053929A (ja) | 平面形状モーフィングのための知覚に基づくアプローチ | |
| US12417570B2 (en) | Vectorizing by piecewise deconstruction of object strokes | |
| JP6169048B2 (ja) | 入力パスを変換する方法、入力パスのセグメントを内部又は外部としてラベル付けする方法、入力パスをレンダリングする方法、及び、入力パスの外形を描く方法 | |
| Kumar et al. | Exploring the synergy of python programming in single point incremental forming | |
| He et al. | Topology-and perception-aware image vectorization | |
| US7843467B2 (en) | Shape deformation | |
| CN108171766B (zh) | 一种具有笔画轮廓纠正功能的图像生成方法 | |
| CN115330974A (zh) | 一种三维字体实时建模渲染方法、系统、设备和介质 | |
| Li et al. | Multi-resolution representation of digital terrain models with terrain features preservation | |
| CN119868931B (zh) | 虚拟资产的渲染方法、装置、以及电子设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130219 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130405 |
|
| 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: 20130507 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130604 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5289566 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |