이전에 미분 가능한 top-k / argmax 질문 올렸던 사람임
해보고 싶은게 정확하게는
두 이미지를 각각 segmentation 했을 때 비슷할 것인가? 를 판단하는 메트릭이 필요한데
(segmentation은 아니어도 되고, 어쨋든 이미지 전반의 local, global 한 구조를 비교해야 함)
segmentation 은 신경망이 아니라 고전적인 방법으로 진행해야 함
내 경우에 LPIPS, SSIM, PSNR 같은 걸 비교하는 건 적절하지 않음
각각의 이미지에 대해
spectral clustering 같은 걸 해서 graph adjacent matrix 나 graph laplacian 를 계산한 다음
이것들로 두 이미지의 구조적인 유사성을 비교하려고 함.
고전적인 segmentation 관점에선 graph laplacian의 eigenvector들을 여러개 구한다음에 이것들의 차이를 구하는게 맞을 거 같은데
eigenvector들을 잔뜩 구한다음에 걔들끼리의 직교성을 본다 이런 거 좀 수치적으로 애바 같고
그래프 이론 찾아보니까 random walk kernel 같은게 제일 적절해보였는데
제대로 찾아가고 있는지 모르겠다
주변에 이런 거 하는 사람이 없어서 혼자 이상한 곳으로 쳐박히는 거 아닌가 싶어서
여기 비전 하는 사람이 드물어서 언제 답글이 달릴지는 모르겠다... - dc App
안 달리면 어쩔 수 없고 그런거지 머 그리고 비전하는데서만 물어보면 그쪽에서의 생각에 매몰되는 느낌도 있어서 오히려 괜찮음
왜 굳이 spectral clustering 의 결과물을 graph로 보려는거임? 클러스터들이 그래프처럼 보여서?
물론 이 방법이 틀린건 아닌데, 그냥 괜찮아보여서 하는건지 아니면 논리적으로 설명 가능한 나름의 이유가 있어서 하는거임?
우선 지적 해줘서 고맙다 결과물이 그래프라기 보다는, spectral clustering이 픽셀 간의 차이를 이용해서 구성한 행렬에 대해, laplacian의 PCA를 수행하기도 하고, 아니면 graph cut을 이용해서 클러스터를 나누기도 하니까, 픽셀값 차이를 이용해서 0, 1의 값을 가지도록 구성한 행렬에 대해, 이를 adjoint matrix로 가지는 그래프를 각각 있다고 생각한다음 그들간의 차이를 구해도 되지 않을까? 라고 생각했었음
그리고 graph의 eigenvector는 구조가 아주 조금만 달라져도 급격하게 변함. 이러한 특징이 본래 목표인 segment된 image가 비슷한가를 측정하는데 적합한지 생각해봄?
확실히 그건 맞겠네 노이즈에도 취약하기도 할 거 같고 그러면 하나의 이미지 x를 이용해서 대해서 laplacian을 계산해서 만든 행렬 A에 대해서, 다른 이미지 y를 곱해서 |Ay|/|y| 를 계산해서 직교성을 보는 것도 취약할까