Phát hiện mèo một cách trực quan bằng phương pháp phát hiện dị thường


17

Tôi có một dự án sở thích mà tôi đang dự tính cam kết như là một cách để tăng kinh nghiệm hạn chế cho đến nay của tôi về học máy. Tôi đã thực hiện và hoàn thành Coursera MOOC về chủ đề này. Câu hỏi của tôi liên quan đến tính khả thi của dự án.

Nhiệm vụ như sau:

Những con mèo hàng xóm thỉnh thoảng đến thăm khu vườn của tôi, điều mà tôi không thích vì chúng có xu hướng đại tiện trên bãi cỏ của tôi. Tôi muốn có một hệ thống cảnh báo để thông báo cho tôi khi có một con mèo để tôi có thể đuổi nó đi bằng cách sử dụng siêu soaker của tôi. Để đơn giản, hãy nói rằng tôi chỉ quan tâm đến một con mèo với màu đen và trắng.

Tôi đã thiết lập một raspberry pi với mô-đun máy ảnh có thể quay video và / hoặc hình ảnh của một phần của khu vườn.

Hình ảnh mẫu:

Hình ảnh vườn mẫu

Ý tưởng đầu tiên của tôi là huấn luyện một bộ phân loại để xác định các vật thể giống mèo hoặc mèo, nhưng sau khi nhận ra rằng tôi sẽ không thể có được số lượng mẫu dương tính đủ lớn, tôi đã từ bỏ việc ủng hộ phát hiện dị thường.

Tôi ước tính rằng nếu tôi chụp một bức ảnh mỗi giây trong ngày, tôi sẽ kết thúc với khoảng năm bức ảnh có chứa mèo (trong số khoảng 60.000 ánh sáng mặt trời) mỗi ngày.

Điều này có khả thi khi sử dụng phát hiện bất thường? Nếu vậy, những tính năng bạn sẽ đề nghị? Ý tưởng của tôi cho đến nay chỉ đơn giản là đếm số pixel với màu sắc nhất định; thực hiện một số loại phát hiện / phân đoạn hình ảnh blob (mà tôi không biết cách thực hiện và do đó muốn tránh) và thực hiện phân tích màu tương tự trên chúng.


1
Có lẽ câu hỏi này phù hợp hơn với trang SE xác thực chéo, bây giờ tôi nghĩ về nó. Sự khác biệt có phần không rõ ràng đối với tôi ...
Frost

4
Tôi nghĩ rằng câu hỏi rất phù hợp với trang web này, vì nó thảo luận về một ứng dụng thực tế của học máy. btw, câu hỏi ngớ ngẩn, tại sao rất ít hình ảnh của mèo? Có phải họ chỉ đến xung quanh chỉ năm giây?
bảo hiểm

@insys, những tin đồn về sự cảnh giác của tôi với người làm rượu dường như đã lan truyền trong cộng đồng mèo. Họ có xu hướng không nán lại như trước đây. Tôi đoán đó là một điều tốt với mục tiêu thực sự là loại bỏ vườn mèo của tôi, mặc dù nó làm phức tạp giải pháp tinh vi hơn, ưa thích của tôi.
Sương giá

2
Có vẻ như bước tiếp theo rõ ràng (sau khi bạn phát hiện ra mèo hoạt động) là một siêu mâm xôi được kiểm soát bởi mâm xôi :-)
Kryten

Câu trả lời:


8

Bạn có thể đơn giản hóa vấn đề của mình một cách đáng kể bằng cách sử dụng phương pháp phát hiện chuyển động / thay đổi. Ví dụ: bạn có thể so sánh từng hình ảnh / khung hình với một hình ảnh từ thời gian đầu (ví dụ: một phút trước đó), sau đó chỉ xem xét các pixel đã thay đổi kể từ thời điểm trước đó. Sau đó, bạn có thể trích xuất vùng thay đổi hình chữ nhật và sử dụng đó làm cơ sở cho phân loại hoặc phát hiện bất thường.

Thực hiện kiểu tiếp cận này có thể đơn giản hóa đáng kể phân loại của bạn và giảm tỷ lệ mục tiêu sai của bạn bởi vì bạn có thể bỏ qua bất cứ thứ gì không có kích thước gần bằng một con mèo (ví dụ: người hoặc chim). Sau đó, bạn sẽ sử dụng các vùng thay đổi được trích xuất không được lọc để tạo thành tập huấn luyện cho trình phân loại của bạn (hoặc trình phát hiện dị thường).

Chỉ cần chắc chắn để có được tỷ lệ mục tiêu sai của bạn đủ thấp trước khi lắp tháp pháo laser vào hệ thống phát hiện xâm nhập của mèo.


1
Đây là một ý tưởng hay cho môi trường được kiểm soát nhưng tôi không chắc về tính ứng dụng của nó trong trường hợp này, vì chúng ta đang đối phó với môi trường tự nhiên, nơi có sự thay đổi liên tục, tức là thay đổi thời tiết, vị trí của mặt trời, cây và cây vì gió, mùa v.v ... Tôi tin rằng khu vực thay đổi như bạn mô tả sẽ phát triển gần với kích thước của toàn bộ hình ảnh trong mọi trường hợp.
bảo hiểm

@insys - Tôi thấy quan điểm của bạn nhưng tôi không đồng ý - Tôi tin rằng nó làm cho máy dò trở nên linh hoạt hơn để thay đổi. Chênh lệch thời gian giữa các khung tương đối nên nhỏ (~ giây đến một phút) vì vậy mặt trời, mùa, thời tiết không đáng kể. Tôi đồng ý rằng gió sẽ làm cho cây di chuyển nhưng bước phân loại có thể tránh những thứ đó vì kích thước / hình dạng / màu sắc của chúng khác với một con mèo. Ngoài ra, sử dụng hai khung hình vào những thời điểm tương tự nhau cho phép bình thường hóa cường độ pixel để xử lý tốt hơn các điều kiện chiếu sáng khác nhau (ví dụ: một con mèo trong một ngày nắng so với mây).
bogatron

Trên thực tế, tôi bối rối hơn về câu trả lời của bạn khi tôi đọc qua bình luận của bạn :) Có lẽ tôi đã hiểu nhầm, nhưng nếu bạn thực sự sử dụng "vùng thay đổi được trích xuất" để tạo thành các mẫu tích cực của bạn, như đã đề cập trong câu hỏi của bạn, bạn thậm chí sẽ làm thế nào chắc chắn họ là mèo? Họ có thể là bất cứ điều gì. Như vậy, bước phân loại của bạn sẽ không phát hiện ra bất cứ điều gì ngoài những gì được dạy để phát hiện - đó là, thay đổi dưới bất kỳ hình thức nào. Vì vậy, nó thực sự đang lặp lại công việc của máy dò "thay đổi".
bảo hiểm

Hơn nữa, điều kiện chiếu sáng chắc chắn là đáng quan tâm, nhưng, nếu tôi hiểu đúng ý của bạn, không rõ hai hình ảnh tương tự, được chụp với chênh lệch 1 phút sẽ mang lại cường độ điểm ảnh bình thường?
bảo hiểm

Các vùng được trích xuất có thể đại diện cho các ví dụ tích cực hoặc tiêu cực - chúng là những gì bạn sẽ sử dụng để huấn luyện trình phân loại mèo. Liên quan đến cường độ, Giả sử bộ phân loại được đào tạo từ các vùng được trích xuất chủ yếu từ hình ảnh nắng. Sau đó, bộ phân loại có thể dễ dàng tìm thấy những con mèo có bộ lông trắng sáng nhưng sau đó sẽ không hoạt động tốt vào một ngày nhiều mây (khi bộ lông trắng không sáng như vậy) hoặc gần chạng vạng. Thực hiện chuẩn hóa hai hình ảnh giúp giảm thiểu vấn đề đó (nghĩa là một cặp hình ảnh sáng và một cặp hình ảnh mờ sẽ xuất hiện tương tự như bộ phân loại).
bogatron

4

Đây là một dự án thú vị và cũng khá tham vọng :)

Tôi không chắc chắn phát hiện bất thường (ít nhất là theo nghĩa được mô tả trong khóa học bạn theo dõi) sẽ là một thuật toán rất phù hợp trong trường hợp này.

Tôi sẽ xem xét một cách tiếp cận khả thi hơn là những gì đã được thảo luận ở cuối khóa học nơi trình diễn quy trình Photo OCR.

Cách tiếp cận sẽ bao gồm phân đoạn hình ảnh của bạn theo các "khối" nhỏ hơn và lần lượt đi qua chúng bằng thuật toán học có giám sát và cố gắng phân loại từng khối theo liệu nó có chứa một con mèo hay không. Nếu một khối chứa một con mèo, báo thức sẽ tắt. Như một phần thưởng, bạn cũng có được vị trí của con mèo, do đó bạn có thể nghĩ đến việc kết hợp một số phản hồi "tự động" như một bước trong tương lai cho dự án của bạn.

Lợi ích ở đây là bạn sẽ không phải huấn luyện thuật toán của mình bằng cách sử dụng bộ dữ liệu cụ thể cho khu vườn của bạn (mà bạn đề cập là khó tạo), nhưng bạn có thể sử dụng hình ảnh của những chú mèo bị lấy ra khỏi mạng (ví dụ: có lẽ bạn có thể tìm kiếm "Con mèo trên cỏ" hoặc một cái gì đó), và có lẽ là những mảng ảnh từ khu vườn của bạn (hoặc khác). Do đó, bạn không phải dành thời gian để thu thập ảnh từ máy ảnh của mình và bạn tránh được nguy cơ có một mẫu dương tính rất nhỏ (có thể so sánh) (ví dụ như mèo).

Bây giờ, tất nhiên việc dễ dàng để xây dựng một máy dò mèo chính xác là một chủ đề khác ..


Và điều gì sẽ xảy ra nếu khối của bạn chia cắt thành hai hoặc nhiều lát? Chiến lược chặn là một cách tiếp cận rất phổ biến, nhưng khi có một camera hoàn toàn cố định ở một vị trí nhất định, phát hiện chuyển động là một cách tiếp cận tốt hơn và ít tốn thời gian hơn, theo quan điểm của tôi.
adesantos

@adesantos - Những gì bạn nói cũng có thể đúng và để dự đoán sự khác biệt giữa các bộ phận chuyển động và không chuyển động có lợi thế của nó. Nhưng đối với đào tạo, cách nó được mô tả bởi bogatron, không rõ nó mang lại lợi ích gì cho bảng. Nhìn chung, ý kiến ​​của tôi là nó tăng thêm độ phức tạp, giúp kéo dài thời gian gỡ lỗi đáng kể. Ưu điểm của việc di chuyển cửa sổ là ở sự đơn giản.
bảo hiểm

Btw, liên quan đến sự phân chia mà bạn đề cập, một chiến lược rõ ràng là để các cửa sổ của bạn chồng lên nhau, để vị trí phân chia không ảnh hưởng đến phân loại của bạn.
bảo hiểm

Tôi sẽ thêm vào đề xuất của tôi (phát hiện chuyển động) việc sử dụng thuật toán SIFT với kết cấu con mèo. Phương pháp SIFT cũng có thể được sử dụng với chiến lược khối đó, nhưng trong trường hợp đó, bạn sẽ so sánh nhiều khối hơn yêu cầu. Lưu ý rằng một con mèo di chuyển, nhưng một cái cây hoặc một bụi cây không nhiều.
adesantos

3

Chiến lược phát hiện chuyển động / thay đổi chắc chắn là đủ, nhưng tôi sẽ thêm một hoạt động bổ sung. Tôi sẽ phát hiện những khu vực có nhiều khả năng bị thay đổi, ví dụ, chiếc thang dường như là nơi con người có thể (cũng là mèo) và cỏ nơi có thể có chó, mèo hoặc người.

Tôi sẽ chụp một bản đồ với kích thước của vật thể và quỹ đạo và với điều này tôi sẽ tạo ra một cụm với mục đích phát hiện một vật thể (với kích thước cụ thể trong ảnh theo pixel) di chuyển với tốc độ và quỹ đạo nhất định.

Bạn có thể đạt được điều này bằng cách sử dụng R hoặc tôi sẽ đề xuất OpenCV để phát hiện chuyển động và theo dõi các đối tượng khác nhau.


2

Phép trừ nền của OpenCV sẽ tìm thấy các đối tượng chuyển động về độ cứng của bạn. Sau đó, bạn có thể sử dụng phân loại hoặc phân tích hình dạng để phân biệt giữa mèo, người, cây và vv


1

Có phải là một con chim? Đó là một con mèo? Chúng tôi có kích thước con mèo đen trắng! chó con ở đây. vì vậy sẽ thất bại.

Điều đầu tiên sẽ là loại trừ tất cả các khu vực có màu xanh lá cây, mèo hiếm khi có màu xanh lá cây.

Sau đó so sánh phần còn lại với hình ảnh tham chiếu để loại bỏ những thứ tĩnh như đá và cầu thang.

Có thể phát hiện các đối tượng có kích thước tối thiểu, nhưng để phân loại thì độ phân giải quá thấp. Cũng có thể là hàng xóm của bạn thử nghiệm máy bay không người lái điều khiển từ xa mới của mình.

Với hai camera, bạn có thể thực hiện bản đồ 3d của các vật thể và loại bỏ các vật thể bay.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.