수학적 영상처리

그림에서 직선이 모두 몇개 일까요?

제갈티 2024. 10. 11. 08:30

이 그림에 직선들이 몇개가 있을까요?

 

- 퀴즈입니다. 세어 보세요.

- 쉬워보이지만 의외로 방향이 제각각 이라 카운트가 무척 어렵습니다. ...

- 특히나 아이폰 같은것으로 보면 그 위에 숫자를 적으면서 카운트 할수도 없어서 더 어렵죠. 

- 이제 이 문제를 몇가지 수학적 영상처리 기술로 풀어보겠습니다...

 

허프변환 결과

- 직선검출에 가장 많이 사용하는 허프(Hough)변환으로 직선들을 검출해 보니, 우상단의 짧은 직선 2개를 인식 못하는군요 ..

길이가 짧아서 피크가 희미하고 따라서 검출을 못해내는거 같습니다.

 

라돈변환 결과

- 이건 Radon변환 결과 입니다. 라돈변환은 허프변환과 비슷하지만 회전투영을 이용하고, 이진화같은 전처리가 필요없는 차이가 있습니다.

라돈변환으로도 역시나 12개정보 밖에 검출하지 못하네요 ... 

 

푸리에변환 결과

- 이건 2차원 푸리에 변환의 결과인 진폭 스펙트럼으로 직선들을 재배열한 후 카운트를 해본겁니다.

역시 12개 정도 밖에 안보이네요 .. 길이가 짧은 직선은 상대적으로 희미하게 나타나기 때문입니다.

 

- 결론 : 역시 사람의 눈은(뇌 포함) 대단 합니다.

- 허프변환도, 라돈변환도, 그리고 푸리에변환도 형식은 다르지만 모두 변환된 공간인 2차공간을 가지고 있습니다. 그런 2차공간을 어떻게 후처리하고 피크등과 같은 피쳐를 검출하느냐에 따라 검출 결과(성능)는 달라지죠.

- 하지만 대부분의 기성품 영상처리 라이브러리는 그런 2차공간을 잘 보여주지 않으며, 어떤 후처리가 이루어지는지도 공개를 않하고 후처리에 사용자가 관여하여 최적화를 할수 있는 가능성을 차단합니다.

- 따라서 라이브러리 의존 대신 직접 변환 알고리즘을 작성하여 후처리를 최적화하면 더 나은 검출결과를 얻을수도 있습니다. 


 

- 추가로 chatGPT나 끌로드 같은 인공지능 챗봇들에게도 물어보았습니다...

 

끌로드에게 물어본 결과

- 이건 인공지능 챗봇중 하나인 끌로드(Cluade)에게 이미지를 업로드하고 트폼프트로 물어본 결과입니다. 14개를 맞추네요~! 대단하지요?

참고로 현존 최고성능의 모델인 Sonnet 3.5 모델을 사용하였습니다.

 

chatGPT 4o 모델에게 물어본 결과

- 하지만 챗지피티는 정확한 답을 피해서 두리뭉실하게 대답하면서도 그 범위마저 틀려버리네요 --;

챗지피티 4o 실망입니다~

로컬 LLM인 llava 에게 ollama 를 이용해 물어본 결과

- 역시 로컬 LLM들은 CLIP 기반의 비전 모델들이라  VQA성능이 아직은 모자란것 같습니다.