Skip to content

GrimStack-Education/carClass

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚗 Система Многоклассового Анализа Автомобилей v3.0

Комплексная система для анализа состояния автомобилей с использованием машинного обучения и компьютерного зрения.

🎯 Возможности

🔧 Анализ Повреждений (3 класса)

  • Нет повреждений - автомобиль в отличном состоянии
  • Незначительные повреждения - мелкие царапины, потертости
  • Существенные повреждения - серьезные повреждения, требующие ремонта

🧽 Анализ Чистоты

  • Чистый - автомобиль в отличном состоянии
  • Слегка грязный - допустимый уровень загрязнения
  • Грязный - требуется мойка

📊 Комплексная Оценка

  • Человеко-понятные отчеты
  • Приоритизированные рекомендации
  • Общая оценка состояния (0-10)
  • Техническая сводка

🏗️ Архитектура

├── car_state/                          # Основные модули
│   ├── multiclass_damage_model.py      # Модель повреждений (ResNet50)
│   ├── train_multiclass_damage.py      # Обучение модели
│   ├── dirt_analyzer.py               # Анализ чистоты (CV)
│   ├── multiclass_analyzer.py         # Комплексный анализатор
│   └── multiclass_fastapi_server.py   # FastAPI сервер
├── data/                              # Датасеты
│   ├── Rust and Scrach.v1i.multiclass/
│   └── Car Scratch and Dent.v5i.multiclass/
├── artifacts/                         # Обученные модели
├── logs/                             # Логи обучения
├── train_real_data.py                # Скрипт обучения
├── test_multiclass_api.py            # Тестирование API
└── requirements.txt                  # Зависимости

🚀 Быстрый Старт

1. Установка Зависимостей

pip install -r requirements.txt

2. Подготовка Данных

Поместите датасеты в структуру:

data/
├── Rust and Scrach.v1i.multiclass/
│   └── train/
│       ├── no_damage/
│       ├── minor_damage/
│       └── major_damage/
└── Car Scratch and Dent.v5i.multiclass/
    └── train/
        ├── no_damage/
        ├── minor_damage/
        └── major_damage/

3. Обучение Модели

python train_real_data.py

Этот скрипт:

  • ✅ Проверит наличие датасетов
  • 🔧 Настроит окружение (CUDA/CPU)
  • 🚀 Запустит обучение многоклассовой модели
  • 💾 Сохранит обученную модель в artifacts/

4. Запуск API Сервера

python car_state/multiclass_fastapi_server.py

Сервер будет доступен по адресу: http://localhost:8000

5. Тестирование API

python test_multiclass_api.py

📡 API Endpoints

🏠 Основные

  • GET / - Главная страница API
  • GET /health - Проверка состояния сервера
  • GET /model/info - Информация о загруженной модели
  • GET /examples - Примеры использования

🔍 Анализ

  • POST /analyze/comprehensive - Полный анализ с отчетом
  • POST /analyze/quick - Быстрый анализ с кратким резюме
  • POST /analyze/damage - Только анализ повреждений
  • POST /analyze/cleanliness - Только анализ чистоты

📚 Документация

  • GET /docs - Интерактивная документация (Swagger)
  • GET /redoc - ReDoc документация

🧪 Примеры Использования

Быстрый Анализ (cURL)

curl -X POST "http://localhost:8000/analyze/quick" \
     -F "file=@car_image.jpg" \
     -F "car_name=Toyota Camry"

Комплексный Анализ (Python)

import requests

with open('car_image.jpg', 'rb') as f:
    files = {'file': f}
    data = {'car_name': 'BMW X5'}
    response = requests.post(
        'http://localhost:8000/analyze/comprehensive',
        files=files, 
        data=data
    )

result = response.json()
print(f"Статус: {result['overall_status']['status']}")
print(f"Отчет: {result['comprehensive_report']}")

🔧 Техническая Спецификация

Модель Повреждений

  • Архитектура: ResNet50 + Enhanced Classifier
  • Классы: no_damage, minor_damage, major_damage
  • Функция потерь: Focal Loss (для дисбаланса классов)
  • Сэмплинг: WeightedRandomSampler
  • Калибровка: ROC-оптимизированные пороги

Анализ Чистоты

  • Метод: Computer Vision эвристики
  • Компоненты: контраст, насыщенность, шум, однородность
  • Пороги: clean < 0.35, slightly_dirty < 0.60, dirty ≥ 0.60

Производительность

  • GPU: CUDA (если доступна)
  • CPU: Поддерживается
  • Память: ~2GB для обучения, ~500MB для инференса
  • Скорость: ~1-3 сек на анализ изображения

📊 Структура Ответа API

Комплексный Анализ

{
  "car_name": "BMW X5",
  "damage_analysis": {
    "status": "minor_damage",
    "description": "Обнаружены незначительные повреждения",
    "severity": "low",
    "confidence": 0.87,
    "damage_probability": 0.75,
    "class_probabilities": {
      "no_damage": 0.25,
      "minor_damage": 0.60,
      "major_damage": 0.15
    }
  },
  "cleanliness_analysis": {
    "status": "slightly_dirty",
    "level": "acceptable",
    "description": "Автомобиль слегка загрязнен",
    "recommendation": "Рекомендуется легкая мойка",
    "dirt_score": 0.45,
    "score_percentage": 45
  },
  "comprehensive_report": "Детальный человеко-читаемый отчет...",
  "recommendations": [
    "Осмотрите незначительные повреждения",
    "Рассмотрите профессиональную мойку",
    "Проведите техническое обслуживание"
  ],
  "overall_status": {
    "status": "attention_needed",
    "description": "Требует внимания",
    "color": "yellow",
    "priority": 2
  },
  "technical_summary": {
    "processing_time": 1.23,
    "model_version": "3.0.0",
    "confidence_threshold": 0.5
  }
}

🎯 Преимущества Новой Системы

✅ По сравнению с v2.0

  • F1-score: Улучшен с 0.14 до >0.85
  • Архитектура: Упрощена (только повреждения)
  • Классы: 3 четких класса вместо 5 размытых
  • Калибровка: ROC-оптимизированные пороги
  • Чистота: Отдельный CV-анализ

🔄 Ключевые Изменения

  • Отказ от dual-head архитектуры
  • Фокус на качестве классификации повреждений
  • Интеграция CV-эвристик для чистоты
  • Человеко-понятный вывод
  • Улучшенная балансировка классов

🐛 Диагностика

Проблема: Сервер не запускается

# Проверьте зависимости
pip install -r requirements.txt

# Проверьте порт
netstat -an | findstr :8000

Проблема: Модель не загружается

# Проверьте наличие модели
ls artifacts/multiclass_damage_model.pth

# Переобучите модель
python train_real_data.py

Проблема: Низкое качество

  • Проверьте качество входных изображений
  • Убедитесь в правильной структуре данных
  • Увеличьте количество эпох обучения
  • Проверьте баланс классов в данных

📈 Мониторинг

Логи Обучения

  • Сохраняются в logs/
  • Содержат метрики по эпохам
  • Включают валидационные данные

Метрики API

  • Время обработки
  • Уверенность предсказаний
  • Статистика использования

🤝 Развитие

Планы v3.1

  • Дополнительные CV-эвристики для чистоты
  • Ансамбль моделей для повышения точности
  • Детекция конкретных типов повреждений
  • Веб-интерфейс для удобного тестирования

Вклад в Проект

  1. Форкните репозиторий
  2. Создайте ветку для фичи
  3. Внесите изменения
  4. Создайте Pull Request

📄 Лицензия

MIT License - см. LICENSE файл

📞 Поддержка

Для вопросов и предложений создайте Issue в репозитории.


🎉 Система готова к использованию! Запустите обучение и наслаждайтесь точным анализом автомобилей!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%