이상 감지를 통해 고양이를 시각적으로 감지


17

나는 지금까지 제한된 기계 학습 경험을 향상시키는 방법으로 노력하고있는 취미 프로젝트를 가지고 있습니다. 주제에 대해 Coursera MOOC를 수료하고 완료했습니다. 내 질문은 프로젝트의 타당성에 관한 것입니다.

작업은 다음과 같습니다.

이웃 고양이는 때때로 내 정원을 방문하는데, 그들은 내 잔디밭에서 배변하는 경향이 있기 때문에 싫어합니다. 고양이가있을 때 알려주는 경고 시스템을 갖고 싶어서 슈퍼 음료수를 사용하여 쫓아 갈 수 있습니다. 간단하게하기 위해, 나는 흑백 채색을하는 고양이에만 관심이 있다고하자.

정원 일부의 비디오 및 / 또는 사진을 캡처 할 수있는 카메라 모듈로 라즈베리 파이를 설정했습니다.

샘플 이미지 :

정원 이미지 샘플

첫 번째 아이디어는 고양이 나 고양이 같은 물건을 식별하기 위해 분류기를 훈련시키는 것이었지만, 충분한 양의 양성 샘플을 얻을 수 없다는 것을 깨달은 후 이상 탐지를 위해 포기했습니다.

나는 매일 매일 사진을 찍으면 하루에 약 60,000 장의 고양이를 포함하는 5 장의 사진이 나올 것이라고 추정합니다.

이상 감지를 사용하여 이것이 가능합니까? 그렇다면 어떤 기능을 제안 하시겠습니까? 지금까지 내 아이디어는 특정 색상의 픽셀 수를 계산하는 것입니다. 일종의 얼룩 감지 / 이미지 분할 (방법을 모르고 피하고 싶습니다)과 동일한 색상 분석을 수행하십시오.


1
아마도이 질문은 교차 검증 SE 사이트에 더 적합 할 것입니다. 구별이 다소 불분명하다 ...
Frost

4
기계 학습의 실제 적용에 대해 논의하기 때문에이 사이트에 대한 질문이 매우 적합하다고 생각합니다. Btw, 바보 같은 질문, 왜 고양이 사진이 그렇게 적은가? 그들은 단지 5 초 동안 만 돌아 옵니까?
insys

@insys, 몸을 담그는 사람에 대한 소문에 대한 소문이 고양이 커뮤니티에 퍼져있는 것으로 보입니다. 그들은 예전처럼 머 무르지 않는 경향이 있습니다. 내가 선호하는 더 정교한 솔루션을 복잡하게 만들지 만 내 고양이 정원을 없애는 실제 목표는 w / r / t 인 것이 좋습니다.
Frost

2
명백한 다음 단계 (당신이 고양이 감지 작업을 얻은 후)는 라즈베리 파이 제어 슈퍼 soaker입니다 :-)
Kryten

1
@Kryten 관련 : Python으로 뒷마당을

답변:


8

동작 / 변경 감지 방법을 사용하면 문제를 크게 단순화 할 수 있습니다. 예를 들어, 각 이미지 / 프레임을 빠른 시간 (예 : 1 분 전)의 이미지 / 프레임과 비교 한 다음 이전 시간 이후 변경된 픽셀 만 고려할 수 있습니다. 그런 다음 직사각형 변경 영역을 추출하여 분류 또는 이상 감지의 기초로 사용할 수 있습니다.

이 유형의 접근 방식을 사용하면 분류 기준을 크게 단순화하고 고양이 (예 : 사람 또는 새) 크기가 아닌 것을 무시할 수 있기 때문에 잘못된 목표 비율을 줄일 수 있습니다. 그런 다음 필터링되지 않은 추출 된 변경 영역을 사용하여 분류기 (또는 이상 탐지기)에 대한 트레이닝 세트를 형성합니다.

고양이 침입 탐지 시스템에 레이저 터릿을 장착하기 전에 잘못된 목표 속도를 충분히 낮추십시오.


1
이것은 통제 된 환경에 대한 좋은 아이디어이지만이 경우 적용 가능성이 확실하지 않습니다. 우리는 지속적인 변화, 즉 날씨, 태양의 위치, 식물 및 나무의 변화로 인해 자연 환경을 다루고 있기 때문입니다. 바람, 계절 등 나는 당신이 묘사 한 변화의 영역이 어떤 경우에도 전체 이미지의 크기에 가까워 질 것이라고 믿는다.
insys

@insys-나는 당신의 요점을 보지만 동의하지 않습니다-나는 그것이 검출기를 더 탄력적으로 바꾸게한다고 생각합니다. 상대 프레임 간의 시간 차이는 작아야 (~ 초에서 1 분) 태양, 계절, 날씨는 무시할 수 있어야합니다. 바람이 식물을 움직이게하지만, 분류 단계는 크기 / 모양 / 색상이 고양이와 다르기 때문에 피할 수 있다는 데 동의합니다. 또한, 비슷한 시간에 두 프레임을 사용하면 픽셀 강도를 정규화하여 다양한 조명 조건 (예 : 맑은 날과 흐린 날의 고양이)을 더 잘 처리 할 수 ​​있습니다.
bogatron

실제로, 나는 당신의 의견을 통해 읽은 당신의 대답에 대해 더 혼란 스럽습니다 :) 아마도 내가 오해했을 것입니다. 그들이 고양이인지 확실히? 그들은 무엇이든 될 수 있습니다. 따라서 분류 단계는 감지하도록 지시 된 것 이외의 다른 것, 즉 모든 종류의 변경을 감지하지 못합니다. 따라서 실제로 "변경"검출기의 작업을 반복합니다.
insys

더욱이 조명 조건은 확실히 우려 할 만하지 만, 요점을 정확히 알 수 있다면 1 분의 차이로 촬영 한 두 개의 유사한 이미지가 픽셀 강도 정규화를 위해 제공 할 것이 확실하지 않습니까?
insys

추출 된 영역은 긍정적 또는 부정적 예를 나타낼 수 있습니다.이 분류법은 고양이 분류기를 훈련시키는 데 사용할 것입니다. 강도와 관련하여 분류 기가 주로 맑은 이미지에서 추출 된 영역에서 훈련되었다고 가정합니다. 분류기는 밝은 백색 모피가있는 고양이를 쉽게 찾을 수 있지만 흐린 날 (백색 털이 거의 밝지 않은 경우) 또는 황혼 근처에서는 나중에 제대로 작동하지 않습니다. 두 이미지의 정규화를 수행하면 문제를 완화하는 데 도움이됩니다 (즉, 한 쌍의 밝은 이미지와 한 쌍의 희미한 이미지가 분류기와 유사하게 나타남).
bogatron 2016 년

4

이것은 흥미롭고 야심 찬 프로젝트입니다 :)

나는 이상 탐지 (적어도 당신이 따르는 과정에서 설명 된 의미에서) 가이 경우 매우 적합한 알고리즘인지 확신하지 못합니다.

Photo OCR 워크 플로가 시연 된 과정의 마지막 단계에서 논의 된 것보다 더 실용적인 방법을 고려할 것입니다.

이 방법은 이미지를 더 작은 "블록"으로 분할하고,지도 학습 알고리즘을 사용하여 이미지를 하나씩 살펴보고 고양이가 있는지 여부에 따라 각 블록을 분류하려고합니다. 블록 하나에 고양이가 있으면 알람이 울립니다. 보너스로, 당신은 고양이의 위치를 ​​얻습니다. 그래서 당신은 "자동"반응을 미래의 프로젝트 단계로 통합하는 것을 생각할 수 있습니다.

여기서 장점은 정원에 특정한 데이터 세트를 사용하여 알고리즘을 학습 할 필요는 없지만 (생성하기 어려운 것으로 언급 할 수 있지만) 그물에서 가져온 고양이의 이미지를 사용할 수 있다는 것입니다 (예 : "잔디 위의 고양이"등) 또는 (또는 다른) 정원에서 가져온 사진들. 따라서 카메라에서 사진을 수집하는 데 시간을 소비 할 필요가 없으며, 매우 작은 (비교할 수있는) 긍정적 인 샘플 (예 : 고양이)이 발생할 위험을 피할 수 있습니다.

물론, 정확한 고양이 탐지기를 만드는 것이 얼마나 쉬운가는 또 다른 주제입니다.


블록이 컷을 둘 이상의 슬라이스로 분할하면 어떻게됩니까? 블로킹 전략은 매우 일반적인 접근 방식이지만 카메라를 특정 위치에 완전히 고정하면 모션 감지가 내 관점에서 시간이 많이 걸리지 않는 접근 방식입니다.
adesantos

@adesantos – 당신이 말하는 것은 사실 일 수 있으며, 움직이는 부분과 움직이지 않는 부분을 구별하는 것이 장점이 있습니다. 그러나 교육에 대해 bogatron이 설명하는 방식이 테이블에 어떤 이점이 있는지는 확실하지 않습니다. 전반적으로 내 의견은 복잡성을 추가하여 디버깅 시간을 크게 연장 시킨다는 의견입니다. 윈도우 이동의 장점은 간단하다는 것입니다.
insys 2016 년

Btw, 언급 한 분할과 관련하여 명백한 전략은 창을 겹치게하여 분할 위치가 분류 기준에 영향을 미치지 않도록하는 것입니다.
insys 2016 년

고양이 텍스처와 함께 SIFT 알고리즘을 사용하는 제안 (동작 감지)에 추가 할 것입니다. SIFT 방법은 해당 블록 전략과 함께 사용할 수도 있지만이 경우 필요한 것보다 많은 블록을 비교합니다. 고양이는 움직이지만 나무 나 덤불은 그다지 많지 않습니다.
adesantos

3

동작 / 변경 감지 전략은 확실히 적합하지만 추가 작업을 추가하겠습니다. 예를 들어, 사다리는 사람, 고양이, 사람, 개, 고양이 또는 사람이있을 수있는 잔디가 될 수있는 곳인 것처럼 보입니다.

객체와 궤적의 크기로 맵을 캡처하고 특정 속도와 궤적으로 움직이는 객체 (이미지 내에서 특정 크기의 픽셀)를 감지하기 위해 클러스터를 만듭니다.

R을 사용하여이를 달성 할 수 있습니다. 또는 움직임을 감지하고 다른 객체를 따르기 위해 OpenCV를 제안합니다.


2

OpenCV의 백그라운드 뺄셈 은 강화를 위해 움직이는 물체를 찾습니다. 그런 다음 분류기 또는 모양 분석을 사용하여 고양이, 사람, 나무 등을 구별 할 수 있습니다.


1

이것이 새입니까? 고양이 야? 우리는 흑백 고양이 크기가 있습니다! 까치 실패 할 것입니다.

첫 번째는 녹색, 고양이는 거의 녹색이 아닌 모든 영역을 제외하는 것입니다.

그런 다음 나머지는 참조 이미지와 비교하여 돌과 계단과 같은 정적 물체를 제거하십시오.

최소 크기의 물체를 감지하는 것이 가능해야하지만 분류의 경우 해상도가 너무 낮습니다. 이웃이 그의 새로운 원격 조종 드론을 시험하고있을 수도 있습니다.

두 대의 카메라를 사용하면 물체의 3D 매핑을 수행하고 비행 물체를 제거 할 수 있습니다.

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