Комплексная система для анализа состояния автомобилей с использованием машинного обучения и компьютерного зрения.
- Нет повреждений - автомобиль в отличном состоянии
- Незначительные повреждения - мелкие царапины, потертости
- Существенные повреждения - серьезные повреждения, требующие ремонта
- Чистый - автомобиль в отличном состоянии
- Слегка грязный - допустимый уровень загрязнения
- Грязный - требуется мойка
- Человеко-понятные отчеты
- Приоритизированные рекомендации
- Общая оценка состояния (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 # Зависимости
pip install -r requirements.txtПоместите датасеты в структуру:
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/
python train_real_data.pyЭтот скрипт:
- ✅ Проверит наличие датасетов
- 🔧 Настроит окружение (CUDA/CPU)
- 🚀 Запустит обучение многоклассовой модели
- 💾 Сохранит обученную модель в
artifacts/
python car_state/multiclass_fastapi_server.pyСервер будет доступен по адресу: http://localhost:8000
python test_multiclass_api.pyGET /- Главная страница APIGET /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 -X POST "http://localhost:8000/analyze/quick" \
-F "file=@car_image.jpg" \
-F "car_name=Toyota Camry"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 сек на анализ изображения
{
"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
}
}- 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/ - Содержат метрики по эпохам
- Включают валидационные данные
- Время обработки
- Уверенность предсказаний
- Статистика использования
- Дополнительные CV-эвристики для чистоты
- Ансамбль моделей для повышения точности
- Детекция конкретных типов повреждений
- Веб-интерфейс для удобного тестирования
- Форкните репозиторий
- Создайте ветку для фичи
- Внесите изменения
- Создайте Pull Request
MIT License - см. LICENSE файл
Для вопросов и предложений создайте Issue в репозитории.
🎉 Система готова к использованию! Запустите обучение и наслаждайтесь точным анализом автомобилей!