2020年8月7日金曜日

変形楽譜矯正ソフト

 光学など担当の岩室です。


今日は、変形してしまった楽譜の五線を自動検知してまっすぐに矯正するソフトの話です。


最近、CamScanner というソフト(私はいまだにガラケーユーザなんですが、アプリって言うんですかね)が広く出回っていて、学生からのレポート提出でも CamScanner を多く見かけるようになりました(ウィルスが仕込まれていることもあるようなので、ここではリンクしませんが)。このソフトは、レポート用紙のような紙を机の上に置いて撮影し、(自動で?)コーナー検出をした後、台形補正をして pdf に変換、という作業をしてくれるもののようです。この程度の作業はこれまでにもフリーソフトだけで簡単にできたことなのですが、これが誰でも簡単にできるようになたことで、多分、スキャナ業界はかなりのダメージを受けたのではないかと思います。


しかし、このソフトは紙1枚を置いての撮影を前提に作られているため、本の撮影画像はうまく修正できないようです。多分、冊子になっていることでコーナー検出がうまくできないのと、ページの盛り上がりによる扇型変形が補正できないことが原因なのではないかと思います。せめて、ページの上下端の曲線を読み取って扇型変形まで直してくれればいいかと思うのですが、トラブルを減らすために機能をシンプルに絞ったのでしょうね。この点では、本をガラス面に押し当てて平らにするスキャナーの方がちゃんとした画像になります。


さて、ここからが今日の本題なのですが、娘が友達から送ってもらった楽譜データが全て歪んでいて、何とかまっすぐにできないか相談を受けました。分解不可の分厚い冊子を撮影して CamScanner で取り込んだようですが、五線が曲がっています。実は、ファイバー分光器のスペクトル解析でも、光学収差によるスペクトルの曲がりを補正する必要があるので、こういう曲がりを自動検出して矯正する画像解析ソフトを自前で作っていたため、まあ、何とかなるかなと思って毎晩コツコツと内職してみました。しかし実際は結構大変で、何気なく人間が行なっている画像処理能力の複雑さを改めて確認することとなりました。



まず、上図左が元となる画像データです。冊子の撮影に特有の上の方ほど曲がりが大きく、下の方ほど横幅が小さい扇型のような変形が見られます。まずは、この変形情報を抽出する必要があります。しかし、楽譜には五線だけでなく音符やその他の記号が並んでいたり、五線そのものが印刷不鮮明で切れているところがあったり、と一筋縄ではいきません。五線は全て横方向であることを利用して、局所的に横方向の直線形状になっている部分だけを取り出して、川の流れのような図を作ります(上中図の赤+黄色部分)。この時点で、五線以外にはスラー/タイ、クレッシェンド/デクレッシェンド記号などが残ります。次に、1本1本の流れに沿って左右を往復し、無事に元の場所に戻ってこれた経路のみを残します。これで五線だけを残すことができます(上中図の赤)。次にこのブツ切れ情報の間を両側の情報をなめらかにつなぎあわせて補間し、五線の推定位置を割り出します(上中図の水色)。最後に両端部の縦線の内側位置を検出し(上中拡大図の青点、縦線外側の構造はそれぞれの段毎に異なるので両端部の判定は内側で決定します)、上下最寄り数本ずつの端位置と比較して、何らかの理由で左右に突出しているものがあれば正しい端の予想位置に修正して(上中拡大図のピンク点)情報抽出は完了です。あとはこの情報から形を矯正して変形させれば出来上がりです(上右図)。


こういうことをしてくれるソフトは、誰かが作ってくれているものだと思ってかなり色々探したのですが、結局見当たらなくて最終的に自作しました。Stavealign と名前を付けてマニュアルとともに置いていますので、興味ある方は使ってみて下さい。但し、全然使い込んでいないので、うまくいかない場合も多いと思います。その際はアニュアルにある連絡先まで連絡下さい。


 


0 件のコメント:

コメントを投稿