Skip to the content.
English 한국어 日本語 Tiếng Việt

R サンプル

https://github.com/bobhyun/TS-ANPR/tree/main/examples/R/anpr

1. エンジンファイルのコピー

[注意] このサンプルでは、他のサンプルと共有するためにエンジンファイルをexamples/bin/ディレクトリに展開します。ただし、実際のデプロイでは、通常、アプリケーションの実行ファイルがあるディレクトリにエンジンファイルをコピーします。

2. 前提条件

  1. Rとシステム依存関係のインストール

    Ubuntu/Debian:

    sudo apt-get update
    # Rと開発ツールのインストール
    sudo apt-get install -y r-base r-base-dev
    # Rパッケージ用システムライブラリのインストール
    sudo apt-get install -y libcurl4-openssl-dev libmagick++-dev
    

    CentOS/RHEL/Fedora:

    # CentOS/RHEL 8+ / Fedora
    sudo dnf install -y R R-devel
    sudo dnf install -y libcurl-devel ImageMagick-c++-devel
    
    # CentOS/RHEL 7
    sudo yum install -y R R-devel
    sudo yum install -y libcurl-devel ImageMagick-c++-devel
    

    Windows:

    • https://cran.r-project.org/bin/windows/base/ からRをダウンロード
    • https://cran.r-project.org/bin/windows/Rtools/ からRtoolsをインストール
  2. 必要なRパッケージのインストール

    # R6パッケージのインストール(必須)
    sudo Rscript -e 'install.packages("R6", repos="https://cloud.r-project.org")'
    
    # magickパッケージのインストール(オプション、readPixelBuffer用)
    sudo Rscript -e 'install.packages("magick", repos="https://cloud.r-project.org")'
    

    注意: WindowsではsudoなしでRscriptコマンドを実行してください。

  3. Cラッパーのコンパイル

    Linux/macOS:

    cd examples/R/anpr
    R CMD SHLIB src/tsanpr_r.c -o src/tsanpr_r.so
    

    Windows:

    cd examples/R/anpr
    R CMD SHLIB src/tsanpr_r.c -o src/tsanpr_r.dll
    

3. 実行方法

cd examples/R/anpr

# ANPRサンプルを実行
Rscript anpr.R

Rコンソールから:

setwd("examples/R/anpr")
source("anpr.R")

インタラクティブモード:

# TSANPRラッパーをロード
source("tsanpr.R")

# TSANPRを初期化
engine_path <- "../../bin/linux-x86_64/libtsanpr.so"  # プラットフォームに合わせて調整
tsanpr <- TSANPR$new(engine_path)

# エンジンを初期化
tsanpr$anpr_initialize("text;country=KR")

# 画像を処理
result <- tsanpr$anpr_read_file("../../img/KR/licensePlate.jpg", "text", "")
print(result)

4. 機能

5. APIリファレンス

TSANPRクラス

TSANPR R6クラスは以下のメソッドを提供します:

TSANPR <- R6Class("TSANPR",
  public = list(
    initialize = function(library_path),
    anpr_initialize = function(mode),
    anpr_read_file = function(img_file_name, output_format, options),
    anpr_read_pixels = function(pixels, width, height, stride, pixel_format, output_format, options),
    is_loaded = function()
  )
)

認識オプション

オプション 説明
"" 単一ナンバープレート認識(デフォルト)
"vm" 車両に取り付けられた複数のナンバープレートを認識
"vmb" 複数のナンバープレートを認識(バイクを含む)
"vms" サラウンド検出付きで認識
"dms" 複数の周囲オブジェクト(車両)を検出
"dmsr" オブジェクトを検出してナンバープレートを認識
"dmsri<coords>" 関心領域内で認識

出力形式

"text", "json", "yaml", "xml", "csv"

6. 実装に関する注意事項

このサンプルでは、RのFFIとTSANPRライブラリを接続するためにCラッパー(src/tsanpr_r.c)を使用しています:

動的ライブラリロード:

R統合:

RコードはコンパイルされたCラッパーをロードし、CラッパーはTSANPRライブラリ関数を動的にロードして呼び出します。

7. トラブルシューティング

コンパイルの問題:

ライブラリロードの問題:

パッケージの依存関係: