📌 Intro MNIST 데이터 셋에 이어 FER2013데이터 셋을 이용하여 표정을 통해 감정인식 분류기를 만들어보자. 📌 Dataset FER2013 Overview Label은 7개로 0=Angry, 1=Disgust, 2=Fear, 3=Happy, 4=Sad, 5=Surprise, 6=Neutral로 매핑되어 있다. Image는 FER2013 이미지이고 48 x 48 x 1의 Shape을 가지고 있다. MNIST를 사용할 때는 keras에 내장되어 있는 데이터 셋을 로드해서 사용했었지만, FER2013 데이터 셋은 keras에 내장되어 있지 않기 때문에 .csv파일을 다운받아 사용해야 한다. Details https://www.kaggle.com/competitions/challenges-in-re..
📌 Intro MNIST 데이터 셋을 이용하여 ANN(DNN) 모델을 구성, 학습, 정확도 측정까지 진행해보았다. 이번에는 모델의 layer를 더 깊게 만들어보고 정확도를 비교해보도록 하자. 또 CNN모델을 만들어 학습, 정확도를 측정하여 ANN모델과의 정확도를 비교해보도록 하자. MNIST를 사용하는 방법과 CNN에 대한 내용은 이전에 정리해두었기 때문에 바로 코드를 보며 간단한 주석과 함께 내용을 정리할 것이다. 📌 DNN 코드 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt # 1. MNIST 데이터 셋 import mnist = tf.keras.datasets.mnist (x_train, y_train), (x_..
📌 Intro 이전에는 MNIST 데이터 셋을 이용하여 기본적은 ANN(DNN)모델을 구성해보고 학습 및 추론까지 진행해봤다. 다음에는 CNN으로 모델을 구성하고 진행을 하려고 했는데 그 전에 CNN에 대한 내용을 정리하고 시작하면 좋을 것 같아서 글을 작성하게 되었다. 📌 CNN? CNN은 Convolutional Neural Network의 줄임말이며 보통 CNN으로 쓰인다. 이는 인간의 시신경을 모방하여 만든 딥러닝 구조 중 하나이며, 특히 이미지 분류에서 좋은 성능을 보이는 것으로 알려져 있다. CNN은 위의 그림처럼 크게 두 부분으로 나눌 수 있는데 하나는 이미지의 특징을 추출하는 것이고(Feature Learning) 또 다른 하나는 추출한 특징을 이용하여 클래스를 분류(Classificati..
📌Intro AI나 머신러닝 혹은 딥러닝에 대해 공부를 하고있는 사람이라면 거의 대부분이 시작을 MNIST로 했을 것이라 생각하고 나 역시 그렇다. 이쪽 분야의 지식이 풍부한 것은 아니지만 공부한 내용을 정리하며 이해를 높이려한다. 모델을 만들고, MNIST 데이터를 이용하여 손글씨 분류기 모델의 학습과 추론과정에 대해 알아보도록 하자. 📌MNIST Data? 먼저 MNIST 데이터에 대해 설명이 필요할 것 같다. MNIST 데이터는 여러명의 사람들이 손으로 쓴 숫자들로 이루어진 데이터베이스다. 이미지의 크기는 28X28X1이며 아래와 같이 60,000개의 트레이닝 이미지와 10,000개의 테스트 이미지로 구성되어 있다. 각 데이터 셋은 이미지와 라벨이 매핑되어 있는 형태인데, 여기서 이미지는 손글씨 사..
[6월 9일] 운 좋게 들어왔던 연구실에서 너무나도 운이 좋게 지도교수님의 도움으로 6월 1일 한국스마트미디어학회에 제1저자로 논문 제출을 할 수 있었다.. 말은 논문이라고 하지만 사실 대단한게 아닌 2장짜리 페이퍼다. 시험기간에 과제까지 겹쳐서 2장을 쓰는데도 오랜 시간이 걸렸던 것 같다. (시험이 아니었어도 오래걸렸으려나..) 다행히 6월 9일 아래처럼 Acceptance Letter를 받았다. 😊 그리고 6월 13일 최종 논문 등록을 마쳤다. 논문 제출을 완료하고 살펴보니 오타와 사사표기에 실수가 있어 수정이 필요했다. 고친 뒤에 다시 올리려고 보니 수정할 수가 없다....?????????!!!! 그래서 바로 학회로 전화를 했더니 학회 메일로 수정본 보내달라고 하셔서 다행히도 오탈자를 수정하여 재등..
가장 최근에 블로그에 글을 쓴게 올해 1월이다. 이 때만해도 블로그에 내가 공부했던 기록들을 정리하며 공부해나가겠다고 의지가 넘쳐났던 것으로 기억하는데 개강하자마자 (어쩌면 개강 하기도 전에) 그 의지는 바로 사라져버렸다.. 글의 대부분을 차지했던 백준 문제풀이도 잠시 미뤄놔서 더욱 그랬던 것 같다. 어제 딱 4학년 2학기 마지막 시험이 끝났다. 물론 추가학기로 5학년 1학기까지 다닐거지만 이 때는 그래도 나름 여유로우니 그 동안 공부하거나 개발하면서 배웠던 내용을 정리하면서 쌓아가야겠다. 내용을 정리하는게 처음에는 시간낭비라고 생각을 하기도 했지만 한번 더 기억을 상기하면서 오래도록 기억할 수 있는 방법같다. 이번 방학과 하반기에는 이전보다 더 열심히 해서 좋은 결과를 만들어보도록 하자! (블로그에 내..
📌 Intro ListView는 리스트 형태의 데이터를 보여주는 위젯으로 안드로이드에서 가장 중요하고 많이 사용되는 요소다. 하지만 아직 ListView의 사용이 익숙하지 않기 때문에 내용을 정리해두려고 한다. 📌 ListView란? ListView는 이름에서도 알 수 있듯이 list형태의 데이터가 있어야 한다. 이것을 Adapter를 통해 각각의 데이터와 View를 연결해주는 역할을 한다. ListView에 표시되는 아이템은 가장 단순하게 텍스트만 출력할수도 있고, 다른 View들의 조합을 이용한 복잡한 형태도 가능하다. 📌 Adapter? ListView를 이용하여 화면에 데이터를 뿌려주기 위해서는 Adapter를 사용해야 한다고 했다. Adapter는 어떤 역할을 하는 친구일까? 조금 더 알아보도록..
안드로이드 어플리케이션을 만들어보려고 안드로이드 스튜디오를 키고 휴대폰으로 연결하려고 했는데, 오랜만이라 기억이 잘 안나서 간단하게 정리해놓으려고 한다. 개발자 모드 먼저 휴대폰에서 개발자 모드를 켜야한다. 현재 사용하고 있는 휴대폰은 갤럭시 S7이고, 각 휴대폰마다 개발자 모드를 켜는 방법은 다를 수 있다. 1. [설정] → [휴대전화 정보]를 선택한다. 2. 소프트웨어 정보를 클릭한다. 3. 빌드 번호를 5번정도 클릭하면 [개발자 모드를 켰습니다.]라는 안내문구가 나올 것이다. 4. 개발자 모드가 켜졌다는 알림이 뜨면 뒤로가서 개발자 옵션 탭이 생겼는지 확인한다. 5. 개발자 옵션으로 들어가 USB 디버깅을 켠다. 안드로이드 스튜디오와 연결 안드로이드 스튜디오를 켜고 프로젝트를 만들고 휴대폰 목록을 ..