見出し画像

FastLabelのプロダクト開発部門Annotaion Unitをご紹介します!

こんにちは!FastLabelの開発統括の植野(@ueno_k0108)です。
初めましての方は是非、私の入社エントリもご一読ください!

今回は、プロダクト開発の中枢となっている部門、「Annotation Unit」についてご紹介させていただければと思います。

💡こんな方におすすめ!
・そもそもアノテーションって何?
・FastLabelのプロダクトがどういうところを目指しているのか
・AIに興味はあるものの難しそうで自分につとまるかどうか不安

上記の疑問点や不安にもお答えできるように、わかりやすい形でご紹介していきたいと思います!


アノテーションとは?

「アノテーション」についてご存知ない方も多いと思うので、簡単にそちらからご紹介させていただきます。

その前に、「そもそもAIってどういったところで活用されているの?」という身近な事例からお話した方がイメージがつきやすいと思いますので、まずはそこから。

例えばコロナ禍以降、皆さん外にお出かけした際に、飲食店やスーパー・百貨店の入り口で以下のような機械を利用したことがあるのではないでしょうか?

そう、カメラ付きの検温機です。

こちら(ものによっては異なると思いますが大抵の場合)顔を近づけると、顔の部分が四角形で囲まれて体温が表示されますよね。

この「顔を近づけると顔の部分が四角形で囲まれる」という動き、裏側でAIが「今カメラに写っている画像の中で、ここからここまでが顔だ」と判断しています。

ではなぜAIが「ここからここまでが人の顔だ」と判断できるのか?というお話になりますが、これはAIに対して顔のデータを学習させているからです。

この学習をさせるためのデータを作る作業がアノテーションとなります。

上記は簡単な例ですが、このように画像に対して四角形で顔の部分を指定し、AIに「画像内のこの部分に顔があります」というのを教え込むためのデータを作ります。

さまざまな画像に対してこのようにアノテーションしたデータをたくさん用意してAIに学習させていく、というのが一般的な流れです。

AIの精度を高めるためには、アノテーションデータを如何に品質が高く、多く用意できるかが重要になっております。このアノテーション作業がAI開発のプロセスの8割を占めているといっても過言ではありません。

このあたりのもっと詳しい話についてはCEO上田による以下の記事をご覧いただければさらに理解が深まると思いますので是非ご覧ください!

Annotation Unitのミッション

さて、アノテーションとは何か?というところと、その重要性について簡単にご紹介させていただいた上で、ここからはアノテーション作業を効率化するプロダクトを開発している「Annotation Unit」が一体何をしているのか、何を目指しているのかといったについてご紹介させていただきます。

実際にどういったことをやっているのか、のご説明の前にAnnotation Unit が掲げているミッションをご紹介させていただきます。

我々が達成するべきミッションは大きく以下の2つと定義しています。

💡ミッション
・アノテーションを効率よく品質高く行えるようにする
・非エンジニアでもアノテーションが行えるようにする

アノテーションを効率よく品質高く行えるようにする

先ほどアノテーションの紹介でも少し触れた通り、AI開発においてはアノテーションが重要かつプロセスの中でも大きな割合を占めています。

そのアノテーションに時間がかかってしまったり、出来てたしても結果としてのアノテーションデータの品質がよろしくないのでは意味がありません。

そのためこのアノテーション作業をいかに効率よく品質高く行える機能を提供するのか?が1つ目の重要なポイントになってきます。

非エンジニアでもアノテーションが行えるようにする

また先ほど紹介させていただいた顔のアノテーションについてはシンプルな事例でしたが、実際のアノテーションではもっと複雑な画像に対してアノテーションをすることがあります。

たとえば画像の中で顔が見切れていた場合に見切れている部分までだけでもアノテーションするべきなのか、それとも全くしないべきなのか。。?

たくさんの人間が写っている画像の中で、後ろの方にいる人間は顔として認識できるかどうか微妙なラインだが、これはアノテーションするべきなのかどうか。。?

エンジニアであれば判断はつくかもしれませんが、非エンジニアではなかなか判断がつかない、、こういったケースがいくつも出てきます。

またツール自体の使い勝手についても、エンジニアであれば様々なツールを使っていたりするので多少複雑なツールでも使いこなせるケースが多いですが、非エンジニアの場合はそうはいきません。

これらの問題を解消して、非エンジニアでもアノテーションが行えるようにする、これが2つ目のポイントになってきます。

これらのミッションを達成するためにどういったことをしているのか、どういったものを開発しているのか?といった部分をこれからご紹介させていただきます。

Annotation Unitは何をやっているか

アノテーションを効率よく品質高く行える機能の提供

まず1つ目に「アノテーションを効率よく品質高く行える」という部分に対して取り組んでいることをご紹介します。

先ほどまで「顔を四角形で囲む」といったような簡単なアノテーションを紹介させていただきましたが、実際の現場ではもっと細かなアノテーションを行うケースが多くあります。

例えば、上記のようなトマトの画像に対して「トマトの部分だけを囲む(塗りつぶす)」といったようなアノテーションです。

これを実際にやろうとすると、トマトの輪郭に沿ってピクセル単位で正確なアノテーションを行う必要がありますが。。

1つだけならともかくこれを何個も、さらに何画像分もやろうとするととてつもない時間がかかってしまいます。

これを効率よく行うためにFastLabelのアノテーションツールではスマートアノテーションという機能を提供しています。詳しく知られたい方は、下記ドキュメントをご参照ください!

こちらの機能を利用していただければ、あらかじめ画像がいくつかの領域に分割され、その分割した領域を選択することでアノテーションが行える=1から自身で輪郭をなぞってアノテーションする必要がない。というものになっています。

他にも、動画に対してアノテーションする際には動画のフレーム単位でアノテーションを行う必要があるため、普通に作業していたら1つの動画に対してアノテーションを行うだけでも大変な作業です。

仮に動画が2,000フレームの動画だとしたら、2,000枚の画像をアノテーションするのと同じ作業と思っていただくとイメージがつきやすいかと思います。

このような作業の大変さに対してもFastLabelの動画アノテーションではフレーム補完という機能を提供することで効率の良いアノテーションをしていただけるようにしています。

これは、アノテーションの開始点となるフレームと、終了点となるフレームに対してアノテーションを手動で行えば、その間のフレームに関しては開始・終了から予測したアノテーションを自動で付与する、という機能です。

これにより全てのフレームに対して手作業を行うのではなく、必要な部分だけを修正していただければ良い、といった形になっております。詳細は下記ドキュメントをご参照ください。

他にも、アノテーション作業中に画像のコントラストや明度を変えて作業できる機能など、紹介しだすとキリがなくなってしまうので一例としてここまでにしておこうと思いますが、大変なアノテーションの作業をいかに効率よく、品質良く行えるようにするか?というところにピンを止めた機能を常に考え、提供することを心がけております。

非エンジニアでも迷わずアノテーション出来るように

また、非エンジニアがアノテーション作業を行う場合においては、先に紹介した事例のように「ここはアノテーションするべきなのか、しないべきなのか?」といった形で迷うことが出てくることもあると思います。

そこに対してFastLabelでは コラボレーション という機能を提供させていただいております。

アノテーター(実際にアノテーションをする人)とレビュアー(確認をする人)を分けた上で、同じものを見ながら実際のアノテーション画面上でコメントしたり、確認ができるようになっています。

また、実際のアノテーションを開始する前に オンボーディング という機能をご利用いただくことで、作業前にサンプルとしてのアノテーション作業を行なってもらい、それに対する正解率を確認できる機能も提供しています。

他にも非エンジニアでも簡単にご利用いただけるよう、単純なコピー&ペーストによるアノテーションの複製やホットキーによる作業の効率化、シンプルな画面デザインなどを提供するようにしています。

実際、EVERSTEEL株式会社様では、現場の作業者の方にお使い頂いており、アノテーションを全く知らなかった方でも作業がしやすいツールとして、ご好評頂いております。

様々なユースケースに対応

ここまで画像や動画といったアノテーションを一例として紹介させていただきましたが、それだけではなく

  • テキスト

  • 医療画像

  • 3D

  • 音声

  • ドキュメント

といった様々なユースケースにも対応しています。

あらゆる非構造データを取り扱うことができるプロダクトを目指して、日々開発に取り組んでいます。

3次元点群データ(3D)アノテーション

AI開発は未経験でもOK

次にこれらのミッションに取り組んでいるのはどういったメンバーなのか、をご紹介したいと思います。

現在のAnnotation Unitはマネージャーの私1名と、エンジニア2名の合計3人体制です。

ここで主に紹介させていただきたいのは、単なるチームの構成ではなく

この中にAI開発を経験してきたものは1人もいない!!

という点です。

1名は新卒として入社してくれており、私を含めた残りの2名は今までWebアプリケーションの開発経験はありますが、AI開発の経験は全くありませんでした。

もちろん機能を考える際に「どういったところが困っているのか」「どういった作業をしているのか」といった部分は把握し・考える必要がありますが、それは都度キャッチアップしていきます。

我々のミッションを達成するために重要なのはAI開発のことを熟知しているか、今まで経験があるか(これももちろんあったほうがより良いですが)よりも

・お客様の課題をどうすれば解決できるかひたすら考え抜く力
・それを実現するための技術力、キャッチアップ力

これらのほうが重要だと考えています。

先に触れた通り、Annotation UnitにはAI開発を経験したメンバーはおりませんが、新卒メンバーも、中途メンバーも含めて、これらの力を発揮しながら、日々機能を開発・提供することができています。

エンジニア面接などで弊社の事業内容を説明させていただくと「自分にはAI開発の経験がないから。。」と尻込みをされる方も一定数おられるのですが実際にはAI開発の経験がなかったメンバーがすごく活躍しています!

新卒エンジニアの爲西さん(写真手前)もバリバリ開発しています!

少しでも興味のある方は是非一緒にやってみませんか?

さいごに

Annotation Unitでは他にもこれからの展望として

  • マルチモーダル(動画+センサーデータ等 複合したアノテーション)に対応

  • 医療系データへのさらなる対応

  • アノテーターの質を高めるための機能(アノテーター評価など)

  • デスクトップ機能拡充(Cloud版ではセキュリティ要件が満たせないお客様に対して、Cloudと同等の機能をデスクトップツールでご提供)

など、適応範囲を拡充、追加していく予定です。

先ほども申し上げた通り、これらに対する経験がなくても弊社では活躍しているメンバーがたくさんいます!

以下は少し前に私がTwitterで返信として書いたものなんですが。。

今、AIという領域は間違いなくトレンドになっていて、そこにエンジニアとして携わりたいと考えたときに、FastLabelよりも入りやすいところはなかなかないのでは。。?と、自身の体験を含めて本当に思っています。

なので、AI開発は未経験だけどこれからやっていきたい!という想いを持っている方は是非お気軽にDM(@ueno_k0108)ください!

カジュアル面談もやっていますので、どちらかでも構いません!

AI開発の雛形とも言えるアノテーションの領域を一緒にどんどん盛り上げていきましょう!!