Цей проєкт представляє собою згорткову нейронну мережу для класифікації зображень з використанням датасету CIFAR-10. Метою проєкту є навчання моделі розпізнавати 10 класів зображень (літаки, автомобілі, птахи, коти, олені, собаки, жаби, коні, кораблі та вантажівки) та реалізація веб-інтерфейсу для її використання.
- Клонуйте репозиторій:
git clone https://github.com/valeri7122/Project_Data_Science_team2.git
- Перейдіть до директорії проєкту:
cd Project_Data_Science_team2
- Встановіть необхідні залежності:
pip install -r requirements.txt
- Запустіть веб-інтерфейс:
python main.py
Відкрийте браузер та перейдіть до:
http://localhost:8000
Завантажте зображення, натиснувши на кнопку "Choose File"
Після завантаження зображення, натисніть кнопку "Classify" для класифікації.
Результат класифікації буде показаний під зображенням.
Згорткова нейронна мережа з методом виділення ознак має наступну архітектуру:
- Згортковий шар з 32 фільтрами розміром (3, 3) та функцією активації ReLU.
- Шар підвибірки з максимальним зведенням з розміром підвибірки (2, 2).
- Згортковий шар з 64 фільтрами розміром (3, 3) та функцією активації ReLU.
- Шар підвибірки з максимальним зведенням з розміром підвибірки (2, 2).
- Згортковий шар з 128 фільтрами розміром (3, 3) та функцією активації ReLU.
- Повнозв'язний шар з 512 нейронами та функцією активації ReLU.
- Випадковий Dropout (0.2) для зменшення перенавчання.
- Повнозв'язний шар з 256 нейронами та функцією активації ReLU.
- Випадковий Dropout (0.2).
- Повнозв'язний шар з 10 нейронами та функцією активації softmax для класифікації.
Згорткова нейронна мережа з методом донавчання має наступну архітектуру:
-
Згортковий шар з 32 фільтрами розміром (3, 3) та функцією активації ReLU.
-
Шар підвибірки з максимальним зведенням з розміром підвибірки (2, 2).
-
Згортковий шар з 64 фільтрами розміром (3, 3) та функцією активації ReLU.
-
Шар підвибірки з максимальним зведенням з розміром підвибірки (2, 2).
-
Згортковий шар з 128 фільтрами розміром (3, 3) та функцією активації ReLU.
-
Повнозв'язний шар з 256 нейронами та функцією активації ReLU.
-
Повнозв'язний шар з 10 нейронами та функцією активації softmax для класифікації.
-
Включенні у донавчання шари block4_conv1, block5_conv1 мережі VGG16
Результати роботи моделі на тестових даних

Графіки показують точність та втрати моделі на тренувальних, тестових та валідаційних даних протягом навчання.
Даний проєкт є контейнеризованим в Docker. Ви можете побудувати контейнерний образ самостійно за допомогою команди:
docker build -t your-dockerhub-username/your-image-name:tag .
Або завантажити готовий образ з DockerHub який запускає WEB додаток:
docker pull sunriseuk/dsteamworkweb:final
Для запуску контейнера:
docker run -p 8000:8000 sunriseuk/dsteamworkweb:final
Для зручності використання додана можливість використання Telegram бота.
Перейдіть за посиланням
https://t.me/PicRec_AI_bot
Завантажте зображення та отримайте результат класифікації
Також ви маєте можливість налаштувати ваш бот для роботи з моделлю.
Для цого вкажіть API вашого бота у файлі config.py
Після цього запустіть
python telegram_bot.py
- main.py: Веб-інтерфейс для класифікації зображень
- model.ipynb: Ноутбук з кодом нейромережі та навчанням
- weights.h5: Збережені ваги навченої моделі
- requirements.txt: Залежності проєкту
- telegram_bot.py Telegram бот
- README.md: Цей файл
Валерій Третяков
GitHub: Valeri
LinkedIn: Валерій Третяков
Сергій Підкопай
GitHub: SSP0d
LinkedIn: Serhii Pidkopai
Микола Присташ
Mykola Prystash
GitHub: Sunriseuk
LinkedIn: Mykola Prystash
Василь Глущенко
GitHub: Vasyl-Hlushchenko
LinkedIn: Vasiliy Hlushchenko
Цей проєкт має ліцензію MIT - дивись LICENSE файл для деталей.


