Cách rẻ nhất / dễ nhất để phát hiện một người là gì?


15

Tôi muốn biết liệu có ai đã phát hiện thành công một động vật có vú có thân ấm (ví dụ như con người) bằng cách sử dụng tiêu chuẩn ngoài giá, cảm biến rẻ tiền không?

Lý tưởng nhất là tôi muốn sử dụng một cảm biến rẻ tiền hoặc kết hợp các cảm biến để phát hiện một người trong phòng và khoanh vùng người đó. Tôi muốn robot vào phòng, phát hiện nếu một người có mặt / sau đó di chuyển đến người được phát hiện. Độ chính xác không cần phải là 100%, vì chi phí là một yếu tố. Tôi muốn các yêu cầu tính toán của một cảm biến như vậy để nó có thể chạy trên Arduino, mặc dù nếu không thể, tôi sẵn sàng sử dụng thứ gì đó có nhiều sức mạnh hơn, chẳng hạn như Raspberry Pi hoặc BeagleBone Black. Tôi có một vài suy nghĩ; tuy nhiên, không ai trong số họ là lý tưởng:

  1. Cảm biến Pir - Có thể phát hiện chuyển động trong một trường tầm nhìn lớn (nghĩa là thường từ 120 độ trở lên). Có thể là thứ gần gũi nhất với máy dò "người" mà tôi biết; tuy nhiên, nó đòi hỏi phải di chuyển và khoanh vùng / tam giác trong đó một người sẽ rất khó khăn (không thể?) với một tầm nhìn rộng lớn như vậy.
  2. Siêu âm - Có thể phát hiện các đối tượng với độ chính xác tốt. Có một lĩnh vực quan sát hẹp hơn nhiều; tuy nhiên, không thể phân biệt giữa một vật thể không sống tĩnh và một con người.
  3. Máy dò hồng ngoại - (tức là cảm biến phạm vi sắc nét) Một lần nữa có thể phát hiện các vật thể với độ chính xác cao, trường nhìn rất hẹp; tuy nhiên, một lần nữa nó không thể phân biệt các đối tượng.
  4. Webcam + OpenCV - Có thể sử dụng tính năng nhận diện khuôn mặt để phát hiện con người trong phòng. Đây có thể là lựa chọn tốt nhất; tuy nhiên, OpenCV đắt tiền về mặt tính toán và sẽ đòi hỏi nhiều hơn một arduino để chạy. Ngay cả trên Raspberry Pi, nó có thể bị chậm.
  5. Kinect - Sử dụng khả năng phát hiện tính năng của Kinect, việc xác định con người trong một khu vực sẽ tương đối dễ dàng; tuy nhiên, Kinect quá đắt và tôi sẽ không coi đó là giải pháp "rẻ tiền".

Có lẽ ai đó biết về một "máy dò nhiệt" rẻ tiền được điều chỉnh theo thân nhiệt và / hoặc đã thành công với sự kết hợp của (# 1-4) ở trên và muốn chia sẻ kết quả của họ?


Có phải nó bị hạn chế đối với con người hay nó cũng nên nhận ra ông Ed?
ott--

Bất kỳ động vật có vú ấm. Nó sẽ được sử dụng trong nhà, vì vậy ông Ed không nên ở đó; tuy nhiên, nếu là anh ta, anh ta sẽ bị phát hiện. =)
Yahma

Tôi đã được dẫn dắt để hiểu (khi tôi đang tìm kiếm thứ gì đó tương tự) rằng Kinect thực sự không đắt lắm; tuy nhiên, nó đòi hỏi phải có một khoảng cách tối thiểu để hoạt động đúng. Vẫn theo yêu cầu của bạn, nó có thể hoạt động và tôi chắc chắn có rất nhiều mã cho nó.
Galahad II

Giải pháp nào bạn đã đi với? Bạn đã tình cờ tìm thấy bất cứ điều gì với một phạm vi dài hơn?
Crashalot

Thật ra tôi có một câu hỏi. Chúng ta có thể phát hiện nhịp tim của con người bằng cảm biến hồng ngoại trong các chân tương tự của Audrino không? nếu vậy thì thế nào? xin hãy giúp tôi ra ngoài
sapana

Câu trả lời:


7

Một sự kết hợp giữa một máy dò hồng ngoại thụ động (Pir) và công cụ tìm phạm vi sonar (SRF) sẽ thực hiện thủ thuật này.

Điều đã làm việc tốt cho tôi trước đây (không tìm thấy con người nhưng rất giống nhau) là có hai chiếc Pir ở bên trái và bên phải nhọn để chúng có một chút chồng chéo ở giữa.
Sau đó, bạn có thể tìm ra nếu con người ở bên trái, bên phải hoặc ở phía trước (khi cả hai đều bật). Về cơ bản, sau đó bạn xếp nó lên trên SRF, nó sẽ cho bạn biết phạm vi, v.v ... Nó hơi bẩn và bạn phải đưa ra một số giả định, nhưng nó hoạt động tốt vì đơn giản.

Mã giả cho 2 Pirs có thể đơn giản như:

amount = 60; //degrees
while (notCloseEnough)
{
  if (bothActive)
    forward;
  else 
  {
    if (leftActive)  
      turnLeftByAmount(amount);
    else
      turnRightByAmount(amount);
    amount = amount - 5;

    //recalibrate
    if (amount <= 0)
      amount = 60;
  }

  checkIfCloseEnough();
}

Ý tưởng là bạn xoay rất nhiều sang một bên (60 độ) nếu bạn nhìn thấy thứ gì đó trong khu vực đó. Nếu họ không ở trước mặt bạn sau lượt, hãy rẽ ít hơn một chút sang phía mà bạn đang nhìn thấy họ. Tiếp tục lặp lại và thu hẹp số lượt cho đến khi chúng ở trước mặt bạn, sau đó chuyển tiếp. Hãy nhớ rằng bạn không quay nhiều (đặt lại góc) một khi chúng ở phía trước vì sẽ không di chuyển 'ra khỏi phạm vi' nhanh như vậy.

Tôi thực sự ngạc nhiên bởi thuật toán này thực sự hoạt động tốt như thế nào (chúng tôi đã sử dụng nó cho đồ chơi đuổi theo tự động và phải làm chậm / câm nó xuống vì nó sẽ đánh bại / bắt một con robot điều khiển quá dễ dàng).

Cả hai cảm biến đều có sẵn từ Pololu (không liên kết):

Máy dò hồng ngoại thụ động
Sonar Range Finder


Bạn có thể đăng một số mã giả hoặc chi tiết thêm về cách sử dụng cảm biến & sonar Pir có thể phát hiện và bản địa hóa một người không?
Yahma

Phạm vi của giải pháp này sẽ là gì? Nó có thể được điều chỉnh để theo dõi những người ở cách xa 300 feet không? Và được thực hiện để phù hợp với một trường nhìn 180 độ mà không có bộ phận chuyển động? Cảm ơn đề nghị này!
Crashalot

Bảng dữ liệu Pir không liệt kê một phạm vi ( pololu.com/file/0J250/SE-10.pdf ), nhưng dựa trên kích thước cảm biến, có vẻ như phạm vi đó sẽ bị giới hạn và chắc chắn không phải là thứ có thể phát hiện ra con người di chuyển 100-300 feet?
Crashalot

Điều này hoạt động tốt cho khoảng cách nhỏ, có thể 2 - 3 mét (6 - 9 feet). Tôi cũng sẽ nghĩ rằng thuật toán này sẽ không mở rộng tốt đến các khoảng cách lớn hơn, ví dụ như nó thực sự ảnh hưởng đến thực tế là ngay cả một "lỗi" hoặc biến động lớn cũng có thể được sửa chữa trước khi robot hoặc đối tượng bị tách ra.
profMamba

1

Một loại cảm biến gần đây có thể được sử dụng là mảng nhiệt độ dựa trên MEMS theo Omron (phạm vi D6T) hoặc Excelitas (DigiPile). Chúng, trái ngược với các yếu tố Pir, đo nhiệt độ tuyệt đối và do đó cho phép phân biệt giữa nhiệt độ nền và nền trước và phát hiện chuyển động và sự hiện diện tĩnh của các nguồn nhiệt độ.


Bạn có biết những cảm biến này có thể theo dõi con người cách xa tới 300 feet không?
Crashalot

Tôi không nghĩ rằng nó sẽ làm việc. Tôi muốn nói tối đa 5-10m. Độ phân giải khá thấp, vì vậy một người ở khoảng cách này chỉ là một chấm nhỏ trong một pixel.
kjyv

Cảm ơn vi đa trả lơi! Ngoài tầm nhìn máy tính độ phân giải cao, có bất cứ điều gì sẽ làm việc cho 300 feet? Vì CV rất đắt tiền về mặt tính toán, bạn có thể giảm chi phí tính toán bằng cách ghép CV với các cảm biến khác như Pir (hoặc nhiệt) để theo dõi mọi người cách xa 100-300 feet không?
Crashalot

0

một cảm biến điện dung có thể hoạt động, nó thực sự rẻ để chế tạo, chỉ cần lá nhôm và một vài điện trở, nó có thể phát hiện xác thịt nhưng tôi không chắc là tôi không phát hiện ra gì ngoài thịt, bạn có thể sử dụng 3 để tam giác


Huh? Điều gì sẽ là phạm vi trên này? Milimét?
RoboKaren

0

Tôi không thể nói liệu điều này có dễ nhất hay không, nhưng có thể hình dung bạn có thể sử dụng thư viện Phóng đại Video Euler để phát hiện nhịp đập của một người.

Trong trường hợp đó, bạn sẽ tìm kiếm một biến động trong video phù hợp với phạm vi xung dự kiến ​​của con người. Bạn cũng sẽ cần một hình ảnh rõ ràng của một bộ phận cơ thể thể hiện xung có thể nhìn thấy.

Cũng đã có một số công việc ( ví dụ 1 , ví dụ 2 ) khám phá nhận diện khuôn mặt dựa trên phần cứng. Máy ảnh kỹ thuật số từ một vài năm trước có khả năng này, về cơ bản là một mạng thần kinh được tối ưu hóa cao được thiết kế để nói "hình vuông này có chứa khuôn mặt hay không" ... sau đó bạn chỉ cần lặp lại một tập hợp các hình vuông được xác định trước trong hình ảnh được chụp.


À, bạn đề nghị điều tương tự tôi đã làm trong khi tôi đang viết của tôi! Bạn có xem bộ phim Screamers (1995) không? = P
jzx

Tôi đã xem đoạn giới thiệu, nhưng chưa bao giờ bộ phim ... thật tốt khi biết rằng tôi có thể sẽ làm gì đó. Nhưng Yahma định làm gì? :)
Ian

0

Tôi đã thử sử dụng Pir nhưng nó có vấn đề với việc xử lý và trì hoãn. Nó không phải là một lựa chọn hiệu quả để phát hiện con người là trung thực. Bạn có thể sử dụng Kỹ thuật cảm biến điện dung vì đây là cách rẻ nhất và dễ nhất để phát hiện con người (Một lựa chọn thông minh) và nó cũng ít phức tạp hơn. Bạn có thể tự làm một bộ cảm biến với chi phí rất thấp và nó tốt cho các dự án nhỏ. Tôi đã sử dụng một trong Dự án "Robot phát hiện con người" của mình. Bạn có thể xem video của tôi tại: Phát hiện con người dựa trên điện dung


0

Một giải pháp phi kim loại có thể sẽ trở nên ngày càng phổ biến trong vài năm tới sẽ giảm tải nhiệm vụ xử lý dữ liệu nặng của bạn (ví dụ: nhận ra một người trong ảnh) cho dịch vụ Đám mây. Đó là giả sử thiết bị của bạn được kết nối với internet. Dưới đây là một ví dụ với Raspberry Pi và API Google Cloud Vision: https://www.dexterindustries.com/howto/use-google-cloud-vision-on-the-raspberry-pi/ . Lưu ý rằng nó yêu cầu đăng ký google đám mây qua thời gian dùng thử, nhưng một số API tầm nhìn đám mây khác (Amazon, Microsoft Azure, ...?) Thậm chí có thể cung cấp dịch vụ của họ miễn phí nếu bạn gửi ít hơn N yêu cầu mỗi tháng cho máy chủ của họ .

Tuy nhiên, một giải pháp khác để xử lý dữ liệu nặng trên các nền tảng nhỏ là giảm tải công việc cho một thiết bị giống như ngón tay cái trên robot của bạn với bộ xử lý chuyên dụng để chạy các mô hình học máy đã được đào tạo (ví dụ: Movidius Neural Compute Stick với Raspberry PI: https : //medium.com/deep-learning-turkey/a-brief-guide-to-intel-movidius-neural-compute-stick-with-raspberry-pi-3-f60bf7683d40 ). Điều này hoạt động ngoại tuyến quá. Chúng vẫn còn hơi đắt cho các dự án sở thích nhưng tôi hy vọng chi phí của chúng sẽ giảm như mọi thứ.

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.