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

Ví dụ R

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

1. Sao chép các tệp Engine

[Lưu ý] Trong ví dụ này, tệp engine được giải nén vào thư mục examples/bin/ để chia sẻ với các ví dụ khác. Tuy nhiên, khi triển khai thực tế, tệp engine thường được sao chép vào thư mục chứa tệp thực thi của ứng dụng.

2. Yêu cầu trước

  1. Cài đặt R và các phụ thuộc hệ thống

    Ubuntu/Debian:

    sudo apt-get update
    # Cài đặt R và công cụ phát triển
    sudo apt-get install -y r-base r-base-dev
    # Cài đặt thư viện hệ thống cho các gói 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:

    • Tải R từ https://cran.r-project.org/bin/windows/base/
    • Cài đặt Rtools từ https://cran.r-project.org/bin/windows/Rtools/
  2. Cài đặt các gói R cần thiết

    # Cài đặt gói R6 (bắt buộc)
    sudo Rscript -e 'install.packages("R6", repos="https://cloud.r-project.org")'
    
    # Cài đặt gói magick (tùy chọn, cho readPixelBuffer)
    sudo Rscript -e 'install.packages("magick", repos="https://cloud.r-project.org")'
    

    Lưu ý: Trên Windows, chạy lệnh Rscript mà không có sudo.

  3. Biên dịch C wrapper

    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. Cách chạy

cd examples/R/anpr

# Chạy ví dụ ANPR
Rscript anpr.R

Từ R console:

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

Chế độ tương tác:

# Tải wrapper TSANPR
source("tsanpr.R")

# Khởi tạo TSANPR
engine_path <- "../../bin/linux-x86_64/libtsanpr.so"  # Điều chỉnh cho nền tảng của bạn
tsanpr <- TSANPR$new(engine_path)

# Khởi tạo engine
tsanpr$anpr_initialize("text;country=KR")

# Xử lý hình ảnh
result <- tsanpr$anpr_read_file("../../img/KR/licensePlate.jpg", "text", "")
print(result)

4. Tính năng

5. Tham khảo API

Lớp TSANPR

Lớp R6 TSANPR cung cấp các phương thức sau:

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()
  )
)

Tùy chọn nhận dạng

Tùy chọn Mô tả
"" Nhận dạng biển số đơn (mặc định)
"vm" Nhận dạng nhiều biển số gắn trên xe
"vmb" Nhận dạng nhiều biển số (bao gồm xe máy)
"vms" Nhận dạng với phát hiện xung quanh
"dms" Phát hiện nhiều đối tượng xung quanh (xe)
"dmsr" Phát hiện đối tượng và nhận dạng biển số
"dmsri<coords>" Nhận dạng trong Vùng quan tâm

Định dạng đầu ra

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

6. Ghi chú triển khai

Ví dụ này sử dụng C wrapper (src/tsanpr_r.c) để kết nối FFI của R với thư viện TSANPR:

Tải thư viện động:

Tích hợp R:

Mã R tải C wrapper đã biên dịch, C wrapper lần lượt tải động và gọi các hàm thư viện TSANPR.

7. Xử lý sự cố

Vấn đề biên dịch:

Vấn đề tải thư viện:

Phụ thuộc gói: