AI Navigate

[P] 私自身のOMRモデルを訓練しました(光学楽譜認識)

Reddit r/MachineLearning / 2026/3/15

📰 ニュースDeveloper Stack & InfrastructureTools & Practical UsageModels & Research

要点

  • Clarity-OMR は楽譜PDFを MusicXML に変換する4段階のパイプラインを用います: YOLOベースの譜表検出、DaViT+RoPE エンコーダ/デコーダによる認識、文法 FSA による制約付きビーム探索、MusicXML のエクスポート。
  • モデルは DaViT-Base エンコーダを使用し、487トークンの音楽語彙を出力するカスタム Transformer デコーダを備え、細部を保持するため 192px の高さでスタッフレベルの認識を実行します。
  • デコード中に文法 FSA による構造的妥当性を強制し、すべての線形層に DoRA ランク-64 を適用して安定性と精度を向上させます。
  • Audiveris とのベンチマークでは、10 曲のクラシックピアノ作品で概ね競合的(平均品質スコア 42.8 対 44.0)で、よりクリーンでリズムが明瞭な譜面では優位ですが、音符が五線上から外れた場合には難があります。
  • 著者は、より良いポリフォニック訓練データ、よりスマートな文法制約、より多様な合成レンダリングの導入など、さらなる改善の余地を訴え、モデルとビジョンアプローチを組み合わせることの潜在的な恩恵にも言及しています。コードと重みはすべてオープンソースです。

こんにちは。私は光学楽譜認識(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 にはモデル自体についてのさらなる詳細がたくさんありますが、コードは少し乱雑です。なぜなら、それは私がそのために作成した全てのコードだからです。

投稿者: /u/Clarity___
[リンク] [コメント]