Makine Öğrenimi ve Sinir Ağları - sayfa 40

 

Computer vision roadmap | How to become a computer vision engineer



Computer vision roadmap | How to become a computer vision engineer

This video provides a roadmap for becoming a computer vision engineer, dividing the learning process into four modules: Python and OpenCV, robotics and low-level programming, artificial intelligence, and advanced topics. The importance of hands-on projects involving physical devices such as robotics and Arduinos is emphasized, along with the need to have a basic understanding of mathematics. The speaker also discusses competitions and projects that can help aspiring computer vision engineers hone their skills. In addition, the importance of soft skills such as documentation and knowledge of software tools like Git and Docker is highlighted. Finally, it is recommended to obtain degrees in mathematics, data science, computer science, or engineering, although learning independently through projects and courses is also possible.

  • 00:00:00 In this section of the video, the speaker presents a computer vision roadmap that covers everything a person needs to learn to become a computer vision developer. The roadmap answers three main questions: what skills are required, what projects can you work on to acquire these skills, and what college degrees are available for learning these skills. The roadmap is divided into four models, with the first model covering Python and OpenCV, which are essential for solving 70% of computer vision problems. The second model is about Robotics and low-level programming, which includes working with C++ and electronics. The third and fourth models cover artificial intelligence and advanced topics, respectively. The speaker suggests beginner projects for each model, such as working on a line follower robot or a QR code reader to build knowledge and skills.

  • 00:05:00 In this section of the video, the speaker discusses the importance of working on projects that involve physical devices such as robotics and Arduinos. The speaker explains that programming for such devices requires a different approach because the same code can produce different results due to factors such as sensor noise and lighting changes. The third module the speaker mentions focuses on artificial intelligence and machine learning using the popular Python library Scikit-learn, which can be used for tasks such as image classification and object detection. Finally, the speaker also emphasizes the importance of having a basic understanding of mathematics and how it relates to computer vision.

  • 00:10:00 In this section, the speaker explains the importance of dividing the environment into different regions and how it can be used to detect situations like lane crossings while demonstrating a simple image with different regions separated by basic geometry. He emphasizes the need for computer vision engineers to be fluent in mathematics and recommends learning basics in image classification and object detection, secret learn, and geometry, before moving onto more advanced skills in machine learning, mathematics, and electronics. He suggests projects such as generative adversarial networks and implementing state-of-the-art papers in computer vision to learn advanced machine learning, while taking up advanced Arduino projects or participating in robotics competitions to improve electronics knowledge.

  • 00:15:00 In this section, the speaker discusses various competitions and projects that can help aspiring computer vision engineers to hone their skills. These competitions involve building robots and agents that can perform complex tasks and compete with other teams. The speaker emphasizes the importance of learning the fundamentals of computer vision, including Python and OpenCV, which can help solve 70% of the available problems. The four modules mentioned are: fundamentals, robotics, artificial intentions, and advanced modules. While the advanced module is important, the speaker suggests focusing on the other modules first, as they cover the essential skills needed to become a successful computer vision engineer.

  • 00:20:00 In this section, the speaker discusses the various software related skills that a computer vision developer should have, besides having knowledge of computer vision, machine learning and Python. These skills include knowing the basics of tools like Git and Docker, as well as cloud providers like AWS or Google Cloud. Additional skills that are considered valuable include web or mobile development, knowledge of JavaScript, and knowing how to write proper documentation such as a readme file for a GitHub repository or documenting an entire process. While not all of these skills are a must, they can be beneficial in showing off a developer's work and solving various problems.

  • 00:25:00 In this section, the speaker emphasizes the importance of documentation for computer vision developers as it makes things simpler for everyone. They also suggest that every developer, not just computer vision developers, should master documentation as it is a crucial skill. The speaker then highlights the significance of being familiar with various software tools and encourages aspiring computer vision engineers to learn as much as they can. For those interested in taking a college degree, the speaker recommends degrees in mathematics, data science, computer science, electrical engineering, or any engineering degree, as they provide the foundation to approach problems and come up with solutions. However, the speaker notes that it is entirely possible to learn everything independently by taking projects and courses.
 

Opencv ve Python ile Nesne Takibi

Kod: https://pysource.com/2021/01/28/object-tracking-with-opencv-and-python/



Opencv ve Python ile Nesne Takibi

OpenCV ve Python ile Nesne İzleme hakkındaki video eğitimi, nesne algılama ve nesne izleme arasındaki farkı açıklar ve verimli izleme için bir nesne izleme dosyasının nasıl oluşturulacağını gösterir. Video, video ve nesne izleme dosyası gibi gereken gerekli dosyaları ana hatlarıyla belirtir ve gerçek zamanlı video gösterimi için main.py dosyasının nasıl kodlanacağını gösterir. Öğretici ayrıca, maskeden küçük öğelerin nasıl kaldırılacağını ve araçlara odaklanmak üzere görüntünün bir bölümünü çıkarmak için bir ilgi bölgesi tanımlamayı da kapsar. Video, nesne izleme sürecini açıklayarak ve nesneleri doğru şekilde saymak için benzersiz kimlikler ekleyerek sona eriyor. Bununla birlikte, öğretici, yöntemin mükemmel olmadığını, ancak nesne izlemeye mükemmel bir giriş işlevi gördüğünü belirtir ve OpenCV ve derin öğrenme hakkında daha derinlemesine bir kurs önerilir.

  • 00:00:00 Bu bölümde konuşmacı, nesne algılama ve nesne izleme arasındaki farkı tanıtıyor. İlki, nesneleri kare kare tespit ederken, ikincisi, geçmişlerini izlemek için çerçeveler boyunca nesneleri takip ediyor. Nesne izleme, insan sayma, nesne yörüngelerini izleme ve otoyollardan geçen arabaları sayma gibi çeşitli uygulamalarda çok önemlidir. Konuşmacı daha sonra projeyi başlatmak için bir video ve bir nesne izleme dosyası da dahil olmak üzere gerekli dosyaları tanıtır. Ardından, konuşmacı, OpenCV kitaplığını içe aktararak ve videodan kareleri okumak için bir yakalama nesnesi oluşturarak başlayarak main.py dosyasını kodlamaya başlar. Son olarak, konuşmacı videonun gerçek zamanlı olarak nasıl görüntüleneceğini ve videoyu kapatmak için önemli bir olayın nasıl oluşturulacağını gösterir.

  • 00:05:00 Bu bölümde, konuşmacı OpenCV ve Python kullanarak nesne izlemeyi tartışıyor. Bu özel yöntem için sabit bir kameranın gerekli olduğunu, yani arka planın zamanla değişmediğini, sadece hareket halindeki nesnelerin değiştiğini açıklıyorlar. Bir nesne detektörü kullanılarak, hareketli nesneler sabit kameradan çıkarılabilir. Dedektör bir maske oluşturur ve maskenin amacı ihtiyaç duyulmayan her şeyi siyah, tespit edilmesi gereken araçlar ise beyaz yapmaktır. Beyaz elemanların koordinatları daha sonra çıkarılır ve çok küçük olanlar çıkarılır. Daha sonra OpenCV'nin kontur bul fonksiyonu kullanılarak beyaz nesnelerin sınırları bulunur ve yeşil çerçeve üzerine çizilir.

  • 00:10:00 Bu bölümde, eğitim videosu, kontur alanını hesaplayarak ve 100 pikselden daha az alana sahip herhangi bir konturu kaldırarak maskeden küçük öğelerin nasıl çıkarılacağını açıklar. Daha sonra, öğretici, yalnızca yolun belirli bir bölümündeki araçlara odaklanmak üzere görüntünün bir bölümünü çıkarmak için bir İlgi Alanının (ROI) nasıl tanımlanacağını tartışır ve algılama sürecini çok daha kolaylaştırır. Eğitim, izlemek istediğimiz araçları içeren bölümün konumunu, yüksekliğini ve genişliğini belirterek ROI'nin nasıl tanımlanacağını özetliyor. Eğitim, yalnızca belirli bir alanda nesne izleme gerçekleştirmek için maskenin ROI'ye nasıl uygulanacağını açıklayarak sona erer.

  • 00:15:00 Videonun bu bölümünde konuşmacı, nesne algılama algoritmasını tüm çerçeve yerine ROI'ye uygular ve algılamanın nasıl geliştiğini gösterir. Ancak, yanlış pozitifler ve algılama algoritması ile ilgili sorunlar devam etmektedir. Nesne algılamayı iyileştirmek için konuşmacı, geçmişin boyutunu ve yanlış pozitif miktarını etkileyen değişken eşiğini ayarlar. Konuşmacı daha sonra algılanan her nesneyi çevreleyen dikdörtgeni çıkarır ve bunu ROI üzerinde yeşil olarak çizer. Son olarak, konuşmacı bir eşik operatörü kullanarak görüntüdeki yalnızca beyaz öğeleri koruyarak görüntüdeki gölgeleri kaldırır ve bu da daha doğru nesne algılama sağlar.

  • 00:20:00 Bu bölümde video, OpenCV ve Python kullanarak nesne izleme sürecini anlatıyor. Etkin izleme için "tracker.py" dosyasını içe aktarmak ve bir "tracker" nesnesi oluşturmak gerekir. "İzleyici", nesnelerin sınırlayıcı kutularını toplar ve bunları "algılamalar" adlı bir diziye kaydeder. Her sınırlayıcı kutunun kendine özgü x, y konumu, genişliği ve yüksekliği değerleri vardır. Bu kutuların minimum değeri 100 olmalıdır, böylece izleyici ilgisiz nesneleri atar. Bir dizi algılanan nesne, kare kare görüntülenir ve algılama dizisi, izleyici nesnesine iletilir. İzleyici daha sonra izlenen her nesnenin geçmişini ve benzersiz kimliklerini döndürür. Nesne takibi için ilk adım, nesne algılamadır ve bu yalnızca birinci çerçevede bir nesne algılanırsa mümkündür.

  • 00:25:00 Bu bölümde video, OpenCV ve Python'daki nesne izleme özelliğine benzersiz kimliklerin eklenmesini tartışıyor. Artık her nesnenin farklı bir kimliği vardır ve nesneleri sayarken hata yapılmasını önler. Kimlikler kullanılarak, nesneler doğru bir şekilde sayılabilir ve nesnelerin ne zaman geçtiğini algılamak için bir çizgi çizilebilir. Video, gösterilen yöntemin basit olduğunu, mükemmel olmadığını, ancak nesne izlemeye iyi bir giriş olduğunu açıklayarak sona erer. İçerik oluşturucu, nesne algılama ve izleme hakkında daha derinlemesine bilgi için OpenCV ve derin öğrenme hakkındaki video kurslarını izlemenizi önerir.
Object Tracking with Opencv and Python - Pysource
Object Tracking with Opencv and Python - Pysource
  • Sergio Canu Hi there, I’m the founder of Pysource. I’m a Computer Vision Consultant, developer and Course instructor. I help Companies and Freelancers to easily and efficiently build Computer Vision Software .
  • pysource.com
In this tutorial we will learn how to use Object Tracking with Opencv and Python. First of all it must be clear that what is the difference between object detection and object tracking: Object detection is the detection on every single frame and frame after frame. Object tracking does frame-by-frame tracking but keeps the history of where the...
 

GÖRÜNTÜ SINIFLANDIRMASI, Yolov8 özel veri kümesiyle | Bilgisayarla görme eğitimi

Kod: https://github.com/computervisioneng/image-classification-yolov8



GÖRÜNTÜ SINIFLANDIRMASI, Yolov8 özel veri kümesiyle | Bilgisayarla görme eğitimi

Bu bölümde sunum yapan kişi, proje için en iyi modelin nasıl seçileceğini açıklar ve eğitim sürecinden üretilen son model ile en yüksek doğruluk oranına sahip modelin seçilmesi arasında önerilerde bulunur. Karar veri, problem, kullanım durumu ve eğitim süreci dahil olmak üzere çeşitli faktörlere bağlıdır. Konuşmacı ayrıca YOLO'yu içe aktararak ve modele giden mutlak yolu belirterek, yerel bilgisayardan bir görüntü kullanarak ve sonuçları göstererek tüm çıkarımların nasıl yapılacağını ve yeni örneklerin nasıl tahmin edileceğini açıklar. Sonuçlar, görüntü sınıflandırıcının eğitildiği kategorilerin olasılıkları ve adları dahil olmak üzere birçok bilgi sağlar.

  • 00:00:00 Bu bölümde YouTuber, özel bir veri kümesinde YOLOv8 kullanarak bir görüntü sınıflandırıcının nasıl oluşturulacağını gösteriyor. Bulutların, yağmurun, parlaklığın ve gün doğumlarının görüntülerini içeren veri setini göstererek başlıyor. Ayrıca YOLOv8'in veri girişi için beklediği dosya yapısını da açıklıyor. Felipe daha sonra YOLOv8 kullanarak bir görüntü sınıflandırıcıyı eğitmenin üç farklı yolunu açıklamaya devam ediyor: Birincisi bir Python betiği kullanmak, ikincisi bir Google Colab Not Defteri kullanmak ve üçüncüsü YOLOv8'in temel çerçevesi olan darknet kullanmak.

  • 00:05:00 Bu bölümde öğretici, Yolov8 kullanarak bir görüntü sınıflandırma modeli eğitmek için gereken bağımlılıkları ve bunların PyCharm'da Python yorumlayıcısı kullanılarak nasıl kurulacağını ele alıyor. Gereken iki ana paket Ultralytics ve NumPy'dir; Ultralytics, modeli eğitmek için gerekli verileri içe aktarmada çok önemlidir. Öğretici daha sonra modeli eğitmek için gereken kodun üzerinden geçer ve verilere giden mutlak yolun doğru biçimde ayarlanmasını gerektirir. Daha fazla eğitime devam etmeden önce her şeyin düzgün çalıştığından emin olmak için yalnızca bir Epoch için bir test çalıştırması da yapılır.

  • 00:10:00 Bu bölümde konuşmacı, eğitim sürecinin sonuçlarının nerede olduğunu gösterir ve çalışır klasörü içindeki klasör yapısını açıklar. Ardından, belirli bir yardımcı programı ve gerekli argümanları kullanarak komut satırı aracılığıyla Yolov8 kullanarak bir görüntü sınıflandırıcının nasıl eğitileceğini gösteriyor. Modeli yalnızca bir dönem için eğiterek bu yaklaşımın basitliğini göstermeye devam ediyor ve ardından sonuçların "eğitilmiş 13" etiketli yeni bir dizinde nereye kaydedildiğini gösteriyor. Son olarak konuşmacı, modeli Google İşbirliği kullanarak eğitmenin başka bir yolunu tartışır ve onu kurma sürecine ilişkin kısa bir açıklama sağlar.

  • 00:15:00 Bu bölümde sunum yapan kişi, Yolov8 modellerini eğitmek için oluşturulmuş "train.ipymb" adlı bir not defterini gösterir. Veri kümelerinin Google Drive'a yüklenmesi, kullanıcıların Google Collab'daki verilerine erişmesi için önemli bir adımdır çünkü işlem, kullanıcıların Google Collab'ı Google Drive'a bağlayan bir hücre yürütmesini gerektirir. Google Drive'da bir kullanıcının veri kümesine giden yolu bilmek, kullanıcıların veri kümelerini düzgün bir şekilde kullanabilmeleri için bu yolu not defterlerine girmeleri gerektiğinden çok önemlidir. Son olarak sunum yapan kişi, kullanıcıların Yolov8 modellerini eğitmek için gereken gerekli kitaplıkları kurmak için yürütebilecekleri basit komutlar sağlar.

  • 00:20:00 Videonun bu bölümünde eğitmen, YOLOv8 ve özel bir veri seti kullanarak bir görüntü sınıflandırıcının nasıl eğitileceğini ve Google Colab ortamında elde edilen sonuçların Google Drive'a nasıl kopyalanacağını gösteriyor. Bir dönem için eğitim sürecini yürütürler, sonuçları Google Drive'a kopyalarlar ve ardından eğitim sürecini 20 dönem boyunca yürütürler. Son olarak, eğitim sürecinin iyi bir görüntü sınıflandırıcı ile sonuçlanıp sonuçlanmadığının nasıl analiz edileceğini gösterirler. Eğitmen, veri dizini değişkenini doğru bir şekilde ayarlamanın önemini vurgular ve indirmeyi ve analiz etmeyi basitleştirmek için sonuçların Google Drive'a kopyalanmasını önerir.

  • 00:25:00 Bu bölümde, YOLOv8 kullanılarak özel bir veri kümesi için eğitim sürecinin sonuçları analiz edilir. Eğitim sürecinde kullanılan tüm EPA parametrelerini listeleyen bir yapılandırma dosyası ve eğitim ve doğrulama kaybının yanı sıra doğruluğu içeren bir sonuç dosyası da dahil olmak üzere yerel bilgisayara kaydedilen dosyalar incelenir. Eğitim süreci boyunca kaybın azalıp azalmadığını ve doğruluğun artıp artmadığını belirlemek için farklı dönemler boyunca kayıp ve doğruluğu gösteren bir python dosyası kullanıldı. Doğruluk artarken eğitim kaybının ve doğrulama kaybının azalıp azalmadığını kontrol etmenin basit ama güçlü bir yaklaşım olduğu sonucuna varılmıştır.

  • 00:30:00 Bu bölümde konuşmacı, dönem sayısını artırdığımızda değerlendirme doğruluğunun nasıl göründüğünü açıklayarak doğruluğun arttığını ve ardından plato olduğunu gösterir. Daha iyi bir model elde etmek için süreci iyileştirmek için farklı parametreler ve daha özelleştirilmiş bir eğitim kullanılabilir. İki farklı dosyanın kaydedildiği "ağırlıklar" dizini de açıklanmaktadır: "last.pt" ve "best.pt". "Last.pt" dosyası eğitimin son epoch'unun sonunda üretilen model iken, "best.pt" dosyası en iyi eğitim epoch'unun sonunda üretilen modeldir. Uygulamada, nihai sonuçları elde etmek için son model kullanılacaktır.

  • 00:35:00 Bu bölümde konuşmacı, proje için en iyi modelin nasıl seçileceğini tartışır ve eğitim sürecinden üretilen son model ile en yüksek doğrulukta model seçimi arasında önerilerde bulunur. Karar veri, problem, kullanım durumu ve eğitim süreci dahil olmak üzere çeşitli faktörlere bağlıdır. Konuşmacı ayrıca YOLO'yu içe aktararak ve modele giden mutlak yolu belirterek, yerel bilgisayardan bir görüntü kullanarak ve sonuçları göstererek tüm çıkarımların nasıl yapılacağını ve yeni örneklerin nasıl tahmin edileceğini açıklar. Sonuçlar, görüntü sınıflandırıcının eğitildiği kategorilerin olasılıkları ve adları dahil olmak üzere birçok bilgi sağlar.

  • 00:40:00 Videonun bu bölümünde sunum yapan kişi, YOLOv8 kullanarak bir görüntünün sınıflandırmalarını belirlemek için sözlüğün nasıl kullanılacağını açıklıyor. Görüntü sınıflandırıcının sonuçları, farklı kategorilere karşılık gelen tam sayılardır ve her tam sayının hangi kategoriyi temsil ettiğini belirlemek için bir sözlük kullanılır. Ek olarak, belirli bir görüntü için tüm farklı sınıfların olasılık vektörü elde edilir ve sunum yapan kişi, numpy kullanarak maksimum olasılığın ve buna karşılık gelen kategorinin nasıl belirleneceğini gösterir. Sunucu, YOLOv8 modelini kullanarak bir görüntünün nasıl sınıflandırılacağını göstererek bitirir ve daha fazla bilgisayarla görme mühendisliği projesi için kanalına abone olmayı önerir.
GitHub - computervisioneng/image-classification-yolov8
GitHub - computervisioneng/image-classification-yolov8
  • computervisioneng
  • github.com
You can download the same dataset I use in the video here. Ajayi, Gbeminiyi (2018), “Multi-class Weather Dataset for Image Classification”, Mendeley Data, V1, doi: 10.17632/4drtyfjtfy.1
 

Özel bir veri kümesinde Yolov8 nesne algılamayı eğitin | Adım adım kılavuz | Bilgisayarla görme eğitimi

Kod: https://github.com/computervisioneng/train-yolov8-custom-dataset-step-by-step-guide



Özel bir veri kümesinde Yolov8 nesne algılamayı eğitin | Adım adım kılavuz | Bilgisayarla görme eğitimi

Bu video eğitimi, bilgisayarla görme uygulamaları için özel bir veri kümesinde YOLOv8 kullanarak bir nesne algılayıcının nasıl eğitileceğine ilişkin adım adım bir kılavuz sağlar. Eğitim, veri toplama, açıklama, biçimlendirme ve eğitim gibi önemli hususların yanı sıra, modelin performansını değerlendirmek için kayıp fonksiyon grafiklerini ve gerçek hayattan örnekleri analiz etmenin önemini kapsar. Öğretici, açıklama için CVAT aracını kullanmayı, gerekli YOLOv8 veri biçimine bağlı kalmayı ve bir yapılandırma YAML dosyası oluşturmayı vurgular. Eğitici ayrıca, nesne algılayıcıyı eğitmek ve test etmek için Google Colab ve PyCharm kullanımını gösterir.

Video, bir alpaka veri kümesi üzerinde eğitilmiş bir YOLOv8 nesne algılama modelinin performansını göstermektedir. Konuşmacı, videoları yüklemek ve tahminleri yürütmek için bir Python komut dosyası kullanır ve bazı durumlarda neredeyse mükemmel algılama ve diğerlerinde kararlı algılama gösterir ve bir videoda bazı kaçırılan algılamalar vardır. Konuşmacı, daha güçlü ve daha iyi performans gösteren bir model elde etmek için modeli yeniden eğitmeden önce eğitim ve doğrulama kaybı işlevlerinin analiz edilmesini ve iyileştirme için yer olup olmadığına karar verilmesini önerir.

  • 00:00:00 Videonun bu bölümünde sunum yapan kişi, YOLOv8 kullanarak bir nesne dedektörü eğitirken veri toplamanın önemini ve ayrıca kendi fotoğraflarını çekmek veya halka açık bir veri seti kullanmak gibi veri toplamanın farklı yollarını açıklıyor. Open Images Set gibi. Sunucu, gösteri amacıyla bir alpaka veri kümesi kullanır ve izleyicilere veri kümesinde bulunan görüntülerin örnekleri gösterilir. Ek olarak sunum yapan kişi, izleyicilere Open Image Set'teki verileri tam olarak eğitim için gereken şekilde indirmeleri ve biçimlendirmeleri için komut dosyaları sağlayabileceklerinden bahseder.

  • 00:05:00 Videonun bu bölümünde anlatıcı, nesne algılama ve bilgisayarla görmeyle ilgili açıklama görevleri için kullanılabilecek bir etiketleme aracı olan CVAT aracını kullanarak veri açıklama sürecini tartışıyor. Anlatıcı, yeni bir proje ve görevin nasıl oluşturulacağını, görüntülerin nasıl yükleneceğini ve algılanacak nesneler için etiketlerin nasıl ekleneceğini açıklayarak, özel bir veri kümesi için bir dizi görüntüye açıklama eklemek üzere CVAT aracının nasıl kullanılacağını gösterir. Anlatıcı, kullanılan görüntüler için ek açıklamalara zaten sahip olsa da, verilerine açıklama eklemesi gerekenler için adım adım bir kılavuz sağlar. Video ayrıca CVAT kullanmanın yararlarını vurgularken farklı açıklama araçlarının avantajlarını ve dezavantajlarını vurgular.

  • 00:10:00 Bu bölümde video oluşturucu, YOLOv8 algoritması kullanılarak nesne algılama için bir görüntü veri kümesindeki nesnelerin nasıl etiketleneceğini gösterir. Yaratıcı, alpaka resimlerini kullanır ve nesnenin bir bağlama kutusuna nasıl kapatılacağını göstererek, algoritmanın nesneleri algılamasına ve tanımlamasına olanak tanır. Ayrıca, açıklama sırasında ortaya çıkabilecek farklı durumlara daha aşina olmak ve algılanan nesneler hakkında netlik sağlamak için kendi verilerinize açıklama eklemenin önemini açıklar. İçerik oluşturucu, veri açıklaması harici hizmetler kullanılarak yapılabilse de, verileri daha iyi anlamak için bazı resimlere açıklama eklemenizin çok önemli olduğunu belirtiyor.

  • 00:15:00 Bu bölümde, bir alpaka veri seti örneğiyle, resimlere açıklama eklemek için kriterlerin önemi tartışılmaktadır. Kutuyu nesneye sıkıca oturtmak veya daha gevşek bir sınırlayıcı kutuya sahip olmak dahil olmak üzere, nesneler için sınırlayıcı kutular tanımlamanın farklı yolları da gösterilmiştir. Ek açıklama aracı cb80, verileri biçimlendirmek ve açıklama eklemek için kullanışlı ve kullanımı kolay bir web uygulaması olarak vurgulanır ve eğitim nesnesi algılama algoritmalarında veri açıklamanın önemi vurgulanır.

  • 00:20:00 Videonun bu bölümünde sunum yapan kişi, bir nesne detektörü eğitmek için YOLOv8 için gereken özel veri formatını açıklıyor. Makine öğrenimindeki her algoritmanın kendi veri girişi gereksinimleri vardır ve YOLO'nun verilere çok özel bir biçimde ihtiyacı vardır. Sunum yapan kişi, açıklamalı verilerin CV80'den nasıl dışa aktarılacağını ve YOLO biçimine dönüştürüleceğini gösterir. YOLO formatı, açıklamaların ve karşılık gelen görüntülerin aynı ada ve farklı dosya uzantılarına sahip olmasını gerektirir; her sınırlayıcı kutu açıklaması, sınırlayıcı kutunun merkez konumunu, genişliğini ve yüksekliğini tanımlayan bir sınıf numarası ve dört kayan sayı içerir. Bir nesne detektörü eğitimi için doğru formatta veriye sahip olmanın çok önemli olduğu vurgulanmaktadır.

  • 00:25:00 Bu bölümde konuşmacı, özel bir veri kümesinde YOLOv8 kullanarak eğitim nesnesi algılaması için verilerin nasıl yapılandırılacağını açıklar. İlk adım, değiştirilemeyen belirli dizin adlarına sahip iki dizin oluşturmaktır: biri resimler için ve diğeri etiketler için. Görüntüler dizini içinde, eğitim için kullanılacak tüm görüntüler yer almalı ve kolaylık sağlamak için bir tren dizini kullanılabilir. Etiketler dizini içinde, her görüntü için, her satırın sınıf kimliğini, sınırlayıcı kutunun merkezinin X/Y konumunu ve sınırlayıcı kutunun genişliğini ve yüksekliğini belirttiği standart bir formatı izleyen ek açıklama dosyaları olmalıdır. Konuşmacı ayrıca doğrulama veya test verileri veya verilerin farklı sürümleri için ek dizinlerin nasıl kullanılacağını açıklar.

  • 00:30:00 Bu bölümde, eğitim videosu Python veya komut satırı yardımcı programını kullanarak YOLO V8 ile nesne dedektörünüzü eğitme sürecini tartışır. YOLO V8 resmi deposu, birkaç Python talimatıyla veya terminalde bir komut çalıştırarak eğitim seçeneği sunar. Öğretici daha sonra, Ultralytics kitaplığının içe aktarılması ve bir yapılandırma YAML dosyası oluşturulması da dahil olmak üzere, bir PyCharm projesinde YOLO V8 kullanılarak bir nesne algılayıcının nasıl eğitileceğine ilişkin adım adım bir kılavuzdan geçer. Eğitici ayrıca, kullanıcıların yerel bir ortamda veya Google Colab'da çalışma arasında seçim yapabileceklerini vurgulamaktadır.

  • 00:35:00 Videonun bu bölümünde konuşmacı, özel bir veri kümesi üzerinde YOLO V8 kullanarak bir nesne algılayıcıyı eğitmek için yapılandırma dosyasını tartışıyor. Algılanan farklı sınıfların adlarının nasıl ayarlanacağını, görüntüleri ve notları içeren dizine giden mutlak yolu ve görüntülerin bulunduğu göreli yolu açıklarlar. Konuşmacı ayrıca sırasıyla eğitim ve doğrulama verilerine atıfta bulunan "train" ve "val" adlı iki anahtar kelimeden bahseder. Herhangi bir sorundan kaçınmak için göreli bir yol yerine mutlak bir yol kullanmanın önemini vurgularlar. Konuşmacı daha sonra dosyanın nasıl çalıştırılacağını gösterir ve süreç tamamlanana kadar bekleme gereğini vurgulayarak bir dönem için eğitim sürecini başlatır. Son olarak, eğitim süreci tamamlandıktan sonra oluşturulan çıktı dosyalarını gösterirler.

  • 00:40:00 Eğitim videosunun bu bölümünde, konuşmacı doğrulama için benzer görüntülerin yanı sıra YOLOv8 nesne algılama algoritmasını eğitmek için kullanılan görüntü gruplarını gösterir. Konuşmacı yüzeysel ve yapay bir eğitim yürüttüklerini anlatır ve bu amaçla kullanılan dosyaları gösterir. Ardından konuşmacı, terminali kullanarak komut satırından ve ayrıca bir Google ortak çalışma not defterinden algoritmanın nasıl eğitileceğini gösterir. Not defteri yalnızca beş hücreden oluşur ve konuşmacı, yalnızca verilerin konumuna giden göreli yolu belirterek veri yüklemenin, Google Drive'ı bağlamanın ve algoritmayı eğitmenin ne kadar basit olduğunu gösterir.

  • 00:45:00 Bu bölümde, video eğitimi, özel bir veri kümesi üzerinde bir YOLOv8 nesne algılayıcıyı eğitmek için Google Colab'in nasıl kullanılacağını gösterir. Süreç, belirli bir değişkenin kaydedilmesini ve ünlem işareti komutu aracılığıyla Google Colab ortamında "pip install ultralytics" komutunun yürütülmesini içerir. Eğitici, yerel ortamda kullanılan aynı kod satırlarının nasıl girileceğini ve Google Drive dizinine giden mutlak bir yolun nasıl belirleneceğini gösterir. Dosyalar yüklendikten ve komutlar yürütüldükten sonra, eğitim süreci yerel ortamdakine benzer. Eğitici, kullanıcılara yürütmenin tamamlanmasını beklemeleri ve sonuç dizinini Google Colab'da seçilen dizine kopyalayan komutu çalıştırmayı hatırlamaları talimatını verir.

  • 00:50:00 Bu bölümde video eğitimi, özel bir veri kümesi üzerinde eğitilmiş Yolov8 nesne algılayıcının performansını test etmeye odaklanır. Modeli test etmenin ilk adımı, eğitim süreciyle ilgili tüm bilgilerin kaydedildiği dizine gitmeyi içerir. Ardından video, karışıklık matrisleri, F1 güven eğrileri ve kayıp fonksiyonu grafikleri dahil olmak üzere modelin performansını analiz etmek için kullanılabilecek farklı çıktıları ve grafikleri gösterir. Video, modelin performansını analiz etmenin basit ama güçlü bir yolu olduğundan, tüm kayıpların azaldığından emin olarak kayıp grafiklerine odaklanmanızı önerir. Modelin öğrenmesi gereken her şeyi öğrendiğini gösterebilen düz çizgili bir kayıp işlevi gibi, kayıp fonksiyonu çizimlerindeki farklı durumlar da tartışılır.

  • 00:55:00 Videonun bu bölümünde sunum yapan kişi, bir nesne algılama modelinin eğitim süreci hakkında bilgi edinmek için kayıp işlevini analiz etmeyi tartışıyor. Loss fonksiyonu düşerse her şey yolunda gidiyor ama yükselirse antrenmanda sıkıntı var demektir. Grafiklere bakmak ve bu bilgileri analiz etmek daha çok araştırma ile ilgilidir, ancak sunum yapan kişi modelin performansını değerlendirmek için gerçek örneklere bakmak ve modelin gerçek veriler üzerinde nasıl performans gösterdiğini görmek için daha görsel bir yol önerir. Sunucu, modelin performansını test etmek için tamamen görünmeyen veriler olan gerçek hayattaki alpakaları tespit eden model örneklerini videolarda gösterir. Sonuçlar mükemmel olmasa da performans iyidir ve sunum yapan kişi, bu görsel değerlendirmenin bir müşterinin projesinde çalışan bir serbest çalışan için daha alakalı olduğunu, çünkü müşteri çizimleri ve ölçümleri umursamayabilir, bunun yerine nasıl olduğunu görmek isteyebilir. model gerçek veriler üzerinde çalışır.
  • 01:00:00 Bu bölümde konuşmacı, videoları yükleyen ve tahminleri yürüten bir Python betiği aracılığıyla, görünmeyen veriler üzerinde bir alpaka veri kümesi üzerinde eğitilmiş YOLOv8 nesne algılama modelinin performansını gösterir. Tespitler, bir videodaki bazı kaçırılan tespitler dışında, bazı durumlarda neredeyse mükemmel bir tespit ve diğerlerinde sabit bir tespit ile iyi çalışıyor gibi görünüyor. Konuşmacı, daha güçlü ve daha iyi performans gösteren bir model elde etmek için konuşmacının yaptığı gibi, eğitim ve doğrulama kaybı işlevlerinin analiz edilmesini, düşüş trendlerinin kontrol edilmesini ve modeli tekrar eğitip eğitmemeye karar vermek için iyileştirme alanı olup olmadığını tavsiye eder.
GitHub - computervisioneng/train-yolov8-custom-dataset-step-by-step-guide
GitHub - computervisioneng/train-yolov8-custom-dataset-step-by-step-guide
  • computervisioneng
  • github.com
In this video I show you a super comprehensive step by step tutorial on how to use yolov8 to train an object detector on your own custom dataset! dataset If you want to train yolov8 with the same dataset I use in the video, this is what you should do: Go to prepare_data directory. Execute...
 

Yolov8 nesne algılama + derin sıralama nesne takibi | Bilgisayarla görme eğitimi

Kod: https://github.com/computervisioneng/object-tracking-yolov8-deep-sort



Yolov8 nesne algılama + derin sıralama nesne takibi | Bilgisayarla görme eğitimi

Bu eğitim videosu, YOLOv8 ve derin sıralama kullanarak bir nesne algılama ve izleme sisteminin nasıl uygulanacağını gösterir. Sunum yapan kişi, ortamın ayarlanması, YOLOv8 kullanarak bir videodaki nesnelerin yüklenmesi ve algılanmasından derin sıralama kullanarak zaman içinde algılanan nesnelerin izlenmesine kadar süreci adım adım anlatır. Ayrıca doğru dosya yapısını oluşturmanın ve gerekli bağımlılıkları kurmanın önemini de açıklıyorlar. Algılamalar YOLOv8'den çıkarıldıktan sonra, algılanan nesneleri zaman içinde takip etmek için Derin Sıralama nesne takibi uygulanır. Son olarak sunum yapan kişi, nihai çıktı karelerinin bir video dosyasına nasıl kaydedileceğini açıklar ve izleyicileri daha iyi doğruluk için algılama eşiğini değiştirmeye teşvik eder.

  • 00:00:00 Videonun bu bölümünde sunucu, YOLOv8 kullanarak nesne algılama ve derin sıralama kullanarak nesne izleme ile çalışma projesini tanıtıyor. Amaç, bir videoda hareket eden insanları takip edebilen ve izlenen nesneleri belirtmek için farklı renkteki sınırlayıcı kutuları kullanabilen bir izleme algoritması oluşturmaktır. Ana bilgisayar, test edilecek video verilerinin yanı sıra kullanılacak YOLOv8 ve derin sıralama havuzlarını gösterir. Son olarak, ana bilgisayar, üst düzey işlevleri kullanarak nesne izleme sürecini basitleştiren derin sıralama etrafında bir sarmalayıcı olan "tracker.py" adlı bir dosya sunar.

  • 00:05:00 Videonun bu bölümünde sunucu, gerekli depoyu klonlayarak, gerekli dosyaları indirerek ve gerekli kitaplıkları içe aktararak öğretici için ortamın nasıl kurulacağını açıklar. Kodla uyumluluğu sağlamak için doğru dosya yapısını oluşturmanın ve doğru bağımlılıkları kurmanın önemini açıklarlar. Sunum yapan kişi daha sonra OpenCV kullanarak bir videonun nasıl yükleneceğini ve videodan karelerin nasıl okunacağını ve karelerin bir pencerede nasıl gösterileceğini gösterir.

  • 00:10:00 Bu bölümde sunum yapan kişi, bir video üzerinde algılamalar oluşturmak için önceden eğitilmiş YOLOv8 modelinin nasıl kullanılacağını gösterir. Ultralytics kullanılarak önceden eğitilmiş model içe aktarılır ve işlev videonun bir karesinde çağrılır. Çıktı algılama sonuçları yazdırılır, ancak sonuçlar özel bir nesne türünde olduğundan, paketlerinin açılması ve bir for döngüsü kullanılarak bir listeye dönüştürülmesi gerekir. Nihai çıktı algılamaları yeni bir nesneye kaydedilir. Kod başarıyla yürütüldüğünde, sonuçlar nesne izleme algoritmaları için girdi verileri olarak kullanılabilir.

  • 00:15:00 Eğitim videosunun bu bölümünde, konuşmacı YOLOv8 nesne algılayıcısından tüm önemli algılama bilgilerinin nasıl açılacağını ve Deep Sort nesne izleme kullanılarak algılanan nesnelerin nasıl izleneceğini gösterir. İzleme algoritmasına iletmek için her algılama için sınıf kimliği, güven değeri ve koordinatlar gibi bilgilerin nasıl çıkarılacağını gösterirler. Konuşmacı ayrıca, zaman içinde algılanan nesnelerin izini sürmek için Derin Sıralama izleyicisinin algılamalar ve çerçevelerle nasıl başlatılacağını ve çağrılacağını da gösterir.

  • 00:20:00 Bu bölümde sunum yapan kişi, çerçevenin üstünde bilgi işlem özelliklerini ve algılanan nesneleri içeren derin sıralama nesne izleme sürecini açıklar. Algoritma çerçeveyi kırpar ve özellikleri ayıklar ve tüm izleri yinelemek için sunum yapan kişi sınırlayıcı kutuya ve iz kimliğine erişmek için bir döngü kullanır. Videoda algılanan her kişi veya nesnenin, tüm karelerde sabit kalan bir kimliği vardır. Tespit edilen her yeni kimlik için sunum yapan kişi, görselleştirmede rastgele renklerden oluşan bir liste kullanarak kimliği farklı bir renkle çizer.

  • 00:25:00 Videonun bu bölümünde konuşmacı, videoyu tüm farklı kareler ve algılamalarla yerel bilgisayara geri kaydetme sorununu çözer. Videoyu belirtilen ad ve konumla kaydetmek için yeni bir nesne olan CV2 video yazıcı oluşturulur. Video, bir MP4 codec kullanılarak ve orijinal video ile aynı kare hızında kaydedilir. Konuşmacı, yüklenen çok sayıda nesne ve yürütmenin bir CPU üzerinde çalıştırılması nedeniyle gerçek zamanlı algılama elde edilemese de her şeyin düzgün çalıştığını vurgular. Genel olarak, YOLOv8 kullanarak nesne algılama ve Deep SORT kullanarak nesne izleme sorunu başarıyla çözüldü.

  • 00:30:00 Bu bölümde, konuşmacı, YOLOv8 ve derin sıralama kullanarak başarılı bir nesne algılama ve izleme sistemi uygulamak için gereken son adımları gözden geçirerek öğreticiyi sonlandırır. Çıktı karelerinin bir out.mp4 dosyasına nasıl kaydedileceğini ve başarıyla tamamlandığını gösterirler. Ek olarak, konuşmacı olası yanlış algılamalardan bahseder ve izleyicileri, sistemin kuşlar gibi nesneleri algılama doğruluğunu artırmak için algılama eşiğini değiştirmeye teşvik eder. Genel olarak, bu eğitim, bilgisayarla görme tekniklerini kullanarak bir nesne algılama ve izleme sistemi uygulamak isteyen herkes için yararlı bir kılavuz görevi görür.
GitHub - computervisioneng/object-tracking-yolov8-deep-sort
GitHub - computervisioneng/object-tracking-yolov8-deep-sort
  • computervisioneng
  • github.com
Yolov8 object detection + deep sort object tracking ! requirements Deep Sort We are working on this fork from deep sort official implementation. You can download deep sort feature extraction model here. data You can download the same data I use in the video here.
 

Yolov8 özel veri kümesiyle görüntü segmentasyonu | Bilgisayarla görme eğitimi

Kod: https://github.com/computervisioneng/image-segmentation-yolov8

Veriler: https://drive.google.com/drive/folders/1JvA2IvHBy2QOnAtPtoy4JbEEmtbz5dnK



Yolov8 özel veri kümesiyle görüntü segmentasyonu | Bilgisayarla görme eğitimi

Bu eğitim, resimlere açıklama ekleme ve semantik segmentasyon için bir ikili maske oluşturma, YoloV8 ile eğitim için veri kümesini biçimlendirme ve yapılandırma, modeli Google Collab'da eğitme, eğitim sonuçlarını analiz etme ve bir Python betiği kullanarak tahminler yapma sürecini kapsar. Sunucu, YoloV8 özel veri kümesi için iyi bir model yetiştirmek amacıyla dosya sistemini yapılandırmanın ve kayıp işlevini ve doğrulama ölçümlerini analiz etmenin önemini vurgular. Ayrıca kusurlu verilerin tahmin kalitesi üzerindeki etkisini tartışıyorlar ve yeni ve geliştirilmiş bir modeli eğitmek için mevcut modelin tahminlerini kullanmayı öneriyorlar. Genel olarak eğitim, YoloV8 özel veri kümesiyle görüntü segmentasyonu için kapsamlı bir kılavuz sağlar.

  • 00:00:00 Videonun bu bölümünde, eğitmen semantik bölümleme için kullanılacak veri setini gösterir: karşılık gelen ikili maskelere sahip bir dizi ördek görüntüsü. İkili maske, görüntüdeki bir nesne için tüm beyaz piksellere ve diğer her şey için tüm siyah piksellere sahiptir. Eğitmen, bu veri setini açık resim varlığı sürüm 7'den indirir ve kendi resim verilerine açıklama eklenmesi gerekmesi durumunda cvat.ai web sitesini gösterir. Daha sonra eğitmen, tek bir görüntü notunda bir görüntü için ikili maske oluşturmak amacıyla bu aracın nasıl kullanılacağını gösterir.

  • 00:05:00 Eğitimin bu bölümünde sunum yapan kişi, bir görüntüye nasıl açıklama ekleneceğini ve semantik bölümleme için bir ikili maskenin nasıl oluşturulacağını gösterir. Örnek olarak bir ördek görüntüsü kullanarak, ördeğin bir parçası olarak suyun altındaki belirli parçalara açıklama yapılıp yapılmayacağına ilişkin bir tartışma da dahil olmak üzere, izleyiciye ördeğin vücudunun etrafında bir maske oluşturmak için bir çokgen çizme sürecinde rehberlik ederler. Sunum yapan kişi, maskenin mükemmel piksel olması gerekmediğini, ancak iyi bir maske oluşturmak için yeterince doğru olması gerektiğini vurgular. Son olarak, bir veri kümesi oluşturmak için açıklamalı verilerin nasıl kaydedileceğini ve indirileceğini gösterirler.

  • 00:10:00 Bu bölümde konuşmacı, YoloV8 ile semantik bir segmentasyon modeli eğitmek için veri setinin nasıl biçimlendirileceğini ve yapılandırılacağını açıklıyor. İlk adım, Görev Veri Kümesini Dışa Aktar seçeneğini kullanarak ve segmentasyon maskesini seçerek gerekli verileri indirmektir. Veriler indirildikten sonra görüntüleri, maskeleri ve etiketleri içeren bir dizin yapısında düzenlenmesi gerekir. Görüntülerden oluşturulan maskelerin, konuşmacı tarafından sağlanan bir Python betiği aracılığıyla farklı bir dosya biçimine dönüştürülmesi gerekir. Bu dosya formatı YoloV8 tarafından gereklidir ve ikili maskelerle aynı bilgileri içerir. Konuşmacı ayrıca YoloV8'in verileri bulabilmesi ve kullanabilmesi için dosya sistemini belirli bir şekilde yapılandırmanın önemini vurguluyor.

  • 00:15:00 Bu bölümde sunum yapan kişi, Yolov8 özel veri seti ile görüntü bölümleme için gerekli dizin yapısını açıklar. Kullanıcıların iki dizine sahip olması gerekir: biri anlamsal segmentasyon modeli için tüm eğitim verilerini içeren "tren", diğeri ise modeli doğrulamak için kullanılacak görüntüleri içeren "top" adlı dizin. Bu dizinler içinde, her ikisinin de "tren" ve "top" olarak adlandırılan iki alt dizine sahip olan "görüntüler" ve "etiketler" olmak üzere iki başka dizin vardır. İlki, eğitim maskelerinden oluşturulan tüm ek açıklamaları içerir. Sunucu, yapıyı pycharm'da kurar ve kod uygulaması ve yapılandırma dosyası düzenleme dahil olmak üzere Ultralytics tarafından önceden eğitilmiş bir Yolov8 modeli kullanılarak modelin nasıl eğitileceğini açıklamaya devam eder.

  • 00:20:00 Bu bölümde konuşmacı, semantik segmentasyon modelinin ücretsiz bir GPU'ya erişim nedeniyle Google Collab'de eğitildiğini ve bu da süreci çok daha hızlı hale getirdiğini açıklıyor. Konuşmacı, işleme başlamadan önce dizinler ve resimler dahil olmak üzere verilerin ve config.yaml dosyasının yüklenmesini önerir. Ayrıca, konuşmacı Jupiter Notebook'taki her bir hücrenin nasıl yürütüleceğini gösterip açıklıyor ve verilerinin konumunu Google Drive'da paylaşarak, kullanıcıyı verilerini yüklerken aynı şeyi yapmaya teşvik ediyor. Son olarak konuşmacı YOLOv8'i Notebook'ta kullanabilmeleri için Ultralytics'i kurmaktan bahsetmekte ve runtime tipini kontrol ederken Google Collab'ın GPU ile kullanılmasının sağlanmasına vurgu yapmaktadır.

  • 00:25:00 Eğitimin bu bölümünde, konuşmacı modeli 10 dönem için eğitir ve sonuçları segment treni 2 klasörü altına kaydeder. Bir sonraki adım, her şeyin yolunda gittiğini doğrulamak için eğitim sonuçlarını analiz etmektir. Bunu yapmanın en kolay yolu, sonuçların kaydedildiği dizindeki tüm içeriği Google Drive'a kopyalamaktır. Sonuçlar yerel bir bilgisayara yüklendikten sonra konuşmacı, kayıp işlevinin azaldığından emin olmak için kayıp işlevinin, segmentasyon kaybının, eğitim kaybının ve doğrulama kaybı grafiklerinin analiz edilmesine odaklanılmasını önerir. Bu, işlerin yolunda gittiğine dair iyi bir işarettir, artan bir kayıp fonksiyonu ise ciddi bir soruna işaret eder.

  • 00:30:00 Bu bölümde konuşmacı, Yolov8 özel veri kümesi için iyi bir model yetiştirmek amacıyla kayıp işlevini ve doğrulama ölçütlerini analiz etmekten bahsediyor. Eğitim ve doğrulama kaybının azalması iyi bir işarettir ve bu da tahmin kalitesinin iyileşme eğilimine işaret eder. Ancak konuşmacı, eğitim verilerindeki eksik açıklamaların ve diğer kusurların tahmin kalitesini etkileyerek kayıp fonksiyon grafiğinde beklenmedik eğilimlere yol açabileceği konusunda uyarıyor. Bu nedenle konuşmacı, bu çizimleri analiz ederken çılgına dönmemeyi ve modelin genel performansını değerlendirmek için tahminlerin bir analizini dahil etmeyi tavsiye ediyor.

  • 00:35:00 Bu bölümde konuşmacı, mükemmel olmayan ve hataları olan bir veri seti üzerinde eğitilmiş bir modelin doğrulama ve değerlendirme sonuçlarının analiz edilmesinin önemini tartışır. Bu hatalar, yeni ve geliştirilmiş bir modeli eğitmek için mevcut modelin tahminlerini kullanarak ele alınabilir. Konuşmacı, modelin ağırlıklarının kaydedildiği dizini göstererek, sırasıyla last.pt ve best.pt'nin eğitim sırasında en son ve en iyi performans gösteren modelleri temsil ettiğini açıklar. Son olarak konuşmacı, best.pt modelinden çok daha fazla bilgi içerdiğinden less.pt kullanılmasını önerir.

  • 00:40:00 YOLOv8 özel veri kümesiyle görüntü segmentasyonu hakkındaki video eğitiminin bu bölümünde sunum yapan kişi, bir Python komut dosyası kullanarak tahminlerin nasıl yapıldığını gösterir. YOLO paketini Ultralytics'ten içe aktararak başlar ve sonuç dizininden less.pt kullanarak modeli tanımlar. Daha sonra görüntü yolunu belirtir ve bu görüntüyü açıp okumak için CV2'yi içe aktarır. Sunum yapan kişi, görüntüdeki modeli çağırarak model sonuçlarını alır ve tahmin edilen maskeyi elde etmek için sonuçları yineler. Maskeyi orijinal görüntünün boyutuna göre yeniden boyutlandırır ve output.png olarak kaydeder. Sunum yapan kişi, iyi bir tahmin sağlamak için maskenin orijinal görüntünün üzerine nasıl yerleştirileceğini de gösterir.

  • 00:45:00 Bu bölümde sunum yapan kişi, YOLOv8 ile eğittikleri semantik segmentasyon modelinin sonucunu gösterir. Üst üste bindirilmiş bir görüntü ve şeffaflık kullanarak, maskenin %100 mükemmel olmasa da verilerdeki hatalar göz önüne alındığında çok iyi bir sonuç olduğunu gösteriyorlar. Sunum yapan kişi daha sonra verilere açıklama eklemekten, modeli eğitmekten, doğrulamaktan tahminler yapmaya kadar tüm süreci özetler. Son olarak, izleyicileri kanallarına abone olmaya ve yayınladıkları diğer videolara göz atmaya teşvik ederler.
GitHub - computervisioneng/image-segmentation-yolov8
  • computervisioneng
  • github.com
Contribute to computervisioneng/image-segmentation-yolov8 development by creating an account on GitHub.
 

Python ile 5 Saatte Tensorflow Nesne Tespiti | 3 Proje ile Tam Kurs

Kodu alın Tensorflow Nesne Algılama Python Kurs Kodu: https://github.com/nicknochnack/TFODCourse

Tensorflow Nesne Algılama Tepki Uygulaması: https://github.com/nicknochnack/TFODApp

Raspberry Pi için Tensorflow Nesne Algılama: https://github.com/nicknochnack/TFODRPi



Python ile 5 Saatte Tensorflow Nesne Tespiti | 3 Proje ile Tam Kurs


Bölüm 1

  • 00:00:00 Bu bölümde eğitmen, nesne algılamaya yeni başlayanları uygulayıcılar olarak yetkin bir düzeye çıkarmayı amaçlayan nesne algılama kursunu tanıtır. Kurs kapsamlıdır ve TensorFlow nesne algılama API'sinin kurulumunu ve kurulumunu, görüntülerin toplanmasını ve etiketlenmesini, modelin eğitilmesini, algılama modelinin farklı formatlara aktarılmasını ve çeşitli kullanım durumlarında modellerin test edilmesini kapsar. Kursun tamamı, başta Python ve TensorFlow nesne algılama olmak üzere açık kaynaklı araçlar kullanılarak yapılır ve bu da kodu çeşitli nesneleri algılamak için yeniden amaçlandırmayı kolaylaştırır. Eğitmen ayrıca sağladığı çeşitli ek yetenekler nedeniyle nesne algılama modelleri oluşturma sürecini hızlandıran TensorFlow nesne algılama API'sini kullanmanın faydalarını da açıklıyor.

  • 00:05:00 Bu bölümde eğitmen, geleneksel programlama ile makine öğrenimi arasındaki farkı açıklıyor; burada makine öğrenimi, nesneleri algılamak için açık kurallar tanımlamak yerine, kuralları öğrenmek üzere bir nesne algılama modelini eğitmek için verileri ve yanıtları kullanıyor. Model, statik görüntülerdeki ve gerçek zamanlı video akışlarındaki nesneleri algılayabilir ve dışa aktarılabilir ve dondurma ve dönüştürme kullanılarak tensorflow.js ve tf lite gibi farklı biçimlere dönüştürülebilir. Performans ayarı, modelin doğruluğunu artırmak için çok önemlidir ve eğitmen bu konuyu altıncı adımda ele alır. Son olarak eğitmen, küçük parçalardaki kusurları tespit etmek için bir USB mikroskobu kullanma, bir video oyunundaki nesneleri tespit etme ve bir web kamerasından geçen nesnelerin sayısını sayma dahil olmak üzere üç proje gösterir.

  • 00:10:00 Bu bölümde eğitmen, eğitimde işlenecek olan ve baskılı devre kartlarındaki kusurları belirlemek için bir nesne algılama modelinin öğretilmesini, el hareketlerini algılamayı ve modeli bir web uygulamasına entegre etmeyi içeren üç projeyi tanıtıyor. ve bir Raspberry Pi kullanarak gerçek zamanlı nesne tespiti yapmak. Eğitmen, modelleri adım adım oluşturmak için kullanılacak olan projelerin her biri için Github'da üç set kod sağlar. İlk adım, kodu klonlamak ve bir evde ayrı bir oda gibi olmak olarak açıklanan sanal bir ortam oluşturmaktır. Bu bölüm ayrıca öğreticiyi takip etmek için ilerlemeden önce her adımı gözden geçirmek, not almak ve gerekirse sağlanan Discord sunucusu aracılığıyla yardım istemek gibi yararlı ipuçları içerir.

  • 00:15:00 Videonun bu bölümünde eğitmen, TensorFlow nesne algılama modelleriyle çalışırken sanal ortam kullanmanın önemini açıklıyor. Bunu, önceden yüklenmiş kitaplıklarla çakışmamalarını sağlamak için tüm nesne algılama bağımlılıklarının yüklendiği bir evde yeni bir oda oluşturmak olarak tanımlıyor. Eğitmen daha sonra, Visual C++ Yapı Araçları ve GPU tabanlı hızlandırma için CUDA ve CUDNN dahil olmak üzere TensorFlow ile çalışmak için gereken bağımlılıklardan bahseder. Bu kitaplıkların, nesne algılama modellerinin daha hızlı eğitimi için gerekli olduğunu açıklıyor ve bunların nasıl indirilip kurulacağını gösteriyor. Genel olarak, bu bölüm, TensorFlow nesne algılama modelleri oluşturmaya yönelik bir geliştirme ortamı oluşturmak için gerekli temel temeli sağlar.

  • 00:20:00 Eğitim videosunun bu bölümünde eğitmen, gerekli Python, GCC derleyici, Bazel, CUDA ve cuDNN sürümleri dahil olmak üzere TensorFlow Object Detection'ı yüklemek için gerekli gereksinimleri tartışır. Eğitmen, eğitim sırasında GPU'ları kullanmak için TensorFlow, CUDA ve cuDNN sürümlerinin eşleştirilmesinin gerekli olduğunu vurgular. Windows ve Linux/macOS için kurulum kılavuzlarına bağlantılar sağlarlar ve izleyicilere TensorFlow sürümlerini kontrol etmelerini ve uygun CUDA ve cuDNN sürümlerini edinmelerini önerirler. Ayrıca eğitmen, yükleme sırasında veya nesne algılama not defterini çalıştırırken ortaya çıkan yaygın sorunlar için bir hata kılavuzu oluşturduklarından bahseder. Kılavuz, farklı hatalara yönelik çözümler içerir ve sağlanan GitHub deposu bağlantısında bulunabilir.

  • 00:25:00 Bu bölümde, eğitmen Python kullanılarak TensorFlow nesne tespiti için sanal ortamın nasıl kurulacağını gösterir. Gerekli kod ve bağımlılıklarla bir depoyu klonlamak, Python'un venv paketini kullanarak sanal bir ortam oluşturmak ve ortamı etkinleştirmekten oluşan ortamı oluşturmak için izlenmesi gereken adımları gösteriyor. Sanal bir ortam oluşturmak, bir evde yeni bir oda oluşturmaya benzer; burada kitaplıklar ve bağımlılıklar izole bir ortamda TensorFlow nesne algılama projelerinde çalışmak üzere izole edilebilir.

  • 00:30:00 Bu bölümde video oluşturucu, eğitim, uygulama ve Raspberry Pi kodunu ayrı tutmak için TensorFlow Object Detection (TFOD) için sanal ortam oluşturma sürecini tartışıyor. Video oluşturucu, ortamı etkinleştirmek için bir Windows makinesinde bir komut çalıştırmak da dahil olmak üzere sanal ortamı etkinleştirmek için gereken adımları uygular. Pip yükleyiciyi güncellemenin ve ardından TensorFlow'u yüklemenin bir gösterimi var. Bu güncellemelerin avantajı, site paketleri klasörünün içindeki gerçek zamanlı kurulumları görme yeteneğidir. Bazen TensorFlow kurulumunun birden fazla deneme gerektirdiği ve video oluşturucunun her şeyin doğru şekilde kurulduğundan emin olmak için bir doğrulama komut dosyasına sahip olduğu belirtilmektedir.

  • 00:35:00 Bu bölümde konuşmacı gerekli paketlerin nasıl kurulacağını ve Jupyter Notebook ile iPy Kernel kullanılarak sanal ortam kurulumunun nasıl yapılacağını anlatıyor. Ayrıca, yeni başlayanlar için Anaconda Python ve Jupyter Not Defterlerinin kurulumuna yönelik talimatlar da sağlarlar. Ardından iPy Çekirdeğinin nasıl kurulacağını ve daha verimli veri bilimi iş yükü sağlamak için Jupyter Notebook ile nasıl ilişkilendirileceğini açıklarlar. Son olarak, konuşmacı bir TensorFlow nesne algılama modeli oluşturmaya yönelik bir sonraki adımın parçası olarak sanal ortamın nasıl doğrulanacağını ve görüntüleri toplamaya ve etiketlemeye nasıl başlayacağını gösterir.

  • 00:40:00 Bu bölümde eğitmen, nesne algılama modellerini eğitirken iyi görüntüleri toplamanın ve etiketlemenin önemini vurgular. Bunu göstermek için, bir web kamerasından görüntüleri toplamak için bir Jupyter not defterini ve görüntüleri etiketlemek için LabelImg kitaplığını kullanıyor. Eğitmen, etiketleri olabildiğince sıkı tutmak ve nesnelerin farklı açılardan ve farklı aydınlatma koşullarında resimlerini dahil etmek gibi, etiketleme sırasında akılda tutulması gereken en iyi uygulamaları paylaşır. Diğer bir önemli en iyi uygulama, her sınıftan 10 ila 20 fotoğrafla başlamaktır, ancak eğitmen daha azıyla başlar ve performansın yetersiz olması durumunda modeli yeniden eğitmek için nasıl ek resimler ekleneceğini gösterir. Son olarak eğitmen, modele nesnenin arkasında yeşil ekran olmadan çeşitli görüntüler sağlamanın modeli daha genel hale getireceğini ve nesneleri daha iyi algılayabileceğini açıklar.

  • 00:45:00 Bu bölümde eğitmen, izleyicileri TensorFlow nesne algılama öğreticisinin görüntü toplama bileşeni boyunca yönlendirir. Eğitim, web kamerasına erişmek ve görüntü toplamak için kullanılan popüler bir bilgisayarla görme kitaplığı olan OpenCV'nin yüklenmesiyle başlar. Eğitmen, kontrolü sürdürmek ve sorunsuz çalışmayı sağlamak için bağımlılıkların sanal ortamda kurulmasının sağlanmasının önemini vurgular. Kod daha sonra, farklı dosya yollarıyla uyumluluğu sağlamak ve görüntüleri farklı açılardan yakalamak için kullanılacak olan UUID, OS ve zaman gibi gerekli bağımlılıkları içe aktarır. Öğretici daha sonra toplanacak farklı etiketleri tanımlar ve etiketlerin algılanması istenen nesnelere göre değiştirilebileceğini açıklar. Etiketler bir listede saklanır ve eğitmen her etiket için toplanan görüntü sayısının "görüntü sayısı" değişkeni tarafından tanımlandığını açıklar.

  • 00:50:00 Bu bölümde eğitmen, nesne algılama için klasör yapısını ayarlamayı, başlarken çok sayıda görüntüye sahip olmanın önemini ve bir web kamerası veya başka bir yakalama cihazı kullanarak görüntülerin nasıl yakalanacağını tartışır. Klasör yapısı, öğretici boyunca izlenmesi gereken belirli bir dosya yolu kullanılarak oluşturulur. Kod, tüm etiketler arasında dolaşır, web kamerasına bağlanır ve her etiket için görüntü yakalar. Eğitmen, web kamerası için video yakalama cihazı numarasını doğru bir şekilde belirtmenin önemini vurgular, çünkü bu yanlışsa hatalar ortaya çıkabilir.

  • 00:55:00 Bu bölümde, eğitmen nesne algılama için görüntü toplama kodunu açıklar. Kod, etiketler arasında dolaşır ve web kamerasını kullanarak kareleri yakalar. Yeni bir görüntü oluşturur ve onu benzersiz bir tanımlayıcı adıyla ilgili etiket klasörüne yerleştirir. cv2.iamwrite komutu, görüntüyü bir dosyaya yazmak ve ekranda göstermek için kullanılır. Kod ayrıca kullanıcının herhangi bir noktada kaçmak için q tuşuna basmasına izin verir ve bittiğinde her şeyi kapatır. Eğitmen, genelleştirilmiş bir model oluşturmak için görüntüleri farklı konumlarda yakalamanın gerekli olduğunu vurgular.

Bölüm 2

  • 01:00:00 Bu bölümde konuşmacı, projenin fizibilitesini ve olasılığını oluşturmak için bilim projelerinde mümkün olan en kısa sürede prototip oluşturmanın önemini vurgular. Açıklamak için, konuşmacı, aşırı hassas bir model veya mikroskop gibi bir sensör gerektirecek şekilde, bükülmüş LED'lerin algılanmasına ilişkin bir örnek verir. Bir mobil ağ modeli ve bir web kamerası ile hızlı bir şekilde prototip oluşturmak, düşük performans gösterebilir, bu da farklı bir tekniğe veya sensöre ihtiyaç olduğunu gösterir. Prototip oluşturma, iyileştirme için hızlı bir şekilde bir temel oluşturmaya yardımcı olur ve konuşmacı, düşük kaliteli görüntüleri silmenin ve daha iyi algılama için daha iyi kaliteli görüntüler yakalamanın önemini vurgularken, yanlış algılama için toplanan görüntülerle modeli eğitmeye devam eder.

  • 01:05:00 Bu bölümde eğitmen, görselleri etiketlemek için kullanılacak Görsel Etiketleme paketini tanıtır. Kullanıcılar paketi kontrol etmek için Github deposuna gidebilir. Bundan sonra, eğitmen gerekli bağımlılıkların, pi qt5 ve lxml'nin nasıl kurulacağını ve paketi kaydetmek için tensorflow ve label image adlı yeni bir klasörün nasıl oluşturulacağını gösterir. Ardından eğitmen, belirli komutları çalıştırarak Github deposunun nasıl klonlanacağını ve etiket görüntü paketinin nasıl kurulacağını gösterir. Son olarak eğitmen, görsel etiketi uygulamasını açar ve görselleri etiketlemek için hazırlanır.

  • 01:10:00 Bu bölümde eğitmen, OpenCV Etiketleme yazılımını kullanarak görüntüleri nesne algılama için etiketleme sürecini gösterir. Süreç, yazılımdaki belirli dizini açmayı ve etiketlenecek görüntüleri seçmeyi içerir. Eğitmen, algılama etiketlerinde mümkün olduğunca kesin olmayı ve etiket adlarının ek açıklamalardaki ve eğitim adımındaki adlarla eşleşmesini sağlamayı önerir. Buna ek olarak eğitmen, izleyicileri nesne algılamanın farklı uygulamalarını düşünmeye ve bunları aynı etiketleri tanımlama, görüntüleri toplama ve etiketleme sürecini kullanarak denemeye teşvik eder. Her görüntü için karşılık gelen ek açıklamaların bulunmasının sağlanmasının önemi de vurgulanmıştır.

  • 01:15:00 Bu bölümde eğitmen, bir açıklama dosyası oluşturarak bir resmin nasıl etiketleneceğini açıklar. Ek açıklama dosyası, nesnenin görüntüdeki konumunu açıklayan bir xml dosyasıdır. Eğitmen, bir görüntünün birden çok nesneyle nasıl etiketleneceğini gösterir ve ek açıklamaların nasıl düzgün bir şekilde kaydedileceğini açıklar. Görüntüleri etiketleme süreci, dış kaynak kullanımıyla veya hafif nesne algılama modelleri kullanılarak etiketleme sürecini otomatikleştiren daha yeni araçlar kullanılarak ölçeklendirilebilir.

  • 01:20:00 Bu bölümde, video eğitmeni, binlerce görüntü ile devasa bir nesne algılama modeli oluşturmadan önce doğru tekniği kullandığınızdan emin olmak için etiket görüntüsünü kullanarak görüntüleri nasıl etiketleyeceğinizi ve nasıl prototip oluşturacağınızı gösterir. Süper hızlı tutmak için 10-25 görüntüyü etiketleyerek ve doğru veri düzeylerini elde etmek için doğru sensörleri kullanarak başlamanızı önerir. Eğitmen ayrıca modeli bir görüntü segmentinde eğitmek ve daha önce hiç görmediği bir dizi görüntü üzerinde test etmek için görüntüleri bir eğitim ve test bölümüne ayırmanın önemini açıklıyor. Eğitim ve test görüntülerini ve ek açıklamaları depolamak için görüntüler klasörü içinde eğit ve test adlı iki yeni klasör oluşturur.

  • 01:25:00 Bu bölümde nesne algılama modelimizin eğitimi için topladığımız ve etiketlediğimiz görüntü verilerini nasıl hazırlayacağımızı öğreniyoruz. Her sınıf için hem resim hem de açıklama dosyalarını aldığımızdan emin olarak, resimlerimizi ve açıklamalarımızı saklamak için eğitim ve test olmak üzere iki klasör oluşturuyoruz. Daha sonra bunların eğitim için kullanılacak TensorFlow kayıtlarına nasıl dönüştürüleceğini açıklıyoruz. Verilerimizi adlandırmak ve düzenlemek için bazı en iyi uygulamaları da ele alıyoruz. Son olarak, bir TensorFlow nesne algılama modelini eğitmek için gereken bağımlılıkları ve değerlendirme metriklerini kullanarak modelimizi nasıl değerlendireceğimizi tanıtıyoruz.

  • 01:30:00 Bu bölümde konuşmacı, nesne algılama modelinizi eğittikten sonra elde ettiğiniz değerlendirme metriklerini tartışıyor. Bu ölçümler, kesinliği ve doğru tespitlerin oranını hesaplayan ortalama kesinliği (MAP) içerir. Gerçek pozitiflerin, yanlış pozitiflerin, gerçek negatiflerin ve yanlış negatiflerin sayısına göre hesaplanırlar. Konuşmacı, modelin performansını değerlendirirken kesinlik ve hatırlamanın çok önemli olduğunu açıklıyor. Ayrıca konuşmacı, TensorFlow model hayvanat bahçesi seçiminin modelin doğruluğunu ve hızını etkilediğinden bahseder. Farklı modeller, farklı düzeylerde doğruluk ve hız sağlayan farklı mimarilere sahiptir ve uygulayıcıların kullanım durumları için uygun modeli seçmeleri gerekir.

  • 01:35:00 Bu bölümde, transkript, TensorFlow Nesne Tespiti için bir model mimarisi seçerken model hızı ve doğruluk arasındaki ödünleşimleri tartışır. Video, farklı model seçeneklerini ve bunlara karşılık gelen kare hızlarını ve ortalama kesinlik puanlarını sunar. Sunum yapan kişi, bazı mimarilerin hızlı ve son derece doğru olabileceğini, diğerlerinin ise daha yavaş ancak daha kesin olabileceğini belirtiyor. Ön işleme ve işleme sonrası tekniklerin kullanımı ve görüntü büyütme gibi TensorFlow Güncelleme Algılama modeli API'sini kullanmanın yararlarından da bahsedilir. Bu bölüm, istenirse bir bulut örneğini kullanarak bir modelin nasıl eğitileceğine ilişkin bir tartışma ile sona erer.

  • 01:40:00 Bu bölümde eğitmen, önceden eğitilmiş model adı ve URL'nin yanı sıra tf kayıt komut dosyası ve etiket eşleme adı gibi değişkenlerin ayarlanmasını içeren TensorFlow Nesne Algılama modelinin kurulumunu açıklar. Ek açıklamalar, resimler, modeller ve kontrol noktaları için klasörler içeren çalışma alanıyla birlikte modelin klasör yapısı da gösterilir. Sonraki adım, TensorFlow modellerini TensorFlow model hayvanat bahçesinden indirmek ve kurulumun başarılı olmasını sağlamak için eğitmenin adım adım yürüdüğü TensorFlow Object Detection paketini kurmaktır. Süreç, TensorFlow Object Detection deposunun klonlanmasını ve gerekli bağımlılıkların kurulmasını içerir.

  • 01:45:00 Bu bölümde sunum yapan kişi, TensorFlow Object Detection model API'sinin nasıl klonlanacağını ve kurulacağını açıklıyor. Model API, çok sayıda belge ve açık kaynak öğretici içeren TensorFlow model bahçesinden indirilebilir. Sunum yapan kişi daha sonra, TensorFlow Nesne Algılama Modeli API'sini kullanmak için gerekli tüm dosyaları içeren araştırma klasörüne nasıl gidileceğini gösterir. Araştırma klasörünü klonladıktan sonra sunum yapan kişi, TensorFlow Object Detection model API'sini başarılı bir şekilde kurmak için gerekli protokol ve diğer gerekli bileşenlerin nasıl kurulacağını açıklamaya devam eder. Son olarak sunum yapan kişi, TensorFlow Object Detection API'nin başarıyla kurulup kurulmadığını kontrol etmek için bir doğrulama komut dosyası çalıştırarak kurulumun nasıl doğrulanacağını gösterir.

  • 01:50:00 Bu bölümde eğitmen, nesne algılama için Tensorflow'u doğrulama ve yükleme sürecinden geçer. Tensorflow'un doğru şekilde kurulduğundan emin olmak için bir doğrulama komut dosyasının kullanıldığını ve hataları kontrol etmek için çalıştırılabileceğini açıklıyor. Betik, çalıştırıldığında Tensorflow'un kurulu olup olmadığını gösteren standart bir Tensorflow nesne algılama betiğidir. Tensorflow doğru bir şekilde kurulmadıysa eğitmen, matplotlib ve yaml gibi ek paketlerin kurulması da dahil olmak üzere nasıl yapılandırılacağı konusunda rehberlik sağlar. Eğitmen, izleyiciye, hatalarla karşılaşırlarsa, yaygın olarak karşılaşıldıkları ve çözmeleri kolay oldukları için bunları google'da bulabileceklerini garanti eder. Son olarak, doğrulama betiğinin alt kısmındaki "tamam" işaretine başarılı bir şekilde ulaşmanın, Tensorflow'un doğru bir şekilde kurulduğu anlamına geldiğini belirtiyor.

  • 01:55:00 Bu bölümde video, TensorFlow'un kurulum sürecini ve nesne algılama için gerekli paketleri içermektedir. Eğitmen, TensorFlow, Matplotlib, Protobuf, Cushion ve Pymel'in nasıl kurulacağını gösterir. Eğitmen, ortamınıza bağlı olarak farklı olabileceğinden kurulum sürecini kontrol etmenizi önerir. Video ayrıca, GPU'yu eğitim için kullanmak istiyorsanız gerekli olan CUDA ve CuDNN'yi yükleme adımlarını da anlatıyor. Eğitmen, CUDA ve CuDNN'nin doğru sürümünün nasıl bulunacağını açıklar ve kurulum sürecinden geçer. Son olarak eğitmen, çekirdeği yeniden başlatarak Nesne Algılama API'sinin not defterine nasıl başarıyla aktarılacağını gösterir.

Bölüm 3

  • 02:00:00 Bu bölümde eğitmen, bir GPU üzerinde eğitim alıyorsanız gerekli olan Nvidia cuDNN'yi indirme ve yükleme sürecini anlatıyor. Öncelikle, ücretsiz bir Nvidia Geliştirici hesabına kaydolmanız, ardından cuDNN'yi indir'i seçip oturum açmanız gerekir. Kullanılabilir iki sürüm vardır ve TensorFlow sürümünüzle uyumlu sürümü indirmeniz gerekir. Eğitmen, sıkıştırılmış dosyayı nasıl çıkaracağınızı ve cuDNN dosyalarını CUDA kurulum konumunuzdaki ilgili klasörlere nasıl kopyalayacağınızı açıklar. Dosyaları kopyaladıktan sonra, son adım CUDA klasörünün bir Windows makinesinde yolunuza eklendiğinden emin olmaktır.

  • 02:05:00 Videonun bu bölümünde eğitmen, TensorFlow'un kurulum sürecini ve düzgün çalışıp çalışmadığının nasıl test edileceğini açıklıyor. Video daha sonra, özel nesneleri algılamak üzere transfer öğrenimi için kullanılacak olan TensorFlow model hayvanat bahçesinden önceden eğitilmiş bir nesne algılama modelini indirme işlemine geçer. Eğitmen, modelin nasıl indirileceğini gösterir ve indirilen dosyaların farklı bileşenlerini açıklar. Son olarak, özel nesne algılama için farklı etiketleri temsil eden bir etiket haritası oluşturulur.

  • 02:10:00 Bu bölümde eğitmen, bir etiket haritasının oluşturulmasını ve tf kayıtlarının oluşturulmasını anlatır. Etiket eşleme dosyası eğitim süreci boyunca daha sonra kullanılacağından, uygun etiketlemenin öneminin altını çiziyor. Video, bir tren ve test kaydı oluşturma ve özellikle ince ayar kontrol noktası, etiket harita yolu ve giriş yolu olmak üzere model için yol bileşenlerinin nasıl güncelleneceği konusunda rehberlik eder. Son olarak, modelin mimarisini belirleyen ve belirli modeller için özelleştirilmesi gereken işlem hattı yapılandırma dosyasının önemini vurgular.

  • 02:15:00 Videonun bu bölümünde eğitmen modelin eğitimi için konfigürasyon dosyasının nasıl kurulacağını anlatıyor. Ardışık düzen dosyası, önceden eğitilmiş modeller klasöründen kopyalanır ve ardından yapılandırma, sınıf sayısıyla birlikte tüm farklı dosya yollarını ayarlayarak ve ince ayar kontrol noktası, etiket eşleme yolu, giriş yolu vb. ayarlayarak kod aracılığıyla yapılır. Kurulum tamamlandıktan sonra, model eğitim betiği, Pipeline.config dosya yolu, ardışık düzen yapılandırması ve eğitim adımlarının sayısı gibi gerekli argümanlarla çalıştırılarak eğitilebilir. Model eğitiminin ilerleyişini görmek için komutun not defteri dışında ayrı bir komut isteminde çalıştırılması önerilir.

  • 02:20:00 Bu bölümde eğitmen nesne algılama eğitim sürecinde oluşan hataları giderir. Çoğu hatanın doğru kitaplığı kurarak veya çevrimiçi çözümler arayarak çözüldüğünü açıklıyor. Ayrıca, kullanıcıların GPU'dan yararlanmak istiyorlarsa doğru TensorFlow GPU sürümünü yüklediklerinden emin olmaları gerektiğini de belirtiyor. Eğitmen daha sonra izleyicileri belirli hataları çözmek için kitaplıkları kaldırma ve yeniden yükleme sürecinde yönlendirir ve bu işlemin biraz zaman alabileceğini ancak başarılı bir nesne algılama eğitimi için gerekli olduğunu vurgular. Son olarak, izleyicilere doğru kitaplıkları yüklediklerini nasıl kontrol edeceklerini ve eğitim çalışmasının ilerlemesini nasıl izleyeceklerini gösteriyor.

  • 02:25:00 Bu bölümde eğitmen, modeli eğitme ve performans ölçütlerini değerlendirme sürecini tartışır. Eğitim başlatıldıktan sonra, her 100 adımdan sonra, modelin doğru şekilde eğitildiğini gösteren kayıp ölçümleri görünür. 2000 adımlık eğitim modelinin çıktısı üretilir ve modelin 0,188'lik nihai bir kayıpla başarılı bir şekilde eğitildiğini gösterir. Eğitmen daha sonra TensorFlow nesne algılama kitaplığını kullanarak modeli nasıl değerlendireceğini ve eğitilen model için performans ölçümleri oluşturan değerlendirme komut dosyasını nasıl çalıştıracağını açıklar. Ortalama kesinlik ve geri çağırma ölçümleri daha sonra TensorFlow için etkileşimli bir izleme aracı olan TensorBoard kullanılarak görüntülenebilir.

  • 02:30:00 Bu bölümde eğitmen, izleyicileri eğitim ve değerlendirme sırasında metrikleri görüntülemek ve izlemek için Tensorboard'u kullanarak yönlendirir. Tren klasörüne giderek, zaman içindeki kayıp ölçümlerini görebilirler ve değerlendirme klasörüne giderek ortalama kesinlik, kesinlik ve geri çağırma gibi değerlendirme ölçümlerini görebilirler. İzleyiciler ayrıca görsellere bakarak modelin gerçek zamanlı performansını ve doğru kategorize edip etmediğini görebilir ve grafiği dondurduktan sonra nasıl dışa aktaracağını öğrenirler.

  • 02:35:00 Bu bölümde eğitilen model kontrol noktasından yüklenir ve bir görüntü üzerinde nesne tespiti yapılır. En son kontrol noktası, işlem hattını ve tüm kontrol noktalarını içeren özel model klasöründe bulunabilir. En son kontrol noktası içe aktarıldığında, bir görüntü seçilebilir ve algılama işlevi kullanılarak nesne algılaması gerçekleştirilebilir. Algılama işlevi, bir web kamerasından gerçek zamanlı nesne algılamaları yapmak için de kullanılır. Çok fazla görüntü olmadan sadece 2000 adımlık eğitime rağmen, model farklı el hareketlerini algılamada iyi bir performans sergiliyor.

  • 02:40:00 Bu bölümde, eğitmen nesne algılama modelinin performansını başparmak yukarı, başparmak aşağı, uzun yaşa ve çift el gibi farklı el hareketlerinde gösterir. Modelin performansı, el hareketine ve kameraya olan uzaklığa bağlı olarak değişir, ancak eğitim setine daha fazla görüntü eklenerek ince ayar yapılabilir. Bölüm daha sonra donmuş bir grafik oluşturarak ve onu TensorFlow.js ve TFLite'a dışa aktararak modeli dondurma ve dönüştürme aşamasına geçer. Dönüştürülen model, bir web uygulaması veya Raspberry Pi projesi için kullanılabilir. Özel modelin son çıktısı, kontrol noktası, kayıtlı model varlıkları, değişkenler ve ardışık düzen yapılandırmasıyla önceden eğitilmiş modellere benzer.

  • 02:45:00 Bu bölümde konuşmacı, yapılması gereken son dönüşüm olan tf ışığa dönüştürmeyi tartışır. Bu, iki kısımda yapılır: ilk olarak, grafik bir tf lite grafiğine aktarılır ve ardından, onu kullanmak için gereken tam çıktıyı çıkarmak için tf lite dönüştürücü kullanılarak çalıştırılır. Konuşmacı, bunun uçtan uca model olduğunu ve grafiği dondurup tfjs ve tf lite'a aktardıklarını ve böylece tensorflow nesne algılama API'si ile çalışmanın tam adımlarını tamamladıklarını belirtiyor. Konuşmacı ayrıca performans ayarlamasını tartışmaya devam ediyor ve modelin performansını iyileştirmek için yapılabilecek üç önemli şeyi not ediyor: eğitim veri setine düşük performanslı bir sınıfın daha fazla görüntüsünü eklemek, modeli daha uzun süre eğitmek ve model mimarisini değiştirmek.

  • 02:50:00 Videonun bu bölümünde sunum yapan kişi, daha alakalı eğitim görüntüleri ekleyerek nesne algılama modelinde düşük performanslı sınıfların performansının nasıl iyileştirileceğini gösterir. Sunum yapan kişi, her bir sınıfın görüntülerini toplamak yerine, farklı ellerle iyi performans göstermeyen daha fazla beğenilen ve beğenilmeyen görüntü toplar. Sunum yapan kişi OpenCV'yi içe aktarır ve yalnızca beğenme ve beğenmeme görüntülerini toplamadan önce etiket haritasını günceller. Toplanan görüntüler, sunucunun bunları değerlendirdiği ve kalitesiz olanları kaldırdığı Tensorflow çalışma alanında saklanır. Son olarak, sunum yapan kişi, modelin performansını artırmak için farklı bir el ile beğenmediği birkaç resim daha ekler.

  • 02:55:00 Videonun bu bölümünde, eğitmen başparmak yukarı ve başparmak aşağı el hareketleri için daha fazla görüntü yakalamak üzere kodu çalıştırır. Görüntüleri yakaladıktan sonra, eğitmen görüntülerin kalitesini kontrol eder ve tüm beğenilen görüntülerin kalmasına karar verir ve beğenilmeyen görüntülerin bazılarını ekrandan kaldırır. Eğitmen daha sonra LabelImg aracını açar ve etiket adlarının büyük/küçük harf duyarlılığına dikkat ederek yeni görüntüleri yeniden etiketler. Eğitmen, görüntüleri etiketlemenin bu adımının deneme yanılma olduğunu ve modelin daha iyi performans göstermesini neyin sağladığını değerlendirip görebileceğini belirtiyor. Eğitmen, verimliliği artırmak için otomatik etiketleme araçlarına bakmayı önerir, ancak manuel ayarlamaya gerek kalmaması için performanslarına dikkat edilmesini önerir.

4. Bölüm

  • 03:00:00 Bu bölümde eğitmen, TensorFlow Nesne Algılama modelinin eğitimini iyileştirmek için görüntülerin nasıl hızlı bir şekilde etiketleneceğini gösterir. Modelin doğruluğunu değerlendirmek için etiketli görüntülerin hem eğitim hem de test klasörlerine kopyalanmasının önemli olduğunu açıklıyor. Ardından, yeni bir klasör oluşturmak için eğitim ve algılama not defterindeki özel model adını değiştirerek "ayarlanmış" bir modelin nasıl eğitileceğini gösteriyor. Daha sonra, önceden eğitilmiş ardışık düzen yapılandırmasının yeni ayarlanmış modele nasıl kopyalanacağını ve ardışık düzen yapılandırmasında güncellemelerin nasıl yapılacağını tartışıyor. Son olarak, eğitim için gereken yeni tf kayıt dosyalarını oluşturmak için sağlanan kodu kullanarak gerekli tüm yolları yapılandırır.

  • 03:05:00 Bu bölümde eğitmen, standart konfigürasyonu kullanarak eğitim için tüm etiket eşleme yollarını tanımlayan ardışık düzen konfigürasyonunu günceller. Ardışık düzenin güncellenmesi, eğitim betiğinin çalıştırılmasına zemin hazırladığı için önemli bir adımdır. Eğitim adımı sayısı önceki yapılandırmadan 3000'e güncellenir ve eğitilen modeli oluşturmak için komut çalıştırılır. Eğitim adımlarının tamamlanmasının ardından, bu model değerlendirilir ve 7. adımdaki kod çalıştırılarak önceki modelle karşılaştırılır. Değerlendirme ölçümleri, ortalama kesinliğin 0,7'den 0,834'e yükseldiğini ve algılamanın daha hızlı ve daha doğru olduğunu göstermektedir. Eğitmen, daha fazla görüntü, ek etiket ve farklı konumlar ekleyerek modeli geliştirmeyi ve daha iyi bir nesne algılama modeli üretmeyi gösterir. Son olarak, yeni model yüklenir ve nesneleri çok hızlı ve doğru bir şekilde algılayan gerçek zamanlı algılama için kod çalıştırılır.

  • 03:10:00 Bu bölümde eğitmen, modelin mimarisini değiştirerek Tensorflow Nesne Algılama modelinin performansını iyileştirmenin yollarını tartışıyor. Bunu yapmak için kullanıcının algılama not defterinde kullanmak istediği önceden eğitilmiş modelin bağlantısını güncellemesi gerekir. Kullanıcı, yeni bağlantıyı ve adı kopyalayıp yapıştırarak önceden eğitilmiş yeni modeli önceden eğitilmiş modeller klasörüne indirebilir. Ancak eğitmen, farklı tarzlarda görseller kullanmak, farklı açılara sahip görseller kullanmak ve daha uzun süre eğitim vermek gibi görsel kalitesini iyileştirerek daha iyi performans elde edildiğini vurgulamaktadır. Eğitmen ayrıca görüntüleri sıkıştırarak ve Colab'daki eğitim ve algılama not defterine aktarmadan önce arşivleyerek Google Colab'da bir modelin nasıl eğitileceğini gösterir.

  • 03:15:00 Bu bölümde eğitmen, izleyicilere TensorFlow nesne algılama programında kullanılacak görüntülerin yüklenmesi, TensorFlow model deposunun klonlanması ve TensorFlow nesne algılama yazılımının yüklenmesi sürecinde rehberlik eder. Önceden eğitilmiş model getirilir ve etiket haritası oluşturulur. Eğitmen, modeli eğitmeden önce models/my_ssd_mobnet klasörü içinde özel bir yapılandırma oluşturur. İzleyici, gerçek zamanlı nesne algılamanın Colab kullanan bir web kamerası ile yapılamayacağı, ancak bir görüntü ile yapılabileceği konusunda uyarılır. İzleyici süreç boyunca adım adım ilerlerken, ortalama ortalama hassasiyeti ve ortalama hatırlamayı görmek için modelini değerlendirebilir.

  • 03:20:00 Videonun bu bölümünde eğitmen, eğitilmiş modeli kullanarak bir görüntüdeki nesnelerin nasıl algılanacağını gösterir. En son kontrol noktası yüklenir ve algılama komut dosyasını çalıştırmak için görüntü adı belirtilir. Eğitmen görselin geçerli olması ve görseller klasöründe bulunması gerektiğini vurgular. Hücre çalıştırıldıktan sonra eğitilmiş nesne algılama modeli, görüntüdeki nesneyi tanımlar. Eğitmen ayrıca dosyaların nasıl sıkıştırılacağını ve dışa aktarılacağını açıklar ve kodu yerel olarak çalıştırırken nesne algılama API'sinin kurulması gerektiğini vurgular. Bölüm, nesne algılama için mikroskop kullanma, bir TensorFlow.js web uygulaması oluşturma ve Raspberry Pi duyarlılık algılama gerçekleştirme dahil olmak üzere, daha sonra ele alınacak olan üç projenin önizlemesiyle sona eriyor.

  • 03:25:00 Bu bölümde eğitmen, küçük LED'lerdeki kusurları tespit etmek için bir USB mikroskobu kullanmayı içeren ilk projeyi açıklayarak başlar. Mikroskop, diğer herhangi bir kamera gibi ele alınır ve video akışı, OpenCV kitaplığı kullanılarak elde edilir. Eğitmen, Python kodunu kullanarak mikroskobun nasıl konumlandırılacağını ve yakınlaştırılacağını gösterir ve video beslemesini görüntüler. Video beslemesi daha sonra nesne algılama için eğitim görüntüleri toplamak için kullanılır. Bu projenin amacı, LED'lerdeki kusurları tespit etmek ve bunları bükülmüş veya bükülmemiş olarak sınıflandırmak için bir model yetiştirmektir.

  • 03:30:00 Üç proje içeren TensorFlow Nesne Algılama tam kursunun bu bölümünde eğitmen, bir web kamerasından veya mikroskop beslemesinden görüntü yakalamak için OpenCV'nin nasıl kullanılacağını gösterir. Herhangi bir cv2 web yakalamayı kapattıktan sonra "cap.release" çalıştırmak da dahil olmak üzere, yakalama cihazını serbest bırakmak ve herhangi bir OpenCV penceresini yok etmek için en iyi uygulamaları gözden geçiriyor. Daha sonra, LED pimlerinin görüntülerini yakalamak için mikroskobun konumunun ve odağının nasıl ayarlanacağını ve kusurlu ve kusurlu olmayan pimlerin görüntülerini saklamak için iki yeni klasörün nasıl oluşturulacağını gösterir. Son olarak, her şeyin beklendiği gibi çalıştığından emin olmak için web kamerası beslemesini görüntü yakalama için test ediyor.

  • 03:35:00 Videonun bu bölümünde eğitmen, nesne tespiti için arızalı ve arızasız bir iğnenin görüntülerinin nasıl toplanacağını gösteriyor. Pimleri konumlandırırlar ve görüntü yakalamalar arasındaki uyku süresini ayarlarlar, ardından yakalamalar arasında duraklatmak için uyku işlevini kullanırlar. Eğitmen ayrıca etiketleme satırını ve klasör konumunu kullanarak görüntülerin nasıl etiketleneceğini açıklar. İzleyicileri, yorumlar bölümünde veya Discord sunucusunda açıklama istemeye veya geri bildirimde bulunmaya teşvik ederler.

  • 03:40:00 Videonun bu bölümünde eğitmen, TensorFlow kullanarak özel bir nesne algılama modeli eğitmek için görüntüleri etiketleme sürecinden geçiyor. Eğitmen bir mikroskop kullanarak kusurlu ve kusurlu olmayan pimlerin görüntülerini yakalar ve buna göre etiketler. Ardından, eğitim boru hattını kurmadan önce görüntüleri eğitim ve test klasörlerine kopyalarlar. Eğitmen, özel nesne algılama modelleri için nasıl yeni bir klasör oluşturacaklarını ve yeni etiketleri içerecek şekilde etiket haritasını nasıl güncelleyeceklerini açıklar. Bu bölümde kullanılan kod tabanı oldukça genel amaçlıdır, pek çok özelleştirmeye izin verir ve eğitmen, performans ayarıyla ilgili ipuçları sağlar.

  • 03:45:00 Eğitimin bu bölümünde, modelin eğitimine izin veren TensorFlow kayıtları oluşturmaya odaklanılmaktadır. Önceden eğitilmiş modelleri indirmek ve etiket haritaları oluşturmak için gerekli hücreler tartışıldı, ancak modelin eğitilmesine izin verecek TensorFLow kayıtları oluşturmaya odaklanıldı. TensorFlow kayıtları oluşturulduktan sonra model yeni sınıflarla güncellenir ve güncellenen yapılandırma kaydedilir. Model 2000 adım için eğitilir ve yeni model, arızalı ve arızasız pinleri tespit etmek için test edilir. Dizüstü bilgisayarın ana hatları çizilir ve kullanıcı, bu modelin geliştirilmesine izin veren belirli hücrelere yönlendirilir.

  • 03:50:00 Bu bölümde eğitmen, bozuk bir pimi ve bozuk olmayan bir pimi tespit etmek için görüntüyü günceller. Sistem, her iki pimi de yüksek bir güvenle başarıyla algılar. Bununla birlikte eğitmen, arızalı pim belirli bir konumdayken sistemin iyi performans göstermediğini fark ederek bir ayarlama değiş tokuşunu vurgular. Eğitmen, algılama çerçevesinin, algılama doğruluğunun seviyesini belirlemek için değiştirilebilen parametrelere sahip olduğunu gösterir. Minimum puan eşiğini düşürerek, sistem kusurlu pimi oldukça iyi bir şekilde tespit edebilir, ancak diğer birçok şeyi kusurlu olarak tespit etme pahasına. Eğitmen, sistemin sağlamlığını gösteren bir açıda ve üzerinde alıştırma yapılmamış olmak üzere farklı renkli pimlerle sistemi test eder.

  • 03:55:00 Bu bölümde eğitmen, nesne algılama yöntemi olarak mikroskop kullanarak ilk projesinin sonuçlarını gösterir. Pimlerin açılarını ve konumlarını değiştirerek tespit edilen pimleri ve arızalı veya arızasız olarak nasıl sınıflandırıldığını gösterir. Görüntülerin yakalanmasını ve etiketlenmesini, bir mikroskop klasörü oluşturulmasını ve modelin eğitilmesini içeren ilk projenin sürecini özetliyor. Bir sonraki proje, bir nesnenin yönünü algılamak için bir web uygulaması oluşturmaya odaklanıyor. Bu, TensorFlow Object Detection Course kodunun TensorFlow Object Detection Uygulaması Github Deposu ile birleştirilmesini içerir. Amaç, gelecekte bir web sitesi olarak konuşlandırılabilecek yukarı-aşağı-sola-sağa hareketi tespit etmektir.

Bölüm 5

  • 04:00:00 Videonun bu bölümünde eğitmen, Tensorflow nesne algılama için etiketlerin nasıl ayarlanacağını ve sıfırlanacağını açıklıyor. Başparmak yukarı veya aşağı veya kusurlu ve kusurlu olmayan iğneler gibi etiketleri tanımlamak yerine, bunun yerine sol, sağ, yukarı ve aşağı gibi yönlü hareketlerin nasıl tanımlanacağını gösterirler. Ardından, farklı yönler için nasıl klasör oluşturulacağını ve eğitim için kullanılacak görüntülerin nasıl toplanacağını gösterirler. Eğitmen ayrıca, görüntü durumlarına dikkat ederek, görüntülerin LabelImg kullanılarak nasıl etiketleneceğini açıklar ve yetersiz sonuçlar olması durumunda performans ayarlaması önerir. Son olarak, görüntülerin doğru yön için nasıl etiketleneceğini göstermeye devam ederler.

  • 04:05:00 Videonun bu bölümünde eğitmen, nesne algılama modelinde kullanmak üzere görüntülerin nasıl etiketleneceğini gösterir. Nesne/sınıf başına yalnızca beş görüntü kullanılır, ancak kullanıcı sayıyı istediği gibi ayarlayabilir. Eğitmen bunun yinelemeli bir süreç olduğunu ve farklı sayıda görüntüyle deneme yapmanın uygun olduğunu söylüyor. Görüntüler etiketlendikten sonra, her görüntü/sınıf için 80/20'lik bir ayrımla eğitim ve test klasörlerine ayrılırlar. Klasörler ayarlandığında eğitmen klasörün adını değiştirir ve "yönler" adı verilen yeni bir dosya yolu oluşturur. Son olarak eğitmen, sanal ortamın zaten kurulu olduğunu ve herhangi bir ekstra adım atmaya gerek olmadığını not eder.

  • 04:10:00 Bu bölümde, etiket haritası "sol", "sağ", "yukarı" ve "aşağı" için yeni etiketlerle güncellenir ve her birine benzersiz tanımlayıcılar atanır. Ek açıklamalar daha sonra etiket haritasını güncellemek ve gerekli tren ve test tfrecord dosyalarını oluşturmak için çalıştırılır. Model daha sonra eğitim komut dosyası oluşturmak için bir komut kullanılarak eğitilir ve kayıp 0,299 olarak hesaplanır. Kontrol noktası 3, gerçek zamanlı algılamalar için bağımlılıkları içe aktarmak üzere geri yüklenir ve minimum puan eşiği 90'a ayarlanır. Son olarak, nesne algılama modeli için gerçek zamanlı algılamalar oluşturmak üzere web kamerası etkinleştirilir.

  • 04:15:00 Bu bölümde eğitmen, iyi performans göstermeyen belirli sınıfların daha fazla görüntüsünü ekleyerek modelin nasıl değerlendirileceğini ve doğruluğunun nasıl artırılacağını gösteriyor. Bunu işaret ederek gösterir.
    iki elinizi kullanarak ve modelin nasıl performans gösterdiğini görerek farklı yönlere hareket ettirin. Ardından grafiği dondurmak, dışa aktarmak ve tensorflow.js'ye dönüştürmek için harekete geçer. Ayrıca, modelin IBM Cloud Object Store'a nasıl yükleneceğini ve github deposunda bulunan adımların nasıl uygulanacağını da açıklıyor. Eğitmen daha sonra depoyu klonlamaya devam eder, yeni bir komut istemi açar ve uygun klasörlere nasıl gidileceğini gösterir.

  • 04:20:00 Videonun bu bölümünde eğitmen, görüntü tanıma için TensorFlow nesne algılamayı kullanmak üzere bir geliştirme ortamının nasıl hazırlanacağını adım adım anlatıyor. Eğitmen önce gerekli klasörlere nasıl gidileceğini ve TensorFlow nesne algılama deposunun nasıl kopyalanacağını gösterir. Ardından eğitmen, Node.js'nin nasıl kurulacağını ve depo için bağımlılıkları gösterir. Son olarak eğitmen, IBM Cloud üzerinde yeni bir bulut nesne depolama bölümünün nasıl oluşturulacağını ve nasıl adlandırılacağını gösterir. Bu işlem, videonun sonraki bölümlerinde web tabanlı kullanıcı arayüzünün kullanılması için gereklidir.

  • 04:25:00 Bu bölümde eğitmen, IBM Cloud Object Storage içinde bir klasör oluşturmak ve model.json ve .bin dosyalarını bu klasöre yüklemek olan öğreticideki beşinci adımla devam eder. Ardından, modele herhangi bir yerden erişilmesine izin veren bir genel erişim politikasını etkinleştirir ve daha sonra uygulamada kullanmak üzere model.json dosyasının URL'sinin nasıl alınacağını gösterir. Ardından, IBM Cloud Object Storage CLI'yi kurduktan sonra CLI komutlarını çalıştırarak Kaynaklar Arası Kaynak Paylaşımını (CORS) etkinleştirme sürecini adım adım anlatıyor.

  • 04:30:00 Bu bölümde video, IBM Cloud CLI ve IBM Cloud Object Storage CLI'nin bir komut satırı arabirimi aracılığıyla nasıl kurulacağını ve bir web uygulamasının bir URL'ye erişmesine olanak tanıyan kaynaklar arası kaynak paylaşımını (CORS) etkinleştirdiğini gösterir. başka bir yerden. Komut ayrıca IBM Cloud Storage Client'ı kurar ve onu bir yapılandırma dosyasıyla yapılandırır. Video, bir kullanıcının klasörü adının, neden ilkesini klasörün kök klasörüne yerleştiren bir komutla nasıl değiştirileceğini gösterir. Son olarak video, neden ilkesinin bulut yapılandırma dosyasında yer aldığını ve klonlanmış havuzun bir parçası olduğunu, yani dosya oluşturmaya gerek olmadığını açıklıyor.

  • 04:35:00 Bu bölümde eğitmen, TensorFlow.js web uygulamasını çalıştırmak için gerekli dosyaların nasıl güncelleneceğini açıklar. Adımlar, Google Bulut Depolama kimlik bilgilerini ayarlamayı, app.js'de model URL'sini güncellemeyi, utilities.js'de etiket eşlemesini güncellemeyi ve uygulamayı npm start kullanarak başlatmayı içerir. Eğitmen ayrıca, güven metriğini değiştirme ve algılama sonucu dizisindeki nesnelerin sırasını kontrol etme dahil olmak üzere, uygulama çalışmıyorsa uygulamada nasıl hata ayıklanacağını açıklar. Genel olarak bu adımlar, kullanıcıların web uygulamasını kendi özel kullanım durumlarına göre özelleştirmesine ve düzgün çalıştığından emin olmasına olanak tanır.

  • 04:40:00 Bu bölümde, video nesnelerin nerede olduğunun nasıl hesaplanacağını ve sonuç dizisinin nasıl değiştirileceğini gösterir. Kullanıcı, kodu inceleyerek sonuç dizisinin beş değer içerdiğini ve her dizinin belirli bir uygulama için kullanılabilen farklı sınıflara sahip olduğunu belirleyebilir. Video ayrıca, çok düşük sayılarla temsil edilen işlem sonrası olmayan kutu sınıfları olan üçüncü nesne gibi her bir nesne dizisinin nasıl doğru kullanılacağı konusunda kullanıcıya rehberlik eder. Ardından video, güven metriğinin ve puan değerlerinin nasıl değiştirileceğini ve kullanıcının kutular dizisinin değerlerini değiştirerek hızlı bir şekilde yapabileceği kutu değerini nasıl ayarlayacağını gösterir.

  • 04:45:00 Bu bölümde, video ikinci projeyi tamamlıyor ve bir Raspberry Pi'de nesne algılama modellerinin çalıştırılmasını içeren üçüncü projeye geçiyor. Konuşmacı, Raspberry Pi'de çalışan nesne algılama modellerinin, GPU eksikliği nedeniyle önceki iki projeden farklı olduğunu ve bu nedenle modeli özellikle Tensorflow lite formatına dönüştüreceklerini belirtiyor. Mutlu ve üzgün yüzlerin görüntülerini toplayacaklar ve modellerini öncekiyle aynı süreci kullanarak eğitecekler. Ancak, bu proje için Raspberry Pi'yi kullanacaklar ve tespitler için uzak masaüstünü kullanacaklar. Video, birden fazla farklı modelin farklı cihazlarda çalıştırılabileceğinden bahsederek sona eriyor ve izleyicileri bu konudaki fikirlerini paylaşmaya teşvik ediyor.

  • 04:50:00 Videonun bu bölümünde eğitmen, mutlu ve üzgün yüzleri tanıyan bir duygu detektörü için görüntülerin nasıl toplanacağını ve etiketleneceğini gösteriyor. Süreç, mevcut görüntüleri silmeyi, yeni görüntüler için yollar oluşturmayı, her duygudan beş görüntü toplamayı, görüntüleri etiketlemeyi ve her nesneyi kaydetmeyi içerir. Eğitmen izleyicilere etiketlemede büyük/küçük harf duyarlılığının çok önemli olduğunu ve bu alıştırma için yeşil ekranların gerekli olmadığını hatırlatır. Ek olarak eğitmen, kullanıcıların bir resim etiketini güncellemek için her zaman resim dizinine dönebileceğini not eder.

  • 04:55:00 Bu bölümde eğitmen, toplanan görüntülerin ve notların nasıl organize edileceğini ve eğitim ve test klasörlerine nasıl taşınacağını gösterir. Yeni bir özel modelin nasıl oluşturulacağını ve etiket haritasını güncelleyerek toplanan görüntüleri mutlu ve üzgün olarak etiketlemeyi gösteriyorlar. Daha sonra tf kayıtları oluştururlar ve önceden eğitilmiş model yapılandırmasını özel model klasörüne kopyalarlar. Konfigürasyonu güncelledikten sonra sanal ortamda çalışan oluşturulan komutu kullanarak modeli eğitirler ve işlemin bitmesini beklerler.

6. Bölüm

  • 05:00:00 Bu bölümde eğitmen, bir GPU makinesinde çalışırken duyarlılık modelinin eğitim çalıştırması sırasında meydana gelebilecek yaygın bir hatadan bahsediyor. Hata mesajı, GPU'nun tamamen tüketildiğini ve sistemin kötü zaman geçirmesine neden olduğunu belirtir. Bu sorunu çözmek için, kullanıcıların herhangi bir zamanda GPU'yu kullanabilecek her şeyi durdurması ve ardından eğitim çalışmasını yeniden başlatması gerekir. Eğitim tamamlandıktan sonra, kullanıcılar işletim sistemini ve bu yolları içe aktarabilir ve en son kontrol noktasını da kontrol edebilir. Eğitmen ayrıca, sistem kurulduktan sonra hızlı ve kolay bir süreç olan duygu modelinin gerçek zamanlı kullanımını gösterir.

  • 05:05:00 Bu bölümde eğitmen, TensorFlow nesne algılamayı kullanarak bir Raspberry Pi algılama modeli oluşturmak için gereken adımları açıklıyor. İlk adım, TensorFlow nesne algılama kursundan geçerek TfLite dosyalarını oluşturmaktır. Ardından, kullanıcılar Raspberry Pi algılama havuzunu klonlamalı, PC'lerine indirmeli veya Raspberry Pi'den klonlamalıdır. Bu yapıldıktan sonra, kullanıcılar gerekli bağımlılıkları kurmalı, dönüştürülmüş modellerini kopyalamalı ve mevcut Detect.tf lite modelini kullanarak çalıştırmalıdır. Eğitmen ayrıca xrdp kullanarak uzak masaüstünün Raspberry Pi'ye nasıl aktarılacağını göstererek işlemi kolaylaştırır.

  • 05:10:00 Bu bölümde eğitmen, bir Raspberry Pi'de TensorFlow'un Object Detection API'si ile çalışmak için gerekli tüm bağımlılıkları yükleme sürecini adım adım anlatıyor. Eğitmen, OpenCV Python'un nasıl kurulacağını ve ayrıca OpenCV'nin Raspberry Pi üzerinde çalışması için gereken diğer bazı bağımlılıkları gösterir. Ardından eğitmen, TensorFlow Lite modellerini Raspberry Pi üzerinde çalıştırmak için gerekli olan TensorFlow Lite çalışma zamanını kurar. Tüm bağımlılıklar yüklendikten sonra, nasıl çalıştığını göstermek için Raspberry Pi üzerinde örnek bir nesne algılama modeli çalıştırırlar. Son olarak, eğitmen sisteme nasıl özel bir model ve etiket ekleneceğini açıklar.

  • 05:15:00 Bu bölümde eğitmen, özel nesne algılamayı ve daha iyi sonuçlar elde etmek için algılama eşiğinin nasıl ayarlanacağını tartışır. Özel nesne algılama iki etiket içerir; mutlu ve üzgün. Eğitmen etiketlerin sırasını birinci nesne olarak mutlu, ikinci nesne olarak üzgün olacak şekilde ayarlar. Özel modeli çalıştırarak herhangi bir nesne algılamaz ve eğitmen algılama eşiğini %20'ye düşürmeye karar verir. Komutu yeniden çalıştırdıktan sonra model nesneleri algılar; bir büyük üzgün ve mutlu bir nesne. Eğitmen, daha iyi performans sonuçları elde etmek için modeli daha fazla görüntüyle eğitmenin gerekliliğini vurgular. Eğitmen, performans sınıflarının daha fazla görüntüsünü ekleyerek ve modeli daha uzun süre eğiterek ek performans ayarı gerçekleştirir.

  • 05:20:00 Bu bölümde konuşmacı, duygu analizi modelinin performansını nasıl iyileştirdiğini açıklıyor. İlk olarak, kendisinin farklı açılardan ek görüntülerini ekledi, bu da modelin iyi genelleme şansını artırıyor. İkinci olarak, modelini 5600 adım daha eğitti ve ona daha büyük bir indeks kontrol noktasına sahip yepyeni bir model verdi. Daha sonra gitti ve bu yeni modeli donmuş bir tf-lite grafiğine dönüştürdü ve mutlu mu yoksa üzgün mü olduğunu tespit etmek için kullandığı Raspberry Pi'ye getirdi. Konuşmacı, yeşil ekranın yukarı veya aşağı olmasının modelinin performansını etkilemediğini ve ne zaman mutlu veya üzgün olduğunu doğru bir şekilde tespit edebildiğini gösteriyor. Konuşmacı, performans ayarının gücünü ve modelin doğruluğunu artırmak için nasıl kullanılabileceğini vurguluyor.

  • 05:25:00 Bu son alıntı Python ile 5 Saatte Tensorflow Nesne Tespiti kursunu sonlandırıyor ve eğitmen izleyicilere daha fazla yardıma ihtiyaçları olursa yorumlarda veya Discord kanalı aracılığıyla ulaşmalarını hatırlatıyor. Kurs, nesne algılama hakkında bilgi edinmek isteyen ve kurs içinde üç projeyi kapsadığı için derinlemesine Tensorflow bilgisi isteyen izleyiciler için faydalıdır.
GitHub - nicknochnack/TFODCourse
GitHub - nicknochnack/TFODCourse
  • nicknochnack
  • github.com
This set of Notebooks provides a complete set of code to be able to train and leverage your own custom object detection model using the Tensorflow Object Detection API. This accompanies the Tensorflow Object Detection course on my YouTube channel. Steps Step 1. Clone this repository: https://github.com/nicknochnack/TFODCourse Step 2. Create a...
 

Tensorflow ve EasyOCR Kullanarak Otomatik Plaka Tanıma 2 Saatte Tam Kurs | Piton

Son Defter: https://github.com/nicknochnack/RealTimeAutomaticNumberPlateRecognition

Temel Kod: https://github.com/nicknochnack/TFODCourse



Tensorflow ve EasyOCR Kullanarak Otomatik Plaka Tanıma 2 Saatte Tam Kurs | Piton

"2 Saatte Tensorflow ve EasyOCR Tam Kursunu Kullanarak Otomatik Plaka Tanıma | Python" başlıklı YouTube videosu, Tensorflow ve EasyOCR kullanarak doğru ve verimli bir otomatik plaka tanıma (ANPR) sistemi oluşturmak için kapsamlı bir kılavuz sağlar. ANPR sistemi, ilgilenilen plaka bölgesini tespit etmek için TensorFlow'un kullanıldığı ve EasyOCR'nin tespit edilen bölgeden metni çıkardığı iki parçalı bir sistem kullanır. Video, sanal ortamların kurulması ve gerekli bağımlılıkların yüklenmesinden eğitim için veri hazırlanmasına ve eğitim sırasında oluşabilecek hataların giderilmesine kadar bir dizi konuyu kapsar. Genel olarak izleyiciler, gerçek zamanlı veya standart görüntü algılama özelliklerine sahip üretim sınıfı bir ANPR sisteminin nasıl oluşturulacağına dair ayrıntılı bir anlayış kazanabilir.

TensorFlow ve EasyOCR ile Otomatik Plaka Tanıma (ANPR) konulu YouTube eğitimi, nesne algılamayı kullanarak plakaların nasıl doğru bir şekilde algılanacağını ve OCR kullanılarak plaka numaralarının nasıl çıkarılacağını kapsar. Eğitmen, plakadan yalnızca ilgili bilgileri çıkarmak için metnin boyuta ve koordinatlara göre nasıl filtreleneceğini tartışır. GPU kaynaklarının nasıl tahsis edileceğini ve TensorFlow için bellek tüketiminin nasıl sınırlandırılacağını, algılama eşiğini geçen görüntü puanlarının, sınıfların ve kutuların nasıl çıkarılacağını ve EasyOCR kullanarak OCR'nin nasıl uygulanacağını gösterirler. Ayrıca video, hem gerçek zamanlı hem de görüntü sonuçları için çıktı sonuçlarının bir CSV dosyasına ve klasör yoluna nasıl kaydedileceğini kapsar. Konuşmacı, kodun izleyiciler için mevcut olduğunu vurgular ve onları yardım istemeye ve geri bildirimlerini paylaşmaya teşvik eder.

  • 00:00:00 sistemi OCR veya optik karakter tanımadır. Bu adım, algılanan plaka beslemesinden metni çıkarmak için EasyOCR adlı bir kitaplığın kullanılmasını içerir ve bu, plakalardaki metni gerçek zamanlı olarak veya standart görüntüler üzerinde okumamıza ve analiz etmemize olanak tanır. Ek olarak, kurs ayrıca önceden tespit edilen plakaları ve ilgili bölgelerini kaydedip günlüğe kaydederek üretim sınıfı önceden oluşturulmuş AMPR sistemlerini taklit eden daha gelişmiş bir sistem oluşturmayı da kapsar. Genel olarak, kurs, Tensorflow ve EasyOCR kullanarak doğru ve verimli bir otomatik plaka tanıma sistemi oluşturmaya yönelik kapsamlı bir kılavuz sunar.

  • 00:05:00 bu bölümde, sunum yapan kişi otomatik plaka tanıma için kullanılan iki parçalı sistemi açıklar. İlk kısım, plaka olan ilgi bölgesini algılamak için TensorFlow nesne algılama modelini kullanır. İkinci kısım, metni algılanan bölgeden çıkarmak için EasyOCR'yi kullanır. Sunucu, TensorFlow ve EasyOCR dahil olmak üzere gerekli bileşenlerin nasıl kurulacağını gösterir ve gerekli dosyaları içeren GitHub deposuna bir bağlantı sağlar. Sunucu, havuzun nasıl klonlanacağını açıklar ve sonuç olarak oluşturulan klasörün içeriğini gösterir. Klasör, plakanın eğitimi ve tespiti için kullanılan bir not defteri dosyası içerir.

  • 00:10:00 Videonun bu bölümünde sunum yapan kişi, TensorFlow ve EasyOCR kullanarak Otomatik Plaka Tanıma'yı (ANPR) çalıştırmak için sanal bir ortam kurma ve gerekli bağımlılıkları yükleme adımlarını anlatıyor. Sunum yapan kişi önce ANPR deposunu klonlar ve Python ile sanal bir ortam oluşturur. Daha sonra sanal ortamı etkinleştirir ve ipi çekirdeği ve pip yükseltmeleri gibi önemli bağımlılıkları kurar. Bu adımlar aracılığıyla, ANPR'nin tüm gücünden yararlanmak için sanal ortamın bir Jupyter not defteriyle nasıl ilişkilendirileceğini gösteriyor.

  • 00:15:00 Bu bölümde eğitmen, "ampr sys" ortamını örnek olarak kullanarak izleyiciye kendi sanal ortamını Jüpyter Not Defteri ile ilişkilendirme sürecini anlatır. Eğitmen bunun önemli olduğunu, çünkü sanal ortamlarla çalışan kişilerin çoğu zaman her şeyi ortamlarına yüklediklerini, ancak Jupyter Defterlerine girdiklerinde hala orada olmadığını söylediğini belirtiyor. Sanal ortam Jupyter Notebook ile ilişkilendirildikten sonra eğitmen, izleyiciyi TensorFlow Nesne Algılama API'sini yükleme ve TensorFlow kullanarak nesne algılama gerçekleştirebilmek için klasör yapısını ayarlama sürecinde yönlendirir.

  • 00:20:00 Bu bölümde eğitmen, transfer öğrenimi kavramını açıklayarak başlar; bu sayede halihazırda var olan son teknoloji bir model, plaka tespiti gibi belirli bir kullanım durumu için ince ayar yapılabilir. Eğitmen daha sonra TensorFlow Model Zoo'dan önceden eğitilmiş modelleri indirmeye ve birkaç kod hücresini çalıştırarak TensorFlow Object Detection API'yi kurmaya devam eder. API ve nesne algılama klasörü gibi bileşenleri, TensorFlow model bahçe deposuna klonlanır ve TensorFlow Object Detection modelinin kurulumu başlatılır. Kurulum, birkaç bağımlılık ve protokol, protokol arabellek sistemi içerir ve tamamlanması biraz zaman alabilir.

  • 00:25:00 Bu bölümde eğitmen, TensorFlow'u ve GPU sürümünü yüklemeyi adım adım anlatıyor. Yalnızca Nvidia GPU'larla uyumlu olan TensorFlow 2.4.1 ve TensorFlow GPU 2.4.1'i yüklerler. Sonunda "Tamam" çıkması gereken bir doğrulama komut dosyası çalıştırarak kurulumun başarılı olduğunu nasıl doğrulayacaklarını gösterirler. Eğitmen ayrıca, Matplotlib ve Pillow kitaplıklarının pip kullanılarak yüklenmesi gibi kurulum sürecinde ortaya çıkabilecek "modül bulunamadı" hatalarının nasıl çözüleceğini de gösterir. Doğrulama komut dosyası, bir sonraki bölüme geçmeden önce gerekli tüm bağımlılıkların yüklenmesini sağlar.

  • 00:30:00 Videonun bu bölümünde sunum yapan kişi, özellikle plaka tanıma için bir nesne algılama modeli oluşturmak için gerekli çeşitli modüllerin kurulumunu adım adım anlatıyor. Yükleme işlemi sırasında birkaç hatayla karşılaşırlar, ancak bunları nasıl çözeceklerini gözden geçirirler. TensorFlow Object Detection ve EasyOCR dahil olmak üzere gerekli tüm modüller yüklendikten sonra sunucu, verilerle çalışan bir sonraki adıma geçer ve araç resimleri ve araç plakaları için notlar içeren bir Kaggle veri kümesi sunar. Modelde kullanım için veri setinin nasıl indirileceğini ve hazırlanacağını gösterirler.

  • 00:35:00 Bu bölümde eğitmen, Otomatik Plaka Tanıma (ANPR) için gerekli verilerin nasıl indirileceğini ve nesne algılama için eğitim ve test setleri halinde nasıl düzenleneceğini tartışır. Ek açıklamaları ve ilgili görüntüleri içeren veriler Kaggle'dan indirilir ve ANPR klasörüne açılır. Görüntüler klasörü içinde biri eğitim, diğeri test için olmak üzere iki yeni klasör oluşturulur ve indirilen görüntüler tren klasörüne kopyalanır. Ek açıklamalar ayrıca eğitim ve test setlerine ayrılır ve eğitim ek açıklamaları karşılık gelen görüntülerin yanında tren klasörüne yerleştirilir. Bu ayrı kümelerin amacı, nesne algılama modelini bir veri kümesi üzerinde eğitmek ve performansını değerlendirmek için bağımsız bir küme üzerinde test etmektir.

  • 00:40:00 Bu bölümde video, bir plaka algılama modelinin eğitimi için verilerin hazırlanma sürecini tartışıyor. Sunucu, Kaggle'dan plaka resimlerini indirdiklerini ve ilgili ek açıklamaları TensorFlow çalışma alanlarındaki "train" ve "test" adlı iki yeni klasöre kopyaladıklarını açıklıyor. Bir sonraki adım, etiketleri güncellemeyi, tf kayıtları oluşturmayı, yapılandırmayı hazırlamayı ve son olarak modeli eğitmeyi içeren nesne algılama modelini eğitmektir. Sunucu, kullanacakları tek etiketi, "lisans"ı tanımlamak için bir "etiket haritası" kullanır ve ardından, nesne algılama modelinin gerektirdiği format olan bir tf kaydı oluşturur. İşlem basit olarak tanımlanır ve tf kaydını oluşturmak için bir komut dosyası sağlanır.

  • 00:45:00 Bu bölümde video, verilerin TensorFlow ve EasyOCR ile eğitim için nasıl hazırlanacağını kapsar. Burada tartışılan komut dosyası, görüntüler ve ek açıklamalar dahil olmak üzere ham verileri bir tf kayıt biçimine dönüştürür, ancak Kaggle veri kümesindeki ek açıklamaların biraz farklı biçimi nedeniyle güncellenmesi gerekir. Video, eksik modüllerin yüklenmesi, doğru sınırlayıcı kutu ölçümlerini almak için dizini değiştirme ve önceden eğitilmiş model yapılandırmasını eğitim klasörüne kopyalama dahil olmak üzere bu tutarsızlık nedeniyle ortaya çıkan hataların nasıl düzeltileceğini gösterir.

  • 00:50:00 Bu bölümde, konuşmacı, modeli eğitmeden önce güncellenmesi gereken farklı yapılandırma satırlarını içeren önceden eğitilmiş model boru hattının ayrıntılarını ele alır. Konuşmacı, parametrelerin güncellenmesini sağlayan ve modeli eğitmek için eğitim komutunu çalıştıran güncellenmiş yapılandırma dosyasının nasıl kopyalanacağını gösterir. Ayrıca, ilerlemeyi düzgün bir şekilde görmek için komutu harici olarak çalıştırmanın öneminden ve komutu çalıştırmak için sanal bir ortamın nasıl etkinleştirileceğinden de bahsediyorlar. Son olarak model kurulurken oluşabilecek standart bir hatanın nasıl çözüleceğini açıklarlar.

  • 00:55:00 Kursun bu bölümünde eğitmen, eğitim sırasında oluşabilecek hataları giderir. Bir numpy dot ve dizi boyutu değişikliği ile ilgili bir değer hatası, cv2 için bir modül bulunamadı hatası, tensorflow eklentileri için bir modül bulunamadı hatası ve gin için bir modül bulunamadı hatası gibi belirli sorunların nasıl çözüleceğini gösterir. Eğitmen bu hataların nadir olmadığını ve bunları çözmek için gerekli kitaplıkların kurulması gerektiğini açıklar. Model eğitildikten sonra eğitmen, kayıp ölçümlerinin nasıl okunacağını ve en son eğitilen model kontrol noktasının nasıl bulunacağını gösterir.

  • 01:00:00 Tensorflow ve EasyOCR kullanarak Otomatik Plaka Tanıma konulu video eğitiminin bu bölümünde eğitmen, aynı modeli kullanarak görüntülerden veya gerçek zamanlı olarak plakaların nasıl algılanacağını anlatır. Model, görüntü dosyası adını değiştirerek farklı plaka türlerini doğru bir şekilde algılayabilir ve sınıflandırabilir. Bu yöntemin, plakaların formatları değişebileceğinden, geleneksel bilgisayarla görme tekniklerinden yararlanan nesne algılama yoluyla çok daha iyi performans gösterdiği bulunmuştur. Model ayrıca canlı bir video akışından veya arabanın plakasının önüne bir telefon tutarak plakaları algılayabilir. Eğitmen, yöntemin etkili olduğunu ve bir plaka dedektörü oluşturmak için iyi bir başlangıç olduğunu ve bir sonraki adımın görüntüden anlamlı veriler çıkarmak için OCR bileşenlerini uygulamak olacağını vurguluyor.

  • 01:05:00 Bu bölümde, eğitim videosu, bir plaka numarasını belirlemek amacıyla bir görüntüden metin algılamak ve çıkarmak için EasyOCR açık kaynak kitaplığının nasıl kullanılacağını tartışır. Öğretici, daha doğru OCR modelleri mevcut olsa da, EasyOCR'nin PyTorch üzerinde çalışırken kullanıldığını ve GPU'nun tüm GPU belleğini tüketmeden TensorFlow ile birlikte çalıştırabilmesi için biraz yer bırakılması gerektiğini belirtiyor. Öğretici, EasyOCR'nin sorunsuz çalışmasına izin vermek için GPU kaynaklarının nasıl tahsis edileceğini ve TensorFlow için bellek tüketiminin nasıl sınırlandırılacağını gösterir.

  • 01:10:00 Bu bölümde konuşmacı, TensorFlow ve EasyOCR kullanarak Otomatik Plaka Tanıma (ANPR) için gerekli dosya yollarının ve etiketlerin nasıl yükleneceğini ve EasyOCR ile PyTorch'un CUDA hızlandırmasıyla nasıl kurulacağını açıklıyor. Örnek bir görüntü yükledikten ve ANPR gerçekleştirdikten sonra, plaka numaraları ve algılama puanlarının "algılamalar" adı verilen bir değişkende saklandığını ve bunların daha sonra EasyOCR kullanarak OCR uygulamak için kullanıldığını gösteriyorlar. Algılama eşiği 0,7 olarak ayarlanmıştır ve yalnızca 0,7'nin üzerinde puana sahip algılamaların daha fazla işlenmesine izin verir.

  • 01:15:00 Bu bölümde eğitmen, birkaç satır kod kullanarak algılama eşiğini geçen görüntü puanlarının, sınıfların ve kutuların nasıl çıkarılacağını açıklar. Tespit puanı dizisindeki her bir değer arasında nasıl döngü oluşturulacağını ve yalnızca eşiği aşan puanların nasıl döndürüleceğini gösterirler. Ayrıca web kamerası için doğru boyut ve formatta olduklarından emin olmak için kutulara ve sınıflara filtreler uygularlar. Son olarak, kutu koordinatlarını yeniden hesaplamak için görüntünün genişliğini ve yüksekliğini alırlar ve ilgilenilen bölgeyi belirlemek için görüntüye filtre uygularlar.

  • 01:20:00 Bu bölümde video, görüntüden ilgilenilen bölgenin nasıl çıkarılacağını ve plaka sonuçlarını çıkarmak için Optik Karakter Tanıma'nın (OCR) nasıl uygulanacağını gösterir. İlk olarak image.shape kullanılarak görüntünün genişlik ve yükseklik parametreleri elde edilir. ROI'yi çıkarmak için, algılamanın koordinatlarını temsil eden kutular değişkenindeki her bir kutuyu dolaşın ve ilgi bölgesini filtreleyin. Son olarak, EasyOCR kullanılarak ROI'ye OCR uygulanır ve sonuçlar konsola yazdırılır. Video, izleyiciye EasyOCR okuyucusunu kurma, dil parametrelerinden geçme ve plaka sonuçlarını çıkarmak için görüntüyü ayrıştırma sürecinde yol gösterir.

  • 01:25:00 Bu bölümde sunum yapan kişi, OCR (optik karakter tanıma) kullanarak basılı plakanın veya metnin plakadan etkili bir şekilde nasıl çıkarılacağını tartışır. Plaka numarasına ek olarak OCR okuyucunun kafasını karıştırabilecek fazladan metin bulunan örnek bir resim gösterirler. Bu sorunu çözmek için sunum yapan kişi, sonuçların boyut ve koordinatlara göre filtrelenmesini önerir. Bu filtrelemeyi yapacak bir fonksiyonun nasıl yazılacağını ve uygun metni elde etmek için bunu görüntüye nasıl uygulayacağını gösterirler. Sonuçlar, OCR modelinde iyileştirme için hala yer olmasına rağmen, OCR okuyucunun plaka numarasını doğru bir şekilde çıkarabildiğini göstermektedir.

  • 01:30:00 Bu bölümde, konuşmacı "metni filtrele" adı verilen yeni bir işlevi tanıtıyor. Bu işlev üç bağımsız değişken alır: bölge, OCR sonucu ve bölge eşiği. Bölge görüntüyü temsil eder, OCR sonucu EasyOCR'dan çıkarılan metni temsil eder ve bölge eşiği, plaka bölgelerini algılamak için boyut eşiğidir. İşlev, OCR sonuçları arasında döngü yapar, her birinin uzunluğunu ve genişliğini çıkarır, bunları çarpar ve ardından bunları bölge eşiğiyle karşılaştırır. Bu filtreyi geçerse metin olarak kabul edilir ve bölgesi "plaka" adı verilen bir değişkende saklanır. Konuşmacı ayrıca bölgenin boyutunu hesaplayan ve filtrenin nasıl çalıştığını gösteren bazı kod bölümlerini açıklar.

  • 01:35:00 Bu bölümde yazar, OCR motorunu kullanarak resimlerdeki metnin etkili bir şekilde nasıl filtreleneceğini gösterir. filterText algoritması, kullanıcının bölge için yalnızca bu eşiği karşılayan veya aşan metin bloklarını filtreleyecek bir eşik belirlemesine olanak tanır. Plakadan her şeyi almak yerine ihtiyaç duydukları bileşenleri çıkarmak için bu işlevi kullanırlar. Ayrıca, OCR filtresini ve OCR bileşenlerini birleştiren bir OCR_it işlevi oluşturmuşlardır ve bu, görüntü ve algılamaları karşılık gelen eşiklerle geçtikten sonra herhangi bir görüntüye uygulanabilir.

  • 01:40:00 Bu bölümde eğitmen, belirtilen algılama ve bölge eşikleri ile "ocr_it" işlevinden bir görüntü geçirerek optik karakter tanıma (OCR) yöntemini test eder. Yöntem, görüntüdeki plakayı ve bölgesini doğru bir şekilde çıkarabilmektedir. Ardından, bir try-except bloğu ve her geçerli algılama için OCR işlevini çağıran yeni bir kod kullanarak plakaları algılamak için OCR yöntemini gerçek zamanlı olarak uygulamayı gösterirler. Eğitmen, telefonunda gerçek zamanlı algılamayı test eder ve sonuçların mükemmel olmamasına ve biraz ince ayar gerektirmesine rağmen, aracın plaka metnini doğru bir şekilde algılayıp çıkardığını gösterir.

  • 01:45:00 Videonun bu bölümünde eğitmen kendi geliştirdiği OCR sisteminin çıktı sonuçlarını nasıl kaydedeceğini anlatıyor. Metni, bölgeyi, dosya adını ve klasörü giriş parametreleri olarak alan "save_results" adlı yeni bir işlev oluştururlar. Daha sonra benzersiz bir dosya adı oluşturmak için uuid kitaplığını ve çıktı sonuçlarını bir csv dosyasına kaydetmek için csv kitaplığını kullanırlar. Görüntüyü seçilen klasöre yazmak için cv2 kitaplığını da kullanırlar. Son olarak, kodu tamamlar ve test ederler.

  • 01:50:00 Videonun bu bölümünde eğitmen, tüm görüntü sonuçlarını veya bölgelerini yazmak için bir CSV dosyası ve klasör yolunun nasıl ayarlanacağını gösterir. Tüm görüntü sonuçlarının yazılacağı, Detection_images adlı yeni bir klasör oluştururlar. Eğitmen, CSV dosya adı ve klasör yolundan nasıl geçileceğini gösterir ve ardından sonuçları kaydetmek için kodu test eder. Sonuçları, görüntünün adını ve plaka numarasını içeren oluşturulan klasöre yazmak için bir sonuçları kaydetme yöntemi kurdular. Eğitmen daha sonra, algılamalar gerçekleşirken sonuçları kaydetmek için kodun gerçek zamanlı olarak nasıl çalıştırılacağını gösterir. Son olarak, sonuçları gerçek zamanlı olarak kaydederken görüntülerin doğru bir şekilde çıkarılmasıyla sonuçlanan kodu test ederler.

  • 01:55:00 Bu bölümde konuşmacı, izleyicilere gerçek zamanlı olarak uygulanan OCR işlevi oluşturulmuş ve filtreleme algoritmasının kullanılabileceği konusunda bilgi verir. İzleyicileri herhangi bir zorlukla karşılaşırlarsa yardım istemeye teşvik ediyor ve kullanmaları için kodun GitHub'da mevcut olacağından bahsediyor. Son olarak izleyicilere izledikleri için teşekkür eder, beğenmelerini, abone olmalarını ve yorum yapmalarını ister ve oturumu kapatır.
GitHub - nicknochnack/RealTimeAutomaticNumberPlateRecognition
GitHub - nicknochnack/RealTimeAutomaticNumberPlateRecognition
  • nicknochnack
  • github.com
Contribute to nicknochnack/RealTimeAutomaticNumberPlateRecognition development by creating an account on GitHub.
 

3 Saatte Pekiştirmeli Öğrenme | Python kullanarak Tam Kurs

Kod: https://github.com/nicknochnack/ReinforcementLearningCourse



3 Saatte Pekiştirmeli Öğrenme | Python kullanarak Tam Kurs

00:00:00 - 01:00:00 "3 Saatte Takviyeli Öğrenme" video kursu, pratik uygulama ve teori-uygulama boşluğunu doldurma da dahil olmak üzere pekiştirmeli öğrenmede bir dizi konuyu kapsar. Kurs, RL ortamını kurmaktan özel ortamlar oluşturmaya kadar her şeyi kapsar ve pekiştirmeli öğrenme aracılarını eğitmeye ve bunları farklı algoritmalar ve mimariler kullanarak değerlendirmeye odaklanır. Robotik ve oyun gibi popüler RL uygulamalarının yanı sıra, ortamların markovian olduğu varsayımı ve kararsız eğitim potansiyeli gibi RL'nin sınırlamaları tartışılmaktadır. Kurs, simüle edilmiş ortamlar oluşturmak için açık kaynaklı bir RL kitaplığı olan Stable Baselines ve OpenAI Gym'i kullanır. Eğitmen, etmenlerin bir ortamda gerçekleştirebileceği eylemleri ve değerleri temsil etmek için kullanılan farklı boşluk türlerinin yanı sıra A2C ve PPO gibi farklı RL algoritmalarını açıklar. Algoritmaları uygulamadan önce ortamı anlamanın önemi vurgulanır ve kullanıcılara, takviyeli öğrenme için bilgi işlem platformunu kurma, uygun RL algoritmalarını seçme ve modeli eğitme ve test etme konusunda rehberlik edilir.

01:00:00
- 02:00:00 Bu YouTube videosu, Python kullanarak pekiştirmeli öğrenim üzerine üç saatlik bir kurs sağlar. Eğitmen, aracı, çevre, eylem ve ödül dahil olmak üzere pekiştirmeli öğrenmenin temel bileşenlerini açıklar. Bu bölümde, eğitim sürecini izlemek için bir ortamın nasıl tanımlanacağı, pekiştirmeli öğrenmeyi kullanarak bir modelin nasıl eğitileceği ve TensorBoard kullanılarak eğitim günlüklerinin nasıl görüntüleneceği anlatılmaktadır. Öğretim görevlisi ayrıca, eğitilmiş bir modeli kaydetme ve yeniden yükleme, model performansını test etme ve iyileştirme, özel bir aktör için bir ağ mimarisi ve bir sinir ağında değer işlevi tanımlama ve Atari oyunu Breakout'u oynamak için takviyeli öğrenmeyi kullanma gibi diğer konuları da kapsar. Ek olarak, kurs, öğrencilerin Atari'de Breakout oyunu, otonom sürüş için bir yarış arabası inşa etme ve OpenAI Spor Salonu alanlarını kullanarak özel ortamlar oluşturma dahil olmak üzere takviyeli öğrenme tekniklerini kullanarak inşa edecekleri üç proje içerir.

02:00:00 - 03:00:00 "3 Saatte Takviyeli Öğrenim | Python Kullanarak Tam Kurs" başlıklı bu YouTube videosu, pekiştirmeli öğrenimle ilgili çeşitli konuları kapsar. Eğitmen, Atari oyunları ve yarış arabası ortamını kullanarak otonom sürüş için bir takviye öğrenme aracısının nasıl eğitileceğini gösterir. Ayrıca çeşitli OpenAI spor salonu bağımlılıkları, yardımcıları ve sabit temel çizgileri ile takviye öğrenimi için farklı türde alanlar sunarlar. Ek olarak, video, pekiştirmeli öğrenme için özel bir ortamın nasıl oluşturulacağını, ortamın durumunu, gözlem ve eylem alanlarını tanımlamayı, modeli test etmeyi ve eğitmeyi ve öğrendikten sonra eğitilen modeli kaydetmeyi kapsar. Eğitmen aynı zamanda daha iyi performans için daha uzun süre eğitim modellerinin önemini tartışıyor ve izleyicileri herhangi bir zorlukla karşılaştıklarında onlara ulaşmaya teşvik ediyor.

  • 00:00:00 Videonun bu bölümünde, sunum yapan kişi pekiştirmeli öğrenme kursunu tanıtıyor ve kurs boyunca ele alınacak farklı konuların ana hatlarını çiziyor. Kursun teori ile pratik uygulama arasındaki boşluğu kapatmak için tasarlandığını ve RL ortamını kurmaktan özel ortamlar oluşturmaya kadar her şeyi kapsadığını açıklıyor. Sunum yapan kişi, takviyeli öğrenmeye, uygulamalarına ve bazı sınırlamalarına üst düzey bir genel bakış sunar. Kurs, pekiştirici öğrenme ajanlarının eğitimi ve farklı algoritmalar ve mimariler kullanılarak test edilmesi ve değerlendirilmesi konusunda uygulamalı deneyim sağlamanın yanı sıra koparma ortamı, kendi kendini yöneten ortam ve özel ortamlara odaklanan üç farklı projeyi kapsayacaktır.

  • 00:05:00 "3 Saatte Takviyeli Öğrenme" konulu videonun bu bölümünde eğitmen pekiştirmeli öğrenmenin temel kavramlarını açıklıyor. Takviyeli bir öğrenme ajanı, farklı eylemlerde bulunarak çevreden aldığı ödüllere dayalı olarak öğrenir. Temsilci, belirli kararlar vererek zaman içinde ödüllerini en üst düzeye çıkarmak için çevreyi gözlemler. Eğitmen ayrıca, otonom sürüş, menkul kıymet ticareti ve sinir ağı mimarisi araması gibi takviyeli öğrenmenin bazı pratik uygulamalarını tartışır.

  • 00:10:00 Bu bölümde, video, robotları belirli görevleri yerine getirmek üzere eğitmek için simüle edilmiş ortamların kullanılabileceği robotik dahil olmak üzere, takviyeli öğrenmenin bazı popüler uygulamalarını tartışıyor. Videoda ayrıca, ödüllendirme işlevinin her seferinde farklılık gösterebildiği ve onu pekiştirmeli öğrenme için uygun bir ortam haline getiren başka bir popüler uygulama olarak oyundan bahsediliyor. Çevrenin markovyan olduğu varsayımı ve eğitimin zaman alıcı ve kararsız olabileceği gerçeği de dahil olmak üzere, pekiştirmeli öğrenmenin sınırlamaları da tartışılmaktadır. OpenAI'den sabit temeller kitaplığının kurulmasını ve yardımcı kılavuzlarının ve belgelerinin kullanılmasını içeren pekiştirmeli öğrenme modelinin kurulumu ele alınmıştır.

  • 00:15:00 Bu bölümde eğitmen kursu tanıtır ve işlenecek 10 farklı adımı ana hatlarıyla belirtir. İlk adım, takviye öğrenimi için açık kaynaklı bir kitaplık olan sabit temeller dahil olmak üzere gerekli bağımlılıkları içe aktarmak ve yüklemektir. Eğitmen, kitaplıkta bulunan farklı algoritmaları ve PPO (Proximal Policy Optimization) kullanmanın faydalarını açıklar. Bağımlılıklar ayrıca işletim sistemi işlevselliği için işletim sistemini ve ortamlar oluşturmak ve bunlarla çalışmak için spor salonunu içerir. Genel olarak, süreç basittir ve kararlı temellerle başlamak için yalnızca birkaç satır kod gerektirir.

  • 00:20:00 Bu bölümde eğitmen, pekiştirmeli öğrenme için gerekli olan bağımlılıkları ve ortamları tartışır. Ortamların vektörleştirilmesi yoluyla daha hızlı makine öğrenimine izin veren Stable Baselines'ı ve Dummy Vec Env sarmalayıcıyı sunarlar. Ayrıca OpenAI Gym'in maliyetleri düşürebilen ve daha hızlı model üretimine olanak tanıyan simüle edilmiş ortamlar oluşturmak için nasıl kullanılabileceğini açıklıyorlar. Bir robot gibi gerçek ortamların yanı sıra çok sayıda belge ve desteği olan OpenAI Gym gibi simüle edilmiş ortamların örneklerini sunarlar.

  • 00:25:00 Videonun bu bölümünde eğitmen, OpenAI Gym olan pekiştirmeli öğrenme ortamları oluşturma standardını tartışıyor. OpenAI Gym'in, Fetch Robot ve Shadow Hand Robot gibi gerçek robotlara dayalı olanlar da dahil olmak üzere önceden oluşturulmuş ortamlar sağladığını açıklıyor. OpenAI Gym'in desteklediği box, discrete, tuple, dict, multi-binary ve multi-discrete gibi farklı alan türlerini de açıklıyor. Bu boşlukların, aracıların ortamda gerçekleştirebilecekleri farklı türdeki değerleri veya eylemleri temsil etmek için kullanıldığını belirtiyor. Eğitmen daha sonra Klasik Kontrol ortamını, özellikle CartPole problemini, bir takviyeli öğrenme ajanını eğitmek için kullanacağı bir örnek olarak tanıtır. Amaç, iki hareket kullanarak bir ışını sola veya sağa hareket ettirerek dengelemektir.

  • 00:30:00 Bu bölümde eğitmen, OpenAI Gym kullanılarak bir ortamın nasıl yüklenip test edileceğini açıklar. İki satır kod kullanarak CartPole-v0 ortamını başlatarak başlarlar. Ardından, birden fazla bölüm arasında döngü yaparak ve ilk gözlem setini elde etmek için env.reset() kullanarak ortamın nasıl test edileceğini gösterirler. Bu gözlemler daha sonra ödülü en üst düzeye çıkarmak için en iyi eylemi belirlemek üzere bir pekiştirmeli öğrenme aracısına iletilecektir. Eğitmen, herhangi bir algoritma uygulamadan önce çevreyi anlamanın önemine dikkat çeker.

  • 00:35:00 Bu bölümde eğitmen pekiştirmeli öğrenmede ortam örneklemek için kullanılan kodu açıklar. Kod, ortam için maksimum adım sayısını belirler, bir puan sayacı kurar ve ortam tarafından tanımlanan eylem alanına dayalı olarak rastgele bir eylem oluşturur. Her eylemden sonra çevre tarafından döndürülen gözlemlere bir ödül ve bölümün yapılıp yapılmadığını gösteren bir değer eşlik eder. Sonuçlar yazdırılır ve testten sonra ortam kapatılır. Eğitmen ayrıca gözlem alanı kavramını açıklar ve nasıl örneklenebileceğini gösterir.

  • 00:40:00 Bu bölümde eğitmen, ortamın iki bölümünü, hareket alanını ve gözlem alanını ve bunların OpenAI Spor Salonu belgelerinde nasıl temsil edildiğini açıklar. Gözlem alanı, araba konumunu, hızını, kutup açısını ve kutup açısal hızlarını temsil eden dört değerden oluşur. Öte yandan, eylem uzayında iki olası eylem vardır, sıfır veya bir, burada sıfır arabayı sola ve biri arabayı sağa iter. Bu bölüm ayrıca pekiştirmeli öğrenmede, model tabanlı ve modelsiz farklı algoritma türlerini ve bunların nasıl farklılık gösterdiğini vurgulamaktadır. Eğitmen, modelden bağımsız pekiştirmeli öğrenmeye odaklanır ve eğitim aşamasında kullanılacak olan A2C ve PPO algoritmalarını derinlemesine inceler.

  • 00:45:00 Videonun bu bölümünde eğitmen, kullanılan ortamın eylem alanına dayalı olarak uygun pekiştirmeli öğrenme algoritmasının nasıl seçileceğini açıklıyor. Kararlı Temel Çizgilerde bulunan A2C, DDPG, DQN, HER, PPO, SAC ve TD3 gibi farklı algoritma türlerini ve bunların en iyi hangi eylem alanlarıyla çalıştıklarını açıklamaya devam ediyor. Eğitmen ayrıca değerlendirme ölçütleri, zaman ölçütleri, kayıp ölçütleri ve diğer ölçütler gibi eğitim sırasında dikkate alınması gereken eğitim ölçütlerini tartışır. Kullanıcılara, Stable Baselines'ın GPU hızlandırmalı veya olmadan kurulabileceğini hatırlatır ve GPU hızlandırması isteniyorsa PyTorch'u yüklemek için talimatlar sağlar.

  • 00:50:00 Bu bölümde eğitmen, GPU hızlandırmasından yararlanmak isteyenler için çok önemli olan pekiştirmeli öğrenim için bilgi işlem platformunun nasıl kurulacağını tartışıyor. CUDA ve cuDNN yalnızca NVIDIA GPU'larda desteklenir, bu nedenle kullanıcılar, GPU hızlandırmanın avantajlarından yararlanmak amacıyla CUDA'yı kullanmak için bir NVIDIA GPU'ya sahip olduklarından emin olmalıdır. Öte yandan AMD GPU'lar, yalnızca Linux'ta bulunan bir beta paketi olan RockM tarafından destekleniyor. Eğitmen ayrıca, geleneksel derin öğrenmenin, takviyeli öğrenmeye göre GPU kullanımından daha fazla performans artışı görebileceğini vurgular. Son olarak, eğitmen günlük yolunu tanımlar ve algoritmayı ve aracıyı başlatır.

  • 00:55:00 Bu bölümde eğitmen, bir lambda işlevi kullanarak vektörleştirilmemiş bir ortamın kukla bir vektörleştirilmiş ortamın içine nasıl sarılacağını gösterir. Daha sonra eğitilecek etmen olan modeli PPO olarak tanımlarlar ve argüman olarak Policy, Environment, Verbose ve Tensorboard log yolundan geçerler. Eğitmen, PPO algoritmasına aktarılabilecek çeşitli hiperparametreleri açıklamaya devam eder. Son olarak, model.learn işlevini kullanarak ve modeli eğitmek için bu örnekte 20.000 olarak ayarlanan zaman adımlarının sayısından geçerek modelin nasıl eğitileceğini gösterirler. Model eğitildikten sonra eğitmen modeli test eder ve eğitim metriklerini kontrol eder.


Bölüm 2

  • 01:00:00 Videonun bu bölümünde eğitmen, eğitilmiş bir modelin nasıl kaydedileceğini ve yeniden yükleneceğini gösterir. Model, "model.save()" işlevi kullanılarak kaydedilir ve kaydedilen modeli bulmak için bir yol tanımlanır. Eğitmen daha sonra kaydedilen modelin nasıl silineceğini ve 'ppo.load()' işlevini kullanarak yeniden yükleneceğini gösterir. Bir sonraki adım, nasıl performans gösterdiğini görmek için eğitilmiş modeli test etmektir. Eğitmen kullanıma sunma ölçümlerinin eğitim için kullanılan algoritmaya bağlı olduğunu açıklar ve "A2C" algoritmasının bu ölçümleri eğitim sırasında sağladığını, "PPO" algoritmasının ise bu ölçümleri oluşturmak için açık bir komut gerektirdiğini gösterir.

  • 01:05:00 Bu bölümde video, modelin performansını test etmek ve bu özel durumda PPO modelinin 'çözümlenmiş' olarak kabul edilip edilmediğini belirlemek için accept_policy yönteminin nasıl kullanılacağını açıklar. Assessment_policy yöntemi, bir modelin ne kadar iyi performans gösterdiğini test etmenin bir yoludur ve ortalama 200 veya daha fazla puan alırsa model çözülmüş kabul edilir. Yöntem modelden, ortamdan, test edilecek bölüm sayısı ve render gerekip gerekmediği üzerinden geçirilir. Ortalama ödül ve o ödüldeki standart sapma, accept_policy'den aldığınız değerlerdir ve ortamın kapatılması emv.close kullanılarak yapılır. Son olarak video, modelin kapsüllenmiş bir işlevde nasıl konuşlandırılacağını vurgular.

  • 01:10:00 Bu bölümde eğitmen, ödülleri en üst düzeye çıkarmak için aracıyı kullanarak en iyi eylemi tahmin etmek için çevreden gözlemlerin nasıl kullanılacağını gösterir. Kod bloğu, modeli kullanarak eylem gerçekleştirmek için env.actionspace.sample yerine model.predict kullanmak üzere önemli değişikliklerin nasıl yapılacağını gösterir. Eğitmen, ajanın rastgele adımlardan daha iyi performans gösterdiğini ve direği dengelediğini gösterir. Kod ayrıca döndürülen iki değer, model eylemi ve sonraki durum ile birlikte model.predict işlevine iletilen gözlemleri gösterir. İlk değer, ajan için en iyi eylemi belirlemek için burada kullanılır.

  • 01:15:00 Bu bölümde eğitmen, pekiştirmeli öğrenmenin temel bileşenlerini açıklıyor: etmen, çevre, eylem ve ödül. Bir ortamın nasıl tanımlanacağını ve direği dik konumda tutarak ve düşmeden her seferinde bir değeri biriktirmek için pekiştirmeli öğrenmeyi kullanarak bir modeli nasıl eğiteceğini gösteriyor. Eğitmen ayrıca eğitim sürecini izlemek için TensorBoard kullanarak eğitim günlüklerinin nasıl görüntüleneceğini gösterir.

  • 01:20:00 Videonun bu bölümünde eğitmen, bir takviyeli öğrenme modelinin eğitim ölçümlerini görüntülemek için bir Jupiter not defterinde TensorBoard'un nasıl kullanılacağını açıklıyor. Sihirli bir komut kullanarak TensorBoard komutunun nasıl çalıştırılacağını ve eğitim günlüğü yolunun nasıl belirleneceğini gösteriyor. Eğitmen ayrıca saniyedeki kare sayısı, entropi kaybı, öğrenme hızı ve ilke gradyan kaybı gibi eğitim ölçümlerinin TensorBoard'da nasıl görüntüleneceğini gösterir. Modelin performansını ayarlarken izlenmesi gereken en önemli ölçünün ortalama ödül olduğunu vurguluyor. İzleyicilerden geri bildirim ve yorum davet ederek bitiriyor.

  • 01:25:00 Bu bölümde video, bir pekiştirmeli öğrenme modelinin performansını belirlemeye yönelik iki temel ölçütü ele alıyor: ödül ölçütleri ve ortalama bölüm uzunluğu. Video ayrıca, daha uzun bir süre için eğitim, hiperparametre ayarlama ve farklı algoritmaları keşfetme dahil olmak üzere, iyi performans göstermiyorsa model performansını iyileştirmek için üç strateji sunar. Bölüm daha sonra geri aramaları, alternatif algoritmaları ve mimarileri derinlemesine inceler, özellikle bir ödül eşiğine ulaşıldığında eğitimi durdurmak için bir geri aramanın nasıl kurulacağını tartışır ve farklı sinir ağı mimarilerini ve algoritmalarını keşfeder. Video ayrıca, daha uzun bir eğitim süresi gerektiren büyük modeller için geri arama kullanmanın önemini de vurgulamaktadır.

  • 01:30:00 Bu bölümde eğitmen, daha esnek ve verimli eğitim için pekiştirmeli öğrenmede geri aramaların nasıl kullanılacağını açıklar. Örnekte iki geri arama kullanılmıştır: geri aramayı durdur ve geri aramayı değerlendir. Geri aramayı durdur, eğitimin durması gereken ortalama ödülü belirtirken değerlendirme geri araması en iyi yeni modeli değerlendirir ve ödül eşiğini geçip geçmediğini kontrol eder. Eğitmen ayrıca yeni bir sinir ağı mimarisi belirleyerek politikanın nasıl değiştirileceğini gösterir. Genel olarak, geri aramalar, takviyeli öğrenme modelleri üzerinde daha fazla kontrol sağlayarak daha özelleştirilmiş ve etkili eğitime olanak tanır.

  • 01:35:00 Bu bölümde, konuşmacı bir sinir ağında özel bir aktör ve değer işlevi için bir ağ mimarisi belirleme sürecini tartışıyor. Bu, basitçe birimlerin ve katmanların sayısını değiştirerek ve onu modele aktararak yapılabilir. Konuşmacı ayrıca özel özellik çıkarıcıların tanımlanabileceğini vurgular ve PPO yerine DQN gibi alternatif bir algoritmanın nasıl kullanılacağını gösterir ve Stable Baselines'da bulunan diğer algoritmaları vurgular. Konuşmacı, eğitimli DQN modelini sergileyerek bitirir.

  • 01:40:00 Bu bölümde eğitmen, öğrencilerin takviyeli öğrenme teknikleri kullanarak inşa edecekleri projeleri tartışır. Atari'deki Breakout oyunu olan Project One ile başlayacaklar. Ardından, otonom sürüşü simüle etmek için bir yarış arabası inşa etmek için pekiştirmeli öğrenmeyi kullanacakları Proje 2'yi de ele alacaklar. Son olarak, OpenAI Spor Salonu alanlarını kullanarak özel ortamlar yaratmayı içeren Üçüncü Proje üzerinde çalışacaklar. Eğitmen ayrıca projeler için gerekli kütüphaneleri ve bağımlılıkları içe aktarmanın ana derstekilere benzer olduğunu ve sadece projeye bağlı olarak farklı algoritmalar kullanmaları gerekeceğini açıklar.

  • 01:45:00 Bu bölümde video eğitmeni, Python'da takviyeli öğrenme için Atari ortamının nasıl kurulacağını açıklıyor. Son değişiklikler nedeniyle, kullanıcıların ortamı kullanabilmeleri için atarimania.com'dan ham dosyaları indirmeleri ve bir klasöre çıkarmaları gerekmektedir. Gerekli paketleri ve bağımlılıkları kurduktan sonra kullanıcılar "emv.reset" ve "emv.action_space" fonksiyonlarını kullanarak ortamı test edebilirler. Gözlem alanı, 210x160x3 boyutlarında bir görüntüyü temsil eden bir kutudur. Eğitmen ayrıca bir modelin ortam içinde nasıl test edileceğini gösterir.

  • 01:50:00 Bu bölümde eğitmen, Breakout'u rastgele eylemler kullanarak oynamanın kodunu gösterir ve model eğitiminin uzun sürebileceğine işaret eder. Eğitmen, eğitimi hızlandırmak için ortamı vektörleştirir ve aynı anda dört farklı ortamı eğitir. Kullanılan ortam, Breakout'un RAM sürümünün aksine görüntü tabanlı ortamdır, çünkü CNN politikası kullanılacaktır. Günlük yolunu ve CNN ilkesiyle A2C algoritmasını belirtme dahil olmak üzere, modeli kurma kodu gösterilir.

  • 01:55:00 Bu bölümde, video eğitmeni, bir modeli Atari oyunu "Breakout" oynamak üzere eğitmek için pekiştirmeli öğrenmeyi kullanır. Model, eğitilmesi çok katmanlı bir algılayıcı politikasından daha hızlı olan evrişimli bir sinir ağı (CNN) politikası kullanır. Ortam, OpenAI Gym'in make_atari işlevi kullanılarak tanımlanır ve eğitim sürecini hızlandırmak için vektörleştirme kullanılır. Model 100.000 adım için eğitilir ve modeli kaydedip yeniden yükledikten sonra, değerlendirme ilkesi yöntemi kullanılarak değerlendirilir. Nihai model, 1,9'luk bir standart sapma ile ortalama 6,1'lik bir bölüm ödülü elde ediyor; bu, rastgele bir aracıya göre önemli bir gelişme. Eğitmen ayrıca 300.000 adım için eğitilmiş önceden eğitilmiş bir model ve bunun nasıl yüklenip test edileceği hakkında bilgi verir.


Bölüm 3

  • 02:00:00 Bu bölümde, eğitmen çevreyle, özellikle de Atari ile çalışırken donma sorunlarının nasıl ele alınacağını tartışıyor. Ortam donarsa, dizüstü bilgisayar yeniden başlatılmalı ve model kaydedildikten sonra çekirdek yeniden başlatılmalıdır. Eğitmen daha sonra, bağımlılıkları içe aktarma, Atari ROM'ları kurma, ortamı aynı anda dört Atari ortamında eğitmek için vektörleştirme, aracıyı eğitme ve son olarak modeli değerlendirip kaydetme sürecini adım adım izleyerek, bir pekiştirmeli öğrenme aracısının kaçış için nasıl eğitileceğini gösterir. Eğitmen ayrıca modeli daha uzun süre eğitmenin etkisini gösterir ve öğrencilerin kendi başlarına denemeleri için eğitilen modelleri Github deposunda kullanıma sunar.

  • 02:05:00 Videonun üç saat içinde pekiştirmeli öğrenmeyle ilgili bu bölümünde eğitmen, pekiştirmeli öğrenmeyi kullanarak bir oyun oynaması için bir modeli eğitmeyi içeren Proje 1'in sonuçlarını göstererek başlıyor. Model, 50 bölümün üzerinde 22,22'lik bir ortalama ödül ve 9,1'lik bir standart sapma ile önceki modellerden önemli ölçüde daha iyi performans gösterdi. Eğitmen daha sonra, yarış arabası ortamını kullanarak otonom sürüş için pekiştirmeli öğrenimi kullanmayı içeren Proje 2'yi tanıtır. Eğitmen, ortamı ayarlamak için swig'in ve iki yeni bağımlılığın, box 2d ve piglet'in kurulması gerektiğini açıklar. Eğitmen daha sonra ortamı test etme ve gerekli bağımlılıkları içe aktarma sürecinden geçer.

  • 02:10:00 Bu bölümde video, pekiştirmeli öğrenme için araba yarışı ortamının gözlem ve eylem alanını tartışıyor. Gözlem alanı, 0 ile 255 arasında değerlere sahip 96'ya 96'ya 3'lük bir görüntüdür, eylem alanı ise üç farklı değer için eksi bir ile bir arasındadır. Ödül işlevi, her çerçeve için eksi 0,1 ve artı ziyaret edilen her iz döşemesi için 1000 bölü n'dir. Temsilci sürekli olarak 900 veya daha fazla puan alabildiğinde oyun çözülmüş kabul edilir ve bu, eğitimle elde edilmesi biraz zaman alabilir. Video daha sonra PPO algoritmasını kullanarak bir model eğitmeye devam eder ve eğitilen modeli kullanarak yarış ortamının nasıl test edileceğini gösterir.

  • 02:15:00 Bu bölümde, eğitmen OpenAI Gym'i kullanarak sürücüsüz araba için ortamı hazırlar ve onu sahte bir Vectorize Environment Wrapper'ın içine sarar. Daha sonra PPO algoritması kullanılarak etmen ve model belirlenir ve model 100.000 adım için eğitilir. Kaydedilen model çevrede yüklenir ve değerlendirilir ve yüksek güçlü arabanın çekiş eksikliğine rağmen ileri gitmez, patinaj yapar ve donut yapar. Son olarak, ortam kapatılır ve eğitmen, test etmek üzere 438.000 adım için eğitilmiş bir modeli yükler.

  • 02:20:00 Bu bölümde eğitmen, 438.000 adım için eğitilmiş sürücüsüz bir araba modelini yükler ve pistte test eder. Daha yavaş olmasına rağmen parkuru takip ediyor ve 100.000 adım için eğitilmiş önceki modele göre çok daha yüksek puan alıyor. Eğitmen, takviyeli öğrenme aracılarını daha uzun süre eğitmenin çok daha iyi modeller üretebileceğini ve ideal olarak bu modelin optimum performans göstermesi için 1-2 milyon adım için eğitilmiş olması gerektiğini açıklıyor. Ana eğitimden bir kod parçacığı kullanarak modelin nasıl test edileceğini gösteriyor; bu, yalnızca görüntüler üzerinde eğitildiğinde bile modelin yol boyunca başarılı bir şekilde gezinebileceğini gösteriyor. Sonunda, eğitmen bu modeli iki milyon ek adım için eğitti, performansını iyileştirdi ve yaklaşık 700 ödül tahminine ulaştı.

  • 02:25:00 Bu bölümde eğitmen, ara sıra virajlarda savrulmasına rağmen eğittiği önceki modellerden önemli ölçüde daha iyi performans gösteren bir modeli yükler ve çalıştırır. Modelin 800 puana ulaşan değerlendirme puanını önceki modellere göre önemli bir gelişme olarak gösteriyor. Bu modelin daha uzun süre eğitildiğini ve yüksek bir standart sapmaya sahip olduğunu belirtiyor. Eğitmen daha sonra, özel ortamlarda pekiştirici öğrenme için kararlı temel çizgilerin kullanılmasını içeren son projeyi tanıtır. Gerekli bağımlılıkları içe aktarır ve izleyicileri herhangi bir zorlukla karşılaşırlarsa onlara ulaşmaya teşvik eder.

  • 02:30:00 Videonun bu bölümünde, eğitmen çeşitli spor salonu bağımlılıklarını veya OpenAI spor salonu bağımlılıklarını, yardımcıları ve pekiştirmeli öğrenme kursunda kullanılacak kararlı temel öğeleri gözden geçiriyor. Standart içe aktarma olan spor salonunu, env'den spor salonu ortamı sınıfını ve ayrık, kutu, dict, tuple, multi-binary, multi-discrete gibi farklı alan türlerini ithal ederler. Eğitmen, bu alanların her birinin nasıl kullanılacağını ve farklı amaçlar için nasıl kullanılabileceğini anlatır. Eğitmen ayrıca içe aktarılan numpy, random ve os gibi farklı yardımcıları ve ppo, common.vec_env, dummy_vec_nv ve accept_policy işlevi dahil olmak üzere kararlı temel öğeleri gözden geçirir.

  • 02:35:00 Videonun bu bölümünde sunum yapan kişi, OpenAI Gym'de takviyeli öğrenme için mevcut olan farklı alan türlerini tartışıyor. Bu alanlar ayrık, kutu, tuple, dict, multi-binary ve multi-discrete içerir. Sunucu, bu alanların her biri için örnekler ve açıklamalar sağlar. Ardından video, bir aracının duşun sıcaklığını düzenlemesi için eğitilmesi için simüle edilmiş bir ortam oluşturmayı tartışmaya devam ediyor. Nihai hedef, 37 ila 39 derece arasında bir sıcaklık elde etmektir, ancak temsilci bunu önceden bilmez ve deneme yanılma yoluyla öğrenmesi gerekir.

  • 02:40:00 Bu bölümde eğitmen, dört temel işlevi uygulayarak duş ortamı için bir kabuk oluşturur. Bu işlevler init, step, render ve reset'tir. init işlevi, eylem alanını, gözlem alanını ve başlangıç durumunu tanımlayarak ortamı başlatır. Adım işlevi bir eylem alır ve bunu ortama uygular. Oluşturma işlevi ortamı görüntüler. Sıfırlama işlevi, ortamı başlangıç durumuna sıfırlar. Eğitmen ayrıca ortam için 60 saniyelik bir bölüm uzunluğu belirler.

  • 02:45:00 Bu bölümde eğitmen duş ortamı için altı kod bloğu içeren adım fonksiyonunu tanımlar. İlk blok, eylemin durum üzerindeki etkisini, üç olası eylem olarak sıfır, bir ve iki ile uygular. Sıfır, sıcaklığı bir derece azaltır, biri sıcaklığı aynı bırakır ve iki, sıcaklığı bir derece artırır. İkinci blok, duş süresini bir saniye azaltır. Üçüncü blok, sıcaklık 37 ile 39 derece arasındaysa bir, bu aralığın dışındaysa -1 ile ödülü tanımlar. Dördüncü blok, duşun yapılıp yapılmadığını kontrol eder ve duş süresi sıfıra eşit veya daha azsa, yapılanı doğru olarak ayarlar. Beşinci blok boş bir bilgi sözlüğü oluşturur ve son blok durumu, ödülü, duşun yapılıp yapılmadığını ve sözlüğü döndürür. Sıfırlama işlevi, başlangıç sıcaklığını varsayılan değerine sıfırlar ve duş süresini 60 saniyeye sıfırlar.

  • 02:50:00 Bu bölümde eğitmen, Python kullanarak pekiştirmeli öğrenim için özel bir ortamın nasıl oluşturulacağını açıklar. Çevrenin durumunun, gözlem ve eylem alanlarının nasıl tanımlanacağını gösterir. Eğitmen ayrıca tanımlanan ortamı kullanarak modelin nasıl test edileceğini ve eğitileceğini ve eğitimden sonra eğitilen modelin nasıl kaydedileceğini gösterir. Oyun ortamlarının eğitilmesinin basit ortamlara kıyasla daha uzun süreceğinden bahsediyor ve projeleri planlamak ve müşterilere taahhütte bulunmak için bunu akılda tutmayı teşvik ediyor.

  • 02:55:00 Bu bölümde eğitmen, eğitilen modelin nasıl test edileceğini ve kaydedileceğini gösterir. Modelin performansını test etmek için "değerlendirme politikası" yöntemini kullanırlar ve ardından "model.save" yöntemini kullanarak modeli kaydederler. Ek olarak, kararlı temeller kullanarak ortamın kurulmasından PPO, A2C ve DQN dahil olmak üzere farklı algoritmalara sahip eğitim modellerine kadar çeşitli konuları kapsayan kursun kısa bir özetini sunarlar. Ayrıca özel ortamlar oluşturmayı ve bir modeli Breakout oynamak için eğitmek veya bir pistte bir araba ile yarışmak gibi projeler inşa etmeyi tartışıyorlar.

  • 03:00:00 Bu bölümde eğitmen, David Silva'nın Reinforcement Learning kursu, Reinforcement Learning: An Introduction by Richard Sutton ve Andrew Bartos adlı kitabın yanı sıra hiperparametre ayarlamayı keşfetme, özel ortamlar oluşturma gibi ek kaynaklar önerir. ve Raspberry Pi kullanarak gerçek bir ortamda uygulamadan önce bir araba direği robotu oluşturmak ve onu simüle edilmiş bir ortamda eğitmek gibi uçtan uca çözümler uygulamak. Eğitmen, izleyicilerden gelen geri bildirimleri ve soruları teşvik eder ve izledikleri için onlara teşekkür eder.
GitHub - nicknochnack/ReinforcementLearningCourse
GitHub - nicknochnack/ReinforcementLearningCourse
  • nicknochnack
  • github.com
Contribute to nicknochnack/ReinforcementLearningCourse development by creating an account on GitHub.
 

Python ile ACTION RECOGNITION kullanarak İşaret Dili Tespiti | LSTM Derin Öğrenme Modeli

Kod: https://github.com/nicknochnack/ActionDetectionforSignLanguage



Python ile ACTION RECOGNITION kullanarak İşaret Dili Tespiti | LSTM Derin Öğrenme Modeli

"Python ile ACTION RECOGNITION kullanarak İşaret Dili Algılama | LSTM Derin Öğrenme Modeli" başlıklı bu YouTube videosunda sunum yapan kişi, eylem algılama ve anahtar modeller kullanarak gerçek zamanlı bir işaret dili algılama akışının nasıl oluşturulacağını açıklıyor. Sunum yapan kişi ellerden, yüzden ve vücuttan önemli noktaları çıkarmak için OpenCV ve MediaPipe Holistic'i kullanır ve ardından bir dizi karede gösterilen eylemi tahmin eden bir LSTM modeli oluşturmak için TensorFlow ve Keras'ı kullanır. Sunum yapan kişi, web kamerasından önemli noktalara erişme ve bunları ayıklama sürecinden geçer, web kamerasına erişmek için bir döngü kurar ve web kamerasından yakalanan son kareye yer işaretleri uygulayarak işaret dili algılamayı kolaylaştırır. Ayrıca, eksik kilit noktaları işlemek ve poz modeline hata işlemeyi eklemek ve yer işareti algılamaya bakmak için kodun nasıl değiştirileceğini de gösterirler. Son olarak sunum yapan kişi, Python ile eylem tanıma kullanarak işaret dili tespiti için anahtar nokta çıkarma işlevini açıklar.

Video, Python ile eylem tanımayı kullanarak bir işaret dili algılama modelinin nasıl oluşturulacağına dair ayrıntılı bir açıklama sağlar. Sunucu, verileri toplamak için her eylem ve sıra için klasörler oluşturur ve her eylem için video başına 30 anahtar nokta değeri toplamak üzere MediaPipe döngüsünü değiştirir. Veriler, LSTM derin öğrenme modeli için etiketler ve özellikler oluşturularak önceden işlenir ve model, TensorFlow ve Keras kullanılarak eğitilir. Eğitilen model, çok etiketli bir karışıklık matrisi ve doğruluk puanı işlevi kullanılarak değerlendirilir. Son olarak, gerçek zamanlı algılama, algılama için yeni değişkenler oluşturarak, çerçeveleri birleştirerek ve belirli bir güven metriğinin üzerindeki sonuçları işlemek için uygulanan bir eşik değişkeni ile tahmin mantığı uygulayarak kurulur.

Eğitim videosu, eylem tanımayı kullanarak işaret dili tespiti için Python ve bir LSTM Derin Öğrenme modelinin nasıl kullanılacağını gösterir. Konuşmacı, tahmin mantığını gözden geçirdi ve kodu açıklayarak anlaşılmasını kolaylaştırdı. Ayrıca izleyicilere, ekleme yöntemini kullanarak, algılama eşiğini artırarak ve algılamayı görsel olarak çekici kılmak için olasılık görselleştirme ekleyerek kodu nasıl ayarlayacaklarını gösterdiler. Konuşmacı ayrıca sonucun eşiğin üzerinde olup olmadığının nasıl kontrol edileceğini, olasılıkların nasıl manipüle edileceğini ve ek eylemler veya görselleştirmeler ekleyerek projeyi nasıl genişletip değiştireceğini de ele aldı. Son olarak konuşmacı, modelin yanlış algılamaları en aza indiren ve modelin doğruluğunu artıran ek mantığını, videoyu ve kanalı desteklemek için bir davetle birlikte sundu.

  • 00:00:00 Videonun bu bölümünde içerik oluşturucu, eylem algılamayı ve temel modelleri kullanarak gerçek zamanlı bir işaret dili algılama akışı oluşturma hedefini açıklıyor. Ellerden, yüzden ve vücuttan önemli noktaları çıkarmak için MediaPipe Holistic'i kullanacaklar ve ardından bir dizi karede gösterilen eylemi tahmin eden bir LSTM modeli oluşturmak için TensorFlow ve Keras'ı kullanacaklar. Süreç, kilit noktalar hakkında veri toplamayı, bir sinir ağını eğitmeyi, doğruluğu değerlendirmeyi ve OpenCV ve bir web kamerası kullanarak modeli gerçek zamanlı olarak test etmeyi içerir. Oluşturucu, bu süreci gerçekleştirmek için 11 adımı özetliyor ve bağımlılıkları yükleyip içe aktararak başlıyor.

  • 00:05:00 Bu bölümde sunum yapan kişi projede kullanılacak OpenCV, MediaPipe, scikit-learn, NumPy, Matplotlib ve TensorFlow gibi farklı bağımlılıkları tartışıyor. Bu bağımlılıkları içe aktardıktan sonra sunum yapan kişi, OpenCV ve MediaPipe Holistic kullanarak web kamerasından önemli noktalara erişme ve bunları ayıklama sürecinden geçer. Sunum yapan kişi daha sonra web kamerasına erişmek ve birden çok kareyi ekrana yansıtarak projenin gerçek zamanlı test edilmesini sağlayan bir döngü kurar. Bu döngü, çerçevelerin çıkarılması ve projenin test edilmesi dahil olmak üzere proje boyunca birden çok kez kullanılacaktır. Projede kullanılan tüm kodlar, eğitilen son ağırlıklar da dahil olmak üzere Github'da kullanıma sunulacaktır.

  • 00:10:00 Videonun bu bölümünde sunum yapan kişi, OpenCV kullanarak web kamerasına nasıl erişileceğini ve tüm kareler arasında döngüye nasıl başlayacağını açıklıyor. Sunum yapan kişi, web kamerasından gelen yayını okumak için "video yakalama" işlevini kullanır ve okuyacak, görüntüleyecek ve döngüden çıkmak için bir tuşa basılmasını bekleyecek bir döngü başlatır. Sunum yapan kişi ayrıca döngünün nasıl nazikçe kırılacağını ve web kamerası görüntülenmezse cihaz numarası sorunlarının nasıl giderileceğini de açıklar. Son olarak sunum yapan kişi, poz algılama için Bütünsel modeli indirmek ve kullanmak ve bir görüntü üzerinde poz yer işaretlerini çizmek için kullanılan iki Python modülü olan MediaPipe Bütünsel ve MediaPipe Çizim Yardımcı Programlarını tanıtır.

  • 00:15:00 Transkriptin bu bölümünde konuşmacı, işaret dili algılamayı kolaylaştırmak için bir işlev ayarlar. İşlev, bir görüntüyü ve bir ortam borusu bütünsel modelini alır ve görüntüyü ve sonuçları döngüye döndürmeden önce, BGR'den RGB'ye renk dönüştürme, algılama yapma ve görüntüyü tekrar BGR'ye dönüştürme dahil olmak üzere bir dizi adımdan geçer. oluşturma. Adımlar, görüntünün algılamadan önce yazılamaz olarak ve daha sonra tekrar yazılabilir olarak ayarlandığından emin olmak için simetrik olarak yapılır. Konuşmacı ayrıca görüntü rengini dönüştürmek için kullanılan cvtColor işlevini açıklar ve döngüde ortam borusu algılama işlevinin nasıl çağrılacağını gösterir.

  • 00:20:00 Bu bölümde sunum yapan kişi, bir "with deyimi" kullanarak MediaPipe modeline nasıl erişileceğini açıklar ve başlangıç ve izleme güvenini ayarlar. Ayrıca farklı yer işareti türlerine nasıl erişileceğini ve görselleştirileceğini gösterirler: yüz, sol ve sağ el ve poz işaretleri. Sunum yapan kişi daha sonra, yer işaretlerini algılamak için MediaPipe Holistic'in nasıl kullanılacağını gösterir ve sonuçları çerçevede görüntüler. Son olarak, bir işlev yazarak yer işaretlerinin ekrana nasıl dönüştürüleceğini gösterirler.

  • 00:25:00 Bu bölümde YouTuber, "draw_landmarks" adlı yeni bir işlev kuruyor. İşlev, yer işaretlerini çizmek için media pipe tarafından sağlanan "mp.drawing" yardımcı işlevini kullanır ve ayrıca girdi olarak görüntü ve yer işareti verilerini gerektirir. İşlev ayrıca bağlantı haritalarının ve biçimlendirme seçeneklerinin belirlenmesine de olanak tanır. YouTuber daha sonra web kamerasından yakalanan son kareyi görüntülemek için matplotlib'deki "plot.imshow" işlevinin nasıl kullanılacağını göstermeye devam ediyor.

  • 00:30:00 Bu bölümde, konuşmacı görüntünün rengini düzeltir ve yer işaretlerini "yer işaretleri çiz" işlevinden geçirerek görüntüye uygular. Media pipe algılama modelinin sonuçlarına, son çerçeve ve döngünün çalıştırılmasının sonuçları olarak erişilir. "mp_drawing.draw_landmarks" yöntemleri, tüm el, poz ve yüz bağlantılarını oluşturmak için geçerli çerçeveye uygulanır. Konuşmacı daha sonra gerçek zamanlı döngüye "yer işaretleri çiz" işlevini uygular ve oluşturmadan önce, sırasıyla noktaları ve bağlantıları çizmek için "yer işareti çizimi özelliği" ve "bağlantı çizimi özelliği"ni kullanarak biçimlendirme uygular. Son olarak, konuşmacı, istenirse "yer işaretleri çiz" işlevini özelleştirmek için "stil yer işaretleri çiz" adlı yeni bir işlev oluşturur.

  • 00:35:00 Bu bölümde, konuşmacı yer işaretleri çiz işlevi için biçimlendirmeyi günceller ve mp_drawing.drawing_spec işlevi için iki ek parametre - renk ve daire yarıçapı - ekler. Yüz yer işareti için değişiklikleri gösterirler ve ilk parametrenin yer işaretini renklendirdiğini ve ikinci parametrenin bağlantıyı renklendirdiğini açıklarlar. Ardından konuşmacı, her bir modele benzersiz renkler vererek, her bir poz ve el modeli için işlevdeki değişiklikleri kopyalar. Değişiklikler tamamen görseldir ve performansı etkilemez, ancak farklı modelleri çalışırken gösterirler.

  • 00:40:00 Bu bölümde, eğitim videosu, MediaPipe Bütünsel modelinin sonuç değişkeninden anahtar nokta değerlerinin, bunları bir numpy dizisinde birleştirerek ve hataları işleyerek esnek bir şekilde nasıl çıkarılacağını açıklar. Öğretici, bir döngü ve bir liste kavrayışı kullanarak bir yer işareti için değerlerin nasıl çıkarılacağını ve tüm yer işaretleri için nasıl güncelleneceğini anlatıyor. Tüm yer işaretlerini içeren son dizi daha sonra, birden çok yer işareti kümesi yerine tek bir dizide tüm değerlere sahip olacak şekilde düzleştirilir.

  • 00:45:00 Bu bölümde sunum yapan kişi, elin çerçeve dışında kalması nedeniyle önemli noktalar olmadığında işlenecek kodun nasıl değiştirileceğini açıklar. Sol taraftaki yer işaretlerinin her birinin üç değere sahip olduğunu ve gerekli toplam 63 değer için 21 yer işareti olduğunu göstererek başlarlar. Ardından, eksik değerleri boş bir numpy dizisiyle değiştiren bir if ifadesi uygularlar. Aynı değişiklik, daha sonra yine 63 değere sahip olan sağ taraftaki yer işaretlerine uygulanır. Kod, x, y ve z değerlerini tek bir büyük dizide birleştirerek ve ardından bunu LSTM modelinde kullanım için uygun biçime düzleştirerek farklı anahtar noktaları çıkarır.

  • 00:50:00 Bu bölümde, konuşmacı, poz modeline ve yüz yer işareti algılamaya hata işlemenin nasıl ekleneceğini tartışır ve yer işareti algılama ve hareket algılama için gereken kilit noktaları ayıklamak için "extract_key_points" adlı bir işlev oluşturur. İşlev, her bir yer işareti için x, y ve z değerlerini çıkarmak için numpy dizileri ve sonuçlar arasında döngüler kullanır ve ardından bunları bir dizi halinde düzleştirir. Konuşmacı ayrıca kodun video açıklamasında yer alacağından bahsediyor ve izleyicileri yorumlarda soru sormaya davet ediyor.

  • 00:55:00 Videonun bu bölümünde, konuşmacı Python ile eylem tanıma kullanarak işaret dili tespiti için anahtar nokta çıkarma işlevini açıklıyor. İşlev, poz, yüz, sol el ve sağ el için anahtar noktaları çıkarır ve bunları düzleştirilmiş bir numpy dizisinde birleştirir. Bu kilit noktalar, insan eylemi algılama kullanılarak işaret dilinin algılanması için kullanılan çerçeve değerlerini oluşturur. Konuşmacı ayrıca dışa aktarılan veri yolu ve algılanacak eylemler için değişkenler ayarlar - merhaba, teşekkürler, ve sizi seviyorum - her eylem için 30 kare veri kullanır.
  • 01:00:00 Videonun bu bölümünde sunum yapan kişi, Python ile eylem tanımayı kullanarak işaret dilini algılamak için veri toplama sürecini açıklıyor. Tespit etmek istedikleri üç eylemin her biri için, her videonun 30 kare uzunluğunda olduğu 30 video değerinde veri toplayacaklarını açıklıyorlar. Bu oldukça fazla veriye tekabül ediyor, ancak sunum yapan kişi izleyicilere bunu adım adım alacakları konusunda güvence veriyor. Her eylem ve eylem dizisi için, her dizinin her çerçevesinden 30 anahtar noktanın bir numpy dizisi olarak saklanacağı klasörler oluşturmaya devam ederler. Sunucu ayrıca 11. adımda izleyicilere kelimeleri cümle oluşturmak için nasıl birleştireceklerini göstereceklerinden bahseder.

  • 01:05:00 Bu bölümde eğitmen, işaret dili tanıma modeli için nasıl veri toplanacağını gösterir. Üç farklı işaret sınıfı - merhaba, teşekkürler ve seni seviyorum - ve bunlara karşılık gelen bireysel sıra klasörleri için klasörler oluşturarak başlar. Ardından, verileri toplamak için her eylem, video ve çerçeve boyunca döngü yapmak için medya boru döngüsünü değiştirir. Karelerin çok hızlı toplanmamasını sağlamak için, bir mantık ifadesi kullanarak her videonun arasına bir ara ekler. Bunu yaparak model, video başına 30 anahtar nokta değeri toplayarak, her biri işlem başına 30 video ve video başına 30 kare içeren, üç eylemden oluşan yığın halinde etkili bir set oluşturur.

  • 01:10:00 Bu bölümde video oluşturucu, videodan işaret dili hareketlerini algılamak için OpenCV ve derin öğrenme modellerini kullanan bir Python komut dosyasındaki toplama mantığının açıklamasını sağlar. Mantık, metnin ekrana çıkarılmasını ve her ikinci karede bir ara verilmesini içerir. Video oluşturucu ayrıca kareleri bir mp_data klasöründe saklanan numpy dizileri olarak kaydetmek için np.save kullanımını gösterir. Daha sonra anahtar noktanın çıkarılması ve çerçevelerin doğru klasörlere kaydedilmesi için son kod bloğunu sağlarlar.

  • 01:15:00 Transkriptin bu bölümünde, konuşmacı eylemleri ve sıraları (videolar) arasında geçiş yapmak, medya borusu algılamayı uygulamak, stilize edilmiş yer işaretleri çizmek ve belirli klasörlere kaydedilecek farklı kilit noktaları çıkarmak için uygulanan mantığı açıklar. Üç eylem kullanacaklar (merhaba, teşekkür ederim ve seni seviyorum) ve 30 sekans için eylem başına 30 kare toplayacaklar. Bu kodu çalıştırmadan önce, hataları iki kez kontrol ederler ve yazı tipinin gizlenmediğinden emin olmak için çizgi genişliğini ayarlarlar. Kod çalıştığında, açılır pencerede "Koleksiyon Başlatılıyor" yazıyor, eylemi gerçekleştirmek için pozisyon almak için iki saniyeleri var ve bunu yapmak için 30 kareleri var. Kod döngüye girebilmeli ve süresiz olarak veri toplayabilmelidir.

  • 01:20:00 Videonun bu bölümünde sunucu, Python'da MediaPipe ve OpenCV kitaplıklarını kullanarak işaret dili verilerinin nasıl toplanacağını gösteriyor. Sunucu, daha iyi model performansı için el işaretlerinin çeşitli açılarının yakalanmasını öneriyor ve ayrıca her biri 30 karelik 30 sekansa sahip olmanın iyi sonuç verme eğiliminde olduğundan bahsediyor. MediaPipe tarafından toplanan kilit noktalar, modeli çeşitli senaryolarda daha esnek hale getirmek için görüntü yerine kullanılır. Sunucu ayrıca, toplanan verilerin gelecekte kullanılmak üzere numpy dizileri olarak saklandığını da açıklar.

  • 01:25:00 Bu bölümde video, verileri önceden işlemeye ve LSTM derin öğrenme modeli için etiketler ve özellikler oluşturmaya odaklanır. Video, bağımlılıkları içe aktararak ve ardından temelde farklı eylemlerin her birini temsil eden bir sözlük olan bir etiket haritası oluşturarak başlar. Daha sonra, veriler okunur ve her biri anahtar noktaları temsil eden 1662 değere sahip 30 çerçeve içeren 90 diziden oluşan büyük bir dizide yapılandırmak için bir araya getirilir. Diziler ve etiketler olmak üzere iki boş dizi oluşturulur; burada diziler özellik verilerini ve etiketler de etiket verilerini temsil eder. Kod daha sonra eylemlerin ve dizilerin her biri arasında dolaşarak, pencerelerin o belirli dizi için tüm farklı çerçeveleri temsil etmesi için boş bir dizi oluşturur. Son olarak, her çerçeveyi yüklemek için numpy.load kullanılır.

  • 01:30:00 Bu bölümde konuşmacı, verileri bir numpy dizisinde depolayarak ve "to_categorical" işlevini kullanarak etiketleri tek sıcak kodlanmış bir gösterime dönüştürerek verileri ön işleme sürecinden geçer. Daha sonra verileri eğitim ve test kümelerine bölmek için "train_test_split" işlevini kullanırlar. Eğitim seti 85 diziden oluşur ve test seti beş diziden oluşur. Konuşmacı, TensorFlow ve Keras kullanarak bir LSTM sinir ağını eğitmeye hazırlanırken sıralı model, LSTM katmanı ve yoğun katman dahil olmak üzere gerekli bağımlılıkları da içe aktarır.

  • 01:35:00 Bu bölümde, konuşmacı sıralı, lstm, yoğun ve tensorboard dahil olmak üzere bir sinir ağı oluşturmak için gereken gerekli bağımlılıkları tartışıyor. Ardışık'ın modele katman eklemeyi kolaylaştırdığını ve lstm'nin zamansal analiz ve eylem tespiti için kullanıldığını açıklıyorlar. Konuşmacı ayrıca eğitim ilerlemesini izlemek için tensorboard geri aramalarının nasıl ayarlanacağını gösterir. Daha sonra, üç set lstm katmanı eklemeyi ve aktivasyon fonksiyonlarını ve giriş şeklini belirlemeyi içeren sinir ağı mimarisini oluşturmaya devam ederler. Son olarak, dizileri yoğun katmana döndürmemenin öneminden bahsediyorlar ve daha fazla öğrenme kaynağı öneriyorlar.

  • 01:40:00 Videonun bu bölümünde sunum yapan kişi, sonraki üç katmanın hepsinin yoğun katmanlar olduğunu belirterek LSTM modeline eklenen farklı katman türlerini gözden geçiriyor. Her yoğun katman, ReLU'nun aktivasyon değerleri ile 64 ve 32 yoğun birim veya tamamen bağlı nöronlar kullanır. Son katman, softmax'ın aktivasyon değerini kullanarak üç sinir ağı birimi olarak döndürülen değerleri çıkaran eylemler katmanıdır. Model, "Merhaba" gibi bir eylemi tahmin eder ve bu çıktı, 30 çerçeve artı 1.662 anahtar noktadan geçirilir ve eylemleri ayıklamak için önceden işlenir. Sunucu, yürüttükleri araştırma ve geliştirmeyi tartışarak MediaPipe ve LSTM katmanını kullanmaya nasıl geldiklerini açıklıyor. Son olarak, model, kayıp fonksiyonu olarak kategorik çapraz entropi kullanılarak derlenir ve belirtilen çağ sayısı için x treni ve y treni ile uygun hale getirilir ve eğitilir.

  • 01:45:00 Bu bölümde video, Python ile eylem tanıma kullanarak işaret dili tespiti için bir LSTM derin öğrenme modelinin eğitim sürecini gösterir. Model, veriler belleğe sığabileceği için bir veri oluşturucu gerektirmeyen MediaPipe Holistic'in modelini kullanır. Video, TensorBoard ile eğitim sürecinin nasıl kurulacağını ve TensorBoard'da eğitim sırasında modelin doğruluğunun ve kaybının nasıl izleneceğini gösterir. Video ayrıca, makul bir doğruluk düzeyine ulaşıldığında eğitim sürecinin nasıl durdurulacağını ve model.summary işlevini kullanarak model yapısının nasıl inceleneceğini de içerir.

  • 01:50:00 Bu bölümde konuşmacı bir modeli eğitir ve kaydedilen modeli kullanarak tahminlerde bulunur. Model, eylemleri işaret dilinden tanımlamak için LSTM derin öğrenme tekniğini kullanır. Model, algılanan eylemin en yüksek olasılığını bir softmax işleviyle tahmin eder. Tahmin edilen değer, modelin performansını değerlendirmek için gerçek değerle karşılaştırılır. Konuşmacı, eğitilen modeli action.h5 olarak kaydeder ve bir derleme ve yükleme işleviyle yeniden yükler. Metrikleri sklearn'den içe aktaran konuşmacı, modelin çok etiketli karışıklık matrisinin performansını değerlendirir.

  • 01:55:00 Videonun bu bölümünde sunum yapan kişi, çok etiketli bir karışıklık matrisi ve doğruluk puanı işlevi kullanarak eğitilen modelin performansının nasıl değerlendirileceğini açıklıyor. Karışıklık matrisi, gerçek pozitifleri ve gerçek negatifleri temsil eder ve sol üst ve sağ alt köşedeki bu değerlerin sayısı ne kadar yüksek olursa, model o kadar iyi performans gösterir. Doğruluk puanı işlevi, modelin doğru tahminlerinin yüzdesini verir. Eğitilen model daha sonra test verileri kullanılarak değerlendirilir ve algılama için yeni değişkenler oluşturmayı, çerçeveleri birleştirmeyi ve tahmin mantığını uygulamayı içeren gerçek zamanlı algılama için döngü yeniden kurulur. Belirli bir güven metriğinin üzerindeki sonuçları işlemek için bir eşik değişkeni de uygulanır.

  • 02:00:00 Bu bölümde konuşmacı, Python ve LSTM derin öğrenme modeli ile eylem tanıma kullanarak işaret dili tespiti için tahmin mantığını açıklıyor. Anahtar noktaları çıkararak ve bunları 30 karelik bir diziye ekleyerek başlarlar. Dizinin uzunluğu 30'a eşitse, dizinin genişletilmiş boyutlarıyla model.predict'i çağırarak tahmini çalıştırırlar. Daha sonra np.argmax ve daha önce tanımlanan eylemleri kullanarak tahmin edilen sınıfı yazdırırlar. Konuşmacı ayrıca mantığı çözmek için dizinin başına anahtar noktalar ekler ve koda görselleştirme mantığı eklemeye devam eder.

  • 02:05:00 Bu bölümde konuşmacı, programın "mp.argmax" kullanarak ve "res" içinden geçerek en yüksek puan sonucunu çıkararak sonucun eşiğin üzerinde olup olmadığını nasıl kontrol ettiğini açıklayan kodu parçalara ayırır. Programın mantığı, son kelimenin mevcut tahminle eşleşmesini kontrol etmektir. Varsa, program cümle uzunluğuna eklenmeyecektir. Eşleşmiyorsa, program mevcut algılanan eylemi cümle dizimize ekler. Cümle uzunluğu, programın dev bir dizi oluşturmaya çalışmaması için en fazla beş kelime içermelidir. Son olarak, program cümleyi görüntülemek için görüntünün üzerine metin ve bir dikdörtgen koyacaktır.

  • 02:10:00 Bu bölümde, video eylem tanımayı kullanarak işaret dilini algılamak için Python ve bir LSTM Derin Öğrenme modelinin nasıl kullanılacağını gösterir. Öğretici, ekleme yöntemini kullanmak için kodu ayarlamayı ve daha iyi doğruluk için algılama eşiğini artırmayı adım adım anlatır. Video ayrıca, bir olasılık görselleştirmesi oluşturmak için olasılıkların hızlı bir işlevle nasıl oluşturulacağını gösterir ve algılama çıktısının görsel olarak çekici görünmesini sağlar. Genel olarak eğitim, Python ile işaret dilini algılamak için derin öğrenme modellerini kullanmanın mükemmel bir örneğini sunar ve bu da onu benzer projeler oluşturmak isteyen herkes için mükemmel bir kaynak yapar.

  • 02:15:00 Videonun bu bölümünde sunucu, farklı eylemleri ve olasılıklarının gerçek zamanlı olarak nasıl hesaplandığını görmemizi sağlayan bir olasılık görselleştirme işlevini gösteriyor. İşlev, çıktı çerçevesine dinamik bir dikdörtgen yerleştirmek için cv2.rectangle'ı kullanır ve ardından onu, üzerinde çalışmakta olduğumuz eyleme göre konumlandırır ve doldurur; ardından metin değerlerinin çıktısını almak için cv2.put metin yöntemini kullanır. Sunucu, bu işlevi gerçek zamanlı olarak görselleştirmek için nasıl döngüye alınabileceğini gösterir ve merhaba, teşekkürler ve seni seviyorum gibi farklı eylemleri olasılık değerlerine göre algılayıp tanıdığını görebiliriz. Sunucu, bu işlev için birçok uygulama olduğunu vurgular ve kodun çeşitli senaryolarda farklı eylemleri algılamak ve tanımak için nasıl kullanılabileceğini gösterir.

  • 02:20:00 Videonun bu bölümünde sunum yapan kişi, işaret dili algılama projesinin sürecini özetliyor. Toplama için klasörler oluşturdular, kilit noktaları topladılar, verileri önceden işlediler, bir LSTM sinir ağı oluşturdular, tahminler yaptılar ve bunu gerçek zamanlı olarak test ettiler. Olasılık görselleştirmesi de dahil olmak üzere tespitleri gerçek zamanlı olarak etkili bir şekilde çalıştırabildiler. Doğru kareleri yakalamak için kodu nasıl düzelttiklerini ve bunları iki nokta üst üste taşıyarak ve bir negatif ekleyerek diziye eklediklerini gösteriyorlar. Ayrıca, eylemleri tahmin ederken daha fazla kararlılık sağlamak için tahminlerini yeni bir tahmin dizisine eklemek için bir satır eklediler. Son olarak, kullanıcıların uygun gördükleri şekilde ek eylemler, renkler ve/veya görselleştirmeler ekleyerek projeyi genişletip değiştirebilmelerini sağlar.

  • 02:25:00 Bu bölümde konuşmacı, ek mantık uygulayarak eylem algılama modelinin nasıl daha kararlı ve esnek hale geldiğini gösteriyor. Model artık yanlış algılamaları en aza indirebilir ve algılamayı daha uzun süre tutarak doğruluğunu geliştirebilir. Konuşmacı ayrıca, model için eğitilmiş ağırlıkların, kullanıcıların yararlanabilmesi için GitHub deposunda bulunacağını da belirtiyor. Video, videoyu beğenmeniz ve kanala abone olmanız için bir davetle sona eriyor.
GitHub - nicknochnack/ActionDetectionforSignLanguage: A practical implementation of sign language estimation using an LSTM NN built on TF Keras.
GitHub - nicknochnack/ActionDetectionforSignLanguage: A practical implementation of sign language estimation using an LSTM NN built on TF Keras.
  • nicknochnack
  • github.com
A practical implementation of sign language estimation using an LSTM NN built on TF Keras. - GitHub - nicknochnack/ActionDetectionforSignLanguage: A practical implementation of sign language estim...