Closed kmurase-pfr closed 5 months ago
この変更は、オブジェクト検出機能を扱うための新しいメッセージタイプ、応答メッセージタイプ、およびRPCメソッドをkachaka-api.proto
に追加すること、依存関係にonnxruntime
を追加すること、オブジェクト検出を使用した推論と特徴保存のためのPythonノートブックの導入、そしてAPIの非同期および同期メソッドの拡張を含む、オブジェクト検出機能の取得と活用を目的とした一連の変更です。
ファイルパス | 変更概要 |
---|---|
protos/kachaka-api.proto |
新しいメッセージタイプObjectDetectionFeatures 、応答メッセージタイプGetObjectDetectionFeaturesResponse 、およびRPCメソッドGetObjectDetectionFeatures を追加 |
python/demos/requirements.txt |
依存関係にonnxruntime==1.17.0 を追加 |
python/demos/run_custom_object_detection.ipynb python/demos/save_object_detection_features.ipynb |
オブジェクト検出を使用した推論と特徴保存のためのPythonノートブックを導入 |
python/kachaka_api/aio/__init__.py python/kachaka_api/aio/base.py python/kachaka_api/base.py |
オブジェクト検出機能の取得と関連コールバックのための機能を追加 |
python/kachaka_api/generated/kachaka_api_pb2.pyi python/kachaka_api/generated/kachaka_api_pb2_grpc.py |
スロット属性の変更、新しいメソッドGetObjectDetectionFeatures の追加と対応する機能の調整 |
python/kachaka_api/util/vision.py |
ユーザー定義ラベルを使用して画像上にバウンディングボックスを描画する新しい関数get_bbox_drawn_image_with_user_labels を追加 |
python/demos/requirements.txt (1)
`17-17`: `onnxruntime==1.17.0` の追加は、転移学習機能の強化に必要な依存関係であるため、問題ありません。python/kachaka_api/util/vision.py (1)
`39-66`: `get_bbox_drawn_image_with_user_labels` 関数の追加は、ユーザー定義のラベルを持つバウンディングボックスを画像に描画する機能を提供し、問題ありません。python/demos/save_object_detection_features.ipynb (1)
`1-91`: `save_object_detection_features.ipynb` ノートブックは、転移学習用のオブジェクト検出機能を保存する方法を示すためのものであり、問題ありません。python/demos/run_custom_object_detection.ipynb (1)
`1-93`: `run_custom_object_detection.ipynb` ノートブックは、カスタムオブジェクト検出モデルを使用して推論を実行する方法を示すためのものであり、問題ありません。python/kachaka_api/aio/__init__.py (1)
`124-133`: `object_detection_features` 属性と関連するコールバック機能の追加は、転移学習機能の強化に必要な機能であり、問題ありません。protos/kachaka-api.proto (3)
`227-231`: `ObjectDetectionFeatures` メッセージタイプの追加は、オブジェクト検出機能の取得と処理をサポートするために必要です。 --- `328-331`: `GetObjectDetectionFeaturesResponse` メッセージタイプの追加は、オブジェクト検出機能の応答形式を定義するために適切です。 --- `555-555`: `GetObjectDetectionFeatures` RPCメソッドの追加は、オブジェクト検出機能の効率的な通信とデータ交換を可能にします。python/kachaka_api/base.py (1)
`67-74`: `get_object_detection_features` メソッドの追加は、オブジェクト検出機能を取得するために必要な機能であり、問題ありません。python/kachaka_api/generated/kachaka_api_pb2.py (3)
`84-85`: `ObjectDetectionFeatures`メッセージタイプが正しく追加されています。これは、転移学習機能をサポートするためのPRの目的に沿っています。 --- `120-121`: `GetObjectDetectionFeaturesResponse`メッセージタイプが正しく追加されています。これは、オブジェクト検出機能の取得をサポートするAPIの拡張を示しています。 --- `24-33`: 追加された列挙型(`LocationType`, `ShelfAppearance`, `ShelfSpeedMode`, `ObjectLabel`, `CommandState`)は、APIの転移学習とオブジェクト検出タスクのサポートを強化するPRの目的に沿っています。定義は正しく、一般的なprotobufの列挙型定義と一致しています。python/kachaka_api/generated/kachaka_api_pb2.pyi (2)
`10-10`: `__slots__`属性を空のリストから空のタプルに変更することで、メモリ効率が向上します。この変更は、クラスインスタンスのメモリ使用量を削減するための一般的なPythonの最適化手法です。 --- `662-817`: > :memo: **NOTE** > This review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [16-853] すべてのクラスで`__slots__`属性が空のリストから空のタプルに変更されています。これは、クラスインスタンスのメモリ使用量を削減し、パフォーマンスを向上させるための効果的な方法です。この変更により、特に大量のインスタンスが生成される場合にメモリ効率が向上します。python/kachaka_api/generated/kachaka_api_pb2_grpc.py (2)
`43-47`: 新しいメソッド`GetObjectDetectionFeatures`がクライアントスタブに正しく追加されました。この変更により、クライアントはオブジェクト検出機能を非同期に取得できるようになります。 --- `459-463`: `GetObjectDetectionFeatures`メソッドがサーバー登録関数に正しく追加されました。これにより、サーバーはこの新しいRPCメソッドを適切に処理できるようになります。
カチャカソフトウェア v2.7.8 からサポートされる転移学習用のAPI公開と、サンプルを公開します。