opencv armv8 porting

Cute_Security15·2025년 3월 28일
0

linux dev

목록 보기
12/14

상황

체적 알고리즘 동작이 잘 되는지 궁금할 때가 있다.

보통 imshow() 로 동작을 확인하는데,
NT98692(armv8) 보드 sdk 에서 제공하는 opencv 는 gtk support 가 disable 되어 있다.

목적

체적 알고리즘이 사용하고 있는 opencv 를 gtk support 활성화된 opencv 로 교체한다.

확인한 내용

전략

경험적으로 다음 내용들이 필요함을 느꼈다.

1) opencv 빌드시 필요한 의존성 (arm64 apt package) 설치가 필요하다

2) opencv 빌드시 configure 수정이 필요하다

3) opencv 빌드시 일부 유틸리티(pkg-config) 나 라이브러리(TIFF, PNG) 를
못찾는 경우를 대비해 cmake 스크립트를 편하게 디버깅 할수 있는 환경이 필요하다


따라서 다음의 전략을 수립하였다.

1) arm64 package 를 설치할때는 conan install 을 사용한다.

  • arm64 apt repository 를 추가하고
  • conan requirement 에 opencv 를 넣은 후
  • -c tools.system.package_manager:mode=install 옵션을 넣어서 install 수행
  • conan 이 알아서 arm64 패키지를 설치해주므로 환경 셋업에 용이하다

2) conan source 를 사용한다.

  • opencv 빌드를 위해 aarch64 컴파일러를 설치하고, opencv 소스를 clone 받아온다
  • 소스가 conan center 가 아닌, 로컬에 있으므로 configure 수정이 용이하다
  • ( conanfile.py 에서 tc.variables 를 사용하면, configure 스위치 ON/OFF 가 가능 )

3) 마찬가지로 conan source 구조일때 cmake 스크립트 디버깅이 용이하다.

  • 소스를 conan install 로 받을땐, 매번 build 디렉토리가 새로 생기므로 (.conan2)
  • cmake 스크립트 디버깅이 어렵지만, clone 받은 소스를 사용할때는
  • 직접 message STATUS 를 찍어가면서, 어떤 상황인지 파악하거나 문제재현 및 대응이 용이하다

git

ubuntu22 에서 빌드
https://gitlab.com/feather973/opencv_armv8_porting

동작확인

NT98692 보드에는 gtk 가 설치되어 있지 않으므로 jetson orin 에서 imshow 를 확인한다.

profile
관심분야 : Filesystem, Data structure, user/kernel IPC

1개의 댓글

aptitude install libgtk2.0-dev:arm64
apt-get install --reinstall pkg-config

답글 달기

관련 채용 정보