Sıkça Sorulan Sorular#
CMUcam1 ile CMUcam2 arasındaki farklar nelerdir?#
Giriş#
CMUcam2, CMUcam1’in tüm işlevselliğini geliştirilmiş bir biçimde ve çok daha fazlasını içerir. Aşağıda yeni işlevselliği ve farkları kısaca açıklıyoruz. Bir CMUcam1 mi yoksa CMUcam2 mi satın alacağınıza karar verme sorusunun yanıtına da bakmak isteyebilirsiniz.
Donanıma Genel Bakış#
Önemli iki ana donanım farkı vardır: CMUcam2, CMUcam1’den farklı bir işlemci kullanır ve CMUcam2 bir kare arabelleği çipini içerirken CMUcam1 içermez.
CMUcam2, SX52 işlemcisini kullanır ve CMUcam1, SX28 işlemcisini kullanır; her ikisi de Ubicom firmasının SX işlemci serisindendir. Her iki durumda da işlemci 75 MHz’de çalışır, bu nedenle işlemci hızında veya hesaplama gücünde bir fark yoktur. SX52 işlemcisinin avantajları, daha fazla RAM’e (262’ye karşı 136 bayt), daha fazla ROM’a (4096’ya karşı 2048 kelime) ve daha fazla G/Ç pinine sahip olmasıdır. Daha fazla RAM ve ROM, CMUcam2’de daha fazla işlevsellik dahil etmemize olanak tanıyan daha karmaşık kod yazabileceğimiz anlamına geliyordu. Daha fazla sayıda G/Ç pini, diğer işlevler için elimizde daha fazla pin kaldığı anlamına geliyordu – daha fazla servo, daha fazla yapılandırma jumper’ı vb. gibi.
İki sistem arasındaki büyük fark, CMUcam2’nin AverLogic firmasının AL422B kare arabelleği çipini içermesi, CMUcam1’in ise içermemesidir. Bu, CMUcam2 donanımının tek bir tam kareyi hızlıca yakalamasına ve onu kare arabelleği belleğinde depolamasına olanak tanır. Bunun birçok avantajı vardır:
Daha Karmaşık İşleme. CMUcam1’de işlemci, kamera modülü tarafından çıktı verilirken piksel veri akışını anında işlemek zorundaydı. Bu tasarım, sistem donanımının karmaşıklığını ve maliyetini azaltmaya yardımcı oldu. Ancak, işlemenin pikseller arasında veya görüntü satırları arasında gerçek zamanlı olarak yapılması gerektiğinden işlemenin karmaşıklığını sınırladı. CMUcam2’deki işlemci, kare arabelleğinden piksel verilerine kendi hızında eriştiği için piksel başına daha karmaşık işlemler gerçekleştirebilir.
Daha Hızlı İşleme. Kamera modülü piksel akışıyla senkronize kalmak zorunda olmamanın diğer yüzü, işlemcinin piksel verisine ihtiyaç duyduğunda kamera modülünü beklemek zorunda olmamasıdır. Bu bekleme süresinin ortadan kaldırılması, işlemci daha güçlü olmasa bile CMUcam2 işlemcisinin bir kareyi aslında CMUcam1’den daha hızlı işleyebileceği anlamına gelir.
Kare Başına Birden Fazla İşlem. Kare arabelleğinde depolanan görüntü değişmediği için, CMUcam2 tek bir kare üzerinde birden fazla işlem gerçekleştirebilir. Örneğin, tek bir kare üzerinde hareket algılanabilir, bölge istatistikleri hesaplanabilir ve birden fazla renk takip edilebilir.
Daha İyi Kare Dökümleri. CMUcam1, iletilen kare dökümü verilerini kamera modülü veri akışıyla senkronize etmek zorunda olduğundan, kamera karesi başına yalnızca bir sütun veri gönderebiliyordu. Bu, görüntünün farklı bölümlerinin farklı zamanlarda yakalandığı anlamına geliyordu, bu nedenle hızlı hareket eden nesneler CMUcam1 kare dökümlerinde bulanıklaşıyordu. CMUcam2 görüntüyü kare arabelleğindeki sabit verilerden ilettiği için bu artık bir sorun değildir.
Düşük Baud Hızlarının Daha İyi Yönetimi. Bir kare arabelleğine sahip olmak, CMUcam2 tarafından iletilen verilerin zamanlamasının, kamera modülünden okunan verilerin zamanlamasından tamamen ayrılabileceği anlamına da gelir. Bu, kare dökümlerinden ve bit eşlem satır modlarından gelen CMUcam2 verilerinin, iletişim baud hızı değiştiğinde değişmeyeceği anlamına gelir; CMUcam2, baud hızı ne olursa olsun aynı kare veya bit eşlem verilerini ana işlemciye iletecektir. Ancak, saniyede işlenen kare sayısı daha düşük baud hızlarında yine de değişebilir; çünkü sonraki kareler işlenmeden önce bir kareye ait tüm verilerin gönderilmesinin tamamlanması gerekir.
Daha İyi Kamera Modülü Çalışması. CMUcam1’deki işlemcinin kamera modülünden gelen veri akışıyla senkronize kalabilmesi için, kamera modülünün kare hızı 17 fps’ye düşürülmek zorundaydı. CMUcam2’nin kullandığı kare arabelleği, kamera modülünü tam kare hızında çalıştırmamıza olanak tanır. Bunun bir avantajı, kameranın otomatik pozlama ve beyaz dengesi ayarının daha hızlı çalışabilmesidir; çünkü kare başına yalnızca tek bir ayarlama yapabilir ve artık saniyede daha fazla kare vardır. İkinci avantaj ise, siyah beyaz analog video çıkışının (yalnızca modül tam kare hızında çalışırken çalışır) CMUcam2 görüntü verilerini işlerken kullanılabilmesidir; bu, CMUcam1’de mümkün değildi.
İşlevsellik Genel Bakışı#
CMUcam2, CMUcam1’in tüm işlevselliğini uygular ve ayrıca birçok yeni işlevsellik ekler. Aşağıda bir özet verilmiştir.
Renk Takibi. CMUcam2, tıpkı CMUcam1 gibi renk takibini gerçekleştirir. CMUcam1’de olduğu gibi, takip edilen piksellerin bit eşlemini ileten isteğe bağlı bir bit eşlem satır modu uygulanmıştır. Ayrıca bazı iyileştirmeler de vardır. Her satır için takip edilen piksellerin istatistiklerini (takip edilen piksellerin ortalama, minimum ve maksimum konumları dahil) sağlayan yeni isteğe bağlı bir satır modu vardır. Bu, çizgi takibi için çok kullanışlıdır. Ayrıca takip sınırlarının yorumunun tersine çevrilebildiği yeni bir isteğe bağlı mod da vardır. Bu modda, takip sınırlarının dışındaki pikseller “iyi” olarak kabul edilir. Bu, bir nesneyi homojen bir arka plana karşı takip etmek için kullanışlıdır – mavi ekran özel efektlerini düşünün. Ayrıca piksel farkı alma (aşağıda açıklanmıştır) etkinleştirildiğinde kenarları algılamak için de kullanışlıdır. Gürültü filtreleme seçeneği de, gürültülü durumlarda filtreleme miktarının ayarlanmasına olanak tanıyacak şekilde geliştirilmiştir.
Görüntü İstatistikleri. CMUcam2, tıpkı CMUcam1 gibi görüntü bölgelerinin ortalama ve varyasyon istatistiklerinin hesaplanmasını gerçekleştirir. CMUcam1’de olduğu gibi, görüntünün her satırının ortalamasını ileten isteğe bağlı bir satır modu uygulanmıştır. Ayrıca, satır satır isteğe bağlı olarak varyasyon bilgisi içeren yeni bir gelişmiş satır modu da vardır.
Hareket Algılama. CMUcam2’de tamamen yeni olan hareket algılama (kare farkı alma) komutlarıdır. Bu komutlar, CMUam2’ye mevcut görüntünün düşük çözünürlüklü bir sürümünü yakalaması ve bunu sürekli olarak gelen yeni görüntülerle karşılaştırması talimatını vermek için kullanılabilir. CMUcam2’den gelen paketler, görüntünün herhangi bir bölümünün belirli bir miktardan fazla değişip değişmediğini bildirir; bu potansiyel olarak hareketi gösterir. Bu paketler, değişen görüntü bloklarının ağırlık merkezini ve boyutunu tanımlayabilir veya hangi görüntü bloklarının değiştiğini gösteren bir bit eşlem sağlayabilir. Bu mod, hareket algılamayı aydınlatma değişikliklerine karşı daha dayanıklı hale getirmek için piksel farkı alma (aşağıda açıklanmıştır) ile de birleştirilebilir.
Histogramlama. CMUcam2’de tamamen yeni olan histogram hesaplama komutlarıdır. Bu komutlar, tek bir renk kanalının en fazla 28 bölme (bin) çözünürlüğünde tek boyutlu histogramını yakalamak için kullanılabilir. Histogramlar, bir görüntünün görünümünü özetleyen kullanışlı bilgiler sağlar. Ana işlemcide ek programlama ile bu bilgiler, engellerin, belirli nesnelerin veya konumların algılanmasına yardımcı olmak için kullanılabilir.
Görüntü Pencereleme. CMUcam2, tıpkı CMUcam1 gibi işlemeyi tam görüntünün küçük bir bölgesiyle (alt pencere) sınırlama yeteneğini gerçekleştirir. CMUcam2’de bu işlev daha da kullanışlıdır; çünkü kare arabelleğinde depolanan tek bir görüntünün alt pencerelerini yakından incelemek için kullanılabilir. Ayrıca, dikey pencere boyutunu küçültmek, CMUcam2 tarafından işlenmesi gereken piksel sayısını büyük ölçüde azaltarak saniyede işlenen kare sayısını büyük ölçüde artırmak için kullanılabilir.
Çıkış Paketi Özelleştirme. CMUcam2, CMUcam1’den çok daha esnek paket özelleştirmesi gerçekleştirir. Kullanıcının, her komut tarafından oluşturulan her paketi yalnızca belirli bir uygulama için gereken değerleri döndürecek şekilde özelleştirmesine olanak tanıyan komutlar vardır. Bu, birçok durumda ana işlemciye iletilen ve onun tarafından işlenen veri miktarını büyük ölçüde azaltabilir.
Piksel Farkı Alma. CMUcam2’de tamamen yeni olan isteğe bağlı bir piksel farkı alma modudur. Piksel farkı alma modunda pikseller, CMUcam2 kodunun geri kalanına aktarılmadan önce ön işlemden geçirilir. Bu ön işleme adımı, kodun geri kalanına mevcut piksel değeri ile bir öncekinin farkı olan yeni piksel değerlerini gönderir. Temelde bunun yaptığı şey, görüntüdeki dikey kenarlar dışındaki her şeyi filtrelemektir. Bu çok güçlü bir işlemdir ve ana işlemcide ek programlama ile engel algılama ve çizgi takibine yardımcı olmak için kullanılabilir.
Alt Örnekleme. CMUcam2’de tamamen yeni olan isteğe bağlı bir alt örnekleme modudur. Alt örnekleme modunda CMUcam2 yazılımı, kamera görüntüsünü işlemeden önce çözünürlüğünü düşürür. Bunun avantajı, işlenecek ve iletilecek çok daha az piksel olmasıdır. Yazılımda yapıldığı için alt örnekleme, işleme hızında yalnızca çok küçük bir artışa neden olur. Asıl fayda, iletilen veri miktarının azaltılmasındadır. Dökülen bir görüntü karesi durumunda, alt örnekleme veri boyutunu kolayca azaltabilir ve dolayısıyla iletim süresini 2 veya 4 kat ya da daha fazla azaltabilir. Benzer şekilde, bit eşlem satır modları kullanıldığında bit eşlem görüntüsünün boyutu büyük ölçüde azaltılabilir, böylece ana işlemcinin alması ve işlemesi gereken veri miktarı azalır.
Servo Kontrolü. Orijinal CMUcam1 yalnızca tek bir servoyu destekliyordu ve bu servo yalnızca belirli baud hızlarında ve CMUcam1 akış modundayken düzgün çalışıyordu. CMUcam2 beş adede kadar servoyu destekler. CMUcam2’deki servo denetleyici kodu bir arka plan işlemi olarak uygulanmıştır, böylece servo çıkışları her zaman kararlı kalır ve başka herhangi bir servo denetleyici gibi kullanılabilir. Ayrıca, CMUcam2 pan ve tilt servolarını otomatik olarak kontrol edecek şekilde yapılandırılabilir. Bu modda CMUcam2, renk takibi verilerini hesaplaması için her komutlandığında servo konumlarını günceller.
Güç Tasarrufu. CMUcam2’de tamamen yeni olan güç tasarrufu modlarıdır. Bazı uygulamalarda CMUcam2’nin görüntü verilerini sürekli işlemesi gerekmez. Bu durumlarda CMUcam2, çeşitli güç kapatma (veya uyku) modlarına girmesi için komutlanabilir. CMUcam2 bu modlardan birindeyken hiçbir takip komutu veya servo kontrolü gerçekleşmez. Basit bir seri komut göndermek kamerayı birkaç milisaniye içinde tekrar uyandırır.
CMUcam2 ile OV6620 ve OV7620 modülünü kullanma arasındaki fark nedir?#
Giriş#
Yetenekler açısından, OV7620 sensörü OV6620 sensörüne (356x292 ham sensör konumu) göre daha yüksek çözünürlüklü bir sensördür (664x492 ham sensör konumu). Ancak bu gerçek, bu sensörlerden hangisinin CMUcam2 uygulamanıza en iyi uyduğunu değerlendirirken ortaya çıkan sorunlarla çok az ilgilidir. Aşağıda dikkate alınacak hususların bir listesi bulunmaktadır.
Çözünürlük#
OV7620 sensörünün OV6620’den daha yüksek çözünürlüklü bir sensör olduğu doğru olsa da, CMUcam2’nin kare arabelleğinin sabit bellek boyutu nedeniyle, CMUcam2 OV7620 sensörü için yalnızca tek bir 160x239 çözünürlüğünü destekler. CMUcam2, OV6620 sensörü için 88x143’lük düşük çözünürlüklü bir modu ve 176x255’lik yüksek çözünürlüklü bir modu destekler. Bu nedenle OV6620’yi yüksek çözünürlüklü modda kullanarak, aslında OV7620 sensörü için mevcut olan tek çözünürlük modundan daha yüksek çözünürlüklü bir çalışma elde edilebilir.
Kare Hızı#
Çözünürlükle ilgili bir diğer konu, bir görüntü akışını sürekli işlerken elde edilen maksimum kare hızıdır. Çözünürlük ne kadar düşükse, işlenmesi gereken piksel sayısı o kadar az olur ve ulaşılabilir kare hızı o kadar yüksek olur. Alt örnekleme oranını ve sanal pencere boyutunu değiştirerek kare hızında bir artış sağlanabilse de, sensör tarafından çıkışı verilen gerçek piksel sayısının çok daha büyük bir etkisi vardır. Bu nedenle CMUcam2, OV6620 düşük çözünürlük modunda çalıştırıldığında, OV7620 için mevcut olan tek çözünürlük modundan çok daha yüksek bir kare hızına ulaşabilir.
Analog Video Çıkışı#
İki sensör arasındaki bir diğer fark, iki sensörün analog video çıkışının formatıdır. OV6620 sensörü analog PAL formatında, OV7620 sensörü ise analog NTSC formatında çıkış verir. Her iki durumda da çıkış siyah beyazdır.
CMUcam2’nin çoğu kullanımında analog çıkışın kullanılmayacağını belirtmek önemlidir. Tipik bir uygulamada, görüntünün veya ham piksellerin işlenmesinin sonuçları seri port aracılığıyla ana bilgisayara veya mikrodenetleyiciye dijital olarak iletilir, bu nedenle bu bir sorun değildir. Ancak, canlı siyah beyaz video önemliyse, analog video çıkışının biçimini hesaba katmak isteyebilirsiniz.
Özet#
Önerimiz, özellikle daha düşük maliyeti ve bu modülle elde edilebilen daha hızlı işleme süresi göz önüne alındığında, OV6620 modülünün neredeyse tüm uygulamalar için en iyi seçim olduğudur. NTSC tek renkli analog video çıkışının gerekli olduğu nadir uygulamalarda OV7620’yi düşünmek isteyebilirsiniz.
Mevcut CMUcam2 donanım yazılımı sürümlerinde bilinen sorunlar var mı?#
Evet. 1.00 sürümünde “RM” (Raw Mode) komutu doğru çalışmıyordu. 1.01 sürümü bu sorunu düzeltir.
CMUcam2’deki donanım yazılımı yükseltilebilir, ancak bunu yapmak için bir SX-Key (veya uyumlu) programlayıcı gerekir. ROM görüntüleri için “hex” dosyaları İndirmeler sayfasında mevcuttur.