こんにちは。私は光学楽譜認識(OMR)モデルを訓練しましたので、ここで共有したいと思います。私のアプローチは改善とフィードバックを得られる可能性があると信じています。
Clarity-OMR は楽譜PDF を MusicXML ファイルへ変換します。核となるのは DaViT-Base エンコーダと、それに組み合わせた 487 トークンの音楽語彙を出力するカスタム Transformer デコーダです。全体は 4 段階のパイプラインとして動作します:譜表検出に YOLO → 認識に DaViT+RoPE デコーダ → 制約付きビーム探索のための文法 FSA → MusicXML エクスポート。
いくつかの主要な設計上の選択:
- 192px の高さでスタッフレベルの認識を行い、全ページのエンドツーエンド認識ではない(細部を保持)
- 全ての線形層に DoRA ランク-64 を適用
- 文法 FSA はデコード中の構造的妥当性を強制します(ビートの整合性、コードの適切性)
私は mir_eval を用いて Audiveris と 10 曲のクラシックピアノ作品をベンチマークしました。全体的には概ね競合的です(平均品質スコア 42.8 対 44.0)、よりクリーンでリズムが明瞭な譜面では明確な勝利があり(Bartók では 69.5 対 25.9、The Entertainer では 66.2 対 33.9)、音符が正しく五線上にない場合には弱点があります。ベンチマークの詳細は HuggingFace のリンクで確認できます。
この取り組みをさらに推し進める余地は大いにあります — より良いポリフォニック訓練データ、よりスマートな文法制約、より多様な合成レンダリングはすべて大きな助けになる可能性があります。また、 stave-by-stave(五線譜ごと)方式以外の別のアプローチも検討すべきです。あるいは、モデルとビジョンの組み合わせを用いて最良のスコアを得るのも一案です。
すべてオープンソースです:
- 推論: https://github.com/clquwu/Clarity-OMR
- 訓練: https://github.com/clquwu/Clarity-OMR-Train
- 重み: https://huggingface.co/clquwu/Clarity-OMR
Clarity-OMR-Train にはモデル自体についてのさらなる詳細がたくさんありますが、コードは少し乱雑です。なぜなら、それは私がそのために作成した全てのコードだからです。
[リンク] [コメント]