더북(TheBook)

16.1.2 OpenCV DNN 모듈

딥러닝은 데이터를 다루는 많은 분야에서 기존의 머신 러닝을 상당 부분 대체하고 있습니다. 음성 인식, 번역, 통계 분석 등의 다양한 분야에서 딥러닝이 활용되고 있지만 그중에서도 컴퓨터 비전은 딥러닝이 가장 활발하게 적용되고 발전을 거듭하고 있는 분야입니다. OpenCV는 이러한 트렌드를 제대로 이해하고 OpenCV 3.1 버전부터 딥러닝을 활용할 수 있는 dnn(deep neural network) 모듈을 새롭게 제공하기 시작했습니다.

OpenCV dnn 모듈은 이미 만들어진 네트워크에서 순방향 실행을 위한 용도로 설계되었습니다. 즉, 딥러닝 학습은 기존의 유명한 카페(Caffe), 텐서플로(TensorFlow) 등의 다른 딥러닝 프레임워크에서 진행하고, 학습된 모델을 불러와서 실행할 때에는 dnn 모듈을 사용하는 방식입니다.4 많은 딥러닝 프레임워크가 파이썬 언어를 사용하고 있지만, OpenCV dnn 모듈은 C/C++ 환경에서도 동작할 수 있기 때문에 프로그램 이식성이 높다는 장점이 있습니다. dnn 모듈은 OpenCV 3.1에서는 추가 모듈 형태로 지원되었고, OpenCV 3.3 버전부터 기본 모듈에 포함되었습니다.

OpenCV dnn 모듈에서 지원하는 딥러닝 프레임워크는 다음과 같습니다.

카페(Caffe) http://caffe.berkeleyvision.org/

텐서플로(TensorFlow) https://www.tensorflow.org/

토치(Torch) http://torch.ch/

다크넷(Darknet) https://pjreddie.com/darknet/

DLDT https://github.com/opencv/dldt

ONNX https://onnx.ai/

 

4 dnn 모듈은 이미 구성된 네트워크에 레이어를 추가하거나 수정하는 기능도 제공됩니다만, 이 책에서는 다루지 않습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.