Gönderen Konu: yardim (imaj tanıma)  (Okunma sayısı 4587 defa)

yardim (imaj tanıma)

« : 30.09.2005 01:08:09 »
Hızlı düğmeleri aç

mrr

İleti: 402

Çevrimdışı
  • ****
  • Sr. Member
    • Profili Görüntüle
    • http://www.emre.co.uk
merhabalar bir konuda yardıma ihtiyacım var:

herhangi bir imajı tanıyacak bir program, kod, vs'ye ihtiyacım var..
mesela yesil renkli bir imaj gördügünde bu yesil desin, veya o imajın hakkında luminance,vs gibi bilgiler versin..

tesekkürler...

yardim (imaj tanıma)

« Yanıtla #1 : 30.09.2005 02:29:22 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Alıntı
Originally posted by mrr@Sep 30 2005, 12:08 AM
merhabalar bir konuda yardıma ihtiyacım var:

herhangi bir imajı tanıyacak bir program, kod, vs'ye ihtiyacım var..
mesela yesil renkli bir imaj gördügünde bu yesil desin, veya o imajın hakkında luminance,vs gibi bilgiler versin..

tesekkürler...
[post=2063]Quoted post[/post]
[/b]

Yeşil renkli bir imaj görünce yeşil mi desin? :) bunu yapmak kolay da tek kriter bu ise. tam olarak imajın hangi özellikleri sana gerekiyor? Buna göre çeşitli algoritmalar önerebilir ya da bulabilirim.

Örneğin renk yoğunluğu için RGB kanallarının teker teker ortalamasını almak bile bence iyi bir çözüm olacaktır. Hatta bu ortalama resmin baskın rengini verir sana.

Dediğim gibi tam ihtiyacını yaz ki tam cevap verebilelim.

yardim (imaj tanıma)

« Yanıtla #2 : 30.09.2005 10:27:15 »
Hızlı düğmeleri aç

nightlord

İleti: 1.085

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.nightnetwork.org
eger sadece renk tanimasai yapacaksan isin biraz daha kolay. ki onda bile bayagi zorluklar cikabilir. ortalama metodunun calismadigi durumlar olabilir. mesela sen programina yarisi siyah yarisi beyaz bi resim verirsin. program sana bu resim gri der. baska bi yol histogram cikarmak olur. rgb'ye gore 3 adet 256 slotluk histogram yapilabilir ve o histogramlardaki dagilimi yine hayli matematiksel metodlarla analiz etmen gerekir.

yok bi de resmin icinden sekil taniyacam dersen isin daha da zorlasir. bu sefer resmi once yuksek gecirgen frekans filtresinden gecirip edgeleri bulursun. daha sonra onlari parametrik bi sekilde vektorel velay parametrik matematiksel ifadelere cevirirsin. daha sonra programin o parametreleri degerlendirerek resimlerde ev, balik, ucak, basbakan vs oldugunu soyleyebilir. fakat bunun icinde sen parametreler ne oldugunda resimde balik oldugunu programlamaya kalkarsin. kisa surece bunun calismadigi ortaya cikar. bu yuzden programi adaptif hale getirirsin. yani programa once bazi resimler verip her birinin balik mi ev mi vs oldugunu soylersin. bu esnada program parametrelere gore olusan uzayda clustering yani gruplandirma yapar. en az birkac yuz resimlik bi egitimden sonra programin yine benzer kaynaklardan gelen resimlerde kendiliginden tanima yapabilmesi umulabilir.

bir de su an adini hatirlamadigim yeni bi transformasyon var. 3 boyutlu donuslerden etkilenmiyor. boylece resimlere once onu uygulayip yuz tanima falan ustune calisiyorlar. fakat bu hala cok cok yeni bi konu.

Bu probleme genel olarak `pattern recognition` (desen tanima) deniyor. hayli ilginc matematik kullanimini gerektiren ve odtude master seviyesinde okutulan bi konudur. hatta anesthetic kardesim belki tanir aydin alatan hocamiz verir bu dersi. dersin kodu da 583tu yanlis hatirlamiyosam. odtu elektronik bolum sitesinden aydin alatanin konuyla ilgili onerdigi yayin text vs bulunabilir...

ha bu kadar vir vir ettin hadi otur yaz deseniz herhalde calisan biseyi yazmam aylarimi alir. ana hatlarini bilmeme ragmen bunu uygulamaya dokmekte daha bir suru bahsetmedigim problem var. ama umarim cesaret kirici olmamistir. :)

yardim (imaj tanıma)

« Yanıtla #3 : 30.09.2005 11:53:27 »
Hızlı düğmeleri aç

mrr

İleti: 402

Çevrimdışı
  • ****
  • Sr. Member
    • Profili Görüntüle
    • http://www.emre.co.uk
aslında bu konuyu okulda bitirme projesi olarak yapmayı düşünüyorum.
kafamda henüz bir şeyler şekillenmiş değil o yüzden olanaklar dahilinde bir proje üreteceğim. resmin rengini anlamak zorunda degil ama neyini anlarsak ona yönelebilirim  :)

konuyla ilgili arastirmalar yaptim fakat pek bulamadım kaynak..
resmin hangi ozelliklerini anliyabiliyoruz  :)  yani elimizde bir resim varsa, bunun nesini anlıyabiliyoruz (yaptigim derin araştırmalara göre "size'ini ve dosya boyutunu" anlıyabiliyorum şimdilik.. :rolleyes:   )


aslinda yapmaya calistigim sey su:

1) beyaz bir fonda yesil bir balık dursun. bir de baska bir resimde kırmızı bir balık dursun; programım bu iki resim arasında yesili ve kırmızıyı ayırsın...

2) ve de imajı da tanısın ama çok primitif düzeyde. yani, yatık duran bütün oval nesnelere balık diyebilir. dikey duran nesnelere de insan (ayakta dikilmiş duran) diyebilir... bu çok az gelişmiş seviyede olabilir...


kaynak da önerirseniz çok sevinirim..
"image processing" diye biliyorum ama "gimp" tarzı programların arasında istedigim bilgiye ulasamıyorum...

kısaca öle bi programım olsun ki, bir maymuna kareleri renkleri öğretir gibi, elimdeki özenle hazırlanmış imajları (karışık resimler degil de basit düz renkli şekiller) tanısın.  hatta databaseimde 10 tane değişik renklerde balık fotosu ve 2 tane de değişik renklerde insan fotorafı olsun (balık yatay çekilmiş, insan da dikey.) ve kırmızı balık dediğimde bunu bana hata payı olsa da getirsin..

çok mu zor :)  +, web tabanlı çalışabilir mi?

teşekkürler...  :rolleyes:

yardim (imaj tanıma)

« Yanıtla #4 : 30.09.2005 12:24:01 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Web tabanlı daha önce benzer şeyler yaptım. PHP'nin GD2 libi gayet basit ve temiz.

Bunların haricinde Nightlord'un bahsettiği metodlar her Cebit, Compex fuarında gördüğün "deneme seviyesindeki programlar"da sık sık karşımıza çıkıyor. Yakınlarda bir fuara gidersen konuyla ilgili Tübitak ve Boğaziçi Üniversitesi'nin standlarını gez. Tübitak'ın videolar üzerinden sahne tanıyan, hatta kamera hareketlerini yani panning, zooming v.s. agılayan bir META enginei var. Örnek olarak helikopter olan bir sahneyi işaretledikten sonra helikopter geçen başka sahneleri bul değiğin zaman farklı bir model ve renkte de olsa helikopter geçen sahneleri bulabiliyor. Hem sen META ekleyebiliyorsun, hem de kendisi sahneler üzerinden META yaratabiliyor.

Gelelim Boğaziçi'nin yaptığı projeye. O da herhangi bir açıdan çekilmiş bir resmin içinden araba plakasını belirleyip, daha sonra plakayı texte çeviriyor, yani resmin içinden plaka okuyor.

Belki bu projeleri yapan kişilerle kontak kursan senin için en hayırlısı olacaktır.

yardim (imaj tanıma)

« Yanıtla #5 : 30.09.2005 12:53:19 »
Hızlı düğmeleri aç

spaztica

İleti: 1.493

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
böyle bir çalışma için OCR ve image recognition gibi kelimelerle de arama yapmanı öneririm. şekil algılama meselesi karışık bir algoritmaya dayanır, ama önce sorununa farklı açılardan bakmaya çalış; gerçekten bir analiz/algılama algoritmasına ihtiyacın var mı? yoksa algılamayı dinamik bir görüntüüzerinden yapıyorsan fake bir mapping ile (oyunların level map'leri, bazı tekniklerde kullanılan collision bitmapleri gibi) sadeleştirilmiş bir data üzerinden yapman işini biraz daha kolaylaştıracaktır.

yardim (imaj tanıma)

« Yanıtla #6 : 30.09.2005 13:57:27 »
Hızlı düğmeleri aç

nightlord

İleti: 1.085

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.nightnetwork.org
mrr aslinda senin bahsettigin problem iki bolumden olusuyor. birinceisi bir imaja bazi processing algoritmalari uygulayip bazi parametreler elde etmek. bu parametreler vektorel veya skalar parametreler olabilir. bunlar resimin pixel datalari uzerine cesitli processing algoritmalari (genel olarak transformasyonlardir) ile elde edelir. bu basli basina bir problemdir. yani ilk sordugun soru resmin "nesini" taniyabilir sorusunu cevapladiktan sonra (seklini veya rengini) o tanima icin resimden hangi parametrelerin nasil extract edilecegi problemi. hangi parametreler istedigin ayrimlamayi yapmayi sagliyor. ve bu parametreler hangi algoritmalarla elde edilebilir. bu bir problem

ikinci problem parametreler bir kere elde edildikten sonra nasil bir classification ile bir resim a kumesine veya b kumesine dahil edilecek problemi. bu da "classification", "pattern matching" veya "pattern recognition" basliklarinda aratabilecegin bi konu. burada kumeler bastan tanimli mi olacak. yani her resim balik veya insan kumelerine mi dahil edilecek. yoksa alet resimleri belirsiz sayida ki kumeler mi toplayacak (clustering) yani 100 resmi alip su 20si bi grup su 30u baska bi grup falan mi diyecek.

ben seni tekrar http://www.metu.edu.tr adresine yonlendireyim. orda multimedya grubunda aydin alatan ve gozde bozdag isimli hocalarin calismalarini incele. skate'in bahsettigi tubitak motorunu onlar gelistirdiler. hatta onun video icinde sahneleri ayirma bolumunde (buna da shot boundary detection denir) ben calismistim hey gidi gunler.

turkiyede video processing tarafindaki en guru adamlardan biri de Murat Tekalp hocadir. onun yayinlarindan da parametre extraction konusunda cok sey ogrenebilirsin. googledan aratabilirsin. arti koc universitesi ile iliskisi var orada yuzyuze danisma imkaninda olabilir

yardim (imaj tanıma)

« Yanıtla #7 : 30.09.2005 14:30:06 »
Hızlı düğmeleri aç

mrr

İleti: 402

Çevrimdışı
  • ****
  • Sr. Member
    • Profili Görüntüle
    • http://www.emre.co.uk
cok teşekkürler, galiba bu bilgiler şu an için yeterli..
bi altyapıyı kurup, ön araştırma yapıp ve olayı az çok anlayıp tekrar çökücem başınıza :)

yardim (imaj tanıma)

« Yanıtla #8 : 30.09.2005 14:58:17 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Mrr, sana bu konuda son bir tavsiye. Herhangi bir code yazmaya başlamadan önce olayı kafanda, kağıt üstünde bitir. Çünkü kod yazmaya başladığında karşılaşacağın birçok problem seni amacından saptıracak ve asıl ulaşmak istediğinden uzaklaştıracaktır (hep böyle olmuştur). Sen kesin hedefini bilmediğin sürece kod yazarak başladığın projelerin suya düşer.

Örnek olarak "öncelikle resmin tüm pixellerinin RGB değerlerini birer arraya aliim" gibi birşey yapmaya kalkmadan ne yapman gerektiğini iyice belirlersen daha kolay olur. Belki sen yalnızca bazı toplamlara ya da ortalamalara ihtiyaç duyacaksın. Ya da historgram çıkaracaksan arrayinin yapısı değişecek ve arrayindeki elemanlar birer countera dönüşecek. Onun için dediğim gibi önce problemi kağıt üzerinde en az %95 çöz, daha sonra kodlamaya başla. %95 diyorum çünkü bazı durumlarda %5'lik kısım teoride kalır, pratiğe dökmeden sonuçtan emin olamayabilirsin.

yardim (imaj tanıma)

« Yanıtla #9 : 01.10.2005 22:23:46 »
Hızlı düğmeleri aç

inFinie

İleti: 2

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
    • http://
Aklima bi fikir geldi. Resimlere pencerelerden bakabilirsin. mesela 256x256lik bir resime 16x16lik pencerelerden bakabilirsin(gridlere ayirirsin).
toplam 256 pencere olur.
-her pencereye bir deger atarsin, yesil mi kirmizi mi yoksa beyaz mi agirlikta.
-eger yanyana olan pencerelerde ayni agirlik varsa orada yatay bir nesne var demektir.(muhtemelen tabii. agirligi nasil aldigina ve resmin karisikligina bagli)
-altalta olanlarda insandir diyebilirsin.

Belki isini gorebilir?
Hello, I\'m a signature virus. Copy me into your signature to help me spread.