| English | 한국어 | 日本語 | Tiếng Việt |
COBOL サンプル
https://github.com/bobhyun/TS-ANPR/tree/main/examples/COBOL/anpr
このサンプルは、C ラッパーライブラリを使用して COBOL アプリケーションに TS-ANPR エンジンを統合する方法を示します。
アーキテクチャ
COBOL サンプルは階層化されたアーキテクチャを使用します:
COBOLアプリケーション (anpr.cbl)
↓
Cラッパーライブラリ (libtsanpr_cobol.so/.dll)
↓
TS-ANPRエンジン (libtsanpr.so/tsanpr.dll)
- COBOL アプリケーション: C ラッパーを呼び出すメインプログラム
- C ラッパー: TS-ANPR エンジンへの COBOL 対応インターフェースを提供
- TS-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) エンジンディレクトリ │ ├── windows-x86 # Windows (x86) エンジンディレクトリ │ ├── linux-x86_64 # Linux (x86_64) エンジンディレクトリ │ └── linux-aarch64 # Linux (arm64) エンジンディレクトリ ├── img # 画像ディレクトリ └── COBOL └── anpr # ソースディレクトリ ├── src │ ├── c # Cラッパーソースファイル │ │ ├── tsanpr_cobol.c │ │ └── tsanpr_cobol.h │ └── cobol # COBOLソースファイル │ └── anpr.cbl ├── bin # ビルド出力ディレクトリ ├── compile.bat # Windowsビルドスクリプト ├── compile.sh # Linuxビルドスクリプト ├── run.bat # Windows実行スクリプト ├── run.sh # Linux実行スクリプト └── Makefile # GNU Makeビルドファイル
2. ビルドと実行
2.1 Windows
-
GnuCOBOL のインストール
- GnuCOBOL for Windows をダウンロードしてインストール
- または SuperBOL 経由でインストール(推奨)
- GnuCOBOL bin ディレクトリを PATH に追加
-
GCC のインストール
- C ラッパーのビルドには GCC が必要です
- SuperBOL をインストールした場合、MinGW64 GCC が含まれています
- それ以外の場合は、MinGW-w64 をインストール
-
ビルド方法
compile.batまたは Make を使用:
make -
実行方法
run.batまたは Make を使用:
make run
2.2 Linux
-
依存関係のインストール
- Debian / Ubuntu
sudo apt-get update sudo apt-get install gnucobol gcc - Oracle Linux / RHEL / CentOS
sudo yum install gnucobol gcc - Fedora
sudo dnf install gnucobol gcc
- Debian / Ubuntu
-
ビルド方法
chmod +x compile.sh ./compile.shまたは Make を使用:
make -
実行方法
chmod +x run.sh ./run.shまたは Make を使用:
make run
COBOL プログラム (src/cobol/anpr.cbl)
以下の機能を実演します:
- 単一ナンバープレート認識
- 複数ナンバープレート認識 (vm)
- バイクを含む複数プレート (vmb)
- サラウンド検出 (vms)
- オブジェクト検出 (dms, dmsr)
- 関心領域(ROI)検出 (dmsri)
すべての機能は他の言語(C、Python など)のサンプルと同等です。
パフォーマンスに関する注意事項
- Windows: エンジン初期化は約 1 秒
- WSL/Linux on Windows filesystem (
/mnt/): ファイルシステム間のパフォーマンスオーバーヘッドにより、初期化に 5 ~ 7 秒かかる場合があります - Native Linux: エンジン初期化は約 1 ~ 2 秒
WSL でより良いパフォーマンスを得るには、プロジェクト全体を WSL ネイティブファイルシステム(例:~/)にコピーしてください。
トラブルシューティング
Linux: “libcob: error: module not found”
このエラーは、GnuCOBOL が C ラッパーライブラリを見つけられない場合に発生します。実行スクリプトは LD_PRELOAD を使用してライブラリを強制的にロードします。
解決方法: バイナリを直接実行せず、常に run.sh または make run を使用してください。
Windows: DLL not found エラー
以下を確認してください:
- コンパイル後に
bin/tsanpr_cobol.dllが存在するか COB_LIBRARY_PATHを設定するrun.batを通して実行しているか
ライセンス
このサンプルコードは MIT ライセンスの下で配布されています。