Kamera i komputer 

czyli najogólniejszy zarys teorii i praktyki

 

 

  1. Słowo wstępu

Artykuł ten powstał zainspirowany moim seminarium na Politechnice Poznańskiej 2000-03-31, podczas jednego ze spotkań PTI. Jego głównym celem jest przybliżenie Czytelnikowi niektórych pojęć związanych z kamerami i komputerami.

  1. Kamery
  2. Krótkie przedstawienie budowy kamery, typowych zastosowań etc.

    1. Budowa kamery
    2. Typowa kamera (a nie będziemy tutaj mówić o kamerach profesjonalnych etc., tylko – głównie – o kamerach internetowych bądź telewizji przemysłowej) składa się z trzech podstawowych elementów : obiektywu, elementu światłoczułego (CCD) oraz elektroniki, odpowiedzialnej między innymi za konwersję obrazu (np. do sygnału ‘composite’), dodatkową obróbkę danych, autokorekcję jasności, ostrości itp.

      Oczywiście im lepsza jakość każdego z elementów, tym lepsza kamera. Najprostsze kamery internetowe posiadają kiepskie obiektywy z niewielką możliwością regulacji ostrości, marnej jakości panel CCD i elektronikę odpowiedzialną jedynie za przesyłanie obrazu do urządzenia końcowego – najczęściej komputera.

    3. Typowe zastosowania kamer

 

Pomijając segment zastosowań filmowych obecnie na rynku spotkać można trzy rodzaje kamer :

Kamery internetowe jak sama nazwa wskazuje służą głównie do szeroko pojętej publikacji obrazu w sieciach komputerowych (LAN/WAN/Internet). Ogromną obecnie popularność zawdzięczają przede wszystkim cenie – niestety, nie idącej w parze z jakością. Popularne magazyny komputerowe zazwyczaj w każdym z wydań opisują nowe modele, możliwe do podłączenia zarówno przez USB, karty TV czy inne, bardziej egzotyczne interfejsy. Typowe parametry kamer – praca w systemie PAL i wydajność w trybie sprzętowym około 20-25 klatek na sekundę (FPS – Frames Per Second) zazwyczaj zostają zachowane; jednakże zarówno jakość optyki jak i elektroniki pozostawia wiele do życzenia. Niektóre modele udostępniają możliwość poprawienia jakości obrazu – głównie dzięki podniesieniu rozdzielczości, co jednak odbija się na prędkości przesyłanych danych i nawet w trybie nagrywania ciągłego ciężko uzyskać więcej niż kilka FPS.

Ponadto kamery internetowe pozbawione są mnóstwa opcji występujących w wyższym segmencie jakościowym. Często jedynym parametrem możliwym do zmiany po stronie kamery jest ostrość. Trudno wówczas mówić o możliwości wszechstronnego zastosowania takiej kamery.

Jedną z niewielu zalet kamer internetowych jest sposób podłączania, eliminujący konieczność konwersji sygnału cyfrowego na analogowy i z powrotem. Korzystanie z USB czy wejść cyfrowych kart telewizyjnych umożliwia również pozbycie się dodatkowego przewodu zasilającego – trzeba jednak pamiętać o ograniczonym zasięgu; może nie w przypadku USB, ale w przypadku interfejsów własnych producentów kart TV może się zdarzyć, że wykonanie przejściówki czy przedłużacza będzie bez odpowiedniej dokumentacji niemożliwe.

Należy w tym miejscu wspomnieć o internetowych kamerach ‘wolnostojących’. Kamery takie posiadają zintegrowany serwer WWW, udostępniający obraz bezpośrednio w sieci komputerowej. Zalety są oczywiste – nie potrzeba w takiej sytuacji komputera. Niestety – zajęty jest jeden z adresów IP, ponadto z tak przygotowanym obrazem ciężko zrobić cokolwiek więcej – chociażby nagranie wymaga mimo wszystko komputera.

Kamery telewizji przemysłowej to zupełnie inna klasa kamer. Mimo podobnego co kamery internetowe przedziału cenowego dla kamer najniższej jakości oferują znacznie więcej możliwości, a od pewnego pułapu również wyższą jakość obrazu. Stosowane powszechnie we wszelkiego rodzaju instalacjach ochronno-zabezpieczeniowych są chyba najczęściej używanymi kamerami. Kamery te są łatwe w instalacji a ich parametry (i – przede wszystkim – różnorodność) pozwalają na zastosowanie w prawie każdych warunkach.

Kamery profesjonalne – pozostające poza zasięgiem moich zainteresowań, może z wyjątkiem rewelacyjnych kamer firmy Cannon – to zupełnie inna kategoria. Ich parametry są wprost proporcjonalne do ceny. Niestety – ich użycie ogranicza się właściwie do zastosowań specjalnych, w których dużą rolę odgrywa jakość obrazu, np. podczas identyfikacji osób etc.

 

    1. Kamera a komputer – wymagania
    2. Łączenie komputerów z kamerami, obróbka danych...

       

      1. Zapis na dysk
      2. Ze względu na olbrzymi strumień danych, jakie generują kamery, komputer będący hostem dla urządzenia musi charakteryzować się odpowiednimi parametrami. Wydawałoby się, że w dobie dzisiejszych pecetów, określanych szumnie jako ‘multimedialne’, podłączenie kamery i oglądanie obrazu nie stanowi większego problemu. Wszak wielu z nas oglądało już filmy na ekranie własnych monitorów lub posiada karty TV i ogląda telewizję.

        Jednakże czym innym jest podgląd obrazu na ekranie a czym innym – jego dalsza obróbka – chociażby zapis. Typowa wielkość obrazu stosowana w rozwiązaniach mojej firmy to 384x288 pikseli. Jak łatwo obliczyć, każda klatka obrazu to 110592 piksele; jeśli założymy, że obrabiany obraz jest w 32 bpp, klatka zajmuje około 400 kiloBajtów. Teraz wystarczy tę wartość pomnożyć przez wymarzone 25 FPS i otrzymujemy strumień danych o wielkości ponad 8 MB na sekundę. Teoretyczne osiągi dzisiejszych dysków, zwłaszcza w technologii UDMA/66 pozwalałyby na spokojny zapis, gdyby nie to, że są to osiągi teoretyczne. Z własnego doświadczenia (Abit be6.2+Celeron400+Seagate Barracuda 7200 13,7GB+128MB RAM PC 133) wiem, że uzyskanie zapisu rzędu 3+ MB jest bardzo często niemożliwe.

      3. Kompresja i obróbka danych

Kolejnym ważnym parametrem jest szybkość procesora. Jest to istotne głównie ze względu na obróbkę przechwyconych już danych – w większości wypadków będzie chodziło o kompresję, ponadto można przerabiać obraz czy też z pomocą kamer wykrywać różnorakie zdarzenia (ruch, dym itd...).

Podczas przechwytywania obrazu i jego zapisu będziemy mówili o dwóch rodzajach zapisywania : zapisie ciągłym i poklatkowym. Ten pierwszy charakteryzuje zazwyczaj zapis obrazu z jednej kamery, podczas gdy drugi można stosować do kamery pojedynczej, ale głównie znajduje zastosowanie podczas pracy z większą ilością kamer. W zależności właśnie od rodzaju zapisu stosuje się różne metody kompresji obrazu.

Zapis ciągły pozwala na użycie wszelkiego rodzaju algorytmów z tak zwanymi klatkami pośrednimi. Polega to na zapisywaniu co którąś klatkę pełnego obrazu, podczas gdy normalnie zapisuje się klatki będące tylko zmianami w obrazie. Jest to idealna metoda zapisu w wypadku pojedynczej kamery, w dodatku najlepiej gdy obraz przed kamerą jest statyczny lub z niewielką ilością ruchu. Podstawowe kodeki będące obecnie w użyciu to

Jednakże w większości zastosowań telewizji przemysłowej używa się więcej niż jednej kamery, tak więc w takiej sytuacji zapis ciągły nie miałby sensu. Zapis poklatkowy umożliwia zapisanie i odtworzenie skompresowanych danych z kilku kamer jednocześnie (lub – prawie jednocześnie). W takim wypadku bezkonkurencyjny do ostatniego czasu był algorytm kompresji stratnej JPG i jego odmiana M-JPG. Obecnie pojawił się algorytm kompresji wavelet, który oferuje wyższą jakość obrazu i lepsze upakowanie danych przy podobnych wymaganiach zasobowych. Ponadto niektóre firmy stosują własne rozwiązania.

Cały czas należy pamiętać o tym, że powyższe rozważania powinny być traktowane w kontekście zastosowania kamer. Tak więc do celów internetowych, gdzie potrzeba maksymalnego upakowania danych aby zmniejszyć zajętość łącz, będziemy musieli użyć szybkiego procesora pakującego dane ‘w locie’; w każdym razie nad wymaganiami czasowymi i jakościowymi stawia się tutaj wymagania objętościowe. Dla potrzeb obserwacji bieżącej i prewencji (np. w supermarketach itp. ) wymagana jest duża płynność obrazu (rzędu właśnie 25 FPS) przy niekoniecznie wysokiej jakości – ważna jest szybka reakcja na zdarzenie. Natomiast podczas automatycznej archiwizacji danych istotna jest zarówno jakość obrazu (choć nie uzyskamy tu rewelacyjnych wyników) i objętość – im mniejsza, tym więcej danych będzie można zapisać. Szybkość zapisu jest mniej istotna, aczkolwiek nie może przekraczać granic zdrowego rozsądku.

Obróbka danych inna niż kompresja to w większości wypadków wykrywanie ruchu czy dymu w polu widzenia kamery. Algorytmy i rozwiązania bazujące na nich stanowią na tyle obszerny temat, że nawet pobieżne rozważania mogłyby być tematem osobnego artykułu. Oczywiście tego typu zastosowania powodują dalszy wzrost zapotrzebowania na moc obliczeniową komputera, jednakże w efekcie pozwalają np. zaoszczędzić na objętości zapisu. Wystarczy wyobrazić sobie system zapisujący obraz tylko w momencie wykrycia ruchu, obiektu określonej wielkości czy danego natężenie dymu.

 

Poniżej podane są przykłady różnicy w obrazach kompresowanych z różną jakością:

Rysunek 1 Zapis z jakością 80%.

 

 

Rysunek 2.  Zapis z jakością 30%. Wyraźnie widoczne schodki

Przykłady komputerowej obróbki obrazu przy wykrywaniu ruchu.

Rysunek 3.  Proces wykrywania ruchu – oryginał

Rysunek 4.  Zastosowanie algorytmu Sobela do wykrywania krawędzi

Rysunek 5.  Zastosowanie algorytmu wykrywania ruchu obiektów.

 

3. Interfejsy

Metod podłączenia kamer do komputera jest wiele. Pierwszą i ostatnio zdobywającą sobie coraz więcej uznania w zastosowaniach amatorskich i domowych jest podłączenie kamery do komputera przez USB. Interfejs ten jest popularny i właściwie wszystkie nowe płyty główne posiadają którąś z jego implementacji, jednak jego oczywiste ograniczenia (głównie przepustowość) zamykają drogę do szybkiej obróbki danych.

Kolejną metodą jest podłączenie kamery przez kartę TV (bardzo często zintegrowaną z tunerem TV). Jest to jedno z najrozsądniejszych rozwiązań, tym bardziej że oprócz kamery można np. oglądać telewizję czy korzystać z dodatkowych opcji oferowanych przez producenta karty – np. posiadana przeze mnie karta Pixel View oferuje wejścia typu composite, antenowe dla telewizji i radia, wyjście audio, dodatkowe wejście na pilota oraz wejście cyfrowe (niestety – własnego formatu) dla kamery internetowej. Czyli można oglądać obraz z trzech źródeł : composite, anteny TV i wejścia cyfrowego.

Dostępne na rynku chipsety (kości zajmujące się przetwarzaniem obrazu itd.) to głównie rodzina BrookTree (bt878 i pokrewne). Najstarszy z rodziny bt848 oferuje niską szybkość przetwarzania danych – parametry kart TV bazujących na tym chipsecie nie umożliwiają niestety ani dużej szybkości obrabiania/zapisywania danych ani też wysokiej jakości obrazu (choć to zależy również od producenta danego modelu karty). Karty z chipsetem bt878, stanowiące podstawę oferty naszej firmy umożliwiają pracę z rozsądną prędkością, tzn. bez zapisywania/obróbki około 20 FPS, podczas zapisu pomiędzy 10-15.  W przypadku obróbki obrazów z kilku kamer przy użyciu jednej karty - szybkość ta spada do ok 6-7 FPS, co jest spowodowane pominięciem przy zapisie klatek uszkodzonych wynikłych z przełączania kamer. Należy przy tym pamiętać, że mówimy o kartach TV z niższego segmentu cenowego rynku (2000-04-02 : ceny takich kart wahają się od 300 do 500 zł.).

Interfejsy specjalizowane (typu FireWire) oferują wysoki transfer danych w porównaniu do np. USB czy Centronicsa. Ponadto FireWire nie potrzebuje do działania komputera – urządzenia mogą być podłączane dynamicznie i są automatycznie wykrywane; niezależnie od transmisji danych interfejs umożliwia sterowanie podłączonymi urządzeniami. Teoretycznie możliwe jest przesyłanie obrazu standardu PAL z pełną szybkością, w praktyce ograniczenia sprzętowe powodują zmniejszenie albo szybkości przesyłania, albo jakości danych.

 

  1. Podsumowanie

Przyszłość kamer w zastosowaniach komputerowych można z grubsza przewidzieć na podstawie ich zastosowań. Można tu wyróżnić trzy segmenty – domowy, profesjonalny i specjalny. W pierwszym segmencie kamery będą ewoluowały w stronę Internetu i zabezpieczeń domów. Te pierwsze będą łatwo podłączanymi kamerkami z ubogą elektroniką, produkowanymi masowo w oparci o interfejs USB bądź podobny, oferowanymi z ubogim darmowym lub shareware’owym oprogramowaniem i sprzedawane w sklepach ze sprzętem komputerowym. Kamery do zabezpieczeń będą z kolei hybrydami kamer domofonowych (tzw. videofony) i zewnętrznych kamer telewizji przemysłowej, z interfejsem opartym na kartach TV. Łatwość instalacji i możliwość podłączenia do innych odbiorników niż komputer (np. do telewizora) czy też, za pośrednictwem karty TV możliwość oglądania telewizji na komputerze oraz obróbki i zdalnego przesyłania danych przyczyni się do wzrostu ich popularności.

Segment profesjonalny to rynek zabezpieczeń i telewizji przemysłowej oraz telewizji ‘zwykłej’. O ile w tym pierwszym komputery już dawno znalazły sobie miejsce – chociażby przy tworzeniu efektów specjalnych – o tyle telewizja przemysłowa w dużym procencie wciąż opiera się na tradycyjnych urządzeniach do składowania danych – magnetowidach itp. Jednakże wzrost mocy obliczeniowej komputerów i coraz większy wybór interfejsów pośredniczących w wymianie danych między komputerami a kamerami przyczynia się do zwiększenia zainteresowania ofertą tego typu. Można więc się spodziewać rosnącego zapotrzebowania na instalacje oparte na komputerach.

Segment specjalny to zastosowania wykraczające poza obszar tego artykułu – tworzenie filmów i tym podobne. Tam komputery są powszechnością, jednakże rozwiązania stosowane przy takich okolicznościach rzadko opierają się na standardach. Trudno mówić o przyszłości – w tym segmencie zagościła ona już dawno temu...

 

 

Przygotował :

Jerzy "Doom_" Zientkowski