| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 백준온라인저지
- 백준9012
- 코딩테스트실력진단
- 백준10828
- 이것이자바다
- 코테
- 2019카카오코테
- 백준
- 웹개발기초
- 백준스택
- 운영체제
- BOJ1655
- 컴퓨터비전
- 윤곽선검출
- 가운데를말해요
- 확인문제
- 딥러닝
- 백준괄호
- 스파르타코딩클럽
- java
- 합성곱연산
- 백준가운데를말해요
- BOJ
- KT포트포워딩
- 카카오코테
- 냅색알고리즘
- 코드트리
- 이것이자바다확인문제
- 이것이자바다9장
- 백준평범한배낭
- Today
- Total
목록분류 전체보기 (168)
코딩하는 락커
def solution(record): answer = [] users = {} enter_list = [] for r in record : if r.split(' ')[0] == "Enter" : users[r.split(' ')[1]] = r.split(' ')[2] enter_list.append([r.split(' ')[1], r.split(' ')[0]]) elif r.split(' ')[0] == "Leave" : enter_list.append([r.split(' ')[1], r.split(' ')[0]]) else : users[r.split(' ')[1]] = r.split(' ')[2] for i in enter_list : if i[1] == "Enter" : answer.append..
https://youtu.be/VAo84c1hQX8https://youtu.be/RTlwl2bv0Tghttps://youtu.be/9s_FpMpdYW8 비-최대값 억제Non-max suppression example는 알고리즘이 각 물체를 한 번씩만 감지하게 해준다. 즉, 찾아낸 많은 bounding box들 중 가장 정확한 것을 제외하고 지우는 역할을 하는 것이다. 비-최대값 억제를 하기 위해서는 먼저 각 bounding box의 감지 확률 p_c을 계산한다. 그리고 감지 확률이 가장 높은 것(위 이미지에서는 0.9, 초록색 bounding box) 에서 object를 찾았다고 가정한 뒤 나머지 bounding 를 검사하여 가정한 부분과 많이 겹치는, 즉 IOU가 높은 bounding box들(0.7,..
https://youtu.be/yo9S3eNtkXc https://youtu.be/ANIzQ5G-XPE 앞선 포스팅에서 sliding window를 통해 input이미지의 object detection을 알아보았지만, 여전히 문제는 남아있다. 픽셀상의 문제로 bounding box가 object와 정확하게 일치하지 않는 것이다. 이 문제를 해결하기 위해서는 YOLO(You Only Look Once) 알고리즘을 사용해야 한다. 기본적인 원리는 image classiffy나 object localization과 동일하다. 우선 훈련 셋을 만들기 위해 output 레이블 y를 정의한다. YOLO 알고리즘은 두 객체의 중간 점을 취한 다음, 중간 점을 포함하는 영역에 이 객체를 해당하는 것이다. 그렇게 되면 ..
https://youtu.be/5e5pjeojznk https://youtu.be/XdsmlBGOK-k 이번엔 Object localization과 land mark를 사용한 Object detection의 알고리즘에 대해 알아보자. 바로 Sliding windows 알고리즘이다. 모든 신경망 구축에서 그렇듯 Sliding window algorithm을 하기 위해서는 먼저 레이블 트레이닝 셋을 만들어야 하는데, 위 이미지처럼 딱 맞게 짤린 이미지를 사용한다. 그리고 이러한 트레이닝 셋을 합성곱 신경망에 집어넣으면 그 결과로 손실 값 y가 출력된다. 예를 들어 위 이미지의 좌측 이미지에서 차를 찾는다고 할 때, 먼저 빨간색 사각형과 같은 특정 window를 사용하여 input이미지의 왼쪽부터 window..
https://www.youtube.com/watch?v=GSwYGkTfOKk https://youtu.be/rRB9iymNy1w 컴퓨터가 물체를 인식하게 하기 위해서는 일단 물체 로컬리제이션이라는 걸 알아야 한다. 일단 Image classification이 뭘까? 쉽게 말해 '차'를 보고 '차다!'라고 말하는 것이다. 그렇다면 Object localization은? 차를 보고 '차다!' 라고 말하는 것 + '차는 여기 있음' 하고 차에 바운딩 박스를 표시해주는 것과 같은 것이다. 물체 분류에서 족금 더 나아갔다고 할 수 있다. 이런 Object localization에서 더 나아간 것이 Object detection이다. 간단하게 말하자면 사진 속의 모든 차를 보고 '차다!' +'차는 여기있음' 하는..
합성곱 신경망을 잘 구축하기 위해서는 다른 효율적인 신경망 구조의 케이스를 살펴봐야 한다. 마치 우리가 다른 사람의 코드를 살펴보며 공부하듯 말이다. 그래서 이번엔 몇몇의 대표적인 신경망에 대해 공부해도록 하겠다! https://youtu.be/dZVkygnKh1M 이것은 LeNet5라고 하는 손글씨의 숫자를 인식하는 목적의 신경망이다. 위 이미지와 같은 구조를 가지며, 흑백 이미지를 학습하기 때문에 32 x 32 x 1의 입력 이미지를 갖는다. 요즘에 소프트맥스를 사용하여 10개의 예측값이 나오게 하지만, LeNet5는 요즘은 잘 안쓰는 분류기를 출력층에서 사용한다고 한다. LeNet5는 요즘 기준으로는 적은 6만개의 변수를 가지며, 논문에서는 Pooling 층 뒤에 ReLU가 아닌 Sigmoid 비선..
https://youtu.be/ay3zYUeuyhU 뭔가 순서가 바뀌었다고 생각할 수도 있지만 이제 우리는 왜 신경망에서 합성곱을 사용하는 것이 유용한지에 대해 알아보자. Fully Connected Layer 대신 합성곱 층을 사용할 때 두 가지 이점이 있다. 변수 공유와 희소 연결이다. 예를 들어 일반적인 신경망에서 32 x 32 x 3 이미지를 5 x 5 x 6 사이즈 필터로 28 x 28 x 6의 출력 이미지로 합성곱 연산을 했을 경우 32 x 32 x 3 = 3072의 유닛과 28 x 28 x 6 = 4704의 유닛을 연결하여 3072 x 4704 + 4704 = ...약 1400만개의 변수가 필요하다. 하지만 합성곱 신경망에서는 5 x 5의 필터이므로 25개의 변수를 가지고 여기에 Bias를 ..
https://youtu.be/bXJx7y51cl0 지금까지 합성곱 신경망을 구성하는 대부분의 구성요소를 배웠으니 이제 예시를 한번 봐보자! 32 x 32 x 3(R,G,B) 이미지가 있고, 0부터 9까지의 숫자를 알아보는 신경망을 LeNet-5라는 클래식한 신경망과 유사하게 구성한다고 해보자. 첫 번째 층이 f=5, s=1에 p=0인 필터를 사용한다고 할 때, 출력은 28 x 28 x 6이다. (Conv1) Max Pooling을 사용한 두 번째 층이 f=2, s=2, p=0인 필터를 사용할 때, 저번 포스팅에서 했던 내용처럼 높이와 너비의 값이 절반으로 줄어들게 되므로 출력은 14 x 14 x 6이 된다. (Pool1) 이 때 합성곱 신경망 분야의 관습에 따라 Covn1층과 Pool1층을 한 레이어로..