본문 바로가기

A·I24

[object detection] YOLO에서 YOLOv2로의 변경점 2019-11-12-yolov2 YOLO 모델의 원리 글에 이어서 YOLO 모델에서 YOLOv2로의 큰 변화 내용을 살펴보겠다. 일단 YOLO에 비해 정확도와 속도 향상이 이루어졌는데 향상하는데 영향을 미친 요소를 살펴보자.1) Batch normalization 레이어 추가보통 전체 데이터에 대해 정규화를 하게 되는데 전체적으로 봤을 땐 정규분포 형태를 띄겠지만 각 batch를 살펴보면 위 그림처럼 정규분포가 다를 수 있다. 그렇기 때문에 각 batch마다 정규화를 진행하는 batch normalization 레이어를 추가하여 학습이 잘 되게 하며 학습 속도를 향상시킨다. 2) Convolutional with AnchorsAnchor는 초기 regression 학습을 안정적으로 하게 해주는 역할을 한.. 2019. 11. 12.
[object detection] Single Shot Multibox Detector (SSD) 아키텍쳐 분석 SSD Single Shot MultiBox Detector[논문]는 object detection을 위한 아키텍쳐다. object detection을 위한 여러 아키텍쳐가 있는데 R-CNN, Fast R-CNN, Faster R-CNN 등 2-stage detector가 아닌 YOLO와 같은 1-stage detector에 속한다.2016년 11월에 발표된 모델이고 PascalVOC, COCO 데이터셋 등과 같은 표준 데이터셋에서 FPS는 59, mAP는 74%를 기록했다. 속도는 굉장히 빠른 편이며, (512, 512) 이미지에서는 76.9%를 달성하여 Faster R-CNN보다 더 좋은 결과를 얻기도 했다. 또한 저해상도에서도 높은 성능을 보이는 것이 SSD의 특징이다.먼저, Single Shot .. 2019. 8. 8.
[object detection] YOLO 모델의 원리 Object detection 분야에서 쓰이는 모델로는, Faster-RCNN, MobileNet, SSD 등 많은 모델이 있지만 그 중 YOLO 모델에 대해 자세히 알아보려 한다. 일단, 현 시점에서는 YOLO, YOLOv2, YOLOv3(YOLO 9000)까지 모델이 개발되었고 각 모델마다 변화에 따른 장단점이 생겨났다. 필자는 YOLOv3를 사용해서 프로젝트들을 진행해본 결과 나름 괜찮은 성능의 결과를 얻을 수 있었다. 그러나 YOLOv2에 비해 느리다는 것이 단점이었다. 구조적 관점에서 이러한 차이들을 파악하기 전 기본적인 바탕이 되는 YOLO 모델의 원리에 대해 알아보는 것이 이번 글의 목표다. YOLO 가장 기본이 되는 YOLO 모델의 원리를 설명하고자 한다. 먼저 간단히 설명하자면, 예측하고.. 2019. 7. 22.
주차 구역 인식(Vision-Based Parking-Slot Detection) 논문 리뷰 논문리뷰 이 글은 Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset 논문을 읽고 쓴 글이다. 들어가기에 앞서, parking-slot과 주차 구역은 동일한 단어라고 가정한다.Abstract이 논문은 DCNN을 기반으로 주차 구역(parking-slot)을 탐지하는 모델을 제안한다. 이 모델을 여기선 DeepPS이라 명칭한다. 이 모델의 주요 단계는 다음 두가지로 나뉜다.Input image에서 모든 marking points를 확인한다.Marking points의 쌍에 의해 형성된 로컬 이미지 패턴들을 분류한다.여기서 Input image는 AVM과 같은 형태의 surround-view.. 2019. 7. 4.
Keras로 구현하는 DCGAN GAN의 기본 개념GAN은 크게 Generator와 Discriminator, 두 가지 주요 모듈로 구성됩니다.Generator(생성기)는 학습된 가중치에 따라 목표하는 개체를 생성하고,Discriminator(판별기)는 입력받은 개체가 가짜인지 진짜인지를 판별합니다.이 두 모듈은 서로 대립(Adversarial) 관계에 있습니다. Generator가 가짜 개체를 생성하면 Discriminator는 이것이 진짜인지 아닌지 판별하면서 학습을 해나가기 때문이죠.GAN을 수식으로 정리하면 위와 같습니다. D는 Discriminator, G는 Generator로, 아주 단순히 그림으로 표현하면 아래와 같이 표현할 수 있습니다. Discriminator는 x 데이터에 대해 사전에 학습되고, Generator가 r.. 2019. 5. 26.
What is AI and an Agent? What is AI? According to Luger and Stubblefield, the AI is "The branch of computer science that is concerned with the automation of intelligent behavior". But AI cannot be simply defined. There are largely four views of AI. 1. Thinking humanly If we listen any music, we will feel diverse things as excitement, sadness and joy. Then how we know feeling of a music? It is very difficult to answer ab.. 2019. 4. 18.
DSP를 이용한 음성 인식 (speech recognition) 구현 1편 : 음성 데이터 분석 2019-03-12-speech-classification 이 포스팅은 Kaggle Speech representation and data exploration kernel의 데이터 분석 부분을 참고하였다.My kaggle study repository : https://github.com/go1217jo/kaggle_study 항상 학습 모델을 만들기 전에 데이터에 대한 분석이 반드시 이루어져야 한다.Sampling임의로 'yes' 라고 말하는 음성 파일 하나를 선택하여 분석해보자. 먼저, wav 파일을 샘플링해야 한다.xxxxxxxxxxfrom scipy.io import wavfile​train_audio_path = 'data/train/audio/'filename = 'yes/0a7c2a8d_n.. 2019. 3. 12.
Regularization과 딥러닝의 일반적인 흐름 정리 최적화(optimization) : 가능한 훈련 데이터에서 최고의 성능을 얻으려고 모델을 조정하는 과정일반화(generalization) : 훈련된 모델이 이전에 본 적 없는 데이터에서 얼마나 잘 수행되는지를 의미하지만, 일반화 성능을 제어할 방법이 없기 때문에 단지 훈련 데이터를 기반으로 모델을 조정할 수 있음과소적합(underfitting) : 훈련 데이터의 손실이 낮아질수록 테스트 데이터의 손실도 낮아진다. 즉, 모델 성능이 계속 발전될 여지가 있음.과대적합(overfitting) : 모델이 훈련 데이터에 특화되어 일반화 성능이 높아지지 않고 오히려 감소즉, 훈련 데이터에 특화된 패턴을 학습하기 시작했다는 의미, 이 패턴은 새로운 데이터와 관련성이 적어 잘못된 판단을 하게 만듦 Regularizat.. 2019. 1. 13.
[keras] Boston Housing 데이터를 통한 주택 가격 예측(regression) 2019-01-05-boston-housing 1. 보스턴 주택 가격 데이터셋1970년 중반 보스턴 외곽 지역의 범죄율, 방 개수, 지방세율 등 총 14개의 변수로 이루어진 데이터셋으로, 이를 통해 주택 가격을 예측할 수 있다. 변수에 대한 자세한 내용은 kaggle: boston housing에서 확인할 수 있다. 데이터 수는 총 506개로, 훈련 샘플 404개, 테스트 샘플 102개로 나뉘어 있어 비교적 개수가 적은 데이터셋이다. 따라서 K-fold cross validation을 이용하여 좀 더 정확한 평가를 할 것이다. 데이터셋 로드from keras.datasets import boston_housing(train_data, train_targets), (test_data, test_target.. 2019. 1. 5.
[keras] 정확한 평가를 위한 검증(validation) 데이터 나누기 2019-01-05-validation 딥러닝 모델을 구축할 때, 훈련 데이터와 테스트 데이터만으로도 훈련의 척도를 판단할 수 있다. 하지만, 훈련 데이터에 대한 학습만을 바탕으로 모델의 설정(Hyperparameter)를 튜닝하게 되면 과대적합(overfitting)이 일어날 가능성이 매우 크다. 또한, 테스트 데이터는 학습에서 모델에 간접적으로라도 영향을 미치면 안 되기 때문에 테스트 데이터로 검증을 해서는 안 된다. 그래서 검증(validation) 데이터셋을 따로 두어 매 훈련마다 검증 데이터셋에 대해 평가하여 모델을 튜닝해야 한다. 하지만, 검증 데이터셋이 훈련에 사용되지 않더라도 검증 데이터셋에 대한 성능을 기반으로 hyperparameter를 튜닝하므로 정보 누설(information lea.. 2019. 1. 5.