(57)【要約】【課題】手書き楽譜を読み取って得られた楽譜画像データから楽譜記号を高い認識率で認識できる楽譜認識装置およびプログラムを提供すること。【解決手段】スキャナ12で読み取った手書き楽譜の画像データをRAM3またはHDD4に保存する。CPU1は、手書き楽譜の記号を認識する手書き楽譜認識処理手段として機能し、これは、認識用辞書を用いてマッチング度が最高によい記号を認識とするとともにマッチング度が次によい１つあるいは複数の記号を候補記号として認識する認識機能と、楽譜表記スタイル情報を元に、マッチング度が最高によい記号の妥当性を判定し、妥当でないと判定した場合にマッチング度が最高によい記号を候補記号に変更しつつその妥当性を判定し、妥当と判定された候補記号にマッチング度が最高によい記号を修正する認識結果修正機能を有する。【選択図】図１
2008123182.tif 000002
【特許請求の範囲】
【請求項１】
楽譜画像データから記号を認識し、認識された記号を元に楽譜データを生成する楽譜認識装置において、
手書き楽譜の記号を認識する手書き楽譜認識処理手段を備え、
前記手書き楽譜認識処理手段は、認識用辞書を用いたマッチング処理を実行してマッチング度が最高によい記号を認識とするとともにマッチング度が次によい１つあるいは複数の記号を候補記号として認識する認識機能と、楽譜表記スタイル情報を元に、マッチング度が最高によい記号の妥当性を判定し、妥当でないと判定した場合にマッチング度が最高によい記号を候補記号に変更しつつその妥当性を判定し、妥当と判定された候補記号にマッチング度が最高によい記号を修正する認識結果修正機能を有することを特徴とする楽譜認識装置。
【請求項２】
前記認識結果修正機能は、認識された記号から算出される小節演奏長さと楽譜における楽譜表記スタイル情報としての拍子情報から算出される小節実長さを比較し、小節演奏長さが小節実長さより短い場合、マッチング度が最高によい記号が妥当でないと判定することを特徴とする請求項１に記載の楽譜認識装置。
【請求項３】
前記認識結果修正機能は、小節演奏長さが小節実長さと同じ場合、当該小節のリズムパターンをリズムパターン辞書として保存し、小節演奏長さが小節実長さと異なる場合、当該小節のリズムパターンをリズムパターン辞書と比較し、最も近いリズムパターンになるように記号を修正することを特徴とする請求項２に記載の楽譜認識装置。
【請求項４】
前記手書き楽譜認識処理手段は、さらに、認識元の記号が前記認識結果修正機能による修正後の記号として認識されるようにする辞書学習機能を有することを特徴とする請求項１ないし３のいずれかに記載の楽譜認識装置。
【請求項５】
前記辞書学習機能は、認識元の記号の矩形形状、認識元の記号のドット存在確率、認識元の記号と修正後の記号とのマッチング度および画像部品情報の少なくとも１つに基づいて有効化されることを特徴とする請求項４に記載の楽譜認識装置。
【請求項６】
前記辞書学習機能において、１つの記号に対して辞書学習する数に制限を設けたことを特徴とする請求項４に記載の楽譜認識装置。
【請求項７】
コンピュータに、楽譜画像データから記号を認識し、認識された記号を元に楽譜データを生成する機能を実現させるためのプログラムにおいて、
手書き楽譜の記号を認識する手書き楽譜認識処理機能をコンピュータに実現させ、
前記手書き楽譜認識処理機能は、認識用辞書を用いたマッチング処理を実行してマッチング度が最高によい記号を認識とするとともにマッチング度が次によい１つあるいは複数の記号を候補記号として認識する第１の手順と、楽譜表記スタイル情報を元に、マッチング度が最高によい記号の妥当性を判定し、妥当でないと判定した場合にマッチング度が最高によい記号を候補記号に変更しつつその妥当性を判定し、妥当と判定された候補記号にマッチング度が最高によい記号を修正する第２の手順を有することを特徴とするプログラム。
【請求項８】
前記第２の手順では、認識された記号から算出される小節演奏長さと楽譜における楽譜表記スタイル情報としての拍子情報から算出される小節実長さを比較し、小節演奏長さが小節実長さより短い場合、マッチング度が最高によい記号が妥当でないと判定することを特徴とする請求項７に記載のプログラム。
【請求項９】
前記第２の手順では、小節演奏長さが小節実長さと同じ場合、当該小節のリズムパターンをリズムパターン辞書として保存し、小節演奏長さが小節実長さと異なる場合、当該小節のリズムパターンをリズムパターン辞書と比較し、最も近いリズムパターンになるように記号を修正することを特徴とする請求項８に記載のプログラム。
【請求項１０】
前記手書き楽譜認識処理機能は、さらに、認識元の記号が前記第２の手順による修正後の記号として認識されるように辞書学習する第３の手順を有することを特徴とする請求項７ないし９のいずれかに記載のプログラム。
【請求項１１】
前記第３の手順は、認識元の記号の矩形形状、認識元の記号のドット存在確率、認識元の記号と修正後の記号とのマッチング度および画像部品情報の少なくとも１つに基づいて有効化されることを特徴とする請求項１０に記載のプログラム。
【請求項１２】
前記第３の手順において、１つの記号に対して辞書学習する数に制限を設けたことを特徴とする請求項１０に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽譜画像データから楽譜記号を認識し、認識された楽譜記号を元に楽譜データを生成する楽譜認識装置およびプログラムに関し、特に、手書き楽譜を読み取って得られた楽譜画像データから楽譜記号を高い認識率で認識できる楽譜認識装置およびプログラムに関する。
【背景技術】
【０００２】
楽譜には、印刷や浄書で作成された楽譜や各種ノーテーションソフトウエアで印刷と同等に作成された楽譜(印刷楽譜)や、通常の鉛筆やペン、あるいはカリグラフィペンなどの互いに直角方向で太さが異なる線を表記できるペンで手書きされた楽譜(手書き楽譜)が存在する。
【０００３】
通常の鉛筆やペンは方向に拘わらず同じ太さであるので、それをそのまま使用した場合には、図９のように、方向によれず線太さが同じとなるが、部分的になぞって太線化することにより、印刷楽譜と同じように、連結線太さや音符の符頭や符尾などの部分を太い表記にすることができる。カリグラフィペンは、互いに直角方向で太さが異なる線を表記できるので、図１０に示すように、なぞることなく印刷楽譜と同じような縦方向と横方向で線太さが異なる記号を表記できる。ノーテーションソフトウエアにも縦方向と横方向で線太さが異なる記号を表記できる手書きフォントを持つものもあり、これによっても縦方向と横方向で線太さが異なる楽譜を表記できる、縦横方向で線太さが異なる手書き楽譜は、ジャズの楽譜によく見受けられる。
【０００４】
手書き楽譜は、あくまで手書きであるので、表記者間での表記ぶれが存在し、また、同一表記者による楽譜内でも表記ぶれが存在する。特にカリグラフィペンで縦方向と横方向で線太さが異なるように表記された手書き楽譜は、ある程度の表記スタイルが存在するが、各楽譜記号の表記方式は表記者によって様々であり、１つの楽譜記号に対する表記ぶれは、通常の手書き楽譜(縦方向と横方向で線太さが同じ手書き楽譜)に比べても大きい。
【０００５】
従来、楽譜を読み取って得られた楽譜画像データから楽譜記号を認識し、認識された楽譜記号を元に演奏データや楽譜表示のための楽譜データを生成する楽譜認識装置が存在する。
【０００６】
特許文献１には、楽譜画像データから五線や段落を検出し、これを元に処理矩形を決定し、該処理矩形内で各種楽譜記号を認識する楽譜認識装置が記載されている。
【０００７】
特許文献２には、楽譜画像データのうちの細線画像部分から細線記号を検出し、それ以外の画像部分から太記号を検出し、それらの検出結果を用いて音符を認識する楽譜認識装置が記載されている。
【０００８】
特許文献３には、楽譜記号として認識した記号と認識できなかった記号を異なる態様で表示する楽譜認識装置が記載されている。
【０００９】
特許文献４には、手書きにより入力された図形情報を認識して楽譜情報と対応付け、この対応付けに基づいて図形情報を楽譜情報に変換する楽譜情報入力装置が記載されている。
【特許文献１】特開平９−９７０５８号公報(特許第３６１３３５６号)
【特許文献２】特開平９−９７０６０号公報(特許第３４４５０３９号)
【特許文献３】特開平１０−３３４１７９号公報
【特許文献４】特開平６−２７４１５９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述のように、楽譜には印刷楽譜と手書き楽譜が存在するので、楽譜認識装置では印刷楽譜のみならず手書き楽譜における楽譜記号を認識できることが要求される。こののために、楽譜での表記ぶれを全てカバーして記号を認識できるように認識手段を構成することが考えられる。しかしながら、このようにするには、辞書マッチングの閾値や記号を構成する記号部品や記号間連結の閾値を緩めたり、印刷楽譜には存在せず、手書き楽譜のみに存在する表記にも対応できるように認識手段を構成する必要があり、このようにした場合、印刷楽譜の認識での認識率が低下してしまうという課題が生じる。
【００１１】
印刷楽譜では記号誤認識をできるだけ少なくすることが要求される一方、手書き楽譜では様々な様式(筆跡)の記号をできるだけ幅広くかつ適切に認識できることが要求される。
【００１２】
特許文献１ないし３の楽譜認識装置では手書き楽譜を読み取って得られた楽譜画像データから適切に記号を認識することは考慮されていない。また、特許文献４の楽譜情報入力装置は、手書きにより入力された図形情報を楽譜情報に変換するが、手書き楽譜の記号を適切に認識するものではない。
【００１３】
本発明の目的は、手書き楽譜を読み取って得られた楽譜画像データから楽譜記号を高い認識率で認識できる楽譜認識装置およびプログラムを提供することにある。
【課題を解決するための手段】
【００１４】
上記課題を解決するため、本発明は、楽譜画像データから記号を認識し、認識された記号を元に楽譜データを生成する楽譜認識装置において、手書き楽譜の記号を認識する手書き楽譜認識処理手段を備え、前記手書き楽譜認識処理手段は、認識用辞書を用いたマッチング処理を実行してマッチング度が最高によい記号を認識とするとともにマッチング度が次によい１つあるいは複数の記号を候補記号として認識する認識機能と、楽譜表記スタイル情報を元に、マッチング度が最高によい記号の妥当性を判定し、妥当でないと判定した場合にマッチング度が最高によい記号を候補記号に変更しつつその妥当性を判定し、妥当と判定された候補記号にマッチング度が最高によい記号を修正する認識結果修正機能を有する点に第１の特徴がある。
【００１５】
また、本発明は、前記認識結果修正機能が、認識された記号から算出される小節演奏長さと楽譜における楽譜表記スタイル情報としての拍子情報から算出される小節実長さを比較し、小節演奏長さが小節実長さより短い場合、マッチング度が最高によい記号が妥当でないと判定する点に第２の特徴がある。
【００１６】
また、本発明は、前記認識結果修正機能が、小節演奏長さが小節実長さと同じ場合、当該小節のリズムパターンをリズムパターン辞書として保存し、小節演奏長さが小節実長さと異なる場合、当該小節のリズムパターンをリズムパターン辞書と比較し、最も近いリズムパターンになるように記号を修正する点に第３の特徴がある。
【００１７】
また、本発明は、前記手書き楽譜認識処理手段が、さらに、認識元の記号が前記認識結果修正機能による修正後の記号として認識されるようにする辞書学習機能を有する点に第４の特徴がある。
【００１８】
また、本発明は、前記辞書学習機能が、認識元の記号の矩形形状、認識元の記号のドット存在確率、認識元の記号と修正後の記号とのマッチング度および画像部品情報の少なくとも１つに基づいて有効化される点に第５の特徴がある。
【００１９】
さらに、本発明は、前記辞書学習機能において、１つの記号に対して辞書学習する数に制限を設けた点に第６の特徴がある。
【００２０】
本発明は、ハードウエアとしてだけでなく、コンピュータに各機能を実現させるプログラムとしても実現できる。
【発明の効果】
【００２１】
本発明の第１ないし第６の特徴によれば、認識結果修正機能により手書き楽譜における楽譜記号を妥当な記号に修正して高い認識率で認識できる。
【００２２】
また、第２の特徴によれば、認識されたマッチング度が最高によい記号やマッチング度が次点以降の候補記号の妥当性を良好に判定できる。
【００２３】
また、第３の特徴によれば、リズムパターンに基づいて妥当な記号に修正できる。
【００２４】
また、第４ないし第６の特徴によれば、認識結果修正機能での修正結果を辞書学習に利用することにより、以降の手書き楽譜の認識での認識率を高めることができる。
【００２５】
また、第５の特徴によれば、特定条件で辞書学習が有効化されるので、辞書学習での学習エラーを抑制でき、以降の認識での認識率の悪化を招かないようにすることができる。
【００２６】
さらに、第６の特徴によれば、学習しない方がよい記号や数多く学習した方がよい記号に対処できる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施の形態を図面を参照して詳細に説明する。図１は本発明の楽譜認識装置の一実施例の構成を示すブロック図である。この装置は、パソコン等の一般的な計算機システムにスキャナやＭＩＤＩインターフェース回路を付加したものである。CPU1は、ROM2あるいはRAM3に格納されたプログラムに基づき、楽譜認識装置全体の制御を行う中央処理装置である。また、予め設定された所定の周期でCPU1に割り込みをかけるタイマ回路を内蔵している。RAM3はプログラムエリアの他、画像データバッファ、ワークエリア等として使用される。ハードディスク装置(HDD)4およびフロッピディスク装置(FDD)5は、プログラムおよび画像データ、演奏データ等を格納する。CRT6はCPU1の制御に基づき、CRTインターフェース回路7から出力される映像情報を表示する。キーボード8では、楽譜を印刷楽譜として認識させるか手書き楽譜として認識させるかのモードの設定が可能であり、これから入力された情報は、キーボードインターフェース回路9を経てCPU1に取り込まれる。以下では、楽譜を印刷楽譜として認識させるモードを印刷楽譜認識モードと称し、手書き楽譜として認識させるモードを手書き楽譜認識モードと称する。プリンタ10は、CPU1の制御に基づき、プリンタインターフェース回路11から出力される印字情報を印字する。
【００２８】
スキャナ12は、手書き楽譜あるいは印刷楽譜を光学的に走査して、２値あるいはグレイスケールの画像データに変換するものである。スキャナ12としては、フラットベッド型、ハンディ型、フィーダー型等任意のタイプのものを使用できる。スキャナ12から得られた楽譜画像データは、スキャナインターフェース回路13を介して、RAM3あるいはHDD4に取り込まれる。MIDIインターフェース回路14は、音源モジュール等の外部のMIDI機器との間でMIDIデータの送受信を行う回路である。バス15は楽譜認識装置内の各回路を接続している。なお、この他にマウス等のポインティングデバイス、RS232C等のシリアルインターフェース回路等を備えていてもよい。
【００２９】
CPU1は、RAM3あるいはHDD4に取り込まれた楽譜画像データから楽譜記号を認識し、認識された楽譜記号を元に楽譜データを生成する楽譜認識手段としても機能する。この楽譜認識手段は、段落内パート楽譜認識機能を有する。この段落内パート楽譜認識機能では印刷楽譜認識モードあるいは手書き楽譜認識モードに設定しての認識が可能である。このように、本発明は、ソフトウエア(プログラム)として実現可能であるが、ハードウエアとしても実現可能である。
【００３０】
図２は、CPU1のメイン処理を示すフローチャートである。楽譜認識に際し、スキャナ12によって楽譜を光学的に走査し、RAM3に楽譜画像データを取り込む(S201)。画像は２値の画像として取り込み、必要に応じて画質平滑化処理などを行って、かすれやドットノイズなどを軽減する。
【００３１】
次に、五線認識(S202)、段落認識を行う(S203)。五線認識では五線走査開始位置検出と五線シフト量検出を行い、段落認識では各画像内の五線同士で左端がほぼ同じ場所にある五線の組を探し、五線同士が黒画素で結ばれているかどうかを検査し段落を認識する。続くS204では、段落の認識結果を表示して段落認識結果が正しいか否かを利用者にチェックさせ、OKか否かを判定し、この判定結果がOKの場合にはそのままS206に進み、OKでない場合には段落認識結果の修正(S205)を行った後、S206に進む。S201〜S205の処理については特許文献１，２に詳細に説明されているので、ここでの説明は省略する。
【００３２】
S206では認識を印刷楽譜モードで行うか手書き楽譜認識モードで行うかを設定する。楽譜認識モードを指示するフラグをnRecogModeとし、nRecogMode「0」、「1」がそれぞれ、印刷楽譜認識モードすなわち楽譜を印刷楽譜として認識するモード、手書き楽譜認識モードすなわち楽譜を手書き楽譜として認識するモードを指示するとすると、モードが印刷楽譜認識モードに設定された場合、nRecogMode←「0」となり、手書き楽譜認識モードに設定された場合、nRecogMode←「1」となる。ユーザはこのモード設定をこれ以前のどの段階でも行うことができる。
【００３３】
次の段落内パート認識処理(S207)では設定モードに従って記号認識用辞書を用いたマッチング処理やベクトルを特徴量とした認識処理、さらには記号部品や記号連結などを行って楽譜記号を認識する。楽譜には、形状が変化しない記号と音符のように連結したり旗が付されたりして形状が変化する記号があり、形状の変化しない記号はそれから特徴量を計算して辞書マッチングして認識するのが一般的であるが、形状の変化する記号はその変化に応じたベクトルと特徴量として抽出してから認識することもある。
【００３４】
記号認識用辞書には印刷楽譜の記号の他に、それが手書き楽譜からのサンプルであることを示すフラグを付して手書き楽譜に特有な記号も追加しておく。そして、印刷楽譜認識モードでのマッチング処理には、手書き楽譜に特有な記号以外の記号を用いる。また、手書き楽譜認識モードでのマッチング処理には、手書き楽譜に特有な記号も用いる。また、様々な筆跡に幅広く対応して認識できるようにマッチング閾値、記号部品や記号連結などの閾値を緩めたりして楽譜記号を認識する。もちろん不要な誤認識が多くなりすぎないように配慮する。
【００３５】
さらに、手書き楽譜認識モードでは、マッチング度が最高によくて認識された記号だけでなく、マッチング度が次によい１つあるいは複数の記号(記号ID)も候補記号として認識する。認識失敗した場合でもマッチング度が比較的良い記号(記号ID)を候補記号として認識してもよい。また、記号とともにマッチング度を認識したり、一定以上にマッチング度がよい記号にその旨のフラグを付したり、マッチング度の基づいて当該記号を認識結果とするかどうかを決めてもよい。
【００３６】
段落内パート認識処理(S207)は、手書き楽譜認識モードでの認識結果修正機能も有し、楽譜表記スタイルに対応する情報や候補記号、さらにはマッチング度などから、推定を取り入れて認識結果を修正し、修正した認識結果を最終的な認識結果とする。
【００３７】
手書き楽譜認識モードでは、認識記号範囲、印刷楽譜の特定記号との形状類似性、認識速度などを考慮して、印刷楽譜の記号の一部を認識に使わないようにしてもよい。また、記号認識用辞書の辞書データを分割し、印刷楽譜認識モードか手書き楽譜認識モードかによって対応する辞書データを選択し、それとのマッチング処理を行う方式、記号認識用辞書のロード方法を印刷楽譜認識モードか手書き楽譜認識モードかによって変え、適切な辞書データのみロードする方式なども採用できる。さらに、手書き楽譜認識モードでは、より柔軟なマッチング方式およびそれに対応した記号認識用辞書に変更することも考えられる。
【００３８】
S208では、段落内パート認識処理の結果に基づき楽譜画像データを合成して表示し、正しいか否かを利用者にチェックさせ、OKか否かを判定する。この判定結果がOKの場合、そのままS210に進み、OKでない場合にはユーザはマウス、キーボード等を用いて手動により認識結果を修正(S209)する。その後、S210に進む。S210では、段落内パート識処理あるいは修正された認識結果を元に演奏データを作成する。この処理では、認識した各種の記号や音符情報に基づき、例えば公知の演奏データ形式であるMIDIファイルデータを生成する。
【００３９】
図３は、段落内パート楽譜認識処理(S207)を示すフローチャートである。nRecogMode「0」に設定されている場合、まず、nImage←「0」、nPart←「0」(S301)として印刷楽譜認識モードでパート楽譜認識処理を実行する(S302)。
【００４０】
ここで、nImage、nPartはそれぞれ、認識処理の対象とする画像(0〜全画像)、画像内パート(0〜全パート)を指示する。図４は、画像内の段落と段落内パートの関係を示す。もちろんパートが単独で存在することもある。
【００４１】
S301,S302では、まず、先頭画像の先頭パートの楽譜が印刷楽譜認識モードで認識される。S302での認識処理については図５を参照して後で具体的に説明するが、特許文献１などに記載されている手法、その他の手法を利用できる。
【００４２】
次に、画像内全パートについての処理が完了したかを判定し(S303)、完了していないと判定された場合、同一画像(nImage「0」)についてnPartを順次インクリメントし(S304)、S302に戻る。この繰り返しにより同一画像内のパートが次々と印刷楽譜認識モードで認識される。また、S303で画像内全パートについての処理が完了したと判定された場合は、全画像についての処理が完了したかを判定し(S305)、完了していないと判定された場合、nImage←nImage+1,nPart←0とし(S306)、S302に戻る。この繰り返しにより続く画像内のパートが次々と印刷楽譜認識モードで認識される。印刷楽譜認識モードでの全画像の認識が完了したと判定された場合、それまでの認識結果を最終的な認識結果として送出する(S307)。
【００４３】
nRecogMode「1」に設定されている場合(手書き楽譜認識モード)の認識も同様であるが、パート楽譜認識処理(S302)では、記号認識用辞書に手書き楽譜に特有な記号も追加して認識し、また、様々な筆跡に幅広く対応して認識できるようにマッチング閾値、記号分品や記号連結などの閾値を緩めたりしてマッチング処理する。４分休符の典型的な手書きスタイルを図５に示す。
【００４４】
また、手書き楽譜認識モードでは、認識されてマッチング度が最高によい記号だけでなく、マッチング度が次によい１つあるいは複数の記号や、認識失敗した場合でもマッチング度が比較的よい記号などを候補記号として認識する。そして、楽譜表記スタイルに対応する情報、候補記号として保存した記号などから、推定を取り入れて認識結果を修正し、修正した認識結果を最終的な認識結果とする。
【００４５】
図６は、パート楽譜認識処理(S302)を示すフローチャートである。まず、S601で処理矩形を決定する。ここでは、S202で求められた五線(大譜表の場合には譜表中の五線)を含む、ある程度広い矩形を採り、これを認識矩形とする。この際の矩形は、求められた五線から、まず、五線のずらし量を考慮してある程度の幅を持った矩形にし、五線側から見て上下方向にある程度の幅の空白が存在した場合には矩形を縮小する。
【００４６】
S602では五線傾きを補正する。この処理の概略を述べると、S202で求めた五線シフト量に基づいて、矩形画像の縦方向の画素列を上下にシフトする。大譜表の場合には五線が複数になるので、一番上の五線のシフト量あるいはシフト量の平均を採用する。その後、その矩形が上下の五線に重なっていた場合にはその部分を消去し、更に、矩形の上下端に接しかつ認識する五線の部分に達していないラベルが存在した場合には上下の五線の構成ラベルとして消去する。この処理を行った後に、矩形の端から黒画素の存在する部分まで、矩形を更に縮小してもよい。ここで、ラベルは、画像中で一塊りと見なせる画素の集合を意味し、図８に示す例では「m」,「f」それぞれがラベルである。
【００４７】
S603〜S608では、各種記号を認識する。認識された記号は以降では記号IDとして処理するのが有利である。楽譜記号には音部記号、拍子記号、音符、定型記号、文字列、スラー、タイ、その他の記号が存在するので、それらをS603〜S608で順に認識する。また、S603〜S608では、認識されてマッチング度が最高によい記号だけでなく、マッチング度が次によい１つあるいは複数の記号や、認識失敗した場合でもマッチング度が比較的よい記号などを候補記号として認識する。各種楽譜記号の認識処理については特許文献１に詳細に説明されているので、ここでの説明は省略する。
【００４８】
次に、記号親子関係処理(S609)を行って親子関係を有する記号間を結びつけた後、認識結果推定処理を行う(S610)。認識結果推定処理については、後で図７を参照して詳細に説明するが、その概要は、認識された記号の妥当性を判定し、楽譜表記スタイルに対応する情報や候補記号から妥当と推定される記号に推定的に修正する処理である。その後、楽譜レイアウト処理(S611)を行い、認識結果を保存する(S612)。
【００４９】
図７は、認識結果推定処理(S610)を示すフローチャートである。認識結果推定処理は、小節長さ妥当性検出(S701)、休符推定(S702)、音符推定(S703)、リズム推定(S704)および小節長さ非関連FAIL記号推定(S705)からなる。
【００５０】
小節長さ妥当性検出(S701)では、休符、音符、リズムなどの小節長さ関連FAIL記号推定を行うために、認識された記号を元に算出される小節長さが妥当であるかを検出する。
【００５１】
例えば、小節内の音符・休符の演奏時間の合計(小節演奏長さ)を算出するツールを用いて、音符、休符の演奏長さ(ゲートタイム)を加算して当該小節内での音符と休符の演奏長さの合計を求め、さらに付点や連符などの情報を用いて全休符や長休符などを適切に処理し、楽譜データの演奏と同等の方式で小節演奏長さを計算する。また、楽譜における拍子情報から小節の実際長(小節実長さ)を求める。そして、小節演奏長さが小節実長さより短い場合、その小節演奏長さは妥当でないとする。
【００５２】
なお、拍子情報は、パート内楽譜認識処理の音部・拍子記号認識(図６のS603)で認識されている。曲の先頭以外の小節に拍子記号が存在した場合には、その拍子記号も該小節に対応させて保存しておく。
【００５３】
休符推定(S702)では、S701で小節演奏長さが妥当でないとされた場合に、楽譜の休符を辞書マッチング失敗していると推定して休符推定を行う。休符として妥当な位置にある、休符に変更するのに妥当な記号を一時的に認識失敗記号(FAIL記号)とし、それを休符とみなし、小節演奏長さを計算する。休符として妥当な位置は、例えば五線の第一線から第五線の間に限定される。計算された小節演奏長さが小節実長さと同じかそれに近い長さになった場合、FAIL記号の休符への変更は妥当であるとして当該FAIL記号を休符に修正する。
【００５４】
休符に変更するのが妥当な記号は、例えば(1)単純に次点以降の候補記号が休符である記号、(2)FAIL記号で次点以降の候補記号が休符である記号、(3)単純に形状が休符に近い記号、(3)FAIL記号で次点以降の候補記号の形状が休符に近い記号、(4)単純にラベル(画像中で一塊りと見なせる画素の集合)の矩形サイズや矩形中の画素の存在確率が休符と同等である記号、などであり、これらの記号のうちから最も認識率が高くなる記号を選択したり、変更する記号の順序を適切に設定したりする。
【００５５】
形状が休符に近い記号としてアクセントなどが存在するが、アクセントは、親の音符が存在するので、これを条件として区別できる。
【００５６】
FAIL記号を休符とみなして小節演奏長さを計算した結果、小節演奏長さが小節実長さと同じになった場合、休符推定が妥当であるとしてFAIL記号を推定した休符に修正し、小節演奏長さが小節実長さより大きくなった場合には休符推定が妥当でないとして推定を無効として推定前の状態に戻す。また、小節演奏長さが依然として小節実長さより小さいた場合、休符推定が妥当でないとして無効としてもよいが、少しでも小節実長さに近づけば有効とすることもできる。休符推定では、FAIL記号の重要度や失敗確率、誤推定した場合の影響などを考慮して判定条件を変更できる。
【００５７】
音符推定(S703)は、音符を記号認識用辞書とのマッチング処理で認識する場合の推定であり、休符推定と同様に、音符関連の記号を推定する。
【００５８】
なお、音符のマッチング処理は、例えば以下のように行うことができる。手書き楽譜では音符形状の変化も大きい。辞書マッチングによる音符認識では、記号部品の形状しきい値、記号部品連結しきい値の変更でこれに対応することも可能であり、認識率向上に効果がある。この場合、マッチングする記号は、連桁や和音のない音符に限定し、符尾向きや加線の数、旗の数により別個の記号ＩＤとして辞書構築および認識を行う。認識された音符記号は、その記号ＩＤから玉の位置や加線数、旗数を算出し、実際の音符に変更する。こうすることにより、楕円、直線などの検出に基づいては音符を認識できない場合でも音符が認識できるようになる。しかし、このような音符記号では、加線数などが誤認識されている可能性もある。そこで、これを修正する処理を追加する。
【００５９】
この修正処理では、横方向の画素ヒストグラムによる加線位置の推定や、音符検出のために求められた横線などを使うことができる。また、他に認識された音符の音高や、五線位置からの推定も加えるが、手書き楽譜の場合は五線の幅と加線の幅は異なることが多く、また、音符同士の高さも異なる場合があるので、これらのよる修正の優先度は低くするのが好ましい。
【００６０】
リズム推定(S704)では、小節演奏長さが小節実長さと同じ場合、当該小節のリズムパターンをリズムパターン辞書として保存し、小節演奏長さが小節実長さと異なる場合には、当該小節のリズムパターンをリズムパターン辞書と比較し、最も近いリズムパターンになるようにFAIL記号を他の記号に修正する。ここでは、本出願人による特願2005-311788号で提案した技術を利用できる。この技術の詳細な説明は省略するが、その概要は、演奏されるときに経過する小節長さを算出し、これが譜表に記載された拍子記号に対応しない長さの小節を誤認小節、そのリズムパターンを誤認リズムパターンとし、辞書データベースの複数のリズムパターンから誤認リズムパターンに類似する類似リズムパターンを検索して誤認リズムパターンを類似リズムパターンに変更するというものである。この技術に加えて、FAIL記号を他の記号に変更した場合に同じになるリズムパターンを選択し、優先的にこれに修正する。
【００６１】
例えば、FAIL記号を次点の候補記号に変更した場合の小節データを作成し、さらに、この小節内データで、付点や連符の親音符検出処理など、演奏データ作成の前処理を行う。次に、前処理された小節データからリズムパターンを検出する。このリズムパターンと同じリズムパターンがリズムパターン辞書内に存在した場合、FAIL記号を次点の候補記号に修正して正式記号とする。
【００６２】
休符、音符、リズム以外の小節長さに関連するFAIL記号、例えば連符数字などの推定も可能である。FAIL記号のうち、マッチング度が次点の候補記号が連符数字である場合、通常記号に変換して連符数字の親音符あるいは休符を検索し、その後、小節演奏長さを算出し、算出された小節演奏長さと小節実長さの比較判定し、その結果に応じて推定を有効あるいは無効とする。休符、音符、リズム以外の小節長さに関連する記号の推定でも、休符の推定時と同様に、推定する記号の重要度や失敗確率、誤推定した場合の影響などを考慮して判定条件を変更できる。
【００６３】
小節長さ非関連FAIL記号推定(S705)では、小節長さに関連しないFAIL記号の推定を行う。通常記号に変更するのが妥当なFAIL記号は、例えば(1)臨時記号の付いていない音符の横に存在する、次点の候補記号が臨時記号であるFAIL記号、(2)五線の下側にある、次点の候補記号がペダル系のFAIL記号、(3)アクセント、テヌート、フェルマータ等が付いていない音符の上下に存在する、次点の候補記号がアクセント、テヌート、フェルマータ等であるFAIL記号、(4)五線の左端の五線内にある、次点の候補記号が音部記号や拍子記号であるFAIL記号、などである。この推定でも、休符の推定時と同様に、推定する記号の重要度や失敗確率、誤推定した場合の影響などを考慮して判定条件を変更できる。
【００６４】
以上実施形態を説明したが、本発明は上記実施形態に限られず、種々の変形が可能である。例えば、推定の結果を辞書学習に利用することにより、以降の手書き楽譜の認識での認識率を高めることができる。休符推定の結果を辞書学習に利用する場合、休符と推定されたFAIL記号(認識元の記号)の特徴量を計算し、この特徴量を休符に対する辞書データに追加する。これによって、それまでではFAIL記号とされた記号やそれに類似の記号を最初から休符として認識できるようになる。音符推定、リズム推定、小節長さ非関連FAIL記号推定の結果を辞書学習に利用することも可能である。
【００６５】
ただし、辞書学習による辞書データの追加は条件を厳しくするのが望ましい。例えば休符の場合、実際に休符でない記号を休符として辞書学習してしまうと、以降の認識での認識率の悪化を招く。この点を考慮して、辞書学習するかどうかの判定は、条件を厳しくして厳密に行うようにする。例えば、この条件としては、(1)認識元ラベルの矩形形状、(2)認識元ラベルの位置、(3)認識元ラベルのドット存在確率、(4)休符としてのマッチング度、(5)小節演奏長さが小節実長さに等しい場合に限る、などが考えられる。
【００６６】
また、記号の種類によっては学習しない方がよいものや、数多く学習した方がよいものがあるので、１つの記号に対して辞書学習する数に制限を設けることも好ましい。また、学習の結果は、次回の楽譜認識でも有効になるようにしてもよいし、予期しない学習エラーの結果が持ち越されないように、一回の楽譜認識ごとに廃棄するようにしてもよい。
【００６７】
また、推定を有効とするかどうか、辞書学習を実行するかどうかの条件に、音符認識時に検出された、楕円、縦細線、横細線、横太線、画像中の穴(ホール)などの画像部品の情報を利用することもできる。例えば、臨時記号では縦細線や穴の情報をこれに有効に利用できる。
【００６８】
さらに、認識結果推定は、表記ぶれが比較的大きい手書き楽譜の認識に特に有効であるが、印刷楽譜認識モードでの認識で認識結果推定を行うようにしてもよい。
【図面の簡単な説明】
【００６９】
【図１】本発明に係る楽譜認識装置の一実施例の構成を示すブロック図である。
【図２】CPUのメイン処理を示すフローチャートである。
【図３】段落内パート認識処理を示すフローチャートである。
【図４】画像内の段落と段落内パートの関係を示す図である。
【図５】４分休符の典型的な手書きスタイルを示す図である。
【図６】パート楽譜認識処理を示すフローチャートである。
【図７】認識結果推定処理を示すフローチャートである。
【図８】楽譜におけるラベルの例を示す図である。
【図９】手書き楽譜の例を示す図である。
【図１０】手書き楽譜の他の例を示す図である。
【符号の説明】
【００７０】
1・・・CPU、2・・・ROM、3・・・RAM、4・・・ハードディスク装置(HDD)、5・・・フロッピディスク装置(FDD)、6・・・CRT、7・・・CRTインターフェース回路、8・・・キーボード、9・・・キーボードインターフェース回路、10・・・プリンタ、11・・・プリンタインターフェース回路、12・・・スキャナ、13・・・スキャナインターフェース回路、14・・・MIDIインターフェース回路、15・・・バス
【図１】
2008123182.tif 000003
【図２】
2008123182.tif 000004
【図３】
2008123182.tif 000005
【図４】
2008123182.tif 000006
【図５】
2008123182.tif 000007
【図６】
2008123182.tif 000008
【図７】
2008123182.tif 000009
【図８】
2008123182.tif 000010
【図９】
2008123182.tif 000011
【図１０】
2008123182.tif 000012