alt

Lecture4 filter 09/22

Shared on October 11, 2026

01:06:06

네 오늘 수업 시작할게요. 저희 주말에 제가 일요일 넘어가는 생각에 렉쳐3 리사이징 관련해서 올렸죠 그거 확인해주시고요. 아직 시청 안하신 분들은 일단 기한 없이 올려놨으니까 보시면 되고 출석체크는 따로, 온라인에 올린 거에 대해서 출석체크는 따로 안할 예정입니다. 네 그래서 리사이즈 인터플레이션 하는 것들 잘 기억해 주시면 될 것 같고

01:06:06

오늘은 이제 틸타인 컨볼루션에 대해서 보도록 하겠습니다 일단은 주말에 했던 내용 잠깐 리캡을 하면은 저희 이미지를 이제 행렬로 선착한 행렬로 표현을 할 수가 있는데 컴퓨터에 저장을 하려면은 얘를 원기 메모니 안에다가 순서를 정해 놓아줘야 된다 순서를 정하는게 이제 XY축에서는 로우 퍼스트, 컬러 퍼스트가 있고

01:06:06

그 다음에 채널에 들어와 보면은 채널 인털입이랑 채널 세퍼리티들 다 있다고 얘기를 했었죠 그래서 여러분들의 이렇게 CHW 이렇게 있으면 이게 채널 인털입든지 채널 세퍼리티든지 먼저 확인해 주시고 그러면은 채널 세퍼리티든지 알 수 있구요 HW 이렇게 되어 있으면은 이게 로우 퍼스트인거죠 로우 퍼스트인거죠 이해를 해주시면 될 것 같아요. 그래서 기억을 해주시면 되고

01:06:06

만약에 문제로 저희 이미지가 1920x1083의 이미지가 있을 때 몇 박째 픽셀이 메모리에 어디에 저장이 되어 있는지를 계산하는 거 과정을 한 번씩 해보시면 좋을 것 같아요. 좋을 것 같고 그 다음에 이미지를 이제 함수로 확장을 해서 저희가 이미지에 픽셀 인덱스가 들어왔을 때 그 인덱스에 해당하는 픽셀 rgb값

01:06:06

또는 뭐 그래값을 리턴을 해주는 그런 함수로 생각을 할 수가 있는 거죠 그렇게 했을 때 저희가 이제 정의형 입력으로 들어가는 거는 픽셀의 인덱스가 되기 때문에 기본적으로는 정수를 입력으로 받게 되는데 얘를 이제 확장을 해서 좌표기에 놓게 되면은 저희가 이제 정수가 아닌 픽셀의 인덱스가 주어졌을 때 그 인덱스에 해당하는 픽셀 값을 계산을 해낼 수가 있다 라는 게 Interclation의 기본적인 이제

01:06:06

배경이었죠. 그래서 그런 식으로 인터플레이션을 통해서 정수가 아닌 포인트들의 값을 계산을 해내겠다는 거였습니다. 그래서 뭐 여러가지 인터플레이션이 되었지만, Nears-Taber, 가장 단순하게 가장 가까이 있는 픽셀, 여기서 픽셀이라고 하면은 정수 인덱스를 가진 픽셀입니다. 정수 인덱스를 가진 픽셀값은 우리가 정답을 알고 있기 때문에 이거를 그대로 갖고 와서 다른 정수가 아닌 인덱스의 픽셀을 채우는데 사용할 수 있는게 Nears-Taber였구요.

01:06:06

트렌드 인터플레이션 같은 경우에는 가장 가까운 3개의 점을 잡아서 얘네를 삼각형으로 만들어서 사용을 한다. 그래서 3개의 점을 조합을 해서 리니어 인터플레이션을 하게 될텐데, 가중치 합으로 하게 될 텐데 이 밑에 가중치는 우리가 구하고자 하는 포인트와 가까우면 가까울수록 많은 가중치를 주고 멀리 있을수록 적은 가중치를 줘야겠다 그래서 그거에 비례하는 게

01:06:06

이 거리가 가까울수록 맞은편에 있는 삼각형의 넓이가 넓어지기 때문에 삼각형의 넓이를 활용해서 그걸 구분해서 weighted sum을 해줄 수가 있는 거죠 이렇게 계산하는게 트랙인터플레이션 그리고 삼각형이 아니라 사각형을 활용하게 되면 바이비뇨 인터플레이션이라고 얘기를 했구요 마찬가지로 얘도 점을 4개를 뽑아서 가장 가까이 있는 4개의 점을 뽑아서 사용을 하는데 얼마나 가까운지에 가중해서 저희가 가중합을 취하게 될거고

01:06:06

얘도 마찬가지로 맞은편에 있는 사각형의 넓이에 비례하기 때문에 맞은편에는 사각형 넓이에다가 이 포인트를 다 가져온 합을 더해주면 우리가 만들어낼 수 있다는 거죠 그래서 이게 ByDN Interplation이었고 트라인클이랑 ByDN Interplation은 1차 함수였죠 선형 함수를 사용을 했다면 ByDN Interplation은 3차 함수를 사용을 해서 이 사이에 있는 픽셀 값을 예측을 할 수 있다

01:06:06

그래서 3차 함수를 사용을 하기 때문에 저희가 각 축별로 필요한 걸 로우축, 칼록축에서 필요한 이웃의 개수는 4개, 4개씩 해서 총 16개의 이웃이 필요한 거죠 16개의 이웃을 사용을 해서 이제 픽셀의 값을 계산을 하기 때문에 앞에서 1개 사용하고 3개, 4개 픽셀을 사용했던 것보다 좀 더 자연스러운 스무스한 이미지를 우리가 얻어낼 수가 있습니다

01:06:06

그래서 Interpolation은 이렇게 됐고 사실 Interpolation이라는 것 자체는 우리가 integer가 아닌 인덱스를 가지는 픽셀의 값을 계산하기 위한 기법을 Interpolation이라고 얘기를 하는 거고요 이 Interpolation을 활용을 하면은 이미지의 Resizing을 진행할 수가 있다는 거였죠 그래서 Resizing의 세 가지 단계를 잘 기억을 해주시고요 첫 번째 단계로는 우리가 만들고자 하는 픽셀의 인덱스를 이제 올드 좌표계에서 맵핑을 해서

01:06:06

얘가 현재 좌표계에서 어떻게 표현이 되는지 인덱스를 먼저 계산을 해내고 그 인덱스는 분명히 정수가 아닌 non-integer 인덱스를 갖게 될 텐데 그거를 계산하기 위해서 Interpolation을 활용을 하는 거고요 이게 이제 다 끝나면은 새로운 이미지를 우리가 만들어야 할 수가 있다는 거죠 이제 다 끝나면은 새로운 이미지를 우리가 만들어야 할 수가 있다는 거죠 그래서 이 좌표계 계산하는 거 기억을 해주시면 되고요 그래서 좌표계 변화는 우리가 linear transform으로 이제 기본적으로 정의를 하게 되는 거고

01:06:06

여기서 x에다가 a를 곱하고 b를 더한다는 게 linear transform을 얘기하는 건데 여기서 이제 많이 헷갈리는 게 x가 old 좌표계가 아니에요 x는 인력으로 들어가는 거는 우리가 만들어낸 새로운 좌표계의 index 그래서 이 x는 이제 저희가 만들어내고자 하는 인덱스 번호가 되는 거고 얘를 인덕으로 넣어서 a, b를 더했을 때 올드자 표기에서는 어떻게 표현이 되는지 이 변화를 저희가 방정식을 풀어가지고

01:06:06

a랑 b를 계산을 해낼 수가 있는 거였죠 그래서 a랑 b를 계산을 해낼 건데 미지수가 두개인 방정식을 풀기 위해서 우리가 연립방정식을 세울거구요 연립방정식 세울때 많이 사용되는 지점은 왼쪽 위 끝점이나 오른쪽 아래 끝점을 많이 활용합니다 이게 제일 쉽기 때문이죠 그래서 왼쪽 위의 끝점은 어떤 자표계가 됐던지 항상 -0.5, -0.5에요 그래서 입력으로 -0.5, -0.5 들어가면은 항상 아웃도 -0.5가 나오죠

01:06:06

그래서 이 첫 번째 수식은 항상 동일하고요 어떤 리사이징을 하더라도 동일하고 그 다음에 오른쪽 아래 마지막 포인트에 대해서 변환 수식을 세우면은 이제 아까 말씀드렸듯이 입력으로 들어가는 것은 x로 들어가는 것은 새로운 좌표계가 되는 거죠 새로운 좌표계는 7x7 이니까 7x7에서 맨 마지막 이제 bottom-right의 pixel의 인덱스는 6.5,6.5가 되는 거죠

01:06:06

6.5,6.5가 입력으로 들어갔을 때 이제 원래의 좌표계 4x4에서 3.5,3.5가 되는 거죠 그래서 6.5가 들어갔을 때 3.5가 9푸로 나오는 것을 우리가 계산을 해야 되기 때문에 수식은 3.5는 6.5a+b 이 연립방렬을 표면은 a랑 b를 계산을 할 수가 있고요 그 얘기는 새로운 좌표계의 어떤 픽셀 인덱스가 들어오더라도 우리가 개를 이 올드 좌표계에서 표현을 할 수가 있다는 거죠 그래서 우리가 관심 있는 새로운 좌표계의 인덱스는 몇부터 몇가지 있냐면 0,0부터 해서 6,6까지 있는 거죠

01:06:06

그래서 7 곱에 6,49개의 인덱스들을 이 a랑 b를 이용해서 변환을 시킨 다음에 그 다음에 이 변환이 된 어떤 정수가 아닌 인덱스가 나오게 될 텐데 이 올드 좌표계에서의 좌표에 대해서 저희가 인터플레이션을 통해서 새 값을 계산을 해낼 수가 있다는 거죠 그래서 인터플레이션을 쭉 진행을 해서 뭐 바이리니어 인터플레이션 또는 리얼스 네이버

01:06:06

뭐 바이비규어 쓸 수도 있겠죠 인터플레이션은 어떤 인터플레이션이든 사용을 해서 이런 결과를 저희가 만들어낼 수가 있습니다 그리고 여기서 한가지 추가적으로 다뤘던게 패딩에 대한 얘기를 했죠 그래서 저희가 4x4를 7x7의 이미지로 확장하게 될 때 바깥쪽에 있는 애들이 문제라고 했죠 저희가 여기에 픽셀이 없기 때문에 이 4개를 원래는 바이빈이니와 엔더코레이션을 통해서 결합을 해야 되는데 조합을 해야 되는데

01:06:06

바깥쪽에 지금 픽셀이 없는 상황인거죠 그래서 이거를 해결하기 위해서 여기다가 우리가 패딩이란 걸 본다고 얘기를 했죠 그래서 여기 테두리 둘레에다가 엣지에다가 패딩을 이렇게 만들어서 여기 만들게 되면은 원래 이미지가 4x4였는데 얘를 6x6으로 확장한 것과 같은 효과를 얻게 되는 거고요 상태에서 이제 바이리니어의 디플레이션을 하면은

01:06:06

이제 모든 점들에 대해서 아웃라이어 픽셀들에 대해서도 우리가 4개의 이웃을 정상적으로 구하고 바이리니어의 디플레이션을 수행할 수가 있다는 얘기였죠 그래서 기본적으로 패딩은 0을 채우는 제로 패딩을 쓰거나 아니면 외곽의 값을 복사를 하는 제플리케이션을 많이 사용한다 라는 내용이었습니다 오늘도 이 패딩에 대해서 얘기를 할 거고요 그래서 결국에 저희가 이제 새로운 작별기에서 0,0부터 6,6까지

01:06:06

각자를 다 계산을 해서 7x7 이미지에 값을 채워 넣으면 이제 리사이징이 완성이 되는거죠 이렇게 리사이징 할 수가 있고, 그리고 리사이징은 특히 이미지의 사이즈를 키우는 것이니까 저희가 이걸 얘기를 할 때, 업샘플링이라고 얘기를 할 수가 있죠. 이미지를 업샘플링을 한 결과를 이렇게 얻을 수가 있고, 다운샘플링을 하면 어떻게 하느냐 다운샘플링 할 때는 인터폴레이션을 많이 사용하지는 않구요.

01:06:06

인터폴레이션을 사용하기보다는 이제 저희가 전체적인 모든 픽셀의 값을 다 반영을 해줘야 되기 때문에 이런 방식으로 많이 사용을 할 수가 있다. 그래서 전체 픽셀을 그룹으로 만드는 거죠. 우리가 몇 배 줄일 거냐에 따라서 그만큼의 그룹을 형성을 해줘서 여기서 예시는 7배 줄이는 거죠. 그래서 7x7 총 42개의 픽셀들을 묶어서 하나의 그룹 그룹 그룹 그룹으로 본 다음에 그룹 안에서 같이 평균을 내주면은

01:06:06

그러니까 다운색플링을 수행할 수가 있었다 라는 얘기까지 지난 리사이징 내용에서 여기까지 진행을 했습니다 그래서 이렇게 원본 이미지를 다운색플링 하면은 좀 화질이 깨지는 듯한 이미지로 저희가 얻어낼 수가 있습니다 그래서 오늘은 이거를 좀 더 확장을 해서 필터라는 개념을 열거구요 컴퓨터 비전에서 필터라는 말을 많이 씁니다 필터라는 얘기를 많이 쓰는데 우리가 이제

01:06:06

사진을 찍고 거기다가 필터를 씌운다고 얘기를 하죠 그런 것과 유사하게 어떤 이미지에다가 처리를 해주는게 필터의 역할이라고 생각을 해주시면 됩니다 그래서 필터의 정의를 지치필트한테 물어보면 이런 식으로 답변을 해주는데 필터라는 것은 이미지에다가 처리를 하는 기술인데 얘를 하는 이유는 여러가지 이유가 있다고 얘기해요 그래서 이미지의 특정 부분을 강화를 하거나 억제를 하거나

01:06:06

아니면 필요한 정보를 추출할 때 사용하는 거다 그리고 이 필터라는 것은 커너를 적용함으로써 동작한다는 거고요. 그 다음에 이런 필터를 적용하는 과정을 컨볼루션이라고 수학적인 오퍼레이션으로 정리를 할 수가 있다는 내용이에요. 그래서 키워드는 필터, 커널, 컨볼루션 등이 되는 거고요. 뒤에서 배우겠지만 이 필터랑 커널이랑은 거의 똑같은 의미로 많이 사용됩니다.

01:06:06

커널은 똑같은 의미로, 이거를 이미지에 적용하는 과정을 컨볼루션이라고 부르게 됩니다. 그래서 저에서 내용을 볼 거고요. 그래서 압수는 이제 페티피티와의 대화에서 나왔지만 필터를 사용하는 목적이 좀 다양하고요. 그래서 우리가 굳이 이렇게 그림을 그려놓으면 이런 거에요. 저희가 어떤 이미지가 있는데 얘를 어떤 필터링 과정에 입력으로 넣어주게 되는 거고요.

01:06:06

그래서 입력으로 이미지가 들어가고 출력으로 다시 이미지가 나옵니다 그래서 필터링의 입력과 출력은 둘 다 이미지라고 생각을 해주시면 되고요 이 필터링을 하는 과정에서 우리가 커널이라는 게 사용이 된다고 생각을 해주시면 돼요 이미지가 들어왔을 때 저희가 갖고 있는 커널을 이용해서 필터링하면 결과가 이미지로 나온다 일단 이렇게 인터페이스를 생각을 해주시면 되고요 그래서 대표적인 필터링인 LC는

01:06:06

이 노이즈 제거에요. 두 번째 원하지 않는 엘리먼트를 이제 억제하는 거로 생각을 할 수가 있는데 그래서 입력으로 들어가는 거는 노이즈가 굉장히 많이 끼어 있는 이미지가 입력으로 들어오는데 우리가 갖고 있는 어떤 커너를 사용을 해서 필터링이라는 공장을 수정해서 나오는 아웃풋을 봤더니 이미지가 깔끔해지더라 라는 것을 저희가 이 필터링의 대표적인 예시로 볼 수가 있습니다

01:06:06

그래서 이처럼 노이즈와 같이 이미지에서 불필요한 것들을 제거하는데 필터링을 쓸 수가 있구요 그 다음에 첫번째 나온 이미지의 특정 영역을 강화하기 위해서 사용할 수 있습니다 이거는 필요한 영역인거겠죠 그래서 필요한 영역 예를 들어서 이미지의 텍스처라던가 엣지 등을 강화하는데 사용할 수도 있구요 마지막으로는 사실 딥러닝에서 마지막 목적으로 가장 많이 사용하는데

01:06:06

이미지에서 중요한 정보, 중요한 정보라고 하면은 우리가 어떤 문제를 풀기 위해서 사용이 되어야 될 정보를 추출하는 데 사용할 수가 있습니다 그래서 필터링을 통과를 했더니 어떤 딥터를 얻을 수가 있는 거죠 딥러닝에서 딥터라고 얘기할 수 있죠 딥터를 얻는데 사용을 할 수가 있습니다 그래서 이런 세가지 용도로 광범위하게 딥터를 사용할 수가 있구나 이렇게 이야기해주시면 될 것 같구요

01:06:06

그래서 아까 Denoising 외에도 대표적인 예시들이 있죠 그래서 Super Resolution Super Resolution은 Image of Sampling이랑 똑같아요 그래서 Low Resolution의 이미지가 들어왔을 때 이 이미지를 고해상도로 복원을 하는데 Super Resolution이 사용이 될 수도 있고요 그 다음에 E-Painting 이미지의 일부 영역이 지워지거나 가려졌을 때 그 영역을 채우는 것

01:06:06

이런 E-Painting을 푸는데도 사용이 될 수가 있습니다 그래서 이 세 가지 예시를 봤을 때 공통점이 있죠 입력과 출력이 둘 다 이미지라는 거예요 이미지가 들어가고 출력으로 이미지가 아홉 수수로 나오는 게 필터링이 사용되는 방식이구나 이렇게 기억을 해주시면 되겠습니다 그래서 이 예시에서는 세 가지 예시 정도로 들었지만 입력, 출력이 둘 다 이미지인 어떤 문제들은 대부분 필터링으로 풀 수가 있습니다

01:06:06

필터링의 가장 큰 특징을 기억을 해주시면 될 것 같고요 그래서 우리가 이 앞선 슬라이드에서 리사이징해서 다운샘플링을 했었죠 그러면은 다운샘플링을 하는 과정을 우리가 다시 생각을 해보면은 전체의 픽셀이 있을 때 픽셀을 이제 그룹 바위 그룹으로 나눴죠 그룹으로 나눠서 내내는 가까이 하고 우리가 윈도우로 생각을 할 수가 있구요

01:06:06

윈도우로 만든 다음에 윈도우내에 49개의 픽셀이 존재하는데 각 윈도우별로 그 픽셀의 값을 평균을 냈죠 평균을 냈더니 얘가 7배 다운샘플링을 한 것과 똑같더라 라는 것을 우리가 알 수가 있었죠 그래서 이거를 이제 하나의 윈도우를 떼서 보면은 이런 식으로 우리가 수식을 표현을 할 수가 있어요 예를 들어서 저희가 인덱스가 0번부터 6번까지

01:06:06

각 축별로 7개의 픽셀이 존재하죠 그래서 각 축별로 저희가 인덱스를 0부터 6까지 순회를 하면서 이 인덱스에 해당하는 픽셀값을 다 더해주면은 49개를 다 더할 수가 있고 얘를 49분의 1을 곱해서 이제 하나의 값을 맞는 걸로 표현을 할 수가 있죠 그래서 뭐 평균 냈다는 것을 weighted sum으로 저희가 표현을 한 거죠 49분의 1이라는 weight를 곱한 다음에 다 summation을 한 것과 동일하죠

01:06:06

그래서 저희가 평균 냈던 걸 이렇게 좀 더 수학적으로 볼 수가 있고요 얘를 조금 더 분해해서 보면은 결국에 저희가 이 weighted sum 49분의 1을 곱한 거를 사실 49분의 1이라는 값을 가지는데 이 윈도우랑 똑같은 모양의 w가 있다고 저희가 그렇게 놀 수가 있죠 그래서 이 W라는 애는 마찬가지로 7x7의 이미지에요 7x7의 이미지인데

01:06:06

각 이 픽셀에 들어있는 값이 모두 다 40%분의 1이 들어와 있는 애를 우리가 생각을 해볼 수가 있죠 그래서 이렇게 만들고 나면은 우리가 아까 40%분의 1에다가 이미지 값을 모두 다 더한 거를 이제 곱해준 거를 변형을 시켜서 이제 어차피 이 둘의 사이즈가 똑같기 때문에 0,0의 픽셀이랑 0,0의 웨이트를 곱해주고

01:06:06

1,0의 픽셀이랑 1,0의 웨이트를 곱해주고 해서 W랑 이미지를 픽셀별로 픽셀와이즈가 다 고분한 것을 이제 49개 취합한 것과 동일하죠 얘는 어차피 지금 W가 다 49분의 1이기 때문에 여기 수직이 왼쪽과 오른쪽이 똑같다는 것은 계산이 되실 거고요 이런 weight랑 픽셀와이즈로 고불해서 더해주는 과정을 저희가 컴플루션이라고 하는거죠

01:06:06

이때 이 W를 저희 weight matrix를 아까 얘기했던 커널 또는 필터라고 명령을 할 수가 있습니다 그래서 이 컨몰이션이라는 것을 조금 스트릿하게 정의를 하면은 리뉴언 커널을 아무 커널이나 되는 건 아니고요 리뉴언 커널을 원래 픽셀에다가 어플라이를 해주는 과정 어플라이라고 하면은 이제 저희가 이 웨이트 매트릭스를

01:06:06

이 위에다가 올려놓고 빵을 찍듯이 이제 같은 위치에 있는 애들끼리 다 복을 해줘서 더 해주는 거죠 이런 과정을 우리가 컨몰러션이라고 부를 수가 있고요 컨몰러션을 이제 수각노테이션으로 표현하면은 이런 별모양의 *라고 하는 기호로 사용을 할 수가 있습니다 우리가 키보드에서 Shift + 8 누르면 나오는 기호죠 그거를 사용을 할 수가 있습니다 그래서 이거를 이제 linear한 커너를 붙이는 것을 컴플렉션이라고 붙고

01:06:06

이게 linear한지 아닌지는 생각을 해보면은 weighted sum으로 표현이 되죠 어떤 weight 값과 원래 갖고 있던 픽셀 값을 곱한다면 다 더해주죠 곱하기랑 덧셈으로만 이루어져 있으면은 저희가 이거를 linear하다고 얘기를 할 수가 있는 거죠 그래서 이 예시는 정확히 linear한 커너를 적용을 해주는 과정이고 이거를 컴플렉션으로 분단 해주시면 되겠습니다 그리고 아래에 써있는 Trust Correlation Convolution 얘기는 아마 뒤에서 따로 다루도록 할게요

01:06:06

그래서 여러분들은 이 필터를 적용을 한다는게 어떤 의미인지 여기를 알고 가시면 될 것 같아요 그래서 W라는 필터 또는 커널이라고 부르는 애를 적용을 한다는 것은 얘랑 이미지를 이제 빵판 찍듯이 같은 위치에 있는 애들께 다 고분해서 더해주는 과정 이라고 이해해주시면 되겠습니다 그래서 저희가 7x7의 윈도우에서는 7x7의 웨이트를 사용할 수가 있었어요

01:06:06

근데 우리가 갖고 있는 커널은 7x7인데 입력으로 들어오는 이미지가 꼭 7x7일 이유는 없죠 그래서 기본적으로 일반적인 경우에는 이 커널보다 이미지의 사이즈가 큰 경우가 훨씬 많겠죠 이미지 사이즈가 커널보다 크면 내가 컨볼루션을 어떻게 수행할 수 있을까 하는 거고요 이거는 저희가 여러 번 얘기를 했듯이 슬라이드 윈도우로 해결을 할 수가 있어요

01:06:06

저희가 이미지 위에다가 커널을 놓을 건데 이 커널의 센터 포인트가 이미지의 시작 픽셀이 되도록 위치시킨 다음에 얘를 빵판 찍어서 하나 계산을 하고 그 다음에 얘를 한 칸 옆으로 옮겨서 여기가 오겠죠? 이렇게 옮겨서 빵판 찍듯이 계산을 하고 그런 식으로 쭉 계산을 해주면은 여기가 이미지에 대해서 이제 커널보다 큰 이미지에 대해서 컨볼루션을 수행할 수 있는 것이고

01:06:06

이 기법을 슬라이딩 윈도우라고 입은 한다 그래서 사실 이게 저희 히스토그램 할 때 했던 것과 똑같죠 히스토그램에서 페이스를 디텍션하기 위해서 어떻게 했는지를 생각을 해보면은 윈도우를 만들어 놓고 얘를 쭉 이동시키면서 그 윈도우와 시뮬라이티가 높은 위치를 찾았었죠 마찬가지입니다 얘도 터널이라는 윈도우를 만들어 놓고 얘를 쭉 슬라이딩 윈도우를 하는 식으로 계산을 할 수 있는 거죠 그래서 여기서 중요한 거는 커널의 센터 포인트를 좌표가 중요한 거죠

01:06:06

센터 포인트를 이미지의 모든 픽셀에 대해서 다 순회를 하도록 만드는 거죠 그래서 그러면 여기서 컨볼루션 연산이 몇 번 반복되느냐 생각을 하면은 이제 이 이미지의 픽셀 개수만큼 우리가 컨볼루션을 수행할 수가 있는 거죠 그래서 이렇게 쭉 이동을 하면서 값을 계산해서 이런 식으로 만들어낼 수가 있고요 그러면은 이미지가 예를 들어서 지금 보인 게 11x11이에요

01:06:06

11x11 이미지에 대해서 컨볼루션을 그러면은 11x11번 121번 수행을 한 거겠죠 121번을 수행한 결과를 우리가 9푸스로 생각을 하면은 원래 이미지랑 똑같이 11x11이 나오는 것을 알 수가 있죠 12x12 갯수가 나오는 것을 알 수가 있어요

01:06:06

그래서 인풋도 12x12 였는데 아웃풋도 12x12에 이미지가 나오죠 그래서 아까 말씀드렸듯이 이건 컨볼루션 연산에 입력과 아웃풋 출력은 둘 다 이미지가 되는거죠 그래서 제가 만들어낼 수가 있습니다 그래서 이걸 애니메이션으로 보면은 이런 식으로 된다는 거죠 커널을 쭉 약간씩 이동을 시키면서 요 센터 픽셀 좌표에다가 값을 틀어놓아주는 거죠

01:06:06

그래서 아웃풋에서 그래서 입력해서 이제 커널의 가운데 픽셀에 있던 위치가 출력의 그 위치가 되는 거예요 이렇게 위치에 대해서 빵판을 찍은 결과를 오른쪽 아웃미리로 이렇게 연결을 시켜줄 수가 있다는 거죠 그러면은 이제 저희가 이렇게 컨볼루션을 할 건데 지금 보면은 요 첫번째 픽셀에다가 커널에 센터를 놨을 때

01:06:06

여기 뒤에 부분들이 비어있죠 지금 비어있는 부분은 어떻게 할 거냐 계산을 어떻게 할 거냐에 대해서 우리가 고민을 해야 되는 거고 요게 아까 인소프레이션 리사일링 할 때 나왔던 것과 똑같아요 외곽에 대해서는 어떻게 처리를 할거냐 얘도 마찬가지로 패딩으로 처리를 할 수가 있다는거죠 그래서 저희가 어떤 이미지에 대해서 외곽을 이렇게 만들어 주고 싶은거구요

01:06:06

외곽을 어떻게 만들어 주냐에 따라서 조금씩 전략이 달라지는거고 가장 단순한 것은 외곽을 다 0으로 채우는 제로패딩을 쓸 수가 있죠 0으로 채운다는 것은 검은색 테두리를 만드는 것과 동일한 거죠 이렇게 만들게 되는 거고 duplication 같은 경우에는 값을 복사를 하는 거예요 그래서 원래 이미지가 이렇게 되어 있는데 여기 외곽에 있는 픽셀 값을 이렇게 복사를 해주는 겁니다.

01:06:06

끝에 있는 픽셀 값을 이렇게 복사를 해주는 거죠. 그래서 쭉 늘어진 모양으로 만들어지는 게 이제 애플리케이션 방법이고요. 그 다음에 리플렉션을 할 수도 있어요. 리플렉션은 반사를 의미하는 거죠. 그래서 반사를 지켜주는 식으로 얘가 이제 리플렉션인데 외곽에 있는 게 이렇게 반사가 되죠 뒤집어져서 반사가 되고 이렇게 있는 게 이렇게 뒤집어지는 거 부를 수가 있죠

01:06:06

그래서 마지막 리플렉션 식으로 외곽에 엣지에 값들을 채워줄 수가 있고요 그 다음에 필요에 따라서는 우리가 이걸 패딩을 안 붙일 수도 있어요 그래서 네 번째는 패딩을 안 붙인다 패딩을 안 붙이면 어떻게 되는지 생각을 해보면 저희가 원래는 이 픽셀을 센터로 잡아야 되는데 패딩을 안 붙였어요 여기가 비어있으니까 이걸 계산을 못하죠

01:06:06

그래서 여기부터 시작을 하는 게 아니라 여기를 이제 센터 포인트로 삼은 컴플루션부터 시작을 하는 거예요 그러면은 원래 우리가 갖고 있는 픽셀은 12x12의 픽셀을 갖고 있는데 이 커널이 슬라이딩 윈도우를 할 수 있는 영역은 여기밖에 없는 거예요 센터 픽셀의 위치를 기준으로 그래서 총 6x6 영역 내에서만 슬라이드 윈도우가 되겠죠

01:06:06

그러면 아웃풋으로 나오는 것도 6x6으로 나오게 될 거고요 그러면 우리가 12x12의 이미지가 있었는데 이게 6x6, 12x12를 입력으로 받았는데 출력이 6x6으로 나왔다 그래서 다운샘플링의 효과를 여기서 가져갈 수도 있겠죠 그래서 패딩을 안 붙이면 컨볼리션의 결과가 원래 인력 이미지보다 사이즈가 작은 결과를 몇 번 하겠습니다.

01:06:06

패딩을 왼쪽과 같이 붙였을 때는 패딩을 붙였으니까 이 영역에 대해서 우리가 컨볼리션을 다 진행할 수 있는 거죠. 모든 픽셀에 대해서 계산할 수 있고요. 원래는 12x12의 이미지였는데 우리가 패딩을 얼마나 붙여요? 이 코넬 사이즈가 지금 7x7이니까 이 세 칸이 비는 거죠. 로우축이나 클럼축이나 세 칸씩 비는데 좌우상하 이렇게 채워주기 때문에 이제 축별로 여섯 칸씩 늘어나요.

01:06:06

그래서 12x12였던 게 18x18로 늘어난 거고요. 18x18에 1로 늘어난 상태에서 우리가 컴폴레이션을 진행하게 되니까 결국에 12x12가 남게 되는 거죠. 그러면 원래 입력된 이미지 사이즈가 12x12였으니까 입력과 출력의 사이즈가 똑같다고 얘기를 할 수가 있겠습니다. 그래서 이런 식으로 저희가 큰 이미지에 대해서 커널보다 큰 이미지에 대해서 컴플레이션 현상을 수행할 수가 있겠습니다

01:06:06

그래서 연산과 패딩 붙이는 거 조회해 주시면 좋을 것 같고요 그 다음에 우리가 볼 거 이제 Moving Averleys라는 필터를 볼 거고요 이제 결국에 필터링이라는 작업은 아까도 말씀드렸듯이 이제 컨볼루션 연산을 수행을 하는 거죠 우리가 갖고 있는 코너를 이제 인력 이미지에다가 빵판 찍듯이 계속 찍어주면서 Weighted Summation 해주는 게 컨볼루션 연산인 건데

01:06:06

그러면 우리가 어떤 필터, 어떤 커너를 사용을 해서 컨볼루션을 수행하냐에 따라서 당연히 결과가 달라질 거예요 Weighted Matrix를 어떤 걸 써주냐에 따라서 결과가 달라질 거고요 가장 먼저 볼 거는 이제 Box Filter라는 애를 볼 거고요 Box Filter는 우리가 앞에서 봤던 것과 이제 똑같아요 이제 weight matrix가 이렇게 생겼는데 요 커널, weight matrix 내부의 함은 1인데

01:06:06

얘네를 weight를 공평하게 갖고 있는 거에요 그래서 얘는 지금 49개의 픽셀을 가지는 커널이니까 이제 하나의 픽셀당 49분의 1의 weight를 가지면 얘네 weight를 다 합했을 때 1이 되는 거죠 이렇게 공평하게 weight를 분배해서 갖고 있는 커널 또는 필터를 저희가 박스 필터, 박스 커널이라고 얘기를 할 수가 있고요 얘를 이제 적용을 한다는 거는 얘를 이용해서 컨볼루션을 한다는 거는 앞에서 봤듯이

01:06:06

이제 이미지를 윈도우 별로 평균을 내는 것과 똑같죠 49/1을 이제 값에서 더해준다는 것은 평균내는 것과 동일합니다 그래서 이 박스필터를 사용한 컨블루션을 저희가 Moving Average라고 얘기를 해요 그래서 이동평균이라는 이름을 갖게 됩니다 이동하는 이유는 이 커널이 슬라이딩 윈도우를 하는거죠. 슬라이딩 윈도우를 하면서 커널을 슬라이딩 하면서 각각의 위치에서 평균을 계산을 해내기 때문에

01:06:06

예를 들어 컨볼루션 연산을 우리가 moving average라고 얘기를 할 수가 있는 겁니다. 그 다음에 이렇게 평균을 계산하는게 어디에 쓸 수가 있는지를 생각을 해보면 저희가 노이즈를 제거를 하는데 평균 계산이 사용이 될 수가 있습니다. 그래서 noise라는 것은 한두 개의 픽셀이 극단적으로 튀는 현상을 기본적으로 얘기를 하고요 근데 한두 개가 튀더라도 우리가 49개를 평균을 내요

01:06:06

그러면 그 튀는 픽셀의 효과가 완화가 되겠죠 49개를 평균을 하기 때문에 이런 픽셀이 튀는 것을 저희가 조여줄 수가 있습니다 그거를 저희가 noise를 줄인다고 얘기를 할 수 있는 거고요 그래서 이 예시는 지금 7x7의 moving average, 7x7의 박스 필터를 사용한 컴플레이션을 예시로 주는 거고 당연하게도 이게 7x7의 이유는 없어요. 5x5가 될 수도 있고 3x3이 될 수도 있고 박스 필터의 크기에 따라서

01:06:06

서로 다른 moving average를 우리가 만들어 낼 수가 있겠습니다. 그래서 노이즈에 대해서 잠깐 얘기를 하면은 되게 구조적인 노이즈가 이렇게 세 가지 정도 있습니다. 먼저 이제 솔트앤페퍼노이즈라는게 있구요. 솔트는 소금이고 이제 페퍼는 후추죠. 소금은 하얗고 후추는 까맣죠. 솔트앤페퍼를 이름에서 유추할 수 있듯이 흰색 픽셀이랑 검은색 픽셀이 무작위로 들어간 노이즈를 얘기합니다.

01:06:06

그래서 원래 이미지가 이렇게 있을 때 솔트&페퍼 노이즈가 추가되면 이미지의 랜덤한 위치에 RGB가 다 255인 하얀색 픽셀이 들어가거나 다 0인 검은색 픽셀이 섞여 들어가는 것을 솔트&페퍼 노이즈라고 얘기할 수 있고요. 그 다음에 여기서 파워는 빠지고 솔트만 들어간 흰색 노이즈만 들어가는 것을 임펄스 노이즈라고 부르게 되고요.

01:06:06

마지막으로는 Gaussian Noise라는게 있는데 이 Sultenpeper랑 Inverse Noise 같은 경우에는 절대값이 255.0인 픽셀들이 들어갔다고 하면은 Gaussian Noise는 원본값이 조금씩 베리에이션이 생겨서 레이비를 하는거에요 그래서 원본 픽셀값이 원래 200이었는데 Gaussian Noise가 들어가서 212가 됐다던가 아니면 80이었는데 70으로 떨어졌다던가 이런걸 레이비를 합니다 그래서 Gaussian Noise는 distribution은 Gaussian distribution에서 추출된 노이즈가 더해지는 것을 리뷰를 합니다.

01:06:06

Gaussian distribution이라고 하면 평균이 기본적으로 0이에요. Normal distribution 0이 평균이죠. 그래서 조금 작은 노이즈가 추가될 확률은 높고 큰 노이즈가 들어갈 확률은 적은 distribution에서 노이즈가 들어간 거다 라고 얘기해주시면 되겠습니다. 이제 노이즈를 제거하는 걸 우리가 Denoising 이라고 얘기를 할 수 있고요 박스 필터가 Denoising의 역할을 수행을 한다는 거고요

01:06:06

그 예시를 이제 한번 볼 거예요 그래서 우리가 이미지가 있는데 원래 이미지는 검은 배경에 흰색 박스가 있는 이미지예요 이 이미지에 흰색 사각형이 이미지인데 이 이미지에 노이즈 픽셀이 두 개 들어간 상황을 우리가 가정을 합니다 노이즈 픽셀이 여기 들어가고 여기 들어가죠 그래서 흰색 사각형 내부에 거품색 픽셀이 하나 노이즈로 끼고 바깥쪽 어두운 영역에 밝은 픽셀 하나 노이즈로 끼는 상황을

01:06:06

우리가 가정을 할 수가 있고요 그래서 우리가 이 이미지를 딱 봤을 때 이 노이즈가 굉장히 눈에 많이 띄죠 다른 데는 다 90의 이미지들 가진데 혼자 0을 가지니까 확 어두운게 보이고 바깥 때는 다 0인데 혼자 90을 가지니까 확 밝은게 보이는 상황이죠 이 상황에서 우리가 이 이미지가 지금 10x10의 이미지인데 여기다가 박스 필터를 사용을 해서 무빙에버리지를 적용을 해보고 싶은 겁니다

01:06:06

그래서 우리가 3x3의 무빙에버리지를 적용을 하는 거고요 3x3의 무빙에버리지니까 총 9칸이 있고 얘네 웨이트의 합은 1이 되면서 서로 이제 똑같은 웨이트를 나눠 가져야 되기 때문에 각각의 픽셀값은 이제 1/9을 가지는 웨이트를 우리가 산정을 할 수가 있고요 얘를 이제 슬라이딩 윈도우를 해야 되겠죠 슬라이딩 윈도우를 하면서 컴플루션을 시행할 수 있습니다 이 과정을 보면은 이제 지금 여기서는 일단은 엣지 패딩을 무시하고요.

01:06:06

패딩이 없는 상황에서도 생각을 해서 맨 처음에 여기서부터 시작을 하죠. 얘를 이제 센터 포인트로 잡아서 시작하니까 이 센터 포인트의 위치에 컨볼루션의 결과가 들어가야 되는 것을 볼 수가 있고요. 맨 처음 위치에서 박스 필터를 적용한다는 것은 내부에서 평균을 내는 것과 똑같죠 다 0이니까 평균을 내면 0이 되고요 여기는 90 하나 나머지 다 0이니까

01:06:06

평균을 내면 90을 9로 나누니까 10이 되겠죠 옮겨가서 합이 180이고 이 윈도우에서는 180을 99로 나눠주니까 20을 얻을 수가 있고요 20, 30 이런 식으로 다 옮겨갈 수 있어요 이렇게 계산을 할 수가 있고 노이즈가 낀 픽셀에서의 박스 필터 컴플루션을 해보면 90이 8개 있으니까 9로 나눠주면 80이 되는 거죠

01:06:06

그래서 이런 식으로 다 개선을 해낼 수가 있습니다. 그리고 여기 바깥에 하얀색 노이즈가 낀 부분은 개설물 10이 되고요. 개선하면은 이런 결과를 우리가 얻을 수가 있고요. 그래서 지금 우리가 엣지에다가 패딩을 안 씌웠으니까 일단 이미지가 다운샘플링을 된 거로 보이죠. 10x10의 이미지였던 게 8x8로 줄어든 거를 볼 수가 있고요. 근데 이제 이미지를 자세히 들여다보면 조금 블렌딩이 되긴 했지만

01:06:06

이렇게 흰색 사각형이 있는 모습을 볼 수가 있고요. 그래서 원본 이미지의 전체적인 구조는 그대로 가져온 것을 볼 수가 있고 그럼 노이즈는 어떻게 됐는가를 보면은 원래는 왼쪽 이미지 입력 이미지에서는 굉장히 눈에 띄었던 두 개의 픽셀 노이즈가 오른쪽 결과에서는 거의 보이지 않는 것을 볼 수가 있어요 안 보이는 이유는 아까 계산했을 때 과정을 보면 알 수가 있는데 이 노이즈를 둘러싼 컨볼루션을 진행할 때 이 노이즈 값의 주위에 있는 정상적인 픽셀들의 값들이 평균에 기여를 많이 하는 거죠

01:06:06

그래서 노이즈는 90인데 이제 주변에 있는 0000이 영향을 많이 줘서 최종적인 컨볼루션의 결과, 무빙에버레지의 결과 10으로 굉장히 낮은 값으로 서프레스가 되죠. 그래서 이런 노이즈를 많이 억제를 할 수가 있는 것을 볼 수가 있습니다. 그래서 3배 이상 무빙에버리지를 썼더니 노이즈를 제거를 할 수 있는 모습을 살펴보실 수가 있겠습니다.

01:06:06

그래서 원리는 무빙에버리지를 써서 노이즈를 주변에 있는 픽셀들로 중성화를 시키는 효과를 얻을 수가 있다는 것이죠. 그래서 이 식으로 무빙에버리지를 효과를 얻을 수가 있다는 것을 아실 수가 있고요. 그래서 이 박스 필터를 사용을 하는데 3x3을 쓰냐 5x5를 쓰냐 7x7를 쓰냐 박스 필터의 사이즈에 따라서 결과가 달라질 거고요. 우리가 유출을 해보면 3x3은 내부에 9개의 픽셀을 보는 거고 5x5는 25개를 보는 거고 7x7은 49개의 픽셀을 보는 거죠.

01:06:06

그래서 주변 픽셀을 얼마나 더 많이 활용을 하냐가 다른 거고요. 그래서 이 필터의 사이즈가 크면 클수록 주위를 많이 이용하니까 노이즈를 제거하는 데 좀 더 효과적인 것을 알 수가 있습니다. 근데 이렇게 했을 때 문제는 주변에 픽셀을 많이 사용해서 노이즈를 감소시킬 수 있는 장점도 있지만 정상적인 픽셀의 경우에는 원래 내 값을 갖고 있는데 주변에 의해서 약간 뭉개지는 효과를 얻을 수가 있고요.

01:06:06

그래서 스무스한 아웃풋을 얻게 되는. 그래서 스무스 라고 하면 기본적으로 좋은 얘기인데 여기서 오버스무스라고 얘기를 할게요. 그래서 과하게 스무딩이 되어서 조금 블러리한 이미지를 얻어낼 수가 있어요. 그래서 원로보험은 이미지에 대비해서 이제 5x5, 3x3에 비해서 5x5, 7x7를 하면은 이제 점점 더 이미지가 뿌해지는 효과를 얻을 수도 있는 것을 보실 수가 있습니다.

01:06:06

그래서 장단점이 있는 거예요. 주변의 픽셀을 많이 본다는 것은 노이즈를 효과적으로 제거할 수 있는 장점이 있지만 이제 거꾸로 주변의 정보를 너무 많이 반영하다 보니까 원래의 정보를 많이 입고 블러리해지는 효과를 얻을 수가 있다는 거죠. 단점이 존재한다는 거죠. 그래서 장단점을 잘 기억을 해주시면 될 것 같습니다. 그래서 이렇게 Moving Average 박스 필터를 이용한 Moving Average 봐주시면 되고요. 이게 linear한지 보는 거는 뭐

01:06:06

아까 제가 당연히 linear하다고 얘기를 했죠. 가중합으로 표현이 되면 linear한데요. 이거를 굳이 우리가 linear한지 아닌지를 판단을 해주기 위해서 증명을 할 때 이런 것들을 증명할 수 있어요. 그래서 linear하다고 얘기를 하려면 두 가지 특성을 만족을 해야 되고요. 첫 번째는 Edit Beach 이제 더샘에 대한 거고요. 그러면 homogeneity는 이제 스칼라의 곱에 대한 내용입니다. 그래서 additivity의 정의는 이런 식으로 이제 이루어지고요.

01:06:06

저희가 이미지 두 개가 있어요. 이미지 두 개를 더한 거에다가 이 필터링을 적용한 결과랑 이미지 하나하나 개별적으로 필터링을 적용한 다음에 더한 결과 이 두 개가 같아야 저희가 additivity라고 얘기를 할 수가 있는 거고요. 그래서 덧셈이 분해가 되느냐는 거죠. 덧셈을 분해를 할 수 있느냐에 대한 거고 두 번째로 호모지니에티는 스칼라의 곱이라고 얘기를 했죠.

01:06:06

이미지에다가 어떤 스칼라를 곱한 스칼라라고 하면은 상수죠. 0차원의 상수를 곱했을 때 곱하고 필터링을 씌운 결과랑 필터링을 하고 나서 알파를 곱한 결과가 같으냐 을 이제 homogeneity라고 얘기를 합니다. 그래서 저희가 커널이 linear하다면 이 두 가지를 다 만족을 해줘야 되는 거고요. 만약에 두 가지로 하나라도 만족을 못하면

01:06:06

이 커널이 linear하지 않다라고 얘기를 할 수가 있겠습니다. 그래서 우리 커널, moving average 같은 경우에 이런 식으로 정의를 할 수가 있었어요. 이제 notation은 아까는 0에서 9로 썼는데 좀 더 자세히 들어가면은 우리가 센터 픽셀의 위치를 기반으로 input, output 정해지죠 그래서 우리가 x,y 위치에 컴폴루션 결과를 얻으려면은 x,y를 중심으로 이제 커너를 씌운 결과죠

01:06:06

만약에 우리가 센터 포인트를 - I'm sorry. 여기 센터 포인터를 잡았어요. 여기가 x,y면은

01:06:06

얘보다 한탄 왼쪽에 떨어져 있는 것은 예를 들어서 x-1,y가 될 거고요. 한탄 오른쪽으로 떨어져 있는 것은 x+1,y가 되겠죠. 그래서 이 커널 내부의 픽셀들을 보면은 이제 어디부터 시작해서 어디서 끝나는지를 보면은 x에서 이만큼 이동을 했는데 얘는 커널의 사이즈의 절반이죠

01:06:06

그래서 여기는 x-2분의 k-1이 되고요 y-2분의 k-1이 위치가 되는 거고 끝에 위치는 플러스가 되는거죠 이런식으로 결정이 되는걸 볼 수가 있어요 일단은 기본적으로 우리가 이 센터 픽셀의 좌표를 기준으로 설정을 한다는거는

01:06:06

커널이 센터를 가진다는거죠 센터를 가지려면 커널의 사이즈의 홀수를 사용해야 가운데로 만들어지죠 그래서 저희가 사용하는 대부분의 코너는 있다는 홀수의 사이즈를 가져요. 그래서 K by K 커널이라고 하면 K가 홀수인거에요. 그러면 우리가 7 by 7, 5 by 5, 3 by 3 썼듯이 홀수로 되는거구요. 그러면 커널 사이즈의 절반은 예를 들어서 저희가 7 by 7이면은

01:06:06

중심 픽셀을 기준으로 양 끝까지 3칸 이동을 하죠. 3칸이라고 하면 K를 1로 빼고 1을 빼고 2로 나눈 결과입니다. 그래서 K가 7이면은 7에서 1 빼서 6을 2로 나눠서 3이 되는거죠. 그래서 중심 픽셀 기준으로 왼쪽 오른쪽 사과 좌우로 3칸씩 이동을 할 수가 있는 거고 그거를 이제 우리가 시그마에 녹여내면은 이런 식으로 표현을 할 수가 있습니다 그래서 이미지에 x+i, y+j로 할 건데

01:06:06

i랑 j가 어디부터 어디까지 이동을 하려면은 이제 왼쪽이나 위로 가면은 -2분의 k-1 놓고 오른쪽이나 아래 끝으로 가면은 2분의 k-1이 되는거죠 이렇게 해서 저희가 이제 코널의 사이즈를 이제 k라는 변수로 일반화를 했을 때 이런 식으로 컨볼러션을 표현을 할 수가 있겠습니다

01:06:06

됐죠? 그래서 우리가 이 moving average를 이렇게 만들 수 있는데 얘가 예비한지 아닌지 판단할 수가 있고요 Additivity랑 homogeneity를 우리가 증명을 해 볼 수가 있어요 그래서 일단 moving average의 Additivity를 증명을 해 보면은 증명을 하는 거는 결국에 이 I1+I2에다가 moving average를 적용을 한 게

01:06:06

각각의 moving average를 적용해서 더하는 것과 똑같냐를 살펴보면 되는 거고요 그래서 우리가 앞에서 movingEverage 공식에 따르면은 이런 식으로 표현을 할 수가 있겠죠 두 이미지를 더한 거에다가 movingEverage를 취하는 거는 결국에 우린 시그마는 덧셈으로 분리를 할 수가 있으니까 i1과 i2로 쪼갤 수가 있고요 이게 분리를 하고 나면은 이 앞에 거는 이미지 1에다가 무빙에버리지 적용한 거고

01:06:06

뒤에 거는 이미지 2에다가 무빙에버리지 적용한 거죠. 그래서 저희가 I1이나 I2 이미지를 두 개 더한 다음에 무빙에버리지를 적용한 거는 각각에 적용을 해서 더한 것과 똑같다는 결과를 얻을 수가 있고 이렇게 수식을 쓰는 것 자체가 우빙에버리지의 에디티비티를 증명한 것과 똑같죠. 증명을 했다고 얘기를 할 수가 있겠습니다. 그러면은 마찬가지로 우리가 호모지네이티도 증명을 할 수가 있죠

01:06:06

증명 자체는 뭐 어렵지 않죠 이미지에다가 알파라는 스칼라를 곱해서 무리에버리지를 적용한 결과는 저희가 이런 식으로 수술을 전개할 수가 있고 이 알파가 여기에는 지워져야 되죠 앞으로 튀어나올 수가 있죠. 알파가 튀어나오고 나면은 이 뒤에는 원본 이미지에 우리의 오류제출을 한 거에다가 알파를 뽑은 것과 똑같다 라는 그런 거를 얻을 수가 있습니다.

01:06:06

이렇게 하면은 이제 호모지니아틱도 우리가 증명을 할 수가 있는 거에요. 그래서 이렇게 앞에서 에디티비티랑 호모지니아티를 두개를 증명을 하면 우리가 박스 필터를 사용한 컨볼루션 연산은 리니어하다라고 얘기를 해줄 수가 있는 거고 둘 중 하나라도 만족을 못하면 리니어하지 않다라는 결과가 나오는 거예요 그래서 증명에 따르면 얘가 리니어하고 필터도 리니어하다고 얘기를 할 수가 있는 거고요

01:06:06

사실 아까 얘기했듯이 컨볼루션은 리니어한 커널을 이제 씌우는 것을 컴플레이션이라고 얘기를 했죠 그래서 이 Moving Average는 컴플레이션이라고 볼 수가 있습니다 그래서 우리가 이 Linear한 게 뭐가 중요하냐고 이제 생각을 할 수가 있는데요 얘가 이제 Linear하면은 우리가 GPU에서 연산을 할 때 굉장히 효율적으로 계산을 할 수가 있어요 그래서 곱하고 나서 이 오퍼레이션을 취하는 거랑

01:06:06

오퍼레이션을 하고 곱한 것과 똑같다는 거죠 그래서 이 gpu를 사용하면 이 오퍼레이션을 이 gpu의 각 코어로 나눠서 계산을 한다면 나중에 합쳐줄 수 있는 겁니다 그래서 우리가 딥러닝 모델에서 사용하는 대부분의 오퍼레이션이 리뉴한 오퍼레이션으로 이루어져 있어요 많이 배우셨겠지만 우리가 컨볼루션이 됐던 아니면 셀컨벌루션이 됐던 다 곱과 합으로 이루어져 있죠 다 리니어하게 되어 있기 때문에 이 gpu에서 사용을 할 때 이제 가속 최적화가 굉장히 수월하게 된다는

01:06:06

얘기를 할 수가 있고요 요게 딥러닝에 굉장히 적합한 특성이에요 그래서 우리가 어떤 오퍼레이션을 봤을 때 얘가 리니어한 건지 아닌지를 판단하는 게 제일 중요하다 이렇게 얘가 왜 중요한지를 요거에 빗대서 기억을 해주시면 되겠습니다 이거는 아마 다음 시간에 볼건데요. 저희가 이제 바이널이제이션, 스트레스 월딩에 대해서 한번 hsv때 얘기를 했던 것 같은데 저희가 어떤 이미지 픽셀의 값이 100보다 크면은 1로 만들고 아니면은 0으로 만드는

01:06:06

그리고 1, 0으로 했는데 250으로 생각을 해도 똑같아요. 똑같죠? Thresholding operation이 있어요. 우리가 경계선을 100에 두고 100보다 크면은 다 200가고 100보다 작으면 다 0으로 만드는 operation. 이걸 Thresholding이라고 얘기를 했고, Binalization이라고 얘기를 했었죠. 그래서 여러 개로 퍼져 있는 값들을 둘 중 하나로 만들어주기 때문에 Binalization이라고 얘기를 할 수가 있는데 그래서 왼쪽 이미지에서 Thresholding 적용을 하면은 밝기 값에 대해서 Thresholding 적용하면은 오른쪽과 같은 이미지를 얻을 수 있고, 대비를 극과 극으로 만드는 이미지를 얻을 수 있는데, 이 Thresholding operation은

01:06:06

리니어 할까에 대해서 우리가 증명을 해 볼 수가 있고요. 이거는 다음 시간에 제가 증명을 해 볼 건데 리니어 할지 안 할지 한번 고민을 해 보시면 좋은 것 같습니다. 놓고 왔고요. 무빙의 벌집 G는 다음 시간에 할 거고 저희 추석 있잖아요. 여기 휴강이니까 또 보강을 제가 녹화를 해서 올려드리도록 할 거고요.

01:06:06

오늘 끝내기 전에 마지막으로 데모 한 번만 보고 끝낼게요. 제 데모를 연구실 홈페이지에다가 올려놨어요. 그래서 요거를 참고를 해서 보시면 되구요. 연구실 홈페이지 주소는 저의 인트로덕션 할 때 있었고 공지상에 올려드릴게요. 그래서 요거를 제가 클로타