2024. 9. 28. 01:15ㆍ공부 정리
사실 굉장히 세부적으로 모든 슬라이드를 찍어 수학공식까지 추가해 정리하려고 했었는데 그러려니 이도저도 아니게 되어서 다시 쓴다. 어차피 코드는 다 찍어봤고 어떤식으로 진행되는지 내가 아는만큼 보여주기식보다는 내가 보고 떠올릴 수 있도록 하는 용도로 적을 예정이다.
1. 색변환 - RGB, HSV
2. 가로세로 줄이기
3. 기하학적 변환 (화소의 위치를 바꿈, 화소의 배치를 변경)
translation - 그대로 이동
scaling - 크기 비율 변환 (1)
rotation - 회전
shearing - 찌그러트림
affine - 위아래의 가로 길이는 고정시키고 옆으로 당김
projective - 위아래의 가로 길이도 변형시키고 옆으로 당김
reflection - 반사
4. affine 혹은 projective 된 이미지 원복
5. 공통 지점이 있는 사진들을 붙이는 파노라마
6. 바이너리 이미지화 (2)
7. 노이즈 캔슬링 (3)
8. 블러링과 샤프닝 (4)
9. Edge Detection (5)
10. shape detection(RANSAC / Hough transform) (6)
11. corner detection(Moravec / Harris) (7)
12. SIFT(Scale Invariant Feature Transform)
13. person detection HOG [1]
14. yolo object detector(face, multi) (8)
15. motion
16. object tracking (9)
17. 3D reconstruction [2]
18. video control (10)
(1)
- 이미지를 확대할 때 순방향으로 진행시 오버랩, 홀 현상 생김.(지정 화소 주변은 공백처리. 이로 인해 이미지가 어두워지는 현상)
이를 방지하기 위해 역방향(inverse transformation)으로 결과물틀에 맞추어 값을 가져옴
보간법 Nearest Neighborhood Interpolation과 Bi-linear Interpolation.
1) Nearest Neighborhood Interplation
- 빠름, 품질 떨어짐, aliasing 현상 발생(딱딱 끊기는 현상)
uniform average가 가능한 정중앙점, blur효과 발생
2)Bi-linear Interpolation
- raw coordinates, column coordinates in one pix
4개의 화소셀에서 중간값들을 정해 x의 중간값, y의 중간값을 비율로 잡아, 각 반대 끝의 값의 비율을 곱해 더한다.
bi-linear라서 row간, col간 둘 다 적용한다.
median, average 둘 존재
(2)
- 바이너리 이름처럼 true/false로 나누어 흑백으로 분리.
커널 형태에 따라 Erosion and Dilate 결과 변화(커널의 형태는 사각, 원, 십자가)
1) Erosion == Removal == AND
커널 내 전체 값이 1이어야 1 리턴, 그외 모두 0
2) Dilation == Add == OR
커널 내 전체 값이 하나라도 1이면 1 리턴, 전부 0이어야만 0값 반환.
이미지의 변화를 줄이기 위해 위 둘을 모두 사용 == complexed(erosion -> dilation)
(3)
Opening and Closing
배경의 노이즈를 제거하는 Opening
물체의 홀을 제거하는 Closing
(4)
블러링의 경우 필터가 이미지 픽셀 전부를 통하게 해 해당 필터내 값들의 평균을 리턴.(사이즈 변화 없는 avgpool과 동일)
테두리의 경우 공백은 0값으로 채운뒤 계산. 출력되는 행렬 사이즈는 동일하다.
- 원하는 특징추출을 위해 필터 형태를 다르게 하기도 한다.
-1 -1 -1
0 0 0
111
>> 가로 엣지디텍팅 필터
-1 0 1
-1 0 1
-1 0 1
>> 세로 엣지디텍팅 필터
- conv가 들어가지 않은 이미지 필터링과 들어간 합성곱 필터링 두가지 설명.
cross-corelation >> 특정지점만 진행
imageFiltering >> 전체에 진행
convolution >> 사실 이미지에서 셋은 같은 의미
- 이런 필터링을 노이즈를 제거하기 위해 사용하기도 함
blurring mask: 3by3 전부 1/9
sharpening mask: 3by3 중앙 9 제외 모두 -1
embossing mask: (0,0)쪽은 -1, (n,n)쪽은 1, 그외 중앙, (0,n), (n,0)은 0
(5)
가우시안 필터로 노이즈를 제거한 뒤 상한, 하한 threshold를 정해 사이의 값만 보낸다.
(함수마다 결과의 강도는 조금씩 다르지만 큰 틀은 동일)
(6)
점 몇개를 지나는 예측 소실점, 또는 원지점을 얻음.
(7)
3by3 패치를 쓰는 모라벡 방식과 그보다 큰 패치사이즈를 쓰는 해리스 방식.
(8)
이미지를 보통 3by3으로 나누어 해당 셀에 찾고자 하는 오브젝트가 있는지 탐지.
anchor box = 찾고자 하는 오브젝트 박스
(9)
영상을 프레임으로 잘라 저장한 뒤 범위 지정해 해당 물체를 csrt방식으로 트래킹.
(10)
1) 영상을 프레임화, 프레임을 영상화
2) 물체이미지에서 배경이미지를 제거해 물체 탐지
3) 물체가 움직일 때만 프레임 저장
4) 자잘한 무빙을 배경으로 보도록 함(움직이는 물체들이 작을 경우 무시하는 방식)
5) 바운딩박스 형태에 태깅 추가
[1] 논문: Histograms of oriented gradients for human detection - Navneet Dalal and Bill Triggs
https://lear.inrialpes.fr/people/triggs/pubs/Dalal-cvpr05.pdf
[2] 책: Multiple View Geometry in Computer Vision - Richard Hartley and Andrew Zisserman
'공부 정리' 카테고리의 다른 글
Use of Loss func, Optimizer (0) | 2024.10.25 |
---|---|
바이오 통계학 w/R (1) | 2024.10.02 |
5. Transfer learning based on MobileNet w/ cats-and-dogs-data (1) | 2024.06.30 |
4. ImageNet으로 꽃 분류 with flower_photos (0) | 2024.06.16 |
2. tf 사이트에 공개된 mnist 분석 (0) | 2024.05.18 |