{"id":49668188,"url":"https://github.com/code-alchemist01/pharmaapp","last_synced_at":"2026-05-06T18:04:55.889Z","repository":{"id":330457399,"uuid":"1122833926","full_name":"code-alchemist01/PharmaAPP","owner":"code-alchemist01","description":"PharmaApp, kullanıcıların ilaç kutusu fotoğraflarından otomatik olarak ilaç tanıma, takip etme ve hatırlatma alabilmelerini sağlayan kapsamlı bir mobil uygulamadır. Sistem, iki aşamalı derin öğrenme yaklaşımı (YOLOv8 + Vision Transformer) kullanarak yüksek doğruluk oranları elde etmektedir.","archived":false,"fork":false,"pushed_at":"2025-12-25T17:27:58.000Z","size":672,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-27T02:51:04.853Z","etag":null,"topics":["classification","computer-vision","dete","mobile-app","pharmacy","vision","vision-transformer","yolov8"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/code-alchemist01.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-25T16:04:42.000Z","updated_at":"2025-12-26T12:42:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/code-alchemist01/PharmaAPP","commit_stats":null,"previous_names":["code-alchemist01/pharmaapp"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/code-alchemist01/PharmaAPP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-alchemist01%2FPharmaAPP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-alchemist01%2FPharmaAPP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-alchemist01%2FPharmaAPP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-alchemist01%2FPharmaAPP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/code-alchemist01","download_url":"https://codeload.github.com/code-alchemist01/PharmaAPP/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-alchemist01%2FPharmaAPP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32705643,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T08:33:17.875Z","status":"ssl_error","status_checked_at":"2026-05-06T08:33:17.221Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["classification","computer-vision","dete","mobile-app","pharmacy","vision","vision-transformer","yolov8"],"created_at":"2026-05-06T18:04:52.945Z","updated_at":"2026-05-06T18:04:55.879Z","avatar_url":"https://github.com/code-alchemist01.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💊 PharmaApp - İlaç Takip ve Tanıma Sistemi\n\n**Yapay Zeka Destekli Mobil İlaç Takip ve Tanıma Uygulaması**\n\nPharmaApp, kullanıcıların ilaç kutusu fotoğraflarından otomatik olarak ilaç tanıma, takip etme ve hatırlatma alabilmelerini sağlayan kapsamlı bir mobil uygulamadır. Sistem, iki aşamalı derin öğrenme yaklaşımı (YOLOv8 + Vision Transformer) kullanarak yüksek doğruluk oranları elde etmektedir.\n\n## 📊 Veri Setleri ve Model Dosyaları\n\nBu proje aşağıdaki veri setlerini ve model dosyalarını kullanmaktadır:\n\n### 📦 Veri Setleri (Kaggle)\n\n- **12-Class Turkish Drug Detection Dataset**: [Kaggle Dataset](https://www.kaggle.com/datasets/kutayahin/turkish-pharmaceutical-drug-dataset-12-classes)\n- **150-Class Pharmaceutical Medication Dataset**: [Kaggle Dataset](https://www.kaggle.com/datasets/kutayahin/150-class-pharmaceutical-medication-dataset)\n\n**Not:** Model eğitimi yapmak istiyorsanız, veri setlerini Kaggle'dan indirip proje klasörlerine yerleştirmeniz gerekmektedir. Detaylı kurulum adımları aşağıda verilmiştir.\n\n### 🤖 ONNX Model Dosyaları (Google Drive)\n\n- **ONNX Model Dosyaları**: [Google Drive Linki](https://drive.google.com/file/d/1WCvGnk7QElLjhcohL-gOdpSy5k4UA_BP/view?usp=sharing)\n\n**Not:** Uygulamayı çalıştırmak için ONNX model dosyalarını Google Drive'dan indirip `PharmaApp/android/app/src/main/assets/` klasörüne yerleştirmeniz gerekmektedir. Detaylı indirme ve kurulum adımları aşağıdaki \"Hızlı Başlangıç\" bölümünde verilmiştir.\n\n---\n\n## 📋 İçindekiler\n\n- [Veri Setleri](#-veri-setleri)\n- [Genel Bakış](#genel-bakış)\n- [Özellikler](#özellikler)\n- [Sistem Gereksinimleri](#sistem-gereksinimleri)\n- [⚡ Hızlı Başlangıç: Sadece Uygulamayı Çalıştırmak](#-hızlı-başlangıç-sadece-uygulamayı-çalıştırmak-istiyorum)\n- [Sıfırdan Kurulum Rehberi](#-sıfırdan-kurulum-rehberi)\n  - [Ön Hazırlık](#01-ön-hazırlık)\n  - [Python Backend Kurulumu](#1-python-backend-kurulumu)\n  - [Model Eğitimi](#2-model-eğitimi)\n  - [Model Dönüştürme (ONNX)](#23-model-dönüştürme-onnx)\n  - [Mobil Uygulama Kurulumu](#3-mobil-uygulama-kurulumu)\n- [Kullanım](#kullanım)\n- [Proje Yapısı](#proje-yapısı)\n- [Sorun Giderme](#sorun-giderme)\n- [Performans Metrikleri](#performans-metrikleri)\n\n---\n\n## 🎯 Genel Bakış\n\nPharmaApp, üç ana bileşenden oluşan entegre bir sistemdir:\n\n1. **Python Backend**: Model eğitimi, inference\n2. **Mobil Uygulama**: React Native tabanlı cross-platform uygulama (Android/iOS)\n3. **Yapay Zeka Modelleri**: YOLOv8 (Detection) + Vision Transformer (Classification)\n\n### Sistem Mimarisi\n\nSistem, **iki aşamalı (two-stage) derin öğrenme** yaklaşımı kullanmaktadır:\n\n```\nGiriş Görüntüsü\n    ↓\n[YOLOv8 Detection] → İlaç kutusunu tespit et\n    ↓\n[Görüntü Kırpma] → Tespit edilen bölgeyi kırp\n    ↓\n[ViT Classification] → İlacı sınıflandır (12 veya 150 sınıf)\n    ↓\nSonuç: İlaç adı + Güven skoru\n```\n![photo_5938234716056128501_y](https://github.com/user-attachments/assets/4dc4b315-711c-4fa4-aaaf-5ede16c6c375) ![photo_5938234716056128502_y](https://github.com/user-attachments/assets/84e91243-4a7e-4e99-af98-0675f954128e)\n![photo_5938234716056128503_y](https://github.com/user-attachments/assets/11534a63-8c7a-43cb-8575-baaac57f03d3) ![photo_5938234716056128504_y](https://github.com/user-attachments/assets/8f8464d3-1027-45d0-b3c3-b310ab978862)\n![photo_5938234716056128505_y](https://github.com/user-attachments/assets/6bcca74c-9011-4fa6-91a6-b84fbe68c5eb) ![photo_5938234716056128506_y](https://github.com/user-attachments/assets/b4bc8c09-1ad7-442d-bf8a-d4226a00ad48)\n![photo_5938234716056128507_y](https://github.com/user-attachments/assets/9e12d34d-b7c6-4159-bd14-6d10293142d4) ![photo_5938234716056128508_y](https://github.com/user-attachments/assets/5ffdbbd0-751b-44da-ae91-3ca3c94f2c79)\n![photo_5938234716056128509_y](https://github.com/user-attachments/assets/c01b7e5d-2c30-433e-94d7-e0d7157fa12f)\n\n\n### Model Yaklaşımı\n\nSistem, **hibrit model yaklaşımı** kullanmaktadır:\n\n- **12 Sınıf Yüksek Doğruluk Modeli**: Aferin, Apranax, Arveles, Aspirin, Dolorex, Hametan Krem, Hametan Merhem, Majezik, Metpamid, Parol, Terbisil, Unisom\n  - **Doğruluk**: %99.82\n  - **Kullanım**: Yüksek güven gereken durumlar\n  \n- **150 Sınıf Geniş Kapsam Modeli**: 150 farklı Türk ilaç kategorisi\n  - **Doğruluk**: %85-90\n  - **Kullanım**: Geniş kapsam gereken durumlar\n\n- **Birleştirilmiş Yaklaşım**: Her iki model paralel çalıştırılır, sonuçlar birleştirilir ve en yüksek güven skorlu sonuç seçilir.\n\n---\n\n## ✨ Özellikler\n\n### 🤖 Yapay Zeka Özellikleri\n\n- ✅ **İki Aşamalı Tanıma Sistemi**: YOLOv8 (Detection) + Vision Transformer (Classification)\n- ✅ **162 İlaç Sınıfı**: 12 yüksek doğruluk + 150 geniş kapsam ilaç sınıfı\n- ✅ **Yüksek Doğruluk**: %99.82 (12 sınıf), %85-90 (150 sınıf)\n- ✅ **Gerçek Zamanlı Inference**: Mobil cihazlarda ~150-400ms inference süresi\n- ✅ **Hibrit Model Yaklaşımı**: İki model entegrasyonu ile hem yüksek doğruluk hem geniş kapsam\n- ✅ **Offline Çalışma**: İnternet bağlantısı olmadan çalışabilme\n\n### 📱 Mobil Uygulama Özellikleri\n\n- ✅ **İlaç Tanıma**: Kamera ile fotoğraf çekerek otomatik ilaç tanıma\n- ✅ **İlaç Takibi**: İlaç alım geçmişi ve istatistikler\n- ✅ **Alarm Sistemi**: Özelleştirilebilir ilaç hatırlatıcıları\n- ✅ **Takvim Entegrasyonu**: İlaç alım takvimi görüntüleme\n- ✅ **Offline Çalışma**: SQLite yerel veritabanı ile offline çalışma\n- ✅ **Firebase Senkronizasyonu**: Çoklu cihaz senkronizasyonu\n- ✅ **Kullanıcı Yönetimi**: Firebase Authentication ile güvenli giriş\n\n---\n\n## 🖥️ Sistem Gereksinimleri\n\n### Python Backend (Model Eğitimi/Inference)\n\n- **Python**: 3.8 veya üzeri\n- **CUDA**: 11.0+ (GPU eğitimi için, opsiyonel)\n- **RAM**: 8GB+ (16GB önerilir)\n- **Disk**: 10GB+ boş alan\n- **GPU**: NVIDIA GPU (RTX 3060 veya üzeri önerilir, opsiyonel)\n\n### Mobil Uygulama (React Native)\n\n- **Node.js**: 20 veya üzeri\n- **React Native**: 0.82.1\n- **Android Studio**: Son sürüm (Android geliştirme için)\n- **Xcode**: Son sürüm (iOS geliştirme için, sadece macOS)\n- **Java JDK**: 17 veya üzeri\n- **Android SDK**: API Level 24+ (Android 7.0+)\n\n---\n\n## 🚀 Sıfırdan Kurulum Rehberi\n\nBu rehber, projeyi sıfırdan kurmak ve modelleri eğitmek için gerekli tüm adımları içermektedir.\n\n**⚠️ ÖNEMLİ NOTLAR:**\n- Bu rehber, hiçbir ön bilgisi olmayan kullanıcılar için hazırlanmıştır\n- Her adımı sırayla takip edin\n- Bir adımı atlamayın\n- Hata alırsanız, önce \"Sorun Giderme\" bölümüne bakın\n- Eğitim süreleri tahminidir ve donanımınıza göre değişebilir\n\n---\n\n## ⚡ Hızlı Başlangıç: Sadece Uygulamayı Çalıştırmak İstiyorum\n\n**Model eğitimi yapmadan, sadece uygulamayı çalıştırmak istiyorsanız:**\n\n### Adım 1: Git Kurulumu ve Repository'yi Clone Et\n\n**Git Kurulumu:**\n1. [Git](https://git-scm.com/downloads) indirin ve kurun (eğer yoksa)\n2. Kurulumu doğrulayın:\n   ```bash\n   git --version\n   ```\n\n**Repository'yi Clone Et:**\n```bash\n# Repository'yi klonlayın\ngit clone https://github.com/code-alchemist01/PharmaAPP.git\ncd PharmaAPP\n```\n\n### Adım 2: ONNX Model Dosyalarını İndirin (Google Drive)\n\n**⚠️ ÖNEMLİ:** Uygulamanın çalışması için ONNX model dosyaları gereklidir!\n\n**İndirme Adımları:**\n\n1. **Google Drive Linkine Gidin:**\n   - Link: [ONNX Model Dosyaları](https://drive.google.com/file/d/1WCvGnk7QElLjhcohL-gOdpSy5k4UA_BP/view?usp=sharing)\n   - Tarayıcınızda linki açın\n\n2. **Dosyayı İndirin:**\n   - Google Drive sayfasında \"İndir\" (Download) butonuna tıklayın\n   - ZIP dosyası indirilecek (~668 MB)\n   - İndirme tamamlanana kadar bekleyin\n\n3. **ZIP Dosyasını Açın:**\n   - İndirilen ZIP dosyasını bulun (genellikle İndirilenler klasöründe)\n   - ZIP dosyasını sağ tıklayıp \"Tümünü çıkart\" veya \"Extract All\" seçin\n   - İçerik 4 ONNX dosyası olmalı:\n     - `detection.onnx` (~11.71 MB)\n     - `classification.onnx` (~1.22 MB)\n     - `classification.onnx.data` (~327.38 MB)\n     - `classification_150.onnx` (~327.82 MB)\n\n4. **Dosyaları Assets Klasörüne Kopyalayın:**\n\n   **Windows:**\n   ```bash\n   # Ana klasöre gidin (PharmaAPP klasörü)\n   cd PharmaAPP\n   \n   # Assets klasörünü oluşturun (eğer yoksa)\n   mkdir PharmaApp\\android\\app\\src\\main\\assets\n   \n   # ONNX dosyalarını kopyalayın\n   # ZIP'ten çıkarttığınız dosyaları bulun ve şu komutu kullanın:\n   copy \"ZIP_TEN_ÇIKARTILAN_KLASÖR\\*.onnx*\" PharmaApp\\android\\app\\src\\main\\assets\\\n   ```\n\n   **Linux/Mac:**\n   ```bash\n   # Ana klasöre gidin (PharmaAPP klasörü)\n   cd PharmaAPP\n   \n   # Assets klasörünü oluşturun (eğer yoksa)\n   mkdir -p PharmaApp/android/app/src/main/assets\n   \n   # ONNX dosyalarını kopyalayın\n   cp \"ZIP_TEN_ÇIKARTILAN_KLASÖR/*.onnx*\" PharmaApp/android/app/src/main/assets/\n   ```\n\n5. **Dosyaları Kontrol Edin:**\n   ```bash\n   # Windows\n   dir PharmaApp\\android\\app\\src\\main\\assets\\*.onnx*\n   \n   # Linux/Mac\n   ls PharmaApp/android/app/src/main/assets/*.onnx*\n   \n   # Şu 4 dosyayı görmelisiniz:\n   # - detection.onnx\n   # - classification.onnx\n   # - classification.onnx.data\n   # - classification_150.onnx\n   ```\n\n**✅ Başarılı!** ONNX model dosyaları yerleştirildi.\n\n**❌ Sorun mu yaşıyorsunuz?**\n- Dosyaların doğru klasörde olduğundan emin olun: `PharmaApp/android/app/src/main/assets/`\n- Tüm 4 dosyanın (`.onnx` ve `.onnx.data` dahil) kopyalandığını kontrol edin\n- \"Sorun Giderme\" bölümüne bakın\n\n### Adım 3: Node.js Kurulumu\n\n1. https://nodejs.org/ adresine gidin\n2. \"LTS\" versiyonunu indirin (20.x veya üzeri)\n3. İndirilen dosyayı çalıştırın ve kurulum sihirbazını takip edin\n4. Kurulumu doğrulayın:\n   ```bash\n   node --version\n   npm --version\n   # Node.js 20.x.x ve npm 10.x.x görmelisiniz\n   ```\n\n### Adım 4: Node Modüllerini Yükle\n\n```bash\n# PharmaApp klasörüne gidin\ncd PharmaApp\n\n# Node modüllerini yükleyin (5-10 dakika sürebilir)\nnpm install\n\n# Yükleme tamamlandığında \"added XXX packages\" mesajı göreceksiniz\n```\n\n### Adım 5: Android Studio Kurulumu (Android için)\n\n1. https://developer.android.com/studio adresine gidin\n2. Android Studio'yu indirin ve kurun\n3. İlk açılışta Android SDK'yı kurun\n4. Java JDK 17+ otomatik kurulacak\n\n### Adım 6: Firebase Yapılandırması (Opsiyonel - Uygulama çalışır ama Firebase özellikleri çalışmaz)\n\n1. https://console.firebase.google.com/ adresine gidin\n2. Yeni proje oluşturun\n3. Android uygulaması ekleyin\n4. `google-services.json` dosyasını indirin\n5. Dosyayı `PharmaApp/android/app/` klasörüne kopyalayın\n\n### Adım 7: Uygulamayı Çalıştır\n\n**Terminal 1 (Metro Bundler):**\n```bash\ncd PharmaApp\nnpm start\n```\n\n**Terminal 2 (Android Uygulaması):**\n```bash\ncd PharmaApp\nnpm run android\n```\n\n**✅ Başarılı!** Uygulama Android emülatörde veya bağlı cihazda çalışacak.\n\n**⚠️ İlk çalıştırmada:**\n- Android Studio açılabilir\n- Gradle build yapılacak (5-10 dakika sürebilir)\n- Uygulama otomatik yüklenecek ve çalışacak\n\n---\n\n**📝 Not:** Model eğitimi yapmak istiyorsanız, aşağıdaki \"Model Eğitimi\" bölümünü takip edin.\n\n### 0. Ön Hazırlık\n\n#### 0.1 Gerekli Yazılımları Kurun\n\n**Python Kurulumu:**\n1. [Python 3.8+](https://www.python.org/downloads/) indirin ve kurun\n2. Kurulum sırasında \"Add Python to PATH\" seçeneğini işaretleyin\n3. Kurulumu doğrulayın:\n   ```bash\n   python --version\n   # Çıktı: Python 3.8.x veya üzeri olmalı\n   ```\n\n**Git Kurulumu (Opsiyonel - Repository'yi klonlamak için):**\n1. [Git](https://git-scm.com/downloads) indirin ve kurun\n2. Kurulumu doğrulayın:\n   ```bash\n   git --version\n   ```\n\n**CUDA Kurulumu (GPU kullanmak için - Opsiyonel):**\n1. [NVIDIA CUDA Toolkit 11.0+](https://developer.nvidia.com/cuda-downloads) indirin ve kurun\n2. [cuDNN](https://developer.nvidia.com/cudnn) indirin ve kurun\n3. Kurulumu doğrulayın:\n   ```bash\n   nvidia-smi\n   # GPU bilgilerini görmelisiniz\n   ```\n\n#### 0.2 Repository'yi Klonlayın veya İndirin\n\n**Git ile Klonlama (Önerilen):**\n\n**Repository'yi Klonlama:**\n```bash\n# Repository'yi klonlayın\ngit clone https://github.com/code-alchemist01/PharmaAPP.git\ncd PharmaAPP\n```\n\n**ONNX Model Dosyalarını İndirin (Google Drive):**\n\nONNX model dosyaları GitHub'a yüklenemiyor (dosya boyutu limiti nedeniyle). Google Drive'dan indirmeniz gerekiyor:\n\n1. **Google Drive Linkine Gidin:**\n   - [ONNX Model Dosyaları](https://drive.google.com/file/d/1WCvGnk7QElLjhcohL-gOdpSy5k4UA_BP/view?usp=sharing)\n\n2. **Dosyayı İndirin:**\n   - Google Drive sayfasında \"İndir\" (Download) butonuna tıklayın\n   - ZIP dosyası indirilecek (~668 MB)\n\n3. **ZIP Dosyasını Açın ve Dosyaları Kopyalayın:**\n\n   **Windows:**\n   ```bash\n   # Assets klasörünü oluşturun (eğer yoksa)\n   mkdir PharmaApp\\android\\app\\src\\main\\assets\n   \n   # ZIP'ten çıkarttığınız ONNX dosyalarını kopyalayın\n   copy \"ZIP_TEN_ÇIKARTILAN_KLASÖR\\*.onnx*\" PharmaApp\\android\\app\\src\\main\\assets\\\n   ```\n\n   **Linux/Mac:**\n   ```bash\n   # Assets klasörünü oluşturun (eğer yoksa)\n   mkdir -p PharmaApp/android/app/src/main/assets\n   \n   # ZIP'ten çıkarttığınız ONNX dosyalarını kopyalayın\n   cp \"ZIP_TEN_ÇIKARTILAN_KLASÖR/*.onnx*\" PharmaApp/android/app/src/main/assets/\n   ```\n\n4. **Kontrol Edin:**\n   ```bash\n   # Windows\n   dir PharmaApp\\android\\app\\src\\main\\assets\\*.onnx*\n   \n   # Linux/Mac\n   ls PharmaApp/android/app/src/main/assets/*.onnx*\n   \n   # Şu 4 dosyayı görmelisiniz:\n   # - detection.onnx\n   # - classification.onnx\n   # - classification.onnx.data\n   # - classification_150.onnx\n   ```\n\n**Manuel İndirme (ZIP):**\n1. Repository'yi ZIP olarak indirin (GitHub'dan \"Code\" → \"Download ZIP\")\n2. ZIP dosyasını açın\n3. **ÖNEMLİ:** ZIP indirme ONNX model dosyalarını içermez!\n4. ONNX dosyalarını Google Drive'dan indirin (yukarıdaki adımları takip edin)\n5. ONNX dosyalarını `PharmaApp/android/app/src/main/assets/` klasörüne kopyalayın\n\n#### 0.3 Kaggle API Kurulumu (Veri Setlerini İndirmek İçin)\n\n**Kaggle API Token Oluşturma:**\n1. [Kaggle](https://www.kaggle.com/) hesabı oluşturun veya giriş yapın\n2. Hesap ayarlarına gidin: [Account Settings](https://www.kaggle.com/settings)\n3. \"API\" sekmesine gidin\n4. \"Create New Token\" butonuna tıklayın\n5. `kaggle.json` dosyası indirilecek\n\n**Kaggle API Token Yerleştirme:**\n\n**Windows:**\n```bash\n# Kaggle klasörünü oluşturun\nmkdir C:\\Users\\%USERNAME%\\.kaggle\n\n# kaggle.json dosyasını bu klasöre kopyalayın\ncopy kaggle.json C:\\Users\\%USERNAME%\\.kaggle\\\n```\n\n**Linux/Mac:**\n```bash\n# Kaggle klasörünü oluşturun\nmkdir -p ~/.kaggle\n\n# kaggle.json dosyasını bu klasöre kopyalayın\ncp kaggle.json ~/.kaggle/\nchmod 600 ~/.kaggle/kaggle.json\n```\n\n**Kaggle API Kurulumu:**\n```bash\npip install kaggle\n```\n\n#### 0.4 Veri Setlerini İndirin\n\n**Yöntem 1: Kaggle API ile İndirme (Önerilen)**\n\n```bash\n# 12-Class Dataset\nkaggle datasets download -d kutayahin/12-class-turkish-drug-detection-dataset -p ilacverisi/\ncd ilacverisi\n# ZIP dosyasını açın\n# Windows: Expand-Archive veya 7-Zip kullanın\n# Linux/Mac: unzip komutu kullanın\nunzip 12-class-turkish-drug-detection-dataset.zip -d SAP_BABA_CLEAN/\n# veya manuel olarak ZIP'i açıp içeriğini SAP_BABA_CLEAN/ klasörüne kopyalayın\n\n# 150-Class Dataset\ncd ../turkish_pill\nkaggle datasets download -d kutayahin/150-class-pharmaceutical-medication-dataset -p ./\n# ZIP dosyasını açın\nunzip 150-class-pharmaceutical-medication-dataset.zip -d \"Mobile-Captured Pharmaceutical Medication Packages/\"\n```\n\n**Yöntem 2: Manuel İndirme (Kaggle Web Sitesi)**\n\n**12-Class Dataset (SAP_BABA_CLEAN):**\n\n**12-Class Dataset (SAP_BABA_CLEAN):**\n\n1. [Kaggle Dataset](https://www.kaggle.com/datasets/kutayahin/turkish-pharmaceutical-drug-dataset-12-classes) sayfasına gidin\n2. \"Download\" butonuna tıklayın\n3. ZIP dosyasını indirin\n4. ZIP dosyasını açın ve içeriğini `ilacverisi/SAP_BABA_CLEAN/` klasörüne kopyalayın\n\n**Klasör yapısı şöyle olmalı:**\n```\nilacverisi/\n└── SAP_BABA_CLEAN/\n    ├── train/\n    │   ├── images/\n    │   └── labels/\n    ├── valid/\n    │   ├── images/\n    │   └── labels/\n    ├── test/\n    │   ├── images/\n    │   └── labels/\n    └── data.yaml\n```\n\n**150-Class Dataset (Mobile-Captured Pharmaceutical Medication Packages):**\n\n1. [Kaggle Dataset](https://www.kaggle.com/datasets/kutayahin/150-class-pharmaceutical-medication-dataset) sayfasına gidin\n2. \"Download\" butonuna tıklayın\n3. ZIP dosyasını indirin\n4. ZIP dosyasını açın ve içeriğini `turkish_pill/Mobile-Captured Pharmaceutical Medication Packages/` klasörüne kopyalayın\n\n**Klasör yapısı şöyle olmalı:**\n```\nturkish_pill/\n└── Mobile-Captured Pharmaceutical Medication Packages/\n    ├── Acretin 30 g cream/\n    ├── Adol 24 caplets/\n    ├── ... (150 klasör)\n    └── drug list.xlsx\n```\n\n### 1. Python Backend Kurulumu\n\n#### 1.1 Sanal Ortam Oluşturun (Önerilir)\n\n**Sanal Ortam Nedir?**\nSanal ortam, projenizin bağımlılıklarını sistem Python'undan izole eder. Bu sayede farklı projeler farklı Python paket versiyonlarını kullanabilir.\n\n**Sanal Ortam Oluşturma:**\n\n**Windows:**\n```bash\n# Ana klasöre gidin\ncd C:\\PHARMA_APP\n\n# Sanal ortam oluşturun\npython -m venv venv\n\n# Sanal ortamı aktifleştirin\nvenv\\Scripts\\activate\n\n# Aktifleştirme başarılıysa terminal başında (venv) göreceksiniz\n```\n\n**Linux/Mac:**\n```bash\n# Ana klasöre gidin\ncd ~/PHARMA_APP\n\n# Sanal ortam oluşturun\npython3 -m venv venv\n\n# Sanal ortamı aktifleştirin\nsource venv/bin/activate\n\n# Aktifleştirme başarılıysa terminal başında (venv) göreceksiniz\n```\n\n**Sanal Ortamı Deaktifleştirme:**\n```bash\n# Herhangi bir zamanda deaktifleştirmek için\ndeactivate\n```\n\n**Not:** Her yeni terminal açtığınızda sanal ortamı tekrar aktifleştirmeniz gerekir.\n\n#### 1.2 Bağımlılıkları Yükleyin\n\n**ÖNEMLİ:** Sanal ortam aktif olmalı! Terminal başında `(venv)` görmelisiniz.\n\n**12 Sınıf Modeli (ilacverisi workspace):**\n\n```bash\ncd ilacverisi\npip install --upgrade pip  # pip'i güncelleyin\npip install -r requirements.txt\n```\n\n**Yükleme sırasında hata alırsanız:**\n- **CUDA hatası:** GPU kullanmayacaksanız, CPU versiyonunu yükleyin:\n  ```bash\n  pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu\n  ```\n- **Memory hatası:** Bağımlılıkları tek tek yükleyin veya pip cache'i temizleyin:\n  ```bash\n  pip cache purge\n  pip install -r requirements.txt --no-cache-dir\n  ```\n\n**150 Sınıf Modeli (turkish_pill workspace):**\n\n```bash\ncd ../turkish_pill\npip install --upgrade pip\npip install -r requirements.txt\n```\n\n**Kurulumu Doğrulayın:**\n```bash\n# PyTorch kurulumunu kontrol edin\npython -c \"import torch; print(f'PyTorch: {torch.__version__}')\"\npython -c \"import torch; print(f'CUDA Available: {torch.cuda.is_available()}')\"\n\n# Transformers kurulumunu kontrol edin\npython -c \"import transformers; print(f'Transformers: {transformers.__version__}')\"\n\n# Ultralytics kurulumunu kontrol edin (12 sınıf için)\npython -c \"import ultralytics; print(f'Ultralytics: {ultralytics.__version__}')\"\n```\n\n**Beklenen Çıktı:**\n- PyTorch versiyonu gösterilmeli\n- CUDA Available: True (GPU varsa) veya False (CPU kullanıyorsanız)\n- Transformers versiyonu gösterilmeli\n\n### 2. Model Eğitimi\n\n#### 2.1 12 Sınıf Modeli Eğitimi\n\n**Adım 1: Veri Setini Kontrol Edin**\n\n```bash\ncd ilacverisi\n# Veri setinin doğru yerde olduğunu kontrol edin\ndir SAP_BABA_CLEAN\\train\\images\n# Çıktı: 10,443 görüntü dosyası görmelisiniz\n```\n\n**Adım 2: Detection Model (YOLOv8) Eğitimi**\n\n**Eğitim Öncesi Kontrol:**\n```bash\n# ilacverisi klasöründeyken\n# config.yaml dosyasını kontrol edin\ntype config.yaml  # Windows\n# veya\ncat config.yaml   # Linux/Mac\n```\n\n**Eğitimi Başlatın:**\n```bash\n# ilacverisi klasöründeyken\npython src/train_detection.py\n```\n\n**Eğitim Sırasında:**\n- Terminal'de epoch ilerlemesini göreceksiniz\n- Her epoch sonunda validation sonuçları gösterilir\n- `runs/detection/train/` klasöründe grafikler ve metrikler kaydedilir\n- Eğitim sırasında bilgisayarınızı kapatmayın veya uyku moduna almayın\n\n**Parametreler** (`config.yaml`):\n- Model Boyutu: `n` (nano)\n- Epochs: 100\n- Batch Size: 16\n- Image Size: 640x640\n- Learning Rate: 0.01\n\n**Beklenen Süre:**\n- GPU (RTX 3060+): ~2-4 saat\n- CPU: ~10-20 saat\n\n**Eğitim Sırasında Hata Alırsanız:**\n- **CUDA out of memory:** `config.yaml` dosyasında `batch_size` değerini küçültün (16 → 8 → 4)\n- **Dosya bulunamadı:** Veri seti yolunu kontrol edin\n- **Import hatası:** Bağımlılıkları tekrar yükleyin: `pip install -r requirements.txt`\n\n**Çıktı:** `models/detection/best.pt`\n\n**Kontrol:**\n```bash\n# Model dosyasının oluştuğunu kontrol edin\ndir models\\detection\\best.pt  # Windows\n# veya\nls models/detection/best.pt   # Linux/Mac\n\n# Dosya boyutunu kontrol edin (yaklaşık 6-12 MB olmalı)\n```\n\n**Adım 3: Görüntü Kırpma (Detection Modeli Kullanarak)**\n\n**ÖNEMLİ:** Bu adım, detection modeli eğitildikten sonra yapılmalıdır!\n\n```bash\n# Detection modeli ile eğitim görüntülerini kırp\npython src/crop_images.py\n```\n\n**Bu işlem ne yapar?**\n- Detection modeli ile eğitim görüntülerindeki ilaç kutularını tespit eder\n- Tespit edilen bölgeleri kırpar\n- Kırpılmış görüntüleri `data/cropped/train/` ve `data/cropped/valid/` klasörlerine kaydeder\n- Her sınıf için ayrı klasörler oluşturur\n\n**İşlem Süresi:**\n- ~10,443 görüntü için: ~30-60 dakika (GPU) veya ~2-4 saat (CPU)\n\n**Kontrol:**\n```bash\n# Kırpılmış görüntülerin oluştuğunu kontrol edin\ndir data\\cropped\\train\\aferin  # Windows\n# veya\nls data/cropped/train/aferin   # Linux/Mac\n\n# Her sınıf için görüntüler görmelisiniz\n# Toplam 12 klasör olmalı (her biri bir ilaç sınıfı)\ndir data\\cropped\\train  # Windows\nls data/cropped/train   # Linux/Mac\n```\n\n**Hata Alırsanız:**\n- **Model bulunamadı:** `models/detection/best.pt` dosyasının varlığını kontrol edin\n- **Dosya yolu hatası:** `config.yaml` dosyasındaki yolları kontrol edin\n\n**Adım 4: Classification Model (ViT) Eğitimi**\n\n**ÖNEMLİ:** Bu adım, görüntü kırpma işlemi tamamlandıktan sonra yapılmalıdır!\n\n```bash\n# Kırpılmış görüntülerle classification modelini eğit\npython src/train_classification.py\n```\n\n**Eğitim Sırasında:**\n- İlk çalıştırmada Hugging Face'den model indirilecek (~330MB)\n- Her epoch sonunda validation accuracy gösterilir\n- En iyi model otomatik olarak kaydedilir\n\n**Parametreler:**\n- Model: `google/vit-base-patch16-224`\n- Epochs: 20\n- Batch Size: 32\n- Image Size: 224x224\n- Learning Rate: 0.00002\n\n**Beklenen Süre:**\n- GPU (RTX 3060+): ~1-2 saat\n- CPU: ~5-10 saat\n\n**Eğitim Sırasında Hata Alırsanız:**\n- **CUDA out of memory:** Batch size'ı küçültün (32 → 16 → 8)\n- **Kırpılmış görüntü bulunamadı:** `data/cropped/` klasörünü kontrol edin\n- **Internet bağlantısı hatası:** İlk çalıştırmada model indirilir, internet gerekli\n\n**Çıktı:** `models/classification/` klasörü (config.json, model.safetensors, vb.)\n\n**Kontrol:**\n```bash\n# Model dosyalarının oluştuğunu kontrol edin\ndir models\\classification  # Windows\n# veya\nls models/classification    # Linux/Mac\n\n# Şu dosyaları görmelisiniz:\n# - config.json\n# - model.safetensors (veya model.pt)\n# - preprocessor_config.json\n# - training_args.bin\n```\n\n#### 2.2 150 Sınıf Modeli Eğitimi\n\n**Adım 1: Veri Setini Kontrol Edin**\n\n```bash\ncd turkish_pill\n# Veri setinin doğru yerde olduğunu kontrol edin\ndir \"Mobile-Captured Pharmaceutical Medication Packages\"\n# 150 klasör görmelisiniz (her biri bir ilaç sınıfı)\n```\n\n**Adım 2: Veri Seti Hazırlama**\n\n**ÖNEMLİ:** Veri seti klasörünün doğru yerde olduğundan emin olun!\n\n```bash\n# Klasör tabanlı veri setini train/val/test olarak böl\npython prepare_dataset.py\n```\n\n**Bu script ne yapar?**\n- `Mobile-Captured Pharmaceutical Medication Packages/` klasöründeki görüntüleri okur\n- Her sınıf için görüntüleri train/valid/test olarak böler (70/15/15 oranında)\n- `data/train/`, `data/valid/`, `data/test/` klasörlerini oluşturur\n- `data/data.yaml` dosyasını oluşturur\n\n**İşlem Süresi:**\n- ~3,900 görüntü için: ~5-10 dakika\n\n**Kontrol:**\n```bash\n# Veri seti klasörlerinin oluştuğunu kontrol edin\ndir data\\train    # Windows\ndir data\\valid\ndir data\\test\n# veya\nls data/train     # Linux/Mac\nls data/valid\nls data/test\n\n# Her klasörde ilaç sınıfları görmelisiniz (150 klasör)\n# data.yaml dosyasının oluştuğunu kontrol edin\ntype data\\data.yaml  # Windows\ncat data/data.yaml   # Linux/Mac\n```\n\n**Hata Alırsanız:**\n- **Klasör bulunamadı:** `Mobile-Captured Pharmaceutical Medication Packages/` klasörünün varlığını kontrol edin\n- **Görüntü okuma hatası:** Görüntü dosyalarının bozuk olmadığından emin olun\n\n**Adım 3: Classification Model (ViT) Eğitimi**\n\n**ÖNEMLİ:** Veri seti hazırlama işlemi tamamlandıktan sonra bu adıma geçin!\n\n```bash\n# 150 sınıflı classification modelini eğit\npython train_vit.py\n```\n\n**Eğitim Öncesi:**\n- İlk çalıştırmada Hugging Face'den model indirilecek (~330MB)\n- Internet bağlantısı gerekli (sadece ilk çalıştırmada)\n\n**Eğitim Sırasında:**\n- Her epoch sonunda checkpoint kaydedilir\n- Validation accuracy ve loss gösterilir\n- En iyi model otomatik olarak seçilir\n\n**Parametreler** (`config.yaml`):\n- Model: `google/vit-base-patch16-224`\n- Epochs: 30\n- Batch Size: 16\n- Image Size: 224x224\n- Learning Rate: 0.00002\n\n**Beklenen Süre:**\n- GPU (RTX 3060+): ~2-3 saat\n- CPU: ~10-15 saat\n\n**Eğitim Sırasında Hata Alırsanız:**\n- **CUDA out of memory:** Batch size'ı küçültün (16 → 8 → 4)\n- **Veri seti bulunamadı:** `data/train/` klasörünü kontrol edin\n- **Class imbalance uyarısı:** Normal, 150 sınıf için beklenen bir durum\n\n**Çıktı:** `models/classification/checkpoint-XXXXX/` klasörleri\n\n**Kontrol:**\n```bash\n# Checkpoint klasörlerinin oluştuğunu kontrol edin\ndir models\\classification\\checkpoint-*  # Windows\n# veya\nls models/classification/checkpoint-*   # Linux/Mac\n\n# Birden fazla checkpoint görmelisiniz (her epoch sonunda oluşur)\n# En iyi model genellikle checkpoint-1725 klasöründe olur\n# trainer_state.json dosyasında \"best_model_checkpoint\" bilgisi var\n```\n\n#### 2.3 Model Dönüştürme (ONNX)\n\n**12 Sınıf Modeli - Detection Modeli:**\n\n```bash\ncd ilacverisi\n# Detection modeli ONNX'e dönüştür\npython src/convert_detection_to_onnx.py\n```\n\n**Kontrol:**\n```bash\n# ONNX dosyasının oluştuğunu kontrol edin\ndir models\\detection\\detection.onnx\n```\n\n**12 Sınıf Modeli - Classification Modeli:**\n\n```bash\n# Classification modeli ONNX'e dönüştür\npython src/convert_classification_to_onnx.py\n```\n\n**Kontrol:**\n```bash\n# ONNX dosyasının oluştuğunu kontrol edin\ndir models\\classification\\classification.onnx\n```\n\n**150 Sınıf Modeli:**\n\n```bash\ncd turkish_pill\n# En son checkpoint'i otomatik bulur ve ONNX'e dönüştürür\npython convert_to_onnx.py\n```\n\nBu script:\n- En son checkpoint'i otomatik bulur (`checkpoint-XXXXX/`)\n- Hugging Face modelini ONNX formatına dönüştürür\n- Model doğrulaması yapar\n- PyTorch ve ONNX inference sonuçlarını karşılaştırır\n- External data dosyalarını birleştirir\n- `models/classification/classification_150_merged.onnx` dosyası oluşturur\n\n**Kontrol:**\n```bash\n# ONNX dosyasının oluştuğunu kontrol edin\ndir models\\classification\\classification_150_merged.onnx\n```\n\n**Adım 4: Model Dosyalarını Mobil Uygulamaya Kopyalama**\n\n```bash\n# Ana klasöre dönün\ncd C:\\PHARMA_APP\n\n# ONNX dosyalarını assets klasörüne kopyala\ncopy ilacverisi\\models\\detection\\detection.onnx PharmaApp\\android\\app\\src\\main\\assets\\\ncopy ilacverisi\\models\\classification\\classification.onnx PharmaApp\\android\\app\\src\\main\\assets\\\ncopy turkish_pill\\models\\classification\\classification_150_merged.onnx PharmaApp\\android\\app\\src\\main\\assets\\classification_150.onnx\n```\n\n**Kontrol:**\n```bash\n# Tüm ONNX dosyalarının assets klasöründe olduğunu kontrol edin\ndir PharmaApp\\android\\app\\src\\main\\assets\\*.onnx  # Windows\n# veya\nls PharmaApp/android/app/src/main/assets/*.onnx   # Linux/Mac\n\n# Şu dosyaları görmelisiniz:\n# - detection.onnx (11.71 MB)\n# - classification.onnx (1.22 MB)\n# - classification.onnx.data (327.38 MB)\n# - classification_150.onnx (327.82 MB)\n```\n\n**Not:** \n- **ÖNEMLİ:** ONNX dosyaları GitHub'a yüklenemiyor (dosya boyutu limiti nedeniyle). ONNX dosyalarını Google Drive'dan indirmeniz gerekiyor: [ONNX Model Dosyaları](https://drive.google.com/file/d/1WCvGnk7QElLjhcohL-gOdpSy5k4UA_BP/view?usp=sharing)\n- Eğer model eğitimi yaptıysanız ve kendi ONNX dosyalarınızı oluşturduysanız, tüm dosyaları (`.onnx` ve `.onnx.data` dahil) kopyalayın:\n```bash\ncopy ilacverisi\\models\\classification\\classification.onnx.data PharmaApp\\android\\app\\src\\main\\assets\\\n```\n\n### 3. Mobil Uygulama Kurulumu\n\n**ÖNEMLİ:** \n- Eğer repository'yi klonladıysanız, ONNX modelleri GitHub'da bulunmuyor. ONNX dosyalarını Google Drive'dan indirmeniz gerekiyor: [ONNX Model Dosyaları](https://drive.google.com/file/d/1WCvGnk7QElLjhcohL-gOdpSy5k4UA_BP/view?usp=sharing)\n- Model eğitimi yapmadan direkt uygulamayı çalıştırmak istiyorsanız, yukarıdaki \"Hızlı Başlangıç\" bölümündeki \"Adım 2: ONNX Model Dosyalarını İndirin\" adımlarını takip edin.\n- Eğer model eğitimi yaptıysanız, ONNX dönüştürme işlemlerini tamamladıktan sonra bu adıma geçin.\n\n**ONNX Modelleri Kontrol Edin:**\n```bash\n# ONNX dosyalarının assets klasöründe olduğunu kontrol edin\ndir PharmaApp\\android\\app\\src\\main\\assets\\*.onnx*  # Windows\n# veya\nls PharmaApp/android/app/src/main/assets/*.onnx*   # Linux/Mac\n\n# Şu 4 dosyayı görmelisiniz:\n# - detection.onnx (11.71 MB)\n# - classification.onnx (1.22 MB)\n# - classification.onnx.data (327.38 MB)\n# - classification_150.onnx (327.82 MB)\n```\n\n**Eğer ONNX dosyaları yoksa:**\n1. **Google Drive'dan indirin** (Önerilen): Yukarıdaki \"Hızlı Başlangıç\" bölümündeki \"Adım 2: ONNX Model Dosyalarını İndirin\" adımlarını takip edin\n2. **Veya model eğitimi yapın**: Yukarıdaki \"Model Eğitimi\" bölümünü takip edin ve eğitilmiş modelleri ONNX'e dönüştürün\n\n#### 3.1 Node.js ve npm Kurulumu\n\n**Node.js Kurulumu:**\n1. [Node.js 20+](https://nodejs.org/) indirin ve kurun\n2. Kurulumu doğrulayın:\n   ```bash\n   node --version\n   npm --version\n   # Node.js 20.x.x ve npm 10.x.x görmelisiniz\n   ```\n\n#### 3.2 Node Modüllerini Yükleyin\n\n```bash\ncd C:\\PHARMA_APP\\PharmaApp\nnpm install\n```\n\n**Yükleme Süresi:**\n- İlk kurulum: ~5-10 dakika\n- ~500MB+ indirme yapılacak\n\n**Hata Alırsanız:**\n- **Network hatası:** Internet bağlantınızı kontrol edin\n- **Permission hatası:** Terminal'i yönetici olarak çalıştırın (Windows) veya `sudo` kullanın (Linux/Mac)\n- **Cache hatası:** npm cache'i temizleyin:\n  ```bash\n  npm cache clean --force\n  npm install\n  ```\n\n#### 3.3 Android Studio ve Android SDK Kurulumu\n\n**Android Studio Kurulumu:**\n1. [Android Studio](https://developer.android.com/studio) indirin ve kurun\n2. Android SDK'yı kurun (Android Studio içinden)\n3. Android SDK Platform 24+ kurun\n4. Java JDK 17+ kurun (Android Studio ile birlikte gelir)\n\n**Kurulumu Doğrulayın:**\n```bash\n# Java versiyonunu kontrol edin\njava -version\n# Java 17 veya üzeri görmelisiniz\n\n# Android SDK yolunu kontrol edin (Windows)\necho %ANDROID_HOME%\n# veya (Linux/Mac)\necho $ANDROID_HOME\n```\n\n**Android SDK Yolunu Ayarlayın (Gerekirse):**\n\n**Windows:**\n```bash\n# Environment Variables'a ekleyin:\n# ANDROID_HOME = C:\\Users\\%USERNAME%\\AppData\\Local\\Android\\Sdk\n# PATH'e ekleyin: %ANDROID_HOME%\\platform-tools\n```\n\n**Linux/Mac:**\n```bash\n# ~/.bashrc veya ~/.zshrc dosyasına ekleyin:\nexport ANDROID_HOME=$HOME/Android/Sdk\nexport PATH=$PATH:$ANDROID_HOME/platform-tools\n```\n\n#### 3.4 Android Kurulumu\n\n```bash\n# Android klasörüne gidin\ncd android\n\n# Gradle wrapper'ı çalıştırın (ilk kurulum)\n./gradlew clean\n\n# Geri dönün\ncd ..\n```\n\n#### 3.5 iOS Kurulumu (Sadece macOS)\n\n```bash\ncd ios\nbundle install\nbundle exec pod install\ncd ..\n```\n\n#### 3.6 Firebase Yapılandırması\n\n**Firebase Projesi Oluşturma:**\n1. [Firebase Console](https://console.firebase.google.com/)'a gidin\n2. \"Add project\" butonuna tıklayın\n3. Proje adını girin ve \"Continue\" tıklayın\n4. Google Analytics'i etkinleştirin (opsiyonel)\n5. \"Create project\" tıklayın\n\n**Android Uygulaması Ekleme:**\n1. Firebase Console'da projenizi seçin\n2. \"Add app\" → \"Android\" seçin\n3. Package name girin: `com.pharmaapp`\n4. `google-services.json` dosyasını indirin\n5. Dosyayı `PharmaApp/android/app/` klasörüne kopyalayın\n\n**iOS Uygulaması Ekleme (Opsiyonel):**\n1. \"Add app\" → \"iOS\" seçin\n2. Bundle ID girin\n3. `GoogleService-Info.plist` dosyasını indirin\n4. Dosyayı `PharmaApp/ios/` klasörüne kopyalayın\n\n1. Firebase Console'da yeni bir proje oluşturun\n2. Android uygulaması ekleyin\n3. `google-services.json` dosyasını `PharmaApp/android/app/` klasörüne kopyalayın\n4. iOS uygulaması ekleyin (opsiyonel)\n5. `GoogleService-Info.plist` dosyasını `PharmaApp/ios/` klasörüne kopyalayın\n\n#### 3.7 APK Oluşturma\n\n**Debug APK:**\n\n```bash\ncd PharmaApp\\android\n.\\gradlew assembleDebug\n```\n\nAPK dosyası: `android/app/build/outputs/apk/debug/app-debug.apk`\n\n**Release APK:**\n\n```bash\ncd PharmaApp\\android\n.\\gradlew clean\n.\\gradlew assembleRelease\n```\n\nAPK dosyası: `android/app/build/outputs/apk/release/app-release.apk`\n\n**Not:** Release APK için imzalama gerekir. İlk kez imzalama için:\n\n1. `android/app/build.gradle` dosyasında signing config ekleyin\n2. Keystore dosyası oluşturun: `keytool -genkey -v -keystore pharmaapp.keystore -alias pharmaapp -keyalg RSA -keysize 2048 -validity 10000`\n\n---\n\n## 💻 Kullanım\n\n### Python Backend - Streamlit Uygulaması\n\n**12 Sınıf Modeli:**\n\n```bash\ncd ilacverisi\nstreamlit run app.py\n```\n\n**150 Sınıf Modeli:**\n\n```bash\ncd turkish_pill\nstreamlit run app.py\n```\n\nTarayıcıda otomatik olarak açılacaktır (genellikle `http://localhost:8501`).\n\n**Kullanım Adımları:**\n1. Görüntü yükleyin veya kamera ile fotoğraf çekin\n2. \"🚀 Tahmin Yap\" butonuna tıklayın\n3. Sonuçları görüntüleyin:\n   - Tespit edilen sınıf ve güven seviyesi\n   - Bounding box ile işaretlenmiş görüntü\n   - Kırpılmış ilaç kutusu görüntüsü\n   - Tüm sınıf olasılıkları\n\n### Komut Satırından Inference\n\n**12 Sınıf Modeli:**\n\n```bash\ncd ilacverisi\npython src/inference.py \u003cgörüntü_yolu\u003e\n```\n\n**150 Sınıf Modeli:**\n\n```bash\ncd turkish_pill\npython inference.py \u003cgörüntü_yolu\u003e\n```\n\n### Mobil Uygulama\n\n#### Geliştirme Ortamında Çalıştırma\n\n**Android:**\n\n```bash\n# Metro bundler'ı başlatın (bir terminal)\ncd PharmaApp\nnpm start\n\n# Android uygulamasını çalıştırın (başka bir terminal)\nnpm run android\n```\n\n**iOS (sadece macOS):**\n\n```bash\n# Metro bundler'ı başlatın (bir terminal)\nnpm start\n\n# iOS uygulamasını çalıştırın (başka bir terminal)\nnpm run ios\n```\n\n#### Uygulama Özellikleri\n\n**Ana Ekranlar:**\n- **Home**: İlaç listesi ve hızlı erişim\n- **İlaç Ekle**: Kamera ile ilaç tanıma ve ekleme\n- **Takvim**: İlaç alım takvimi\n- **Alarm**: İlaç hatırlatıcıları\n- **İstatistikler**: İlaç alım istatistikleri\n- **Profil**: Kullanıcı ayarları\n\n**İlaç Tanıma Akışı:**\n1. \"İlaç Ekle\" ekranına gidin\n2. Kamera butonuna tıklayın\n3. İlaç kutusu fotoğrafı çekin\n4. Sistem otomatik olarak:\n   - İlaç kutusunu tespit eder (YOLOv8)\n   - Her iki modeli paralel çalıştırır (12 sınıf + 150 sınıf)\n   - Sonuçları birleştirir ve en yüksek güven skorlu sonucu gösterir\n   - Alternatif tahminleri listeler (top-5)\n5. İlaç bilgilerini düzenleyip kaydedin\n\n**İlaç Doğrulama:**\n1. Alarm bildirimi geldiğinde \"Doğrula\" butonuna tıklayın\n2. İlaç kutusu fotoğrafı çekin\n3. Sistem ilacı tanır ve beklenen ilaçla eşleştirir\n4. Eşleşme başarılıysa ilaç alımı kaydedilir\n\n---\n\n## 📁 Proje Yapısı\n\n```\nPHARMA_APP/\n├── ilacverisi/                      # 12 sınıf model workspace\n│   ├── src/                         # Python kaynak kodları\n│   │   ├── train_detection.py      # Detection model eğitimi\n│   │   ├── train_classification.py # Classification model eğitimi\n│   │   ├── crop_images.py          # Görüntü kırpma\n│   │   └── inference.py             # Inference pipeline\n│   ├── models/                     # Eğitilmiş modeller\n│   │   ├── detection/\n│   │   │   └── best.pt             # YOLOv8 modeli\n│   │   └── classification/         # ViT modeli\n│   ├── data/                       # Veri setleri\n│   │   ├── cropped/                # Kırpılmış görüntüler\n│   │   └── SAP_BABA_CLEAN/         # Ham veri seti\n│   ├── app.py                      # Streamlit uygulaması\n│   ├── config.yaml                 # Konfigürasyon\n│   └── requirements.txt            # Python bağımlılıkları\n│\n├── turkish_pill/                    # 150 sınıf model workspace\n│   ├── Mobile-Captured.../         # Kaynak veri seti\n│   ├── data/                       # Hazırlanmış veri seti\n│   │   ├── train/                  # Eğitim görüntüleri\n│   │   ├── valid/                  # Validation görüntüleri\n│   │   ├── test/                   # Test görüntüleri\n│   │   └── data.yaml               # Sınıf tanımları\n│   ├── models/\n│   │   └── classification/         # Eğitilmiş model\n│   ├── prepare_dataset.py          # Veri seti hazırlama\n│   ├── train_vit.py                # Model eğitimi\n│   ├── convert_to_onnx.py          # ONNX dönüştürme\n│   ├── inference.py                # Inference script\n│   ├── app.py                      # Streamlit uygulaması\n│   ├── config.yaml                 # Konfigürasyon\n│   └── requirements.txt            # Python bağımlılıkları\n│\n└── PharmaApp/                       # React Native mobil uygulama\n    ├── android/                     # Android native kod\n    │   └── app/src/main/\n    │       ├── assets/             # ONNX model dosyaları\n    │       │   ├── detection.onnx\n    │       │   ├── classification.onnx\n    │       │   └── classification_150.onnx\n    │       └── java/com/pharmaapp/\n    │           ├── mltest/          # ML native modülü\n    │           │   ├── MLTestModule.kt\n    │           │   └── MLTestPackage.kt\n    │           ├── MainActivity.kt\n    │           └── MainApplication.kt\n    ├── ios/                         # iOS native kod\n    ├── src/\n    │   ├── screens/                 # Uygulama ekranları\n    │   ├── services/                # Servisler (ML, Firebase, vb.)\n    │   │   ├── ml/\n    │   │   │   ├── MLService.ts     # ML servisi\n    │   │   │   ├── MLTestNativeModule.ts\n    │   │   │   └── DrugNameNormalizer.ts\n    │   │   ├── database/\n    │   │   │   ├── LocalDatabase.ts\n    │   │   │   └── FirestoreService.ts\n    │   │   └── notification/\n    │   │       └── NotificationService.ts\n    │   ├── navigation/              # Navigation yapılandırması\n    │   ├── context/                 # Context providers\n    │   └── utils/                   # Yardımcı fonksiyonlar\n    │       └── constants.ts         # İlaç sınıfları ve ayarlar\n    ├── package.json                 # Node.js bağımlılıkları\n    └── README.md                    # Bu dosya\n```\n\n---\n\n## 🔧 Sorun Giderme\n\n### Model Bulunamadı Hatası\n\n**Sorun:** \"Model bulunamadı\" hatası alıyorsunuz.\n\n**Çözüm:**\n1. **Detection modeli eğitildi mi?**\n   ```bash\n   # Kontrol edin\n   dir ilacverisi\\models\\detection\\best.pt  # Windows\n   ls ilacverisi/models/detection/best.pt    # Linux/Mac\n   ```\n   Eğer yoksa: `python src/train_detection.py` çalıştırın\n\n2. **Classification modeli eğitildi mi?**\n   ```bash\n   # 12 sınıf için\n   dir ilacverisi\\models\\classification\\config.json\n   # 150 sınıf için\n   dir turkish_pill\\models\\classification\\checkpoint-*\n   ```\n   Eğer yoksa: İlgili eğitim scriptini çalıştırın\n\n3. **ONNX dosyaları assets klasöründe mi?**\n   ```bash\n   dir PharmaApp\\android\\app\\src\\main\\assets\\*.onnx\n   ```\n   Eğer yoksa: Model dönüştürme adımlarını tekrar yapın\n\n4. **config.yaml dosyasındaki yollar doğru mu?**\n   - Dosya yollarını kontrol edin\n   - Windows'ta `\\` kullanın, Linux/Mac'te `/` kullanın\n\n### CUDA Hatası\n\n**Sorun:** CUDA kullanılamıyor hatası.\n\n**Çözüm:**\n- CPU kullanmak için `config.yaml` dosyasında:\n  ```yaml\n  detection:\n    device: \"cpu\"\n  classification:\n    device: \"cpu\"\n  ```\n\n### Mobil Uygulamada Model Yüklenmiyor\n\n**Sorun:** Mobil uygulamada modeller yüklenmiyor.\n\n**Çözüm:**\n1. ONNX dosyaları `assets/` klasöründe mi?\n2. Native modül doğru build edildi mi?\n3. Android Studio'da \"Clean Project\" yapın:\n   ```bash\n   cd android\n   ./gradlew clean\n   ./gradlew assembleDebug\n   ```\n\n### Metro Bundler Hatası\n\n**Sorun:** Metro bundler başlamıyor.\n\n**Çözüm:**\n```bash\n# Cache'i temizleyin\nnpm start --reset-cache\n```\n\n### Android Build Hatası\n\n**Sorun:** Android build başarısız oluyor.\n\n**Çözüm:**\n```bash\ncd android\n./gradlew clean\n./gradlew --stop\ncd ..\nnpm start --reset-cache\nnpm run android\n```\n\n### ONNX Dönüştürme Hatası\n\n**Sorun:** Model ONNX formatına dönüştürülemiyor.\n\n**Çözüm:**\n1. **PyTorch ve ONNX sürümlerini kontrol edin:**\n   ```bash\n   python -c \"import torch; import onnx; print(f'PyTorch: {torch.__version__}, ONNX: {onnx.__version__}')\"\n   ```\n\n2. **Model dosyalarının doğru yolda olduğundan emin olun:**\n   - Detection: `ilacverisi/models/detection/best.pt`\n   - Classification (12): `ilacverisi/models/classification/`\n   - Classification (150): `turkish_pill/models/classification/checkpoint-XXXXX/`\n\n3. **onnxruntime kurulu mu kontrol edin:**\n   ```bash\n   pip install onnxruntime\n   ```\n\n4. **Script'i tekrar çalıştırın:**\n   ```bash\n   # 12 sınıf için\n   python src/convert_detection_to_onnx.py\n   python src/convert_classification_to_onnx.py\n   \n   # 150 sınıf için\n   python convert_to_onnx.py\n   ```\n\n5. **Hata mesajını okuyun:** Genellikle hangi dosyanın eksik olduğunu söyler\n\n---\n\n## 📊 Performans Metrikleri\n\n### Test Seti Sonuçları\n\n#### 12 Sınıf Modeli (Yüksek Doğruluk)\n\n- **Toplam Test Görüntüsü**: 2,256\n- **Başarılı Tespit**: 2,256 (%100)\n- **Genel Doğruluk**: %99.82\n- **Ortalama Inference Süresi**: ~150ms (GPU), ~2-3s (CPU)\n- **Mobil Inference Süresi**: ~300-700ms (Android)\n\n**Sınıf Bazında Doğruluk:**\n- Aferin: %100\n- Apranax: %100\n- Arveles: %100\n- Aspirin: %100\n- Dolorex: %99.46\n- Hametan Krem: %99.46\n- Hametan Merhem: %100\n- Majezik: %100\n- Metpamid: %99.46\n- Parol: %99.46\n- Terbisil: %100\n- Unisom: %100\n\n#### 150 Sınıf Modeli (Geniş Kapsam)\n\n- **Toplam Test Görüntüsü**: ~3,900\n- **Başarılı Tespit**: %98+\n- **Genel Doğruluk**: %85-90\n- **Ortalama Inference Süresi**: ~200-400ms (GPU), ~3-5s (CPU)\n- **Mobil Inference Süresi**: ~400-800ms (Android)\n- **Kapsam**: 150 farklı Türk ilaç kategorisi\n\n### Model Karşılaştırması\n\n| Özellik | 12 Sınıf Modeli | 150 Sınıf Modeli | Birleştirilmiş Yaklaşım |\n|---------|----------------|------------------|------------------------|\n| Doğruluk | %99.82 | %85-90 | %90-95 (en yüksek güven skorlu) |\n| Kapsam | 12 ilaç | 150 ilaç | 162 ilaç (12 + 150) |\n| Inference | ~150ms | ~200-400ms | ~300-700ms (paralel) |\n| Model Boyutu | ~330MB | ~330MB | ~660MB (toplam) |\n| Kullanım | Yüksek doğruluk gereken durumlar | Geniş kapsam gereken durumlar | Her durum için optimal |\n\n---\n\n## 🚀 Deployment ve Production\n\n### Production APK Oluşturma\n\n**Adım 1: Keystore Oluşturma**\n\n```bash\nkeytool -genkey -v -keystore pharmaapp.keystore -alias pharmaapp -keyalg RSA -keysize 2048 -validity 10000\n```\n\n**Adım 2: Signing Config Ekleme**\n\n`PharmaApp/android/app/build.gradle` dosyasına ekleyin:\n\n```gradle\nandroid {\n    ...\n    signingConfigs {\n        release {\n            storeFile file('pharmaapp.keystore')\n            storePassword 'your-store-password'\n            keyAlias 'pharmaapp'\n            keyPassword 'your-key-password'\n        }\n    }\n    buildTypes {\n        release {\n            signingConfig signingConfigs.release\n            minifyEnabled true\n            shrinkResources true\n            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'\n        }\n    }\n}\n```\n\n**Adım 3: Release APK Oluşturma**\n\n```bash\ncd PharmaApp\\android\n.\\gradlew clean\n.\\gradlew assembleRelease\n```\n\nAPK dosyası: `android/app/build/outputs/apk/release/app-release.apk`\n\n### Google Play Store'a Yükleme\n\n1. Google Play Console'da yeni uygulama oluşturun\n2. APK veya AAB dosyasını yükleyin\n3. Uygulama bilgilerini doldurun\n4. İçerik derecelendirmesi yapın\n5. Yayınlayın\n\n### Firebase Production Yapılandırması\n\n1. Firebase Console'da production projesi oluşturun\n2. `google-services.json` dosyasını güncelleyin\n3. Firestore security rules'u yapılandırın\n4. Firebase Storage rules'u yapılandırın\n\n---\n\n## 📝 Lisans\n\nBu proje eğitim ve araştırma amaçlı geliştirilmiştir.\n\n---\n\n## 👥 Katkıda Bulunanlar\n\n- Model Eğitimi ve Optimizasyon\n- Mobil Uygulama Geliştirme\n- Sistem Mimarisi ve Entegrasyon\n\n---\n\n## 📞 İletişim\n\nSorularınız için issue açabilir veya proje yöneticisi ile iletişime geçebilirsiniz.\n\n---\n\n---\n\n## ✅ Kurulum Kontrol Listesi\n\nKurulumunuzun tamamlandığını doğrulamak için bu kontrol listesini kullanın:\n\n### Python Backend\n- [ ] Python 3.8+ kurulu\n- [ ] Sanal ortam oluşturuldu ve aktif\n- [ ] 12 sınıf modeli bağımlılıkları yüklendi\n- [ ] 150 sınıf modeli bağımlılıkları yüklendi\n- [ ] PyTorch kurulu ve çalışıyor\n- [ ] CUDA çalışıyor (GPU kullanıyorsanız)\n\n### Veri Setleri\n- [ ] 12-Class dataset indirildi ve `ilacverisi/SAP_BABA_CLEAN/` klasörüne yerleştirildi\n- [ ] 150-Class dataset indirildi ve `turkish_pill/Mobile-Captured Pharmaceutical Medication Packages/` klasörüne yerleştirildi\n- [ ] Veri seti yapıları doğru (klasör yapıları kontrol edildi)\n\n### Model Eğitimi (12 Sınıf)\n- [ ] Detection modeli eğitildi (`models/detection/best.pt` mevcut)\n- [ ] Görüntü kırpma yapıldı (`data/cropped/` klasörü mevcut)\n- [ ] Classification modeli eğitildi (`models/classification/` klasörü mevcut)\n- [ ] Detection modeli ONNX'e dönüştürüldü\n- [ ] Classification modeli ONNX'e dönüştürüldü\n\n### Model Eğitimi (150 Sınıf)\n- [ ] Veri seti hazırlandı (`data/train/`, `data/valid/`, `data/test/` mevcut)\n- [ ] Classification modeli eğitildi (`models/classification/checkpoint-*` mevcut)\n- [ ] Model ONNX'e dönüştürüldü (`classification_150_merged.onnx` mevcut)\n\n### Mobil Uygulama\n- [ ] Node.js 20+ kurulu\n- [ ] npm modülleri yüklendi\n- [ ] Android Studio kurulu\n- [ ] Java JDK 17+ kurulu\n- [ ] Android SDK kurulu\n- [ ] ONNX dosyaları `PharmaApp/android/app/src/main/assets/` klasöründe\n- [ ] Firebase yapılandırıldı (`google-services.json` mevcut)\n\n### Test\n- [ ] Streamlit uygulaması çalışıyor (12 sınıf)\n- [ ] Streamlit uygulaması çalışıyor (150 sınıf)\n- [ ] Android uygulaması build ediliyor\n- [ ] Android uygulaması çalışıyor ve modeller yükleniyor\n\n---\n\n**Son Güncelleme**: 2025-12-24\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-alchemist01%2Fpharmaapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcode-alchemist01%2Fpharmaapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-alchemist01%2Fpharmaapp/lists"}