Szum - wróg czujników obrazu

| Technika

Wzrok jest jednym z ważniejszych zmysłów człowieka. Już w czasach początków elektroniki pracowano nad urządzeniami zdolnymi do rejestrowania i wyświetlania obrazów. Samo osiągnięcie tak postawionego celu było wówczas wielkim sukcesem. O ile z obrazem statycznym można było poradzić sobie bez elektroniki, o tyle wyświetlenie obrazu dynamicznego było nie lada wyzwaniem. Dziś nie dość, że potrafimy obraz wyświetlić, ale też odpowiednio do potrzeb go analizować. Strach pomyśleć, co będzie się działo, gdy intensywnie i powszechnie włączymy do tego sztuczną inteligencję.

Szum - wróg czujników obrazu

Przykładem zastosowania analizy obrazu są systemy ADAS (Advanced Driver Assistance Systems – systemy wspomagania prowadzenia pojazdów), ale urządzenia służące do analizy obrazów to też łakomy kąsek dla wojska i medycyny. Warunkiem koniecznym jest analiza prowadzona w czasie rzeczywistym.

Podstawowym elementem takich systemów jest czujnik obrazu. Istotnym problemem, z którym muszą sobie jakoś radzić konstruktorzy, są szumy. W urządzeniach konsumenckich parametr ten nie ma istotnego znaczenia, natomiast w systemach ratowania czy podtrzymania życia może być krytyczny. Szum skutkuje zazwyczaj ziarnistym obrazem, którego przyczyną jest najczęściej niedoświetlenie, szybkość rejestrowania czy też po prostu wadliwe działanie czujnika.

Jeśli nie jest wymagana analiza w czasie rzeczywistym, zarejestrowany obraz można później oczyścić. Obrabiając np. selfie z wakacji, można później wyeliminować szumy, redukując odblaski lub stosując odpowiednie filtry implementowane nawet w najprostszym oprogramowaniu służącym do obróbki zdjęć. W systemach ADAS odblask na obrazie może mieć wpływ na szybkość włączania hamulców, a w rezultacie spowodować bardzo poważne konsekwencje. Podobne skutki, choć o innym charakterze, mogą wystąpić w urządzeniach medycznych, w których na obrazy mogą wpływać takie czynniki, jak zakłócenia elektromagnetyczne, ciepło czy wibracje. Zakłócenia obrazu stają się przyczyną wielu problemów w komputerowych systemach wizyjnych obsługujących sztuczną inteligencję, gdzie ogromne ilości danych muszą być przetwarzane z niezwykle dużą szybkością. Źródłem kłopotów jest ponadto dość nieoczekiwane starzenie się elementów, awarie dielektryków lub zmiany w ścieżkach sygnałowych będących następstwem elektromigracji.

Systemy analizy obrazów będą w zależności od zastosowań różnić się między sobą progami tolerancji. Na przykład prosta kamerka bezpieczeństwa lub system wykrywania ruchu zwierząt w zoo może tolerować znacznie większy szum obrazu i działać przy znacznie mniejszej rozdzielczości niż tomograf komputerowy lub urządzenia MRI (rezonans magnetyczny) używane w medycznych systemach ratowania życia. Należy tu dodać, że mówiąc o obrazie, mamy na myśli jego dowolną metodę pozyskania. Może to więc być obraz termograficzny, rentgenowski, a nawet otrzymywany w wyniku przetwarzania częstotliwości radiowych i mikrofalowych.

Tolerancja na szum zależy ponadto od ludzkiej percepcji. Swego rodzaju ciekawostką jest to, że ludzie postrzegają obraz jako przyjemny, gdy stosunek sygnału do szumu jest większy niż 20 dB, a jeszcze lepiej, gdy jest on większy od 40 dB. Nie przeszkadza to jednak odnajdywać szczegóły obrazu przy SNR wynoszącym zaledwie 1 dB, a nawet mniej. Nasuwa się tu pytanie, jaki może być akceptowalny poziom szumów w systemach analizy obrazów? Będzie on oczywiście zależał od konkretnej aplikacji. Dla wielu z nich, szczególnie tych najbardziej krytycznych, określony jest wskaźnik jakości dla danej aplikacji, będący odzwierciedleniem wrażliwości na szum danego systemu.

Podstawowy szum w czujnikach obrazu

Wiemy, że świat nie jest idealny. Zbudowanie systemu, w którym szumu w ogóle by nie było, jest nierealne. Każdy przetwornik obrazu będzie charakteryzował się mniejszym lub większym szumem. Można go wyeliminować lub zminimalizować do akceptowalnego poziomu dopiero w trakcie obróbki końcowej obrazu.

Szum może mieć ustalony wzorzec (fixed-pattern), ale też wyróżniamy szum o parametrach zmieniających się w czasie. Szum czasowy wynika z podstawowego procesu opartego na kwantyzacji światła (fotonów) i ładunku (elektronów). Przechwytując obraz przy danej ekspozycji w ciemnym, nieoświetlonym pomieszczeniu, można zaobserwować zmienną liczbę fotonów. Zjawisko to jest znane jako szum fotonowy, będący podstawowym procesem powstawania szumu we wszystkich urządzeniach obrazujących.

Co gorsza, nawet samo ciepło może powodować zaszumienie obrazu, które w ekstremalnych warunkach może stwarzać problemy z czujnikami systemów ADAS. Czujniki takie muszą poprawnie pracować zarówno w najjaśniejszych, jak i najciemniejszych warunkach bez względu na to czy temperatura środowiska jest równa –20°C czy +120°C.

Konstruktorzy budujący systemy analizy obrazów często stosują w swoich projektach czujniki wykonane w technologii CMOS. W porównaniu z czujnikami CCD charakteryzują się one mniejszą czułością i szybkością, ale za to mogą pracować przy mniejszym napięciu zasilania, są też bardziej odporne na zakłócenia. Niestety szum rośnie w nich wraz ze wzrostem temperatury. Za to w niższych temperaturach rośnie szybkość działania. Dzieje się tak jednak tylko do pewnego momentu, po przekroczeniu którego uwidaczniają się inne negatywne oddziaływania. Należy ponadto mieć na uwadze to, że elementy nagrzewają się samoczynnie podczas pracy. Praktycznie jedyną metodą pozbycia się szumów pozostaje więc filtracja cyfrowa obrazu.

 
Rys. 1. Problemy z szumami i ich rozwiązanie. Źródło: Flex Logix

Przyczyną powstawania szumu fixed-pattern jest niejednorodność procesu, ale może też na niego wpływać nieodpowiednio zaprojektowane rozwiązanie konstrukcyjne. W rezultacie powstają niepożądane artefakty, jak przesunięcia, wzmocnienia, osiadanie. Szum taki objawia się ponadto zmianami wydajności kwantowej, powstaje szum odczytu. Walka z szumem fixed-pattern jest wielopłaszczyznowa, wymaga wysiłku na poziomie procesu, projektu urządzenia, a także przetwarzania sygnału.

Z szumem jest związane jeszcze jedno, mało intuicyjne zagadnienie. Otóż szum działa zarówno na systemy analogowe, jak i cyfrowe. Punktem wyjścia dla systemów cyfrowych są niemal zawsze jakieś źródła analogowe. W aplikacjach analizy obrazów układy cyfrowe zaczynają swoją pracę od digitalizacji danych z czujnika obrazu. Należy więc uznać, że układy cyfrowe dostają na wejściu to samo, co układy analogowe. Dodatkowo układy cyfrowe muszą sobie jakoś radzić z problemami wynikającymi z kwantyzacji i pikselacją, a więc efektami typowymi dla przetwarzania analogowo-cyfrowego. Jeśli teraz sygnał cyfrowy zostanie poddany kompresji stratnej, pojawi się dodatkowy szum. Nie można też pominąć efektów szumowych generowanych przez zastosowane w późniejszych fazach obróbki obrazu operacje występujące w bardzo złożonych szybkich technikach cyfrowych.

Jeśli więc w jakiejś aplikacji występują szybkie pamięci DDRx, używana jest kwadraturowa modulacja amplitudy (QAM) lub modulacja PAM czy inne metody modulacji, stosowane jest kodowanie NRZ itp., należy liczyć się z wprowadzeniem do systemu dodatkowego szumu. Wiele z tych problemów może być rozwiązanych automatycznie przez mechanizmy korekcji błędów w oprogramowaniu.

Szum może pojawić się w dowolnym miejscu łańcucha obrazowania, powodując szereg problemów. Na przykład obiekt widoczny na obrazie może wykazywać cienie, odbicia wewnętrzne, utratę współpłaszczyznowości, paralaksę, a nawet subtelne wibracje, szczególnie w środowisku produkcyjnym. W takich sytuacjach szum może skomplikować inspekcję obiektu. Na przykład, jeśli na górze i na dole wielowarstwowej płytki drukowanej obrazowanej za pomocą technologii rentgenowskiej znajdują się nakładające się elementy siatki, mogą pojawić się cienie połączeń lutowniczych.

Z kolei gradienty termiczne w szczelinie między obiektem a czujnikiem mogą powodować zakłócenia, takie jak migotanie ciepła na gorącej drodze. Słabe oświetlenie i zbyt szybkie rejestrowanie obrazu to również potencjalne źródła powstawania szumów.

Szumy nie są niestety jedynymi czynnikami zaburzeń wprowadzanych do analizowanego obrazu. Jeśli w torze optycznym obrazowania znajdzie się soczewka, możemy spodziewać się kolejnych kłopotów. W takim przypadku oprócz szumów pojawią się zniekształcenia optyczne, takie jak aberracja chromatyczna, aberracja sferyczna, a także błędy związane z mikroskopijnym pyłem lub niedoskonałościami obiektywu. Obiektyw ma wpływa na ostrość, głębię ostrości i płaszczyznę ogniskową obrazu. Wszystkie te czynniki są kluczowymi aspektami akwizycji obrazu.

W łańcuchu problemów pozostaje jeszcze sam sprzęt używany do wykrywania obrazu. On też charakteryzuje się produkcyjnym rozrzutem parametrów, a także reakcjami na zjawiska termiczne, nawet wtedy, gdy nie są przekraczane zakresy dopuszczalnych temperatur pracy. Czujnik o niskiej rozdzielczości lub małym zakresie dynamiki również może zniekształcić obraz. Szum na obrazie pojawi się, gdy będą problemy z integralnością zasilania w liniach zasilających czujnik. Wreszcie kluczową rolę w jakości obrazu będzie odgrywać funkcja konwersji optoelektronicznej (OECF) aparatu. Wymienione czynniki, objawiające się szumem, można zakwalifikować do wewnętrznych, ale nie do pominięcia są też czynniki zewnętrzne, takie jak migotanie (flicker). Bez jego eliminacji może być trudno uzyskać czysty i wyraźny obraz.

Podstawy obrazowania dla ADAS

Systemy ADAS jako te, które wspomagają kierowcę w prowadzeniu pojazdów, pełnią niezwykle odpowiedzialną funkcję. Można sądzić, że szum jest dla nich problemem wręcz krytycznym, gdyż w skrajnym przypadku może doprowadzić do katastrofalnych skutków. Okazuje się jednak, że gotowe, komercyjne systemy jakoś sobie z tym radzą. Gorzej jest natomiast z aplikacjami konsumenckimi. Piksele spoza zakresu ujawniające się w zwykłym aparacie fotograficznym mogą całkowicie zniszczyć obraz. ADAS nie zajmuje się estetyką. W systemach tych obraz nie musi być piękny. Tam nie chodzi o eliminację zmarszczek i wygładzanie cery modelek, tylko o podejmowanie decyzji binarnej – hamować czy nie. W praktyce algorytmy ADAS są szkolone na obrazach o niższej rozdzielczości i ignorują szum, który w aparacie konsumenckim byłby zabójcą produktu.

Popatrzmy, jak mogłaby wyglądać procedura zlokalizowania kota widocznego na środku obrazu. Najpierw obraz jest dzielony na segmenty. Proces ten polega na obrysowaniu potencjalnego obszaru zainteresowania ramką ograniczającą. Następnie obraz jest wprowadzany do sieci neuronowej i oceniany jest każdy obszar ograniczający. Obrazy są oznaczane, a następnie algorytm może się przeszkolić w identyfikowaniu tego, co najistotniejsze. I teraz najważniejsze, jaki jest efekt pracy? Otrzymujemy odpowiedź z systemu: "To jest kot. Powinniśmy się tym zająć i hamować" albo "to śmieć. Nie przejmujemy się tym". Choć brzmi to jak kiepski żart, to w rzeczywistości algorytmy ADAS są szkolone właśnie tak, aby przypisywać określonym zwierzętom określone wartości. Mimo że takie podejście wydaje się mocno kontrowersyjne, to jak wynika z opinii specjalisty, tak właśnie są projektowane systemy ADAS. Chodzi o bezpieczeństwo, a nie o etykę.

 
Rys. 2. Migotanie sygnalizacji świetlnej lub znaków drogowych LED stanowi poważne wyzwanie dla rozwiązań HDR, uniemożliwiając systemom wspomagania kierowcy i pojazdom autonomicznym prawidłowe wykrycie oświetlonych znaków drogowych. Źródło: OmniVision

Jeśli obiekt jest całkowicie lub częściowo zasłonięty przez inny obiekt lub jest zasłonięty przez rozbłysk świetlny, prawidłowe rozpoznanie obiektu będzie wymagało bardziej zaawansowanych algorytmów. Po odebraniu ramki z kamery i przejściu przez podstawowe przetwarzanie sygnału obrazu, obraz jest następnie prezentowany sieci neuronowej. Tym samym dane przestają być traktowane jak obraz i rozpoczyna się ich stricte komputerowe postrzeganie. Analiza rozpoczyna się od klatki lub sekwencji klatek, które zostały oczyszczone i gotowe do prezentacji. Następnie ramki są pakowane i wysyłane dwutorowo: do algorytmu AI w celu przeszkolenia lub do dalszego przetwarzania w sieci neutronowej. Jak już wiemy, tworzone są na tym etapie obwiednie wokół artefaktów rozpoznanych wewnątrz ramki. Może zdarzyć się przypadek, w którym AI nie rozpozna obiektu w danej ramce. Wówczas podejmowane są próby rozpoznania w kolejnych lub poprzedzających klatkach.

W sytuacji ryzykownej automatyczny układ hamulcowy ma około 120 ms na reakcję, więc cała operacja musi odbywać się w samochodzie. Warto tu wykonać szacunkowe obliczenie, pozwalające określić wymagania czasowe dla systemu ADAS. Załóżmy, że samochód porusza się z prędkością 105 km/h, czyli ok. 29,2 m/s. Przy tej prędkości droga hamowania to około 152 metry. Samochód jadący z prędkością 50 km/h przejeżdża w ciągu sekundy około 13,9 m. Załóżmy, że analiza sytuacji trwa pół sekundy. Sygnał w tym czasie trafia od czujnika do sztucznej inteligencji, a następnie do hamulca. Przy prędkości 50 km/h samochód przejedzie w tym czasie ok. 7 metrów, można więc powiedzieć, że ten odcinek wydłuży drogę hamowania. Trzeba ponadto mieć na uwadze, że czujnik rejestruje obrazy z prędkością ok. 30 klatek na sekundę. Dlatego sztuczna inteligencja musi podejmować decyzję co ok. 33 milisekund.

Jak widać, do systemów ADAS pożądane by były specjalnie opracowane do takich zastosowań czujniki wykorzystujące najbardziej zaawansowane techniki przetwarzania obrazów i produkowane w technologiach pozwalających na implementację skomplikowanych algorytmów programowych. W rezultacie mamy czujniki z dodatkowym chipem zawierającym procesor przetwarzania obrazu (ISP – Image Signal Processor) umożliwiający redukcję szumów, usuwający rozmycia i wykrywanie krawędzi. Można sądzić, że wkrótce pojawią się inteligentne czujniki z wbudowaną siecią neuronową, dzięki której można byłoby uczyć czujniki i aktualizować różne wagi i parametry analizy.

Jeśli taki schemat się powiedzie, będzie to oznaczało, że czujnik mógłby wykonywać działania lokalnie, pozwalając na podejmowanie decyzji w czasie rzeczywistym. Dodatkową korzyścią może być transferowanie danych, które na potrzeby późniejszego szkolenia mają być przechowywane i przetwarzane w chmurze lub w samochodzie. Pozwoli to zwiększyć dokładność i szybkość podejmowania decyzji. Pojawia się też dodatkowa, dość nieoczywista korzyść. Okazuje się, że wielu nowoczesnych dostawców usług internetowych może już teraz dynamicznie kompensować jakość obrazu. Na przykład, jeśli nastąpi nagła zmiana z jasnego światła na słabe oświetlenie lub odwrotnie, dostawca usług internetowych może to wykryć i zmienić ustawienia czujnika. Jednak to sprzężenie zwrotne pojawia się na długo przed przejściem obrazu do fazy sztucznej inteligencji i wykrywania obiektów, dzięki czemu kolejne klatki w fazie wykrywania obiektów lub sztucznej inteligencji są czystsze.

Jednym z istniejących już zastosowań jest dobrze znane kierowcom monitorowanie ich zachowań. Stanowi to dla projektantów jednak kolejny istotny problem związany z szumem. Słońce może świecić prosto w twarz kierowcy, powodując nadmierne nasycenie obrazu, ale może wystąpić również sytuacja odwrotna, gdy jest zupełnie ciemno, a jedyne światło wydobywa się z deski rozdzielczej. Jednym z największych problemów przy budowie czujnika analogowego i powiązanego analogowego wyposażenia, które zapewniałyby duży zakres dynamiki i wymagany poziom szczegółowości, jest szum. Po prostu nie da się zbudować idealnego czujnika o tak dużym zakresie dynamiki. Na brzegach, gdzie występują bardzo jasne obszary, a nawet przejaskrawienia, utrata jakości będzie na tyle duża, że trzeba będzie ją jakoś nadrobić.

Sztuczna inteligencja i szum

Można postawić pytanie, czy możliwe jest wypełnienie zasłoniętej części obrazu cyfrowego? Systemy ADAS mają teoretycznie odpowiedni potencjał do realizacji takich zadań. Są jednak pewne ograniczenia. Na przykład wykonanie tej opcji na brzegu obrazu w czasie rzeczywistym będzie wymagało nowych, specjalnie przeznaczonych do podobnych zadań elementów przetwarzających, zapewniających natychmiastową informację zwrotną wymaganą w systemach o krytycznym znaczeniu dla bezpieczeństwa. Można sądzić, że w tym zakresie będziemy spodziewać się w najbliższym czasie szeregu nowych, niestandardowych rozwiązań w postaci specjalizowanych chipów.

Tymczasem warto zwrócić uwagę na funkcję "Magic Eraser" w telefonach Androida/Google. Pozwala ona szybko usuwać efekty typu "photo-bombers" i innych obiektów tła oraz wypełnianie pustych miejsc. Wykonanie tego samego w przypadku czujnika samochodowego w celu usunięcia okluzji i wypełnienia pustych miejsc jest znanym, rozwiązanym problemem. Wykonywanie tego w czasie rzeczywistym jest prostym problemem skalowania obliczeń. W dzisiejszej technologii 5 nm z powierzchni ~10 mm2 można uzyskać pełne 40 TOP-ów wydajności w pełni programowalnych możliwości GPNPU. To niewielki ułamek dużych (>400 mm2) chipów ADAS, które są obecnie projektowane. Zatem prawdopodobnie moc obliczeniowa GPNPU będzie więcej niż wystarczająca do tego rodzaju zastosowań.

Analiza szumu

Analiza szumu w czujnikach obrazu to obszar badań wymagający dużej aktywności. Prace z tym związane trwają już od ponad 50 lat.

Projektanci systemów ADAS bardzo często przed zakupem czujników obrazu pytają dostawców o parametry szumowe oferowanych elementów.

Zagadnienia związane z szumem są stosunkowo dobrze poznane. Potrafimy sobie z nimi radzić na różne sposoby. Szum można przedstawić w formie zamkniętej, umożliwiającej bardzo dokładne określenie, jak będzie wyglądał dany profil szumu. Są też inne mniej poznane mechanizmy, a także takie, które nie wykazują dobrej liniowości i charakteryzują się większą losowością. Takie mechanizmy będą na pewno wymagały większego wysiłku od projektantów systemów.

Najlepsze praktyki

Projektantom systemów z czujnikami obrazu można da kilka wskazówek:

Należy jasno określić zadania, które będzie realizował czujnik będący elementem całego systemu. Na przykład powolna kamera termowizyjna o niskiej rozdzielczości lub wektorowy analizator sieci może ujawnić informacje o chorobie lub urazie tkanki podskórnej albo podtwardówkowej, które byłyby niewidoczne dla szybkiego czujnika światła widzialnego o wysokiej rozdzielczości. Zawsze warto zalecić współpracę z dostawcami elementów i modułów. Można uzyskać od nich wiele praktycznych informacji o czujniku, zalecanych dla niego metodach projektowania, a także wielu informacji, które nie zawsze są publikowane w dostępnej dokumentacji. Projektując systemy, należy brać pod uwagę szum obrazu występujący w całym cyklu życia produktu. Warto korzystać z narzędzi symulacyjnych na wczesnym etapie projektowania, co pomoże minimalizować problemy spowodowane nieoptymalną integralnością sygnału lub integralnością zasilania.

Każdy projekt powinien być przeanalizowany z perspektywy użytkownika końcowego. Warto ustalić, jakie są jego cele? Jakie są obawy? Jakie umiejętności posiada? Czy użytkownik może dokonywać odpowiednich interwencji i modyfikacji systemu? Jaki jest budżet przewidziany na zakup urządzenia? Prawdopodobnie zaskakujący będzie wniosek, że w niektórych zastosowaniach bardziej odpowiedni będzie system w pełni zautomatyzowany, charakteryzujący się większym poziomem szumu, niż system bardziej złożony, który może osiągnąć znacznie niższy poziom szumu.

Należy zapoznać się z dostępnymi normami dotyczącymi kamer, optycznych i obrazowania, takimi jak ISO 9358, 12232, 12233, 14524 i 15739, a także normą EMVA 1288.

Przeanalizować trzeba najnowsze badania nad zastosowaniem do usuwania szumów matematyki wyższej, statystyki i sztucznej inteligencji. Niektóre z tych technik obejmują estymację maksymalizacji oczekiwań, estymację bayesowską, estymację liniowego minimalnego błędu średniokwadratowego, cząstkowe równania różniczkowe wyższego rzędu i splotowe sieci neuronowe.

Co dalej?

Obecne systemy ADAS mogą tolerować większe zaszumienie niż inne formy obrazowania, w przyszłości może tak jednak nie być. Większa różnorodność zastosowań spowoduje, że czujniki obrazu będą pracować z wyższymi rozdzielczościami, co z kolei będzie wymagało bardziej zlokalizowanego przetwarzania i redukcji szumów.

W przeszłości znaczna część przetwarzania obrazu odbywała się w rozdzielczości VGA. Może tak jednak nie być w zastosowaniach takich jak monitorowanie wnętrza kabiny z uwzględnieniem śledzenia wzroku kierowcy i pasażerów w celu rozpoznania, co dzieje się w pojeździe, w tym monitorowanie czujności kierowcy lub tego, czy ktoś został pozostawiony na tylnym siedzeniu. Podobne aplikacje mogą skłaniać do korzystania z obrazów o wyższej rozdzielczości. To z kolei narzuci konieczność stosowania rozwiązań pozwalających zwiększyć skuteczność redukcji szumów, radzenia sobie z przeszkodami w obrazie i umożliwienia lokalnego przetwarzania znacznie większej ilości danych. Przechodząc z VGA na 720, 1020 aż do 4K, czterokrotnie zwiększana jest liczba pikseli, z którymi trzeba pracować. Każdy z nich wymaga coraz bardziej zlokalizowanego przetwarzania. To właśnie w tym kierunku podążają prace nad systemami rozpoznawania analizy obrazów.

Źródło: Karen Heyman, https://semiengineering.com/dealing-with-noise-in-image-sensors/

Jarosław Doliński