사진 이미지 일치하는 이미지 찾는 방법

zard320의 이미지

안녕하세요 컴공을 공부하고 있는 학생입니다

학교과제로 시스템 프로그래밍을 수강하고 있는데 임베디드 보드에서 어떠한 물품의 사진을 찍고

그사진을 서버로 옮긴후 서버에서 가지고 있는 물품의 사진과 일치하는 물품을 찾는 그런 방법이 있을까요??

open cv를 공부해서 해야하는지 아니면 이미지검색같은 사이트가 있어서 파싱해서 하면 할 수 있는지 궁금합니다 ㅠㅠ

답변해주시면 감사하겠습니다

lmk378의 이미지

단순히 이미지 자체를 비교하신다는 거면 사진 포맷보신후
사진정보를 보는 헤더정도만 날리신다음 바이너리 비교하시면 되지 않을까요?

2개의 다른사진에 찍힌 피사체가 동일한 물건인지를 판단하는거라면
힘들꺼라 생각됩니다.

cleansugar의 이미지

재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.

아이디의 아이디어 무한도전
http://blog.aaidee.com

귀태닷컴
http://www.gwitae.com

cleansugar의 이미지

동영상 스크린샷 검색
http://www.imideo.com/

참고: http://kldp.org/node/115927#comment-530881

"스틸 사진 보고 야동, 영화 제목 맞추기, 음악 일부 듣고 원본 찾기, 소리 듣고 무슨 소리인지 맞추기, 목소리 듣고 누구인지 맞추기, 문장 읽고 책 원전 찾기, 만화보고 원본 찾기, 표지 보고 책 찾기, 사진 보고 원본 위치 찾기, 얼굴보고 누구인지 맞추기, 대사 듣거나 상황 보고 관련 영화나 드라마, 연극 찾기, 춤보고 안무가와 댄서 맞추기, 사진보고 위치 찾기, 동식물 보고 종류 찾기, 예술품 보고 작가 찾기, 아이콘이나 스크린샷 보고 프로그램이나 웹사이트 주소 찾기, 패션보고 판매처 찾기, 보석보고 제작자 찾기, 상품 보고 판매처 찾기, 음식보고 요리사 맞추기, 음료 맛보고 생산자 맞추기, 향수 맡고 성분 맞추기, 음식 맛보고 재료 맞추기 등을 하는 달인이 있을지도 모르겠네요."

재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.

아이디의 아이디어 무한도전
http://blog.aaidee.com

귀태닷컴
http://www.gwitae.com

addnull의 이미지

혹시 질문자께서 원하는 내용이
임의로 주어진 사진에서 특정 사물(컵, 책, 콜라캔..) 같은 것들을 찾는 내용을 원하시는 건가요?

제 연구 주제가 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가 속도는 빠르지만 좀 더 코딩 양이 많아지거든요.

그럼 도움이 되었길..

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.