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. 문제 해결

컴파일 문제:

라이브러리 로딩 문제:

패키지 종속성: