카메라에서 두 사진을 비교하고 움직임을 감지하기에 충분한 차이가 있는지 어떻게 알 수 있습니까?


18

전화기를 CCTV 시스템으로 사용하여 집안의 방을 제어하고 무언가가 움직일 때 경고를 표시하고 싶습니다.

지금, 내가 성공한 것은 1 분마다 그림을 잡고 PHP 스크립트를 통해 서버에 업로드하는 것입니다. 이제 1 분 전에 현재 사진과 사진을 비교하고 누군가 방에 들어 왔는지 감지하고 싶습니다. 따라서 기본적으로 그림의 픽셀 차이를 비교해야합니다 (그러나 구름이 인사를하고 1 분 동안 밝기를 변경할 수 있음을 고려하면)

누구든지 그 또는 일부 문서를 읽는 방법에 대한 단서가 있습니까?


4
나는 몇 년 전에 이런 짓을했습니다. 내 기술은 이미지를 20 * 20 격자로 나누고 각 셀의 평균 색상 값을 찾고 (해당 셀의 각 픽셀의 평균 색상을 취하여) 저장합니다. 다음 이미지에 대해 동일한 작업을 수행 하고 평균 색상에 충분한 차이 (허용 오차를 남길 것)가 있으면 움직임을 가정 할 수 있습니다. 빛이나 그림자 등의 미세한 변화를 볼 수 있도록 허용 오차를 너무 세밀하게 만들지 마십시오.


CHDK는 또한 이미지를 그리드로 나눕니다. chdk.wikia.com/wiki/UBASIC/Scripts:_AdaptiveMD 움직임을 감지하고 조명 변화를 감지하지 않기 위해, 많은 격자 셀의 변화는 움직임이 아니라고 약간의 격자 셀의 변화는 변하지 않습니다.
endolith

답변:


10

당신이 찾고있는 것은 배경 빼기 기술입니다. 시끄러운 이미지와 조명 조건 변경으로 사소하지 않을 수 있습니다. 이를위한 최신 기술은 낮은 순위의 매트릭스 표현이지만 2 개 이상의 이미지를 필요로합니다. 일부 중부 수학은 다음과 같습니다. 각 이미지는 픽셀 벡터, 매트릭스로 결합 된 벡터로 간주되며이 매트릭스는 낮은 순위의 매트릭스와 잔차로 분해됩니다. 낮은 순위의 매트릭스 열은 배경이며 나머지는 움직이는 물체입니다. 오픈 소스 구현이 있지만 완전한 이미지 파이프 라인 IIRC가 아닌 인수 분해 자체에만 적용됩니다.

다음은 행렬 분해를위한 종이와 코드입니다 http://www.ece.rice.edu/~aew2/sparcs.html

다음은 CS 블로그의 개요이며 다른 코드에 대한 링크입니다.

https://sites.google.com/site/igorcarron2/matrixfactorizations

http://nuit-blanche.blogspot.com/search/label/MF

다른 기술에 대한 조사 : http://www.vis.uni-stuttgart.de/uploads/tx_vispublications/Brutzer2011-2.pdf


1
의도적으로이 CW를 만들었습니까?
Lorem Ipsum의

1
"CW"는 무엇을 의미합니까?
mirror2image

아, 위키 질문입니다. 실용적인 일을하는이 새로운 테크 토 ppl을 소개하는 것이 좋은 생각이라고 생각했습니다. 동의하지 않을 경우 자유롭게 제거하십시오. 또한 다른 ppl은이 기술에 대해 더 많은 경험을 가지고있을 수 있습니다.
mirror2image

CW는 커뮤니티-위키 질문입니다. 이것이 의미하는 바는 답변에 대한 찬성 투표에 대한 평판을 얻지 못한다는 것입니다 (이 경우 4x10 = 40). 어떤 사람들은 의도적으로 이런 식으로 대답하지만, 그렇지 않은 경우가 종종 있습니다. 나는 당신을 위해 이것을 되돌려 서 당신의 담당자를 얻습니다. 그것은 126에서 지금 181입니다 :)
Lorem Ipsum

5

기억하십시오 : 밝기 만이 아니라 그림자가 있습니다.

James Webster의 아이디어가 마음에 들지 않습니다. 기본적으로 각 차원의 해상도를 축소하고 축소 된 이미지를 비교하기 때문에 (임계 값이 마음에 들지 않습니다. 임의의 것이므로 임의로 테스트하고 조정해야합니다) 좋은 가치를 얻을 때까지 다음날 날씨 나 다른 환경 영향으로 인해이 값이 더 이상 사용되지 않을 수 있습니다.)

그러나 공정하게 말하면, 나는 또한 좋은 해결책이 없습니다. 첫 번째 아이디어는 각 이미지를 빈 공간의 참조 이미지로 비교하고 diff 이미지에서 가장자리 감지를 실행하는 것이 었습니다. 그러나 이것은 그림자도 감지합니다. 그러나 나는 당신이 그림자와 다른 물체를 구별 할 수 없다고 생각합니다. 적어도 나는 방법을 모릅니다. 그러나 그림자가 대부분 느리게 움직이기 때문에 2 프레임 사이의 가장자리 감지 후 결과를 비교할 수 있습니다 (아직도 자동차가 지나가거나 구름이 움직일 때 문제가 발생합니다)


갑자기 변하는 것을 감지하려고합니다. 그림자는 1 분에서 다음 분으로 크게 변하지 않습니다. 그러나 태양의 전반적인 밝기는 그래야합니다.
endolith

2
예를 들어 자동차가 창문을 통해 자신의 그림자를 떨어 뜨리거나 헤드 라이트로 다른 물체의 그림자를 떨어 뜨리는 등의 경우 그림자가 빠르게 움직입니다.
Philipp Wendt

4

"행렬 인수 분해"기법 작업 수행에 도움 ! @ mirror2image가 참조한 논문은 백그라운드 빼기에 관한 것이지만 "매트릭스 인수 분해"를 기반으로하지는 않습니다.

움직이는 비디오 (인간 또는 차량 등)를 감지하기 위해 러닝 비디오를 사용하는 것은 활발한 연구 분야입니다.

기본 원칙으로 시스템은 여러 장의 사진을 샘플링하여 일반적인 정적 배경을 추정하고 들어오는 이미지와 배경 간의 에너지 차이를 가져옵니다. 에너지가 중요한 경우 픽셀은 전경으로 분류됩니다. 이러한 포 그라운드 세트는 시스템에 오브젝트 항목이 있는지 알려줍니다.

귀하의 연구 논문에 대한 가장 좋은 참고 자료는 (실제로 구현하고 싶다면 비교적 간단합니다)-W4 System 여기에서 찾아서 Picardi 논문을 참조 하십시오. 시스템의 다른 기술에 대한보다 상세한 조사한다.

문제에 적용되는 많은 도전이 있습니다 :

  1. 소음의 존재는 주요 모호성의 문제를 만듭니다. 여기서의 접근 방식은 효율적인 시간 필터링을 적용하고 노이즈의 분산을 고려하여 임계 값에 영향을 미치지 않도록하는 것입니다.

  2. 그림자가 있으면 전경도 아니고 모호하지도 않습니다. 그림자와 실제 전경을 구별하기 위해 색상과 강도 구분을 모델링 한 논문이 있습니다.

  3. 나무 또는 바다 등을 흔들며하는 것처럼 배경이 복잡 할 수 있습니다.

  4. 초기 "학습 된"배경이 새로운 배경에 적용되는 배경은 느리거나 갑작스러운 조명 변화를 가질 수 있습니다.

가장 많이 알려진 랜드 마크 용지 중 하나는 Wall flower 알고리즘으로 , 다양한 시나리오를 결합하여 강력한 움직이는 물체 감지를 생성하는 가장 좋은 방법을 보여줍니다.


2

나는 정확한 해결책을 모르지만 이미지의 해시를 만들어야합니다. 이미지에서 추출 된 더 작은 데이터 세트로, 전체 이미지보다 훨씬 낫습니다.

컬러 히스토그램좋은 선택 이라고 생각 합니다.

이미지를 영역으로 분할하고 해당 영역에 대해 별도의 히스토그램을 만드는 경우 침입자의 위치 / 경로를 결정할 수 있습니다.


고마워요, 다른 해결책을 기다릴 것입니다. 더 잘 찾을 수 없다면 당신의 것을 받아 들일 것입니다. 참고로, 침입자의 경로를 결정하고 싶지 않습니다 .1 분이면 충분하지 않지만 경고를 보내는 것만으로도 좋습니다. 감사.

1
일부 침입자는 1 분 안에 완료 될 수 있습니다. 가능한 한 자주 점검하십시오. 프로그램이 너무 느리면 이미지 해상도를 낮추십시오.

1
사실, 저는 10 초마다 사진을 찍을 계획이며, 침입자를 감지했을 때만 또는 문제가 없을 때마다 모든 분을 업로드하려고합니다.

1

차이를 두 번 취하는 것, 즉 차이의 차이가 도움이 될 수 있습니다. 따라서 일부 지역에서 픽셀의 이중 미분 값이 임계 값보다 큰 경우 누군가 방에 들어간 것으로 간주 할 수 있습니다. 밝기의 변화는 이미지 전체에 걸쳐 거의 일정한 기울기를 줄 것이나, Hessian 또는 double 파생물을 사용하면 움직임이나 방의 주요 변화를 잘 알 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.