(57)【特許請求の範囲】
【請求項１】
楽譜情報読込手段と、しきい値設定手段と、画像取込手段とを有して実行され、楽譜を読み取り、この読み取った楽譜データをコンピュータ処理により自動的に音楽記号を認識し、演奏及び／又は楽譜表示のためのデータを作成する楽譜認識方法において、
上記楽譜情報読込手段により、楽譜を階調イメージで読み取るステップと、
上記しきい値設定手段により、読み取った楽譜イメージを所定の２値化しきい値により２値化するステップと、
同じくしきい値設定手段により、２値化された楽譜イメージの五線間隔に対する五線線幅の割合を求め、その割合から画像状態を判定し、これにより次の２値化しきい値を算出設定し、このしきい値を順次変化させて、五線間隔に対する五線線幅の割合が目的の割合となる時のしきい値の帯域から最終的なしきい値を求めるステップと、
該しきい値設定手段により、最終的に計算設定されたしきい値で前記読み取った楽譜イメージを２値化するステップと、
上記画像取込手段により、この２値化された楽譜イメージから音楽記号を認識するステップと
を実行することを特徴とする楽譜認識方法。
【請求項２】
楽譜情報読込手段と、しきい値設定手段と、画像取込手段とを有して実行され、楽譜を読み取り、この読み取った楽譜データをコンピュータ処理により自動的に音楽記号を認識し、演奏及び／又は楽譜表示のためのデータを作成する楽譜認識方法において、
上記楽譜情報読込手段により、楽譜を階調イメージで読み取るステップと、
上記しきい値設定手段により、読み取った楽譜イメージを所定の２値化しきい値により２値化するステップと、
同じくしきい値設定手段により、２値化された楽譜イメージを複数ブロックに分割し、分割された楽譜イメージを、ブロック毎に所定の２値化しきい値により２値化し、２値化された楽譜イメージの五線間隔に対する五線線幅の割合をブロック毎に求め、その割合から画像状態を判定し、これにより次の２値化しきい値をブロック毎に算出設定し、そのしきい値を順次変化させて、五線間隔に対する五線線幅の割合が目的の割合となる時のしきい値の帯域からブロック毎に最終的なしきい値を求めるステップと、
該しきい値設定手段により、ブロック毎に最終的に計算設定されたしきい値で前記読み取った楽譜イメージをブロック毎に２値化するステップと、
上記画像取込手段により、このブロック毎に異なる２値化しきい値で２値化された楽譜イメージから音楽記号を認識するステップと
を実行することを特徴とする楽譜認識方法。
【請求項３】
楽譜を読み取り、この読み取った楽譜データをコンピュータ処理により自動的に音楽記号を認識し、演奏及び／又は楽譜表示のためのデータを作成する楽譜認識プログラムを記憶したコンピュータ読み取り可能な記録媒体であって、該プログラムの実行により、楽譜情報読込手段と、しきい値設定手段と、画像取込手段とが該コンピュータ上に実現され、
上記楽譜情報読込手段により、楽譜を階調イメージで読み取るステップと、
上記しきい値設定手段により、読み取った楽譜イメージを所定の２値化しきい値により２値化するステップと、
同じくしきい値設定手段により、２値化された楽譜イメージの五線間隔に対する五線線幅の割合を求め、その割合から画像状態を判定し、これにより次の２値化しきい値を算出設定し、このしきい値を順次変化させて、五線間隔に対する五線線幅の割合が目的の割合となる時のしきい値の帯域から最終的なしきい値を求めるステップと、
該しきい値設定手段により、最終的に計算設定されたしきい値で前記読み取った楽譜イメージを２値化するステップと、
上記画像取込手段により、この２値化された楽譜イメージから音楽記号を認識するステップと
を実行させるための楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項４】
楽譜を読み取り、この読み取った楽譜データをコンピュータ処理により自動的に音楽記号を認識し、演奏及び／又は楽譜表示のためのデータを作成する楽譜認識プログラムを記憶したコンピュータ読み取り可能な記録媒体であって、該プログラムの実行により、楽譜情報読込手段と、しきい値設定手段と、画像取込手段とが該コンピュータ上に実現され、
上記楽譜情報読込手段により、楽譜を階調イメージで読み取るステップと、
上記しきい値設定手段により、読み取った楽譜イメージを所定の２値化しきい値により２値化するステップと、
同じくしきい値設定手段により、２値化された楽譜イメージを複数ブロックに分割し、分割された楽譜イメージを、ブロック毎に所定の２値化しきい値により２値化し、２値化された楽譜イメージの五線間隔に対する五線線幅の割合をブロック毎に求め、その割合から画像状態を判定し、これにより次の２値化しきい値をブロック毎に算出設定し、そのしきい値を順次変化させて、五線間隔に対する五線線幅の割合が目的の割合となる時のしきい値の帯域からブロック毎に最終的なしきい値を求めるステップと、
該しきい値設定手段により、ブロック毎に最終的に計算設定されたしきい値で前記読み取った楽譜イメージをブロック毎に２値化するステップと、
上記画像取込手段により、このブロック毎に異なる２値化しきい値で２値化された楽譜イメージから音楽記号を認識するステップと
を実行させるための楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽譜認識方法及び楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
画像をスキャナ等で入力してこれらに含まれる文字や記号を認識させるには、認識率に重大な影響を及ぼす原稿の傾きの調整等と共に、取り込む画像の解像度を調整することが行われ、更に２値化画像の取り込みの場合は、２値化しきい値の設定を行って、２値画像の判定を行う必要がある。
【０００３】
【発明が解決しようとする課題】
原稿の傾きや取り込み解像度については、最適な状態にすることは比較的容易であるが、２値化しきい値については、認識アルゴリズムに依存する部分なので、認識アルゴリズムが知らされていない場合には、最適な値への設定が難しい。また表示の解像度によっては、２値化の状態を充分に目視でチェックできない場合も多い。
従って手動で設定した２値化のしきい値が適当でないために、認識性能が充分に引き出せないということが多い。
更に認識が行われた後、認識率の低い原因が２値化しきい値であることが判明した場合、もう一度画像の取り込みからやり直すと、結局処理工数が増え、処理に時間が掛かるといった問題を生ずる。
【０００４】
本発明は従来技術の以上のような問題に鑑み創案されたもので、認識率に重大な影響を及ぼす画像２値化のしきい値設定を、認識に最適な値に自動で設定することができる構成を提供せんとするものである。
【０００５】
【課題を解決するための手段】
そのため本願請求項１の構成は、楽譜情報読込手段と、しきい値設定手段と、画像取込手段とを有して実行され、楽譜を読み取り、この読み取った楽譜データをコンピュータ処理により自動的に音楽記号を認識し、演奏及び／又は楽譜表示のためのデータを作成する楽譜認識方法において、上記楽譜情報読込手段により、楽譜を階調イメージで読み取るステップと、上記しきい値設定手段により、読み取った楽譜イメージを所定の２値化しきい値により２値化するステップと、同じくしきい値設定手段により、２値化された楽譜イメージの五線間隔に対する五線線幅の割合を求め、その割合から画像状態を判定し、これにより次の２値化しきい値を算出設定し、このしきい値を順次変化させて、五線間隔に対する五線線幅の割合が目的の割合となる時のしきい値の帯域から最終的なしきい値を求めるステップと、該しきい値設定手段により、最終的に計算設定されたしきい値で前記読み取った楽譜イメージを２値化するステップと、上記画像取込手段により、この２値化された楽譜イメージから音楽記号を認識するステップとを実行することを基本的特徴としている。
請求項３の構成は、上記手順を、記録媒体として提供するものであって、その具体的構成は、楽譜を読み取り、この読み取った楽譜データをコンピュータ処理により自動的に音楽記号を認識し、演奏及び／又は楽譜表示のためのデータを作成する楽譜認識プログラムを記憶したコンピュータ読み取り可能な記録媒体であって、該プログラムの実行により、楽譜情報読込手段と、しきい値設定手段と、画像取込手段とが該コンピュータ上に実現され、上記楽譜情報読込手段により、楽譜を階調イメージで読み取るステップと、上記しきい値設定手段により、読み取った楽譜イメージを所定の２値化しきい値により２値化するステップと、同じくしきい値設定手段により、２値化された楽譜イメージの五線間隔に対する五線線幅の割合を求め、その割合から画像状態を判定し、これにより次の２値化しきい値を算出設定し、このしきい値を順次変化させて、五線間隔に対する五線線幅の割合が目的の割合となる時のしきい値の帯域から最終的なしきい値を求めるステップと、該しきい値設定手段により、最終的に計算設定されたしきい値で前記読み取った楽譜イメージを２値化するステップと、上記画像取込手段により、この２値化された楽譜イメージから音楽記号を認識するステップとを実行させるための楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【０００６】
これらの構成では、２値化しきい値の設定を楽譜情報に基づいて行う際、そのしきい値が適当か否かを判断するために５線の認識プロセスを含んでおり、そのため、操作者の試行錯誤による設定が必要なくなり、自動的に最適なしきい値に設定され、認識がなされる。それによって全体的な認識率の向上も図れることになる。その場合、上記５線認識プロセスにおいて利用される楽譜情報として、図１に示すように、五線間隔Ｈと五線の線幅ｔを求め、この割合が最適になるしきい値を検出すると良い。その理由を以下に説明する。２値化しきい値が替わると２値画像の濃さが変わり、線の太さが変わる。よって、２値化しきい値によって、楽譜画像の五線の線幅が変化する。様々な楽譜を階調画像として取り込み、これを様々なしきい値で２値化し、最も高い認識率が得られるものに対して、五線の線幅を五線間隔によって正規化した値（五線間隔に対する五線の線幅の割合）が略一定の値をとる場合、この値に近づくように２値化しきい値を設定すれば、略妥当な認識率で２値楽譜画像を作成することができる。解像度等によって、最適なしきい値における五線間隔に対する五線の線幅の割合が変化する場合（解像度が低いと、五線間隔に対する五線の線幅の割合が高い方が認識率が高く、逆に解像度が高いと、その反対となるような場合）には、五線間隔に対して、線形関数やテーブル変換などにより、目標値を変えるようにすれば良い。
【０００７】
更に五線の線幅や間隔が段落毎或いはパート毎に違う等の場合には、単に五線の間隔と五線の線幅を求めただけでは、結局適切なしきい値の設定はできないことになる。そこで請求項２の構成は、画像を複数のブロックに分割（例えば段落毎やパート毎、或いは五線毎に、更には横方向に分割）し、各ブロック毎に、楽譜情報を用いて２値化しきい値の設定を行い、楽譜イメージを２値化画像として取り込む構成としている。すなわち、楽譜情報読込手段と、しきい値設定手段と、画像取込手段とを有して実行され、楽譜を読み取り、この読み取った楽譜データをコンピュータ処理により自動的に音楽記号を認識し、演奏及び／又は楽譜表示のためのデータを作成する楽譜認識方法において、上記楽譜情報読込手段により、楽譜を階調イメージで読み取るステップと、上記しきい値設定手段により、読み取った楽譜イメージを所定の２値化しきい値により２値化するステップと、同じくしきい値設定手段により、２値化された楽譜イメージを複数ブロックに分割し、分割された楽譜イメージを、ブロック毎に所定の２値化しきい値により２値化し、２値化された楽譜イメージの五線間隔に対する五線線幅の割合をブロック毎に求め、その割合から画像状態を判定し、これにより次の２値化しきい値をブロック毎に算出設定し、そのしきい値を順次変化させて、五線間隔に対する五線線幅の割合が目的の割合となる時のしきい値の帯域からブロック毎に最終的なしきい値を求めるステップと、該しきい値設定手段により、ブロック毎に最終的に計算設定されたしきい値で前記読み取った楽譜イメージをブロック毎に２値化するステップと、上記画像取込手段により、このブロック毎に異なる２値化しきい値で２値化された楽譜イメージから音楽記号を認識するステップとを実行することを特徴としている。
【０００８】
同様に請求項４の構成は、上記手順を、楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体として提供するものであって、その具体的構成は、楽譜を読み取り、この読み取った楽譜データをコンピュータ処理により自動的に音楽記号を認識し、演奏及び／又は楽譜表示のためのデータを作成する楽譜認識プログラムを記憶したコンピュータ読み取り可能な記録媒体であって、該プログラムの実行により、楽譜情報読込手段と、しきい値設定手段と、画像取込手段とが該コンピュータ上に実現され、上記楽譜情報読込手段により、楽譜を階調イメージで読み取るステップと、上記しきい値設定手段により、読み取った楽譜イメージを所定の２値化しきい値により２値化するステップと、同じくしきい値設定手段により、２値化された楽譜イメージを複数ブロックに分割し、分割された楽譜イメージを、ブロック毎に所定の２値化しきい値により２値化し、２値化された楽譜イメージの五線間隔に対する五線線幅の割合をブロック毎に求め、その割合から画像状態を判定し、これにより次の２値化しきい値をブロック毎に算出設定し、そのしきい値を順次変化させて、五線間隔に対する五線線幅の割合が目的の割合となる時のしきい値の帯域からブロック毎に最終的なしきい値を求めるステップと、該しきい値設定手段により、ブロック毎に最終的に計算設定されたしきい値で前記読み取った楽譜イメージをブロック毎に２値化するステップと、上記画像取込手段により、このブロック毎に異なる２値化しきい値で２値化された楽譜イメージから音楽記号を認識するステップとを実行させるための楽譜認識プログラムを、上記記録媒体に含む構成である。この構成の場合も、前記楽譜情報として、五線間隔と五線の線幅が適していることは言うまでもない。
【０００９】
【発明の実施の形態】
（実施例１）
以下本発明の一実施形態を添付図面に基づき説明する。図２は本発明の請求項４に係る楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体を後述するフレキシブルディスクドライブＦＤＤ５等の外部記憶装置（或いはＣＤ−ＲＯＭドライブ等）で読み込ませて稼動する楽譜認識装置の実施例構成を示すブロック図である。この装置は、パソコンなどの電子計算機の構成に、スキャナやＭＩＤＩインターフェース回路を付加したものである。ＣＰＵ１は、ＲＯＭ２或いはＲＡＭ３に格納されるプログラムに基づき、楽譜認識装置全体の制御を行う中央演算処理装置である。また予め設定された所定の周期でＣＰＵ１に割り込みをかけるタイマ回路を内蔵している。ＲＡＭ３はプログラムエリアの他、画像データバッファ、ワークエリア等として使用される。ハードディスク装置ＨＤＤ４及びフレキシブルディスクドライブＦＤＤ５は、プログラム及び画像データ、演奏データ等を格納する。ＣＲＴ６はＣＰＵ１の制御に基づき、ＣＲＴインターフェース回路７から出力される映像情報を表示し、キーボード８から入力された情報は、キーボードインターフェース回路９を経てＣＰＵ１に取り込まれる。プリンタ１０は、ＣＰＵ１の制御に基づき、プリンタインターフェース回路１１から出力される印字情報を印字する。
【００１０】
スキャナ１２は、例えば（印刷された）楽譜を光学的に走査して、グレースケール或いはカラーの画像を単色階調付データに変換するもの（但し２値画像も取り込める）であり、フラットベッド型、ハンディ型、フィーダ型等任意のタイプのスキャナを使用できる。スキャナ１２によって読み取られた画像情報は、スキャナインターフェース回路１３を介して、ＲＡＭ３或いはＨＤＤ４に取り込まれる。ＭＩＤＩインターフェース回路１４は、音源モジュール等の外部のＭＩＤＩ機器との間でＭＩＤＩデータの送受信を行う回路である。バス１５は、本楽譜認識装置内の各回路を接続し、各種データ、プログラム、アドレス等をやり取りさせている。なお、この他にマウスなどのポインティングデバイスやＲＳ２３２Ｃ等のシリアルインターフェース回路等を備えていても良い。
【００１１】
図３はＣＰＵ１のメイン処理を示すフローチャートである。ステップＳIにおいては、スキャナ１２によって楽譜のイメージ（この中には五線の線幅及び五線間隔も楽譜情報として取り込まれる）をＲＡＭ３に取り込む。画像は単色階調付イメージとして取り込む。もちろんそのような形式でハードディスク等に保存されたイメージファイルを読み込んでも良い。カラー画像の場合には、その画像形式に応じた処理によって、単色階調付画像に変換することができる。スキャナから取り込んだりファイルとして読み込んだ画像が２値画像であった場合には、自動２値化はできないので、そのまま認識するか、自動２値化を行うために階調付画像として取り込みをやり直す。楽譜イメージを取り込んだＲＡＭ３の記憶容量が足りない場合には、画像を部分的にＲＡＭ３に格納した上で、順次処理することもできる。尚、本構成では１画素８ビット２５６階調で取り込んでいるが、このビット数に限定されるわけではない。また階調は、数値の大きいものが白、数値の小さいものが黒として、以下説明される。
【００１２】
ステップＳＩＩにおいて、自動２値化処理（しきい値設定処理）が行われる。この自動２値化処理については、後述する。そしてステップＳＩＩＩにおいて、２値化画像取り込みが行われ、設定された２値化しきい値に基づいて、楽譜イメージを２値化画像として取り込む。
【００１３】
図４は、上記自動２値化処理のメイン処理ステップを示している。まずステップＳ１において、２分法によるしきい値（ｔｈｒｅｓ）の検出を行う。２５６段階全てで五線の線幅と五線間隔を検出し、目標のしきい値を求めても良いが、実行速度に問題が出てきてしまうので、２分法で最適しきい値を求めることにした。この処理については、後述する。
【００１４】
前述のように、２５６階調であれば、２分法のループ８回程度で目的のしきい値が得られる。しかし、本実施形態では、五線間隔及び五線の線幅を整数で求めているため、五線間隔に対する五線の線幅の割合が段階的に変化しており、８回未満で目的のしきい値を検出できる場合もある。この状態で自動２値化のしきい値検出処理を終了しても良いが、目的の割合と同値の帯域が広い場合は、しきい値をその帯域の中点とした方が、より正確なしきい値を得ることができる。そこで、ステップＳ３において、割合が目標値と同じ値になる帯域が存在する場合には、その帯域の上限と下限を求め、その中点をしきい値（ｔｈｒｅｓ）とするようにした。ステップＳ２は、その際、割合が目標値と同じ値になる帯域が存在するか否かを判断するために行われる処理であり、しきい値判定処理の結果（ｒｅｔ）の値がしきい値判定終了コード［Ｔ＿ＯＫ（目的の割合ＤＥＳＴ＿ＰＥＲと等しい値となった場合の値）］になったか否かが判定される。ステップＳ３は、上述のように、帯域の上限と下限を求め、その中点をしきい値（ｔｈｒｅｓ）とする処理である。即ちステップＳ３０において、帯域上限（ｔｈｒｅｓ２）を検出し、ステップＳ３１において、帯域下限（ｔｈｒｅｓ３）を検出して、ステップＳ３２において、この上限（ｔｈｒｅｓ２）と下限（ｔｈｒｅｓ３）の中点を求め、しきい値（ｔｈｒｅｓ）として設定する。この上限及び下限の検出についても、後述するように、２分法によって行うことができる。尚、五線の線幅及び五線間隔を実数で検出する等して、割合が充分連続的に変化するようにすれば、帯域の上限及び下限の検出処理は不要となる。この後、上述したように、ステップＳIIIにおいて、２値化画像取り込みが行われ、設定された２値化しきい値に基づいて、楽譜イメージが２値化画像として取り込まれる。
【００１５】
図５は、上記ステップＳ１における２分法によるしきい値（ｔｈｒｅｓ）の検出手順を示している。ステップＳ１００において、初期設定を行う。即ち最大しきい値（ｔｈｒｅｓＭａｘ）に階調最大値２５５を、また最小しきい値（ｔｈｒｅｓＭｉｎ）に階調最小値０をセットし、更に２分法によるしきい値検出処理ループの繰り返し回数をカウントするカウンタ（ｃｔ）に２５６をセットすると共に、しきい値判定処理結果の最大値（ｒｅｔＭａｘ）及び同結果の最小値（ｒｅｔＭｉｎ）に、五線間隔・五線の線幅が検出できなかったことを示すＴ＿ＮＯＴをセットする。
【００１６】
次にステップＳ１０１において、前記ｔｈｒｅｓＭａｘとｔｈｒｅｓＭｉｎの中間の値をしきい値（ｔｈｒｅｓ）とする。ステップＳ１０２において、このしきい値（ｔｈｒｅｓ）の後述する判定処理を行ってその結果をｒｅｔとする。その判定処理結果とは、後述するように、Ｔ＿ＯＫ（しきい値が目的の割合ＤＥＳＴ＿ＰＥＲと等しい値と判定された場合の出力結果）、Ｔ＿ＴＨＩＮ（しきい値が目的の割合ＤＥＳＴ＿ＰＥＲより小さい値と判定された場合、即ち五線の線幅が細いと判定された場合の出力結果）、Ｔ＿ＴＨＩＣＫ（しきい値が目的の割合ＤＥＳＴ＿ＰＥＲより大きい値と判定された場合、即ち五線の線幅が太いと判定された場合の出力結果）、Ｔ＿ＮＯＴ（五線間隔、五線の線幅が検出できないと判断された場合の出力結果）がある。
【００１７】
ステップＳ１０３において、上記判定処理結果（ｒｅｔ）がＴ＿ＮＯＴであるか否かが判断され、Ｔ＿ＮＯＴでないと判断された場合、即ち五線間隔及び五線の線幅が検出できる場合は、ステップＳ１０４に移行して、上記判定処理結果（ｒｅｔ）がＴ＿ＯＫか否かが判定される。この処理結果（ｒｅｔ）がＴ＿ＯＫならば、ループから抜け出し、２分法によるしきい値の検出処理を終了する（即ち図４のステップＳ２における判定がＹＥＳとなり、ステップＳ３の処理に移る）。他方、該処理結果（ｒｅｔ）がＴ＿ＯＫでないならば、ステップＳ１０５に移行し、該処理結果（ｒｅｔ）がＴ＿ＴＨＩＣＫか否かが判定される。この処理結果がＴ＿ＴＨＩＣＫならば（五線の線幅が太い場合）、ステップＳ１０７において、しきい値（ｔｈｒｅｓ）を最大しきい値（ｔｈｒｅｓＭａｘ）とし、ステップＳ１０１の計算式においてしきい値を再計算する際に、最大しきい値（ｔｈｒｅｓＭａｘ）をより小さい側に変更できるようにする（五線の線幅が細い側寄りになるようにしきい値を設定し直す）。一方前記処理結果がＴ＿ＴＨＩＣＫでないならば（五線の線幅が細い場合）、ステップＳ１０６において、しきい値（ｔｈｒｅｓ）を最小しきい値（ｔｈｒｅｓＭｉｎ）とし、ステップＳ１０１の計算式においてしきい値を再計算する際に、最小しきい値（ｔｈｒｅｓＭｉｎ）をより大きい側に変更できるようにする（五線の線幅が太い側寄りになるようにしきい値を設定し直す）。
【００１８】
ステップＳ１０３において、上記判定処理結果（ｒｅｔ）がＴ＿ＮＯＴであると判断された場合、即ち五線間隔及び五線の線幅が検出できない場合は、しきい値が濃い側或いは薄い側のどちらに振れているかを、ステップＳ１０９以下のしきい値オーバーフローチェックで判定し、これに基づいて２分法の処理を行う。但ししきい値オーバーフローチェックは処理コストの高い処理になるので、両端のしきい値判定結果を、同結果の最小値（ｒｅｔＭｉｎ）及びその最大値（ｒｅｔＭａｘ）として保存しておく。そしてステップＳ１０８で、ｒｅｔＭａｘ並びにｒｅｔＭｉｎがＴ＿ＮＯＴか否かが判定され、両方がＴ＿ＮＯＴの場合、ステップＳ１０９でしきい値のオーバーフローチェックがなされる。そしてステップＳ１１０において、しきい値が濃い側或いは薄い側のどちらに振れているかが判定され、黒側にオーバーフローしている場合は、ステップＳ１１２において、しきい値（ｔｈｒｅｓ）をその最大値（ｔｈｒｅｓＭａｘ）にセットし、しきい値判定結果の最大値（ｒｅｔＭａｘ）がＴ＿ＮＯＴとなる。逆に白側にオーバーフローしている場合は、ステップＳ１１１において、しきい値（ｔｈｒｅｓ）をその最小値（ｔｈｒｅｓＭｉｎ）にセットし、しきい値判定結果の最小値（ｒｅｔＭｉｎ）がＴ＿ＮＯＴとなる。
【００１９】
上記のステップＳ１０８において、ｒｅｔＭａｘ或いはｒｅｔＭｉｎのうちの一方がＴ＿ＮＯＴでないと判定された場合は、ステップＳ１１３以下でＴ＿ＮＯＴでない側に近づくように２分法処理を行うことで、しきい値オーバーフローチェックの呼び出し回数を減らすことができる。該ステップＳ１１３において、ｒｅｔＭａｘとｒｅｔＭｉｎのどちらがＴ＿ＮＯＴでないかが判定され、ｒｅｔＭａｘがＴ＿ＮＯＴでない場合はステップＳ１１４で、しきい値（ｔｈｒｅｓ）をその最小値（ｔｈｒｅｓＭｉｎ）にセットし、しきい値判定結果の最小値（ｒｅｔＭｉｎ）がＴ＿ＮＯＴとなる。ｒｅｔＭｉｎがＴ＿ＮＯＴでない場合はステップＳ１１５で、しきい値（ｔｈｒｅｓ）をその最大値（ｔｈｒｅｓＭａｘ）にセットし、しきい値判定結果の最大値（ｒｅｔＭａｘ）がＴ＿ＮＯＴとなる。
【００２０】
しきい値判定結果（ｒｅｔ）がＴ＿ＯＫの場合以外は、ステップＳ１１７でカウンタ（ｃｔ）の数を半分に減らして、以上の処理をカウンタ（ｃｔ）の数が１になる（ステップＳ１１６）までループで繰り返す。このように、開始帯域をｔｈｒｅｓＭｉｎからｔｈｒｅｓＭａｘとし、２分法により、領域を狭めていき、最後に判定された結果が、２値化しきい値（ｔｈｒｅｓ）となる（参照ステップＳ１）。
【００２１】
以上のようにして２値化しきい値が検出された後、上述のように、ステップＳ２において、しきい値判定がｒｅｔ＝Ｔ＿ＯＫで終了した場合には、ステップＳ３で、Ｔ＿ＯＫの帯域のどこをしきい値とするか決定する必要がある。図６はそのような決定を行う場合の、ステップＳ３０における帯域上限（ｔｈｒｅｓ２）の検出手順を示している。
【００２２】
まずステップＳ３００において、初期設定を行う。即ち上記の最大しきい値（ｔｈｒｅｓＭａｘ）をそのまま本処理における最大しきい値（ｔｈｒｅｓＭａｘ２）とし、また上記処理によって求められたしきい値（ｔｈｒｅｓ）を本処理における最小しきい値（ｔｈｒｅｓＭｉｎ２）としてセットすると共に、２分法によるしきい値検出処理ループの繰り返し回数をカウントするカウンタ（ｃｔ）に上記最大しきい値（ｔｈｒｅｓＭａｘ２）から最小しきい値（ｔｈｒｅｓＭｉｎ２）を引いた値＋１をセットする。
【００２３】
次にステップＳ３０１において、前記ｔｈｒｅｓＭａｘ２とｔｈｒｅｓＭｉｎ２の中間の値をしきい値（ｔｈｒｅｓ２）とする。ステップＳ３０２において、このしきい値（ｔｈｒｅｓ２）の後述する判定処理を行ってその結果をｒｅｔとする。その判定処理結果とは、後述するように、Ｔ＿ＯＫ（しきい値が目的の割合ＤＥＳＴ＿ＰＥＲと等しい値と判定された場合の出力結果）、Ｔ＿ＴＨＩＮ（しきい値が目的の割合ＤＥＳＴ＿ＰＥＲより小さい値と判定された場合、即ち五線の線幅が細いと判定された場合の出力結果）、Ｔ＿ＴＨＩＣＫ（しきい値が目的の割合ＤＥＳＴ＿ＰＥＲより大きい値と判定された場合、即ち五線の線幅が太いと判定された場合の出力結果）、Ｔ＿ＮＯＴ（五線間隔、五線の線幅が検出できないと判断された場合の出力結果）がある。
【００２４】
ステップＳ３０３において、上記判定結果（ｒｅｔ）がＴ＿ＯＫであるか否かが判断され、Ｔ＿ＯＫであると判断された場合、即ち判定結果（ｒｅｔ）が目的の割合（ＤＥＳＴ＿ＰＥＲ）と等しい値になった場合は、ステップＳ３０５で、前記しきい値（ｔｈｒｅｓ２）の値を最小しきい値（ｔｈｒｅｓＭｉｎ２）としてセットする。ステップＳ３０３において、上記判定結果（ｒｅｔ）がＴ＿ＯＫでないと判断された場合は、しきい値（ｔｈｒｅｓ２）の値を最大しきい値（ｔｈｒｅｓＭａｘ２）としてセットする。その後ステップＳ３０７でカウンタ（ｃｔ）の数を半分に減らして、以上の処理をカウンタ（ｃｔ）の数が１になる（ステップＳ３０６）までループで繰り返す。このように、五線の線幅の五線間隔に対する割合が或る帯域を持った場合の帯域上限の検出フローは、ｔｈｒｅｓ＝Ｔ＿ＯＫとなった時点での、ｔｈｒｅｓからｔｈｒｅｓＭａｘまでを２分法で検索し、Ｔ＿ＯＫである領域とそうでない領域の境界を検出する。即ち開始帯域をｔｈｒｅｓＭｉｎ２からｔｈｒｅｓＭａｘ２とし、２分法により、領域を狭めていく。最後に判定された結果が、ｔｈｒｅｓ２となる（参照ステップＳ３０）。
【００２５】
ステップＳ３１の帯域の下限の検出も同様のフローで行い、下限の結果はｔｈｒｅｓ３となる。これについては、ｔｈｒｅｓからｔｈｒｅｓＭｉｎまでを２分法で検索し、Ｔ＿ＯＫである領域とそうでない領域の境界を検出することになり、処理手順は上記帯域の上限の検出と同様になるので、省略する。そして、上述のように、ステップＳ３２において、以上のようにして求められたｔｈｒｅｓ２とｔｈｒｅｓ３の中点をしきい値（ｔｈｒｅｓ）とする。
【００２６】
図７は図５のステップＳ１０２及び図６のステップＳ３０２におけるしきい値判定の処理フローを示している。まずステップＳ１０２０において、五線間隔（ｂｌａｎｋ）及び五線の線幅（ｔｈｉｃｋ）の検出を行う。即ち図８に示すように、楽譜を縦方向に走査し、上記しきい値（ｔｈｒｅｓ、ｔｈｒｅｓ２、ｔｈｒｅｓ３）より値が大きいか小さいかで背景と図を分離し、図９に示すように、背景及び図の夫々のラン長のヒストグラムを作成する。そして背景、図、夫々のヒストグラムの最大値を持つ添字、或いは最大値を持つ添字付近の或る帯域の値の重心位置を、五線間隔（ｂｌａｎｋ）及び五線の線幅（ｔｈｉｃｋ）とする。実際は上記ｂｌａｎｋは、背景のラン長であるので、五線間隔に対する五線の線幅の割合を計算する際には、五線間隔として、（ｂｌａｎｋ＋ｔｈｉｃｋ）を充当する（ｂｌａｎｋの両端にｔｈｉｃｋ／２を足したものとする）。また画像の縦方向の走査は、横座標Ｘの全ての位置において行う必要はない。処理速度の向上のため、図１０に示すように、或る間隔をおいて行えば良い。
【００２７】
この検出時点でｂｌａｎｋ＝０となった場合（ステップＳ１０２１）、五線間隔の検出に失敗している（真っ黒か真っ白の何れかで検出できない）ので、ステップＳ１０２８で判定結果（ｒｅｔ）をＴ＿ＮＯＴとして処理を終了する。五線間隔や五線の線幅の検出失敗は、この他にも、ｔｈｉｃｋ＝０の場合やｔｈｉｃｋ＞ｂｌａｎｋとなった場合や、ｔｈｉｃｋやｂｌａｎｋが或る範囲を超えた場合を追加しても良い。
【００２８】
この判定後ステップＳ１０２２において、五線間隔（ｂｌａｎｋ＋ｔｈｉｃｋ）に対する五線の線幅（ｔｈｉｃｋ）の割合（ｐｅｒ）を求める。もちろんより正確な値を得たり、認識率との対応をより良好にしたりするために、フローとは異なる数式により上記割合（ｐｅｒ）を求めても良い。次にステップＳ１０２３において、この割合（ｐｅｒ）が目的の割合（ＤＥＳＴ＿ＰＥＲ）と等しいか否かが判定され、等しいと判定された場合は、ステップＳ１０２７において、判定結果（ｒｅｔ）を、Ｔ＿ＯＫとし、ステップＳ１０２４において、それより大きいと判定された場合は、ステップＳ１０２５において、判定結果（ｒｅｔ）を、Ｔ＿ＴＨＩＣＫとし、更にそれより小さいと判定された場合は、ステップＳ１０２６において、判定結果（ｒｅｔ）を、Ｔ＿ＴＨＩＮとして判定を終了する。
【００２９】
図５におけるステップＳ１０９のしきい値オーバーフローチェックとは、そのしきい値で２値化した場合、略真っ黒或いは真っ白になる状態を判定することを言う。よってそのチェックは、画素の値がしきい値より大きいものと小さいものをカウントし、この数を判定すれば良い。もちろん画像全ての画素を計測する必要はなく、前記五線間隔や五線の線幅検出時のＸ位置でチェックすれば良い。正確さは要求されないので、高速化のために、更にＸ位置を削減しても良い。オーバーフローチェック時は、黒か白どちらかにオーバーフローしているとして、黒のカウント数がチェック画素数（オーバーフローチェックを行うＸ位置での画素合計）の半分以上になった時点で黒にオーバーフローしたと判定して処理を終了し、黒のカウント数がチェック画素数の半分に満たなかった場合には白にオーバーフローしたと判定しても良い。
【００３０】
（実施例２）
上記実施例１では、画像全体で検出した五線間隔と五線の線幅をしきい値決定の基準値としているが、これは、五線以外の部分のラン長も反映されたものなので、表題や絵、楽譜の折り目の影等の影響を受け、ヒストグラムの山が正しい五線間隔や五線の線幅よりもずれてしまい、五線の部分のみで検出した場合の五線間隔や五線の線幅とは異なってしまう場合がある。よって一旦大まかなしきい値で２値化した画像について五線認識を行い、その後の２分法のしきい値検出処理を、この五線周辺に限定する。
【００３１】
本構成においても、前記実施例と同様にしてＲＡＭ３に格納された単色階調付き画像（１画素８ビット形式で格納）を適当な２値化しきい値で２値化する。五線認識は、２値化しきい値にさほど影響を受けないので、単純に仮のしきい値を階調の中央の値とする。このしきい値で五線間隔と五線の線幅の検出を行い、これが五線認識の許容範囲内であれば、このしきい値で五線検出を行う。即ち、五線部分の画像を縦方向に走査して、しきい値より大きいか否かで線部分とブランクの部分とに分け、夫々のヒストグラムを作成する。これらのヒストグラムを元に、五線間隔と五線の線幅の認識を行う。許容範囲内でない場合は、更に２分法により許容範囲になる値を探しても良いが、五線認識を行うのをやめ、前記実施例と同様に、画像全体で五線間隔と五線の線幅の検出を行い、しきい値を設定する方法に切り替えても良い。
【００３２】
五線認識は、ＲＡＭ３中に、階調画像領域とは別に作成した仮の２値化画像に対して行うようにしても良い。即ち、五線部分の画像を縦方向に走査して、０か１かで線部分とブランクの部分とに分け、夫々のヒストグラムを作成する。これらのヒストグラムを元に、五線間隔と五線の線幅の認識を行う。但し、記憶領域削減のために、別の領域を作らず、仮の２値化画像を階調付き画像の最下位ビットに上書きしても良い（２５６階調程度であれば、最下位ビットの変更はしきい値の検出にあまり影響を与えないため）。
【００３３】
また求められた仮の２値化しきい値に基づいて、階調付き画像から直接五線を認識しても良い。更に五線が１本検出できた時点で、その認識処理を終了しても良い。図１１に示すように、検出した五線を囲む矩形（点線部分）を設定する。左右端は五線の端点とする。加線は五線よりも少し太い線で書かれることが多く、また加線の間幅も五線より広い場合が多いので、前記矩形の上下は、加線を含まない領域としても良い。
【００３４】
上記実施例１と同様な方法で、２値化したしきい値を検出する。但し処理領域を、上記の矩形に限定する。これによってより正確な五線間隔及び五線の線幅が得られ、且つ矩形が小さいため、以降の処理工数は低減される。また五線認識が既に行われているので、この時点で五線間隔は検出されており、２分法処理時には、五線の線幅の検出だけを行うようにすれば、更に高速化できる。
【００３５】
本実施例において、仮の２値化のための２値化しきい値の決定を、モード法や微分ヒストグラム等の通常の画像処理方式であるしきい値選択法を用いても良い。また上記しきい値判定領域は、矩形（長方形）ではなく、五線の開始及び終了位置を結んだ平行四辺形領域でも良いし、図１２に示すような五線認識で検出された五線ずらし量を考慮した短冊型領域でも良い。更に五線の線幅の検出を正確に行うために、２分法によるしきい値検出時、五線間隔及び五線の線幅の検出だけでなく、最初に検出されている五線に沿って、そのしきい値で２値化された画像の図を上下に走査し、五線であるのが確実な部分のラン長の平均値を取る処理を追加することもできる。
【００３６】
（実施例３）
１つの楽譜画像の中で１つの２値化しきい値を決定すれば、殆どの場合それで充分である。しかし、これでは不十分な場合がある。特に顕著な例は、幅が違う五線が存在する場合である。このような時には、同じしきい値で２値化すると、基準とならなかった五線のしきい値が最適値からずれてしまい、認識率が低下する。そのため本実施例では、前記実施例と同様な方法で五線を検出し（全ての五線を検出する）、夫々の五線を囲む矩形を検出する。大かっこの認識も行い、図１３（ｂ）に示すように、パート毎の矩形としても良い。これらの矩形はしきい値決定のための矩形であり、この矩形内で、最初の実施例１と同様な手段により、夫々の２値化しきい値を決定する。
【００３７】
しきい値決定後の２値化処理は、矩形内はそのしきい値で２値化するが、矩形間は、図１３（ａ）に示されるように、
▲１▼  上下の矩形領域のしきい値の中間値で２値化した場合に、２つの領域の中点から図が存在しない箇所を探索し、検出された位置で分離する。
▲２▼  同様に２値化した場合に、図が存在しない領域を求め、最も広い領域にわたっている箇所で分離する。
▲３▼  ２つの矩形領域の中間のしきい値を、様々な方法で補間する。
▲４▼  ２つの矩形領域の真ん中で２つのしきい値の領域を分離する。
等の方法で２値化する。
【００３８】
図１３は、しきい値決定における２値化の例を示している。そのうち同図（ｂ）は、読み取られた楽譜画像であり、点線の矩形がしきい値決定矩形である。また同図（ａ）は、決定されたしきい値の状態を示しており、ｂ及びｆの区間は、各矩形内で決定されたしきい値が用いられ、ａ及びｃの画像の端の区間は、前記ｂの区間と同じしきい値が用いられ、ｅの区間は、前記ｆの区間と同じしきい値が用いられ、更にｄの区間は、２つの領域の各しきい値を線形補間して用いる。
【００３９】
またしきい値を変動させることにより、部分的な印刷のかすれ等に対応することもできる。これは、図１３のように横方向に１つの矩形だけとする（横方向には同じしきい値）のではなく、複数の矩形に分割することによって、実現可能である。
【００４０】
上記しきい値判定領域は、矩形（長方形）ではなく、前述と同様、五線の開始及び終了位置を結んだ平行四辺形領域でも良いし、五線認識で検出された五線ずらし量を考慮した短冊型領域でも良い。
【００４１】
【発明の効果】
以上詳述した本発明の構成によれば、楽譜情報を利用して、認識に最適な２値化画像を得ることができ、認識率を向上せしめることが可能となる。また画像スキャン時に最適なしきい値への設定の手間がなくなり、作業効率が改善されることになる。
【図面の簡単な説明】
【図１】五線の線幅と五線間隔を示す説明図である。
【図２】本発明の請求項４に係る楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体を外部記憶装置で読み込ませて稼動する楽譜認識装置の実施例構成を示すブロック図である。
【図３】ＣＰＵのメイン処理を示すフローチャートである。
【図４】自動２値化処理のメイン処理ステップを示すフローチャートである。
【図５】２分法によるしきい値の検出手順を示すフローチャートである。
【図６】しきい値判定がＴ＿ＯＫで終了した際Ｔ＿ＯＫの帯域のどこをしきい値とするか決定する場合の帯域上限の検出手順を示すフローチャートである。
【図７】しきい値判定の処理フローを示すフローチャートである。
【図８】楽譜を縦方向に走査してしきい値より値が大きいか小さいかで背景と図を分離する状態を示す説明図である。
【図９】五線に線幅及び五線間隔の夫々のラン長のヒストグラムを示すグラフである。
【図１０】画像の縦方向の走査を或る間隔をおいて行う状態を示す説明図である。
【図１１】しきい値判定を行うために設定された五線を囲む矩形の設定状態を示す説明図である。
【図１２】しきい値判定領域として設定された短冊型の例を示す説明図である。
【図１３】しきい値決定における２値化処理の例を示す説明図である。
【符号の説明】
１      ＣＰＵ
２      ＲＯＭ
３      ＲＡＭ
４      ハードディスク装置
５      フレキシブルディスクドライブ
６      ＣＲＴ
７      ＣＲＴインターフェース回路
８      キーボード
９      キーボードインターフェース回路
１０      プリンタ
１１      プリンタインターフェース回路
１２      スキャナ
１３      スキャナインターフェース回路
１４      ＭＩＤＩインターフェース回路
１５      バス
【図１】
0003607065.tif 000002
【図２】
0003607065.tif 000003
【図３】
0003607065.tif 000004
【図４】
0003607065.tif 000005
【図５】
0003607065.tif 000006
【図６】
0003607065.tif 000007
【図７】
0003607065.tif 000008
【図８】
0003607065.tif 000009
【図９】
0003607065.tif 000010
【図１０】
0003607065.tif 000011
【図１１】
0003607065.tif 000012
【図１２】
0003607065.tif 000013
【図１３】
0003607065.tif 000014