最近、手書きデータセット用のアノテーションツールを探してた。うちのプロジェクトで手書き文字認識のモデルを作ろうとしてたんだけど、既存のツールが軒並み複雑で、セットアップだけで半日かかりそうな感じだった。
そんなときにこのOpenpencilを見つけたんだ。GitHubで見た瞬間「あ、これペンで描くやつなんだ」って直感的に分かるUI。さっそくクローンして、npm installしたら、もう動いた。ローカルサーバー立ち上げて、ブラウザでペンを握ったら、すぐに描画が始まる。この手軽さは素晴らしい。
セットアップは本当にシンプルで、git cloneとnpm installで終わり。設定ファイルをいじる必要もほぼない。最初は「え、これで全部?」って思ったくらい。実際に手書きデータを作ってみると、タッチペンのペン圧感知にも対応してて、本当に自然な描き味。マウスでやってた頃みたいな不自然さがない。
一番良いと感じたのは、描いたデータがそのままJSON形式で出力されることだ。座標情報やストローク情報が構造化されてるから、後処理がめっちゃ楽。以前は自分で座標を整形し直してたけど、このツール使えば描いた直後にデータセット化できる。100件のスケッチを作るのに、今までは3時間かかってたけど、今は40分くらい。データの質も上がった気がする。
ただ、ドキュメントがまだ英語中心で、日本語での説明は少ない。あと、複数人での同時ラベリングみたいな機能は今のところ見当たらないので、チーム作業には向いてない可能性がある。その点は気になった。
結論、個人で手書きデータセット作ってる人、特に学習用の素早いプロトタイピングが必要な人には本当に向いてるツールだと思う。自分は今後もこれで運用するつもり。同じように手書きアノテーションで困ってる人は、一回試してみてほしい。
作成したデータセットをRAGパイプラインに投入するならMinerUやRAGFlowとの組み合わせが強力です。AIエージェントを活用したデータ処理自動化はOpenHandsも参考になります。