レビュー
レビューとは、アノテーションが十分な品質であるか、改善が必要かどうかを決定する判断です。効率的に改善できるように、判断を行った人またはシステムは、考えられるエラーやミスを詳しく示すフィードバックデータを提供できます。これらの概念がプラットフォームでどのように使用されているかについては、フィードバックに関するユーザードキュメントを参照してください。なお、ユーザードキュメントではレビューとフィードバックを扱うための利用可能なすべての機能とワークフローを説明していますが、この統合で利用できる機能は、以下に示すとおり現在のところ一部に限られています。
レビューの投稿
現在の統合機能では、納品済みアノテーションと、レビューアクセス権を持つフェーズの予備アノテーションに対してのみレビューを投稿できます。アノテーションは、アノテーションのダウンロードアノテーションのダウンロードで取得したアノテーションのメタデータ(およびファイル名)に含まれるOpenLabel UUIDを使用して識別されます。
レビューを投稿する際、APIはフィードバックデータと、品質が十分と判断されたかどうかを示すブール値acceptedを必要とします。またAPIは、改善をどのように行うかを指定する列挙型workflowも必要とします。拒否されたレビューでワークフローがcorrectの場合、修正タスクが1つだけ作成され、その後のレビュータスクは作成されません。完了した修正タスクが新しい納品済みアノテーションになります。
レビューの投稿が成功すると、レビューを識別するUUIDが返されます。このUUIDを使用して、投稿したフィードバックデータを取得できます。また、選択したworkflowに従ってタスクが作成されます。プロジェクトの設定によっては、プロジェクトマネージャーとの調整が必要になる場合があります。
以下はkognic-ioの例です:
def run(client: KognicIOClient, open_label_uuid: str, error_type_id: str) -> ReviewResponse:
review = ReviewRequest(
feedback_items=[
AddFeedbackItem(
sensor_id="<the id/name of the sensor>",
frame_id="<the id of the frame>", # in our OpenLabel file this is frame.frame_properties.external_id
object_id="<the id of the object>",
pin=AddFeedbackItemPin(x=0.0, y=0.0, z=0.0),
description="I post this via the Python client",
suggested_property=AddFeedbackItemSuggestedProperty(
property_name="propertyName", suggested_property_value="suggestedPropertyValue"
),
error_type_id=error_type_id,
metadata={"key": "value"},
)
],
workflow=ReviewWorkflowEnum.CORRECT,
accepted=False,
)
return client.review.create_review(open_label_uuid=open_label_uuid, body=review)
if __name__ == "__main__":
setup_logging(level="DEBUG")
client = KognicIOClient()
open_label_uuid = "<the uuid of the OpenLABEL>"
error_type_id = "<the id of the error type>"
annotation = run(client, open_label_uuid, error_type_id)部分レビューの投稿
部分レビューとは、オプションのフィードバックデータを含む未完了のレビューです。この機能は、以下のいずれか(または複数)の目的で使用できます:
- 手動または機械生成のフィードバックによるレビュータスクの準備
- レビュー対象の選択
部分レビューが投稿されると、アノテーションのレビュータスクが作成されます。このレビュータスクには、部分レビューの投稿時にフィードバックが提供されていれば、そのフィードバックが含まれます。レビュアーは、同意しないフィードバックを削除または無効化したり、独自のフィードバックを追加したりできます。現在、部分レビューのワークフローを上書きすることはできません。デフォルトのワークフローはレビューループで、拒否されたレビュータスクの修正の後に新しいレビュータスクが作成されます。レビュアーがレビューを承認した場合、アノテーションは再度納品され、レビュアーが加えた変更があれば反映されます。
フィードバック
フィードバック項目は、アノテーション内の注目すべき点を詳しく示します。そのために以下の情報を追加でき、追加した情報はアノテーターがアノテーションを改善する際に参照できます:
- エラータイプID - 利用可能なエラータイプのリストから選択されたUUID(KognicIOClient().review.get_error_types()を使用して取得)
- 説明 - 改善すべき点を説明する文字列
- センサーID - エラーが発生した概要センサーの識別子
- フレームID - エラーが発生した概要フレームの識別子。OpenLABELファイルではframe.frame_properties.external_idに該当します。
- オブジェクトID - この特定のフィードバックの対象となる特定のオブジェクトの識別子
- ピン - 特定の関心領域へのポインタ。欠落しているオブジェクトを示すために使用できます(ピンには必須のx座標とy座標、およびオプションのz座標が含まれ、画像内の座標単位はピクセルであり、3Dデータではセンサー固有です)。
- 提案されたプロパティ - 不適切なプロパティ値が検出された場合、このフィールドを使用してより適切な値を示すことができます。
- メタデータ - このフィールドには任意のデータを含めることができ、フィードバックを生成したシステムのバージョンを識別するために使用できます。