Włączanie przechwytywania w wysokiej rozdzielczości z kamery internetowej

15

Z aplikacją eksperymentuję z użyciem Pi do strumieniowania z kamery internetowej i wykrywania ruchu motion. Próbując kilku różnych kamer internetowych i kombinacji z innym sprzętem, znalazłem jedną kombinację, która jest idealnie stabilna (patrz poniżej). Jednak pracuję tylko z rozdzielczością 352 x 288. Chciałbym wykorzystać więcej rozdzielczości niż kamera internetowa 720p. Próbowałem 640x480, 640x360 i 1280x720, ale nie działają ( motionnie można zainicjować aparatu). Pi ma 256 MB pamięci, co powinno wystarczyć do obsługi wysokich rozdzielczości. Na przykład motionwylicza użycie pamięci na poziomie 1,8 MB dla rozdzielczości 1280x720.

Wszelkie wskazówki, jak włączyć wyższą rozdzielczość?

Stabilny:

  • Kamera internetowa Logitech C310h USB 2.0 HD, kamera UVC (046d: 081b)
  • 352x288, paleta YUYV
  • zasilany ładowarką do iPada
  • kamera internetowa podłączona do dolnego portu USB
  • nic nie jest podłączone do górnego portu USB
  • połączenie z siecią przewodową
  • Uruchamianie Motion 3.2.12.
  • System operacyjny: 2012-09-18-wheezy-raspbian.img
  • zmień tylko na motion.conf: Ustawienie rozdzielczości na 352 x 288

Edycja: Od tego czasu odkryłem, że konfiguracja, której obecnie używam z MJPG-streamerem, nie jest całkowicie stabilna, więc jest szansa, że ​​opisana powyżej konfiguracja nie jest całkowicie stabilna, ale po prostu bardziej stabilna, ponieważ używa niższej rozdzielczości.

Edycja 2 (21.04.13): Od pewnego czasu wiadomo, że USB nie jest stabilny na Raspberry Pi, powodując problemy z wieloma kamerami internetowymi i kluczami Wi-Fi. Fundacja aktywnie nad tym pracuje, a ostatnio poczyniono znaczne postępy. Dostępna jest aktualizacja za pośrednictwem aktualizacji rpi, która rozwiązuje wiele problemów. Zobacz wątek USB Redux na forum Raspberry Pi .

Roger Dahl
źródło

Odpowiedzi:

4

Czy próbowałeś podłączyć kamerę internetową do zasilanego koncentratora USB? Niektóre urządzenia wymagają więcej prądu niż Raspberry Pi może zapewnić i mogą zachowywać się nieprawidłowo po podłączeniu do wbudowanych portów USB.

tonymac
źródło
Dziękuję za odpowiedź. Nie miałem zasilanego koncentratora do testowania, ale wydawało mi się mało prawdopodobne, że problem z zasilaniem sprawiłby, że byłby całkowicie stabilny przy niskiej rozdzielczości i nie działał wcale przy wysokiej rozdzielczości.
Roger Dahl,
4

Limit rozdzielczości zniknął, kiedy przestawiłem się z motionna MJPG-streamer. MJPG-streamerprzesyła strumieniowo 1280x720 przy 5 FPS. Przy 3 komputerach podłączonych do strumienia zużycie procesora wynosi tylko około 10%. Wadą MJPG-streamerjest to, że nie ma detekcji ruchu.

Jednak to rozwiązanie nie jest całkowicie stabilne. Muszę ponownie uruchamiać RPi co kilka dni.

Roger Dahl
źródło
3

Na początek użyłem aplikacji ruchu Logitech C270. Nie przesyłam strumieniowo kanału przez sieć, po prostu zrzucam obrazy na dysk (maksymalna rozdzielczość to 1280x960).

MJPEG nie działa dla mnie, więc utknąłem z YUVU.

Uważam, że znalezienie właściwej rozdzielczości, na której utknąłem z czasem 352 x 288, jest bardzo trudne, dopóki nie odkryłem, że mogę również użyć rozdzielczości 960 x 720. Przy takiej rozdzielczości mam około 2 kl./s. (utrzymuje niskie zapotrzebowanie na pamięć ;-)).

v4l2-ctl --list-formats-ext : powinien dać ci wyobrażenie o formatach, których możesz używać.

Plik ruchu wykorzystuje maksymalną rozdzielczość, maskę i wykonuje migawki co sekundę. Motiondect opiera się na wykrywaniu podczas robienia zdjęć.

Najpierw stworzyłem czarny pgm, aby całkowicie wyłączyć wykrywanie ruchu i robić zdjęcia tylko co sekundę.

https://dl.dropbox.com/u/19023009/motion.zip

Do uruchomienia ruchu używam nohup sudo motion > logfile.txt &

mikrodeterminator
źródło