본문 바로가기
NVIDIA Jeston/Yocto Linux

Yocto linux 에 opencv dnn 모듈 추가하기

by makepluscode 2022. 3. 6.
반응형

Jetson Xavier NX 의 Yocto linux 에 opencv dnn 모듈 추가

opencv dnn 모듈추가

opencv dnn 테스트 환경

  • Jetson Xavier NX
  • Custom OS : Yocto (dunfell)
  • opencv 4.1

dnn.hpp 파일 없음 에러

opencv 어플리케이션 개발하는 과정에서, dnn 모듈을 사용하려면 dnn.hpp 를 include 해야한다. dunfell 버전의 meta-openembedded 에 포함되어 있는 opencv 4.1 버전을 기준으로 해당 dnn 모듈은 포함되어 있지 않다.

https://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/opencv/opencv_4.1.0.bb?h=dunfell 

 

opencv_4.1.0.bb\opencv\recipes-support\meta-oe - meta-openembedded - Collection of OpenEmbedded layers

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 8

cgit.openembedded.org

따라서, dnn.hpp 를 include 하는 과정에서 다음과 같은 build error 가 발생한다.

[  5%] Building CXX object CMakeFiles/detector.dir/modules/calibrator.cpp.o
In file included from /home/nvidia/work/yolo-tensorrt/modules/ds_image.h:28,
                 from /home/nvidia/work/yolo-tensorrt/modules/calibrator.h:29,
                 from /home/nvidia/work/yolo-tensorrt/modules/calibrator.cpp:26:
/home/nvidia/work/yolo-tensorrt/modules/trt_utils.h:34:10: fatal error: opencv2/dnn/dnn.hpp: No such file or directory
 #include <opencv2/dnn/dnn.hpp>
          ^~~~~~~~~~~~~~~~~~~~~

opencv dnn module build error 해결방법

opencv_4.1.0.bb 를 수정하여 dnn module 을 추가할 수 있지만, 아래와 같이 opencv_4.%.bbappend 를 overlay 해서 해결하는 방법을 추천한다.

PACKAGECONFIG_append_<DISTRO> = " dnn"

참고자료

Opencv's Deep Neural Networks (dnn module)

https://docs.opencv.org/4.x/d2/d58/tutorial_table_of_content_dnn.html

 

OpenCV: Deep Neural Networks (dnn module)

 

docs.opencv.org

반응형

'NVIDIA Jeston > Yocto Linux' 카테고리의 다른 글

Jetson NX 용 Yocto Linux 빌드하기  (0) 2022.02.26