2. Projenin Amacı
• Gerçek zamanlı görüntü işleme
• Çoklu görüntülerden panorama oluşturma
• Hedef takip sistemi
3. Donanım Tasarımı
• Fikri Mülkiyet (Intellectual Property – IP)
– Teknolojiden bağımsız
– VHDL/Verilog dilleri
– Gerçek zamanlı işlem hızı
• FPGA prototip
– DDR3, Ethernet/PCIe arayüzleri
6. Öznitelik noktalarını bulma
• ORB (Oriented FAST and Rotated BRIEF)
–
–
–
–
–
–
Orantıdan bağımsız (scale invariant)
Bakış açısından (dönme) bağımsız (rotation invariant)
Parlaklıktan bağımsız (brightness/contrast invariant)
Gürültüye karşı dirençli
Nokta seçiminde FAST
En güçlü noktalar:
• Harris cevabına göre
• Yönelim (orientation) hesaplarına göre
Görüntü-1 öznitelik noktaları
Görüntü-2 öznitelik noktaları
7. Görüntü eşleme
(Image matching)
• RANSAC (Random Sample Consensus)
– Eşleşmeyen veya zayıf eşleşen noktaların elenmesi
• Eşleşen noktalar arası ‘Perspektif Matrisi’ hesabı
Eşleşen noktalar
12. Çoklu kanal harmanlama
(Multi-band blending)
• Kenar kararmaları, paralaks etkisi düzeltme
Çoklu kanal harmanlama yapılmadan
Çoklu kanal harmanlama yapılarak
15. FPGA Doğrulama
• Kamera ve PC (ethernet/PCIe) arayüz
• Chipscope doğrulama ortamı
• Gerçek zamanlı test
16. Demolar
• Yazılım üzerinde gerçekleme demosu
• FPGA demoları
– Öznitelik noktaları bulma
– Görüntü sabitleme
– Temel panorama oluşturma
– Tüm sistem gerçeklemesi
19. Proje çıktıları
•
•
•
•
•
•
Yazılım kaynak dosyaları
VHDL/Verilog kaynak dosyaları
RTL doğrulama ortamı
FPGA doğrulama ortamı
Mikro-mimari dokümanı
Test ve kullanım kılavuzu
21. İş Paketi – 1) Algoritma Seçimi
• Olası algoritmaların OpenCV üzerinde test edilmesi
• Test sonuçlarının hız, verimlilik karşılaştırması
• Seçilen algoritmanın kayan noktalı sayı biçiminden sabit
noktalı sayı biçimine çevrilmesi
• Sabit noktalı sayı biçimine çevrilen algoritmanın kayan noktalı
sayı biçimindeki hali ile karşılaştırılması ve test edilmesi
22. İş Paketi – 2) Ön Çalışma
•
•
•
•
•
Algoritmanın incelenmesi
Genel donanım mimarisinin belirlenmesi
Algoritmanın donanım tasarım yöntemlerinin incelenmesi
Algoritma sistem dokümanının hazırlanması
Proje veri tabanının hazırlanması
23. İş Paketi – 3A) Donanım Tasarımı
• Fikri Mülkiyet (IP) tasarımı
– RTL donanım tasarımı
– Test ortamının hazırlanması
– RTL testlerin belirlenmesi ve RTL Doğrulama Planı
dokümanı
– RTL testlerin yapılması ve hataların ayıklanması
– Mikro Mimari Dokümanı (MAD) hazırlanması
24. İş Paketi – 3B) Donanım Tasarımı
• FPGA prototip tasarımı
– Üst seviye tasarımı
– Arayüz tasarımları (PCIe, Ethernet, DDR3)
– Geçici FPGA tasarımın hazırlanması
– FPGA test ortamının hazırlanması
– FPGA testlerinin belirlenmesi ve FPGA Doğrulama Planı
dokümanı
– FPGA testlerinin yapılması
– FPGA sentez, yerleştirme ve bağlama (P&R) işlemleri
– FPGA statik zaman analizi (STA) yapılması
25. İş Paketi – 4) Yazılım Tasarımı
• PCIe arayüzden gelen bilgileri işleyen temel
fonksiyonel yazılım tasarımı
• Temel tasarımın test edilmesi
• PCIe arayüz sürücü tasarımı
• Fonksiyonel ve arayüz bölümlerinin entegrasyonu ve
performans testleri
26. İş Paketi – 5) Gerçek Ortam Testleri
•
•
•
•
•
DDR3 arayüzün geçici FPGA prototip ile test edilmesi
PCIe arayüzün geçici FPGA prototip ve yazılım ile test edilmesi
Ara demoların FPGA prototip ile test edilmesi
Tüm sistemin gerçek FPGA prototip ve yazılımla test edilmesi
Kullanma Kılavuzu hazırlanması
Bu projekapsamındagerçeklenecekyapıdonanımtabanlıolup 1920x1080 yüksekçözünürlüğekadardestekverebilenesnekbiryapıdavegerçekzamanlıişlemyeteneğinesahipbirürünolacaktır. Bu da buprojeninyenilikçiveözgünyönünüoluşturur.Ana fikir, insansızya da pilotluhavaaraçlarındabulunangözetlemekameralarındanalınangörüntüleringerçekzamanlıolarakbirleştirilmesivebusayedebirbölgeninyüksekçözünürlüklüpanoramikgörüntüsününeldeedilerek o bölgenintaranmasıveolasıhedeflerintümbölgedenasılkonumlandığınınbelirlenmesi, hedefindoğruseçilerekhatalısaptamalarınönünegeçilmesidir. Ayrıcasınırgüvenliğiaçısındansınırınyüksekçözünürlüklübirleştirilmişgörüntülerinineldeedilerekolasıihlallerintespitiçokönemlidir.Bu projedetasarlanacakalgoritmanınbirbaşkaözelliği de nesnetanımaveizlemeyeteneğidir. Bu sayedebiryandan video kareleribirleştirilerekyüksekçözünürlüklüpanoramikgörüntülereldeedilirkenbiryandan da seçilenbirya da birdenfazlahedef de aktifgörüntüiçerisindetaranaraktespitedilebilirveizlenebilir.
Algoritma, teknolojidenbağımsız (ister FPGA ister ASIC olarak) şekilde VHDL/Verilog donanımdilleriyletasarlanır. Tasarımaşamasımodülerbirşekildegerçekleştirilirve her modülayrıayrı test edilirvebirleştirilir.Prototipolarakkullanılacak FPGA tasarımıngereklerinikarşılayabilmeküzerepiyasadaki en gelişmişözellikleresahipürünlerarasındaseçilecekvegünümüzteknolojisindekullanılan en popülerarayüzlerden HDMI, DDR3 vePCIearayüzünükullanılacaktır.
Projedegerçeklenecekgörüntüişlemeişlemleriiçinliteratürdetanımlananolasıalgoritmaadaylarıhız, görüntüeşlemeiçinbulduğuanahtarnoktasayısı, bulunananahtarnoktalarınkalitesi, donanımgerçeklememaliyetigibikriterlerdikkatealınarakOpenCVortamıüzerindekarşılaştırılırve enuygunolanıseçilir. Seçilenbualgoritmayazılımaçıkkaynakkodluolduğuiçin, donanımtasarımınauygun hale getirmeküzere, kayannoktalısayıbiçimindensabitnoktalısayıbiçimineçevirilir. Sabitnoktalısayıbiçimidonanımtasarıma en uygunbiçimolduğuvekayannoktalısayıbiçiminegöreçokdahahızlıvedahatasarımmaliyetliolduğuiçintercihedilir. Son olaraksabitnoktalısayıbiçimineçevirilenalgoritmakayannoktalıorijinalhaliyleçeşitlitestleryapılarakkarşılaştırılır. Çünküalgoritmayısabitnoktalı hale çevirmekbazıaradeğerleriyuvarlamayanedenolur,dolayısıylabazıkayıplaryaşanır. Buradadikkatedilmesigerekenbukayıpların en azaindirgenerekihmaledilebilirdüzeydetutmaktır.
Projeiçinseçilenalgoritmanınincelenmesiveişlevinin, barındırdığıfonksiyonlarınnasılçalıştığınınanlaşılmasıdonanımtasarımıiçinçokönemlidir. Algoritmaincelendiktensonragerçekzamanlıveyüksekçözünürlüklü video karelerininişlenmesiiçingereklidonanımmimarisikararlaştırılır. Bu da projedekitasarımıngenelmimarisinibelirler. Yazılımyoluylatasarlanmışalgoritmadonanımhalinegetirilirken her birfonksiyontektekincelenerekuygungerçeklemeninyapılmasışarttır.Buyüzdendahasonratasarımayrıntılarınainilerekalgoritmadaki her birfonksiyonundonanımdanasıltasarlanacağıveveriakışınınnasılolacağıbelirlenir. Son olaraktümprojeverilerininbelirliyerlerdedurmasıvetümprojeçalışanlarınınerişimineuygunolacakveekipçalışmasınaolanaksağlayacakbirveritabanınınoluşturulmasıişlemiyapılır.
Fikirdonanımauygunhalde VDHL/Verilog donanımtanımlamadilleriyle RTLolaraktasarlanır. Sonrasındabuaşamadakitasarımın test edilmesiiçingerekli test ortamınıntasarımıyine VHDL/Verilog donanımdilleriyleyapılır.Tasarımındoğrulanmasıiçintümözelliklerinin test edilmesigereklidir. Bu yüzendetaylıvetümözelliklerini test edebilecekşekildetestlertanımlanırvedokümantasyonuyapılır.Test ortamıhazırlanmışvetestleritanımlanmıştasarımartık test edilmeyehazırdır. Bu testler PC ortamındaModelsim/Ncsimgibibenzetim(simulasyon) araçlarıyardımıylayapılırve test sonucundaçıkacakhatalarayıklanarakdüzeltilirveyeniden test edilir. Bu kısımtümhatalardüzeltilenekadardevameder. Bütüntanımlıtestlerdengeçen IP tasarımıprototipegitmeyehazırdır. Bu aşamasonundatasarımıntümbloklarınıdetaylıbirşekildeanlatanMikroMimariDökümanı (MAD) hazırlanır.
ÖnceFPGA'inüstseviyetasarımıyapılır. Bu kısımdasaat, reset devreleri, arayüzsinyalleri, modüleryapılar, FPGA sinyalyapısı (pinout) gibiişleryapılır. Dahasonra FPGA prototipindışdünyailebağlantılarınısağlayanarayüz (PCIe, HDMI, DDR3) tasarımlarıgerçekleştirilir. Dışdünyaylahaberleşmetestleriningerçekortamdayapılabilmeleriiçingeçicibir FPGA prototiphazırlanır.RTL ortamındanfarklıolarak FPGA prototipin de kendineözgütestlerive test ortamıbulunmaktadır. Bu testler ilk aşamadakitestlerlebenzerlikgösterebileceğigibifarklıolarakartıkprototipinişlevlerini de test etmeyeyönelikhazırlanır.FPGA tasarımındoğrulamasınayöneliktestlertanımlandıktanve FPGA DoğrulamaPlanıdokümanıyazıldıktansonraartık FPGA testlerikoşturulabilir. Bu testler de yine PC ortamındaModelsim/Ncsimgibibenzetimaraçlarıylayapılır. Tümtestlerdengeçentasarımseçilen FPGAtürünegöre Xilinx/Altera gibifirmaların ISE/Quartusaraçlarıylasentez, yerleştirmevebağlama (P&R) işlemlerindengeçirilirvestatikzaman analizi(STA) yapılır. Artık tasarım gerçek ortamda FPGA içine yerleştirilmeye hazırdır.
Öncelikle temel işlevsel tasarım yani gelen görüntü bilgilerini ve donanımın bu görüntübilgilerini işleyerek elde ettiği bilgileri alarak bu bilgileri işleyen ve görüntü karelerini donanımdan gelen bilgilere göre görselleştiren yazılım tasarımıC++ yazılım diliyle yapılır. Daha sonra bu tasarım donanımdan gelen bilgileri taklit eden bir test ortamıyla (yine yazılım üzerinde tasarlanacak) testedilir.Yazılımın donanımla haberleşmesi PCIe arayüz üzerinden yapılacağı için yazılım tarafında bu arayüz için bir sürücü yazılması gereklidir.Sürücünün yazılımı bitince bu paketten "Gerçek ortam testleri" paketine dallanılır ve tasarlanan sürücü gerçek ortamda gerçek PCIe arayüz ile testedilir.Tüm testler ayrı ayrı tamamlandıktan sonra temel işlevsel tasarım ile PCIe arayüzü sürücü tasarımı birleştirilir.
İlk olarak FPGAprototipi için hazırlanan arayüzler (HDMI, DDR3, PCIe) geliştirme kartı üzerinde test edilir. PCIe arayüz testi diğerlerinden farklı olarak yazılımdatasarlanan PCIe sürücü ile test edilir.Tüm sistem tasarlandıktan ve PC ortamında test edildikten sonra gerçekleme ortamında FPGA Doğrulama Planı dokümanında belirtilen testlerdengeçirilir. Bu aşamadan sonra artık FPGA prototipi müşteriye sunmaya hazırdır. En son FPGA prototipin ve bu prototip için hazırlanan yazılımınkullanma kılavuzu hazırlanır.