Sunday 16 July 2017

Pindah Rata Rata Scilab


Receiver GPS buatan sendiri Digambarkan di atas adalah mixer front-end, mixer pertama dan IF dari receiver GPS eksperimental. SMA paling kiri terhubung ke antena komersial dengan filter LNA dan SAW integral. Osilator lokal pertama yang disintesis menggerakkan SMA bagian bawah. Pin header ke kanan adalah input power dan output IF. Yang terakhir terhubung ke FPGA Xilinx yang tidak hanya melakukan DSP, tapi juga menampung synthesizer frekuensi pecahan-N. Lebih lanjut tentang ini nanti. Saya termotivasi untuk merancang receiver ini setelah membaca karya Matjax017E Vidmar, S53MV, yang mengembangkan receiver GPS dari nol, menggunakan komponen yang sangat terpisah, lebih dari 20 tahun yang lalu. Penggunaan DSP-nya mengikuti IF yang membatasi dan ADC 1-bit yang menarik perhatian saya. Penerima yang dijelaskan di sini bekerja berdasarkan prinsip yang sama. ADC 1-bitnya adalah IC 6-pin di dekat pin header, sebuah komparator LVDS-output. Tersembunyi di bawah kebisingan namun tidak dilenyapkan dalam bi-level quantised bubur yang muncul adalah sinyal dari setiap satelit yang di lihat. Semua satelit GPS mentransmisikan pada frekuensi yang sama, 1575,42 MHz, menggunakan direct sequence spread spectrum (DSSS). Pembawa L1 tersebar di atas bandwidth 2 MHz dan kekuatannya di permukaan Bumi adalah -130 dBm. Kekuatan thermal noise pada bandwidth yang sama adalah -111 dBm, jadi sinyal GPS pada antena penerima adalah 20 dB di bawah lantai kebisingan. Bahwa salah satu sinyal yang ada, dilapiskan satu pada yang lain dan dikubur dalam kebisingan, dapat dipulihkan setelah kuantisasi tingkat dua nampak kontra intuitif, saya menulis sebuah simulasi untuk meyakinkan diri saya sendiri. GPS bergantung pada sifat korelasi urutan pseudo-random yang disebut Gold Codes untuk memisahkan sinyal dari noise dan satu sama lain. Setiap satelit mentransmisikan urutan yang unik. Semua sinyal yang tidak berkorelasi adalah kebisingan, termasuk kesalahan kuantisasi satelit dan hard-limiter lainnya. Mencampur dengan kode yang sama pada fase yang benar de-menyebarkan sinyal yang diinginkan dan selanjutnya menyebarkan hal-hal lain. Sempit-band penyaringan kemudian menghapus suara pita lebar tanpa mempengaruhi (sekali lagi mempersempit) sinyal yang diinginkan. Hard-limiting (1-bit ADC) mendegradasi SNR kurang dari 3 dB, sebuah harga layak bayar untuk menghindari hardware AGC. Update Mei 2013 Sekarang ini receiver GPS 12-channel yang benar-benar portabel, bertenaga baterai, dengan perangkat lunak turnkey, yang mengakuisisi dan melacak satelit, dan terus menghitung ulang posisinya, tanpa campur tangan pengguna. Sistem lengkap (di bawah, kiri) terdiri dari: layar LCD 16x2, komputer model Raspberry Pi A, dua papan sirkuit cetak kustom, antena patch komersial dan baterai Li-Ion. Total konsumsi sistem saat ini adalah 0.4A untuk masa pakai baterai 5 jam. Raspberry Pi didukung melalui kabel pita yang menghubungkan header GPIO-nya ke papan FPGA Frac7 dan tidak memerlukan koneksi lain. Saat ini, Pi menjalankan Raspbian Linux. Sebuah distro yang lebih kecil akan memperpendek waktu untuk memperbaiki terlebih dahulu. Setelah melakukan booting dari SD-Card, perangkat lunak aplikasi GPS akan dimulai secara otomatis. Saat keluar, ini memberi cara untuk benar mematikannya sebelum menyalakan power-off. Pengembangan perangkat lunak Pi dilakukan tanpa kepala melalui SSH dan FTP melalui dongle USB Wi-Fi. Kode sumber dan dokumentasi dapat ditemukan di bagian bawah halaman ini. Kedua PCB custom adalah papan PTH 2 lapis sederhana dengan bidang tanah yang terus menerus di bagian bawah. Pergi searah jarum jam di sekitar Spartan Xilinx 3 pada papan FPGA Frac7: dari 12 oclock sampai 3 oclock adalah filter loop, VCO, power splitter dan prescaler dari synthesizer frekuensi gelombang mikro tepat di bawah adalah joystick dan konektor JTAG dan, pada 6 oclock, a Pin header untuk kabel pita Raspberry Pi. Jauh ke kiri adalah konektor LCD. Di dekat kiri adalah osilator kristal terkontrol voltase dengan kompensasi suhu (TCVCXO) yang menyediakan frekuensi referensi yang stabil, penting untuk penerimaan GPS. TCVCXO bagus namun tidak sesuai dengan standar GPS saat mengoperasikan un-boxed di lokasi berangin. Hembusan di atasnya menggantikan osilator kristal 10.000000 MHz sekitar 1 bagian dalam 10 juta atau 1 Hz, yang diperbesar 150 kali oleh PLL synthesizer. Ini cukup untuk sementara membuka loop pelacak satelit, jika dilakukan tiba-tiba. Perangkat juga sedikit sensitif terhadap infra merah mis. Dari lampu halogen dan remote TV Ketika pertama kali diposting pada tahun 2011, ini adalah penerima empat saluran, yang berarti hanya bisa melacak empat satelit secara bersamaan. Setidaknya ada empat yang dibutuhkan untuk memecahkan bias posisi pengguna dan penerima namun akurasi yang lebih besar dimungkinkan dengan lebih banyak. Dalam versi aslinya, empat contoh modul tracker yang identik memenuhi FPGA. Tapi sebagian besar jepit hanya diberi clock sekali per milidetik. Sekarang, CPU soft-core kustom di dalam FPGA serializes pengolahan dan hanya 50 dari kain FPGA yang dibutuhkan untuk penerima 8 saluran atau 67 untuk 12 saluran. Jumlah saluran adalah parameter dalam sumber dan bisa naik lebih tinggi. Keakuratan posisi paling baik bila antena bisa melihat 360deg langit dan menerima sinyal dari segala arah. Umumnya, semakin banyak satelit yang di lihat, semakin baik. Dua atau lebih satelit pada bantalan yang sama dapat menyebabkan apa yang disebut geometri buruk. Perbaikan terbaik sejauh ini adalah plusmn1 meter di lokasi yang sangat terbuka dengan menggunakan 12 satelit namun ketepatannya biasanya berukuran plusmn5 meter di lokasi yang lebih miskin dengan satelit yang lebih sedikit. September 2014 Update Kode sumber untuk proyek ini telah dirilis ulang di bawah GNU General Public License (GPL). Pengolahan Arsitektur dibagi antara FPGA dan Pi oleh kompleksitas dan urgensi. Pi menangani latihan intensif matematika dengan kecepatannya sendiri. FPGA mensintesis osilator lokal pertama, layanan acara dengan prioritas tinggi secara real-time dan melacak satelit secara mandiri. Pi mengendalikan FPGA melalui antarmuka SPI. Mudah, SPI yang sama digunakan untuk memuat konfigurasi FPGA bitstream dan kode biner yang dapat dieksekusi untuk CPU yang disematkan. FPGA juga dapat dikendalikan melalui kabel JTAG Platform Xilinx USB dari PC Windows dan mendeteksi secara otomatis antarmuka mana yang sedang digunakan. Frekuensi L1 diubah turun menjadi 1 JIKA 22,6 MHz dengan mencampur dengan osilator lokal 1552,82 MHz pada papan depan GPS3. Semua pemrosesan sinyal IF dan baseband berikutnya dilakukan secara digital di FPGA. Dua pengendali proporsional-integral (PI) per satelit, pembawa jalur dan fase kode. Data NAV yang dikirimkan oleh satelit dikumpulkan dalam memori FPGA. Ini diupload ke Pi, yang memeriksa paritas dan mengekstrak ephemerides dari aliran bit. Bila semua parameter orbital yang dibutuhkan dikumpulkan, sebuah snapshot diambil dari counter FPGA internal tertentu, dari mana waktu transmisi dihitung menjadi presisi 15n plusmn. Sebagian besar synthesizer 1552.82 MHz diimplementasikan di FPGA. Orang mungkin mengharapkan masalah jitter, co-hosting detektor fasa dengan logika lain, tapi berhasil. Synthesizer output spektral-kemurnian sangat baik, meskipun inti FPGA toggling pergi dengan marah dan tidak semua pada harmonis-frekuensi terkait. Pendekatan ini diambil karena sebuah dewan yang mirip dengan Frac7 sudah ada dari proyek synthesizer sebelumnya. Menambahkan front-end adalah rute terpendek ke receiver prototipe. Tapi versi pertama tidak portabel: itu memiliki persyaratan daya yang tidak nyaman dan tidak ada standar frekuensi on-board. Pengolahan sinyal sampai dan termasuk hard-limiter: Komparator LMH7220 memiliki tegangan offset masukan maksimal 9.5mV. Kebisingan termal yang diperkuat harus dengan nyaman melebihi ini agar tetap aktif. Sinyal GPS yang lemah hanya mempengaruhi komparator di dekat penyeberangan nol. Mereka diambil sampel oleh kebisingan. Untuk memperkirakan tingkat kebisingan pada input komparator, kita menumpuk keuntungan, kerugian penyisipan dan angka kebisingan: Suara in-band pada output mixer adalah -1740.828-1.5-3.920- 610log10 (2,5e6) -73 dBm atau 52microV RMS. Alat pencampur dilepas secara resistif dalam 50-ohm dan tahap selanjutnya bekerja pada impedansi yang lebih tinggi. Strip IF diskrit memiliki gain tegangan keseluruhan 1000 sehingga tingkat masukan komparator adalah RMS 52mV. LMH7220 menambahkan 59 dB gain yang menghasilkan total 119 dB untuk keseluruhan IF. Menyebarkan begitu banyak keuntungan pada satu frekuensi adalah sebuah risiko. Untuk meminimalkannya, sirkuit seimbang di atas bidang tanah padat digunakan dan disaring twisted-pair membawa keluaran ke FPGA. Motivasi itu sederhana, menghindari pertobatan kedua. Dalam prakteknya, sirkuitnya stabil, sehingga berjudi terbayar. Active decoupler Q1 memasok 5V untuk remote LNA. Penguat MMIC U2 memberikan gain 20 dB (tidak pada IF) dan memastikan angka noise sistem secara keseluruhan rendah, bahkan jika kabel antena panjang digunakan. L1 dan L2 adalah choke dengan luka tangan dengan frekuensi resonansi diri yang sangat tinggi, dipasang tegak lurus satu sama lain dan bersih dari bidang tanah. Angin 14 berbelok, berventilasi air, berdiameter 1 mm dari panjang kawat tembaga kawat tembaga sepanjang 7cm. Diperiksa dengan generator pelacakan pada SA Marconi 2383, ini bagus untuk 4 GHz. DBM Mini-Circuits MBA-15L dipilih karena kehilangan konversi 6 dB yang rendah pada 1,5 GHz dan kebutuhan hard drive 4 dBm rendah. R9 mengakhiri port IF. Tiga tahap penguat IF diferensial sepenuhnya mengikuti mixer. Sirkuit paralel Q-rendah yang digantung di antara kolektor mengatur bandwidth -3 dB sekitar 2,5 MHz dan mencegah pembentukan offset DC. L4, L5 dan L6 disaring kumparan Toko 7mm. BFS17 dipilih untuk tinggi (tapi tidak terlalu tinggi) 1 GHz f T. Saya adalah 2mA untuk noise terendah dan betar wajar. The 22.6 MHz 1st JIKA digital down-dikonversi menjadi 2,6 MHz oleh under-sampling pada 10 MHz di FPGA. 2,6 MHz terletak dekat dengan pusat bandwidth Nyquist 5 MHz. Cara terbaik adalah menghindari pusat yang tepat, untuk alasan yang akan dijelaskan nanti. Beberapa frekuensi IF pertama lainnya dimungkinkan: 27,5 MHz, yang menghasilkan inversi spektrum pada IF 2, juga telah berhasil dicoba. Ada trade-off antara masalah gambar pada gain BFS17 yang lebih rendah dan yang tersedia pada frekuensi yang lebih tinggi. Deteksi sinyal memerlukan pemecahan tiga hal yang tidak diketahui: satelit apa yang ada dalam pandangan, pergeseran dan fase kode Doppler mereka. Pencarian sekuensial dari ruang tiga dimensi ini dari awal yang dingin disebut bisa memakan waktu beberapa menit. Awal yang hangat menggunakan data almanak untuk memprediksi posisi dan kecepatan masih memerlukan pencarian kode. Semua 1023 tahap kode harus diuji untuk mengetahui puncak korelasi maksimum. Menghitung 1023 korelasi integral dalam domain waktu sangat mahal dan berlebihan. Penerima GPS ini menggunakan algoritma berbasis FFT yang menguji semua fase kode secara paralel. Dari dingin, dibutuhkan 2,5 detik pada Pentium 1,7 GHz untuk mengukur kekuatan sinyal, pergeseran Doppler dan fase kode setiap satelit yang terlihat. Raspberry Pi agak lambat. Dengan over-bar yang menunjukkan konjugasi, fungsi korelasi silang y (Tau) dari sinyal kompleks s (t) dan kode c (t) digeser oleh offset Tau adalah: Teorema Korelasi menyatakan bahwa transformasi Fourier dari integral korelasi sama dengan Produk konjugat kompleks dari transformasi Fourier dari fungsi pertama dan transformasi Fourier dari fungsi kedua: FFT (y) CONJUGATE (FFT (s)) FFT (c) Korelasi dilakukan pada baseband. Kode CA 1.023 Mbps adalah 1023 chip atau 1ms. Panjang FFT ke depan harus kelipatannya. Sampling pada 10 MHz untuk 4 ms menghasilkan ukuran bin FFT 250 Hz. 41 Pergeseran doppler harus diuji dengan memutar data domain frekuensi, satu bin pada satu waktu, sampai plusmn20 bins plusmn5 KHz. Rotasi bisa diaplikasikan ke salah satu fungsi. The 22.6 MHz 1st IF dari ADC 1 bit kurang sampel dengan clock 10 MHz di FPGA, secara digital mengubahnya menjadi 2 IF 2.6 MHz. Dalam perangkat lunak, JIKA ke-2 diubah menjadi baseband kompleks (IQ) dengan menggunakan osilator lokal kuadratur. Untuk sinyal tingkat dua, mixer adalah gerbang XOR sederhana. Meskipun tidak ditunjukkan di atas, sampel sementara buffer dalam memori FPGA. Pi tidak dapat menerima mereka pada 10 Mbps. 1,023 Mbps dan 2,6 MHz dihasilkan oleh akumulator fase terkontrol-osilator (NCO). Frekuensi ini cukup besar dibandingkan dengan laju sampling, dan bukan sub harmonik yang tepat darinya. Akibatnya, NCO memiliki taji fraksional. Jumlah sampel per kode chip dithers antara 9 dan 10. Untungnya, receiver DSSS toleran terhadap interferer band sempit, eksternal atau self-generated. Baseband kompleks ditransformasikan ke domain frekuensi oleh FFT ke depan yang hanya perlu dihitung satu kali. Sebuah FFT dari setiap kode CA satelit telah dihitung sebelumnya. Waktu pemrosesan didominasi oleh loop paling dalam yang melakukan pergeseran, konjugasi, perkalian kompleks dan satu invers-FFT per uji satelit-Doppler. GPU Raspberry Pis Videocore bisa dimanfaatkan untuk mempercepatnya. Pada tingkat sampling 10 MHz, fase kode dipecahkan sampai 100ns terdekat. Output CCF khas diilustrasikan di bawah ini: Menghitung daya puncak ke rata-rata di atas data ini memberikan perkiraan SNR yang baik dan digunakan untuk menemukan sinyal terkuat. Berikut ini diterima pada pukul 20:14 GMT pada tanggal 4 Maret 2011 di Cambridge, Inggris dengan antena di tepi luar yang menghadap ke utara: Dari garis lintang utara, lebih banyak satelit GPS umumnya dapat ditemukan di langit selatan yaitu menuju khatulistiwa. Mengambil sampel yang lebih lama meningkatkan SNR, menunjukkan sinyal yang lebih lemah namun pembatalan terjadi saat penangkapan mencakup transisi data NAV. FFT Forward Forward adalah jumlah integral milidetik, FFT terbalik bisa dipersingkat, cukup dengan membuang data di tempat sampah frekuensi yang lebih tinggi. SNR dipertahankan namun fase kode tidak begitu terpecahkan. Namun demikian, perkiraan posisi puncak yang baik diperoleh dengan rata-rata tertimbang dua tempat sampah terdekat dan uji di luar pesawat menunjukkan ini bisa bekerja bahkan sampai ke panjang FFT terbalik. Setelah mendeteksi sinyal, langkah selanjutnya adalah penguncian, pelacakan dan demodulasi data NAV 50 bps. Ini memerlukan dua loop terkunci fase inter-dependent (PLLs) untuk melacak fase kode dan carrier. PLL ini harus beroperasi secara real-time dan diimplementasikan sebagai fungsi DSP di FPGA. Perangkat lunak Pi memiliki peran pengawasan: menentukan satelit mana yang akan dilacak, memantau status kunci dan memproses data NAV yang diterima. Pelacakan loop bagus untuk menjaga kunci, karena bandwidthnya sangat sempit, karakteristik yang sama membuat mereka kurang beruntung dalam memperoleh kunci tanpa bantuan. Mereka tidak dapat melihat melampaui bandwidth loop untuk menangkap apa pun lebih jauh. Fase awal dan frekuensi harus diatur ke fase kode yang diukur dan pergeseran Doppler dari satelit target. Ini diatur dalam kontrol Pi. Loop harus di-lock sejak awal dan tetap begitu. Fase kode diukur relatif terhadap sampel FFT. Kode NCO di FPGA direset pada awal pengambilan sampel dan terakumulasi pada fixed 1.023 MHz. Hal ini kemudian selaras dengan kode yang diterima dengan sebentar menghentikan akumulator fase. Pergeseran doppler pada carrier 1575.42 MHz plusmn5 KHz atau plusmn3 ppm. Ini juga mempengaruhi tingkat kode 1,023 Mbps oleh chip plusmn3 per detik. Panjang jeda disesuaikan untuk creep kode dalam waktu sejak sampel diambil. Untungnya, kode Doppler sebanding dengan carrier Doppler yang kami punya perkiraan bagus. Pembagian perangkat lunak perangkat keras Pada diagram di bawah ini, pengkodean warna menunjukkan bagaimana penerapan DSP pelacakan sekarang terbagi antara perangkat keras dan perangkat lunak. Sebelumnya, semua ini dilakukan di perangkat keras, dengan contoh paralel identik diulang untuk setiap saluran, membuat penggunaan sumber daya FPGA tidak efisien. Kini, pemrosesan 1 KHz yang lebih lambat dilakukan oleh perangkat lunak, dan dua kali lebih banyak kanal dapat diakomodasi dalam setengah real estat FPGA. Keenam akumulator gabungan dan akumulasi (Sigma) dilekatkan ke dalam register geser pada zaman kode. Tanda permintaan layanan memberi sinyal pada CPU, yang membaca bit data secara serial. Dengan 8 saluran aktif, 8 waktu CPU dihabiskan untuk mengeksekusi instruksi oprdBit Tetapi ada banyak waktu, dan serial IO menggunakan kain FPGA secara ekonomis. Kemewahan seperti pencatatan RSSI dan IQ (misalnya untuk plot tersebar) sekarang dapat diberikan. Fungsi transfer loop F (z) menelan 2 dari bandwidth CPU per channel aktif. Ini adalah pengendali proporsional-integral (PI) standar: presisi 64-bit digunakan dan mendapatkan koefisien KI dan KP, walaupun dibatasi pada kekuatan 2, dapat disesuaikan secara dinamis. Setiap saluran harus menunggu gilirannya, update rate NCO dapat tertunda oleh puluhan atau ratusan mikrodetik setelah zaman kode tapi ini menunjukkan pergeseran fasa yang tidak berarti pada frekuensi dimana fasa ditentukan. Jejak tipis 1-bit, notionally mewakili plusmn1. Operator 2,6 MHz pertama kali disebarkan oleh pencampuran dengan kode awal, terlambat dan tepat waktu. Produk baseband I dan Q yang kompleks dari peringkat kedua dari mixer gerbang XOR dijumlahkan lebih dari 10.000 sampel atau 1ms. Penyaringan low-pass ini secara dramatis mengurangi bandwidth noise dan dengan demikian meningkatkan SNR. Downsampling ke 1 KHz memerlukan jalur data lebih jauh ke depan di domain perangkat lunak. Fase kode dilacak menggunakan loop delay-locked konvensional atau gerbang awal-akhir. Daya pada saluran awal dan akhir dihitung dengan menggunakan P I 2 Q 2 yang tidak sensitif terhadap fase. Kode awal dan akhir adalah satu chip terpisah, yaitu chip frac12 di depan dan di belakang tepat waktu. Diagram ini membantu untuk mendapatkan pengertian kesalahan yang benar: A Costas Loop digunakan untuk pelacakan carrier dan pemulihan data NAV di saluran tepat waktu. Data NAV, m, diambil dari tanda tangan I-arm dengan ketidakpastian fase 180deg. K diterima amplitudo sinyal dan theta adalah perbedaan fasa antara pembawa yang diterima (modulasi sans) dan NCO lokal. K bervariasi dari sekitar 400 untuk sinyal terpulihkan yang dapat dipulihkan hingga lebih dari 2000 untuk yang terkuat. Perhatikan bagaimana istilah kesalahan yang diberikan kembali ke pengontrol pabrik F (z) di Costas Loop sebanding dengan kekuatan sinyal yang diterima ksup2. Melacak kemiringan, dan karena itu gain loop, juga berbeda dengan kekuatan sinyal dalam loop kode. Berikut adalah plot Bode gain loop terbuka untuk Costas Loop di k500: Bandwidth Costas Loop sekitar 20 Hz, yang hampir optimal untuk pelacakan carrier. Bandwidth loop kode adalah 1 Hz. Kebisingan dalam bandwidth seperti itu kecil dan loop bisa melacak sinyal yang sangat lemah. KI di atas dan kP bekerja untuk sebagian besar sinyal, namun perlu menjatuhkan satu takik yang paling kuat. Scilab memprediksi, dan scatter plot mengkonfirmasi, onset ketidakstabilan pada kge1500. Kesalahan paritas tidak terjadi kecuali sampel menyimpang ke bagian berlawanan dari bidang IQ. (I) Ketidakstabilan pada kge1500 Berikut adalah 2 frame berturut-turut dari 5 subframes masing-masing. Subframes berukuran 300-bit dan membutuhkan waktu 6 detik untuk mentransmisikan. Kolom 1 adalah pembukaan 10001011. Ini muncul di awal setiap subframe namun dapat terjadi di manapun dalam data. Penghitung 17-bit di kolom 5 adalah time-of-week (TOW) dan disetel ulang menjadi nol pada tengah malam hari Minggu. Penghitung 3-bit pada kolom 7 adalah subframe ID 1 sampai 5. Subframes 4 dan 5 masing-masing dibagi ke dalam 25 halaman dan pesan data lengkap yang terdiri dari 25 frame penuh membutuhkan 12,5 menit untuk mentransmisikan. Saya hanya menggunakan data di subframes 1, 2 dan 3 saat ini. Memecahkan posisi pengguna Setiap satelit GPS mentransmisikan posisinya dan waktunya. Mengurangkan waktu yang dikirim dari waktu yang diterima dan mengalikan dengan kecepatan cahaya adalah bagaimana receiver mengukur jarak antara dirinya dan satelit. Melakukan hal itu dengan tiga satelit akan menghasilkan tiga persamaan simultan dalam tiga hal yang tidak diketahui (posisi pengguna: x, y, z) jika waktu yang tepat tersedia. Dalam prakteknya, jam penerima tidak cukup akurat, waktu yang tepat adalah yang keempat diketahui, empat satelit karenanya dibutuhkan dan empat persamaan simultan harus dipecahkan: Metode iteratif digunakan karena persamaannya tidak linier. Dengan menggunakan pusat bumi (0, 0, 0) dan perkiraan waktu sebagai titik awal, algoritma hanya menyatukan lima atau enam iterasi. Solusinya ditemukan meski kesalahan jam pengguna besar. Satelit membawa jam atom tapi ini juga memiliki kesalahan dan koefisien koreksi pada subframe 1 harus diterapkan pada saat transmisi. Penyesuaian tipikal bisa ratusan mikrodetik. Waktu transmisi yang tidak terkoreksi dibentuk dengan menskalakan dan menambahkan beberapa penghitung. Time-of-week (TOW) dalam hitungan detik sejak tengah malam hari Minggu dikirim setiap subframe. Tepi data menandai interval 20ms dalam subframe 300-bit. Kode berulang 20 kali per bit data. Panjang kode 1023 chip dan chip rate adalah 1.023 Mbps. Akhirnya, 6 bit paling penting dari kode fase NCO ditambahkan, memperbaiki waktu transmisi ke plusmn 15ns. Posisi satelit pada waktu transmisi yang dikoreksi dihitung dengan menggunakan ephemeris pada subframes 2 dan 3. Posisi orbit pada waktu referensi toe (waktu ephemeris) disediakan bersamaan dengan parameter yang memungkinkan (x, y, z) posisi dihitung sampai beberapa Jam sebelum atau sesudah Ephemerides diperbarui secara teratur dan satelit hanya mentransmisikannya sendiri. Orbital jangka panjang dari keseluruhan rasi dapat diprediksi kurang akurat dengan menggunakan data Almanac pada subframes 4 dan 5, namun ini tidak penting jika pencarian berbasis FFT cepat digunakan. Solusi dihitung dalam koordinat bumi-terpusat, bumi-tetap (ECEF). Lokasi pengguna diubah menjadi garis lintang, bujur dan ketinggian dengan koreksi eksentrisitas bumi, yang menonjol di khatulistiwa. Diagram scatter di bawah menggambarkan pengulangan, manfaat rata-rata dan pengaruh pilihan satelit yang buruk. Kotak kotak adalah 0.001deg di setiap sisinya. Titik biru menandai 1000 perbaikan. Segitiga kuning menandai pusat gravitasi: (i) lengkungan teras yang menghadap ke utara (ii) Antena atap (iii) Tepian jendela yang menghadap ke timur Cluster ketat (ii) diperoleh dengan menggunakan satelit di empat penjuru langit yang berbeda. Hanya antena atap yang memiliki pandangan jernih di segala penjuru. Tapi perbaikan bagus diperoleh dengan rata-rata, bahkan saat setengah langit dikaburkan. Perbaikan atap juga menunjukkan penyebaran seperti (i) dan (iii) jika satelit yang salah dipilih. Solusi di atas dihasilkan tanpa mengkompensasi penundaan propagasi ionosfer dengan menggunakan parameter pada halaman 18 dari subframe 4 yang harus diterapkan karena ini adalah penerima frekuensi tunggal. Refraksi ionosfer meningkatkan panjang jalur antara pengguna dan satelit. Pada bulan April 2012, saya memperbaiki bug yang menyebabkan kesalahan signifikan pada solusi posisi pengguna. Awalnya, dengan tidak mengubah posisi satelit dari koordinat ground-centered-earth-fixed (ECEF) ke bumi-berpusat-inersia (ECI), saya secara efektif mengabaikan rotasi Bumi selama 60 sampai 80 ms bahwa sinyal sedang dalam penerbangan. Saya sekarang melihat akurasi solusi posisi plusmn 5 meter setelah rata-rata, bahkan dengan jarak pandang satelit yang terbatas. Saya telah membuat sebuah lampiran yang menjelaskan bagaimana solusi iteratif dikembangkan, mulai dari persamaan rentang geometris, yang linearised menggunakan ekspansi Seri Taylor, dan dipecahkan dengan metode matriks, untuk kasus khusus dari empat satelit atau kasus umum lebih banyak, dengan Pilihan untuk menggunakan kuadrat terkecil tertimbang untuk mengendalikan pengaruh satelit tertentu. Anda akan menemukan ini dan solusi kode sumber C di link di bagian bawah halaman. Saya berterima kasih kepada Dan Doberstein karena telah mengirimi saya draf awal buku GPS 2 yang membantu saya memahami algoritma solusinya. Spesifikasi Antarmuka GPS Pemerintah AS yang resmi 3 adalah referensi penting. Monitor Sinyal Pengaturan rangkaian di atas, sebagian besar diimplementasikan pada FPGA, de-spread dengan mengambil produk dari kode IF dan kode 1-bit, sehingga menghasilkan modulasi data sebesar bps bps. Sebuah notch kecil karena penindasan carrier BPSK dapat dilihat: Spektrum ini menunjukkan transmisi de-spread yang sama pada rentang bandwidth dan resolusi yang berbeda (RBW). Pergeseran doppler adalah -1,2 KHz. Lantai kebisingan adalah thermal noise antena yang diperkuat dan disaring oleh strip IF. -3 dB bandwidth terlihat sekitar 3 MHz, sedikit lebih lebar dari yang direncanakan. Pembawa de-spread adalah 5 dB di atas noise pada RBW 30 KHz dan 25 dB di atas 300 Hz RBW. Kekuatan sinyal yang diterima pada antena dapat diperkirakan sebagai -174110log10 (30e3) 5 -123 dBm. Masih mengherankan saya seberapa baik informasi domain frekuensi dipelihara melalui hard-limiting Pemancar LVDS memiliki arus keluaran konstan 1mW dalam 100 ohm. Daya puncak yang terlihat di SA tidak bisa melebihi 0 dBm. Di sini, kita melihat kekuatan yang tersedia ini tersebar di berbagai frekuensi. Kepadatan spektral daya Wideband terpadu harus menjadi osilator lokal pertama Saya telah membangun synthesizer pecahan-N eksperimental menggunakan logika programmable untuk tujuan umum selama beberapa tahun: Xilinx Spartan 3 FPGA Frac7 dibangun untuk tujuan ini tapi saya tidak tahu Frac5 akan digunakan di GPS Penerima ketika saya awalnya dirancang itu. Foto di bawah ini menunjukkan bagaimana keluaran ROS-1455 VCO pada Frac5 secara resistif terbelah antara keluaran SMA dan sebuah preseter Hetit HMC363. Output pembagi 200 MHz disalurkan (berbeda) ke dalam FPGA yang menguncipnya ke referensi induk menggunakan metode yang didokumentasikan dalam proyek saya yang terdahulu. Sirkuit mikro pada Frac7 serupa namun menggunakan pembagi Mini-Circuits 3dB. Stabilitas tinggi dan noise fase rendah tercapai, seperti yang dapat dilihat pada spektrum keluaran VCO yang ditunjukkan di bawah ini. Ketika Frac5 awalnya dikembangkan, sebagai synthesizer frekuensi khusus, Toggling secara simultan pada frekuensi yang tidak berhubungan secara harmonis dihindari untuk meminimalkan dorongan intermodulasi. The FPGA adalah statis ketika jam pulsa yang toggled output detektor fasa melintasi kain. Tidak ada kemewahan seperti itu praktis ketika FPGA hosting penerima GPS Namun, untungnya, output osilator lokal cukup baik: Analisis spektrum Marconi 2383 50 MHz STD OUTPUT digunakan sebagai sumber referensi utama untuk Frac5 dan semua penerima GPS internal jam. Penerima GPS memerlukan akurasi yang lebih baik dari 1 ppm (bagian per juta) untuk mengukur Dmpler plusmn5 KHz bergeser pada operator L1 1575.42 MHz. Setiap ketidakpastian frekuensi akan memerlukan jangkauan pencarian yang lebih luas. CPU Tertanam Penerima GPS asli saya hanya bisa melacak 4 satelit. Kain yang tersedia tidak digunakan secara efisien dan FPGA penuh. Logika identik direplikasi untuk setiap saluran dan hanya diaktifkan pada jam kode 1 KHz. Kecepatan pemutakhiran GPS cukup tidak menuntut dan sebagian besar pemrosesan paralel dapat dilakukan dengan mudah secara berurutan. Menanamkan CPU untuk tugas ini telah meningkatkan jumlah saluran dan ruang yang dibebaskan di FPGA. CPU ini secara langsung mengeksekusi primitif FORTH sebagai instruksi asli. Pengunjung halaman Tandai 1 FORTH Computer saya akan mengetahui ketertarikan saya terhadap bahasa tersebut. FORTH tidak mainstream dan penggunaannya di sini mungkin merupakan penghalang esoterik, saya tidak dapat menahan diri untuk melakukan CPU FORTH lain, kali ini di FPGA, setelah melihat proyek J1 yang sangat bagus, yang merupakan inspirasi. FORTH adalah bahasa berbasis stack, yang pada dasarnya berarti CPU memiliki tumpukan dan bukan register tujuan umum. Wikipedia memiliki gambaran yang bagus. Sumber daya FPGA: 360 irisan 2 BRAM Instruksi eksekusi siklus tunggal FORTH-seperti, arsitektur dual-stack 32-bit stack dan jalur data ALU Operasi presisi ganda 64-bit Pengali perangkat 2k byte (dapat diperluas hingga 4k byte) kode dan data RAM Makro Pengembangan kode assembler Memori dan IO Dua BRAM digunakan: satu untuk memori utama, yang lainnya untuk tumpukan. Xilinx blok RAM dual porting, memungkinkan satu contoh untuk meng-host kedua data dan kembali tumpukan. Setiap stack pointer berkisar lebih dari setengah dari array. Dual port memori utama memungkinkan akses data bersamaan dengan pengambilan instruksi. Satu port memori dialamatkan oleh counter program, yang lain oleh T, bagian atas tumpukan. Menulis ke port yang ditangani PC juga digunakan untuk download kode, penghitung program yang menyediakan alamat incrementing. Kode dan data berbagi memori utama, yang disusun sebagai 1024 (dapat diperluas ke 2048) kata-kata 16-bit. Akses memori bisa 16-, 32- atau 64-bit, kata-blok. Semua instruksi adalah 16-bit. Total kode ditambah ukuran data aplikasi GPS kurang dari 750 kata, meski semua loop tidak dibuka. IO tidak memetakan memori, menempati ruang pilih 36 bit (12 dari 12 dari 12 acara). One-hot encoding digunakan untuk menyederhanakan decoding pilih. Operasi IO adalah serial 1-bit, 16- atau 32-bit paralel. Data serial bergeser 1 bit per siklus clock. Acara digunakan terutama sebagai strobes perangkat keras dan berbeda dari penulisan dengan tidak memunculkan tumpukan. Format instruksi 24 instruksi dari kemungkinan 32 saat ini dialokasikan di ruang opcode h80XX - h9FXX. Ini sebagian besar operan nol operasi stack ALU. Pilihan ret, yang melakukan pengembalian dari subrutin, dijalankan secara paralel, dalam siklus yang sama. Add-immediate adalah satu-satunya instruksi operand. Pilihan carry-in memperpanjang presisi ketebalan (stack, tersirat). HF0000 - hFFFF adalah cadangan Stack dan ALU data path adalah 32-bit namun operasi 16-, 32 dan 64-bit didukung. Nilai 64-bit menempati dua tempat di stack, dengan bit paling signifikan di atas. Tumpukan teratas, T, dan selanjutnya di stack, N, terdaftar di luar BRAM untuk efisiensi. Terlepas dari pergeseran kiri 64 bit (opshl64) yang terprogram untuk eksekusi satu siklus, semua fungsi presisi ganda lainnya adalah perangkat lunak subrutin. Bahasa assembly Biner yang disematkan GPS dibuat menggunakan MicrosoftS Macro Assembler MASM. Ini hanya mendukung x86 mnemonik tapi opcodes dinyatakan menggunakan equ dan kode dirakit menggunakan perintah dw. MASM tidak hanya menyediakan resolusi label, perluasan makro dan evaluasi ekspresi, namun struktur data pun Operator MASM dup () digunakan secara ekstensif untuk membuka gulungan lo mis. Dw N dup (opcall dest) memanggil subrutin N kali. Fragmen ini memberi beberapa rasa gaya sumber. Stack-effect dikomentari pada setiap baris: opfetch16 dan opstore16 adalah primitif. Opstore32 dan opstore64 adalah subrutin atau petunjuk majemuk yang bisa digunakan seolah-olah mereka primitif. T sebenarnya 15: 0,31: 16 setelah opswap16. Tapi kami tidak peduli dengan 16 bit teratas di sini. Opstore16 meninggalkan alamat stack depth hanya bisa mengubah plusmn1 per cycle. Puritan mungkin lebih suka: dw N addi Host serial interfaces FPGA dapat dikontrol melalui SPI oleh Raspberry Pi, atau oleh PC Windows menggunakan kabel Xilinx Platform USB JTAG. Ada dua tingkat prioritas permintaan: Kirimkan perintah dan jajak pendapat baru untuk menanggapi gambar kode Baru sebelumnya yang akan disalin ke memori utama melalui BRAM ketiga yang menjembatani jam CPU dan serial clock. Dengan demikian download, gambar biner dijalankan secara otomatis. Perintah host ditangkap di bridge BRAM dan CPU diisyaratkan untuk melakukan tindakan tersebut. Tanggapannya dikumpulkan oleh host dari jembatan pada pemindaian berikutnya. Jajak pendapat utama tingkat atas untuk permintaan layanan host. Kata pertama dari setiap pesan host adalah kode perintah. Permintaan dikirim melalui tabel lompat Perintah: vector bergerak optor ke tumpukan kembali. Beberapa permintaan host (misalnya CmdGetSamples) menghasilkan respons yang panjang. Port data pada sisi CPU jembatan adalah 16-bit. CPU dapat membaca dan menulis ini melalui tumpukan data, namun ada jalur yang lebih langsung untuk mengunggah memori utama dan sampel GPS IF. Instruksi opwrEvt GETMEMORY mentransfer kata memori langsung ke jembatan, dengan menggunakan T sebagai pointer incrementing otomatis. GETMEMORY adalah satu-satunya peristiwa yang memiliki efek stack. Instruksi opwrEvt GETSAMPLES mentransfer 16 bit dari sampler IF: Mengulang gulungan pada waktu perakitan dengan dup () memperdagangkan ukuran kode untuk kinerja, menghindari penurunan-uji-cabang dan keseluruhan aplikasi masih kecil, loop panjang harus disarangkan. , as illustrated above. CHANNEL data structure An array of structures holds state variables and buffered NAV data for the channels. MASM has excellent support for data structures. Field offsets are automatically defined as constants and the sizeof operator is useful. The epoch service routine (labelled Method: ) is called with a pointer to a CHANNEL structure on the stack. Affecting OO-airs, stack-effect comments refer to it as this throughout the routine. A copy is conveniently kept on the return stack for accessing structure members like so: The Chans array is regularly uploaded to the host. Raspberry Pi application software The Raspberry Pi software is multi-tasked using what are variously known as coroutines, continuations, user-mode or light-weight threads. These co-operatively yield control, in round-robin fashion, using the C library setjmplongjmp non-local goto, avoiding the cost of a kernel context-switch: Up to 16 threads can be active:Advanced Source Code. Com 31.10.2015 Kode sumber matlab untuk pengenalan biometrik telah diperbarui. Mengurangi biaya. Semua perangkat lunak dilengkapi dengan diskon besar, banyak kode ditawarkan secara gratis. Pertunjukan yang lebih baik. Beberapa bug kecil telah diperbaiki. Kemampuan perangkat lunak yang disempurnakan. Banyak kode telah diperbaiki dalam hal kecepatan dan manajemen memori. Ikuti kami di Twitter Ikuti kami di FaceBook Ikuti kami di YouTube Ikuti kami di LinkedIn Bantuan real-time. Hubungkan kami sekarang dengan tutorial video WhatsApp 393207214179. Perangkat lunak itu intuitif, mudah dipahami dan didokumentasikan dengan baik. Untuk sebagian besar kode, banyak tutorial video telah dipublikasikan di saluran YouTube kami. Kami juga mengembangkan software on-demand. Untuk pertanyaan silahkan email kami. Bergabunglah dengan kami21.06.2005 Sistem biometrik dapat dipandang sebagai sistem pengenalan pola yang terdiri dari tiga modul utama: modul sensor, modul ekstraksi fitur dan modul pencocokan fitur. Perancangan sistem semacam itu dipelajari dalam konteks banyak modalitas biometrik yang umum digunakan - sidik jari, wajah, ucapan, tangan, iris. Berbagai algoritma yang telah dikembangkan untuk masing-masing modalitas ini akan dipaparkan. 16.05.2006 Jaringan syaraf tiruan adalah kelompok neuron biologis yang saling terkait. Dalam penggunaan modern istilah ini juga bisa merujuk pada jaringan syaraf tiruan, yang merupakan neuron buatan. Dengan demikian, istilah Neural Network menentukan dua konsep yang berbeda: - Jaringan saraf biologis adalah pleksus neuron terhubung atau berfungsi secara fungsional di sistem saraf perifer atau sistem saraf pusat. - Di bidang neuroscience, paling sering mengacu pada sekelompok neuron dari sistem saraf yang sesuai untuk analisis laboratorium. Jaringan syaraf tiruan dirancang untuk memodelkan beberapa sifat jaringan saraf biologis, meskipun sebagian besar aplikasi bersifat teknis berlawanan dengan model kognitif. Jaringan saraf dibuat dari unit yang sering diasumsikan sederhana dalam arti bahwa negara mereka dapat digambarkan dengan nomor tunggal, nilai aktivasi mereka. Setiap unit menghasilkan sinyal output berdasarkan aktivasi. Unit terhubung satu sama lain secara khusus, masing-masing sambungan memiliki bobot individu (sekali lagi dijelaskan oleh satu nomor). Setiap unit mengirimkan nilai outputnya ke semua unit lain yang memiliki koneksi keluar. Melalui koneksi ini, output satu unit dapat mempengaruhi aktivasi unit lain. Unit yang menerima koneksi menghitung aktivasi dengan mengambil jumlah tertimbang dari sinyal input (yaitu mengalikan setiap sinyal masukan dengan bobot yang sesuai dengan koneksi tersebut dan menambahkan produk ini). Output ditentukan oleh fungsi aktivasi berdasarkan aktivasi ini (misalnya unit menghasilkan keluaran atau kebakaran jika aktivasi berada di atas nilai ambang batas). Jaringan belajar dengan mengubah bobot koneksi. Secara umum, jaringan syaraf tiruan terdiri dari kelompok atau kelompok neuron yang terhubung secara fisik atau berfungsi secara fungsional. Sebuah neuron tunggal dapat dihubungkan ke banyak neuron lain dan jumlah neuron dan koneksi dalam jaringan bisa sangat besar. Sambungan, yang disebut sinapsis biasanya terbentuk dari akson hingga dendrit, meskipun mikroskop dendrodentritik dan koneksi lainnya dimungkinkan. Terlepas dari sinyal listrik, ada bentuk sinyal lain yang muncul dari difusi neurotransmitter, yang memiliki efek pada sinyal listrik. Dengan demikian, seperti jaringan biologis lainnya, jaringan syaraf tiruan sangat kompleks. Sementara deskripsi rinci tentang sistem syaraf tampaknya tidak dapat dicapai, kemajuan dibuat untuk pemahaman mekanisme dasar yang lebih baik. Kecerdasan buatan dan pemodelan kognitif mencoba mensimulasikan beberapa sifat jaringan saraf. Sementara teknik yang sama, yang pertama memiliki tujuan untuk menyelesaikan tugas tertentu, sementara yang kedua bertujuan untuk membangun model matematis sistem saraf biologis. Di bidang kecerdasan buatan, jaringan syaraf tiruan telah berhasil diterapkan untuk pengenalan suara, analisis citra dan kontrol adaptif, untuk membangun agen perangkat lunak (di komputer dan video game) atau robot otonom. Sebagian besar jaringan syaraf tiruan yang digunakan saat ini untuk kecerdasan buatan didasarkan pada estimasi statistik, teori pengoptimalan dan pengendalian. Bidang pemodelan kognitif adalah pemodelan fisik atau matematis dari perilaku sistem saraf mulai dari tingkat saraf individu (misalnya memodelkan kurva respon spike neuron ke stimulus), melalui tingkat cluster saraf (misalnya memodelkan pelepasan dan efek dopamin Di ganglia basal) ke organisme lengkap (misalnya pemodelan perilaku respons organisme terhadap rangsangan). 11.06.2007 Algoritma genetika merupakan kelas teknik pencarian, adaptasi, dan pengoptimalan berdasarkan prinsip evolusi alami. Algoritma genetika dikembangkan oleh Belanda. Algoritma evolusioner lainnya mencakup strategi evolusi, pemrograman evolusioner, sistem klasifikasi, dan pemrograman genetika. Algoritma evolusioner mempertahankan populasi kandidat solusi dan mengevaluasi kualitas setiap kandidat solusi sesuai dengan fungsi kebugaran spesifik masalah, yang mendefinisikan lingkungan untuk evolusi. Calon solusi baru dibuat dengan memilih anggota populasi yang relatif sesuai dan menggabungkannya kembali melalui berbagai operator. Algoritma evolusioner spesifik dier dalam representasi solusi, mekanisme seleksi, dan rincian operator rekombinasi. Dalam algoritma genetika, kandidat solusi diwakili sebagai string karakter dari abjad (sering biner) yang diberikan. Dalam masalah tertentu, pemetaan antara struktur genetik dan ruang solusi asli harus dikembangkan, dan fungsi kebugaran harus didefinisikan. Fungsi kebugaran mengukur kualitas larutan yang sesuai dengan struktur genetik. Dalam masalah optimasi, fungsi fitness hanya menghitung nilai fungsi objektif. Dalam masalah lain, kebugaran dapat ditentukan oleh lingkungan koevolusi yang terdiri dari struktur genetik lainnya. Misalnya, seseorang dapat mempelajari sifat kesetimbangan dari masalah teori permainan dimana populasi strategi berevolusi dengan kebugaran setiap strategi yang didefinisikan sebagai hasil rata-rata terhadap anggota populasi lainnya. Algoritma genetik dimulai dengan populasi kandidat solusi yang dihasilkan secara acak. Generasi berikutnya diciptakan dengan menggabungkan kandidat yang menjanjikan. Rekombinasi melibatkan dua orang tua yang dipilih secara acak dari populasi, dengan probabilitas seleksi bias mendukung kandidat yang relatif bugar. Orang tua direkombinasi melalui operator crossover, yang membagi dua struktur genetik di lokasi yang dipilih secara acak, dan bergabung dengan sepotong dari setiap orang tua untuk menciptakan keturunan (sebagai perlindungan terhadap hilangnya keragaman genetik, mutasi acak kadang-kadang diperkenalkan ke dalam keturunan). Algoritma mengevaluasi kebugaran keturunan dan menggantikan salah satu anggota populasi yang relatif tidak layak. Struktur genetik baru diproduksi sampai generasi selesai. Generasi berturut-turut diciptakan dengan cara yang sama sampai kriteria penghentian yang didefinisikan dengan baik terpenuhi. Populasi akhir menyediakan koleksi calon solusi, satu atau lebih yang dapat diterapkan pada masalah asli. Meskipun algoritma evolusioner tidak dijamin untuk menemukan optimal global, mereka dapat menemukan solusi yang dapat diterima secara relatif cepat dalam berbagai masalah. Algoritma evolusioner telah diterapkan pada sejumlah besar masalah di bidang teknik, ilmu komputer, ilmu kognitif, ekonomi, ilmu manajemen, dan bidang lainnya. Jumlah aplikasi praktis telah meningkat dengan mantap, terutama sejak akhir 1980an. Aplikasi bisnis yang khas melibatkan perencanaan produksi, penjadwalan job shop, dan masalah kombinatorial yang sulit lainnya. Algoritma genetika juga telah diterapkan pada pertanyaan teoritis di pasar ekonomi, peramalan deret waktu, dan estimasi ekonometrik. Algoritma genetika berbasis string telah diterapkan untuk menemukan strategi penentuan waktu pasar berdasarkan data fundamental untuk pasar saham dan obligasi. 23.04.2006 Daftar bahasa pemrograman berbasis matriks: Scilab - Scilab adalah paket perangkat lunak ilmiah untuk perhitungan numerik yang menyediakan lingkungan komputasi terbuka yang kuat untuk aplikasi teknik dan ilmiah. Dikembangkan sejak tahun 1990 oleh para periset dari INRIA dan ENPC, sekarang dipelihara dan dikembangkan oleh Scilab Consortium sejak diluncurkan pada bulan Mei 2003. Proyek R untuk Statistical Computing - R adalah lingkungan perangkat lunak bebas untuk komputasi dan grafik statistik. Ini mengkompilasi dan berjalan di berbagai platform UNIX, Windows dan MacOS. Octave - Octave adalah bahasa tingkat tinggi, terutama ditujukan untuk perhitungan numerik. Ini menyediakan antarmuka baris perintah yang mudah digunakan untuk memecahkan masalah linier dan nonlinear secara numerik, dan untuk melakukan eksperimen numerik lainnya menggunakan bahasa yang sebagian besar kompatibel dengan Matlab. Ini juga bisa digunakan sebagai bahasa yang berorientasi batch. Python - Python adalah bahasa pemrograman berorientasi objek dinamis yang bisa digunakan untuk berbagai jenis pengembangan perangkat lunak. Ini menawarkan dukungan kuat untuk integrasi dengan bahasa dan alat lainnya, dilengkapi dengan perpustakaan standar yang luas, dan dapat dipelajari dalam beberapa hari. Many Python programmers report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code. before a link means the link points to a binary file, not a readable page) Research Code A rational methodology for lossy compression - REWIC is a software-based implementation of a a rational system for progressive transmission which, in absence of a priori knowledge about regions of interest, choose at any truncation time among alternative trees for further transmission. To circumvent the lack of knowledge of what distortion measure is more suitable for optimization of the trade-off between image fidelity and coding rate, this coder shall introduce a novel mathematical methodology for rate control by organizing the progressive transmission in accordance with coherence constraints for avoiding forms of behavioral inconsistency. A set of postulates is provided for specifying the ways in which preferences need to be made precise and fit together if illogical forms of behavior are to be avoided. We show that the rational choice for transmission at truncation time t is to select bit streams which have the maximum expected increase in utility per coding bit, where rational must be understood in the sense that it cannot lead the transmission system into forms of behavioral inconsistency. This method is then used within a progressive transmission scheme to produce a new compression method called rational embedded wavelet image coding (REWIC). (by J. A.Garcia, Rosa Rodriguez-Sanchez, J. Fdez-Valdivia Computer Vision Group. University of Granada. University of Granada ) Active Appearance Models - Extensions and Cases - This site acts as home for the the AAM-API which is a free C implementation of the Active Appearance Model method. Several results and models are also given. ( Section for Image Analysis The Technical University of Denmark ) Associative Memory for Face Memorization and Recognition - Free fully self-contained C code for on-the-fly storing and retrieving of patterns, such as binary coded faces, using projective associative memory. (by Dmitry Gorodnichy Computational Video Group NRC-CNRC ) Automatic edge thresholding - Automatic edge thresholding as described in paper by Venkatesh and Rosin (GMIP, Vol. 75, pp. 146-160, 1995) (by Paul Rosin, Svetha Venkatesh Cardiff University Cardiff University) Belief Propagation for Early Vision - Fast algorithms for MRF based stereo and image restoration. (by Pedro Felzenszwalb) BrainTechs Odysee Development Studio - Commercial program - A drag-and-drop environment for vision system prototyping and testing (a la Wit, Vision Blox, Khoros, etc.). It is also an open architecture so that one can import their own CC functions. (by Ajay Sidda Odysee BrainTech ) Camera Array Viewer - CAView is a free package about a 3D viewer from multiple input images (image-based rendering) using on-the-fly geometry reconstruction. CAView includes an algorithm that reconstructs the scene geometry in the form of a 2D mesh model, which runs fast and gives good rendering quality. It could be easily extended and used in 3D video conferencing applications. (by Cha Zhang Advanced Multimedia Processing Lab Carnegie Mellon University ) Camera Calibration - Routines for calibrating using Roger Tsais perspective projection camera model. (by Reg Willson CMU) CMVision Color Machine Vision Library - A free low level color vision processing library, which is able to threshold and calculate connected components of 640x480 60fps video streams entirely in software. (by James Bruce CORAL research group Carnegie Mellon University ) Collective rationality for the allocation of bits - CORAL is a software-based implementation of a new coder scheme that in absence of a priori knowledge about regions of interest propose a new method for bit allocation which can be used with reasonable internal consistency and acceptable image fidelity. The effectiveness of a coding method can be improved through a space-varying filterbank tree representation of the image, and this property can be conveniently exploited using appropriate bit allocation strategies among the spatial segments of the image. In CORAL we examine the conditions for achieving a rational agreement on the distribution problem by stating axioms that its solution must obey in absence of a priori knowledge about regions of interest. Firstly, a measure of benefit avoiding certain forms of behavioral inconsistency is to be assigned to each possible bit allocation in such a way that each regions preference may be inferred between any two bit allocations from their respective benefits. Secondly, individual regions are to agree on an allocation of bits which is then to be brought about by a joint strategy, but, under what conditions is their agreement rational CORAL propose a characterization of rational agreement whose solution is an application of a general procedure for cooperative action where each may benefit only on terms which permit proportionately equal benefits to others. Experimental results are given to evaluate the performance of the strategy of COllective Rationality for the ALlocation of bits (CORAL), based upon a validated predictor for visual distinctness from digital imagery. (by J. A.Garcia, Rosa Rodriguez-Sanchez, J. Fdez-Valdivia Computer Vision Group. University of Granada. University of Granada ) Compound Gain: A visual distinctness metric for coder performance evaluation - CG is a visual distinctness metric that constitutes an alternative to PSNR for evaluating the performance of compression methods. ( Computer Vision Group University of Granada. Spain ) Convex grouping code - Robustly locates salient convex collections of line segments in an image. (by David Jacobs) Coriander - Coriander is a 1394 camera controller for Linux. It let you control the camera, plus save, FTP, stream and display live video. (by Damien Douxchamps Telecom lab Universite Catholique de Louvain ) Disparity Analysis of Images - This java-based application estimates the disparity between two images. It works by first detecting remarkable points in both images and then finding the best possible match between the two sets of points. (by Lionel Le Briquer) Distance Transform - Fast algorithm for computing the Euclidean distance transform of a binary image and the distance transform of a sampled function. (by Pedro Felzenszwalb University of Chicago) Edge list approximation code - From Nonparametric segmentation of curves into various representations . PAMI 1995 pp 1140-1153. by Paul Rosin and Geoff West. EuclidStudio Preview - Preview of an open source project for integration and development of computer vision and video processing libraries. The preview application demonstrates a simple integration of Intels OpenCV library and the MPEG-4 AVC reference software. Gandalf - Gandalf is a computer vision and numerical algorithm library, written in C, which allows you to develop new applications that will be portable and run FAST. Includes many useful vision routines, including camera calibration, homographies, fundamental matrix computation, and feature detectors (includes source code). Dynamically reconfigurable vector, matrix and image structures in Gandalf allow efficient use of memory. Gandalf has been used to develop the MoKey motion editing software, released at IBC2001 in Amsterdam. MoKey performs automatic inpainting of moving objects over an image sequence, and can also be used to compute an accurate alpha matte or outline of an object. Gandalf currently contains four packages: 1) Common package of simple structures and routines used by the other packages, such as memory allocation, linked lists and error handling 2) Linear algebra package with a large number of routines for matrix and vector manipulations 3) Image package defining a general purpose image structure and low-level image manipulation routines 4) Vision package containing a number of standard image processing, computer vision and numerical routines. The major design features of Gandalf are: (i) Efficient use of memory through dynamically reconfigurable structures (ii) Emphasis on support of numerical algorithms, especially optimisation (iii) A very flexible and efficient internal image representation, (iv) A comprehensive set of matrixvector operations, incorporating implicit matrix transpose inverse, and in-place computation where appropriate Exploitation of the computational and compilation speed advantages of C over C in reducing the number of layers of abstraction over the raw data, an approach we believe is appropriate for simple objects such as matrices, vectors and images. The documentation for Gandalf comes in two parts. There is a LaTex tutorial with examples available also in HTML (via Latex2html). Reference documentation for Gandalf has also been generated using ObjectOutline, (by Philip McLauchlan Imagineer Software Ltd ) General Image Rectification - Re-usable free C source code library for performing general image rectification Rectification is the process of simplifying the epipolar geometry by making epipolar lines in a pair of images co-incident and parallel to the x axis. The code presented here is a free C library incl. source code for performing general image rectification given the fundamental or essential matrix. The method used is general and so will work for ANY valid epipolar geometry. The method also has the advantage over other methods of attempting to minimise image distortion caused by rectification and ensuring that disparities will be roughly centred on 0 pixels. (by Daniel Oram ) Gradient Vector Flow Active Contour - The purpose of GVF active contour is to extract parameterized contour description from images. Matlab implementation is available for both UNIX and Windows. (by Chenyang Xu and Jerry L. Prince Image Analysis and Communications Laboratory Johns Hopkins University ) GREYCstoration. A fast PDE-based algorithm for image restoration. - This web site exposes a fast algorithm for image restoration. Several examples are provided, and the executable can be downloaded for Windows and Unix. (by David Tschumperle GREYC ) GSnake - Contour modeling, extraction, detection, and classification. Hidden Markov Model routines - Implementation of Forward, Backward, Viterbi and Baum-Welch algorithms. The code follows Rabiner and Juang notation. Written in c. (by Tapas Kanungo Center for Automation Research University of Maryland, College Park ) IIDC Control Library for 1394 cameras - libdc1394 is a library for controlling and acquiring images from a 1394 IIDC compliant camera. (by Gord Peters, Damien Douxchamps, Dan Dennedy al. Telecom Lab UCL ) Image Segmentation - Implementation of an efficient graph-based image segmentation algorithm. (by Pedro Felzenszwalb University of Chicago) Intel Open Source Computer Vision Library - Computer vision routines, applications and tutorials. Open Source, FREE for academic AND commercial use. Assembly language optimized on Intels processor line. Areas covered are Geometric Methods, Recognition, Image Pyramids Camera Calibration, Tracking, and Fitting. (by Vadim Pisarevsky, Dmitry Abrosimov. Jean-Yves Bouguet. Gary R. Bradski. Valery Cherepennikov. Michael Chu. Boris Chudinovich. Prof. Trevor. Bob Davies. Prof. James Davis. Victor Eroukhimov. Prof. Irfan Essa. Radek Grzeszczuk. Mark Holler. Prof. Jitendra Malik. Sergey Molinov. Valery Mosyagin. Ara Nefian. Sergey Oblomov. Prof. Pietro Perona. Vadim Pisarevsky, Alexander Pleskov, Chuck Richards, Prof. Stan Scarloff, Stewart Taylor, Prof. Carlo Tomasi Visual Interactivity Lab Intel Corporation) KLT - An implementation of the Kanade-Lucas-Tomasi feature tracker. (by Stan Birchfield) LogicalLinear Operators (by Lee Iverson ) LTI-LIB computer vison library - an object oriented library with algorithms and data structures frequently used in image processing and computer vision. The LTI-Lib is an object oriented library with algorithms and data structures frequently used in image processing and computer vision. It has been developed at the Chair of Technical Computer Science (Lehrstuhl fuer Technische Informatik) LTI at the Aachen University of Technology, as part of many research projects in computer vision dealing with robotics, object recognition and sing language and gesture recognition. Machine vision without pixels - A tutorial and open source code for finding edges and corners based on the filters used in primary visual cortex. (by Tyler Folsom DigiPen Institute of Technology ) MATLAB Functions for Computer Vision - A collection of MATLAB functions including: Feature detection via Phase Congruency, Non-maxima suppression and hysteresis thresholding, Edge linking and line segment fitting, Image denoising, Frequency domain transformations, Functions supporting projective geometry, Surface normals to surfaces using Shapelets, Robust estimation, and more. (by Peter Kovesi Vision Research Group The University of Western Australia ) Maximum-Flow Stereo Algorithm - Code for the maximum-flow formulation of the N camera stereo correspondence problem. (by Sebastien Roy Universit de Montral) MeasTex - A framework for quantitative measurement of image texture classification algorithms. MegaWave - Wavelet, Snake and Segmentation source code. Microsoft Easy Camera Calibration Tool - a flexible camera calibration technique, which only requires the camera to observe a planar pattern shown at a few (at least two) different (unknown) orientations. (by Zhengyou Zhang Vision Technology Group Microsoft Corp. ) MMach - A Mathematical Morphology Toolbox for the Khoros System Modelling the initial stages of visual information processing. - Ret4 - software for modelling and observing reactions of retinal cells NIST Handwriting OCR Testbed - OCR software and datasets for UNIX systems. Non-Rigid Structure from Motion - Matlab software for reconstructing non-rigid 3D shape from tracking data. (by Lorenzo Torresani, Aaron Hertzmann, and Chris Bregler Movement Group ) OpenVIDIA. Parallel GPU Computer Vision - The OpenVIDIA project implements computer vision algorithms on computer graphics hardware, using OpenGL and Cg. The project provides useful example programs which run real time computer vision algorithms on single or parallel graphics processing units(GPU). ( EyeTap Personal Imaging Lab University of Toronto) OpenVIDIA: Parallel GPU Computer Vision - The OpenVIDIA project implements computer vision algorithms on computer graphics hardware in real-time, using OpenGL and Cg. The OpenVIDIA project implements computer vision algorithms on computer graphics hardware in real-time, using OpenGL and Cg. The project provides useful example programs which run real time computer vision algorithms on single or parallel graphics processing units(GPU). OpenVIDIA utilizes the computational power of the GPU to provide real--time computer vision much faster than the CPU is capable of, and leaves the CPU free to conduct other tasks beyond vision. Perceptual Organization Software Philip Torrs stereo vision code - routines to generate corner matches between images guided by RANSAC and epipolar geometry, fundamental matrix estimation, synthetic data generation, trifocal tensor estimation, and more. (by Philip Torr Oxford Brookes University) Projective Vision Toolkit - PVT is a series of utilities that allows one to take an image sequence and compute the fundamental matrix and trilinear tensor. This can be used for such problems as camera self-calibration, structure from motion, camera motion annotation, image stabilization, 3D tracking and recognition, etc. ( Computational Video Group of NRC ) Real-time dense stereo - E-Stereo is a library that enables to perform real-time dense stereo from 2 or 3 rectified images. It relies on a two-pass algorithm. (correlation-based algorithm region growing w. r.t. photometric constraints). (by David Demirdjian Vision Interfaces MIT ) Salience distance transform - The salience distance transform incorporates edge strength information into the distance transform. The output is more robust and informative as input for techniques such as snakes. (by Paul Rosin, Geoff West Cardiff University) Savitzky-Golay Filters for 2D Images - This web page describes the derivation of the Savitzky-Golay filters for 2D images, gives MatLab routines for computing the filters, and gives C files with the filter coefficients. (by John Krumm Vision Technology Research Group Microsoft Research ) sba: A Generic Sparse Bundle Adjustment CC Package Based on the Levenberg-Marquardt Algorithm - Generic sparse bundle adjustment for multiview reconstruction vision tasks. sba exploits the sparse structure of the problem to efficiently minimize the image reprojection error. (by Manolis Lourakis Computational Vision and Robotics Lab Foundation for Research and Technology - Hellas ) Segmentation of Skin-Cancer Images - Implementation of an algorithm for segmenting images of skin cancer and other pigmented lesions (see Image and Vision Computing, January 1999, pp. 65-74). An automatic method for segmention of images of skin cancer and other pigmented lesions is implemented. This method first reduces a color image into an intensity image and approximately segments the image by intensity thresholding. Then, it refines the segmentation using image edges. Double thresholding is used to focus on an image area where a lesion boundary potentially exists. Image edges are then used to localize the boundary in that area. A closed elastic curve is fitted to the initial boundary and is locally shrunk or expanded to approximate edges in its neighborhood in the area of focus. Segmentation results from twenty randomly selected images show an average error that is about the same as that obtained by four experts manually segmenting the images. (by L. Xu, M. Jackowski, A. Goshtasby, C. Yu, D. Roseman, S. Bines, A. Dhawan, A. Huntley Intelligent Systems Laboratory Wright State University ) SketchUp - A demo package for recognizing hand-drawn sketches through Size Functions. ( Vision Mathematics group University of Bologna) SRI Stereo Engine Software - fast stereo software for PCs. It performs disparity calculations and filtering in real time on images up to 320x240 in size. ( SRI Artificial Intelligence Center SRI International ) SSD tracking matlab toolbox (Jacobian Factorisation based) - Matlab toolbox for SSD based tracking, in which we implemented the Jacobian Matrix factorisation of Hager and Belhumeur. In this toolbox we have additionaly implemented our Jacobian matrix factorisation for a projective motion model (see paper: Real-time tracking and estimation of plane pose, Jos Miguel Buenaposada Biencinto, Luis Baumela Molina. Proc. of International Conference on Pattern Recognition, ICPR 2002. Vol II, pp. 697-700, IEEE. Quebec, Canada, August 2002.). (by Jose M. Buenaposada, Luis Baumela Technical University of Madrid (Universidad Politcnica de Madrid)) Statistical Discriminant Learning for Face Recognition - Matlab source code for LinearQuadraticKernel Discriminant Learning algorithms, which can be used for applications such as face recognition. (by Juwei Lu Multimedia Laboratory at the University of Toronto University of Toronto ) Steerable Pyramid Check Eeros home page for a tar file. (by Eero Simoncelli ) Stereo Calibration - free java-based software for camera calibration and stereo rig calibration. The device uses a calibration object. Non-linear estimation of the parameters of a single camera. correction of distortion. Non-linear estimation of the parameters of a stereo-rig from several positions of a calibration object. 3D reconstruction and metrologic statistics. acquisition of images. (by Matthieu Personnaz MOVI INRIA ) Stereo Matching and Evaluation - A stand-alone C implementation of many stereo algorithms including an evaluation module using ground truth and prediction error (by Daniel Scharstein, and Richard Szeliski Middlebury Stereo Vision Research Page Middlebury College ) SUSAN - Low-level image processing. SUSAN is an acronym for Smallest Univalue Segment Assimilating Nucleus. The SUSAN algorithms cover image noise filtering, edge finding and corner finding. (by Steve Smith Oxford University) TargetJr - A C Computer Vision Environment - C programing environment with libraries to support: image processing image segmentation camera modeling 2-d and 3-d geometry a graphical user interface based on FRESCO. TargetJr has been developed over the last 10 years, starting at GEs Corporate RD Center. Currently TargetJr is used by a number of vision research groups with emaphasis on geometric algorithms and object recognition. TargetJr is written in C and organized into a number of libraries including: numerics spatial objects image image processing segmentation computational geometry 3-d modeling and user interface. (by Joseph Mundy, William Hoffman, Andrew Fitzgibbon, Peter Vanroose and Rupert Curwen GE Corp. RD, Oxford University, University of Leuven) Texture Synthesis and Analysis by Rupert Paget - Fast texture synthesis by nonparametric MRF modelling. Source code is provided, plus many free textures. Fast Semi Causal Nonparametric Markov Random Field Texture Synthesis. This algorithm is a cut down version of the algorithm published in IEEE Transactions on Image Processing 1998. In this version, it has been rewritten for a single cpu machine. To maintain speed of synthesis, the update function UpdateFn() has been set to return the maximum value. If this was modified to return a portion of the maximum value, then the synthesis would take longer, but there would be a gain in quality. If you do decide to modify the code, be careful, as I have not put in any safeguard checks. Best to fully understand the whole code, before modifying it. Recently there has been quite an influx of nonparametric sampling techniques for texture synthesis, this is because it has been the nonparametric models that have had the greatest success at synthesising arbitrary textures. This technique uses a multiscale approach, which has the advantage that only a small neighbourhood is required. This fast version implements a modification based on Ashikhmins Synthesizing Natural Textures. As noted in his work, the L2 norm may not be the best measure to test for perceptual similarity between two neighbourhoods. Instead, we may note that if we are only taking pixels from the input image (and not sampling from a larger distribution), then when we iterate a respective pixel, we can be assured that each of its defined neighbours occur within the input image. Speed can be gained if, instead of doing a exhaustive search, we only sample from those pixels which have the same neighbour. In this algorithm I have modified Ashikhmins approach by using our previous algorithm, and sampling from all pixels which have at least one of its neighbours the same colour as its respective neighbour of the pixel being iterated. This algorithm works well for natural textures which have a pixelwise noise distribution. (by Rupert Paget Swiss Federal Institute of Technology - Computer Vision Group Swiss Federal Institute of Technology ) The Reading People Tracker - The Reading People Tracker is a software for tracking people in camera images for visual surveillance purposes. The Reading People Tracker is written in C. It originates from research work on people tracking for automatic visual surveillance systems for crime detection and prevention. It was built within the context of two PhD theses (by AM Baumberg and NT Siebel) and contains many image processing algorithms. It is easily maintainable and well documented. Therefore it can (and has already been) easily be adapted to new requirements and different projects. The Reading People Tracker contains the necessary functionality to read video sequences from hard disk or a video camera (IEEE1394DV), to manipulate the images with image filters and to analyse them with a number of detection and tracking modules. (by Nils T Siebel, Adam Baumberg Cognitive Systems Group Christian-Albrechts-University of Kiel ) ToolDiag - Pattern recognition of multivariate numerical data. Uncalibrated Stereo by Singular Value Decomposition - This stereo algorithm allows to match features across a pair of stereo images with unparalleled algorithmic simplicity and neatness. Results are comparable to complex relaxation methods. Its simple implementation has made it a good off-the-shelf solution for a number of researchers needing a fast a easy-to-integrate matching module. (by Maurizio Pilu Hewlett Packard Research Laboratories) University of Calgary vision software - Includes chain code, Hough transform, and others. UNL Fourier Features (UFF) - An implementation of a general purpose 2-D shape description method. (by Thomas Rauber ) VISCA(tm) Control Library - libVISCA is a library for controlling a VISCA compliant camera (such as several camera blocks from Sony) (by Damien Douxchamps Telecom Lab UCL ) Visual Hull Modeling Library - A linux library for building a polyhedral representation of the visual hull, from a set of binary images and the corresponding camera calibration matrices. (by Jean-Sebastien Franco MOVI - Models for Vision INRIA Rhone-Alpes ) VXL - C libraries for Computer Vision - The Vision-something-Libraries are a collection of C libraries designed for computer vision research. It was created from TargetJr and the Image Understanding Environment (IUE) with the aim of making a lighter, faster and more consistent system. VXL is written in ANSIISO C and is designed to be portable over many platforms. It is developed and used by a consortium including groups from the Universities of Leuven, Oxford, Manchester, and RPI, GE CRD. ( VXL Consortium ) XVision visual tracking software - Application independent, configurable interface to high-speed tools for visual feature tracking. Uses include tracking a persons eyes and mouth, gesture recognition. Contains interfaces to many popular cameras and frame grabbers. (by Greg Hager Computational Interaction with Physical Systems ) ZipPack Polygon Mesh Zippering - Combines several range images into a polygonal mesh. Image Processing Toolkits 2D and 3D Image Filter: Facor. - Facor is an image filter suitable for enhancement of wide variety of 2D and 3D images, including medical diagnostic images (commercial software). Facor image filter is a program that detects image structures and distinguishes them from a noise in digital images. Based on this detection, it is possible to suppress noise, or to emphasize image structures, or both. This processing improves the Signal to Noise Ratio and visual presentation of images. (by Michael Semenchenko) Able Image Analyser - Windows application for image analysis, processing and measurement (commercial software). Able Image Analyser supports image analysis functions that include dimensional, gray scale and 24 bits color measurements: distance, area, angle, point, line, pixel profile, histogram etc. (from images or selections) with statistics that calculate basic statistics (count, mean, median, minimum, maximum, range, variance, standard deviation, coefficient of variation, skew and kurtosis) and frequencies. Spatial calibration is available to provide real world dimensional measurements such as kilometers, centimeters, millimeters, nanometers, microns, cm, miles, etc. for both linear and area measurements. All manual measurements are written into a spreadsheet, where you can enter and edit data as well. The measurements can be exported as CSV, HTML or ASCII file formats. The images can be exported as RGB, HSV or 8 Bit channels, generating a matrix with the decimal or hexadecimal values of the image pixels, in order to process them in another application. Able Image Analyser provides for geometric transformations such as rotate, resize, merge, flip horizontal and vertical, rotate or flip selection. The program is a multiple document interface (MDI) application supporting any number of windows (images) simultaneously. The program supports standard image processing functions such as subtract background, brightness and contrast manipulation, invert image color, channels manipulation, spatial convolutions with user-defined convolution masks and morphing filters. ( MuLabs ) AcquireNow - A real-time image acquisition and processing product. (Commercial product ). The product includes a COM (Component Object Model) component, which allows developers to create powerful imaging applications quickly and easily using COM supported languages such as C and Visual Basic. The AcquireNow package include the AcquireNowClient application. AcquireNowClient is a stand-alone application, which can be used to acquire, display, and save images to disk. The AcquireNowClient application also allows the user to perform real time image averaging, scaling and flat fielding. Source code for the AcquireNowClient application is included, and can be used by customers as a base for their own imaging applications. ( Boulder Imaging, Inc. ) AdOculos - PC-based image processing without the need of extensive programming knowledge The following image processing functions are realized as DLLs. The complete C source code of these DLLs is part of the standard pack. Point, local and global, morphological operations Texture, image sequence Histograms procedures Hough and color transformations Automatic counting and interactive measuring Pattern recognition, graylevel profile General purpose and display functions ( The Imaging Source ) An Image Processing Laboratory - IMLAB is a free open source graphical application for Scientific Image Processing that runs in Windows, Linux and many other UNIX systems. It supports multiple windows, data types including 32 bit integers, 32 bit real numbers and complex numbers. It is implemented in C and also in C to provide a very simple way to add new functions. It has many image operations and supports several file formats. An Imaging Library - IM is free open source set of libraries that contains a series of C functions and C classes for handling digital images. It has support for capture devices, multipaged image file formats, many image processing functions, scientific data types and attributes. ( TecgrafPUC-Rio ) Aphelion - Commercial image processing and understanding package for Windows. Features a rapid prototyping environment, image processing and object recognition libraries, and a vision tutorial. Aphelion is a commercial software product which can be used to quickly develop vertical imaging applications. It is a comprehensive and powerful development environment and a delivery vehicle for image-based applications, including a Graphical User Interface, Image Processing libraries available as DLLs or ActiveX components, a Visual Basic compatible scripting language, a chart server, etc. Aphelion provides the very latest developments in mathematical morphology and symbolic representationrecognition, as well as effective tools for quantitative analysis, microscopy, pattern recognition, and classification. (by Bruno Lay Amerinex Applied Imaging Inc. ) AutoTrace - AutoTrace converts bitmaps to vector graphics (by Martin Weber) Bersoft Image Measurement - Measure length, angle, segments, perimeter and area in digital images. Commercial package for windows. Bersoft Image Measurement runs under Windows 9.xNT and it is intended to measure length, angle, segments, perimeter and area in digital images. It can be used in multiple scientific disciplines, such as Biology, Ecology, Geography, Agronomy, and Natural Sciences. It also can export matrixes (Exporting RGB values) with the decimal or hexadecimal values of the image pixels. The DEMO version can realize all the functions, but only over images saved in a propietary format: Image Bersoft Bitmap (bim extension). ( Bersoft ) CImg. A C Image Processing Library - CImg is a free C toolkit providing a set of classes designed to process and display images. Contains algorithms classically used in computer vision. (by David Tschumperle Odysse Lab INRIA Sophia Antipolis ) Clemex Vision - Commercial software for analysis of images from microscopes. Color Reduction and Multithresholding - Free image processing software for color reduction and quantization, multithresholding, Hough Transform etc. (Image and Multimedia Laboratory Democritus University of Thrace, Greece) Common Vision Blox - A modular and open software development platform to solve image processing and machine vision applications (Windows, Commercial product) ( Stemmer Imaging GmbH ) CppIma - C image processing library. CVIPtools - GUI-based computer vision and image processing tools, ANSI-C source code and libraries for Windows95NT and UNIX, extended computer imaging TCL shell. Also contains an extended Tcl shell with all the computer imaging functions. ANSI-C source code and libraries for image analysis, image compression, image enhancement, image restoration, and many imaging utilities. Used for both research and education, as well as applications development. (by Scott E Umbaugh, Greg Hance, Arve Kjoelen, Kun Luo, Mark Zuke, Yansheng Wei and others CVIP Group Southern Illinois University at Edwardsville ) DTU Image Viewer and Analyser - The DIVA consists of a number of image analysis functions collected in C template image classes and a windows interface, which handles a wide variety of different image file formats and pixel types. Everything is available as source code. (Section for Image Analysis Technical University of Denmark ) Edge Detection and Image Segmentation - EDISON is a system with a GUI that performs mean shift based discontinuity preserving filtering and image segmentation as well as edge detection with embedded confidence. The operations can be executed either alone or synergistically. ( Robust Image Understanding Laboratory Rutgers University) EdgeDetector - JavaBean for edge detection using Canny algorithm (commercial software) EdgeDetector is a JavaBean that implements Canny edge detection algorithm. The Canny algorithm is advantageous with its capability of anti-noise, subpixel-level detecting accuracy, and one-pixel width of resulting edges. The employment of the Canny algorithm is able to detect edges of an image with much less loss than the use of other algorthms of edge detection. The EdgeDetector can be integreted into any Java application or Applet in Java 1.1 or later visions with the JDK or JavaBeans environment. An application example is included in the software package. EIKONA - A family of general purpose, highly portable image processing applications. The full implementations contain more than 500 routines. Demos available. (commercial software) (AlphaTec ) eVision - Commercial image processing and analysis toolkit for use in industrial applications on Windows platforms. There is also a rapid prototyping development environment called EasyAccess. eVision provides all familiar tools in image processing such as image linear and morphological filtering, projections, profiles, geometric transforms, color conversions, blob analysis, pattern matching as well as application libraries such as OCR, matrix code reading, mark inspection. These tools are provided in a form well suited for rapid application development and are extremely fast. ( Euresys ) Exbem: Scientific Image Processing Analysis - Exbem is a software for scientific image processing analysis under MacOS. Exbem handles images, QuickTime movies, and live-video. Multiple operators can be assigned to multiple ROIs. ( Pixlock e. K. (company) ) Free portable image processing software - AnaLogic is a developer of machine vision hardware and software, has made its image processing library for Texas Instruments digital signal processors available as a free download. Geographic Resources Analysis Support System - An open source, Free Software Geographical Information System (GIS) with raster, topological vector, image processing, and graphics production functionality that operates on various platforms through a graphical user interface and shell in X-Windows. It is released under GNU General Public License (GPL). Graphics Gems - Generally useful graphics and image processing subroutines from the similarly-named books. HALCON - a commercial computer vision tool consisting of an image processing library, C and C interfaces, and a rapid prototyping tool called HDevelop. HALCON is manufactured by MVTec, which is a spin-off of the Technische Universitt Mnchen and the Bavarian Research Center for Knowledge Based Systems (FORWISS). The company is specialized in software solutions for image processing using standard hardware and framegrabbers. HALCON covers a wide field of applications like factory automation, quality control, medical image analysis, aerial image analyis, surveillance, research, and education. ( MVTec Software GmbH ) HIPS - General Unix-based Image Processing System with C source code (Commercial package ) HIPS is a software package for image processing that runs under the UNIX operating system. HIPS is modular and flexible, it provides automatic documentation of its actions, and is almost entirely independents of special equipment. It handles sequences of images (movies) in precisely the same manner as single frames. Over 200 such image transformation programs have been developed. HIPS is written in C, provided as source code, and is both a set of separate programs as well as a callable library. (by Michael S. Landy ) Image processing and analysis in Java - ImageJ is a public domain Java image processing program inspired by NIH Image for the Macintosh. It runs, either as an online applet or as a downloadable application, on any computer with a Java 1.1 or later virtual machine. Downloadable distributions are available for Windows, Mac OS, Mac OS X and Linux. It can display, edit, analyze, process, save and print 8-bit, 16-bit and 32-bit images. It can read many image formats including TIFF, GIF, JPEG, BMP, DICOM, FITS and raw. It supports stacks, a series of images that share a single window. It is multithreaded, so time-consuming operations such as image file reading can be performed in parallel with other operations. It can calculate area and pixel value statistics of user-defined selections. It can measure distances and angles. It can create density histograms and line profile plots. It supports standard image processing functions such as contrast manipulation, sharpening, smoothing, edge detection and median filtering. It does geometric transformations such as scaling, rotation and flips. Image can be zoomed up to 32:1 and down to 1:32. All analysis and processing functions are available at any magnification factor. The program supports any number of windows (images) simultaneously, limited only by available memory. Spatial calibration is available to provide real world dimensional measurements in units such as millimeters. Density or gray scale calibration is also available. ImageJ was designed with an open architecture that provides extensibility via Java plugins. Custom acquisition, analysis and processing plugins can be developed using ImageJs built in editor and Java compiler. User-written plugins make it possible to solve almost any image processing or analysis problem. ImageJ is being developed on Mac OS X using its built in editor and Java compiler, plus the BBEdit editor and the Ant build tool. The source code is freely available. The author, Wayne Rasband (waynecodon. nih. gov), is at the Research Services Branch, National Institute of Mental Health, Bethesda, Maryland, USA Image Processing Library 98 - A platform independent image manipulating CC library The purpose of the library is to be useful, for combining tailor-made image processing and interpretation with standard methods for acquisitions, processing, display and storage of image information. Emphasis is put on interactivity in projects made by students, as well as for advanced research and development. (by Ivar Balslev and Ren Dencker The Maersk Mc-Kinney Moller Institute for Production Technology University of Southern Denmark, Odense University ) Image Restoration and Inpainting - Large Library in c for slow and fast image restoration, inpainting, morphology, and distance mapping. (free software) (by Bernard De Cuyper) Image Restoration and Inpainting in C - New free software about image restoration and inpainting using Level Set technology. The project is open and related to image enhancement. It permit interested people to get a first idea and move up -) Image-Pro Plus - Commercial image analysis software used in biological and industrial microscopy applications. ImageGear - Commercially available imaging toolkit for Windows, UNIX, and MAC. Supports all of the popularly used graphics file formats. ImageGear Professional Edition supports over 700 imaging functions, full multi-threading and easy Internet integration. ImageGear includes analysis, correction, and manipulation of both computer-generated and scanned images, special effects, file format conversion, image enhancement through color reductionpromotiondithering, and GUI (Graphical User Interface) functions. ( AccuSoft Corporation ) ImageLib - An Image Processing C Class Library (template based) ImageLib is a C class library providing image processing and related facilities. The main set of classes provides a variety of image and vector types, with additional modules supporting scalar and vector quantisation, wavelet transforms, DCT transforms, and simple histogram operations. (by Brendt Wohlberg University of Cape Town) IMAQ Vision - Adds machine vision and image processing functionality to LabVIEW and ActiveX containers (National Instruments) ImgStar Image Processing Tools - Complements Pbmplus with edge detection, highlowband-pass filters, thresholding, etc. (by Simon Winder) ImLib3D - ImLib3D is an open source C library for 3D (volumetric) image processing. It comes with an optional viewer that features 3D (OpenGL) multiplanar. Templated: ImLib3D images are STL-like templated containers. This means you can create images of arbitrary types (examples: float, int, complex, 3D vectors for deformation fields. ) Iterators: ImLib3D provides STL-like iterators for moving around images. This provides a much faster, more efficient and easier to use framework. This also provides a common simple syntax for moving around images in special ways, like in masked images or rectangular sub-zones in an image. Speed: ImLib3D is very fast. Iterators hide all the gory details of making it fast. Command line: All image processing operators can be called from the unix command line. This is, with the viewer, important for easy image processing experimentation. Fast BSpline interpolation (thanks to Unser et all.) Rigid, affine, deformable registration (thanks to O. Musse) Very fast fft (thanks to fftw) Image processing (arithmetic, convolution, morphological operations. ) 3D image viewer. (by Marcel Bosc, Torbjorn Vik LSIITIPB ULP Strasbourg France ) Intel Image Processing Library - Optimized assembly MMX code for image processing, pattern recognition, signal processing, and matrix manipulation. The computer vision code was folded into the Integrated Performance PRimitives library and it is no longer free. ( Intel Corporation ) Interactive Data Language (IDL) - IDL is a development environment for data visualization, 2D and 3D graphics, and image processing. IPTool - Freeware image processing toolkit for Windows Karma Library - Image processing and interprocess communications toolkit Khoros - An integrated software environment for data exploration and visualization, visual programming and simulation, and sofware development. LaboImage - Image processing and analysis toolkit for Windows or X11Motif. LEADTOOLS Imaging Development Toolkit - commercial toolkit that supports loading, saving, converting, and processing of color, greyscale, and document images - Windows-based commercial toolkit that ( LEAD Technologies, Inc. ) LookingGlass Real-time ImageProcessing System - multithreaded PC-based image proccessing environment that supports realtime video processing. LookingGlass is an Image Processing Environment for developing imaging applications and for research and development of new image system. LookingGlass supports real-time live video processing from VideoForWindow compatible device, and also supports BMP, JPG, GIF89 and AVI or user can write a dll to support other vdo format or image acquisition device. LookingGlass can produce AVI file, sequence of BMP or JPG files, or just display images to screen, or users can write a dll to do what ever output they want. LookingGlass is derived from RobotVision2(ccs. neu. eduhomepsksvprv2.htm), so LookingGlass uses the pipeline idea and support using the same IP-DLL as RobotVision2. (by PongSuvan) LuaMat: An Image Processing Script Language - Image Processing script language based on Lua and OpenCV library. Includes common detection and segmentation algorithms. Can be used for rapid prototyping in interactive mode. Runs under Windows. Shareware. Matlab Pyramid Tools - MatLab tools for multi-scale (pyramid) image decomposition. This includes Laplacian pyramids, QMFswavelets, and steerable pyramids as well as fast convolution routines, histogram tools, and synthetic image generation. Matrox Imaging - Matrox Imaging Library (MIL) is a development toolkit for machine vision, medical imaging and image analysis. ActiveMIL, a collection of ActiveX controls for managing image capture, transfer, processing, analysis and display is bundled with MIL. Additional software includes Matrox Inspector, an interactive Microsoft Windows-based prototyping tool and an intelligent camera interface utility. Microsoft Vision SDK - Visual C library for vision which defines an image object and supports digitizer independent image acquisition. Mimas Toolkit - The Mimas Toolkit if an open source library that contains a variety of image processing, computer vision and mathematical tools. Mimass original emphasis was on real-time computer vision, although it has grown to encompass much more. It is actively supported by the Microsystems and Machine Vision Laboratory at Sheffield Hallam University, UK. (by Bala Amavasai and Stuart Meikle Microsystems and Machine Vision Laboratory ) MontiVision Development Kit - A DirectX-based development kit for vendor independent image and video processing applications, programmable via COM interfaces. Contains a free development environment. (commercial software) MRF image segmentation - Platform independent implementation of a Markov random field based supervised image segmentation algorithm. ( SZTE ) NeatVision: An Image Analysis Software Development Environment - NeatVision is a Java based image analysis and software development environment. It provides high level access to a wide range of machine vision algorithms through a well defined and easy to use graphical interface. NeatVision is distributed as a shareware product. NeatVision contains over 200 image and general data processing algorithms. Users can extend the core NeatVision library using the developers interface, a plug-in which features, automatic source code generation, compilation with full error feedback and dynamic algorithm updates. The Developers interface supports algorithm development based on Java AWT Imaging, Java 2D Imaging and Java Advanced Imaging. NeatVision is primarily an image processing application and offers an extensive range of image analysis and visualisation tools (these include zoom, pseudo colour, intensity scan, histogram and 3D profile mesh). In addition, the ability to read and write a wide range of image file formats is supported. ( Vision Systems Laboratory Dublin City University ) NeuroCheck - Commercial Windows-based image processing system for automatic presence verification, bar and DataMatrix code reading, character and pattern recognition, robot guidance and gauging. NeuroCheck is the complete framework for configuring and operating industrial visual quality control systems. Its powerful graphical tools enable the user to easily develop solutions within a familiar Windows - based environment to achieve rapid system integration into production line processes. ( DS GmbH ) NewCyber3D - Commercial software for OpenGL 3D graphics, GIS, stereo display, image processing, and visualization Nuages - A package for 3D reconstruction from parallel cross-sectional data. It uses the Delaunay triangulation. Optimas: Analytical Imaging - Complete commercial image-analysis program for Windows used in biological and industrial measurement environments. Optimas implements hundreds of measurement, image processing, and image management operations, all available from the graphical user interface. Optimas is designed for the imaging professional who needs the ability to prototype and quickly develop custom imaging solutions, and therefore includes an integrated development environment enabling one to record, edit, and debug macros. It is being used the world over to develop cutting-edge solutions to imaging problems. An Automation Server and Client (formerly known as OLE Automation) Optimas also allows itself to be controlled via VB or any Automation Client, and conversely can control Excel or any Automation Server via an elegant syntax. Help is richly linked and context-sensitive. ( Media Cybernetics ) PBMPlus - Image manipulation toolkit. This is the standard toolkit for Unix, it converts between dozens of formats. A version with many more features called NetPBM is also available, but may not be as easy to install. Some NetPBM patches are available. Perl Data Language - An extension to perl that implements fast, compact manipulation of large, N-dimensional data arrays for scientific computing and image processing. Phase-based estimation of the optical flow field - Implementation of the phase-based optical flow algorithm described in Gautama, T. and Van Hulle, M. M. (2002). A Phase-based Approach to the Estimation of the Optical Flow Field Using Spatial Filtering, IEEE Trans. Neural Networks, 13(5), 1127--1136. (by Temu Gautama Laboratorium voor Neuro - en Psychofysiologie, K. U.Leuven) PiXCL and geoPiXCL - A commercial image processing scripting language and Win9xNT2000 EXE builder for TWAIN scanner and digital camera image sources. geoPiXCL adds geographic imagery extensions. IP and geo library APIs are available. (by Stewart DIBBS) PixeLook - PixeLook is a powerful set of components for Delphi 6 for creating professional-looking image - and 2D-data processing applications. Features at glance: - Windows bitmap images (8-bit grayscale, 8-bit indexed color, 24- and 32-bit true color) are supported - Custom multichannel 2D-data of the following types: byte, 16-bit integer (unsigned, signed), 32-bit integer, 32- and 64-bit float) are supported. For example, you can define in your program 2D-data where each pixel is a vector of 10 32-bit float numbers. - Big images and data matrices are easily handled using Windows memory-mapped files concept - Components for visualization of single images, stereo images and image sequences with scrollingzooming capabilities are included - Components for 2D - and 3D-plots visualization are included - All visualization components can contain graphic layers - Graphic layers components (fully custom layers, layers of vector objects, raster layers) are included - Very sophisticated image viewer with image analysis tools (histogramthresholding, projections, profiles, aperture, surface, look-up-table transformations, scattergrams) is included - Plugin-based image processing procedures are supported - All drawing mouse handling is doing in world coordinates. It is no need to worry about current zoom level and scroller positions in the image window. RobotVision2 - real-time image processing software that uses any VideoForWindow(VFW) compatible camera as the image source (by Pong Suvan Northeastern University ) RobotVisionCAD - RobotVisionCAD(RvCAD) is an Image Processing Environment for developing imaging applications and for research and development of new image system. RobotVisionCAD(RvCAD) is an Image Processing Environment for developing imaging applications and for research and development of new image system. RvCAD supports real-time live video processing from VideoForWindow compatible device, and also supports BMP, JPG, GIF89 and AVI or user can write a dll to support other vdo format or image acquisition device. RvCAD can also produce AVI file, sequence of BMP or JPG files, or just display images to screen, or users can write a dll to output images to whatever device theyd like. RvCAD is similar to an electonic logic gate simulation Program. Users drag and drop RvCadProcessor components from the left tree view then connect them together to build an ImageProcessing pipeline. (by pong suvan ) Scion ImagePC - Scion frame grabber interface and image processing software based on NIH Image. Windows and Mac versions available. (free) Versions also available for Mac NuBus (inquire). (by Jeff Reidler Scion Corporation) Scorpion Vision Software - Scorpion is a windows-based commercial software package for industrial machine vision applications such as inspection. (by Thor Vollset) SDC Morphology Toolbox for Matlab - Matlab add-on: Gray-scale morphological tools for image segmentation, non-linear filtering, pattern recognition and image analysis: watershed, Euclidean distance transform, top-hat, reconstruction. (many real-life demonstrations) Sherlock Machine Vision Software - Machine vision and image processing package with intuitive user interface. For commercial machine vision tasks, but free demo allows unlimited use on image files. Sherlock software is used for rapid development of machine vision applications. Its vision algorithms include measurement, defect analysis, image processing, OCR, barcode reading, search, pattern recognition, etc. The graphical user interface makes it easy to set up sequences of algorithms for an application. It supports a wide variety of line - and area-scan cameras, digital and analog input and output, and frame grabbers. Sherlock programs can be wrapped using Visual Basic or OPC. The demo version is the full package but without support for image capture using a frame grabber. (ipd Coreco Imaging, Inc. ) SNVision SDK - A windows-based SDK for real-time recognition and tracking. (commercial software) Advanced object recognition and tracking technology for video surveillance, traffic monitoring, incident detection, biometric authentification. Locates multiple targets extremely fast at any angle scale or resolution. Tolerates noise and light variations. Real-time Image Processing using biologically inspired processing algorithms. (by Simon Thorpe Brain and Cognition Research Centre in Toulouse (France) SpikeNet Technology ) SpikeNET research: object recognition using spiking neurons - SpikeNET is a program designed for simulating very large networks of asynchronous spiking neurons able to perform object recognition (faces, digits. ) in natural images. (by Arnaud Delorme, and Simon Thorpe Swartz Center for Computational Neuroscience University of San Diego California) SpikeNet Technology - (Company) Vendor of SpikeNet, a biologically-inspired computer vision system for object detection, recognition, and related applications. (by Simon Thorpe Centre de Recherche Cerveau Cognition ) THBComponentware - THBImage - Commercial windows-based image processing library. Displays an image with the ability to align, stretch, scroll, zoom and pan it. PreviewScrollWindow for convenient scrolling. Magnification window to take a closer look to any part of the image. Popup menu to access all zooming functions. With databinding capabilities. Supports all common raster image formats BMP, PCX, JPG, TIF, PNG, TGA, PSD. Image processing operations like Resize, Rotate, Crop, Mirror, Brightness, Contrast, Invert. Filter operations like Antialias, Sharpen, Blur. Color Conversion. Easy printing. Clipboard support. Ole DragDrop. Image Annotation. Supports, VB, VC, MSAccess. Now with JPEG2000 AddOn - Add the new JPEG2000 compression codec to your application. The Delft Scientific Image Processing Library - DIPlib is a scientific image processing library written in C. It contains a large number of functions for processing and analysing multi dimensional image data. The library provides functions for performing transforms, filter operations, object generation, and statistical analysis of images. (by Michael van Ginkel, Geert van Kempen, Cris Luengo Hendriks, Lucas van Vliet Geert van Kempen Cris Luengo Hendriks Lucas van Vliet Pattern Recognition Group Delft University of Technology ) The Image Processing Tool Kit - Comprehensive set of image processing and analysis routines in the form of Photoshop-compatible plug-ins for Mac and PC, with extensive tutorial. (commercial package ) (by Chris Russ, John Russ ) TINA - A set of vision algorithm development libraries written in C TINA is the result of over 50 man years of vision research. It is a set of libraries providing various levels of infrastructure for people developing vision algorithms. It covers a wide range of activities, from low level image reading, writing and manipulation to complete algorithms for depth estimation from stereo pairs. TINA is used as a research tool by several vision research groups in the UK. It is written in C and following the EU funded OSMIA project it has recently been updated to use gnu autoconfigure and CVS source control, and to separate the core libraries from the user interface specific code. The TINA libraries have now been compiled and used on UNIX, Linux, Mac OS X and Windows under Visual Studio. Tracking moving object - Given a sequence of images you can identify target object and track their path. Exports positionspeed to excel spreadsheet (by Andrea Giacosi) Uratek - Software for real-time object tracking, gaze tracking, and camera motion estimation (by Philippe Guillemant Artificial Vision and Biophysics Group Polytechnic University School of Marseille) USB camera driver toolkit for LabVIEW - USB cameras and video capture devices are now included in the LabVIEW programming world. INVENTvisionVFW 1.0 gives you the power to view and capture any VFW (Video For Windows) video devices in any programming language that can interface to activex technology. INVENTvisionVFW can be implemented in VB, VC, G (LabVIEW) programming environments. This mean that USB cameras and video capture devices are now included in the LabVIEW programming world. This product integrates and works with LabVIEW Picture Control and IMAQ. A real-time overlay is display on the activex control placed on the LabVIEW front Panel. Images can be captured to a 2D ArrayU32, Visual Basic Picturebox, LabVIEW Picture Control or IMAQ Image. Images can be loaded from and saved to disk in BMP and JPG formats. (by George Miles INVENTeering ) Utah Raster Toolkit - UNIX commands and C libraries for an 8 bitspixel, 1-255 channel image format. Contains a nice display tool for X11 its fast, supports animation and zooms in on any image. Wes Barris URT extensions are quite useful too. UTHSCSA ImageTool - A free image processing and analysis program for windows. UTHSCSA ImageTool (IT) is a free image processing and analysis program for Microsoft Windows 9x, Windows ME or Windows NT. IT can acquire, display, edit, analyze, process, compress, save and print gray scale and color images. IT can read and write over 22 common file formats including BMP, PCX, TIF, GIF and JPEG. Image analysis functions include dimensional (distance, angle, perimeter, area) and gray scale measurements (point, line and area histogram with statistics). ImageTool supports standard image processing functions such as contrast manipulation, sharpening, smoothing, edge detection, median filtering and spatial convolutions with user-defined convolution masks. IT also has built-in scripting capabilities that allow the user to record repetitive tasks and playback saved scripts to automate image analysis. VASARI Image Processing Software - An optimised library in CC running on Unix. Its strengths are handling high-resolution images and colour spaces. Automatically parallel on SMP systems. ( Intelligence Agents and Multimedia Research Group (IAM) University of Southampton, UK) Video OCX - Windows-based interface for easy integration of video capture into your applications. It supports VFW video devices (USB cameras or framegrabber) AND AVI sequences as image sources. ( vision pearls GbR ) VideoOCX - VideoOCX functions in an ActiveX programming environment and allows you to easily integrate video capture and image processing capabilities into your software program. (commercial software) VideoOCX Video Capture and Image Processing Capabilities VideoOCX functions in an ActiveX programming environment and allows you to easily integrate video capture and image processing capabilities into your software program. VideoOCX is compatible with all Video-for-Windows (VFW) devices, such as USB cameras (webcams) and framegrabbers in conjunction with a CCD camera or camcorder. VideoOCX allows you to capture video in one simple step. Just drop VideoOCX into your programming application, change a few properties, add a few lines of code and you are ready to go. VideoOCX works smoothly in any ActiveX hosting environment, such as Visual Basic, Visual C, FoxPro and Delphi. VideoOCX applications range from professional scientific image processing and surveillance to computer vision and general multimedia programs. VIPS image processing system - free image processing library and interface for unix, mac and windows (Scientific Department National Gallery, London) Visiopharm Integrator System - A commercial, database-driven image analysis system aimed at medical image analysis. VIS is a database-driven image analysis system, which is fully configurable and extensible. In its standard configuration, VIS is equipped with a wide range of modules for viewing, montage, and segmentation of images. Measurement results from these modules are automatically stored in the built-in database, making data management an integrated part of the work flow. Custom developed image analysis software is provided as plug-in modules and seamlessly integrated into the VIS user-interface. Vista - A flexible library of C-routines, command-line filters, and Motif widgets for image representation and manipulation. Visus Imaging - Image analysis toolkit and complete systems aimed at researchers and microscopists in Biomedical and Material Sciences. (commercial product ) (Foresthill Products) WiT - Visual programming environment for image processing (demo). XCaliper - Commercial Windows NT software toolkit for machine vision and thermal imaging applications. ( FSI Automation ) XMegaWave, an Image Processing Environment - a freeware graphical windows environment oriented towards image processing, where the user can create his own function in a very easy way. Some european universities have developed a freeware image processing environment, named XMegaWave (XMW). It runs on Unix workstations or Linux machines, running Motif and X11 windows libraries. XMW includes some classical procedures for image processing (edge detection, segmentation, morphological filters). But the important thing is that XMW is also a programming library, where the user can implement his own image processing algorythm in C in a very very very easy way. The time needed to write the code and debug it is very short, so you can obtain results rapidly. Besides, XMW is a pedagogic tool suitable for using in image processing classes. It can be explained in just one class, and the students can easily implement any kind of image filter. (Image Mathematical Analysys Group (AMI) University Las Palmas ) Display Tools 3DViewnix - Demo of a commercial package. FP Image - ViewProcess Floating Point and integer images in Windows 9598NT. Formats include DICOM and user defined formats. Includes a image processing scripting language. FP Image for Windows - ScientificMedical imaging software. Formats include floating point, integer and DICOM. Built-in image processing scripting language, batch processing, 3D solid modeling. ( FP Image ) FreeImage - FreeImage is an Open Source project for developers who would like to support popular graphics image formats like BMP, JPEG, TIFF, PNG, RAS, PNM, PCX, TGA in their C applications for Windows. (by Floris van den Berg, Herv Drolon) GD - a graphics library for GIF creation - provides GIF readwrite code in a C library. It also provides minimal image manipulation functions (lines, arcs, text, colors). Includes versions for Unix and Windows systems. (by Thomas Boutell Boutell ) GNU Image Manipulation Program (GIMP) - Photoshop-style image editor. ImageMagick - Load, display, process, save, and convert images in many formats. Works on Unix, Linux, Windows, and Mac. Includes a display program, a converter, screen capture, animator, and more. JPEG - Library source code and simple display tools. JpegDicom library - MFC source code for jpegdicomtwain (commercial, but limited free version available) C MFC source code for Dicom, Jpeg, Dib codecs plus TWAIN manager. Up to 32 bits per channel (96 bpp in RGB mode), 12-16 bits per channel jpeg codec. (by Paolo Brandoli) Mesa - Mesa is a 3-D graphics library with an API which is very similar to that of OpenGL. MPEG-1 player and encoder Also: FAQ and fancy VCR-like interface using Motif. NIH Image - for Macintosh TIFF - Library source code and tools VisGenie: a Generic Video Information Visualization System - VisGenie is a Generic Video Information Visualization System VisGenie is a generic video based information visualization system on computers running Microsoft Windows operating systems, capable of rendering video data in a manner suitable for the research development purpose instead of entertainment, and visualizing the associated metadata streams. (by Yong Wang, Lexing Xie, and Shih-Fu Chang Digital Video Multimedia (DVMM) Columbia University ) Volumetric Image Display and Analysis (VIDA) - Demo of a commercial package. XAnim - X11 display tool. Supports many animation and image formats (everything except mpeg). Notes on integrating xanim with Web clientsMIME are also available. XLI - X11 display tool. Not as featureful as xv but it understands nearly all the same formats and displays images much more quickly. Source archive is available. XV - X11 Image Display tool. Provides an amazing assortment of image operators, reads and writes images in many different formats. Ygl - Emulation of SGI GL library for X11. Synthetic Data Generators Persistence of Vision - Ray Tracer. Philip Torrs stereo vision code - routines to generate synthetic data for testing and evaluating fundamental matrix estimation algorithms (by Philip Torr Machine Learning and Perception Group Microsoft ) Radiance - Ray tracer Produces floating point photometrically accurate images, with emphasis on good light source modeling. Random dot stereogram generators - Pictures, programs, and information on single image random dot stereograms. Ray Tracers - A nice summary of free ray tracers. (by Eric Haines) Rayshade - Ray tracing renderer. Generates realistic 2D images from a text description of a 3D world. Supports texture mapping, surface (heightfield) rendering, multiple light sources, defocus, animation and more. Synthetic Fingerprint Generator - SFinGe is a novel method for the generation of synthetic fingerprint images (sfinge is the Italian for sphinx). Gabor-like space-variant filters are used for iteratively expanding an initially empty image containing just one or a few seeds. A directional image model, whose inputs are the number and location of the fingerprint cores and deltas, is used for tuning the filters. Very-realistic fingerprint images are obtained after the final noising-and-rendering stage. ( Biometric Systems Lab University of Bologna) Mathematical Toolkits CGAL - Computational Geometry Algorithms Library - C library of geometric primitives and standard data structures and algorithms used in computational geometry. The CGAL project is a collaborative effort to develop a robust, easy to use, and efficient C software library of geometric data structures and algorithms. The CGAL library contains: - Basic geometric primitives such as points, vectors, lines, predicates such as for relative positions of points, and operations such as intersections and distance calculation. - A collection of standard data structures and geometric algorithms, such as convex hull, (Delaunay) triangulation, planar map, polyhedron, smallest enclosing sphere, and multidimensional query structures. - Interfaces to other packages, e. g. for visualisation, and IO, and other support facilities. For further information and for downloading the library and documentation, please visit the CGAL web page: cs. uu. nlCGAL Should you have any questions or comments, please send a message to cgalcs. uu. nl ( CGAL Consortium ) levmar: Levenberg-Marquardt non-linear least squares algorithms in CC - CC implementations of four Levenberg-Marquardt (nonlinear least squares) flavors. Package includes double and single precision versions, both with analytic and finite difference approximated jacobians. ( Computational Vision and Robotics Lab Foundation for Research and Technology - Hellas ) Netlib - Public domain collection of mathematical software, papers, and databases. Mostly in Fortran, but f2c (included in netlib) converts Fortran to C. Numerical Recipies - Public Domain code for the famous book (only some of the code is public domain). Reviver - A Practical Provable Surface Reconstructor - Free software that takes unorganised point clouds as input and produces 3D models automatically in various industry standard formats (runs on Unix and Windows) Scilab - A free scientific software package for numerical computations providing a powerful open computing environment for engineering and scientific applications. Developed by researchers at INRIA and ENPC. StatLib - Statistical software, datasets, and information. 3d Model compression - Mesh Compiler is a Windows application which converts 3d models to very compact VRML 2 files. Concurrently to GZ compression, the size of a 3d model can be further reduced by a typical factor between 3 and 10. Mesh Compiler compiles and optimizes 3d models to script controlled active content files. The model layers are separated into unconnected parts to be saved in own local coordinate systems. (by Lothar Muench (Next Dimension Imaging) Next Dimension Imaging ) Carina - commercial package for recognizing license plates (Adaptive Recognition Hungary) DIVA 3D - Diva3D for Windows is a software package for digital video processing and analysis. Grabbo: vision-based MIDI controller - Grabbo uses orientation histograms for realtime image matching and 3D interpolation. MIDI output. Free demo version for BeOS. (Tebo Software) IEEE-1394 Digital Camera Windows Driver - Windows device driver and CC software library for IEEE-1394 digital cameras. The web site also contains a demo program, documentation, example images, links, and other information. IEEE-1394 digital cameras are an ideal solution for acquiring high quality images with a regular laptop computer. (by Iwan Ulrich Mobile Robot Programming Lab Carnegie Mellon University ) MeteorCapture - Application to capture video to memory or disk using PC and Matrox Meteor (written using Visual C). (by Ross Cutler Computer Vision Lab UMCP) Modular Flow Scheduling Middleware - An open source, windows-based framework for developing programs with good software engineering qualities. It has been used for developing real-time vision applications. Modular Flow Scheduling Middleware is an open source implementation of a generic, modular, extensible software architecture for dataflow processing of datastreams. It provides a framework for the implementation of algorithms and development of applications with desirable software engineering qualities, such as efficiency, scalability, extensibility, reusability, interoperability. (Windows - VC) (by Alexandre RJ Francois IMSC IRIS University of Southern California ) PicDB - an image database system with query by image content capabilities. Renoir - 3D reconstruction from photos - 3D reconstruction from photos. 3D photomontage. ( payware - free demo version available). Mainly useful for computer graphics, but uses some computer vision techniques Model of an object is created manually from parametric blocks. Corresponding edges are marked on images and model. Camera and model parameters are reconstructed through minimization of distance between projected edges of model and corresponding edges, marked on photos. (by Ildar Valiev Integra, Inc. ) Scion LG-3 Linux Driver - A driver and SDK for using the Scion LG-3 card under Linux. GPL source code is included. Verifinger - Fingerprint processing and recognition - SDK for fingerprint processing and recognition ( Neurotechnologija Ltd. ) VisualMouse - Our software translates users head motion into the motion of the cursor on the screen, by processing the image from a web cam Zaxel 3D Imaging Systems - Zaxels 3D Imaging Systems create an infinite number of virtual cameras around the object or moving subject from a limited number of real camera inputs. Computer Vision Homepage (last updated Thu Jun 30 13:45 EDT 2005) Text only version of this page. Please submit new links using our forms interface or send email to visioncs. cmu. edu. visits since so far.

No comments:

Post a Comment