2011-01-19 4 views
7

저는 지리 물리적 인 프로젝트에서 일하는 친구를 돕고 있습니다. 나는 어떤 이미지 처리 전문가도 아니지만, 이러한 종류의 문제로 을 놀아 보는 재미가 있습니다. =)바위 위의 높이 찾기

목표는 물에서 튀어 나온 작은 바위의 높이를 표면에서 상단으로 추정하는 것입니다.

실험 장비는 레이저 포인터가 내장 된 거리 측정기에 ~ 10MP 카메라가 장착됩니다. "연산자"는 암석에서이를 가리키고, 바위의 사진을 따라 거리를 등록하는 트리거를 누르십시오.이 이미지는 이 이미지의 중앙에 위치합니다.

장비는 항상 물 위에서 일정한 거리를 유지한다고 가정 할 수 있습니다.

내가보기으로 많은 문제가 극복 할 수있다 : 등 하루 중 시간에 따라

  1. 조명 조건

    • 이 바위는 다음 밝아 수 있습니다 물 또는 그 반대.
    • 때때로 바위는 물에 매우 가까운 색을 띠게됩니다.
    • 그늘의 위치는 하루 종일 움직입니다.
    • 물의 거친 정도에 따라 때로는 물 속에 바위가 반사 될 수 있습니다. 암석이 고르게 형성되지

    • 다양성.

    • 암석 유형, 이끼류의 성장 등에 따라 바위 모양이 바뀝니다.

Fortunateness는 테스트 데이터의 부족이 없다. 물 속의 암석 사진은 쉽게 볼 수 있습니다. 다음은 몇 가지 샘플 이미지입니다. alt text 이미지에 가장자리 감지기를 실행했습니다. 네 번째 그림에서는 열악한 대비 때문에 가장자리를보기가 어려워집니다. alt text 모든 아이디어를 높이 평가할 것입니다!

+0

그들은 동일한 문제에 조금 작동합니다 : http://gaugecam.com/blog/?page_id=62 (비록 당신의 문제에 대한 해결책이 없음) – svrist

+0

가장자리 감지기를 더 조정할 수있는 것처럼 보입니다. http://en.wikipedia.org/wiki/Edge_detection – svrist

+0

이것은 시력 문제입니다. 가장자리 감지기를 개선하는 데 도움이되지 않는다면 말입니다. – koan

답변

4

가장자리 감지가 바위를 감지하는 가장 좋은 방법이라고 생각하지 않습니다. 산속이나 물 속의 반사와 같은 다른 물체는 모서리를 만듭니다. 이미지의 각 픽셀에 대한

  • 그에서 중심되는 N × N 인근에서 이미지 기술자의 집합을 추출 :

    난 당신이 바위 이미지의 배경에서 세그먼트 픽셀 분류 방법을 시도하는 것이 좋습니다 픽셀.

  • 이미지 세트를 선택하고 픽셀을 바위 또는 배경으로 수동으로 레이블을 지정합니다.
  • 레이블이 지정된 픽셀과 해당 이미지 설명자를 사용하여 분류 자 ​​(예 :Naive Bayes 분류 자)

암석은 비슷한 질감을 갖는 경향이 있기 때문에 텍스처 이미지 설명자를 사용하여 분류자를 학습 시켰습니다. 예를 들어 강도 값의 평균 및 표준 편차와 같은 각 색상 채널 (R, G, B)에서 몇 가지 통계 측정 값을 추출해 볼 수 있습니다.

+0

그래, NB와 같은 확률 분류자를 사용하려고 생각했지만 반사음을 제거하는 방법을 생각할 수 없다. – Theodor

2

바위를 찾기 위해 색상을 세분화하고 가장자리를 감지하여 상단을 찾습니다.

수위를 찾으려면 나는 모든 물 - 암석 경계를 찾으려고 노력할 것이고 수평선 (가능한 경우)은 물의 표면에 평면을 맞출 것입니다. 그런 식으로 바위 반사에 대해 걱정할 필요가 없습니다.

카메라와 물 사이의 피치 각을 알고 카메라가 수평으로 수평을 이루는 경우 (롤) 쉽게 볼 수 있습니다.

ps. 이것은 내가 생각했던 것보다 훨씬 더 어렵습니다. 모든 바위와의 거리를 알지 못해서 비행기에 잘 맞지 않습니다.

실제로 반사가 레벨을 찾고, 바위 가장자리 감지에서 대칭적인 경로 가장자리를 찾고 정점을 선택하는 이상적인 방법입니다.

+0

바위가 이미지의 중심에 위치하므로 이미지에서 바위를 찾는 것이 문제가되지 않는다. 그러나 아마 당신은 이미지에서 암석을 추출하는 것을 언급합니다. 비행기를 물 표면에 장착하는 것이 좋습니다. 그러나 반사를 어떻게 필터링합니까? 카메라 삼각대에있는 것과 같은 간단한 수준을 장비에 맞추면 쉽게 수행 할 수있는 롤 및 피치 각을 알고 동의합니다. – Theodor

2

픽셀 분류는 여기서 작동하지만 100 % 정확도를 제공하지는 않습니다. 데이터의 분산은 정말로 크기가 크며, 바위는 다른 색상 (조명으로 "손상됨")과 다른 질감을 가지고 있습니다. 따라서 글로벌 정보도 고려해야합니다.

처리 할 문제는 전경 추출입니다. 내가 아는 두 가지 접근법이 있습니다.

  1. 그래프 컷을 통한 에너지 최소화. http://en.wikipedia.org/wiki/GrabCut (문서 및 OpenCV 구현에 대한 링크가 있음). 일부 초기화 ("시드")는 (사용자가 또는 주변에 물이있는 동안 바위가 중심에있는 것처럼 사전 지식에 의해) 수행되어야합니다. 입력의 다른 변형은 대략적인 경계 사각형입니다. 그것은 MS 오피스 2010 전경 추출 도구에서 구현됩니다. 가능한 전경/배경 labelling의 에너지 함수는 전경이 전경의 씨앗과 유사하고 부드러운 경계를 강요합니다. 그래서, 에너지의 최소는 좋은 전경 마스크에 해당합니다. 픽셀 분류 방식을 사용하면 배울 이미지를 미리 레이블을 붙여야하며,이 방법을 사용하면 각 쿼리 이미지에서 시드를 선택해야합니다 (또는 암시 적으로 선택해야 함).

  2. Active contours a.k.a. 뱀도 일부 사용자 상호 작용을 필요로합니다. 그들은 Photoshop Magic Wand 도구와 더 비슷합니다. 그들은 또한 부드러운 경계를 찾으려고하지만 내부 영역을 고려하지 않습니다.

두 가지 방법 모두 반사에 문제가있을 수 있습니다 (픽셀 분류에는 분명히 있습니다). 이 경우 대략적인 수직 대칭을 찾고 아래 부분을 삭제할 수 있습니다. 그래프 컷에 대한 통계를 수집하는 동안 reflaction을 배경으로 표시하도록 사용자에게 요청할 수도 있습니다.

+0

멋진, GrabCut/Graph Cut 기술은 정말로 유망 해 보입니다. 물의 표면을 감지하는 몇 가지 기술과 함께 재미있을 수 있습니다. 아마도 추출 된 얼룩에 삼각형을 맞추고 삼각형 높이를 통해 견적을 얻을 수 있습니다. – Theodor