"스틸 사진 보고 야동, 영화 제목 맞추기, 음악 일부 듣고 원본 찾기, 소리 듣고 무슨 소리인지 맞추기, 목소리 듣고 누구인지 맞추기, 문장 읽고 책 원전 찾기, 만화보고 원본 찾기, 표지 보고 책 찾기, 사진 보고 원본 위치 찾기, 얼굴보고 누구인지 맞추기, 대사 듣거나 상황 보고 관련 영화나 드라마, 연극 찾기, 춤보고 안무가와 댄서 맞추기, 사진보고 위치 찾기, 동식물 보고 종류 찾기, 예술품 보고 작가 찾기, 아이콘이나 스크린샷 보고 프로그램이나 웹사이트 주소 찾기, 패션보고 판매처 찾기, 보석보고 제작자 찾기, 상품 보고 판매처 찾기, 음식보고 요리사 맞추기, 음료 맛보고 생산자 맞추기, 향수 맡고 성분 맞추기, 음식 맛보고 재료 맞추기 등을 하는 달인이 있을지도 모르겠네요."
재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.
간단하게 설명드리자면,
예를 들어 "컵"을 찾고 싶으시다면,
컵만 찍혀있는 이미지를 모아둔 데이터베이스가 필요하구요. (이걸 template이라고 합니다.0
이런 이미지들을 F1, F2, F3... Fn 이라고 한다면,
이미지들로부터 feature components를 뽑아내야합니다.
이런 이유는 이미지는 2D pixel 데이터인데,
두 장의 이미지를 유사도를 비교하기 위해서 2D pixel 데이터끼리 pixel-by-pixel 비교를 하는건 속도도 느리고,
해당 사물(컵)이 scale, rotation 에 따른 각각의 template을 만드는 건 비효율적이죠.
즉 scale, rotation에 상관없이 사물(컵)에 대한 고유 특징을 나타내는 정보를 뽑아내야하고 이것을 descriptor라고 합니다.
descritpor 종류도 여러가지인데요.
computer vision 수업을 들으면 아마 fourier descriptor 과 hough transformation 을 수업 초반부에 배우실 수 있을 겁니다.
위에서 말한 두 가지 방법이 유명하구요.
좀 더 세부적으로 가면 얼굴 인식을 위한 LBP (local binary patterns) 그리고 배경(건물, 나무, 해변..)을 분석하기 위한 GIST descriptor 같은 방법이 있습니다.
그런 이런 template (F1, F2... Fn)과 그것으로부터 얻은 descriptor (f1, f2, ... fn)가 있다고 가정합니다.
주어진 입력 이미지(여러가지 사물이 찍혀있는)에서 우리가 원하는 사물(컵)이 포함되어있는지 볼려면,
subwindow search를 합니다.
즉, 주어진 입력 이미지가 800*600 사이즈라면
적당한 윈도우크기 100*100 를 정하고,
윈도우를 (0,0)에서 (700,500)까지 움직이면서 해당 영역의 이미지와 우리가 가지고 있는 template descriptor를 비교하고
유사도가 threshold 값 안으로 들어오면 해당 영역을 우리가 원하는 사물(컵)이라고 보면 됩니다.
이 과정은 machine learning 기법을 이용해서 좀 더 복잡하고 정확하게 해결할 수도 있습니다. (cascade booster classifier라든지.. support vector machine 같은 방법들이죠.)
자세한건 computer vision 자료를 찾아보시구요.
구현은 속도가 문제가 안된다면, OpenCV 보다는 matlab을 이용하시는게 빠르게 원하시는 기능을 만들 수 있을 겁니다.
OpenCV가 속도는 빠르지만 좀 더 코딩 양이 많아지거든요.
단순히 이미지 자체를 비교하신다는 거면 사진
단순히 이미지 자체를 비교하신다는 거면 사진 포맷보신후
사진정보를 보는 헤더정도만 날리신다음 바이너리 비교하시면 되지 않을까요?
2개의 다른사진에 찍힌 피사체가 동일한 물건인지를 판단하는거라면
힘들꺼라 생각됩니다.
구글 이미지
구글 이미지 검색
http://support.google.com/images/bin/answer.py?hl=ko&p=searchbyimagetooltip&answer=1325808
TinEye
http://www.tineye.com/
직접 만들기
재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.
아이디의 아이디어 무한도전
http://blog.aaidee.com
귀태닷컴
http://www.gwitae.com
동영상 스크린샷
동영상 스크린샷 검색
http://www.imideo.com/
참고: http://kldp.org/node/115927#comment-530881
"스틸 사진 보고 야동, 영화 제목 맞추기, 음악 일부 듣고 원본 찾기, 소리 듣고 무슨 소리인지 맞추기, 목소리 듣고 누구인지 맞추기, 문장 읽고 책 원전 찾기, 만화보고 원본 찾기, 표지 보고 책 찾기, 사진 보고 원본 위치 찾기, 얼굴보고 누구인지 맞추기, 대사 듣거나 상황 보고 관련 영화나 드라마, 연극 찾기, 춤보고 안무가와 댄서 맞추기, 사진보고 위치 찾기, 동식물 보고 종류 찾기, 예술품 보고 작가 찾기, 아이콘이나 스크린샷 보고 프로그램이나 웹사이트 주소 찾기, 패션보고 판매처 찾기, 보석보고 제작자 찾기, 상품 보고 판매처 찾기, 음식보고 요리사 맞추기, 음료 맛보고 생산자 맞추기, 향수 맡고 성분 맞추기, 음식 맛보고 재료 맞추기 등을 하는 달인이 있을지도 모르겠네요."
재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.
아이디의 아이디어 무한도전
http://blog.aaidee.com
귀태닷컴
http://www.gwitae.com
object recognition 을 원하시는 거라면.
혹시 질문자께서 원하는 내용이
임의로 주어진 사진에서 특정 사물(컵, 책, 콜라캔..) 같은 것들을 찾는 내용을 원하시는 건가요?
제 연구 주제가 computer vision의 object recognition이랑 연관이 되어있어서 원하시는 내용이 제가 말씀드린 것과 같은 내용일 거라 생각됩니다.
computer vision 쪽에서 object recognition을 찾아보시면 다양한 방법들이 나와있구요.
http://en.wikipedia.org/wiki/Outline_of_object_recognition
위키에도 방법론이 쭉 나오네요.
간단하게 설명드리자면,
예를 들어 "컵"을 찾고 싶으시다면,
컵만 찍혀있는 이미지를 모아둔 데이터베이스가 필요하구요. (이걸 template이라고 합니다.0
이런 이미지들을 F1, F2, F3... Fn 이라고 한다면,
이미지들로부터 feature components를 뽑아내야합니다.
이런 이유는 이미지는 2D pixel 데이터인데,
두 장의 이미지를 유사도를 비교하기 위해서 2D pixel 데이터끼리 pixel-by-pixel 비교를 하는건 속도도 느리고,
해당 사물(컵)이 scale, rotation 에 따른 각각의 template을 만드는 건 비효율적이죠.
즉 scale, rotation에 상관없이 사물(컵)에 대한 고유 특징을 나타내는 정보를 뽑아내야하고 이것을 descriptor라고 합니다.
descritpor 종류도 여러가지인데요.
computer vision 수업을 들으면 아마 fourier descriptor 과 hough transformation 을 수업 초반부에 배우실 수 있을 겁니다.
위에서 말한 두 가지 방법이 유명하구요.
좀 더 세부적으로 가면 얼굴 인식을 위한 LBP (local binary patterns) 그리고 배경(건물, 나무, 해변..)을 분석하기 위한 GIST descriptor 같은 방법이 있습니다.
그런 이런 template (F1, F2... Fn)과 그것으로부터 얻은 descriptor (f1, f2, ... fn)가 있다고 가정합니다.
주어진 입력 이미지(여러가지 사물이 찍혀있는)에서 우리가 원하는 사물(컵)이 포함되어있는지 볼려면,
subwindow search를 합니다.
즉, 주어진 입력 이미지가 800*600 사이즈라면
적당한 윈도우크기 100*100 를 정하고,
윈도우를 (0,0)에서 (700,500)까지 움직이면서 해당 영역의 이미지와 우리가 가지고 있는 template descriptor를 비교하고
유사도가 threshold 값 안으로 들어오면 해당 영역을 우리가 원하는 사물(컵)이라고 보면 됩니다.
이 과정은 machine learning 기법을 이용해서 좀 더 복잡하고 정확하게 해결할 수도 있습니다. (cascade booster classifier라든지.. support vector machine 같은 방법들이죠.)
자세한건 computer vision 자료를 찾아보시구요.
구현은 속도가 문제가 안된다면, OpenCV 보다는 matlab을 이용하시는게 빠르게 원하시는 기능을 만들 수 있을 겁니다.
OpenCV가 속도는 빠르지만 좀 더 코딩 양이 많아지거든요.
그럼 도움이 되었길..
댓글 달기