해당 내용은 Dream_AI Drone Competition 교육자료입니다.
해당 비디오 링크 : https://www.youtube.com/watch?v=3bUenKiJRBk&list=PLB0ppFIbaAURxxt0eFvTUf70M7W0lVs8h
1. 인공지능 딥러닝 구현순서
1) Framework와 Network 모델선정
예) Framework : Tensorflow, Caffe, Mxnet | Network : MobileNet, AlexNet
2) Dataset 준비
- 이미 학습에 사용된 Dataset(CIFAR, Mnist, ImageNet)에 추가학습(전이학습)
- 직접 Dataset 구축
3) 학습&테스트
- Deep learning Framework 선택
- 학습/최적화를 통해 최적의 Network 구성하고, weights를 구합니다.
4) 추론
- Deep learning Framework 선택
- 입력된 데이터가 훈련된 오브젝트 중 어디에 가까운 지를 분석합니다.
2. 컴퓨터 비전 알고리즘
-
Object detection : 사진 내의 객체를 찾아내는 것, 객체를 바운딩 박스로 표현하는 것을 말합니다.
-
Image Recognition : Image 자체의 값을 해당 CNN에 포함된 종류로 분류하는 것을 말합니다.
-
Wide&Deep learning Recommendation System : 추천시스템
-
Adversarial Networks(DCGAN) : 이미지 재생성, 딥페이크에 활용되고 있습니다.
3. 인공지능 딥러닝 세부사항
1) Data Pre-processing
-
Decode : 복호화작업
-
Resize : CNN에 들어갈 Input size로 바꾸는 작업
-
color conversion : 색 변환
2) Object detection : 바운딩 박스가 필요합니다. 바운딩 박스는 xml로 저장하여 레이블링 해줘야합니다.
-
보통 레이블링은 icrawler를 활용합니다.
-
Accuracy VS Speed tradeoff
-
R-CNN 계열 - R-CNN, Fast R-CNN, Faster R-CNN
-
class와 bounding box를 따로 계산해서 시간이 오래걸리지만 정확도가 높습니다.
-
-
Single-shot 계열 - SSD, YOLO
-
class와 bounding box를 한번에 계산해서 속도는 빠르지만 상대적으로 정확도는 낮습니다.
-
-
-
추론
-
학습을 통해 만들어진 모델 가져오기 - 가중치 file
ex) *.prototxt, *.caffemodel -
OpenVINO에서 Python을 이용해서 모델을 컨버젼합니다. (*.xml, *.bin파일 생성)
-
Interface를 위한 코딩
-
입력 데이터 위치 확인하기
-
사용할 Hardware(CPU,GPU,Movidius) 선택
-
입력 데이터를 가공하기
-
Decode, Resize, Color conversion
-
-
인퍼런스 OpenVINO - Image classification, Object detection
-
데이터 출력 : Boxing, Encoding
-
-
실행 - 결과물
-
4. 기타 추가 정리 내용
-
용어
-
인코딩(encoding)은 정보의 형태나 형식을 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태나 형식으로 변환하는 처리 혹은 그 처리 방식을 말한다.
-
디코딩(decoding)은 압축된 파일을 풀어 원래의 픽셀 데이터로 변환하는 것
-
변환(컨버젼)
-
인퍼런스는 추정, 추론 등의 의미를 가집니다.
-
-
R-CNN 프로세스
-
Image 입력을 받습니다.
-
Selective search 알고리즘에 의해 regional proposal output 약 2000개를 추출합니다.
추출한 regional proposal output을 모두 동일 input size로 만들어 주기 위해 Warp 과정을 거쳐 사이즈를 똑같이 맞춰줍니다.
-
Warp된 이미지(2000개)를 각각 CNN에 넣어 feature vector를 추출합니다.
-
Classification을 진행합니다.
-
Bounding Box가 정확하지 않을 수도 있다는 점을 보완하기 위하여 예측된 Bounding Box의 좌표를 원래의 정답과 비교하여 Regression합니다.
-
계속 학습한 뒤 좌표와 이미지의 클래스를 예측합니다.
-
-
Selective Search는 초기 후보 영역을 다양한 크기와 비율로 생성합니다. 그 후 모든 영역에 대한 유사도를 계산한 후 유사한 영역과 근접한 Pixel을 Merge, Grouping 해나갑니다.
-
Warp : 왜곡하다라는 뜻을 가지고 있습니다. 보정이나 찌그러진 이미지를 정규화하기 위한 처리방법 또는 기법을 말합니다.