1. Computer Vision
1. Object Detection
- Semantic segmentation -> instance segmentation / panoptic segmentation : 같은 class 객체를 구분
- object detection : classification + box localization, 물체의 class와 location 판별.
- R-CNN (Regions - CNN) : 영상의 영역을 나누고, input shape을 변형시켜서 CNN에 넣어서 classification
selective search. 데이터 전처리에도 시간 오래걸리고, region마다 class를 구분하는데도 오래걸림. - Fast R-CNN : convolution feature map을 추출한 후, ROI pooling을 해준다. (ROI 후보들을 추출)
- Faster R-CNN : IoU(교집합/합집합)을 통해 bb가 잘 만들어졌나 판별
Anchor Box(미리 만들어 놓은 다양한 크기 비율의 bb)를 사용해서, ground truth와 IoU를 구함.
정교한 문제들은 anchor box에서 다시 class 분류. -> 다양한 bb들을 필터링, 선별해줘야함
Non-Maximum suppressiong 사용. - single stage (속도에 중점, RoI pooling X, real time)
YOLO : bb + score / class probability map을 통해서 regression, 마지막에서 FC를 한 번해서 성능이 조금 떨어짐.
Single Stage MultiBox Detector (SSD)
배경에서 존재하는 수많은 anchor box에서 발생하는 class imbalance 존재 -> focal loss 사용 (CE의 확장)
focal loss : 잘 맞춘애들은 loss 많이 줄여주고, 못 맞춘 애들은 loss 적게 감소
RetinaNet : U-Net과 비슷. SSD보다 빠르고 성능이 좋다
CV에서 사용되는 Transformer: DETR (vision transformer에서 봤던거처럼 endcoder/decoder 존재)
2. CNN Visualizatoin
- filter visualization
low level output: CNN의 초반에는 channel수가 낮아서 visualization을 통해서 역할을 확인가능.
high level output :
1. FC 이전 embedding vector 해석 -> clustering
2. Dimension reduction -> t-SNE
mid level output:
1. hidden node activation를 통해 mask 시각화. 어떤 node가 어떤 feature를 나타내는지
2. 어떤 node로 들어가는 receptive field를 뜯어온다.
3. score를 높여주는 input image를 찾기. 그 중에서 regularization을 통해서 해석 가능한 이미지만 선택. - 모델이 특정 입력에 대해서 어떻게 반응하는지
Saliency test
1. Occlusion map (이미지 특정부분 patch로 가려서 확률값이 많이 감소하는 부분 채택)
2. via backprop : 역전파된 grad의 크기를 구해서 시각화. (data dependent)
Class activation map (CAM) : heapmap 처럼 이미지에 표현해주기. GAP 이전 공간정보를 불러오기
CAM은 모델 뒷단 구조를 바꿔서 성능이 달라질 수 있음 -> Grad CAM :
3. Instance segmentation
- 같은 class여도 다른 instance이면 다르게 구분하기 -> 상위 레벨의 task : instance, panoptic 등...
- Instance Segmentation
- Mask R-CNN : Faster R-CNN을 개선한 모델
RoI Align을 이용해 정교한 feature를 추출 + Mask branch를 이용해서 마지막 단에서 어떤 mask를 선택하는지.. - YOLACT : mask를 합성할 수 있는 soft segmentation을 생성한 후(basis역할), prediction head의 정보와 결합해 object를 구분한다.
- YolactEdge : key frame의 feature를 다음 frame으로 전달해주어 속도 향상. (real time, vidio ver YOLACT)
- Panoptic Segmentation
- UPSNet : instance가 있는 부분과 없는 부분을 구분 (이미지에서 instance위치 빼서 unknown area를 구분)
- VPSNet : reference trame으로부터 target frame으로 image의 feature를 보내준다. (real time, video ver)
- Landmark localization
- coordinate regression -> 모든 픽셀에 대해서, 연산량 많다
- heatmap classification -> kernel을 사용해서 연산량 감소.
- Hourglass Network : U-Net과 비슷한 구조. 줄였다가 늘리는 방식. receptive field를 늘리고, 복원하면서 landmark를 찾는 방식. 이런 hourglass 구조의 반복. U-Net과 다른 점이면 concat이 아니라 add를 사용한다.
- object detection -> key point detection
CornerNet : corner point 두개를 가지고 (왼쪽 위, 오른쪽 아래) bb 결정. (real time 위주)
CenterNet : corner point에 중심점 포함하기 / center point에 w,h를 받아서 bb 결정
4. Conditional Generative Model
- generative model에 조건을 줘서 원하는 값을 이끌어내는 model. random seed 대신 시작 값을 준다.
5. Multi modal learning
- 서로 다른 modality 여러 개 사용. CV + text / audio 등.. -> 새로운 embedding vector, 정보 불균형 : 학습 어렵다.
- joint embedding : image - tag 연결하기(양방향)
- embedding vector를 더하고 빼서 출력 결과를 변경 시킬 수 있음. (개+바탕 사진에서 -개 +고양이 = 고양이+바탕)
- 여러 modality를 사용하면 입출력 형식에 따라 다양한 방식의 model이 결합된다. (image : CNN -> text : RNN)
- 출력 결과가 unique한지 아닌지에 따라서 모델도 선택해야함. 출력 결과가 다양한 경우 generative model을 쓴다.
6. 3D Understanding
- 실제 인식한 2D 이미지를 바탕으로 실제 세계인 3D에 적용한다. 3D 공간에 대한 이해가 필요하다.
- 다른 시점에서 촬영한 2개의 2D 이미지로 3D 이미지 구축가능. but, 3D 이미지는 unique하지 않다.
7. Recent Trends on Vision Transformer
- Transformer : NLP 분야에서 먼저 사용. RNN기반 (LSTM, GRU 등)과 다르게 recurrence 없음.
self attention : query, key, value로 구성되어있음. 문장 내 위치 정보를 고려하게 된다. - ViT : 이미지를 patch 단위로 나눠서 transformer 구조 차용. spatial 정보를 고려하게 된다.
- MaskFormer : input에 대해서 여러개의 prediction을 하고, 어떤 class에 속하는지 구분.
- 토큰화를 잘 시키면 vision, NLP를 넘어서 다양한 분야에 통합된 모델로 쓰일 수 있음.
- ex) image + text pair 사용. supervised data set을 사용해 encoder를 통과 -> embedding space를 통과하며 학습
2. 코테 준비
[파이썬] 프로그래머스 : 미로 탈출 (Lv.4) (tistory.com)
[파이썬] 백준 2314 : 이세계 게임 (골드3) (tistory.com)
[파이썬] 백준 17352 : 여러분의 다리가 되어 드리겠습니다! (골드5)
[파이썬] 백준 1486 : 등산 (골드2) (tistory.com)
[파이썬] 백준 4781 : 사탕가게 (골드4) (tistory.com)
[파이썬] 프로그래머스 : 지형이동 (Lv.4) (tistory.com)
[파이썬] 백준 17471 : 게리맨더링 (골드4) (tistory.com)
[파이썬] 백준 2665 : 미로만들기 (골드4) (tistory.com)
3. 코멘트
프로젝트 준비하기.........
'etc > 공부방' 카테고리의 다른 글
리트코드 문제풀이 진행 상황 (0) | 2024.09.01 |
---|---|
[네부캠] 4주차 정리 (0) | 2023.11.27 |
[네부캠] 3주차 정리 (0) | 2023.11.20 |
[네부캠] 2주차 정리 (0) | 2023.11.17 |
[네부캠] 1주차 정리 (0) | 2023.11.10 |
댓글