더북(TheBook)

즉, OpenCV dnn 모듈은 카페, 텐서플로, 토치 등의 프레임워크에서 학습된 모델과 ONNX(Open Neural Network Exchange) 파일 형식으로 저장된 모델을 불러와 실행할 수 있습니다.

OpenCV dnn 모듈은 이미 널리 사용되고 있는 딥러닝 네트워크 구성을 지원하고, 최근에 새롭게 개발되고 있는 딥러닝 네트워크도 지속적으로 추가 지원하고 있습니다. 영상 인식과 관련된 AlexNet, GoogLeNet, VGG, ResNet, SqueezeNet, DenseNet, ShuffleNet, MobileNet, Darknet 등의 네트워크가 OpenCV에서 동작됨이 확인되었습니다. 객체 검출과 관련해서는 VGG-SSD, MobileNet-SSD, Faster-RCNN, R-FCN, OpenCV face detector, Mask-RCNN, EAST, YOLOv2, tiny YOLO, YOLOv3 등의 모델을 사용할 수 있습니다. 이외에도 사람의 포즈를 인식하는 OpenPose, 흑백 영상에 자동으로 색상을 입히는 Colorization, 사람 얼굴 인식을 위한 OpenFace 등의 모델도 OpenCV dnn 모듈에서 사용할 수 있습니다.

dnn 모듈에서 딥러닝 네트워크는 cv::dnn::Net 클래스를 이용하여 표현합니다. Net 클래스는 dnn 모듈에 포함되어 있고, cv::dnn 네임스페이스 안에 정의되어 있습니다.5 Net 클래스는 다양한 레이어로 구성된 네트워크 구조를 표현하고, 네트워크에서 특정 입력에 대한 순방향 실행을 지원합니다. 간략화한 Net 클래스 정의를 코드 16-1에 나타냈습니다.

 

5 이 장에서 나오는 Net 클래스와 다수의 dnn 관련 함수는 cv::dnn 네임스페이스에 정의되어 있습니다. 다만 이 책에서는 표기를 간략하게 하기 위해 많은 경우 본문에서 cv::dnn 네임스페이스 표기를 생략하겠습니다.

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