Upgrade to Pro — share decks privately, control downloads, hide ads and more …

アノテーションにおける UI の工夫

kuetsuji
June 28, 2024
370

アノテーションにおける UI の工夫

kuetsuji

June 28, 2024
Tweet

Transcript

  1. アノテーションとは 3 課題定義 アノテーション / データ収集 モデリング/学習 評価 運⽤ 機械学習のフロー

    • 学習データが機械的に得られない場合は、 ⼿動で学習データを作成する必要がある • アノテーションのためのツール‧UI が よく利⽤される ▲ OSS のアノテーションツール LabelStudio
  2. アノテーションにおける UI の重要性 アノテーションのための UI が優れていると何が嬉しいか 4 アノテーション UI の改善は

    Data-Centric にモデルの性能を改善する⼿段 アノテーションの効率と正確性が⾼くなる 学習データの量と質が⾼くなる 機械学習モデルの性能が向上する
  3. アノテーション UI を改善するアイデア アノテーションをより効率的にするために、 図⾯解析に特化したアノテーションの機能が実現できないだろうか? 6 たとえば..... BBox 作成の効率化 図⾯中に細かい

    BBox を作る作業に時間がかかる。 もっと効率的な操作⽅法はないか? テキストの⼊⼒補助 テキストを毎回⼊⼒するのは⼿間。 OCR モデルがあれば⾃動⼊⼒できるのでは? ▶ 実際にこれらを実装してみて効果を検証した
  4. ⾃動スナップのアルゴリズム 1. ユーザが選択した BBox の 1 辺に 注⽬する 2. その辺を(辺の垂直⽅向に)移動

    して、「辺と重なるピクセルが全 て⽩になる部分」とそうでない部 分の境界を探す 3. 元の辺の位置と最も近い境界に 辺を移動する これを各辺でくりかえす 8 アル
  5. ⾃動スナップのアルゴリズム ① 1. ユーザが選択した BBox の 1 辺に 注⽬する 2.

    その辺を(辺の垂直⽅向に)移動 して、「辺と重なるピクセルが全 て⽩になる部分」とそうでない部 分の境界を探す 3. 元の辺の位置と最も近い境界に 辺を移動する これを各辺でくりかえす 9 アル
  6. ⾃動スナップのアルゴリズム ② 1. ユーザが選択した BBox の 1 辺に 注⽬する 2.

    その辺を(辺の垂直⽅向に)移動 して、「辺と重なるピクセルが全 て⽩になる部分」とそうでない部 分の境界を探す 3. 元の辺の位置と最も近い境界に 辺を移動する これを各辺でくりかえす 10 アル
  7. ⾃動スナップのアルゴリズム ③ 1. ユーザが選択した BBox の 1 辺に 注⽬する 2.

    その辺を(辺の垂直⽅向に)移動 して、「辺と重なるピクセルが全 て⽩になる部分」とそうでない部 分の境界を探す 3. 元の辺の位置と最も近い境界に 辺を移動する これを各辺でくりかえす 11 アル
  8. ⾃動スナップのアルゴリズム ④ 1. ユーザが選択した BBox の 1 辺に 注⽬する 2.

    その辺を(辺の垂直⽅向に)移動 して、「辺と重なるピクセルが全 て⽩になる部分」とそうでない部 分の境界を探す 3. 元の辺の位置と最も近い境界に 辺を移動する これを各辺でくりかえす 12 アル
  9. ⾃動スナップのアルゴリズム ④ 1. ユーザが選択した BBox の 1 辺に 注⽬する 2.

    その辺を(辺の垂直⽅向に)移動 して、「辺と重なるピクセルが全 て⽩になる部分」とそうでない部 分の境界を探す 3. 元の辺の位置と最も近い境界に 辺を移動する これを各辺でくりかえす 13 アル
  10. ⾃動スナップのアルゴリズム ④ 1. ユーザが選択した BBox の 1 辺に 注⽬する 2.

    その辺を(辺の垂直⽅向に)移動 して、「辺と重なるピクセルが全 て⽩になる部分」とそうでない部 分の境界を探す 3. 元の辺の位置と最も近い境界に 辺を移動する これを各辺でくりかえす 14 アル
  11. ⾃動スナップのアルゴリズム ④ 1. ユーザが選択した BBox の 1 辺に 注⽬する 2.

    その辺を(辺の垂直⽅向に)移動 して、「辺と重なるピクセルが全 て⽩になる部分」とそうでない部 分の境界を探す 3. 元の辺の位置と最も近い境界に 辺を移動する これを各辺でくりかえす 15 アル
  12. ⾃動スナップのアルゴリズム ④ 1. ユーザが選択した BBox の 1 辺に 注⽬する 2.

    その辺を(辺の垂直⽅向に)移動 して、「辺と重なるピクセルが全 て⽩になる部分」とそうでない部 分の境界を探す 3. 元の辺の位置と最も近い境界に 辺を移動する これを各辺でくりかえす 16 アル 図⾯が⽩黒のスキャン画像であること を利⽤したシンプルなアルゴリズム
  13. ⾃動⼊⼒機能による UI の変化 OCR による⾃動⼊⼒によって、 テキストを⼊⼒する UI がテキストを修正する UI に変化する

    ➡ テキストが正しいかを⽬視で判別しなければならない 19 2O24-01ー28
 ゼロとオーの違い ハイフンと⻑⾳記号の違い OCR モデルが間違えやすい⽂字は⼈間も⾒間違いやすい!
  14. テキストを修正するためのデザイン ⾒間違えやすい⽂字を判別するための UI が必要 • フォントサイズを⼤きくする • O と 0

    や l, I, 1 を⾒分けやすいフォントを使う • 等幅フォントを使う • ⽂字種ごとに⾊を変える 20 ▲ 見間違えやすい文字を見分けるための UI として パスワードジェネレータを参考にした https://1password.com/password-generator ▲ 実際にアノテーション UI に実装してみた様子
  15. 機能の検証 ここまでで紹介した機能が有効か、次の 3 点を検証した BBox の⾃動スナップ機能 ➡ ⼿動で BBox を作る場合と⽐べて作業時間は短縮したか?

    OCR によるテキストの⾃動⼊⼒機能 ➡ ⼿動でテキストを⼊⼒する場合と⽐べて作業時間は短縮したか? テキストを修正するためのデザイン ➡ 特に⼯夫しない UI と⽐べて正確性は向上したか? 21
  16. 検証⽤のアノテーション UI 1 図⾯のアノテーションを 2 ステップの作業に分割して提⽰ ➡ BBox 作成とテキスト⼊⼒にかかる時間をそれぞれ計測できる 22

    ⬆ BBox 作成ステップ 図番‧材質‧表⾯処理のテキストに BBox を付与する ⬆ テキスト⼊⼒ステップ BBox で囲ったテキストを⼊⼒‧修正する
  17. アノテーション作業の条件 12 名を 4 名ずつグループに分け、 1 ⼈あたり 10 枚の図⾯に以下の条件でアノテーションしてもらう •

    グループ A:後半 5 枚の BBox 作成ステップで「スナップ機能」が有効になる • グループ B:後半 5 枚のテキスト⼊⼒ステップで「⾃動⼊⼒」が有効になる • グループ C:後半 5 枚のテキスト⼊⼒ステップで「⾃動⼊⼒ + 修正⽤ UI」が有効になる 23 前半 5 枚 後半 5 枚 BBox 作成 ステップ グループ A 追加機能なし スナップ機能あり グループ B 追加機能なし 追加機能なし グループ C 追加機能なし 追加機能なし テキスト⼊⼒ ステップ グループ A 追加機能なし 追加機能なし グループ B 追加機能なし ⾃動⼊⼒あり グループ C 追加機能なし ⾃動⼊⼒ + 修正⽤ UI あり
  18. 作業時間の検証⽅法:差分の差分法 たとえばスナップ機能を検証するときは「BBox 選択ステップ」のみを考えて、 スナップの有無で「どれくらい時間短縮に差が出るか」を⾒る 24 前半 5 枚 後半 5

    枚 BBox 選択 ステップ グループ A 追加機能なし スナップ機能あり グループ B 追加機能なし 追加機能なし グループ C 追加機能なし 追加機能なし テキスト⼊⼒ ステップ グループ A 追加機能なし 追加機能なし グループ B 追加機能なし ⾃動⼊⼒あり グループ C 追加機能なし ⾃動⼊⼒ + 修正⽤ UI あり 前半を 1 とした時の相対的な作業時間 前半 5 枚 後半 5 枚 1 作業の慣れによる 時間短縮 スナップ機能による 時間短縮 ▶ 同じ⼈の前半‧後半を⽐較するのでユーザごとの作業時間のぶれ(丁寧さ‧使⽤デバイスなど)に対処できる グループ A グループ B, C
  19. 検証結果:スナップ機能による作業時間短縮 25 効果があるとはいえなさそう 前半 5 枚 後半 5 枚 BBox

    選択 ステップ グループ A 追加機能なし スナップ機能あり グループ B 追加機能なし 追加機能なし グループ C 追加機能なし 追加機能なし 後半 5 枚の作業時間(前半との⽐率)
  20. 検証結果:テキスト⾃動⼊⼒による作業時間短縮 27 ⾃動⼊⼒によって 作業時間が平均 53% に短縮! ⼿⼊⼒グループは前半と後半で作業時間がほとんど変化しない (54% になった⼈はコピペで作業効率化していた。タスク設計が⽢かったかも) 前半

    5 枚 後半 5 枚 テキスト ⼊⼒ ステップ グループ A 追加機能なし 追加機能なし グループ B 追加機能なし ⾃動⼊⼒あり グループ C 追加機能なし ⾃動⼊⼒ + 修正⽤ UI あり 後半 5 枚の作業時間(前半との⽐率)
  21. テキスト修正 UI での正確性の検証 OCR 結果をハードコーディングしておき、わざとミスを⼊れる ➡ ミスが正しく修正されるかを検証 28 正解テキスト 誤りテキスト

    誤りパターン メラミン塗装 メラミン塗装. 末尾に「 . 」がついている メラミン塗装 メラミソ塗装 「ン」が「ソ」になっている 20220616-ABC-01 20220616-ABC-O1 「0」が「O」になっている 20220616-ABC-02 202206I6-ABC-02 「1」が「I」になっている SS400D SS400O 「D」が「O」になっている
  22. 検証結果:修正⽤ UI による正確性向上 29 ⼿⼊⼒したグループは ミスなく⼊⼒できていた ⾃動⼊⼒があるグループは ミスが合計 2 件

    ⾃動⼊⼒かつ⾒やすい UI の グループはミスが 4 件 ⼊⼒‧修正したテキストが誤っていた数 前半 5 枚 後半 5 枚 テキスト ⼊⼒ ステップ グループ A 追加機能なし 追加機能なし グループ B 追加機能なし ⾃動⼊⼒あり グループ C 追加機能なし ⾃動⼊⼒ + 修正⽤ UI あり
  23. なぜ修正に失敗したか ユーザの感想としては良好だったが...... 失敗の内訳 • O → 0 の修正を⾒逃した:3 件 •

    O → D の修正を⾒逃した:1 件 30 間違いが ⾒つけやすかった ⾊がついていると わかりやすい! 0 と O が区別でき るフォントが良い
  24. 修正を⾒逃した要因の仮説 ⽂字のコントラスト⽐が⾜りず判別が難しかった? ➡ ⻘⽂字と背景のコントラスト⽐が 2.31 : 1 しかなかった Web Content

    Accessibility Guidelines (WCAG) 2.0「少なくとも 4.5:1 のコントラスト⽐」 ⽂字⾊の違いについて説明が⾜りなかった? ➡ ⾊についての説明が少なかったので⾒逃された可能性がある フォントの効果があまりなかった? ➡ 「0」と「O」は横に並べると違いがわかるが単体では難しい   「2O226I6」のように⽂字幅が異なるほうが⾒分けやすかったかも 31
  25. 検証まとめ アノテーション UI の改善として、次の 3 つを実装して効果を検証した • BBox の⾃動スナップ ➡

    作業効率はあまり向上せず。データ精度⾯はメリットあり • OCR モデルによるテキストの⾃動⼊⼒ ➡ 作業効率が⼤幅に向上することを確認 • テキスト修正⽤の⼊⼒ UI ➡ 効果は⾒られず。さらなる改善が必要 32
  26. 余談:⾊のアクセシビリティ 「⾊どうしの⾒分けやすさ」に注意する必要がある ➡ ⾊覚多様性:男性の 20 ⼈に 1 ⼈ • テキストや罫線など、そもそも⾊以外の要素で⾒分けられるようにする

    • Okabe-ito パレットなど、アクセシビリティを考慮した配⾊を利⽤する • Chrome Devtools 等の⾊覚シミュレーションで確認する 34
  27. 余談:ユーザの⽂脈に沿った UI ユーザにとって使いやすい UI であることを意識する たとえば...... • ユーザがこれまで使っていたアノテーションツールと挙動を合わせる ◦ マウスホイールを使うとズーム?パン(視点移動)?

    ◦ Ctrl-D のショートカットは複製?削除? • ユーザの使っているデバイスに最適化する ◦ ユーザが使うのはマウス?トラックパッド? ◦ キーボードにテンキーはある? ◦ ディスプレイサイズは UI を表⽰するのに⼗分か? 35