Često postavljana pitanja#
Koje su razlike između CMUcam1 i CMUcam2?#
Uvod#
CMUcam2 uključuje svu funkcionalnost CMUcam1 u poboljšanom obliku i mnogo više. U nastavku ukratko opisujemo novu funkcionalnost i razlike. Možda ćete također htjeti pogledati odgovor na pitanje kako odlučiti hoćete li kupiti CMUcam1 ili CMUcam2.
Pregled hardvera#
Postoje dvije glavne hardverske razlike koje su važne, CMUcam2 koristi drugačiji procesor od CMUcam1, a CMUcam2 uključuje čip međuspremnika okvira dok ga CMUcam1 nema.
CMUcam2 koristi SX52 procesor, a CMUcam1 koristi SX28 procesor, oba su iz serije SX procesora tvrtke Ubicom. U oba slučaja procesor radi na 75 MHz pa nema razlike u brzini procesora ili računalnoj snazi. Prednosti SX52 procesora su da ima više RAM-a (262 naspram 136 bajtova), više ROM-a (4096 naspram 2048 riječi) i više I/O pinova. Više RAM-a i ROM-a značilo je da smo mogli napisati složeniji kod što nam je omogućilo da u CMUcam2 ugradimo više funkcionalnosti. Veći broj I/O pinova značio je da nam je ostalo više pinova za druge funkcije – poput više servo motora, više konfiguracijskih jumpera itd.
Velika razlika između dva sustava je ta što CMUcam2 uključuje AL422B čip međuspremnika okvira tvrtke AverLogic, dok ga CMUcam1 nema. Ovo omogućuje hardveru CMUcam2 da brzo uhvati jedan potpuni okvir i pohrani ga u memoriju međuspremnika okvira. Ovo ima brojne prednosti:
Složenija obrada. U CMUcam1 procesor je morao obrađivati tok podataka o pikselima u hodu, kako ga izbacuje kamera-modul. Ovaj je dizajn pomogao smanjiti složenost i cijenu hardvera sustava. Međutim, ograničio je složenost obrade jer se ona morala izvoditi u stvarnom vremenu između piksela ili između redova slike. Budući da procesor na CMUcam2 pristupa podacima o pikselima iz međuspremnika sličica vlastitim tempom, može izvoditi složeniju obradu po pikselu.
Brža obrada. Naličje toga što ne mora ostati sinkroniziran s tokom piksela kamera-modula jest da procesor ne mora čekati kamera-modul kada mu trebaju podaci o pikselima. Uklanjanje ovog vremena čekanja znači da procesor CMUcam2 zapravo može obraditi sličicu brže nego CMUcam1, iako procesor nije nimalo snažniji.
Više operacija po sličici. Budući da se slika pohranjena u međuspremniku sličica ne mijenja, CMUcam2 može izvesti više operacija na jednoj sličici. Tako bi se, na primjer, mogao otkriti pokret, izračunati statistika područja i pratiti više boja, sve na jednoj sličici.
Bolji ispisi sličica (frame dumps). Budući da je CMUcam1 morao sinkronizirati prenesene podatke ispisa sličice s tokom podataka kamera-modula, mogao je slati samo jedan stupac podataka po sličici kamere. To je značilo da su različiti dijelovi slike bili snimljeni u različito vrijeme, pa bi se objekti koji se brzo kreću razmazali po ispisima sličica CMUcam1. Budući da CMUcam2 prenosi sliku iz fiksnih podataka u međuspremniku sličica, to više nije problem.
Bolje rukovanje nižim brzinama prijenosa. Posjedovanje međuspremnika sličica također znači da se vrijeme podataka koje prenosi CMUcam2 može potpuno odvojiti od vremena podataka očitanih iz kamera-modula. To znači da se podaci CMUcam2 iz ispisa sličica i bitmap linijskih načina ne mijenjaju kada se promijeni brzina prijenosa komunikacije; CMUcam2 će prenijeti iste podatke sličice ili bitmapa glavnom procesoru bez obzira na brzinu prijenosa. Međutim, broj obrađenih sličica u sekundi i dalje se može promijeniti s nižim brzinama prijenosa jer i dalje mora na kraju dovršiti slanje svih podataka iz jedne sličice prije nego što se sljedeće mogu obraditi.
Bolji rad kamera-modula. Kako bi procesor u CMUcam1 mogao ostati sinkroniziran s tokom podataka iz kamera-modula, brzina sličica kamera-modula morala je biti usporena na 17 fps. Međuspremnik sličica koji koristi CMUcam2 omogućuje nam rad kamera-modula punom brzinom sličica. Jedna prednost toga je da automatska prilagodba ekspozicije i balansa bijele boje kamere može raditi brže jer po sličici može napraviti samo jednu prilagodbu, a sada ima više sličica u sekundi. Druga prednost je da se crno-bijeli analogni video izlaz (koji radi samo kada modul radi punom brzinom sličica) može koristiti dok CMUcam2 obrađuje slikovne podatke, što nije bio slučaj s CMUcam1.
Pregled funkcionalnosti#
CMUcam2 implementira svu funkcionalnost CMUcam1 i također dodaje mnogo nove funkcionalnosti. Slijedi sažetak.
Praćenje boje. CMUcam2 implementira praćenje boje baš kao što je to činio CMUcam1. Kao i u CMUcam1, implementiran je opcionalni bitmap linijski način koji prenosi bitmap praćenih piksela. Postoje i neka poboljšanja. Postoji novi opcionalni linijski način koji pruža statistiku praćenih piksela za svaki red, uključujući srednji, minimalni i maksimalni položaj praćenih piksela. Ovo je vrlo korisno za praćenje linije. Postoji i novi opcionalni način u kojem se tumačenje granica praćenja može invertirati. U ovom se načinu pikseli izvan granica praćenja smatraju „dobrima”. Ovo je korisno za praćenje objekta na homogenoj pozadini – pomislite na specijalne efekte s plavim ekranom. Također je korisno za otkrivanje rubova kada je omogućeno diferenciranje piksela (opisano u nastavku). Opcija filtriranja šuma također je poboljšana kako bi se omogućila prilagodba količine filtriranja u bučnim situacijama.
Statistika slike. CMUcam2 implementira izračun srednje vrijednosti i statistike varijacije područja slike baš kao što je to činio CMUcam1. Kao i u CMUcam1, implementiran je opcionalni linijski način koji prenosi srednju vrijednost svake linije slike. Postoji i novi poboljšani linijski način koji opcionalno uključuje informacije o varijaciji red po red.
Otkrivanje pokreta. Potpuno nove u CMUcam2 su naredbe za otkrivanje pokreta (diferenciranje sličica). Ove se naredbe mogu koristiti za upućivanje CMUcam2 da snimi verziju trenutne slike niske razlučivosti i kontinuirano je uspoređuje s novim dolazećim slikama. Paketi iz CMUcam2 javljaju mijenja li se bilo koji dio slike više od navedene količine, što bi potencijalno moglo ukazivati na pokret. Ovi paketi mogu opisati centroid i opseg promijenjenih blokova slike ili pružiti bitmap toga koji su se blokovi slike promijenili. Ovaj se način također može kombinirati s diferenciranjem piksela (opisano u nastavku) kako bi otkrivanje pokreta bilo otpornije na promjene osvjetljenja.
Histogramiranje. Potpuno nove u CMUcam2 su naredbe za izračun histograma. Ove se naredbe mogu koristiti za snimanje jednodimenzionalnog histograma jednog kanala boje pri razlučivosti do 28 razreda (bins). Histogrami pružaju korisne informacije koje sažimaju izgled slike. Uz dodatno programiranje na glavnom procesoru, ove se informacije mogu koristiti za pomoć u otkrivanju prepreka, specifičnih objekata ili lokacija.
Prozoriranje slike (Image Windowing). CMUcam2 implementira mogućnost ograničavanja obrade na malo područje (podprozor) cijele slike baš kao što je to činio CMUcam1. U CMUcam2 ova je funkcija još korisnija jer se može koristiti za pomno ispitivanje podprozora jedne slike pohranjene u međuspremniku sličica. Također, smanjenje vertikalne veličine prozora može se koristiti za znatno povećanje broja obrađenih sličica u sekundi znatnim smanjenjem broja piksela koje CMUcam2 treba obraditi.
Prilagodba izlaznih paketa. CMUcam2 implementira mnogo fleksibilniju prilagodbu paketa od CMUcam1. Postoje naredbe koje korisniku omogućuju prilagodbu svakog paketa generiranog svakom naredbom tako da vraća samo vrijednosti potrebne za određenu primjenu. Ovo može znatno smanjiti količinu podataka prenesenih glavnom procesoru i njime obrađenih u mnogim situacijama.
Diferenciranje piksela. Potpuno nov u CMUcam2 je opcionalni način diferenciranja piksela. U načinu diferenciranja piksela pikseli se prethodno obrađuju prije nego što se proslijede ostatku koda CMUcam2. Ovaj korak predobrade šalje nove vrijednosti piksela ostatku koda, koje su razlika između trenutne vrijednosti piksela i prethodne. U osnovi, to filtrira sve osim vertikalnih rubova na slici. Ovo je vrlo moćna operacija i, uz dodatno programiranje na glavnom procesoru, može se koristiti za pomoć u otkrivanju prepreka i praćenju linije.
Smanjivanje uzorkovanja (Down Sampling). Potpuno nov u CMUcam2 je opcionalni način smanjivanja uzorkovanja. U načinu smanjivanja uzorkovanja softver CMUcam2 smanjuje razlučivost slike kamere prije njezine obrade. Prednost je toga da postoji mnogo manje piksela za obradu i prijenos. Budući da se to radi u softveru, smanjivanje uzorkovanja rezultira samo vrlo malim povećanjem brzine obrade. Velika korist je u smanjenju količine prenesenih podataka. U slučaju ispisane sličice slike smanjivanje uzorkovanja može lako smanjiti veličinu podataka i time smanjiti vrijeme prijenosa za faktor 2 ili 4 ili više. Slično tome, kada se koriste bitmap linijski načini, veličina bitmap slike može se znatno smanjiti, smanjujući količinu podataka koje glavni procesor mora primiti i obraditi.
Upravljanje servo motorima. Izvorni CMUcam1 podržavao je samo jedan servo motor i taj bi servo ispravno radio samo pri određenim brzinama prijenosa i kada je CMUcam1 bio u streaming načinu rada. CMUcam2 podržava do pet servo motora. Kod kontrolera servo motora u CMUcam2 implementiran je kao pozadinski proces, pa izlazi servo motora uvijek ostaju stabilni i može se koristiti kao i svaki drugi kontroler servo motora. Dodatno, CMUcam2 se može konfigurirati za automatsko upravljanje pan i tilt servo motorima. U ovom će načinu CMUcam2 ažurirati položaje servo motora svaki put kada dobije naredbu za izračun podataka praćenja boje.
Ušteda energije. Potpuno novi u CMUcam2 su načini uštede energije. U nekim primjenama CMUcam2 nije potreban za kontinuiranu obradu slikovnih podataka. U tim se slučajevima CMUcam2 može naredbom staviti u razne načine isključivanja (ili mirovanja). Nijedna naredba praćenja ili upravljanja servo motorom neće se dogoditi dok je CMUcam2 u jednom od tih načina. Slanje jednostavne serijske naredbe budi kameru natrag za nekoliko milisekundi.
Koja je razlika između korištenja modula OV6620 i OV7620 s CMUcam2?#
Uvod#
Što se tiče mogućnosti, senzor OV7620 je senzor veće razlučivosti (664x492 sirovih senzorskih lokacija) od senzora OV6620 (356x292 sirovih senzorskih lokacija). No ta činjenica ima vrlo malo veze s pitanjima koja se javljaju pri razmatranju koji od ovih senzora najbolje odgovara vašoj primjeni CMUcam2. Slijedi popis razmatranja.
Razlučivost#
Iako je istina da je senzor OV7620 senzor veće razlučivosti od OV6620, zbog fiksne veličine memorije međuspremnika okvira CMUcam2, CMUcam2 podržava samo jednu razlučivost od 160x239 za senzor OV7620. CMUcam2 podržava način niske razlučivosti od 88x143 i način visoke razlučivosti od 176x255 za senzor OV6620. Dakle, koristeći OV6620 u načinu visoke razlučivosti zapravo se može postići rad veće razlučivosti od jedinog načina razlučivosti dostupnog za senzor OV7620.
Brzina sličica#
Još jedno pitanje vezano uz razlučivost je maksimalna brzina sličica pri kontinuiranoj obradi toka slika. Što je razlučivost niža, to je manje piksela koje treba obraditi i veća je ostvariva brzina sličica. Iako se povećanje brzine sličica može postići promjenom stope smanjivanja uzorkovanja i veličine virtualnog prozora, stvarni broj piksela koje daje senzor ima mnogo veći učinak. Zbog toga CMUcam2 može postići mnogo veću brzinu sličica kada OV6620 radi u svom načinu niske razlučivosti nego u načinu jedne razlučivosti dostupnom za OV7620.
Analogni video izlaz#
Još jedna razlika između dva senzora je format analognog video izlaza dvaju senzora. Senzor OV6620 daje izlaz u analognom PAL formatu, a senzor OV7620 daje izlaz u analognom NTSC formatu. U oba slučaja izlaz je crno-bijeli.
Važno je napomenuti da se u većini primjena CMUcam2 analogni izlaz neće koristiti. U tipičnoj se aplikaciji rezultati obrade slike ili sirovi pikseli prenose digitalno preko serijskog priključka do glavnog računala ili mikrokontrolera, tako da to nije problem. Međutim, ako je bitan crno-bijeli video uživo, možda ćete htjeti uzeti u obzir format analognog video izlaza.
Sažetak#
Naša preporuka je da je modul OV6620 najbolji izbor za gotovo sve primjene, osobito uzimajući u obzir njegovu nižu cijenu i brže vrijeme obrade koje se može postići s ovim modulom. U rijetkim primjenama gdje je potreban NTSC monokromni analogni video izlaz, možda biste željeli razmotriti OV7620.
Postoje li ikakvi poznati problemi s trenutnim izdanjima firmvera CMUcam2?#
Da. U izdanju 1.00 naredba „RM” (Raw Mode) nije radila ispravno. Izdanje 1.01 ispravlja taj problem.
Firmware u CMUcam2 se može nadograditi, ali za to je potreban SX-Key (ili kompatibilan) programator. „hex” datoteke za ROM slike dostupne su na stranici Preuzimanja.