본문 바로가기
딥러닝 어쩌구/연구일지&디버깅

(ing) fundamental matrix를 활용하여 이미지 이어붙이기

by 포숑은 맛있어 2023. 6. 1.
반응형

파노라마 비슷한걸 만들거다.

 

챗지피티한테 물어봤다

대답

- 마스킹 영역을 골라내고

- 이미지 피쳐를 뽑아서 (고전 알고리즘 쓰거나, 딥러닝 CNN 쓰거나 등등)

- feature vector들로 클러스터링 알고리즘을 돌려라.

- 클러스터링 알고리즘은 Kmeans나 DBSCAN등이 있다.

 

어찌저찌 딥러닝 feature 사용하고 마스킹 적용하고 등등 필요한 조건 넣어서 클러스터링 했고, 그렇게 얻은 클러스터가 여러개다.

이미지가 끼리끼리 모두 매칭되진 않는다. 이거 파노라마처럼 각각 어떻게 만들지...

 

문제가 복잡해서 챗gpt가 잘 대답을 해주진 않는다.

-

 

1.

fundamental matrix

Fm, inliers = cv2.findFundamentalMat()

이거 구한걸 사용할 방법이 없나?

 

 

2.

stitcher

https://docs.opencv.org/4.x/d2/d8d/classcv_1_1Stitcher.html

https://medium.com/@navekshasood/image-stitching-to-create-a-panorama-5e030ecc8f7  

 

stitcher 쓰지 말까. 설명이 잘 없네 음..

homography 커스텀 하는게 있는 것 같긴한데 순서 어떻게 넣어야하는지도 모르겠고.

 

 

3.

https://stackoverflow.com/questions/13063201/how-to-show-the-whole-image-when-using-opencv-warpperspective   

이렇게 cv2.warpPerspective()를 쓰는 방법도 있을듯. 다만 3장 이상의 이미지에 해야하고, exhaustive pair가 있는게 아니라서 ... 흠...

 

이걸로 해야겠다. 그래프 탐색으로 구현하자. 각 edge당 inlier만 가지고 homography를 구하고, 이걸로 leaf node부터 올라가면서 parent node와 warpperspective() 하자. 올라가면서 붙이고 붙이고 하면 될듯...

적용해야할 제약이 많아가지고 opencv stitcher를 어떻게 바꾸느니 이거 구현하는게 훨 빠르겠다.

 

 


homography matrix?

 

3*3

 

반응형

댓글