2025. 1. 6. 16:52ㆍMemorizing/Jetson
ultralytics를 이용해서 아래의 명령어로 yolo11n 모델을 tensor RT에서 추론가능한 형식으로 export 했다.
yolo export model=yolo11n.pt imgsz=1080,1920 format=engine
그리고 C++, Python에서 아래와 같은 코드로 테스트를 해보았는데 동일한 에러가 발생했다.
void Yolo::loadEngine(std::string enginePath) {
// Deserialize model
std::cout << "Loading Yolo engine..." << "\n";
std::cout << "Engine path: " << enginePath << "\n";
runtime = createInferRuntime(*gLogger);
assert(runtime != nullptr);
std::ifstream engineStream(enginePath, std::ios::binary);
std::string engineCache("");
while (engineStream.peek() != EOF) {
std::stringstream buffer;
buffer << engineStream.rdbuf();
engineCache.append(buffer.str());
}
engineStream.close();
std::cout << "deserialize ready!! "<< "\n";
engine = runtime->deserializeCudaEngine(engineCache.data(), engineCache.size());
assert(engine != nullptr);
context = engine->createExecutionContext();
assert(context != nullptr);
std::cout << "Yolo engine loaded!" << "\n";
// initResource();
}
import tensorrt as trt
# 로거 초기화
TRT_LOGGER = trt.Logger(trt.Logger.WARNING)
# 런타임 생성
runtime = trt.Runtime(TRT_LOGGER)
# 엔진 파일 로드
with open("resources/yolo11n.engine", "rb") as f:
engine_data = f.read()
# 엔진 역직렬화
engine = runtime.deserialize_cuda_engine(engine_data)
# Safety Runtime 여부 확인
if hasattr(engine, 'is_safety'):
print("Safety Runtime 사용 여부:", engine.is_safety)
else:
print("Safety Runtime 정보를 확인할 수 없습니다.")
[01/06/2025-15:35:50] [E] [TRT] IRuntime::deserializeCudaEngine: Error Code 1: Serialization (Serialization assertion plan->header.magicTag == rt::kPLAN_MAGIC_TAG failed.Trying to load an engine created with incompatible serialization version. Check that the engine was not created using safety runtime, same OS was used and version compatibility parameters were set accordingly.)
그런데 yolo 프로그램을 통해서 export를 하고 predict하면 정상 동작하는데 NvInfer에서 추론하면 안되었고, NvInfer에서 만든 .engine 파일을 NvInfer을 통해서 추론하면 잘 되었다. 따라서 yolo에서 만든 engine 파일을 NvInfer에서 추론하면 안된다는 것인데.. 그렇게 되면 yolo의 engine 파일을 사용할 수가 없다.. 우선은 넘어가고 추후 해결 방안을 찾아보아야겠다.
'Memorizing > Jetson' 카테고리의 다른 글
Jetson에서 TVM 설치하기 (0) | 2025.01.12 |
---|---|
Jetson에서 Anaconda 설치하기 (0) | 2025.01.12 |
JetPack6에서 Deepsort 사용하기 (1) | 2025.01.04 |
JetPack6에서 Opencv 빌드하기 (0) | 2025.01.04 |
JetPack 5.1.1 에서 Jetpack 6 설치하기 (0) | 2025.01.03 |