JP3607065B2 - 楽譜認識方法及び楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents
楽譜認識方法及び楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体 Download PDFInfo
- Publication number
- JP3607065B2 JP3607065B2 JP36687897A JP36687897A JP3607065B2 JP 3607065 B2 JP3607065 B2 JP 3607065B2 JP 36687897 A JP36687897 A JP 36687897A JP 36687897 A JP36687897 A JP 36687897A JP 3607065 B2 JP3607065 B2 JP 3607065B2
- Authority
- JP
- Japan
- Prior art keywords
- score
- image
- threshold
- threshold value
- staff
- 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
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10G—REPRESENTATION OF MUSIC; RECORDING MUSIC IN NOTATION FORM; ACCESSORIES FOR MUSIC OR MUSICAL INSTRUMENTS NOT OTHERWISE PROVIDED FOR, e.g. SUPPORTS
- G10G3/00—Recording music in notation form, e.g. recording the mechanical operation of a musical instrument
- G10G3/04—Recording music in notation form, e.g. recording the mechanical operation of a musical instrument using electrical means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/28—Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/30—Character recognition based on the type of data
- G06V30/304—Music notations
Description
【発明の属する技術分野】
本発明は、楽譜認識方法及び楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【0002】
【従来の技術】
画像をスキャナ等で入力してこれらに含まれる文字や記号を認識させるには、認識率に重大な影響を及ぼす原稿の傾きの調整等と共に、取り込む画像の解像度を調整することが行われ、更に2値化画像の取り込みの場合は、2値化しきい値の設定を行って、2値画像の判定を行う必要がある。
【0003】
【発明が解決しようとする課題】
原稿の傾きや取り込み解像度については、最適な状態にすることは比較的容易であるが、2値化しきい値については、認識アルゴリズムに依存する部分なので、認識アルゴリズムが知らされていない場合には、最適な値への設定が難しい。また表示の解像度によっては、2値化の状態を充分に目視でチェックできない場合も多い。
従って手動で設定した2値化のしきい値が適当でないために、認識性能が充分に引き出せないということが多い。
更に認識が行われた後、認識率の低い原因が2値化しきい値であることが判明した場合、もう一度画像の取り込みからやり直すと、結局処理工数が増え、処理に時間が掛かるといった問題を生ずる。
【0004】
本発明は従来技術の以上のような問題に鑑み創案されたもので、認識率に重大な影響を及ぼす画像2値化のしきい値設定を、認識に最適な値に自動で設定することができる構成を提供せんとするものである。
【0005】
【課題を解決するための手段】
そのため本願請求項1の構成は、楽譜情報読込手段と、しきい値設定手段と、画像取込手段とを有して実行され、楽譜を読み取り、この読み取った楽譜データをコンピュータ処理により自動的に音楽記号を認識し、演奏及び/又は楽譜表示のためのデータを作成する楽譜認識方法において、上記楽譜情報読込手段により、楽譜を階調イメージで読み取るステップと、上記しきい値設定手段により、読み取った楽譜イメージを所定の2値化しきい値により2値化するステップと、同じくしきい値設定手段により、2値化された楽譜イメージの五線間隔に対する五線線幅の割合を求め、その割合から画像状態を判定し、これにより次の2値化しきい値を算出設定し、このしきい値を順次変化させて、五線間隔に対する五線線幅の割合が目的の割合となる時のしきい値の帯域から最終的なしきい値を求めるステップと、該しきい値設定手段により、最終的に計算設定されたしきい値で前記読み取った楽譜イメージを2値化するステップと、上記画像取込手段により、この2値化された楽譜イメージから音楽記号を認識するステップとを実行することを基本的特徴としている。
請求項3の構成は、上記手順を、記録媒体として提供するものであって、その具体的構成は、楽譜を読み取り、この読み取った楽譜データをコンピュータ処理により自動的に音楽記号を認識し、演奏及び/又は楽譜表示のためのデータを作成する楽譜認識プログラムを記憶したコンピュータ読み取り可能な記録媒体であって、該プログラムの実行により、楽譜情報読込手段と、しきい値設定手段と、画像取込手段とが該コンピュータ上に実現され、上記楽譜情報読込手段により、楽譜を階調イメージで読み取るステップと、上記しきい値設定手段により、読み取った楽譜イメージを所定の2値化しきい値により2値化するステップと、同じくしきい値設定手段により、2値化された楽譜イメージの五線間隔に対する五線線幅の割合を求め、その割合から画像状態を判定し、これにより次の2値化しきい値を算出設定し、このしきい値を順次変化させて、五線間隔に対する五線線幅の割合が目的の割合となる時のしきい値の帯域から最終的なしきい値を求めるステップと、該しきい値設定手段により、最終的に計算設定されたしきい値で前記読み取った楽譜イメージを2値化するステップと、上記画像取込手段により、この2値化された楽譜イメージから音楽記号を認識するステップとを実行させるための楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0006】
これらの構成では、2値化しきい値の設定を楽譜情報に基づいて行う際、そのしきい値が適当か否かを判断するために5線の認識プロセスを含んでおり、そのため、操作者の試行錯誤による設定が必要なくなり、自動的に最適なしきい値に設定され、認識がなされる。それによって全体的な認識率の向上も図れることになる。その場合、上記5線認識プロセスにおいて利用される楽譜情報として、図1に示すように、五線間隔Hと五線の線幅tを求め、この割合が最適になるしきい値を検出すると良い。その理由を以下に説明する。2値化しきい値が替わると2値画像の濃さが変わり、線の太さが変わる。よって、2値化しきい値によって、楽譜画像の五線の線幅が変化する。様々な楽譜を階調画像として取り込み、これを様々なしきい値で2値化し、最も高い認識率が得られるものに対して、五線の線幅を五線間隔によって正規化した値(五線間隔に対する五線の線幅の割合)が略一定の値をとる場合、この値に近づくように2値化しきい値を設定すれば、略妥当な認識率で2値楽譜画像を作成することができる。解像度等によって、最適なしきい値における五線間隔に対する五線の線幅の割合が変化する場合(解像度が低いと、五線間隔に対する五線の線幅の割合が高い方が認識率が高く、逆に解像度が高いと、その反対となるような場合)には、五線間隔に対して、線形関数やテーブル変換などにより、目標値を変えるようにすれば良い。
【0007】
更に五線の線幅や間隔が段落毎或いはパート毎に違う等の場合には、単に五線の間隔と五線の線幅を求めただけでは、結局適切なしきい値の設定はできないことになる。そこで請求項2の構成は、画像を複数のブロックに分割(例えば段落毎やパート毎、或いは五線毎に、更には横方向に分割)し、各ブロック毎に、楽譜情報を用いて2値化しきい値の設定を行い、楽譜イメージを2値化画像として取り込む構成としている。すなわち、楽譜情報読込手段と、しきい値設定手段と、画像取込手段とを有して実行され、楽譜を読み取り、この読み取った楽譜データをコンピュータ処理により自動的に音楽記号を認識し、演奏及び/又は楽譜表示のためのデータを作成する楽譜認識方法において、上記楽譜情報読込手段により、楽譜を階調イメージで読み取るステップと、上記しきい値設定手段により、読み取った楽譜イメージを所定の2値化しきい値により2値化するステップと、同じくしきい値設定手段により、2値化された楽譜イメージを複数ブロックに分割し、分割された楽譜イメージを、ブロック毎に所定の2値化しきい値により2値化し、2値化された楽譜イメージの五線間隔に対する五線線幅の割合をブロック毎に求め、その割合から画像状態を判定し、これにより次の2値化しきい値をブロック毎に算出設定し、そのしきい値を順次変化させて、五線間隔に対する五線線幅の割合が目的の割合となる時のしきい値の帯域からブロック毎に最終的なしきい値を求めるステップと、該しきい値設定手段により、ブロック毎に最終的に計算設定されたしきい値で前記読み取った楽譜イメージをブロック毎に2値化するステップと、上記画像取込手段により、このブロック毎に異なる2値化しきい値で2値化された楽譜イメージから音楽記号を認識するステップとを実行することを特徴としている。
【0008】
同様に請求項4の構成は、上記手順を、楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体として提供するものであって、その具体的構成は、楽譜を読み取り、この読み取った楽譜データをコンピュータ処理により自動的に音楽記号を認識し、演奏及び/又は楽譜表示のためのデータを作成する楽譜認識プログラムを記憶したコンピュータ読み取り可能な記録媒体であって、該プログラムの実行により、楽譜情報読込手段と、しきい値設定手段と、画像取込手段とが該コンピュータ上に実現され、上記楽譜情報読込手段により、楽譜を階調イメージで読み取るステップと、上記しきい値設定手段により、読み取った楽譜イメージを所定の2値化しきい値により2値化するステップと、同じくしきい値設定手段により、2値化された楽譜イメージを複数ブロックに分割し、分割された楽譜イメージを、ブロック毎に所定の2値化しきい値により2値化し、2値化された楽譜イメージの五線間隔に対する五線線幅の割合をブロック毎に求め、その割合から画像状態を判定し、これにより次の2値化しきい値をブロック毎に算出設定し、そのしきい値を順次変化させて、五線間隔に対する五線線幅の割合が目的の割合となる時のしきい値の帯域からブロック毎に最終的なしきい値を求めるステップと、該しきい値設定手段により、ブロック毎に最終的に計算設定されたしきい値で前記読み取った楽譜イメージをブロック毎に2値化するステップと、上記画像取込手段により、このブロック毎に異なる2値化しきい値で2値化された楽譜イメージから音楽記号を認識するステップとを実行させるための楽譜認識プログラムを、上記記録媒体に含む構成である。この構成の場合も、前記楽譜情報として、五線間隔と五線の線幅が適していることは言うまでもない。
【0009】
【発明の実施の形態】
(実施例1)
以下本発明の一実施形態を添付図面に基づき説明する。図2は本発明の請求項4に係る楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体を後述するフレキシブルディスクドライブFDD5等の外部記憶装置(或いはCD−ROMドライブ等)で読み込ませて稼動する楽譜認識装置の実施例構成を示すブロック図である。この装置は、パソコンなどの電子計算機の構成に、スキャナやMIDIインターフェース回路を付加したものである。CPU1は、ROM2或いはRAM3に格納されるプログラムに基づき、楽譜認識装置全体の制御を行う中央演算処理装置である。また予め設定された所定の周期でCPU1に割り込みをかけるタイマ回路を内蔵している。RAM3はプログラムエリアの他、画像データバッファ、ワークエリア等として使用される。ハードディスク装置HDD4及びフレキシブルディスクドライブFDD5は、プログラム及び画像データ、演奏データ等を格納する。CRT6はCPU1の制御に基づき、CRTインターフェース回路7から出力される映像情報を表示し、キーボード8から入力された情報は、キーボードインターフェース回路9を経てCPU1に取り込まれる。プリンタ10は、CPU1の制御に基づき、プリンタインターフェース回路11から出力される印字情報を印字する。
【0010】
スキャナ12は、例えば(印刷された)楽譜を光学的に走査して、グレースケール或いはカラーの画像を単色階調付データに変換するもの(但し2値画像も取り込める)であり、フラットベッド型、ハンディ型、フィーダ型等任意のタイプのスキャナを使用できる。スキャナ12によって読み取られた画像情報は、スキャナインターフェース回路13を介して、RAM3或いはHDD4に取り込まれる。MIDIインターフェース回路14は、音源モジュール等の外部のMIDI機器との間でMIDIデータの送受信を行う回路である。バス15は、本楽譜認識装置内の各回路を接続し、各種データ、プログラム、アドレス等をやり取りさせている。なお、この他にマウスなどのポインティングデバイスやRS232C等のシリアルインターフェース回路等を備えていても良い。
【0011】
図3はCPU1のメイン処理を示すフローチャートである。ステップSIにおいては、スキャナ12によって楽譜のイメージ(この中には五線の線幅及び五線間隔も楽譜情報として取り込まれる)をRAM3に取り込む。画像は単色階調付イメージとして取り込む。もちろんそのような形式でハードディスク等に保存されたイメージファイルを読み込んでも良い。カラー画像の場合には、その画像形式に応じた処理によって、単色階調付画像に変換することができる。スキャナから取り込んだりファイルとして読み込んだ画像が2値画像であった場合には、自動2値化はできないので、そのまま認識するか、自動2値化を行うために階調付画像として取り込みをやり直す。楽譜イメージを取り込んだRAM3の記憶容量が足りない場合には、画像を部分的にRAM3に格納した上で、順次処理することもできる。尚、本構成では1画素8ビット256階調で取り込んでいるが、このビット数に限定されるわけではない。また階調は、数値の大きいものが白、数値の小さいものが黒として、以下説明される。
【0012】
ステップSIIにおいて、自動2値化処理(しきい値設定処理)が行われる。この自動2値化処理については、後述する。そしてステップSIIIにおいて、2値化画像取り込みが行われ、設定された2値化しきい値に基づいて、楽譜イメージを2値化画像として取り込む。
【0013】
図4は、上記自動2値化処理のメイン処理ステップを示している。まずステップS1において、2分法によるしきい値(thres)の検出を行う。256段階全てで五線の線幅と五線間隔を検出し、目標のしきい値を求めても良いが、実行速度に問題が出てきてしまうので、2分法で最適しきい値を求めることにした。この処理については、後述する。
【0014】
前述のように、256階調であれば、2分法のループ8回程度で目的のしきい値が得られる。しかし、本実施形態では、五線間隔及び五線の線幅を整数で求めているため、五線間隔に対する五線の線幅の割合が段階的に変化しており、8回未満で目的のしきい値を検出できる場合もある。この状態で自動2値化のしきい値検出処理を終了しても良いが、目的の割合と同値の帯域が広い場合は、しきい値をその帯域の中点とした方が、より正確なしきい値を得ることができる。そこで、ステップS3において、割合が目標値と同じ値になる帯域が存在する場合には、その帯域の上限と下限を求め、その中点をしきい値(thres)とするようにした。ステップS2は、その際、割合が目標値と同じ値になる帯域が存在するか否かを判断するために行われる処理であり、しきい値判定処理の結果(ret)の値がしきい値判定終了コード[T_OK(目的の割合DEST_PERと等しい値となった場合の値)]になったか否かが判定される。ステップS3は、上述のように、帯域の上限と下限を求め、その中点をしきい値(thres)とする処理である。即ちステップS30において、帯域上限(thres2)を検出し、ステップS31において、帯域下限(thres3)を検出して、ステップS32において、この上限(thres2)と下限(thres3)の中点を求め、しきい値(thres)として設定する。この上限及び下限の検出についても、後述するように、2分法によって行うことができる。尚、五線の線幅及び五線間隔を実数で検出する等して、割合が充分連続的に変化するようにすれば、帯域の上限及び下限の検出処理は不要となる。この後、上述したように、ステップSIIIにおいて、2値化画像取り込みが行われ、設定された2値化しきい値に基づいて、楽譜イメージが2値化画像として取り込まれる。
【0015】
図5は、上記ステップS1における2分法によるしきい値(thres)の検出手順を示している。ステップS100において、初期設定を行う。即ち最大しきい値(thresMax)に階調最大値255を、また最小しきい値(thresMin)に階調最小値0をセットし、更に2分法によるしきい値検出処理ループの繰り返し回数をカウントするカウンタ(ct)に256をセットすると共に、しきい値判定処理結果の最大値(retMax)及び同結果の最小値(retMin)に、五線間隔・五線の線幅が検出できなかったことを示すT_NOTをセットする。
【0016】
次にステップS101において、前記thresMaxとthresMinの中間の値をしきい値(thres)とする。ステップS102において、このしきい値(thres)の後述する判定処理を行ってその結果をretとする。その判定処理結果とは、後述するように、T_OK(しきい値が目的の割合DEST_PERと等しい値と判定された場合の出力結果)、T_THIN(しきい値が目的の割合DEST_PERより小さい値と判定された場合、即ち五線の線幅が細いと判定された場合の出力結果)、T_THICK(しきい値が目的の割合DEST_PERより大きい値と判定された場合、即ち五線の線幅が太いと判定された場合の出力結果)、T_NOT(五線間隔、五線の線幅が検出できないと判断された場合の出力結果)がある。
【0017】
ステップS103において、上記判定処理結果(ret)がT_NOTであるか否かが判断され、T_NOTでないと判断された場合、即ち五線間隔及び五線の線幅が検出できる場合は、ステップS104に移行して、上記判定処理結果(ret)がT_OKか否かが判定される。この処理結果(ret)がT_OKならば、ループから抜け出し、2分法によるしきい値の検出処理を終了する(即ち図4のステップS2における判定がYESとなり、ステップS3の処理に移る)。他方、該処理結果(ret)がT_OKでないならば、ステップS105に移行し、該処理結果(ret)がT_THICKか否かが判定される。この処理結果がT_THICKならば(五線の線幅が太い場合)、ステップS107において、しきい値(thres)を最大しきい値(thresMax)とし、ステップS101の計算式においてしきい値を再計算する際に、最大しきい値(thresMax)をより小さい側に変更できるようにする(五線の線幅が細い側寄りになるようにしきい値を設定し直す)。一方前記処理結果がT_THICKでないならば(五線の線幅が細い場合)、ステップS106において、しきい値(thres)を最小しきい値(thresMin)とし、ステップS101の計算式においてしきい値を再計算する際に、最小しきい値(thresMin)をより大きい側に変更できるようにする(五線の線幅が太い側寄りになるようにしきい値を設定し直す)。
【0018】
ステップS103において、上記判定処理結果(ret)がT_NOTであると判断された場合、即ち五線間隔及び五線の線幅が検出できない場合は、しきい値が濃い側或いは薄い側のどちらに振れているかを、ステップS109以下のしきい値オーバーフローチェックで判定し、これに基づいて2分法の処理を行う。但ししきい値オーバーフローチェックは処理コストの高い処理になるので、両端のしきい値判定結果を、同結果の最小値(retMin)及びその最大値(retMax)として保存しておく。そしてステップS108で、retMax並びにretMinがT_NOTか否かが判定され、両方がT_NOTの場合、ステップS109でしきい値のオーバーフローチェックがなされる。そしてステップS110において、しきい値が濃い側或いは薄い側のどちらに振れているかが判定され、黒側にオーバーフローしている場合は、ステップS112において、しきい値(thres)をその最大値(thresMax)にセットし、しきい値判定結果の最大値(retMax)がT_NOTとなる。逆に白側にオーバーフローしている場合は、ステップS111において、しきい値(thres)をその最小値(thresMin)にセットし、しきい値判定結果の最小値(retMin)がT_NOTとなる。
【0019】
上記のステップS108において、retMax或いはretMinのうちの一方がT_NOTでないと判定された場合は、ステップS113以下でT_NOTでない側に近づくように2分法処理を行うことで、しきい値オーバーフローチェックの呼び出し回数を減らすことができる。該ステップS113において、retMaxとretMinのどちらがT_NOTでないかが判定され、retMaxがT_NOTでない場合はステップS114で、しきい値(thres)をその最小値(thresMin)にセットし、しきい値判定結果の最小値(retMin)がT_NOTとなる。retMinがT_NOTでない場合はステップS115で、しきい値(thres)をその最大値(thresMax)にセットし、しきい値判定結果の最大値(retMax)がT_NOTとなる。
【0020】
しきい値判定結果(ret)がT_OKの場合以外は、ステップS117でカウンタ(ct)の数を半分に減らして、以上の処理をカウンタ(ct)の数が1になる(ステップS116)までループで繰り返す。このように、開始帯域をthresMinからthresMaxとし、2分法により、領域を狭めていき、最後に判定された結果が、2値化しきい値(thres)となる(参照ステップS1)。
【0021】
以上のようにして2値化しきい値が検出された後、上述のように、ステップS2において、しきい値判定がret=T_OKで終了した場合には、ステップS3で、T_OKの帯域のどこをしきい値とするか決定する必要がある。図6はそのような決定を行う場合の、ステップS30における帯域上限(thres2)の検出手順を示している。
【0022】
まずステップS300において、初期設定を行う。即ち上記の最大しきい値(thresMax)をそのまま本処理における最大しきい値(thresMax2)とし、また上記処理によって求められたしきい値(thres)を本処理における最小しきい値(thresMin2)としてセットすると共に、2分法によるしきい値検出処理ループの繰り返し回数をカウントするカウンタ(ct)に上記最大しきい値(thresMax2)から最小しきい値(thresMin2)を引いた値+1をセットする。
【0023】
次にステップS301において、前記thresMax2とthresMin2の中間の値をしきい値(thres2)とする。ステップS302において、このしきい値(thres2)の後述する判定処理を行ってその結果をretとする。その判定処理結果とは、後述するように、T_OK(しきい値が目的の割合DEST_PERと等しい値と判定された場合の出力結果)、T_THIN(しきい値が目的の割合DEST_PERより小さい値と判定された場合、即ち五線の線幅が細いと判定された場合の出力結果)、T_THICK(しきい値が目的の割合DEST_PERより大きい値と判定された場合、即ち五線の線幅が太いと判定された場合の出力結果)、T_NOT(五線間隔、五線の線幅が検出できないと判断された場合の出力結果)がある。
【0024】
ステップS303において、上記判定結果(ret)がT_OKであるか否かが判断され、T_OKであると判断された場合、即ち判定結果(ret)が目的の割合(DEST_PER)と等しい値になった場合は、ステップS305で、前記しきい値(thres2)の値を最小しきい値(thresMin2)としてセットする。ステップS303において、上記判定結果(ret)がT_OKでないと判断された場合は、しきい値(thres2)の値を最大しきい値(thresMax2)としてセットする。その後ステップS307でカウンタ(ct)の数を半分に減らして、以上の処理をカウンタ(ct)の数が1になる(ステップS306)までループで繰り返す。このように、五線の線幅の五線間隔に対する割合が或る帯域を持った場合の帯域上限の検出フローは、thres=T_OKとなった時点での、thresからthresMaxまでを2分法で検索し、T_OKである領域とそうでない領域の境界を検出する。即ち開始帯域をthresMin2からthresMax2とし、2分法により、領域を狭めていく。最後に判定された結果が、thres2となる(参照ステップS30)。
【0025】
ステップS31の帯域の下限の検出も同様のフローで行い、下限の結果はthres3となる。これについては、thresからthresMinまでを2分法で検索し、T_OKである領域とそうでない領域の境界を検出することになり、処理手順は上記帯域の上限の検出と同様になるので、省略する。そして、上述のように、ステップS32において、以上のようにして求められたthres2とthres3の中点をしきい値(thres)とする。
【0026】
図7は図5のステップS102及び図6のステップS302におけるしきい値判定の処理フローを示している。まずステップS1020において、五線間隔(blank)及び五線の線幅(thick)の検出を行う。即ち図8に示すように、楽譜を縦方向に走査し、上記しきい値(thres、thres2、thres3)より値が大きいか小さいかで背景と図を分離し、図9に示すように、背景及び図の夫々のラン長のヒストグラムを作成する。そして背景、図、夫々のヒストグラムの最大値を持つ添字、或いは最大値を持つ添字付近の或る帯域の値の重心位置を、五線間隔(blank)及び五線の線幅(thick)とする。実際は上記blankは、背景のラン長であるので、五線間隔に対する五線の線幅の割合を計算する際には、五線間隔として、(blank+thick)を充当する(blankの両端にthick/2を足したものとする)。また画像の縦方向の走査は、横座標Xの全ての位置において行う必要はない。処理速度の向上のため、図10に示すように、或る間隔をおいて行えば良い。
【0027】
この検出時点でblank=0となった場合(ステップS1021)、五線間隔の検出に失敗している(真っ黒か真っ白の何れかで検出できない)ので、ステップS1028で判定結果(ret)をT_NOTとして処理を終了する。五線間隔や五線の線幅の検出失敗は、この他にも、thick=0の場合やthick>blankとなった場合や、thickやblankが或る範囲を超えた場合を追加しても良い。
【0028】
この判定後ステップS1022において、五線間隔(blank+thick)に対する五線の線幅(thick)の割合(per)を求める。もちろんより正確な値を得たり、認識率との対応をより良好にしたりするために、フローとは異なる数式により上記割合(per)を求めても良い。次にステップS1023において、この割合(per)が目的の割合(DEST_PER)と等しいか否かが判定され、等しいと判定された場合は、ステップS1027において、判定結果(ret)を、T_OKとし、ステップS1024において、それより大きいと判定された場合は、ステップS1025において、判定結果(ret)を、T_THICKとし、更にそれより小さいと判定された場合は、ステップS1026において、判定結果(ret)を、T_THINとして判定を終了する。
【0029】
図5におけるステップS109のしきい値オーバーフローチェックとは、そのしきい値で2値化した場合、略真っ黒或いは真っ白になる状態を判定することを言う。よってそのチェックは、画素の値がしきい値より大きいものと小さいものをカウントし、この数を判定すれば良い。もちろん画像全ての画素を計測する必要はなく、前記五線間隔や五線の線幅検出時のX位置でチェックすれば良い。正確さは要求されないので、高速化のために、更にX位置を削減しても良い。オーバーフローチェック時は、黒か白どちらかにオーバーフローしているとして、黒のカウント数がチェック画素数(オーバーフローチェックを行うX位置での画素合計)の半分以上になった時点で黒にオーバーフローしたと判定して処理を終了し、黒のカウント数がチェック画素数の半分に満たなかった場合には白にオーバーフローしたと判定しても良い。
【0030】
(実施例2)
上記実施例1では、画像全体で検出した五線間隔と五線の線幅をしきい値決定の基準値としているが、これは、五線以外の部分のラン長も反映されたものなので、表題や絵、楽譜の折り目の影等の影響を受け、ヒストグラムの山が正しい五線間隔や五線の線幅よりもずれてしまい、五線の部分のみで検出した場合の五線間隔や五線の線幅とは異なってしまう場合がある。よって一旦大まかなしきい値で2値化した画像について五線認識を行い、その後の2分法のしきい値検出処理を、この五線周辺に限定する。
【0031】
本構成においても、前記実施例と同様にしてRAM3に格納された単色階調付き画像(1画素8ビット形式で格納)を適当な2値化しきい値で2値化する。五線認識は、2値化しきい値にさほど影響を受けないので、単純に仮のしきい値を階調の中央の値とする。このしきい値で五線間隔と五線の線幅の検出を行い、これが五線認識の許容範囲内であれば、このしきい値で五線検出を行う。即ち、五線部分の画像を縦方向に走査して、しきい値より大きいか否かで線部分とブランクの部分とに分け、夫々のヒストグラムを作成する。これらのヒストグラムを元に、五線間隔と五線の線幅の認識を行う。許容範囲内でない場合は、更に2分法により許容範囲になる値を探しても良いが、五線認識を行うのをやめ、前記実施例と同様に、画像全体で五線間隔と五線の線幅の検出を行い、しきい値を設定する方法に切り替えても良い。
【0032】
五線認識は、RAM3中に、階調画像領域とは別に作成した仮の2値化画像に対して行うようにしても良い。即ち、五線部分の画像を縦方向に走査して、0か1かで線部分とブランクの部分とに分け、夫々のヒストグラムを作成する。これらのヒストグラムを元に、五線間隔と五線の線幅の認識を行う。但し、記憶領域削減のために、別の領域を作らず、仮の2値化画像を階調付き画像の最下位ビットに上書きしても良い(256階調程度であれば、最下位ビットの変更はしきい値の検出にあまり影響を与えないため)。
【0033】
また求められた仮の2値化しきい値に基づいて、階調付き画像から直接五線を認識しても良い。更に五線が1本検出できた時点で、その認識処理を終了しても良い。図11に示すように、検出した五線を囲む矩形(点線部分)を設定する。左右端は五線の端点とする。加線は五線よりも少し太い線で書かれることが多く、また加線の間幅も五線より広い場合が多いので、前記矩形の上下は、加線を含まない領域としても良い。
【0034】
上記実施例1と同様な方法で、2値化したしきい値を検出する。但し処理領域を、上記の矩形に限定する。これによってより正確な五線間隔及び五線の線幅が得られ、且つ矩形が小さいため、以降の処理工数は低減される。また五線認識が既に行われているので、この時点で五線間隔は検出されており、2分法処理時には、五線の線幅の検出だけを行うようにすれば、更に高速化できる。
【0035】
本実施例において、仮の2値化のための2値化しきい値の決定を、モード法や微分ヒストグラム等の通常の画像処理方式であるしきい値選択法を用いても良い。また上記しきい値判定領域は、矩形(長方形)ではなく、五線の開始及び終了位置を結んだ平行四辺形領域でも良いし、図12に示すような五線認識で検出された五線ずらし量を考慮した短冊型領域でも良い。更に五線の線幅の検出を正確に行うために、2分法によるしきい値検出時、五線間隔及び五線の線幅の検出だけでなく、最初に検出されている五線に沿って、そのしきい値で2値化された画像の図を上下に走査し、五線であるのが確実な部分のラン長の平均値を取る処理を追加することもできる。
【0036】
(実施例3)
1つの楽譜画像の中で1つの2値化しきい値を決定すれば、殆どの場合それで充分である。しかし、これでは不十分な場合がある。特に顕著な例は、幅が違う五線が存在する場合である。このような時には、同じしきい値で2値化すると、基準とならなかった五線のしきい値が最適値からずれてしまい、認識率が低下する。そのため本実施例では、前記実施例と同様な方法で五線を検出し(全ての五線を検出する)、夫々の五線を囲む矩形を検出する。大かっこの認識も行い、図13(b)に示すように、パート毎の矩形としても良い。これらの矩形はしきい値決定のための矩形であり、この矩形内で、最初の実施例1と同様な手段により、夫々の2値化しきい値を決定する。
【0037】
しきい値決定後の2値化処理は、矩形内はそのしきい値で2値化するが、矩形間は、図13(a)に示されるように、
▲1▼ 上下の矩形領域のしきい値の中間値で2値化した場合に、2つの領域の中点から図が存在しない箇所を探索し、検出された位置で分離する。
▲2▼ 同様に2値化した場合に、図が存在しない領域を求め、最も広い領域にわたっている箇所で分離する。
▲3▼ 2つの矩形領域の中間のしきい値を、様々な方法で補間する。
▲4▼ 2つの矩形領域の真ん中で2つのしきい値の領域を分離する。
等の方法で2値化する。
【0038】
図13は、しきい値決定における2値化の例を示している。そのうち同図(b)は、読み取られた楽譜画像であり、点線の矩形がしきい値決定矩形である。また同図(a)は、決定されたしきい値の状態を示しており、b及びfの区間は、各矩形内で決定されたしきい値が用いられ、a及びcの画像の端の区間は、前記bの区間と同じしきい値が用いられ、eの区間は、前記fの区間と同じしきい値が用いられ、更にdの区間は、2つの領域の各しきい値を線形補間して用いる。
【0039】
またしきい値を変動させることにより、部分的な印刷のかすれ等に対応することもできる。これは、図13のように横方向に1つの矩形だけとする(横方向には同じしきい値)のではなく、複数の矩形に分割することによって、実現可能である。
【0040】
上記しきい値判定領域は、矩形(長方形)ではなく、前述と同様、五線の開始及び終了位置を結んだ平行四辺形領域でも良いし、五線認識で検出された五線ずらし量を考慮した短冊型領域でも良い。
【0041】
【発明の効果】
以上詳述した本発明の構成によれば、楽譜情報を利用して、認識に最適な2値化画像を得ることができ、認識率を向上せしめることが可能となる。また画像スキャン時に最適なしきい値への設定の手間がなくなり、作業効率が改善されることになる。
【図面の簡単な説明】
【図1】五線の線幅と五線間隔を示す説明図である。
【図2】本発明の請求項4に係る楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体を外部記憶装置で読み込ませて稼動する楽譜認識装置の実施例構成を示すブロック図である。
【図3】CPUのメイン処理を示すフローチャートである。
【図4】自動2値化処理のメイン処理ステップを示すフローチャートである。
【図5】2分法によるしきい値の検出手順を示すフローチャートである。
【図6】しきい値判定がT_OKで終了した際T_OKの帯域のどこをしきい値とするか決定する場合の帯域上限の検出手順を示すフローチャートである。
【図7】しきい値判定の処理フローを示すフローチャートである。
【図8】楽譜を縦方向に走査してしきい値より値が大きいか小さいかで背景と図を分離する状態を示す説明図である。
【図9】五線に線幅及び五線間隔の夫々のラン長のヒストグラムを示すグラフである。
【図10】画像の縦方向の走査を或る間隔をおいて行う状態を示す説明図である。
【図11】しきい値判定を行うために設定された五線を囲む矩形の設定状態を示す説明図である。
【図12】しきい値判定領域として設定された短冊型の例を示す説明図である。
【図13】しきい値決定における2値化処理の例を示す説明図である。
【符号の説明】
1 CPU
2 ROM
3 RAM
4 ハードディスク装置
5 フレキシブルディスクドライブ
6 CRT
7 CRTインターフェース回路
8 キーボード
9 キーボードインターフェース回路
10 プリンタ
11 プリンタインターフェース回路
12 スキャナ
13 スキャナインターフェース回路
14 MIDIインターフェース回路
15 バス
Claims (4)
- 楽譜情報読込手段と、しきい値設定手段と、画像取込手段とを有して実行され、楽譜を読み取り、この読み取った楽譜データをコンピュータ処理により自動的に音楽記号を認識し、演奏及び/又は楽譜表示のためのデータを作成する楽譜認識方法において、
上記楽譜情報読込手段により、楽譜を階調イメージで読み取るステップと、
上記しきい値設定手段により、読み取った楽譜イメージを所定の2値化しきい値により2値化するステップと、
同じくしきい値設定手段により、2値化された楽譜イメージの五線間隔に対する五線線幅の割合を求め、その割合から画像状態を判定し、これにより次の2値化しきい値を算出設定し、このしきい値を順次変化させて、五線間隔に対する五線線幅の割合が目的の割合となる時のしきい値の帯域から最終的なしきい値を求めるステップと、
該しきい値設定手段により、最終的に計算設定されたしきい値で前記読み取った楽譜イメージを2値化するステップと、
上記画像取込手段により、この2値化された楽譜イメージから音楽記号を認識するステップと
を実行することを特徴とする楽譜認識方法。 - 楽譜情報読込手段と、しきい値設定手段と、画像取込手段とを有して実行され、楽譜を読み取り、この読み取った楽譜データをコンピュータ処理により自動的に音楽記号を認識し、演奏及び/又は楽譜表示のためのデータを作成する楽譜認識方法において、
上記楽譜情報読込手段により、楽譜を階調イメージで読み取るステップと、
上記しきい値設定手段により、読み取った楽譜イメージを所定の2値化しきい値により2値化するステップと、
同じくしきい値設定手段により、2値化された楽譜イメージを複数ブロックに分割し、分割された楽譜イメージを、ブロック毎に所定の2値化しきい値により2値化し、2値化された楽譜イメージの五線間隔に対する五線線幅の割合をブロック毎に求め、その割合から画像状態を判定し、これにより次の2値化しきい値をブロック毎に算出設定し、そのしきい値を順次変化させて、五線間隔に対する五線線幅の割合が目的の割合となる時のしきい値の帯域からブロック毎に最終的なしきい値を求めるステップと、
該しきい値設定手段により、ブロック毎に最終的に計算設定されたしきい値で前記読み取った楽譜イメージをブロック毎に2値化するステップと、
上記画像取込手段により、このブロック毎に異なる2値化しきい値で2値化された楽譜イメージから音楽記号を認識するステップと
を実行することを特徴とする楽譜認識方法。 - 楽譜を読み取り、この読み取った楽譜データをコンピュータ処理により自動的に音楽記号を認識し、演奏及び/又は楽譜表示のためのデータを作成する楽譜認識プログラムを記憶したコンピュータ読み取り可能な記録媒体であって、該プログラムの実行により、楽譜情報読込手段と、しきい値設定手段と、画像取込手段とが該コンピュータ上に実現され、
上記楽譜情報読込手段により、楽譜を階調イメージで読み取るステップと、
上記しきい値設定手段により、読み取った楽譜イメージを所定の2値化しきい値により2値化するステップと、
同じくしきい値設定手段により、2値化された楽譜イメージの五線間隔に対する五線線幅の割合を求め、その割合から画像状態を判定し、これにより次の2値化しきい値を算出設定し、このしきい値を順次変化させて、五線間隔に対する五線線幅の割合が目的の割合となる時のしきい値の帯域から最終的なしきい値を求めるステップと、
該しきい値設定手段により、最終的に計算設定されたしきい値で前記読み取った楽譜イメージを2値化するステップと、
上記画像取込手段により、この2値化された楽譜イメージから音楽記号を認識するステップと
を実行させるための楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体。 - 楽譜を読み取り、この読み取った楽譜データをコンピュータ処理により自動的に音楽記号を認識し、演奏及び/又は楽譜表示のためのデータを作成する楽譜認識プログラムを記憶したコンピュータ読み取り可能な記録媒体であって、該プログラムの実行により、楽譜情報読込手段と、しきい値設定手段と、画像取込手段とが該コンピュータ上に実現され、
上記楽譜情報読込手段により、楽譜を階調イメージで読み取るステップと、
上記しきい値設定手段により、読み取った楽譜イメージを所定の2値化しきい値により2値化するステップと、
同じくしきい値設定手段により、2値化された楽譜イメージを複数ブロックに分割し、分割された楽譜イメージを、ブロック毎に所定の2値化しきい値により2値化し、2値化された楽譜イメージの五線間隔に対する五線線幅の割合をブロック毎に求め、その割合から画像状態を判定し、これにより次の2値化しきい値をブロック毎に算出設定し、そのしきい値を順次変化させて、五線間隔に対する五線線幅の割合が目的の割合となる時のしきい値の帯域からブロック毎に最終的なしきい値を求めるステップと、
該しきい値設定手段により、ブロック毎に最終的に計算設定されたしきい値で前記読み取った楽譜イメージをブロック毎に2値化するステップと、
上記画像取込手段により、このブロック毎に異なる2値化しきい値で2値化された楽譜イメージから音楽記号を認識するステップと
を実行させるための楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36687897A JP3607065B2 (ja) | 1997-12-26 | 1997-12-26 | 楽譜認識方法及び楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体 |
US09/380,225 US6580805B1 (en) | 1997-12-26 | 1998-06-29 | Method and recognizing music and computer-readable recording medium having music-recognizing program recorded therein |
PCT/JP1998/002895 WO1999034352A1 (fr) | 1997-12-26 | 1998-06-29 | Procede de reconnaissance de la musique et support d'enregistrement lisible par un ordinateur sur lequel est enregistre un programme de reconnaissance de la musique |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36687897A JP3607065B2 (ja) | 1997-12-26 | 1997-12-26 | 楽譜認識方法及び楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11194762A JPH11194762A (ja) | 1999-07-21 |
JP3607065B2 true JP3607065B2 (ja) | 2005-01-05 |
Family
ID=18487918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP36687897A Expired - Fee Related JP3607065B2 (ja) | 1997-12-26 | 1997-12-26 | 楽譜認識方法及び楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6580805B1 (ja) |
JP (1) | JP3607065B2 (ja) |
WO (1) | WO1999034352A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009153067A (ja) * | 2007-12-21 | 2009-07-09 | Canon Inc | 画像処理方法及び画像処理装置 |
KR101459766B1 (ko) * | 2008-02-12 | 2014-11-10 | 삼성전자주식회사 | 휴대 단말에서 자동반주 악보를 인식하는 방법 |
JP2012138009A (ja) * | 2010-12-27 | 2012-07-19 | Kawai Musical Instr Mfg Co Ltd | 楽譜認識装置、及びコンピュータプログラム |
JP5765848B2 (ja) * | 2011-03-31 | 2015-08-19 | 株式会社河合楽器製作所 | 音再生プログラム及び音再生装置 |
US9378654B2 (en) * | 2014-06-23 | 2016-06-28 | D2L Corporation | System and method for rendering music |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01304497A (ja) * | 1988-06-02 | 1989-12-08 | Casio Comput Co Ltd | 楽譜認識方法及び装置 |
JPH0287776A (ja) * | 1988-09-26 | 1990-03-28 | Toshiba Corp | 画像処理装置 |
JPH0535924A (ja) * | 1991-07-31 | 1993-02-12 | Yamaha Corp | 楽譜自動認識装置 |
JPH0785245A (ja) * | 1993-09-10 | 1995-03-31 | Mitsubishi Electric Corp | 視覚センサ |
TW250558B (en) * | 1993-10-20 | 1995-07-01 | Yamaha Corp | Sheet music recognition device |
-
1997
- 1997-12-26 JP JP36687897A patent/JP3607065B2/ja not_active Expired - Fee Related
-
1998
- 1998-06-29 US US09/380,225 patent/US6580805B1/en not_active Expired - Lifetime
- 1998-06-29 WO PCT/JP1998/002895 patent/WO1999034352A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO1999034352A1 (fr) | 1999-07-08 |
JPH11194762A (ja) | 1999-07-21 |
US6580805B1 (en) | 2003-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3883696B2 (ja) | 多数の写真をスキャンしかつ検出するとともに人工エッジを除去するための方法 | |
US7539344B2 (en) | Boundary detection method between areas having different features in image data | |
US7738734B2 (en) | Image processing method | |
US5706363A (en) | Automated recognition system for printed music | |
US6813367B1 (en) | Method and apparatus for site selection for data embedding | |
JP3607065B2 (ja) | 楽譜認識方法及び楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
US6862370B2 (en) | Image detecting method, image detecting system, program, and recording medium for image detection | |
JP3549936B2 (ja) | デジタル情報解読方法 | |
JP3698867B2 (ja) | 円形パターン判定方法、装置および記録媒体 | |
JP5125961B2 (ja) | 二値化処理装置、情報処理装置、二値化処理方法および二値化処理プログラム | |
JPS6162983A (ja) | 楽譜読取装置 | |
JPH11317874A (ja) | 画像処理装置およびその方法 | |
JP2000184200A (ja) | モアレ除去装置 | |
JP3613356B2 (ja) | 楽譜認識装置 | |
JP4254008B2 (ja) | パターン検出装置及び方法 | |
JP3989647B2 (ja) | 画像処理方法,装置および記録媒体 | |
JPH0679348B2 (ja) | 行切り出し方法 | |
JP4439054B2 (ja) | 文字認識装置及び文字枠線の検出方法 | |
US6738530B1 (en) | Method of recognizing character in which correction of inclination of character is carried out and apparatus for carrying out this method | |
JPH07120392B2 (ja) | 文字パターン切り出し装置 | |
JP3712825B2 (ja) | 画像処理方法、装置および記録媒体 | |
JP2877548B2 (ja) | 文書画像の属性判別方法 | |
JP2000331118A (ja) | 画像処理装置及び記録媒体 | |
JP2003187186A (ja) | 楽譜認識装置 | |
JP2826229B2 (ja) | バーコードラベルの走査位置検出方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040427 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040527 |
|
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: 20041005 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041006 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081015 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081015 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091015 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091015 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101015 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101015 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111015 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121015 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131015 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |