機械学習のための画像へのラベル付け
画像に境界ボックスを描画して、データベースに保存します
私たちは自動運転車企業であり、大量のイメージにラベルを付ける必要があります。イメージのURLのリストを取得するツールを作成します。これによって、エンドユーザーは各イメージに境界ボックスを描画して、結果をAPIに保存できるようになります。ツールの作成にかかる時間は、全部で5分です。
1. イメージのリストの取得
事前に読み込まれたデータを用意してあるので、最初にonboarding_db (readonly)
に切り替えましょう。
次に、すべてのイメージを取得するSQLクエリーを作成します。
select * from images order by id;
これをプレビューしましょう。問題がなければ、保存します。クエリー・エディターが以下のように表示されます。
では、右側からTable
をドラッグしましょう。最後のクエリーからデータが自動的に移入されます(この場合、イメージです)。Table
にラベルを付けるイメージの準備ができました。現在、アプリは以下のようになっています。
2. レンダリングおよびラベル付け
各イメージをタグ付け用キャンバスにレンダリングしましょう。右側からBoundingBox
コンポーネントをドラッグしましょう。これは下の方にあるので、上部の検索ボックスを使用すると便利です。
コンポーネントをドラッグして、現在テーブルで選択されているものを参照するようにimage_url
を変更しましょう。これは{{table1.selectedRow.data.image_url}}
になります。
現在、BoundingBox
には、Table
で選択されたイメージが表示されています。Table
で別の行を選択すると、BoundingBox
にはタグ付け用に別のイメージが表示されます。
現在、データに境界ボックスがなくても、データベースに存在すれば、境界ボックスを表示することが必要になることがあります。右側に「Initial Bounding Boxes」が表示されていますか。
これを{{JSON.parse(table1.selectedRow.data.labels)}}
に変更しましょう。境界ボックスがないので、何も起きませんが、後で使用できるようになります。
次のステップに進む前に、いくつかのボックスにラベルを付けてみましょう。BoundingBox
では、Commandキー(Macの場合)またはControlキー(Windows / Linuxの場合)を押すと、パンとズームを使用できるようになります。
3. ラベルの保存
ここで、タグをデータベースに保存する必要があります。Button
をドラッグして、これに「save tags」というラベルを付けましょう。アクションがrun a query
であることを確認し、新規クエリーを作成します。
データをPUT
する必要があるため、作成したクエリーのリソースをonboarding_api
に変更しましょう。次に、以下の値を入力してPUT
クエリーを作成します。id
が{{table1.selectedRow.data.id}}
の選択したイメージをPUT
します。
本文では、キーはlabels
になり、値は以下のようになります。
{{ JSON.stringify(boundingbox1.boundingBoxes) }}
クエリーが正常に実行された後、新しい境界ボックスを表示できるように、元のクエリーをリフレッシュする必要があります。下にスクロールして、「on success, trigger these queries」を、元のクエリー(query1
)を含めるように変更します。
これで終了です。クエリーを保存して実行しましょう。境界ボックスを描画して、Button
を押します。境界ボックスがデータベースに保存され、Table
がリフレッシュされます。境界ボックスができました。
BoundingBox
が存在する場合にボックスをレンダリングするように設定したので、Table
の別の行をクリックします。戻ると、境界ボックスがまだ表示されています。ボックスをいくつか追加できます。その後、saveを押すと、データが失われることはありません。
4. 実際の使用
このツールの本番での稼働の準備が完了しました。リンクを同僚に送信すると、同僚はこのツールを使用してすぐにデータをタグ付けできるようになります。必要であれば、承認ワークフローを作成し(管理者がラベル付けされたイメージを承認する必要があります)、ラベル付けされていないイメージや、特定のユーザー(current_user
変数を使ってみます)に割り当てられたイメージのみを取得するようにSQLクエリーを変更することもできます。
オペレーターに特定の権限を付与している場合、オペレーターはツールの編集やクエリーの変更を行うことはできません。実行できるのは、作成したツールを使用することだけです。
イメージにタグを付けるツールの作成にかかった時間は、全部で5分です。
Updated over 3 years ago