ABEJA Tech Blog

中の人の興味のある情報を発信していきます

効率的な教師データ作成(アノテーション)のための研究サーベイ

どうも緒方@conta_です。 みなさんAI頑張ってますか?

きっと昼はGPUサーバーを回して、夜は結果待ちでビールサーバーを回してる人が多いことでしょう。

機械学習を実際のプロダクトに活用する場合、自分が解きたいタスクがそのままオープンなデータセットで解決できることは少ないので、まず最初に課題となるのはデータセット作成です。 実際にカメラやセンサーを取り付けて収集したり、Webからクローリングしてきたり、事業会社であれば自社のデータセットに教師ラベルをつけることで新しいタスクに取り組むことが可能になるでしょう。

よく疑問になるポイントとして、データセットの量と質は、多ければ多いほど良く、高品質であれば高品質であるほど良いのですが教師データを作成するのは一苦労です。

*下記アノテーションの量や質について実験した結果がまとまってます

tech-blog.abeja.asia

もちろん少数データで高精度な機械学習モデルを作成する手法(few-shot learning, domain adaptation, semi-supervised learning等)もあるのですが、新しいタスクに対して各種法がフィットするかというのは課題設定によってまちまちです。

解決策の一つとして、クラウドソーシングを使うことも一つの手段なのですが、下記の課題があります。

  • 時間・お金がかかる
  • クオリティー担保
  • ワーカーマネジメント大変
  • ツール作成・データ管理大変 etc…

f:id:contaconta:20190521120511p:plain
教師データ作成のつらみ

こういった課題を解決するために、ABEJAではPlatformとしてのAnnotationを研究開発・サービスとしてリリースしています。

そういった取り組みの中で、せっかく機械学習を活用しているんだからアノテーションも機械学習で効率化できないの? という気持ちになります。

そこで、今回は効率的な教師データ作成(アノテーション)のための研究サーベイを行いました。 ひとえにアノテーションの効率化といっても、下記のようにデータの種類やラベルの付け方、タスクもいろいろあります。

  • データ
    • Image / Video / Text …
  • ラベル
    • Category Labeling
    • Bounding Box
    • Semantic Segmentation
    • Instance Segmentation…
  • タスク
    • Weakly
    • Efficiently
    • Framework

様々なデータソースや問題設定に対して効率的にアノテーションする方法を、先駆者たちが研究しているのですが、とても幅広く切っても切りづらい奥深い分野です。 そこで今回はObject DetectionにおけるBounding Box(BB)アノテーションの効率化と、Segmentationにおけるアノテーションの効率化についてざっくりとサーベイしました。 (かなり手法や結果を割愛しているので、興味が湧いたらぜひ論文を読んでもらえる深い理解が得られると思います)

*このブログ、かなーり長いので、飽きたら最後の方の僕のメッセージだけ読んでください(宣伝)

Crowdsourcing Annotations for Visual Object Detection (AAAI Human Computation Workshop 2012)

Su, Hao, Jia Deng, and Li Fei-Fei. "Crowdsourcing annotations for visual object detection." Workshops at the Twenty-Sixth AAAI Conference on Artificial Intelligence. 2012.

まずはかの有名なLi Fei-Fei先生の論文、Bounding Boxのクラウドソーシングに関して初期の頃に研究されていたものになります。

クラウドソーシングの課題の一つとしてQuality Controlの問題があるのですが、一般的には複数人にタスクを依頼し多数決で決議する(Voting)が行われています。 しかしながら複数人でタスクを行うというのは作業として非常に高コストとなります。

そこでこの研究ではタスクを3つのマイクロタスクに分割する(Draw / Quality Verification / Coverage Verification)ことを提案しています。

f:id:contaconta:20190521140245p:plain:w350

上図にあるように、1枚の画像に一人が複数個のBounding Box(BB)をつけるのではなく、1カテゴリーごとのテンプレートを用意し、1つのBBをつける(Draw) -> 別の人がQuality Verificationを行う -> さらに別の人が画像に対してそのカテゴリーがすべてアノテーションされてるかをチェックする(Coverage Verification)の3つのタスクに分割されています。

実験では、Imagenet(20000カテゴリー・14Mの画像)から10カテゴリ・200imageずつを抜き出し、Amazon Mechanical Turk(AMT)にて実際にクラウドソーシングを行うことでその有用性を確かめました。

結果、アノテーション率は97.9%、BBの正確性: 99.2%となりました(下記テーブル参照)。 また、コスト(時間)としては、提案手法(88.0s)は多数決(draw: 50.8×2+verifcation: 15.3 = 116.9s)よりも少なくとも32.8%改善しています。 これにより、不特定多数のワーカーのいるクラウドソーシングに対してマイクロタスク化の有用性を示しています。 また、この実験でのDrawing: 25.5s・Quality Verifiacation: 9.0s という数値が後々の論文において、人間がBBをアノテーションしたときの基準値、として活用されているようです。

論文中では、スパマー(何も考えずにクリックを行うワーカー)が一定数いることもクラウドソーシングの大変さを物語っていました。

We don’t need no bounding-boxes: Training object class detectors using only human verification (CVPR 2016)

Papadopoulos, Dim P., et al. "We don't need no bounding-boxes: Training object class detectors using only human verification. " Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.

機械が出してきたBBにアノテーターが回答するだけでアノテーションできるフレームワークの提案です。 Re-training - Re-localization - Human Verificationを繰り返すことで、人間がBBを書くことなく、精度を保つことができ、6-9倍のアノテーションコスト削減につながりました。 *ちなみにこの著者のVittorio Ferrari 氏はGoogle Researchでも活躍されており、最近話題のOpen Image Datasetにも関わってます。

f:id:contaconta:20190521140440p:plain:w350

ここでは下記3つのループを回すことで、人がBBをDrawすることなくYes/Noをつけると行く枠組みを行っています。

  • Verification by annotators
    • Yes/NoのみとYes/Part/Container/Mixed/Missed Verification(YPCMM)の2つのタスクを実験
  • Re-training object detectors
    • MILの枠組みで学習(CNNで特徴抽出 -> SVMで学習して初期化)
  • Re-localizing objects by search space reduction
    • 人が選択したBB(不正解など)を活用して探索範囲を削減

特に、Yes/Noをつける際に、Yes/Part/Container/Mixed/Missed Verification(YPCMM)という複数のカテゴリでつけることで、 ほとんどNoばっかりの場合よりも効率的に情報を収集、後の学習に活用することで効率化を図っています。(下記の2つの図を参照)

f:id:contaconta:20190521140622p:plain:w350
YPCMMの図
f:id:contaconta:20190521140647p:plain:w350
YPCMMの有用性

実験ではPASCAL VOC 2007を利用し、有用性を検証しています。

f:id:contaconta:20190521140759p:plain

費用対効果の実験を抜粋すると下記のような作業効率になっています。

  • Human verification
    • Y/N -> 1.6s / verification
    • YPCMM -> 2.4s /verification
  • Full supervision vs. verification
    • Draw: 33 - 53 hours (26-42s/image)
      • 51% mAP
    • Proposed: 5.8 hours
      • 45% mAP

このことから、同精度のモデルを作成するために必要なデータを集めた時に、6-9倍のアノテーションコスト削減につながるという結果を示しています。

Training object class detectors with click supervision (CVPR 2017)

Papadopoulos, Dim P., et al. "Training object class detectors with click supervision." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017.

先程の論文と同じ著者たちのものです。

物体の中心点(center-click annotation)をクリックするだけ、特定の物体検出がそこそこうまくいくようになる手法の提案になります。 具体的には、Center-clickのポイントをアノテーションしてもらい、その情報からBBの高さや幅を機械学習モデルを用いて予測してしまおう、というものです。 教師データをBounding Boxを利用した時と同等の精度で、 アノテーターの作業時間を9〜18倍改善しました。

f:id:contaconta:20190521141756p:plain:w350

実験では、PASCAL VOC 2007とMS-COCOのデータセットを用いて、Correct Localization (CorLoc) (物体候補が正しい位置にあるか)と、その情報から生成されたBBにて物体検出器を学習させたときの精度(mAP)を計測しています。

f:id:contaconta:20190521142539p:plain:w250
PASCAL VOC 2007の実験結果

f:id:contaconta:20190521142603p:plain:w250
MSCOCOの実験結果

結果として、同等の精度を達成するために、より少ない時間でデータを集められた、という結論を得られました。 (データを集め続ければ最終的には精度は抜かれてしまうのですが。。。笑)

かなり前に実は読んでいたので、詳しく知りたい方はこちら。

www.slideshare.net

Extreme clicking for efficient object annotation (CVPR 2017)

Papadopoulos, Dim P., et al. "Extreme clicking for efficient object annotation." Proceedings of the IEEE International Conference on Computer Vision. 2017.

何回同じ著者らの論文を紹介するんだよ

BBを直接描画するのではなく、物体の上下左右の4点をクリックするだけでアノテーションを行うExtreme Clickingという手法の提案しています。 最初の方に紹介していた、人間がBounding BoxをDrawする速度(Drawing: 25.5s・Quality Verifiacation: 9.0s = 34.5s)と比べて、この手法では7.0sでアノテーション可能であり(既存手法と比べてx5) Qualityは既存手法と同等を保つことができています。 また、Extreme Clickingのアノテーション情報を活用してGrabCutを行うと、BBの情報を活用してSegmentationを生成したときよりも精度良くできるということで、活用先も広がります。 シンプルな手法なのにContributionが多いところが好印象ですね!

f:id:contaconta:20190521143507p:plain:w350

実験では、おなじみのAMTを利用してPASCAL VOC2007/2012を再アノテーションした結果を比較しています。 比較では従来手法をベンチマークに(34.5s)する方法と、accuracy/efficiencyのトレードオフをみており、 対象として、BBがアルゴリズムで出されていてOK/NGを押す場合と比較しました。 実験に使ったBBは普通のBB(GT Boxes)とSegmentationでフィットしたBB(GT SegBoxes)の二種類になります。

PASCAL ground-truth boxes vs. extreme clicks.

真値でGT BoxesとGT SegBoxes比較したときとExtreme Clickで作った真値はほぼ同等となることを示しています。 またAnnotation Timeを比較すると、34.5s/obj vs 7.0s/obj ということで、5倍程度の高速化につながっています。

f:id:contaconta:20190521143810p:plain

Extreme clicking で生成されたBBはSegmentationタスクにも応用可能なので下記図のようなSegmentationを自動で生成するような応用が考えられます。

実験アルゴリズムでは、

  • Object Boundaryを見つけるためにEdge Detectorを適用
  • Boundaryを2点間のエッジ確率が最大になるように解く(図中マゼンタ色)
  • 内側のグリーンの領域に対するモルフォロジーでスケルトンを求める(図中ダークグリーン)
  • 最初にGraph-cutsを使って(1)を最小化したあとにGMMでピクセルラベリング

ということをやっているようです。

この辺のアルゴリズムは何でも良いので、Deep Learning使ったら精度でそうですね(というかそういうアルゴリズムがすでに提案されています)

f:id:contaconta:20190521144135p:plain

Learning Intelligent Dialogs for Bounding Box Annotation (CVPR 2018)

Konyushkova, Ksenia, et al. "Learning intelligent dialogs for bounding box annotation." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018.

[Papadopoulos, Dim P., et al. CVPR 2016] では、BBにY/N等のチェックを入れるだけでしたが、この手法ではBox verificationとManual Box Drawing両方を考慮したアノテーション方法の提案になります。 提案するBBがacceptされる確率とアノテーションにかかる時間をモデリング(IAD-Prob) or 強化学習の枠組みでコスト最適化(IAD-RL)の2つの解法を提案し、 Box verificationとManual Box Drawingを組み合わせることで単体よりもよりスピードアップしています。

f:id:contaconta:20190521151203p:plain:w350

最適なBoxの提案とManual Drawingのトレードオフを導出するために、 タスクにかかる時間をDrawing(D)とVerification(V)の2タイプに分類し、$V^k D$で1つのタスクが終わる、という形にモデル化します。 提案するBBがなるべくRejectされにくい&ダメそうであれば早めにManual Drawingさせたいという意図があります。 たとえば、$V^2 D (=V_1V_2D)$ でタスクが終わる例として、図枠内の例だと2つのBBが提示されており、 $V_2$ 地点でボートの枠が正確なので、$V_2$の時間でタスクは終了するはずです。

IAD by predicting probability of acceptance

BBがacceptされる確率 $p(b)$ と、Verification時間 $t_V$、Drawingをする時間$t_D$をモデル化てこれを確率的にモデル化したものがIAD-probになります。

*$p(b)$ は実際にはDetectorのスコアなどを使ってモデル化

f:id:contaconta:20190521152628p:plain:w350

また、前述のモデルの$p(b) (q(b))$ を強化学習の枠組みで求めるものがIAD-RLになります。

f:id:contaconta:20190521152644p:plain:w350

PASCAL VOC 2007 trainval datasetを利用し

  1. Weak detector(MIL), slow drawing(Drawing BB), varying quality
  2. Weak detector, fast drawing(Extreme Clicking), varying quality
  3. Strong detector(Train w/ PASCAL 2012 dataset ), fast drawing, varying quality

の3パターンを実験しています。(事前推論モデルはPascal2012で学習、2007で評価)

結果はヒューリスティックにVerification or Drawingを提示するよりも良くなってる(?)という感じです。

f:id:contaconta:20190521152901p:plain:w550

考え方や取り組みは面白いですね。

そろそろ、Bounding Boxの話も飽きてきたと思うのでSegmentationの話に入ろうかと思います。

Predicting Sufficient Annotation Strength for Interactive Foreground Segmentation (ICCV 2013)

ObjectのSegmentationは非常に高コストになります。 なるべく機械にアシストしてほしいわけですが、対象物体の形も様々で、機械的に簡単なものもあれば複雑なものもあります。

f:id:contaconta:20190521162607p:plain:w350

ですので、なるべく機械にとって簡単なものは人間が手を抜ける方法で、機械にとって難しいものは人間が手動でアノテーションしてあげたいわけです。 では、その機械にとって簡単なものと難しいものを判断して自動的に適切なアノテーション方法を提案してくれないか?というのがこの研究の問題設定になります。

f:id:contaconta:20190521162620p:plain:w350

Interactive Segmentationの際の入力方法について、時間的コストと精度のトレードオフを検討した論文です。 Visual separabilltyとforeground unsertaintyの2つの特徴量を抽出し、識別器によりDifficultyのスコアリングを学習させ、最適なアノテーションモード(Bounding Box/Sloppy Contour/Tight Polygon)を画像ごとに切り替えるシステムを提案しています。

Difficultyの算出にはcolorやedgeなどの17個の特徴量を用いており、それぞれのinput modalityに対してesay/hardを予測するモデルを作成しています。

4つのデータセットで実験を行い、Budget(総アノテーション時間) を固定したときに、10-73%の時間削減を達成しました。

f:id:contaconta:20190521162727p:plain:w350

f:id:contaconta:20190521162735p:plain:w350

ただ、カテゴリごとにばらつきはあるようです。

この辺ディープラーニングを使えば(ry

Microsoft COCO: Common Objects in Context (ECCV 2014)

みんな大好きMSCOCOの論文です。 データセットの論文だからといって侮ってはいけません、知見の塊です :) どんなデータをどういうふうに集めたか?が書いてあるのでぜひ大規模データを集めたい方は参考にしてみると良いのではないでしょうか?

MS COCOのデータセットは、シーン認識における3つのデータセットの課題を解決するために作られました。

  • non-iconicな視点での検出
    • 日常的なシーンでは、物体は背景になっていたりオクルージョンが発生したり、雑然としていて認識が難しい
    • シーン認識のための、より詳細な位置的レイアウト認識
  • オブジェクト間のコンテクスト理解
  • 正確な2D位置のローカライゼーション

上記のようなデータセットがなかったためリソースを掛けて作ったというありがたい話です。 //(GAFAとか言われるけど普通にMSのコントリビューションってすごいと思うんですけどね)

工夫ポイントは下記になります。

  • シーンベースのクエリを介して検索された画像と組み合わせて、オブジェクトのペアをクエリ
    • Dog + carなど複合的なクエリによりnon-iconicな画像を収集
  • 階層的ラベリングのアプローチによるタグ付
    • PASCAL VOCから1200の頻出単語を抽出
    • 4-8才の子供に家の中・外で見たものを言ってもらう(272)
    • 著者らが最後にCommon Objectかどうかを投票、上位カテゴリのバランスを考えながら高得点のものを選択(91)
  • 個別インスタンスに対するラベリングと検証、セグメンテーション

例えば、DogやCatが写っているデータセットはWebでキーワードを入れて出してきてもなかなか出ないので、どういう複雑なクエリーをかけるのかは非常に重要です。 また、キーワードもどれだけ日常的かというのは非常に重要な課題で、 Our dataset contains photos of 91 objects types that would be easily recognizable by a 4 year old とアブストに書かれている通り、子供が理解できる日常的なものが取り入れられています。 f:id:contaconta:20190521164357p:plain

アノテーションもタスクに分割してパイプラインを組んでいるところは参考になりますね。 f:id:contaconta:20190521164339p:plain

What’s the Point: Semantic Segmentation with Point Supervision (ECCV 2016)

Li Fei-Fei先生の研究グループの論文で、Point SupervisonとObjectnessをCNN組み込むことで、1クリックでSegmentationを行う研究です。 精度は、mIoU 43%(23.5s)を達成(Fullは58.3%(240s) )

f:id:contaconta:20190521164609p:plain:w350

To the best of our knowledge, we are the first to incorporate them directly into CNN training.

研究者なら一度は書きたい文言の一つですね笑

Image-level(ラベルのみ) / Point-Level / Squiggle(Objectにラフに線を引く)/ Fullという4つの手法を比較検討しています。

下記図がPoint-Level / Squiggleの例

f:id:contaconta:20190521164710p:plain:w350

詳細は割愛しますが、それぞれのアノテーション方法によるコスト(時間)は下記のとおりだと述べています。

  • Image-Level Supervision (20.0 sec/img)
  • Full Supervision (239.7 sec/img)
  • Point-Level Supervision (22.1 sec/img)
  • Squiggle-Level Supervision (34.9 sec/img)

PASCAL VOC 2012で実験しており、物体につき1点(1Point)とすべての物体に点を打つ(All Points)などを行っています。

mIoU 43%(23.5s)を達成(Fullは58.3%(240s) ) mIOUは、Image-level / Point-Level / Squiggle / Fullと比較したときに、30%(20s)/43%(23.5s)/49%(35.2s)/58.3%(240s) なので、 めっちゃ性能いいわけではないけど、時間は節約できるのかなーという印象です。

f:id:contaconta:20190521165159p:plain

Budget(時間)を固定し収集したデータで、認識モデルを学習させると1番いい結果になるとも主張しています。

f:id:contaconta:20190521165208p:plain

定性評価ではこのような結果になっています。

f:id:contaconta:20190521170815p:plain

Annotating object instances with a polygon RNN (CVPR 2017)

次はトロント大学の、Sanja Fidler先生の研究グループによる論文になります。

先程までは、Segmentation Mapをどう効率的に行うか?という話題でした。 しかしながら、MSCOCOのデータセットのInstance Segmentationや自動運転の車載カメラデータセット(Cityscapes)等にあるように、頂点(vertex, node)と頂点を結んだ線(edge)を結んでアノテーションをすることもあります。 この研究では、その頂点とエッジ情報をそのまま予測してしまおう、という取り組みを行っています。

f:id:contaconta:20190522172543p:plain:w350

具体的には、ボックス内の物体頂点予測+RNNによるインタラクティブに修正できるアルゴリズムの提案を行っています。 Cityscapesデータセットにおいて、78.4%のIoUの正確さを保ったまま、4.7倍のアノテーション速度を実現しています。

Polygon-RNNは、Vertexの初期位置を予測するCNNと、隣接した頂点情報を使い次の1点を予測するRNNから構成されており、CNN + RNNでend-to-endに学習することができます。これによりユーザーがObjectにBounding Boxを与えると、Polygonが自動的に生成され、ユーザーがVertexを再調整できるようになっています。

f:id:contaconta:20190522172603p:plain:w350

実験では、Cityscapes Datasetを用いて人間による修正なし・ありにて精度比較を行っており、どちらも良好な結果となっております。

f:id:contaconta:20190522172936p:plain

f:id:contaconta:20190522173317p:plain

詳しくは前読んだスライドがあるのでそちらを参照していただけると助かります。

www.slideshare.net

Efficient Interactive Annotation of Segmentation Datasets with Polygon-RNN++ (CVPR 2018)

またまたSanja Fidler先生の研究グループによる論文です。(この時にはNVIDIAのAI研究所も兼任しているみたいですね、有名な先生は良いところに吸収されちゃいますね)

この論文では、Polygon-RNNの課題を改善・ナウい技術により改良し高精度なアノテーションサポートを実現しています。

ざっくりまとめると下記の改善がなされています。

  • CNNアーキテクチャを変更
    • VGG -> ResNet
    • DecoderにRNN + Attention
  • Rainforcement Learningによる学習
  • Graph Neural Networkを導入
    • Vertexをアップサンプリングすることで、高解像度なアノテーションサポート

この改善により、PolygonRNNに比べて10% -16%精度向上 / 必要クリック数を50%削減することができています。

f:id:contaconta:20190522174010p:plain

強化学習による最適化では、生成されたVertexの内部領域とGTとのIoUを報酬として、強化学習の手法の一つである REINFORCEの枠組みを利用する(Self-Critical Training with Policy Gradients)を適用しています。

一般的には、生成されたグラフからIoUを求めて直接最適化するのは困難なため、Skip features/RNN State/Polygonを入力としてIoUを予測するEvaluator Networkを定義し、強化学習を適用可能にしました。

f:id:contaconta:20190522174548p:plain

GCNによるアップサンプリングでは、Polygon-RNNで課題であった解像度の問題を解決するために、VertexをアップサンプリングしてGCNで最適化(28x28 -> 112x112)することで高解像度なアノテーションを可能にしました。

f:id:contaconta:20190522174657p:plain

これにより、Automatic ModeではPolygon RNNと比べて10%以上精度改善し、 1オブジェクトあたり、5clicks以内で80%mIoUを達成できており、全手法を50%改善しています(Fig 6)

f:id:contaconta:20190522174733p:plain

定性評価で見た際にも、強化学習による最適化が効いており、アップサンプリングでよりマスクが鮮明になっていることがわかります。

f:id:contaconta:20190522174808p:plain

Fast Interactive Object Annotation with Curve-GCN (CVPR 2019 accepted)

またまたまたまたSanja Fidler先生の研究グループによる論文です。

こちらは前述の2つのPolygon系の論文の集大成のように思えます。

既存研究のようにVertexを生成 -> 最適化するのでなく、初期値Vertexを再帰的にGCNでFittingする形で構成することで、高速高精度なアノテーションを可能にしています。

Curve-GCNではRNNをやめてGCNを利用することで、爆速で識別することも可能となりました。 (Automatic modeで29.3ms, interactive modeで2.6msで動作、Polygon-RNN++ の10-100x高速に)

f:id:contaconta:20190522174937p:plain

Polygon/Spline-GCNでは、CNNで取り出した特徴と初期値をGCNに入れ、Relative location shift ($Δx$, $Δy$を出力)、これを再帰的に繰り返すことで位置を最適化しています。

また、InteractiveGCNというネットワークを別で定義・学習することでPolygon-RNNの課題であった1点変えるとすべて変更されてしまう、という課題を解決しています。

f:id:contaconta:20190522175408p:plain

実験結果をみると精度速度ともにかなり改善されていることがわかります。

f:id:contaconta:20190522175419p:plain

定性評価を見てみるとその鮮明さが分かると思います。

f:id:contaconta:20190522175426p:plain

感想

かなり駆け足でサーベイをしましたが、アノテーションする上でどういった点が課題になるのか?やどういう工夫をしているのか?実際どれ位の効率化が図れるのかなど、すごく知見満載で勉強になりました。 スパマーが一定するいるという話や、どう回避しているのかなど、普段使っているデータセットはこうやってできていたんだなーとしみじみ感じるところがあります。 今回の記事では、かなり手法や実験をかいつまんで書いてしまっているので、興味があるものがあったら詳しく読んでみると新しい知見が得られると思います。

データの精度を保つ ということと、 限られたBudetで学習モデルの精度を出すというのはトレードオフです。 どの手法も人がしっかりとデータにアノテーションを行い、大量に集めると精度は向上していくため、目的にあった手法を選んでいくことが重要だということも感じ取れます。データを集めることを工夫するのか、Weaklyにそれなりの精度を出すのか、戦略は目的とするタスク様々 最終的にはクリーンなデータを集めなければ行けないため、最初は簡単に集められる方法で大量にデータを集め、目処が立ったらきちんとワークフローを組み、お金を掛けてデータを集めていくことも戦略の一つなのではないでしょうか? しかしながら、これらの手法はなかなか複雑なプロセスで構成されていることも多く、実際システムを構築するとなるとそれなりの時間がかかるため、体系だってやらない限りは普通にデータを集めたほうが早いかも、ということも大いにありそうですね。

こういったアイディアを生かして自分たちのタスクに適用し、より早く・より簡単 に機械学習のモデルを社会実装していく、ということを挑戦していきたいですね!

アノテーションのツール作るの本当に大変(切実)

こういったツールは作ればなんとかなりますし、オープンソースでもいくつか公開されていたりするのですが、システムのクオリティーやマネジメント機能・アカウント管理機能や、自前でクラウドにデプロイしないといけないなど、意外と本気でデータを集めようとすると、ホスティングからデータ管理まで全部自前で行わなければならず、泣きそうになります。 しかもタスクごとにUIが変わるので、毎回フロントエンドを作る羽目に。。。 もしバックエンドにバグがあり、DBの整合性を後から合わせないといけない、とかアルバイトのアノテーターさんたちを雇ってお願いしようと思ったのに、いざ始めようとすると負荷に耐えられずシステムが止まってしまって本当にやばい!などなど、皆さん経験がおありのことでしょう。

そういう苦しみを6-7年ぐらい味わい、エンタープライズ版・SaaS型のアノテーションシステムがほしい!ないなら作ってしまえばいいじゃない!という試みで4年前から本格開発を始めたのが、ABEJA Platform Annotation なのです (ドンッ!

今のところはテンプレートが10種類以上! 更にこれからどんどん研究開発の成果が入っていくかもしれない??という期待感あふれるプロダクトなのです!!

->Template一覧

気になる方はぜひお問い合わせを! また、一緒に作ってみたい方も募集しています!(フロントはVue.js・バックはGo・機械学習部分はPython)

データ集めるの本当に大変(切実)

そんなあなたに、なんとアノテーション委託サービスがあるらしいです!

-> アノテーション委託サービス

かく言う私もABEJAの代行サービスを利用していますが、機械学習でどうデータが使われるのか理解のある人がPMについてくれて品質管理も協力してくれるため、個人的にもとても満足度が高いです。(あくまでも個人の感想です)

やっぱり機械学習は課金ゲーなんや!!!

宣伝

ABEJAではイケてるしヤバい人材募集中です!今回のブログのような研究や実装をしてみたい方・こういったサービスを開発してみたい方・インターンに興味がある方がいれば、ぜひご連絡くださいー www.wantedly.com

ABEJAの中の人と話ししたい!オフィス見学してみたいも随時受け付けておりますので、気軽にポチッとどうぞ↓↓

References

  • Su, Hao, Jia Deng, and Li Fei-Fei. "Crowdsourcing annotations for visual object detection." Workshops at the Twenty-Sixth AAAI Conference on Artificial Intelligence. 2012.
  • Papadopoulos, Dim P., et al. “We don’t need no bounding-boxes: Training object class detectors using only human verification.”Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.
  • Papadopoulos, Dim P., et al. "Training object class detectors with click supervision." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017.
  • Papadopoulos, Dim P., et al. "Extreme clicking for efficient object annotation." Proceedings of the IEEE International Conference on Computer Vision. 2017.
  • Konyushkova, Ksenia, et al. "Learning intelligent dialogs for bounding box annotation." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018.
  • Dutt Jain, Suyog, and Kristen Grauman. "Predicting sufficient annotation strength for interactive foreground segmentation." Proceedings of the IEEE International Conference on Computer Vision. 2013.
  • Lin, Tsung-Yi, et al. "Microsoft coco: Common objects in context." European conference on computer vision. Springer, Cham, 2014.
  • Bearman, Amy, et al. "What’s the point: Semantic segmentation with point supervision." European conference on computer vision. Springer, Cham, 2016.
  • Castrejon, Lluis, et al. "Annotating object instances with a polygon-rnn." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017.
  • Acuna, David, et al. "Efficient interactive annotation of segmentation datasets with polygon-rnn++." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018.
  • Ling, Huan, et al. "Fast Interactive Object Annotation with Curve-GCN." arXiv preprint arXiv:1903.06874 (2019).