noogoolgga.log
로그인
noogoolgga.log
로그인
딥러닝과 OpenCV DNN 모듈
강형우
·
2022년 12월 13일
팔로우
0
DNN
DeepLearning
opencv
딥러닝
0
딥러닝
목록 보기
1/4
딥러닝 개요
딥러닝
딥러닝이란 ?
2000년대 부터 사용되고 있는 심층 신경망(deep neural network)의 또 다른 이름
머신 러닝(ML) vs. 딥러닝(DL)
컴퓨터 비전 분야에서의 딥러닝 활용
신경망 기초: 퍼셉트론
퍼셉트론(perceptron)
다수의 입력으로부터 가중합을 계산하고, 이를 이용하여 하나의 출력을 만들어내는 구조
(단층) 퍼셉트론 vs 다층 퍼셉트론 vs 심층 신경망
다층 퍼셉트론(MLP, Multi-Layer Perceptron): 은닉층(Hidden layer)이 한 개 이상
심층 신경망(DNN, Deep Neural Network): 은닉층(Hidden layer)이 두 개 이상
컨볼루션 신경망(CNN: Convolutional Neural Network)
영상 인식 등의 딥러닝 분야에 특화된 네트워크 구조
일반적 구성: 컨볼루션(convolution) + 풀링(pooling) +... + 완전 연결 레이어(FC)
학습된 컨볼루션 레이어 필터의 예
컨볼루션 신경망의 예
필기체 숫자 인식을 위한 LeNet-5
CNN원조
28x28 필기체 숫자 영상을 32x32로 확장하여 만든 입력 데이터를 사용
전체 7개 레이어: Conv-Pool-Conv-Pool-FC-FC-FC
AlexNet
2012년 ILSVRC(ImageNet Large Scale Visual Recognition Challenge) 영상 인식 분야 1위
1000개의 카테고리, 120만개의 훈련 영상, 15만개의 테스트 영상
Top-5 Error: 15.4% (다른 컴퓨터 비전 기반 방법들 > 25%)
하드웨어의 제약으로 2개의 GPU 사용
VGG16
2014년 ILSVRC(ImageNet Large Scale Visual Recognition Competition) 영상 인식 분야 2위
Top-5 Error: 7.3%
컨볼루션 레이어에서 3x3 필터만 사용
총 16개 레이어로 구성
GoogLeNet
2014년 ILSVRC(ImageNet Large Scale Visual Recognition Competition) 영상 인식 분야 1위
Top-5 Error: 6.7%(사람: 5.1%)
Inception 모듈
총 22개 레이어로 구성
OpenCV DNN 모듈 사용법
OpenCV DNN 모듈 개요
OpenCV DNN(Deep Neural Network) 모듈
미리 학습된 딥러닝 모델을 이용하여 실행(foward pass, inference)하는 기능
학습은 지원하지 않음
OpenCV 3.3버전부터 기본 기능으로 제공
OpenCV 4.3버전부터 GPU(CUDA) 지원(소스 코드 직접 빌드 필요)
참고:
https://github.com/opencv/opencv/wiki/Deep-Learning-in-OpenCV
지원하는 딥러닝 프레임워크
Tested networks
Net 클래스와 주요 함수 사용법
Net 클래스 정의
네트워크 불러오기
네트워크 입력 블롭(blob) 만들기
네트워크 입력 설정하기
네트워크 순방향 실행(추론)
강형우
팔로우
다음 포스트
딥러닝 학습과 모델 파일 사용하기
0개의 댓글
댓글 작성