Lei Feng net notu: Bu makale, AI Araştırma Enstitüsü tarafından derlenen, OpenCV ve Python kullanarak orijinal Parmak Algılama ve İzleme başlıklı teknik bir blogdur ve yazarı Jason Brownlee'dir.
Tercüme | Yuhang Lamaric redaksiyon | Wu Xiaoman incelemesi | Yuhang
Ayrıntılı kod referansı: https://github.com/amarlearning/opencv
Parmak takibi, birçok bilgisayarla görme uygulamasının önemli bir özelliğidir. Bu uygulamada eli arka plan çerçevesinden ayırmak için histogram tabanlı bir yöntem kullanılır. En iyi sonuçlar için arka planı kaldırmak üzere eşik işleme ve filtreleme tekniklerini kullanın.
Parmak tanımada karşılaştığım zorluklardan biri, eli arka plandan ayırt etmek ve parmağın ucunu tanımaktı. Bu projede kullandığım parmak izleme tekniğimi size göstereceğim. Parmak tanıma ve izlemenin gerçek işleyişini görmek istiyorsanız, lütfen yüklediğim videoyu izleyin.
Kullanıcının elinin hareketini takip etmek isteyen uygulamalarda, cilt tonu Kullanıcının elinin hareketini takip etmek isteyen uygulamalarda cilt tonu histogramı oldukça faydalı olacaktır. Görüntünün yalnızca ten tonlarını içeren kısmını bırakarak görüntüden arka planı kaldırmak için histogram kullanın.
Dış görünümü algılamanın daha kolay bir yolu, belirli bir RGB veya HSV aralığındaki pikselleri bulmaktır. Bu yöntem hakkında daha fazla bilgi edinmek istiyorsanız, lütfen buraya tıklayın (https://docs.opencv.org/3.4.2/df/d9d/tutorial_py_colorspaces.html).
Yukarıdaki yöntemle ilgili sorun, ışık koşullarının ve ten renginin değiştirilmesinin cilt testi sonuçlarını çok kötü hale getirebilmesidir. Öte yandan, histogram genellikle daha doğrudur ve histogram mevcut aydınlatma koşullarını hesaba katabilir.
Çerçeveye yeşil bir dikdörtgen çizin ve kullanıcı elini dikdörtgenin içine yerleştirir. Uygulama, kullanıcının avucunun cilt tonunu çıkarır ve ardından bunu bir histograma çizer.
Dikdörtgen çizme işlemi aşağıdaki işlevi izler:
İşlem çok basit - her dikdörtgenin koordinatlarını temsil etmek için dört satır kod oluşturdum.
hand_rect_one_x
hand_rect_one_y
hand_rect_two_x
hand_rect_two_y
Bu dört kod satırı, çerçevede kullanılmak üzere sürekli olarak yinelenir: cv2.rectangle, bir dikdörtgen oluşturmak için çizer; burada total_rectangle, satır ve sütun 9'un uzunluğunu temsil eder.
Artık kullanıcılar avuçlarını nereye yerleştireceklerini anladıklarına göre, başarı için bir sonraki temel adım, bu dikdörtgenlerden pikselleri çıkarmak ve ardından piksellere dayalı olarak HSV histogramları oluşturmaktır.
İşlev, giriş çerçevesini bir HSV histogramına dönüştürür. Bir görüntü oluşturmak için Numpy kitaplığını kullanın. Görüntü boyutu 3 ve renk kanalı sayısı 3'tür. Biz buna ROI (İlgi Bölgesi) adını verdik, yeşil dikdörtgenden 900 piksel değeri çıkarır ve ardından bunları ROI matrisine yerleştirir. cv2.calcHist, ROI matrisine dayalı olarak cilt rengi için bir histogram oluşturur ve cv2.normalize, cv2.NORM_MINMAX matrisini normalleştirmek için norm türünü kullanır. Artık çerçevedeki cilt alanını tespit etmek için histogramı kullanabiliriz.
Artık kullanıcılar avuçlarını nereye yerleştireceklerini anladıklarına göre, bir sonraki adım bu dikdörtgenlerden pikselleri çıkarmak ve bunları HSV histogramları oluşturmak için kullanmaktır.
Şimdi, cilt rengi histogramına dayanarak, dış görünümü içeren çerçeve alanını bulabiliriz.OpenCV, görüntüdeki özellikleri ayırmak için histogramı kullanan cv2.calvBackProject adlı uygun bir yöntem sağlar. Bu işlevi, cilt tonu histogramını çerçeveye uygulamak için kullanıyorum. Arka proje hakkında daha fazla bilgi almak isterseniz, 1. bağlantıyı (https://docs.opencv.org/master/dc/df6/tutorial_py_histogram_backprojection.html) ve 2. bağlantıyı (https://docs.opencv.org) kullanabilirsiniz. /2.4/doc/tutorials/imgproc/histograms/back_projection/back_projection.html) elde etmek için.
...
Okumaya devam etmek istiyorsanız, lütfen AI Araştırma Topluluğu topluluğumuza gidin: https://club.leiphone.com/page/TextTranslation/775
AI Araştırma Enstitüsü'nde daha heyecan verici içerikler mevcuttur.
Farklı alanlar arasında bilgisayar görüşü, konuşma semantiği, blok zinciri, otonom sürüş, veri madenciliği, akıllı kontrol, programlama dilleri ve diğer günlük güncellemeler bulunur.
Leifeng.com Leifeng.com (Genel Hesap: Leifeng.com)