| English | 한국어 | 日本語 | Tiếng Việt |
Groovy サンプル
https://github.com/bobhyun/TS-ANPR/tree/main/examples/Groovy/anpr
1. エンジンファイルのコピー
[注意] このサンプルでは、他のサンプルと共有するためにエンジンファイルを examples/bin/ディレクトリに展開します。ただし、実際のデプロイメントでは、通常、アプリケーションの実行ファイルが配置されているディレクトリにエンジンファイルをコピーします。
- Windows x86 64 ビット用
エンジンファイルを
examples/bin/windows-x86_64ディレクトリに展開7z x tsanpr*-windows-x86_64.7z - Windows x86 32 ビット用
エンジンファイルを
examples/bin/windows-x86ディレクトリに展開7z x tsanpr*-windows-x86.7z - Linux x86 64 ビット用
エンジンファイルを
examples/bin/linux-x86_64ディレクトリに展開tar xvf tsanpr-linux-x86_64.tar.xz - Linux arm 64 ビット用
エンジンファイルを
examples/bin/linux-aarch64ディレクトリに展開tar xvf tsanpr-linux-aarch64.tar.xz - ディレクトリ構造
examples/ ├── bin/ │ ├── windows-x86_64/ # Windows (x86_64)用エンジン │ │ ├── tsanpr.dll │ │ ├── tsanpr-2505M.eon │ │ └── tshelper.exe │ ├── windows-x86/ # Windows (x86)用エンジン │ │ └── ... │ ├── linux-x86_64/ # Linux (x86_64)用エンジン │ │ └── ... │ └── linux-aarch64/ # Linux (arm64)用エンジン │ └── ... ├── img/ └── Groovy/ └── anpr/ # Groovyソースディレクトリ ├── anpr.groovy # メインサンプル └── TSANPR.groovy # TSANPR JNAラッパーモジュール
2. 前提条件
-
Java JDK 8 以上をインストール
Ubuntu/Debian:
sudo apt-get update sudo apt-get install -y openjdk-11-jdkCentOS/RHEL/Fedora:
sudo dnf install java-11-openjdk-develmacOS:
brew install openjdk@11Windows:
- https://adoptium.net/ または https://www.oracle.com/java/technologies/downloads/ からJDKをダウンロードしてインストール
-
Groovyをインストール
Ubuntu/Debian:
sudo apt-get install -y groovyCentOS/RHEL/Fedora:
sudo dnf install groovymacOS:
brew install groovyWindows:
- https://groovy.apache.org/download.html からダウンロード
- またはSDKMANを使用:
sdk install groovy
-
インストールの確認
java -version groovy --version
3. 実行方法
cd examples/Groovy/anpr
# ANPRサンプルを実行
groovy anpr.groovy
4. 機能
- readImageFile:
anpr_read_file()を使用して画像ファイルを直接処理 - readEncodedImage: ‘encoded’形式で
anpr_read_pixels()を使用してエンコードされた画像バイトを処理 - readPixelBuffer: Java AWT BufferedImageを使用して生のRGBピクセルデータを処理
- 動的ロード: TSANPRライブラリはJNAを介して実行時にロード
- クロスプラットフォーム: WindowsとLinux(x86_64、x86、ARM64)をサポート
- 自動依存関係: JNAはGrape(@Grabアノテーション)を介して自動ダウンロード
5. APIリファレンス
TSANPRモジュール
TSANPRクラスは以下のメソッドを提供します:
// TSANPRライブラリをロード
def tsanpr = new TSANPR(libraryPath)
// ANPRエンジンを初期化
String error = tsanpr.initialize(mode)
// 画像ファイルを読み取り処理
String result = tsanpr.readFile(imgFileName, outputFormat, options)
// ピクセルデータを直接処理
String result = tsanpr.readPixels(pixels, width, height, stride, pixelFormat, outputFormat, options)
認識オプション
| オプション | 説明 |
|---|---|
"" |
単一ナンバープレート認識(デフォルト) |
"vm" |
車両に取り付けられた複数のナンバープレートを認識 |
"vmb" |
複数のナンバープレートを認識(バイクを含む) |
"vms" |
サラウンド検出付きで認識 |
"dms" |
複数の周囲オブジェクト(車両)を検出 |
"dmsr" |
オブジェクトを検出してナンバープレートを認識 |
"dmsri<座標>" |
関心領域内で認識 |
出力形式
"text", "json", "yaml", "xml", "csv"
6. 実装に関する注意事項
このサンプルは動的ライブラリロードにJNA(Java Native Access)を使用します:
動的ライブラリロード:
- JNAはJNIボイラープレートなしでネイティブ共有ライブラリへの簡単なアクセスを提供
TSANPRLibraryインターフェースがネイティブ関数シグネチャを定義Native.load()メソッドを使用してライブラリをロード
Groovy機能:
- Grape(@Grabアノテーション)を使用した自動依存関係管理
- JNAライブラリは初回実行時に自動ダウンロード
- 柔軟な関数選択のためのクロージャとメソッド参照
ピクセルバッファ処理:
readPixelBuffer関数は、画像のロードとデコードにJavaのBufferedImageを使用します。生のピクセルデータを抽出して、JNAのMemoryクラスを使用して適切なピクセル形式でanpr_read_pixels()に渡します。
7. トラブルシューティング
Groovyが見つからない:
# Groovyのインストールを確認
groovy --version
# Ubuntu/Debian: Groovyをインストール
sudo apt-get install groovy
# またはSDKMANを使用
curl -s "https://get.sdkman.io" | bash
sdk install groovy
JNA依存関係の問題:
# GrapeがJNAを自動的にダウンロードするはず
# 問題が続く場合は、ネットワーク接続またはプロキシ設定を確認
# Grapeキャッシュをクリアして再試行
rm -rf ~/.groovy/grapes/net.java.dev.jna
groovy anpr.groovy
ライブラリロードの問題:
- TSANPRライブラリが予想される場所に存在することを確認
- Linuxでは必要に応じて
LD_LIBRARY_PATHを確認 - ライブラリアーキテクチャがJVMと一致することを確認(64ビット vs 32ビット)
ランタイムの問題:
- エンジンファイル(
.eon)がライブラリと同じディレクトリにあることを確認 tshelperを使用してライセンスがインストールされていることを確認