Image process

Başlatan z, 07 Şubat 2016, 14:59:18

Mucit23

Cmucam5 Pixy isimli kamerada da lpc serisi bir mcu var. Konum tespiti vs yapıyor

Karamel

ben daha suan image processing dersini almadigimdan konuyu tam olarak anlayamiyorum ama herhalde basit dusunce ile yani for while gibi loop operatorler ile ram deki bilgileri basit mantik ta islemiyorlar. daha farkli algorithm yontemleri olmali. (for while kullanmiyorlar demiyorum. mesela tum resmi siyah beyaz yapmak icin farkli bir algorithm kullaniyor olmalilar)

Mucit hocam. sizin stm32f7 deney pcb si ile linkteki urunlerin yaklasik iki kati daha fazla isler yaptirilabilmesi gerekli. bu sey beni heyecanlandirdi hercekten. ::) z hocamiz insallah oncesinde projesinde basarili olur. bir kac sene icersinde siz ve bende image processing lecture ina yazilmis oluruz. belki bizlerde iyi projeler cikartabiliriz ::)

z

@sovalye

Şu senin programın algoritmasından biraz daha bahsetsene.

Şimdi kafamı karıştıran konu şu.

Doğru parçası yüzlerce noktadan oluşuyor. Pixellerin digital konumları gereği eğimi en hatasız olarak iki uç noktanın koordinatından hesaplayabiliriz.

Biraz daha detay rica ediyorum. Kodları adım adım izleyip algoritmayı anlamaya üşendim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

engerex

Alıntı yapılan: leblebitozu - 13 Şubat 2016, 19:17:34
stm32f427 ile yapılmış opensource imaj tanıma modülü

https://openmv.io/

Stm32 f427/429/469 da grafik işleme ünitesi var. Donanım yardımcı oluyordur.

Mucit23

Alıntı yapılan: engerex - 14 Şubat 2016, 15:50:17
Stm32 f427/429/469 da grafik işleme ünitesi var. Donanım yardımcı oluyordur.

Dma2d var ama onun grafik islemede yardımcı olacağını sanmam

sovalye

#35
@z projenin neresinde kullanacağınızı bilmiyorum ama bu verilerin gerçek hayattan bir algılayıcılarla toplandığını farz ediyorum. Bu durumda gelen kordinatlar bir doğrunun sonsuz noktasından biri olmayacaktır. Sadece tüm noktalara baktığınızda bunların bir doğruyu ima ettiğini söyleyebilirsiniz. Elinizde x leri farklı olmasına rağmen y leri aynı olan noktalar olacak bunlara bakıp eğim 0 mıdır diyeceksiniz?  Veya 3 nokta sistemin kalanının aksine çok hızlı artmış sonraki veriler normal eğime 200 diyemezsiniz.

Mesela yukarda x noktaları kesinlikle y=2*x+3 gibi bir doğruyu ima ediyor ama sizin bunu iki noktaya bakarak bulma ihtimaliniz imkansıza yakın.

Hocam anlamadığınız yeri söylerseniz daha rahat yardımcı olabilirim. Yine de adım adım yazayım.
1. Random denklem atamak. H(x)=a* x+b
2. Hata fonksiyonu belirlemek. İşlem kolaylığı için hata fonksiyonu quadric olsun dedik. Her x noktası için h(x)-y 'ye baktık.
3. Hata fonksiyonumuzun gradient ini aldık.( h(x) grafiği üzerinde x noktasındaki eğim)
4. Bu gradienti bi Learning rate ile çarpıp denklemimizde ki katsayılardan çıkarttık amacımız hata fonksiyonun min. Değerini aldığı noktaya doğru yolculuk yapmak. Şimdi a ve b değiştiği için h(x) ve doğal olarak hata fonksiyonu değişti. Bunları tekrar hespladık.

5. Bu işlemi hata fonksiyonu üzerindeki noktanın eğimi 0 a yakınsayana kadar devam ettirdik.

NOT: önceki mesajım da bahsettiğim şeyleri içeren döküman var. İsim olarak yazdığım fonksiyonların matematiksel tanımlarına ordan bakabilirsiniz. Burda düzgün durmayacaklar diye tekrar yazmadım.

z

Gradyan vs okulda bile görüp görmediğimden emin olamadığım kavramlar. Bahsettiğin konuyu hemen anlayamayacağım.

Neyse görüntü işleme ile ilgili olarak donanım bitti. Umarım tekrar bu kısma müdahale etmeme gerek kalmaz.
Şimdi artık görüntü işleme rutinlerini yazmaya başlayabilirim.

https://www.youtube.com/watch?v=s0VFHqJ0f_0&feature=youtu.be
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Karamel

#37
hocam siz linear regression ile imaginary bir line olusturup. chip in acisini bulabilirsiniz?(bunu advanced math kitabinda okumustum)

https://en.wikipedia.org/wiki/Linear_regression

mesaj birleştirme:: 15 Şubat 2016, 23:05:57

sanal line in acisini 90 yada 0 gibi birsey yapana kadar dondururseniz. bence olmamasi icin bir sebep yok ama linear regression bu is icin uygunmu suan tam olarak kestiremiyorum belki daha uygun yada tutarli bir mantik olabilir. suan ben ise sadece matematiksel olarak yaklastim ::)

mesaj birleştirme:: 15 Şubat 2016, 23:18:02

hocam birde sizin image processing sistemi sanirim biraz yanlis isliyor. nedenide su.

siz perfect bir sekilde isiklandirilmis yerde calisiyorsunuz. halbuki sizin aletin asagidaki  gibi seyden micorocntrollerlari alip. programlayayip. ya geri birakmasi lazim. yada yeni bir yere koymasi lazim. ilk yerdeki microcontroller sayisini yani program yapilacak microcontroller sayisini sayabilmesi lazim?



image processing library leri nasil calisiyor simdi birde buna bakalim.

https://www.youtube.com/watch?v=w6gs10P2e1k

https://www.youtube.com/watch?v=z1Cvn3_4yGo

sizin sanirim objeyi yukaridaki gibi tanimlayabiliyor olmaniz gerekli. tamam bende herseyin library kullanilarak yapilmasina karsiyim ama zor sartlar altindada iyi seyler basarabilen birsey yapabilmek gerekli. diye dusunuyorum  :-\

sovalye

#38
@z hocam, cost function dokuman da var. Gradient tanimi da



Bu sekil de. Algoritmayi da adim adim yazdim. Dogru denklemi icin kullanilabilecek kodu da ekledim. Eger uygulamaya uymazsa size gore duzenlemeye calisirim.

@Karamel, yukarda linear regression konusuyorduk. Algilayicilardan gelen noktalar kumesi mukemmel  olmayacaksa en mantikli yontem linear regression oluyor. Ki mukemmel olsa linear regression da birkac cycle da hesaplar bitirir.

berat23

curve fitting iterative bir işlem değil ki gradient descent ile train edelim. en basit curve fitting metodu lms'dir. matematiksel olarak bakarsak pseudo inverse alabilmek yeterli. tek dezavantajı ram ihtiyacı fazla olacaktır fakat bu sorunun yakışıklı çözümü budur.

şu bakış yanlış, daha önce binlerce kez yapılmış, artık nasıl olduğu lebaleb bilinen bir iş için algoritma geliştirmek beyhude. zevk için belki uğraşılır fakat ben olsam enerjimi başka işlere harcardım. ayrıca şu da var, dünyada binlerce bu tip yapılmış iş var, yol da belliyken basitçe çözülebileceğini sanmak gerçekçi değil.

sovalye

#40
Ornekler duzgun olursa ki burada yeterince duzgun olur, gradient descant buyuk bir matris(ornekleri resim dosyasindan aliyoruz) icin (X^T * X)^−1 *X^T * Y 'i hesaplamaktan daha cabuk sonuc uretir diye dusunuyorum. Cunku hem bizi hedef denklemden uzaklastiracak alakasiz noktalar cok az sayida olacak hem de istedigimiz hassaslik cok fazla değil. z hocanin tasarladigi sisteme gore belki virgulden sonraki ikinci basamak bile onemsiz olacak. Bu yuzden gradient i sifira cok yakinsatmamiza gerek yok.
X sirasiyla x kordinatlarini Y sirasiyla y kordinatlarini iceren matrisler. X^T: X matrisinin transpozu

Edit: ayrica oldu da (X^T * X) non invertible cikarsa hos olmayacaktir. z hocamiza birinin harici matematik kutuphanesi kullanmasi gerektigini yada pinv fonksiyonunu tekrar icat etmesi gerektigini soylemesi lazim :)

z

Çok güzel diyorsunuz da ben mektepte görüntü işleme diye bir ders almadım.  Mevcut teknikler nelerdir onları da bilmiyorum.

Siz takır takır şöyle yap falan diyorsunuz da bana gerçekten bir şey ifade etmiyor. Görüntü işleme konusunda bir kitap alsam bu kitabı yalayıp yutmamkim bilir kaç ayımı alır.

Eğer gerçekten basit bir işlemse beni bu dertten kurtarın bir fonksiyon yazıp bunu dll yapın. Ya da ben mantığım doğrultusunda bu soruna kendi çözümümü üreteyim.

Dll yazmak isterseniz ben size AxB boyutlarında siyah beyaz çip görüntüsünü saklayan arrayın adresini vereyim. Sizde burdan dataları çekin ve geri dönüş olarak açıyı verin.

Örnek çip görüntüsü isteyenlere bmp dosya verebilirim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

OG

Renksiz (siyah beyaz) resimlerde netlik daha yüksek olur. Kameranın monochrome seceneği varsa denenebilir.

Işık,
Belkide beyaz led ışığı değil de atıyorum sarı ışık daha güzel sonuç verebilir. Beyaz ledler biraz melez yapıdadır, üstünde fosfor tabakası falan var, netliğe olumsuz etki.

Veya yine atıyorum IR gibi konular da dikkate alınabilir, ortam ışığından daha az etkilenebilir.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

z

IR dahil değişik renkler denedim. Metal çip bacaklarının yansıttığı fakat çip gövdesinin yansıtmadığı durum ancak homojen aydınlatma ile oluyor bu durumda rengin çok önemi kalmıyor.

Çip yüzeyi siyah olmasına rağmen parlak ışınlar çipin siyah yüzeyinden de yansıyor. Bu da işleri karıştırıyor.

Bu projede can alıcı kısım yaptığım aydınlatma şekli. Çok yumuşak bir ışık tonu elde ettim. Hiç bir yerde parlama yapmıyor.

Biraz önce KIICDDE algoritmamı geliştirdim.

Bu algoritma tamamen mantık üzerine kurulu. İlk okul aritmetiği yeterli oldu.

https://youtu.be/hklYOFRIcLI
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Videodan da görüleceği üzere bir şerit alıp bu şeridi ayrı bir pencerede gösterdim. Algoritmayı geliştirirken kafa karıştırmasın diye bu yola başvurdum. Ayrı bir pencereye şerit almaya gerek yok asıl çip görüntüsü üzerinde de yapılabilir. Bu durumda görüş alanında çip yok  mesajı vermeme de gerek kalmaz. Zira mekanizma çipi alıp kamera önüne getirdiğinde çip muhakkak kamera görüş alanına girmiş olur.

Hatta algoritmanın bu halinde  çipin sadece bir taraftaki bacaklarını gözleyerek çipin düzgünlüğüne baktım. İşi garantiye almak adına aynı algoritma
4 bir yandaki bacaklar için ayrı ayrı işletilebilir.

Fakat mevcut yapıyı daha da karmaşıklaştırmanın çok da alemi de yok.

Çalıştıysa kurcalama.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com