Coral Edge TPU
とUltralytics
の機能がすべて 1 か所に集約されています: edge-tpu-silva
。 Edge-tpu-silva は、 Coral TPU USB 依存関係のインストールを簡素化し、PyCoral および Ultralytics との互換性を確保する Python パッケージです。このパッケージは、さまざまなエッジ デバイス上でオブジェクトのdetection
、 segmentation
、およびclassification
機能を強化し、より高いFPS
(リアルタイム プロセッサ速度) を実現します。
Coral USB Accelerator Exclusivity
:
Edge-tpu-silva ライブラリは、Coral USB Accelerator とのシームレスな統合を目的として構築されています。この強力なハードウェア アクセラレータは、単なる要件ではなく戦略的な選択であり、ライブラリの優れたオブジェクトdetection
、 segmentation
、 classification
の可能性を最大限に引き出します。
Coral USB Accelerator を発見し、edge-tpu-silva ライブラリを使用してエッジ コンピューティングへのカスタマイズされたアプローチを体験してください。
パッケージedge-tpu-silva
python versions <3.10
でのみ圧縮可能です。 Python バージョンに互換性がない場合は、特定の Python バージョンをインストールします。
例:
Raspberry Pi
の場合、「pyenv を使用して特定の Python バージョンをインストールする方法については、こちら」をクリックしてください。
注: Python 3.6 ~ 3.9 が推奨されます。特定の Python バージョンをインストールする方法については、上のリンクをクリックしてください。
注: Raspberry Pi が最新であることを確認してください。これを行うには、ターミナルで以下のコマンドを実行します。
sudo apt-get updatesudo apt-get upgrade
ターミナルで以下の bash コードを実行して、 .venv
という名前の新しい仮想環境を作成してアクティブ化します。この環境をインストールする特定のディレクトリにいることを確認してください。
python3 -m venv .venv
source .venv/bin/activate
Edge-tpu-silvaをインストールするには、指定された Python 環境で次の pip コマンドを使用します。
pip install edge-tpu-silva
この表は、さまざまなデバイスおよびオペレーティング システムとシステムの互換性の概要を示しています。
互換性 | セットアップコマンド | |
---|---|---|
ラズベリーパイ5 | ✔ | silvatpu-linux-セットアップ |
ラズベリーパイ4 | ✔ | silvatpu-linux-セットアップ |
ラズベリーパイ3 | ✔ | silvatpu-linux-セットアップ |
ジェットソンナノ | ✔ | silvatpu-linux-セットアップ |
窓 | ||
macOS |
システムのセットアップ ツールを構成するには、手順 1 の完了後にターミナルで setup コマンドを実行します。
例: Raspberry Pi 5 を使用している場合は、ステップ 1 に続いてターミナルで以下のコマンドを実行します。
silvatpu-linux-setup
このコマンドは、Linux 用の標準 Edge TPU ランタイムをインストールし、クロック周波数を下げてデバイスを実行します。あるいは、最大速度を実現するバージョンをインストールすることもできますが、消費電力の増加とデバイスの発熱に注意してください。不明な場合は、安全のために周波数を下げてください。最大周波数ランタイムをインストールするには、setup コマンドの速度をmax
に指定します。
silvatpu-linux-setup --speed max
両方のバージョンのランタイムを同時にインストールすることはできませんが、上記のように代替ランタイムをインストールするだけで切り替えることができます。
注意: USB アクセラレータを最大クロック周波数で使用すると、危険なほど熱くなる可能性があります。火傷を防ぐため、手の届かないところに保管するか、クロック周波数を下げて動作させてください。
注:
Coral USB Accelerator
usb 3.0 port (for faster speed)
。 Coral USB Accelerator がインストールおよびセットアップ中に接続されていた場合は、proper configuration.
このライブラリを使用してオブジェクトのdetection
、 segmentation
、 classification
能力を発揮するには、Edge TPU 互換の .tflite モデルが必要です。これらのモデルはUltralytics
を使用してエクスポートし、edge-tpu-silva ライブラリとのシームレスな統合を確保する必要があります。
注: YOLO エクスポート中に指定された
imgsz
値は、プロセスのimgsz
定義するときに使用されたのと同じ値と一致する必要があることに注意してください。最適なパフォーマンスを得るには、これらの設定の一貫性が重要です。
小さいモデルは実行速度が速くなりますが、精度が低くなる可能性があります。一方、大きいモデルは実行速度は遅くなりますが、通常は精度が高くなります。 Edge-tpu-silva ライブラリを使用して、以下のモデルでエッジ コンピューティングの機能を探索します。
ダウンロードリンク | プロセス | ベースモデル | 画像 | オブジェクトクラス |
---|---|---|---|---|
ダウンロードモデル | 検出 | yolov8n.pt | 240 | ココ128 |
ダウンロードモデル | セグメンテーション | yolov8n-seg.pt | 240 | ココ128 |
ダウンロードモデル | 検出 | yolov8n.pt | 192 | ココ128 |
ダウンロードモデル | セグメンテーション | yolov8n-seg.pt | 192 | ココ128 |
ダウンロードモデル | 分類 | yolov8n-cls.pt | 640 | イメージネット |
ダウンロードモデル | 検出 | yolov9c.pt | 240 | ココ128 |
注: YOLOv9 モデル、特に YOLOv9c.pt バージョンはサイズが大きいため、TensorFlow Lite バージョンも非常に大きくなります。その結果、Edge TPU での処理速度は比較的遅くなります。
process_detection
関数を使用してオブジェクト検出を実行するには、次の例に従います。
from edge_tpu_silva import process_detection
# Run the object detection process
outs = process_detection ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for _ , _ in outs :
pass
process_detection
の実行: エントリ ポイント「silvatpu」の使用コマンド ラインから関数process_detection
を使用してオブジェクト検出を実行するには、使いやすいエントリ ポイントsilvatpu
使用できます。コマンドの例を次に示します。
silvatpu -p det -m path/to/model.tflite -i path/to/input/video.mp4 -z 192 -t 0.5 -v True
process_segmentation
関数を使用してオブジェクトのセグメンテーションを実行するには、次の例に従います。
from edge_tpu_silva import process_segmentation
# Run the object segmentation process
outs = process_segmentation ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for _ , _ in outs :
pass
process_segmentation
の実行: エントリ ポイント「silvatpu」の使用コマンド ラインからprocess_segmentation
関数を使用してオブジェクトのセグメンテーションを実行するには、使いやすいエントリ ポイントsilvatpu
を使用できます。コマンドの例を次に示します。
silvatpu -p seg -m path/to/model.tflite -i path/to/input/video.mp4 -z 192 -t 0.5 -v True
detection
、 segmentation
、 classification
入力パラメータパラメータ | 説明 | デフォルト値 |
---|---|---|
model_path | オブジェクト セグメンテーション モデルへのパス。 | - |
input_path | 処理する画像/ビデオのファイル パス (Camera(0|1|2))。 | - |
imgsz | 推論用の画像サイズを定義します。 | - |
threshold | 検出されたオブジェクトのしきい値。 | 0.4 |
verbose | 端末に出力を表示します。 | True |
show | セグメンテーションを使用してフレームを表示します。 | False |
classes | 予測を一連のクラス ID にフィルターします。 | None |
detection
、 segmentation
、 classification
機能 出力各プロセス関数は次の出力を生成します。
出力パラメータ | 説明 |
---|---|
objs_lst | フレーム内で検出されたオブジェクトのリスト。 |
fps | 処理されたフレームの 1 秒あたりのフレーム数 (fps)。 |
使用例:
from edge_tpu_silva import process_detection
# Run the object detection process
outs = process_detection ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for objs_lst , fps in outs :
# Access the output parameters as needed
print ( f"Processed frame with { len ( objs_lst ) } objects. FPS: { fps } " )
print ( "List of object predictions in frame:" )
print ( objs_lst )
貢献は大歓迎です!問題を見つけた場合、または改善のための提案がある場合は、問題を開くか、プル リクエストを送信してください。
Python パッケージ インデックス メンテナ (c) [2024] David Nyarko