Pertanyaan yang Sering Diajukan#

Apa perbedaan antara CMUcam1 dan CMUcam2?#

Pendahuluan#

CMUcam2 mencakup semua fungsionalitas CMUcam1 dalam bentuk yang ditingkatkan dan jauh lebih banyak lagi. Di bawah ini kami menjelaskan secara singkat fungsionalitas baru dan perbedaannya. Anda mungkin juga ingin melihat jawaban atas pertanyaan tentang bagaimana memutuskan apakah akan membeli CMUcam1 atau CMUcam2.

Ikhtisar Perangkat Keras#

Ada dua perbedaan perangkat keras utama yang penting, CMUcam2 menggunakan prosesor yang berbeda dari CMUcam1 dan CMUcam2 menggabungkan chip frame buffer sementara CMUcam1 tidak.

CMUcam2 menggunakan prosesor SX52 dan CMUcam1 menggunakan prosesor SX28, keduanya berasal dari seri prosesor SX dari Ubicom. Dalam kedua kasus, prosesor berjalan pada 75 MHz sehingga tidak ada perbedaan dalam kecepatan prosesor atau daya komputasi. Keunggulan prosesor SX52 adalah ia memiliki RAM lebih banyak (262 vs. 136 byte), ROM lebih banyak (4096 vs. 2048 word), dan pin I/O lebih banyak. Lebih banyak RAM dan ROM berarti kami dapat menulis kode yang lebih kompleks yang memungkinkan kami memasukkan lebih banyak fungsionalitas ke dalam CMUcam2. Jumlah pin I/O yang lebih banyak berarti kami memiliki lebih banyak pin tersisa untuk fungsi lain -- seperti lebih banyak servo, lebih banyak jumper konfigurasi, dll.

Perbedaan besar antara kedua sistem adalah bahwa CMUcam2 menyertakan chip frame buffer AL422B dari AverLogic sementara CMUcam1 tidak. Ini memungkinkan perangkat keras CMUcam2 untuk dengan cepat menangkap satu frame lengkap dan menyimpannya di memori frame buffer. Ini memiliki sejumlah keuntungan:

  • Pemrosesan yang Lebih Kompleks. Pada CMUcam1, prosesor harus memproses aliran data piksel secara langsung saat dikeluarkan oleh modul kamera. Desain ini membantu mengurangi kompleksitas dan biaya perangkat keras sistem. Namun, hal itu membatasi kompleksitas pemrosesan karena harus dilakukan secara real time di antara piksel atau di antara baris gambar. Karena prosesor pada CMUcam2 mengakses data piksel dari buffer frame dengan kecepatannya sendiri, ia dapat melakukan pemrosesan yang lebih kompleks per piksel.

  • Pemrosesan Lebih Cepat. Sisi lain dari tidak harus tetap tersinkronisasi dengan aliran piksel modul kamera adalah bahwa prosesor tidak harus menunggu modul kamera ketika membutuhkan data piksel. Menghilangkan waktu tunggu ini berarti bahwa prosesor CMUcam2 sebenarnya dapat memproses frame lebih cepat daripada CMUcam1 meskipun prosesornya tidak lebih kuat.

  • Beberapa Operasi Per Frame. Karena gambar yang disimpan dalam buffer frame tidak berubah, CMUcam2 dapat melakukan beberapa operasi pada satu frame. Jadi misalnya, gerakan dapat dideteksi, statistik region dapat dihitung, dan beberapa warna dapat dilacak semuanya pada satu frame.

  • Frame Dump yang Lebih Baik. Karena CMUcam1 harus menyinkronkan data frame dump yang ditransmisikan dengan aliran data modul kamera, ia hanya dapat mengirim satu kolom data per frame kamera. Ini berarti bagian-bagian gambar yang berbeda diambil pada waktu yang berbeda, sehingga objek yang bergerak cepat akan tampak kabur di seluruh frame dump CMUcam1. Karena CMUcam2 mentransmisikan gambar dari data tetap dalam buffer frame, ini bukan lagi masalah.

  • Penanganan Baud Rate Rendah yang Lebih Baik. Memiliki buffer frame juga berarti bahwa pengaturan waktu data yang ditransmisikan oleh CMUcam2 dapat sepenuhnya dipisahkan dari pengaturan waktu data yang dibaca dari modul kamera. Ini berarti data CMUcam2 dari frame dump dan mode baris bitmap tidak berubah ketika baud rate komunikasi berubah; CMUcam2 akan mengomunikasikan data frame atau bitmap yang sama ke prosesor host tidak peduli baud rate-nya. Namun jumlah frame yang diproses per detik mungkin masih berubah dengan baud rate yang lebih lambat karena pada akhirnya masih perlu menyelesaikan pengiriman semua data dari satu frame sebelum frame berikutnya dapat diproses.

  • Operasi Modul Kamera yang Lebih Baik. Agar prosesor dalam CMUcam1 dapat tetap tersinkronisasi dengan aliran data dari modul kamera, laju frame modul kamera harus diperlambat menjadi 17 fps. Buffer frame yang digunakan CMUcam2 memungkinkan kami mengoperasikan modul kamera pada kecepatan frame penuh. Salah satu keuntungannya adalah bahwa penyesuaian eksposur otomatis dan white balance kamera dapat beroperasi lebih cepat karena hanya dapat melakukan satu penyesuaian per frame dan sekarang ada lebih banyak frame per detik. Keuntungan kedua adalah bahwa keluaran video analog hitam putih (yang hanya bekerja ketika modul beroperasi pada laju frame penuh) dapat digunakan sementara CMUcam2 memproses data gambar, yang tidak mungkin dilakukan dengan CMUcam1.

Ikhtisar Fungsionalitas#

CMUcam2 mengimplementasikan semua fungsionalitas CMUcam1 dan juga menambahkan banyak fungsionalitas baru. Berikut adalah ringkasannya.

  • Pelacakan Warna. CMUcam2 mengimplementasikan pelacakan warna sama seperti CMUcam1. Seperti pada CMUcam1, mode baris bitmap opsional diimplementasikan yang mentransmisikan bitmap dari piksel yang dilacak. Ada juga beberapa peningkatan. Ada mode baris opsional baru yang menyediakan statistik piksel yang dilacak untuk setiap baris, termasuk posisi rata-rata, minimum, dan maksimum dari piksel yang dilacak. Ini sangat berguna untuk mengikuti garis. Ada juga mode opsional baru di mana interpretasi batas pelacakan dapat dibalik. Dalam mode ini piksel di luar batas pelacakan dianggap "baik". Ini berguna untuk melacak objek terhadap latar belakang yang homogen -- pikirkan efek khusus layar biru. Ini juga berguna untuk mendeteksi tepi ketika pixel differencing (dijelaskan di bawah) diaktifkan. Opsi penyaringan noise juga telah ditingkatkan untuk memungkinkan penyesuaian jumlah penyaringan untuk situasi yang berisik.

  • Statistik Gambar. CMUcam2 mengimplementasikan komputasi statistik rata-rata dan variasi dari region gambar sama seperti CMUcam1. Seperti pada CMUcam1, mode baris opsional diimplementasikan yang mentransmisikan rata-rata setiap baris gambar. Ada juga mode baris yang ditingkatkan baru yang secara opsional menyertakan informasi variasi per baris.

  • Deteksi Gerakan. Sepenuhnya baru di CMUcam2 adalah perintah deteksi gerakan (frame differencing). Perintah-perintah ini dapat digunakan untuk menginstruksikan CMUcam2 menangkap versi resolusi rendah dari gambar saat ini dan terus membandingkannya dengan gambar baru yang masuk. Paket dari CMUcam2 melaporkan jika ada bagian gambar yang berubah lebih dari jumlah tertentu, yang berpotensi menunjukkan gerakan. Paket-paket ini dapat menggambarkan centroid dan luas blok gambar yang berubah atau menyediakan bitmap dari blok gambar mana yang telah berubah. Mode ini juga dapat dikombinasikan dengan pixel differencing (dijelaskan di bawah) untuk membuat deteksi gerakan lebih tahan terhadap perubahan pencahayaan.

  • Histogram. Sepenuhnya baru di CMUcam2 adalah perintah komputasi histogram. Perintah-perintah ini dapat digunakan untuk menangkap histogram satu dimensi dari satu saluran warna pada resolusi hingga 28 bin. Histogram menyediakan informasi berguna yang merangkum tampilan sebuah gambar. Dengan pemrograman tambahan pada prosesor host, informasi ini dapat digunakan untuk membantu mendeteksi rintangan, objek tertentu, atau lokasi.

  • Windowing Gambar. CMUcam2 mengimplementasikan kemampuan untuk membatasi pemrosesan ke region kecil (subwindow) dari gambar penuh sama seperti CMUcam1. Pada CMUcam2 fungsi ini bahkan lebih berguna karena dapat digunakan untuk memeriksa dengan cermat sub-window dari satu gambar yang disimpan dalam buffer frame. Selain itu, mengurangi ukuran window vertikal dapat digunakan untuk sangat meningkatkan frame yang diproses per detik dengan sangat mengurangi jumlah piksel yang perlu diproses oleh CMUcam2.

  • Kustomisasi Paket Keluaran. CMUcam2 mengimplementasikan kustomisasi paket yang jauh lebih fleksibel daripada CMUcam1. Ada perintah yang memungkinkan pengguna menyesuaikan setiap paket yang dihasilkan oleh setiap perintah untuk hanya mengembalikan nilai yang dibutuhkan untuk aplikasi tertentu. Ini dapat sangat mengurangi jumlah data yang ditransmisikan ke dan diproses oleh prosesor host dalam banyak situasi.

  • Pixel Differencing. Sepenuhnya baru di CMUcam2 adalah mode pixel differencing opsional. Dalam mode pixel differencing, piksel diproses terlebih dahulu sebelum diteruskan ke bagian lain dari kode CMUcam2. Langkah pra-pemrosesan ini mengirimkan nilai piksel baru ke bagian lain dari kode yang merupakan selisih antara nilai piksel saat ini dan sebelumnya. Pada dasarnya apa yang dilakukan ini adalah menyaring segala sesuatu kecuali tepi vertikal dalam gambar. Ini adalah operasi yang sangat kuat dan dengan pemrograman tambahan pada prosesor host, dapat digunakan untuk membantu deteksi rintangan dan mengikuti garis.

  • Down Sampling. Sepenuhnya baru di CMUcam2 adalah mode down sampling opsional. Dalam mode down sampling, perangkat lunak CMUcam2 mengurangi resolusi gambar kamera sebelum memprosesnya. Keuntungannya adalah ada jauh lebih sedikit piksel untuk diproses dan ditransmisikan. Karena dilakukan dalam perangkat lunak, down sampling hanya menghasilkan peningkatan kecepatan pemrosesan yang sangat kecil. Manfaat besarnya adalah dalam mengurangi jumlah data yang ditransmisikan. Dalam kasus frame gambar yang di-dump, down sampling dapat dengan mudah mengurangi ukuran data dan karenanya mengurangi waktu transmisi sebesar faktor 2 atau 4 atau lebih. Demikian pula ketika mode baris bitmap digunakan, ukuran gambar bitmap dapat sangat dikurangi, mengurangi jumlah data yang harus diterima dan diproses oleh prosesor host.

  • Kontrol Servo. CMUcam1 asli hanya mendukung satu servo dan servo itu hanya akan beroperasi dengan benar pada baud rate tertentu dan ketika CMUcam1 dalam mode streaming. CMUcam2 mendukung hingga lima servo. Kode pengontrol servo di CMUcam2 diimplementasikan sebagai proses latar belakang sehingga keluaran servo selalu tetap stabil dan dapat digunakan seperti pengontrol servo lainnya. Selain itu, CMUcam2 dapat dikonfigurasi untuk secara otomatis mengontrol servo pan dan tilt. Dalam mode ini CMUcam2 akan memperbarui posisi servo setiap kali diperintahkan untuk menghitung data pelacakan warna.

  • Penghematan Daya. Sepenuhnya baru di CMUcam2 adalah mode penghematan daya. Dalam beberapa aplikasi CMUcam2 tidak diperlukan untuk terus memproses data gambar. Dalam kasus ini CMUcam2 dapat diperintahkan untuk masuk ke berbagai mode power down (atau tidur). Tidak ada perintah pelacakan atau kontrol servo yang akan terjadi ketika CMUcam2 berada dalam salah satu mode ini. Mengirim perintah serial sederhana membangunkan kamera kembali dalam beberapa milidetik.

Apa perbedaan antara menggunakan modul OV6620 dan OV7620 dengan CMUcam2?#

Pendahuluan#

Dalam hal kemampuan, sensor OV7620 adalah sensor resolusi lebih tinggi (664x492 lokasi sensor mentah) daripada sensor OV6620 (356x292 lokasi sensor mentah). Tetapi fakta ini sangat sedikit hubungannya dengan masalah yang muncul ketika mempertimbangkan sensor mana yang paling cocok dengan aplikasi CMUcam2 Anda. Berikut adalah daftar pertimbangan.

Resolusi#

Meskipun benar bahwa sensor OV7620 adalah sensor resolusi yang lebih tinggi daripada OV6620, karena ukuran memori tetap dari frame buffer CMUcam2, CMUcam2 hanya mendukung resolusi tunggal 160x239 untuk sensor OV7620. CMUcam2 mendukung mode resolusi rendah 88x143 dan mode resolusi tinggi 176x255 untuk sensor OV6620. Jadi dengan menggunakan OV6620 dalam mode resolusi tinggi seseorang sebenarnya dapat mencapai operasi resolusi yang lebih tinggi daripada mode resolusi tunggal yang tersedia untuk sensor OV7620.

Laju Frame#

Masalah lain yang terkait resolusi adalah laju frame maksimum ketika terus-menerus memproses aliran gambar. Semakin rendah resolusinya, semakin sedikit piksel yang perlu diproses dan semakin tinggi laju frame yang dapat dicapai. Meskipun peningkatan laju frame dapat dicapai dengan mengubah laju down sampling dan ukuran window virtual, jumlah piksel sebenarnya yang dikeluarkan oleh sensor memiliki efek yang jauh lebih besar. Karena itu, CMUcam2 dapat mencapai laju frame yang jauh lebih tinggi ketika OV6620 dioperasikan dalam mode resolusi rendahnya dibandingkan mode resolusi tunggal yang tersedia untuk OV7620.

Keluaran Video Analog#

Perbedaan lain antara kedua sensor adalah format keluaran video analog dari kedua sensor. Sensor OV6620 mengeluarkan dalam format PAL analog dan sensor OV7620 mengeluarkan dalam format NTSC analog. Dalam kedua kasus, keluarannya hitam putih.

Penting untuk dicatat bahwa dalam sebagian besar penggunaan CMUcam2 keluaran analog tidak akan digunakan. Dalam aplikasi tipikal, hasil pemrosesan gambar atau piksel mentah ditransmisikan secara digital melalui port serial ke komputer host atau mikrokontroler sehingga ini bukan masalah. Namun, jika video hitam putih langsung penting, maka Anda mungkin ingin mempertimbangkan format keluaran video analog.

Ringkasan#

Rekomendasi kami adalah bahwa modul OV6620 merupakan pilihan terbaik untuk hampir semua aplikasi, terutama mengingat biayanya yang lebih rendah dan waktu pemrosesan lebih cepat yang dapat dicapai dengan modul ini. Dalam aplikasi langka di mana keluaran video analog monokrom NTSC diperlukan, Anda mungkin ingin mempertimbangkan OV7620.

Apakah ada masalah yang diketahui dengan rilis firmware CMUcam2 saat ini?#

Ya. Dalam rilis 1.00 perintah "RM" (Raw Mode) tidak bekerja dengan benar. Rilis 1.01 memperbaiki masalah itu.

Firmware di CMUcam2 dapat ditingkatkan, tetapi pemrogram SX-Key (atau yang kompatibel) diperlukan untuk melakukannya. File "hex" untuk image ROM tersedia di halaman Unduhan.