Często zadawane pytania#

Pytania ogólne#

Co jest wyjątkowego w CMUcam1?#

Tradycyjnie do przechwytywania i przetwarzania obrazów z kamery potrzebne są szybkie komputery. Konieczne jest również napisanie oprogramowania do wykonywania tego przetwarzania. Z tego powodu trudno jest używać wizji jako czujnika w prostych systemach.

System wizyjny CMUcam1 wykorzystuje szybki, tani mikrokontroler do obsługi całego szybkiego przetwarzania danych z kamery i zawiera oprogramowanie do wykonywania prostych zadań wizyjnych. Ponieważ użytkownik może wybrać wysyłanie z systemu wizyjnego tylko wysokopoziomowych informacji o niskiej przepustowości, takich jak to, że czerwony obiekt znajduje się w pozycji X-Y, prosty procesor, taki jak mikrokontroler PIC, może odczytać te dane i kierować małym robotem w zadaniach takich jak gonienie za kolorową piłką. System wizyjny CMUcam1 umożliwia ignorowanie złożoności podłączania kamery i używanie wizji tak jak każdego innego czujnika (np. sonaru) często stosowanego w systemach robotycznych.

Jaka jest częstotliwość klatek CMUcam1?#

Najszybsza częstotliwość klatek to 16,7 klatki na sekundę. Oznacza to, że CMUcam1 może podać Ci pozycję obiektu około 17 razy na sekundę. Za pomocą szeregowego protokołu programowego możesz to spowolnić, jeśli chcesz.

Jakie szybkości transmisji obsługuje CMUcam1?#

Począwszy od najnowszej wersji firmware (v1.12) CMUcam1 może komunikować się z szybkościami transmisji 9600, 19200, 38400 lub 115200. Szybkość transmisji jest wybierana za pomocą ustawień zworek na płytce.

Jak zaktualizować firmware mojego CMUcam1?#

Jeśli obecnie używasz firmware v1.11, nie ma powodu do aktualizacji, chyba że potrzebujesz obsługi niższych szybkości transmisji. Wersja 1.11 obsługuje 38400 i 115200 baud. Wersja 1.12 obsługuje te szybkości transmisji i dodaje obsługę 9600 i 19200 baud. Aby zaktualizować firmware, będziesz musiał przeprogramować pamięć flash w układzie procesora. Jeśli masz programator, możesz pobrać bieżącą wersję z naszej strony Pliki do pobrania i samodzielnie przeprogramować procesor.

Czy CMUcam1 działa na zewnątrz?#

CMUcam1 działa na zewnątrz, ale nie w bezpośrednim słońcu. Kamera CMOS, której używamy, nie ma wysokiej jakości filtra IR, więc światło słoneczne nasyca czerwone piksele i obraz staje się w zasadzie monochromatyczny w bezpośrednim świetle słonecznym. Możliwe jest dodanie zewnętrznego filtra, aby poprawić działanie na zewnątrz. Mamy krótkie opracowanie, które pokazuje, jak warunki oświetleniowe wpływają na CMUcam1, które możesz pobrać tutaj.

Czy mogę napisać własny kod dla CMUcam1?#

Oczywiście. Aby to zrobić, poproś nas o kod źródłowy firmware, zamów sobie środowisko programowania w języku C dla układu Ubicom i do dzieła. Gdy wyślemy Ci kod źródłowy firmware, wyślemy Ci również podsumowanie struktury kodu oraz informacje o używanym przez nas środowisku programowania.

Ile energii zużywa CMUcam1?#

Cały system zużywa około 200 miliamperów.

Jakie jest pole widzenia CMUcam1?#

To zależy od obiektywu, który dopasujesz do kamery CMOS. Jeśli zamówisz kamerę CMOS w standardowej sprzedaży, otrzymasz około 25-stopniowe pole widzenia, które jest stosunkowo wąskie. Możesz jednak zamówić na specjalne życzenie obiektywy szerokokątne przy zamawianiu kamery CMOS.

Jakiego procesora używa CMUcam1?#

Nasz kod przetwarzania obrazu znajduje się w układzie mikrokontrolera firmy Ubicom pracującym z częstotliwością 75 MHz, SX28AC. Ten układ odczytuje wszystkie piksele z kamery CMOS przez interfejs równoległy i wykonuje całe przetwarzanie w czasie rzeczywistym. Następnie przekazuje wyniki do Twojego mikrokontrolera lub komputera przez interfejs portu szeregowego.

Jakiej kamery CMOS używa CMUcam1?#

Używamy kamery CMOS, która wykorzystuje kamerę CMOS na chipie OmniVision OV6620. Używamy płytki kamery CMOS o numerze modelu C3088, na której zamontowane są czujnik, złącze i obiektyw.

Czy CMUcam1 współpracuje z innymi kamerami CMOS?#

Nie. Obecnie system sprzętowy i programowy został zaprojektowany do pracy specjalnie z kamerą CMOS OmniVision OV6620. System musiałby zostać całkowicie przeprojektowany, aby działać z inną kamerą.

Czy jest jakieś miejsce, w którym mogę znaleźć odpowiedzi na dodatkowe pytania, które mam?#

Tak. Na tej stronie mamy trochę informacji o bardziej technicznych pytaniach.

Gdzie mogę dowiedzieć się więcej o wizji komputerowej w ogóle?#

CMUcam1 wykonuje proste zadanie wizji komputerowej, do którego został zaprojektowany, w małej, niedrogiej obudowie. Jednak ogólny problem wizji komputerowej polegający na próbie rozpoznawania dowolnych obiektów w dowolnych warunkach jest nadal bardzo aktywnym tematem badań i bardzo daleko mu do bycia gdziekolwiek blisko rozwiązanego problemu.

Jeśli chcesz dowiedzieć się więcej o wizji komputerowej, możesz wypróbować te linki:

Pytania techniczne#

Jaka jest dokładna sekwencja kroków wykonywanych po włączeniu zasilania przez tryb demo?#

Oto dokładna sekwencja, którą tryb demo wykonuje po włączeniu zasilania:

  1. Zresetuj kamerę.

  2. Odczekaj 5 sekund, aż automatyczna regulacja parametrów kamery się ustabilizuje.

  3. Wyślij ciąg rejestrów kamery: CR 18 32 19 32, który wybiera tryb YCrCb i wyłącza automatyczne wzmocnienie.

  4. Wykonaj polecenie TW.

Następnie kamera zacznie sterować serwem w kierunku środka masy koloru wykrytego przez polecenie TW.

Jaka jest dokładna sekwencja kroków wykonywanych przez polecenie „TW”?#

Oto dokładna sekwencja, którą wykonuje polecenie TW:

  1. Zmniejsz okno do 1/4 rozmiaru (w każdym wymiarze) bieżącego okna, do nowego okna wyśrodkowanego względem środka bieżącego okna.

  2. Wywołaj get mean.

  3. Przywróć okno do pełnego rozmiaru obrazu.

  4. Ustaw wartość maksymalną i minimalną dla każdego kanału koloru na średnią dla tego kanału +/- 30.

Następnie kamera zacznie strumieniować pakiety typu C, M lub N.

W jakich warunkach zapala się dioda LED śledzenia, gdy włączony jest tryb automatyczny?#

Dioda LED zaświeci się, gdy zwrócone pixel_count >= 2. Zwrócone pixel_count = (actual_pixel_count + 4) / 8.

Jeśli kamera CMOS ma rozdzielczość 352 x 288 pikseli, dlaczego rozdzielczość CMUcam1 wynosi tylko 80 x 143?#

Problem polega tutaj na tym, jak działają kolorowe aparaty cyfrowe. We wszystkich cyfrowych aparatach kolorowych (nawet tych bardzo drogich - z wyjątkiem niektórych opartych na pewnej bardzo zaawansowanej technologii) uzyskujesz tylko jeden pomiar kanału koloru na lokalizację piksela, co nazywa się filtrowaniem mozaikowym. Oto ładny diagram, który pomaga to wyjaśnić:

Mosaic

(Diagram dzięki uprzejmości Foveon, Inc.)

Widać więc, że piksele można traktować jako ułożone w grupy po cztery, gdzie w każdej grupie są dwa pomiary G oraz po jednym pomiarze R i B. Jeśli odrzucisz jeden z pomiarów G (co robimy), zobaczysz, że rzeczywista rozdzielczość kamery 352x288 jest bliższa 176x144. Uruchamiamy kamerę w trybie połowicznej rozdzielczości, który pomija co drugi blok 2x2 w poziomie, co daje 88x144. Ze względu na ograniczenia pamięci w procesorze odrzucamy 8 kolumn w poziomie i jeden wiersz w pionie, który zawiera wzorzec testowy, co daje 80x143 jako ostateczną rozdzielczość.

Tak tylko dla informacji: standardowe aparaty cyfrowe używają złożonych technik interpolacji, aby spróbować uzupełnić brakujące wartości kolorów w każdym pikselu i dać coś nieco bliższego pełnej rozdzielczości czujnika.

Jak mogę dokładnie ustawić ostrość CMUcam1?#

Oczywiście najlepszym sposobem na ustawianie ostrości jest wykonywanie zrzutów klatek za pomocą GUI. Możesz nie mieć pod ręką komputera lub możesz używać BotBall CMUcam1, który nie ma wystarczającej rozdzielczości przy swojej na stałe ustawionej szybkości 9600 baud, aby to działało dobrze.

W takim przypadku istnieją dwie alternatywy. Po pierwsze, możesz spróbować policzyć gwinty. Przy szczytowej ostrości obiektyw nie jest wkręcony do końca. Zamiast tego widoczna jest około 1-milimetrowa szczelina gwintu. Pod względem liczby gwintów jest to około 2 gwinty widoczne w szczelinie między obiektywem a mocowaniem obiektywu.

Druga alternatywa opiera się na założeniu, że gdy obraz jest ostry, ciemne obszary są najciemniejsze, a jasne najjaśniejsze. Innymi słowy, gdy kontrast jest największy. Gdy obraz staje się nieostry, ekstrema zanikają, przechodząc w bardziej jednorodny rozkład intensywności. Więc jeśli uruchomisz tryb strumieniowy, a następnie wywołasz GM (Get Mean), możesz ustawiać ostrość w czasie rzeczywistym. Spójrz na odchylenie czerwieni. Gdy ostro skupisz się na obiekcie o wysokim kontraście (takim jak kartka papieru z dużą ilością napisanego tekstu) w pożądanej odległości, przy najostrzejszym ustawieniu ostrości wystąpi zauważalny szczyt odchylenia czerwieni. Zwróć uwagę, że to podejście do ustawiania ostrości wymaga dość mocnego unieruchomienia kamery i celu podczas obracania obiektywu.