TIL - 2023.09.13

배엘리·2023년 9월 14일
0

TIL

목록 보기
21/23

🐈‍⬛ 오늘 한 일

  1. CV 이론
  2. 글창사 - 투자 유치 강의 듣기

🐆 오늘 배운 것

오늘은 드디어 드디어 컴퓨터 비전 수업을 시작했다. 솔직히 많은 사람들이 컴퓨터 비전이나 생성 모델, nlp를 듣고 싶어서 지금까지 버틴게 아닐ㄲ....지금 11시 20분... 막차를 타기까지 시간이 얼마 안남아 뼈대만 잡고 집으로 가야할 것 같지만...!

Object Detection

  • 객체 검출
  • 박스로 쳐져 있는 부분을 Bounding Box라고 하며 4개의 숫자로 좌표를 나타낸다.

Object Detection의 문제점

  • 여려 형태로 다양한 출력
    - 이미지의 사이즈가 너무 다양하니 사이즈가 올라가면 연산량과 메모리 사용량도 함께 늘어남
  • 이미지 안에서 정보 분리 + classification 함께 진행

Regional Proposal

  • (이미지에서 물체가 포함된 것으로 예상되는 부분을 제안)
  • 픽셀 -> 비슷한 region을 묶어 bounding box의 후보군으로 둔다.
  • Region of Interest (ROI): 물체가 있을 것 같아 분석이 필요한 부분
  • 정확하지 않다.
  • 후보군을 예측만 해서 뒷단에 넘겨줌

(Slow) R - CNN

  • 리전별로 Bbox를 만들어서 리전별로 바운딩박스와 클래스 예측을 한다
  • 느리고 비효율적이다.

Fast R-CNN

  • 이미지를 conv -> feature 추출 -> Region proposal을 feature map을 자르는데 사용
  • 여기서 feature map은 똑같은 scale로 resize됨
    -> RoI Pooling

RoI Pooling

문제점: 이미지의 Bbox가 정확히 Image feature map 상의 grid와 align 되지 않아 위치를 그대로 가져와서 처리 할 수 없다.

  • Proposal을 Feature 위로 투영해서 가장 가까운 격자로 이동시킴

  • 여기서 Bilinear interpolation 개념이 나왔는데 이 부분은 더 공부해야 할 듯...

Faster R-CNN

  • Feature map상에 K개각 크기의 고정된 anchor 사용
  • anchor안에 물체가 있는지 판별 (Binary Classification)
    • 없으면 (0) 버림
    • 있으면 (1) Keep
  • 즉 RPN에서 anchor box로 물체가 있는지 없는지 확인하고, RoI Align과 Bbox를 통해 이 물체가 뭔지 판단

--> Two-stage object detection


Object Detection의 평가 방법

  • 평가 왜 어렵냐? 하나의 물체에 Bbox 후보군 많음 -> 최종적으로 어떤 것을 써야할지 결정해야됨
  • 정답(ground truth)과 Bbox간의 매칭 정보를 제공해야됨

Intersection over Union

  • 예측한 Bbox랑 ground truth랑 얼마나 겹치냐? (교집합이 얼마냐)
IoU=교집합영역의크기합집합영역IoU = \frac{교집합 영역의 크기}{합집합영역}
  • 한 IoU > 0.5 이상이라도 꽤 괜찮다고 판단

Non-Maximum Suppression

  • 중복되는 Bbox를 없애겠다!!
  • 가장 확률 값이 높은 Bbox만 반환하겠다.

여기서 average precision 이런거 나왔는데 개념은 알겠는데 확실히 어떻게 계산되는지 이해 못함 ㅠ...

Single-Stage Object Detection

  • 아까 Two-stage object detection은 2가지의 단계로 이루어져 있었다.
  1. 여기 영역에 물체가 있나?
  2. 물체가 있으면, 이 물체가 뭐지?

--> 둘이 합치면 안되나?

YOLO

(you only live once..)가 아니고 you only look once

Input image를 Conv를 여러번 거치고 마지막 output feature를 일렬로 펼치게 된다. 그리고 reshape 한다.

  • reshape한 피쳐의 shape이 7 x 7 x 30 이라고 할 때 그 중 하나의 피쳐만 본다! 해서 1 x 1 x 30을 보자.

1 x 1 x c -> 얘네를 feature pipe라고 하며 여기 안에는

  1. 보정값 4(x, y, h, w)개와 confidence 값 하나, 총 5개의 숫자 (하나의 앵커)로 시작해,

  2. 앵커 안에 있는 Bbox 수

  3. Class 개수로 이루어져 있다.

5b+c5 * b + c

과정이 그래서..
인풋 받음 -> anchor 겁나 만듦 -> anchor 안 bbox에서 후보군 만들고 이 물체가 강아지여 고양이여 판단 -> 많이 만든 bbox 후보군들을 non-maximum suprression 활용해서 중복 제거 해줌


대충 이론은 이렇게 배웠고 오늘은 파이토치 실습을 다 끝냈다!
기본 문법이랑, 신경망한번 만들어보고 fashion MNIST로 실습했다.... 솔직히 아무것도 안주고 처음부터 해보세요 이러면 아직 할 수는 없지만 그래도 init에는 뭐가 들어가야 하고, 어떻게 레이어를 구성해야 하는지 대충 이제야 머리속에 들어오는 같은 느낌... 어제 fashion mnist한게 정확도가 80%였는데 오늘은 레이어 조금 바꿔보면서 성능을 높여 봐야겠다. 9월 안으로 숫자분류하는 mnist 혼자 해보고싶당...

🐅 오늘 느낀 점

요즘따라 운동을 안해서 그런지 너무너무 피곤하다.
막 나도 모르는 사이에 잔다~ 이런건 아닌데 고개만 숙이면 조는...(?) 단계에 온 것 같다. 요즘 집에서 다 씻고 잘 준비하면 한시 반쯤 되니까 내일은 6시에 일어나서 조금이라도 운동을... 아니면 스플에서 집으로 돌아갈 때 걸어가야 되낭.. 증명사진 찍기 전까지 살빼야 하는데.. 하는 생각이랑 후딱 맛있는거 먹고 힘내서 공부하자 이런 생각을 많이 든다. 그리고 남아서 요즘 3시간정도 하는데 시간이 너무 부족한 것 같다 ㅠㅠ... 그래서 이론 들을 때 후딱 집중하고 실습은 남아서 따라가는 걸로...!! 화이팅 화이팅

0개의 댓글