비전검사 기초 및 실무/비전검사 심화편

[비전검사 심화편 11편] TensorRT 적용 – AI 비전검사의 추론 속도를 극대화하는 실무 가이드

eins-solutionlab 2026. 7. 17. 07:25

AI 비전검사 시스템에서 가장 중요한 요소 중 하나는 정확도만큼이나 빠른 처리 속도입니다. 아무리 뛰어난 딥러닝 모델이라도 생산라인의 속도를 따라가지 못하면 실제 현장에서는 사용할 수 없습니다.

이때 가장 많이 활용되는 기술이 바로 TensorRT입니다.

이번 글에서는 TensorRT의 개념부터 ONNX 변환, OpenCvSharp 연동, 실제 산업 현장 적용 사례, 실패 사례와 해결 방법까지 실무 중심으로 자세히 알아보겠습니다.

TensorRT란?

TensorRT는 NVIDIA에서 개발한 딥러닝 추론(Inference) 최적화 라이브러리​입니다.

딥러닝 모델을 학습시키는 프로그램이 아니라, 이미 학습이 완료된 AI 모델을 GPU에서 가장 빠르게 실행하도록 최적화하는 것이 목적입니다.

산업용 머신비전에서는 다음과 같은 AI 모델에서 많이 사용됩니다.

  • YOLO 객체 검출
  • OCR 문자 인식
  • 불량품 분류(Classification)
  • 세그멘테이션(Segmentation)
  • 이상 탐지(Anomaly Detection)

최근에는 스마트팩토리와 산업용 AI 검사 시스템 대부분이 TensorRT 기반으로 운영되고 있습니다.

TensorRT가 필요한 이유

생산라인에서는 보통 다음과 같은 조건을 만족해야 합니다.

  • 초당 수십~수백 장의 이미지 검사
  • 검사 지연 최소화
  • GPU 자원 효율 향상
  • PLC와 실시간 통신
  • 24시간 연속 운영

일반적인 PyTorch 추론은 정확하지만 속도가 부족한 경우가 많습니다.

예를 들어 동일한 YOLO 모델이라도 다음과 같은 차이가 발생할 수 있습니다.

실행 방식 평균 추론 시간
PyTorch 약 45~60ms
ONNX Runtime 약 20~30ms
TensorRT(FP16) 약 8~15ms

즉, 동일한 AI 모델이라도 TensorRT를 적용하면 3~6배 이상 성능이 향상되는 경우가 많습니다.

TensorRT 최적화 방식

TensorRT는 여러 가지 최적화를 자동으로 수행합니다.

  • Layer Fusion
  • Kernel 최적화
  • Memory 최적화
  • FP16 연산
  • INT8 양자화
  • CUDA 최적화

이러한 과정을 통해 GPU 자원을 효율적으로 활용하여 지연시간(Latency)을 크게 줄여줍니다.

TensorRT 적용 과정

일반적인 개발 순서는 다음과 같습니다.

  1. PyTorch에서 AI 모델 학습
  2. ONNX 모델 변환
  3. TensorRT Engine 생성
  4. OpenCvSharp 또는 C++ 프로그램과 연동
  5. 카메라 검사 수행
  6. PLC 결과 전송

가장 많이 사용하는 데이터 흐름입니다.

PyTorch → ONNX → TensorRT Engine → OpenCvSharp → PLC

ONNX를 TensorRT Engine으로 변환하기

TensorRT는 일반적으로 ONNX 모델을 입력으로 사용합니다.

대표적으로 사용하는 명령은 다음과 같습니다.

trtexec --onnx=model.onnx --saveEngine=model.engine --fp16

생성된 Engine 파일은 실행 시 매우 빠른 속도로 추론을 수행합니다.

실제 현장에서는 배포 전에 Engine 파일을 생성하여 사용하는 경우가 대부분입니다.

FP32, FP16, INT8 차이

방식 속도 정확도 권장 여부
FP32 보통 가장 높음 연구용
FP16 매우 빠름 거의 동일 ★ 실무 권장
INT8 가장 빠름 Calibration 필요 대량 생산라인

대부분의 산업용 AI 검사에서는 FP16이 가장 많이 사용됩니다.

OpenCvSharp와 TensorRT 연동

OpenCvSharp는 영상 처리에 특화되어 있고 TensorRT는 AI 추론을 담당합니다.

가장 일반적인 구조는 다음과 같습니다.

  • Camera
  • OpenCvSharp(Mat)
  • TensorRT 추론
  • 불량 판정
  • PLC 전송

영상 처리와 AI 추론을 분리하면 유지보수도 쉬워지고 성능도 향상됩니다.

TensorRT 적용 효과

실제 산업 현장에서는 다음과 같은 성능 향상이 자주 나타납니다.

PCB 검사

기존

  • 25FPS

TensorRT 적용

  • 85FPS

생산량 증가와 검사 누락 감소 효과를 얻었습니다.

자동차 부품 검사

기존

GPU 2대 운영

TensorRT 적용 후

GPU 1대로 운영 가능

GPU 비용 절감과 전력 사용량 감소 효과를 얻었습니다.

식품 포장 검사

기존

AI 추론 속도가 느려 PLC Timeout 발생

TensorRT 적용

응답 시간이 크게 줄어 생산라인이 안정적으로 운영되었습니다.

TensorRT 적용 시 주의사항

1. ONNX 호환성 확인

TensorRT가 지원하지 않는 연산자는 Engine 생성이 실패할 수 있습니다.

항상 ONNX 모델이 정상적으로 실행되는지 먼저 확인하는 것이 좋습니다.

2. GPU 메모리 확인

모델이 너무 크거나 입력 이미지 해상도가 높으면 메모리 부족 문제가 발생할 수 있습니다.

3. Batch Size 설정

산업용 비전검사는 대부분 실시간 검사이므로

Batch = 1

설정을 사용하는 경우가 가장 많습니다.

4. FP16 지원 여부

RTX 시리즈와 Jetson 제품군은 FP16을 지원합니다.

GPU 사양을 미리 확인하는 것이 좋습니다.

실무 팁

  • ONNX 모델을 먼저 충분히 검증한 후 TensorRT를 적용합니다.
  • 추론 시간뿐 아니라 이미지 전처리와 후처리 시간도 함께 측정합니다.
  • GPU가 변경되면 Engine 파일을 다시 생성하는 것이 안전합니다.
  • 실제 생산 데이터를 이용해 성능을 검증해야 합니다.

실패 사례

사례 1. Engine 생성 실패

원인

  • 지원하지 않는 ONNX Operator
  • TensorRT 버전 불일치

해결 방법

  • ONNX Opset 변경
  • TensorRT 최신 버전 적용
  • Plugin Layer 사용

사례 2. 정확도 감소

원인

INT8 양자화를 충분히 검증하지 않고 적용

해결 방법

  • FP16부터 적용
  • Calibration 데이터 확대
  • 생산 데이터 비교 테스트

사례 3. TensorRT를 적용했는데 속도가 그대로

원인

병목이 AI가 아니라

  • 카메라
  • 이미지 저장
  • OpenCV 처리
  • PLC 통신

이었던 경우

해결 방법

각 단계의 처리 시간을 측정하여 병목 구간을 먼저 분석해야 합니다.

사례 4. 개발 PC에서는 정상인데 현장에서 오류 발생

원인

  • CUDA 버전 차이
  • TensorRT 버전 차이
  • GPU 아키텍처 차이

해결 방법

현장 환경과 동일한 버전으로 테스트 후 Engine 파일을 다시 생성합니다.

실무 체크리스트

  • CUDA 설치 확인
  • TensorRT 설치 확인
  • ONNX 정상 동작 확인
  • FP16 적용 여부 확인
  • GPU 메모리 확인
  • Batch Size 확인
  • FPS 측정
  • 추론 시간 측정
  • PLC 응답시간 확인
  • 생산라인 테스트 완료

자주 묻는 질문(FAQ)

Q1. TensorRT는 AI 모델을 학습시키는 프로그램인가요?

아닙니다. TensorRT는 학습이 완료된 모델의 추론 속도를 최적화하는 라이브러리입니다.

Q2. TensorRT를 사용하려면 NVIDIA GPU가 반드시 필요한가요?

네. TensorRT는 CUDA 기반이므로 NVIDIA GPU 환경에서 사용됩니다.

Q3. FP16을 사용하면 정확도가 많이 떨어지나요?

대부분의 산업용 AI 검사에서는 FP32와 거의 동일한 정확도를 유지하면서 속도는 크게 향상됩니다.

Q4. INT8은 언제 사용하는 것이 좋나요?

대량 생산라인처럼 매우 높은 처리 속도가 필요한 환경에서 사용합니다. 다만 Calibration과 정확도 검증이 반드시 필요합니다.

Q5. TensorRT만 적용하면 검사 속도가 무조건 빨라지나요?

아닙니다. 카메라 입력, 전처리, 후처리, PLC 통신이 병목이라면 전체 검사 속도는 크게 개선되지 않을 수 있습니다.

Q6. OpenCvSharp와 함께 사용할 수 있나요?

물론입니다. OpenCvSharp는 영상 획득과 전처리를 담당하고 TensorRT는 AI 추론을 담당하는 구성이 가장 일반적입니다.

마무리

TensorRT는 AI 비전검사 시스템에서 실시간 성능을 확보하기 위한 핵심 기술입니다. 특히 생산라인에서는 몇 밀리초의 차이가 생산성과 직결되므로 추론 최적화는 선택이 아닌 필수입니다.

다만 TensorRT만으로 모든 문제가 해결되는 것은 아닙니다. 카메라, 영상 전처리, 후처리, PLC 통신까지 포함한 전체 시스템을 함께 최적화해야 최고의 성능을 얻을 수 있습니다.

AI 기반 머신비전 프로젝트를 준비하고 있다면 TensorRT를 적극적으로 활용해 생산성과 안정성을 모두 확보해 보시기 바랍니다.