일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- C++
- pandas
- 정수와유리수
- 텍스트마이닝
- html/css
- 데이터분석
- SQL
- 중학수학
- 컴퓨터구조
- 연습문제
- 운영체제
- 영어공부
- 딥러닝
- 혼공머신
- 정보처리기사실기
- numpy/pandas
- 파이썬
- 자바
- 파이썬라이브러리
- JSP/Servlet
- 정보처리기사필기
- 데이터입출력구현
- 자바 실습
- 컴퓨터비전
- 데이터베이스
- CSS
- 코딩테스트
- CNN
- 머신러닝
- 중학1-1
- Today
- Total
목록CNN (17)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
나만의 YOLO 모델을 만드는 부분의 내용이 길어서 포스트를 나누어서 작성하기로 했다. 이 내용은 수업에서도 다루지 않던 내용이고 처음 해보는 거라 많이 어려웠다. 나만의 YOLO 모델 생성하기Darknet 수준의 YOLO 모델을 개인이 학습하기에는 컴퓨터 리소스가 너무 많이 필요하고, 시간이 많이 걸린다는 문제가 있다. 대신 검은색 바탕에 간단한 도형 3개만 탐지하는 YOLO 모델을 만들어보고, YOLO 모델을 더 쉽게 이해하자. 앞의 그림을 보면 YOLO 논문에서는 이미지를 가로, 세로 각각 7개의 셀로 나누어 총 49 셀을 기본으로 하지만, 우리는 가로, 세로 3개의 세로로 나누는 방식으로 문제를 단순화한다. 또한 논문에서는 한 셀 당 2개의 박스를 그리지만, 우리는 한 셀당 1개의 박스를 그리는..
이어서 객체 탐지에 대해서 공부해 볼 것이다. 이번에는 Darknet에서 제공하는 YOLO(You Only Look Once) 객체 탐지 모델을 사용하는 방법을 알아본다. YOLO는 경계 박스와 예측 클래스를 서로 다른 문제로 다루지 않고 하나의 회귀 문제로 접근하는 개념이다. 다시 말하면, 하나의 신경망이 한 번만 계산해 두 가지 일을 한꺼번에 처리한다. 따라서 속도가 매우 빠르다는 장점을 갖는다. Darknet YOLO 모델 추론하기YOLO 모델을 개인 로컬 PC 환경에서 학습하는 것은 사실상 불가능하다. 성느 좋은 GPU가 필요하고, 학습 시간도 오래 걸리기 때문이다. 하지만 Darknet에서 제공하는 사전 학습 모델을 활용하면 일반 pc 환경에서도 YOLO 뿐만 아니라 RestNet 등 다..
어제 저녁에 이 단원과 영어 공부를 하려고 했는데 피곤하기도 하고 그냥 쉬고 싶었다. 역시 난 외부 활동을 하면 에너지가 많이 소진되는 걸 느낀다. 하지만 정말 가길 잘했다는 생각이 들었다. 오늘도 행사가 있지만 그냥 집에서 밀린 공부를 할 생각이다. 오늘까지 꼭 CNN을 마쳐야 이번주 일요일까지 RNN까지 진도를 나가 딥러닝 공부를 마칠 수 있을 것 같다.더이상 진도가 밀리면 다음 일정에 차질이 생길 테니까.평소보다 늦게 일어났지만 이제부터 다시 열심히 공부해볼 것이다. 객체 탐지에 대하여Object Detection 문제는 객체 탐지 또는 객체 검출이라고 번역하여 사용된다. 이미지를 인식하는 컴퓨터 비전 AI 기술이 가장 많이 응용되는 분야라고 말할 수 있다. 가장 대표적인 응용 분야로는 자율주행차를..
이어서 위성 이미지 분류 학습을 진행해 보겠다. 데이터 증강(Data Augmentation)앞서 배운 과대적합을 해소하는 기법인 배치 정규화, Dropout 등을 적용했음에도 과대적합이 발생하였다. 이미지 분류 문제에서 관대적합을 해소하고, 모델의 일반화된 Robust한 성능을 확보하는 기법으로 데이터 증강 기법을 소개한다.이미지 데이터에 여러 가지 변형을 주어 훈련 데이터의 다양성을 확보하는 방식으로, 모델이 새로운 데이터에 대한 예측력을 강화하도록 하는 개념이다.먼저 EuroSAT 데이터셋 중에서 하나의 샘플 이미지를 선택하여 시각화한다. 샘플 이미지에 변화를 주기 전과 후의 이미지를 비교할 수 있는 시각화 함수를 정의한다. tf.image 모듈의 flip_left_right 함수를 사..
이번 단원도 무척 길어서 두 개의 포스트로 나누어 작성할 예정이다. 단순한 모델 생성도 많이 어려웠는데 이번에는 복잡한 모델을 생성해 볼 것이다.텐서플로 케라스의 Functional API를 사용하면 Sequential API로 구현할 수 없는 복잡한 구조의 모델을 정의할 수 있다. 예를 들면, 각 레이어를 기준으로 입력이 2개 이상이거나 출력이 2개 이상인 모델을 만들 수 있다. 또는 중간에 있는 레이어들을 건너뛰고 뒤쪽에 있는 레이어로 출력 텐서를 전달하는 방식으로 직접 연결하는 방법도 가능하다. 데이터셋 준비필요한 라이브러리와 mnist 데이터셋을 불러와서 훈련 데이터셋과 검증 데이터셋으로 구분하여 저장한다. 원본 mnist 데이터셋은 0~9까지 숫자를 손글씨로 쓴 이미지(x)와 정답(y) 숫..
이제 CNN을 활용한 개, 고양이를 분류하는 실습을 진행해보려고 한다. 개와 고양이를 분류하는 실습 해보기 먼저 데이터 폴더에 압축 파일 형태로 선생님이 올려주신 파일을 업로드했다. 여기서 압축 파일 형태로 저장하는 이유는 넘파이로 저장하면 용량이 커지기 때문에 압축 파일에서 npz 파일로 변환하는 작업을 진행한다.압축 파일 형태이기 때문에 코드로 압축을 해제할 수 있다. 압축을 해제한 다음에는 크기 조정도 한다. 그 이유는 딥러닝 모델에서는 이미지 크기가 제각각이라 크기를 동일하게 조정해 준다. 그런 다음 이 이미지를 넘파이 배열인 숫자 형태로 변환한 후 다시 npz 형식으로 저장한다. 구글 드라이버는 클라우드 형태로 저장되기 때문에 이것을 내 작업 공간으로 옮기는 작업이 필요하다. 절대 ..
조금 늦은 아침을 먹고 이이서 딥러닝 실습을 시작해 보겠다. 합성곱 신경망 실습해 보기 라이브러리와 손글씨 데이터를 불러온 다음, 훈련 데이터와 테스트 데이터로 나눈다. 데이터의 크기를 확인하면 이와 같다. 이미지 색상은 어떻게 작성할 수 있을까? 0부터 9까지의 숫자가 출력된다. 이미지 분석을 할 때 특징을 추출하는 층을 넣어준다. Maxpooling 과정에서 특징이 아닌 부분을 삭제하는 과정을 거친다. 이렇게 CNN 층을 구성했다. 모델이 저장된 폴더의 경로를 복사해서 붙여 넣고 뒤에 에포크와 정확도도 표시해 준다. 그리고 모델 객체를 생성한다. 오류가 많아서 코드를 정말 많이 수정했다. 수업을 들으면서 코드를 작성하니 틀리게 적는 부분이 정말 많았다..