Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deep Learning Journey

NumPy ve pandas temellerinden PyTorch, CNN, Vision Transformer ve gerçek zamanlı OpenCV/MediaPipe uygulamalarına uzanan uygulamalı bir öğrenme deposu.

Bu depo tek bir üretim uygulaması değildir. Ders sırasında geliştirilen notebook'ları, küçük veri bilimi alıştırmalarını, görüntü işleme örneklerini, kamera/video demolarını, bir FastAPI uygulamasını ve konu anlatım PDF'lerini aynı öğrenme yolculuğu altında toplar. Notebook çıktıları da öğrenme geçmişini göstermek amacıyla korunmuştur.

Depoda ne var?

Konum İçerik
DeepLearning_1/ NumPy, pandas, Matplotlib, Seaborn, veri analizi, quizler ve Python alıştırmaları
DeepLearning_2/ PyTorch temelleri, eğitim döngüleri, sınıflandırma, CNN, TensorBoard ve Vision Transformer notebook'ları
DeepLearning_2/iris_app/ Eğitilmiş iris modelini kullanan FastAPI tabanlı web uygulaması
OpenCV/ Temel görüntü/video okuma, çizim, eşikleme, morfoloji, gradyan ve histogram örnekleri
OpenCV_Projects/ El/yüz/poz takibi, park yeri sayacı, yol çizgisi ve uyku algılama demoları
marvel_mask_project/ Webcam görüntüsüne MediaPipe ile maske yerleştiren demo
scripts/prepare_datasets.py Git'e eklenmeyen görüntü veri setlerini indirip hazırlar
data-manifests/dessert101.csv Food-101 içinden seçilecek 393 görseli ve train/test ayrımını sabitler
Kök dizindeki PDF'ler Perceptron, CNN, NLP, attention ve transformer ders notları

Önerilen inceleme sırası:

  1. DeepLearning_1/ ile NumPy, pandas ve görselleştirme temelleri.
  2. DeepLearning_2/01-... ile 09-... arasında PyTorch ve sınıflandırma.
  3. DeepLearning_2/10-... ile 15-... arasında bilgisayarlı görü, CNN ve ViT.
  4. OpenCV/ ile temel görüntü işleme.
  5. OpenCV_Projects/, marvel_mask_project/ ve iris_app/ ile küçük uygulamalar.

Hızlı başlangıç

Gereksinimler:

  • Python 3.12 önerilir; depo Python 3.12.2 ile hazırlanmıştır.
  • Git ve notebook'lar için Jupyter veya VS Code Jupyter eklentisi.
  • Kamera demoları için webcam.
  • GPU zorunlu değildir. PyTorch örnekleri CPU üzerinde de çalışabilir.

Depoyu klonlayın:

git clone https://github.com/Ramazan-yildirim/deep-learning.git
cd deep-learning

Windows PowerShell

py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txt
python -m ipykernel install --user --name deep-learning-journey --display-name 'Python (deep-learning-journey)'

PowerShell aktivasyon politikasına takılırsanız yalnızca açık terminal oturumu için:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

macOS / Linux

python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
python -m ipykernel install --user --name deep-learning-journey --display-name 'Python (deep-learning-journey)'

Kurulumu kontrol edin:

python -m pip check
python -c 'import torch, cv2, mediapipe, pandas; print(torch.__version__, torch.cuda.is_available())'

requirements.txt, CPU üzerinde çalışan ortak kurulumu tanımlar. NVIDIA CUDA veya AMD ROCm kullanacaksanız sisteminize uygun torch ve torchvision komutunu PyTorch kurulum seçicisinden alın.

Notebook'ları çalıştırma

Jupyter'i depo kökünden başlatabilirsiniz:

jupyter lab

Notebook'ların çoğu göreli dosya yolu kullandığı için en güvenli yöntem ilgili klasörden başlatmaktır:

cd DeepLearning_1
jupyter lab

veya:

cd DeepLearning_2
jupyter lab

VS Code kullanıyorsanız kernel olarak .venv içindeki Python yorumlayıcısını veya Python (deep-learning-journey) kernel'ını seçin. Kaydedilmiş çıktılar kullanılan donanıma, paket sürümüne ve rastgeleliğe göre yeniden çalıştırıldığında değişebilir. Uzun eğitim hücreleri kullanıcı tarafından durdurulmuş çıktı içerebilir; kesin sonuç için ilgili notebook'ta Restart Kernel and Run All kullanın.

Veri setleri ve indirme kaynakları

Büyük veri setleri GitHub'a gönderilmez. DeepLearning_2/data/ yalnızca .gitkeep ile izlenir ve aşağıdaki komutla yeniden oluşturulur:

python scripts/prepare_datasets.py --dataset all

Tek bir veri seti hazırlamak için:

python scripts/prepare_datasets.py --dataset cifar10
python scripts/prepare_datasets.py --dataset caltech101
python scripts/prepare_datasets.py --dataset dessert101
Veri Kullanıldığı yer Yerel konum Resmî kaynaklar
CIFAR-10 10-IntroToComputerVision.ipynb DeepLearning_2/data/cifar-10-batches-py/ CIFAR-10 ana sayfası, Torchvision CIFAR10
Caltech-101 15-TransformersVit.ipynb DeepLearning_2/data/caltech101/ CaltechDATA kaydı, Torchvision Caltech101
Food-101 / Dessert101 alt kümesi 12-Desert101.ipynb DeepLearning_2/data/desert101/ ETH Zürich Food-101, Torchvision Food101
Olimpiyat geçmişi 11-VisualizationSeaborn.ipynb DeepLearning_1/athlete_events.csv Kaggle: 120 years of Olympic history

Dessert101 ayrıntısı

scripts/prepare_datasets.py, Food-101 eğitim arşivini indirir ve data-manifests/dessert101.csv içindeki aynı 393 görseli seçer. Alt küme baklava, cannoli, cup_cakes ve donuts sınıflarından 316 eğitim ve 77 test görseli içerir. Notebook'la uyumluluk için klasör adı bilinçli olarak desert101 biçiminde korunmuştur.

Food-101 indirme önbelleği yaklaşık 5 GB olabilir. Başka diskte tutmak için:

python scripts/prepare_datasets.py --dataset dessert101 --cache-dir D:/datasets/food101

Alt küme oluşturulduktan sonra tam arşive ihtiyacınız yoksa .dataset-cache/ klasörünü silebilirsiniz. Betik ayrıca tek-görsel tahmin hücresinin beklediği DeepLearning_2/data/baklava_online.jpg dosyasını alt kümeden üretir.

Olimpiyat verisi

Kaggle hesabınız ve API anahtarınız hazırsa:

pip install kaggle
kaggle datasets download -d heesoo37/120-years-of-olympic-history-athletes-and-results -p DeepLearning_1 --unzip

Alternatif olarak Kaggle sayfasından ZIP dosyasını indirip athlete_events.csv ve noc_regions.csv dosyalarını DeepLearning_1/ altına çıkarın. Kaggle paketi yalnızca bu isteğe bağlı indirme yöntemi için gereklidir ve ana requirements dosyasına eklenmemiştir.

Küçük ders CSV/XLSX dosyaları depoya dahildir; ayrıca indirilmeleri gerekmez.

MediaPipe modelleri ve diğer dış varlıklar

Çevrimdışı çalışabilmek için aşağıdaki MediaPipe model dosyaları depoda tutulur. Bağlantılar Google'ın resmî model depolama alanına gider:

Depodaki dosya Kullanan örnek Dokümantasyon Doğrudan model bağlantısı
OpenCV_Projects/hand_landmarker.task Hand_Tracking, finger_counting Hand Landmarker for Python hand_landmarker.task
OpenCV_Projects/face_landmarker.task face_mesh Face Landmarker for Python face_landmarker.task
OpenCV_Projects/blaze_face_short_range.tflite face_detection Face Detector for Python blaze_face_short_range.tflite
OpenCV_Projects/sleep_detection/face_landmarker.task Arşivlenmiş yerel kopya; mevcut script cvzone.FaceMeshModule kullanır Face Landmarker for Python face_landmarker.task

Diğer dış varlıklar:

  • DeepLearning_2/models/iris_classification_model.pth, 09-MultiClassClassification.ipynb ile eğitilmiş dört girişli iris sınıflandırıcısının ağırlıklarıdır; internetten indirilen bir model değildir.
  • OpenCV/messi5.jpg, OpenCV'nin resmî örnek veri dizisindeki messi5.jpg ile aynı adlı eğitim görselidir.
  • OpenCV/sudoku.jpg, OpenCV'nin resmî sudoku.png örneğinin JPEG olarak kaydedilmiş/küçültülmüş eğitim kopyasıdır.
  • OpenCV/Lenna_(test_image).png, yaygın Lenna test görselidir. Tarihçe ve kaynak bilgisi için Wikimedia Commons dosya sayfasına bakın.
  • OpenCV/ altındaki diğer JPG/PNG dosyaları ders örnekleriyle birlikte depoda korunur. Özgün indirme adresleri dosyalardan güvenilir biçimde tespit edilemediği için yanlış kaynak bağlantısı verilmemiştir.
  • marvel_mask_project/masks/ altındaki karakter görselleri yalnızca eğitim demosu içindir. Marvel karakterleri ve ilgili görseller kendi hak sahiplerine aittir.
  • Iris web arayüzü çalışma anında Google Fonts ve Font Awesome 6.4.0 CDN kaynaklarını kullanır; çevrimdışı kullanımda ikonlar ve web fontları yüklenmeyebilir.

Video kullanan örnekler

Video dosyaları depo boyutunu ve kaynak/lisans belirsizliğini artırmamak için .gitignore ile dışlanmıştır. Klonlanan depoda bu videolar bulunmaz.

Script Varsayılan girdi Yapılması gereken
OpenCV/2_video_ice_aktarma.py MOT17-04-DPM.mp4 Kendi videonuzu bu adla koyun veya yolu değiştirin. Örneğin adı MOT17 veri ailesine dayanır.
OpenCV/3_Kamera-acma-ve-video-kaydi.py Webcam 0 Kamera görüntüsünü video_kaydi.avi olarak üretir; çıktı Git'e eklenmez.
OpenCV_Projects/face_detection/face_detection.py video1.mp4 Script klasörüne kendi videonuzu koyun veya video_path değerini değiştirin.
OpenCV_Projects/face_mesh/face_mesh.py video1.mp4 Script klasörüne kendi videonuzu koyun veya video_path değerini değiştirin.
OpenCV_Projects/parking_space_counter/parking_space_counter.py video.mp4 Park alanı videosunu script klasörüne koyun. first_frame.png ve CarParkPos depodadır.
OpenCV_Projects/personal_trainer/personal_trainer.py video2.mp4 Egzersiz videosunu script klasörüne koyun.
OpenCV_Projects/pose_estimation/pose_estimation.py video5.mp4 Poz videosunu script klasörüne koyun; isterseniz kodda webcam 0 satırını etkinleştirin.
OpenCV_Projects/road_line_detection/road_line_detection.py video2.mp4 Yol videosunu script klasörüne koyun.
OpenCV_Projects/sleep_detection/sleep_detection.py video2.mp4 Yüzün göründüğü bir videoyu script klasörüne koyun.

Hand_Tracking, finger_counting ve marvel_mask_project doğrudan webcam 0 kullanır. Kamera açılamazsa işletim sistemi izinlerini ve başka bir uygulamanın kamerayı kullanıp kullanmadığını kontrol edin.

Uygulamaları çalıştırma

Çoğu OpenCV örneği göreli dosya yolu kullandığı için komutu scriptin klasöründen çalıştırın.

Marvel maskesi:

cd marvel_mask_project
python main.py

Yüz algılama:

cd OpenCV_Projects/face_detection
python face_detection.py

Iris FastAPI uygulaması:

cd DeepLearning_2/iris_app
uvicorn main:app --reload

Ardından http://127.0.0.1:8000 adresini açın. Uygulama dört iris ölçüsünü alır, DeepLearning_2/models/iris_classification_model.pth ağırlıklarını CPU üzerinde yükler ve sınıf olasılıklarını döndürür.

TensorBoard

13-TensorboardExample.ipynb çalıştırıldığında oluşan DeepLearning_2/runs/ dosyaları Git'e eklenmez. Sonuçları görüntülemek için:

tensorboard --logdir DeepLearning_2/runs

Yeni klonda önce notebook'u çalıştırarak bu kayıtları yeniden üretmeniz gerekir.

Git'e eklenmeyenler

Bu içerikler klonlanan depoda bulunmaz ve gerektiğinde yeniden üretilir veya kullanıcı tarafından sağlanır:

  • .venv/ ve Python önbellekleri,
  • DeepLearning_2/data/ altındaki indirilen veri setleri,
  • .dataset-cache/ içindeki Food-101 indirme önbelleği,
  • DeepLearning_1/athlete_events.csv ve noc_regions.csv,
  • TensorBoard koşuları, loglar, checkpoint'ler ve deney çıktıları,
  • *.mp4, *.avi, *.mov ve *.mkv videoları,
  • geçici arşivler ve yerel .env dosyaları.

Bilinen sınırlar

  • Bu bir öğrenme arşividir; tüm notebook'ları baştan sona çalıştıran otomatik test/CI akışı yoktur.
  • Kamera ve video demoları masaüstü ortamı ister; başsız sunucuda pencere açamaz.
  • Bazı notebook'lar veri indirir veya uzun süren eğitim yapar.
  • Paketler uyumlu sürüm aralıklarıyla tanımlanmıştır, tam kilit dosyası yoktur.
  • Video örnekleri klondan hemen sonra çalışmaz; yukarıdaki tabloda belirtilen girdiyi sağlamanız gerekir.

Kaynak, lisans ve kullanım notu

Veri setleri, MediaPipe modelleri, web fontları ve üçüncü taraf görseller kendi lisans ve kullanım koşullarına tabidir. Yukarıdaki bağlantılar özgün kaynağı bulmayı ve ilgili koşulları kontrol etmeyi kolaylaştırmak için verilmiştir.

Kökteki ders PDF'lerinin özgün yayın/indirme adresleri dosya metadata'sından güvenilir biçimde tespit edilememiştir. Depoyu herkese açık kullanmadan önce PDF'leri ve kaynağı belirsiz eğitim görsellerini dağıtma hakkına sahip olduğunuzdan emin olun.

Bu depoya henüz proje geneli bir açık kaynak lisansı eklenmemiştir. Bu nedenle kodun yeniden kullanımı için otomatik olarak izin verildiği varsayılmamalıdır. Yeniden kullanıma izin vermek istiyorsanız uygun bir LICENSE dosyası ekleyin.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages