Рік-півтора тому коли стояло питання вибору дисків на автомобіль я продивлявся оголошення, а потім підставляв фото диска на авто у фотошопі. Власне таким чином я зробив вибір спочатку літніх, а потім вже і зимових дисків. Пару тижнів тому на вихідних мені було нічим зайнятись і я вирішив спробувати який вигляд будуть мати різні диски на моєму автомобілі, хоч вже є 2 комплекти та потреби в оновленні не маю. Спробувавши декілька варіантів і зробивши висновок, що я цілком задоволений тими дисками, що в мене є, я задумався над тим що було б цікаво спробувати зробити код який би автоматично підставляв диски на фото.
Декілька вечорів і прототип був готовий, він працював наступним чином:
-на вхід ми подаємо фото машини збоку і фото одного диска
-нейронна мережа знаходить диски на обох фотографіях
-розраховуємо їх центри і розміри
-вирізаємо диск, зменшуємо до потрібних розмірів
-ставимо центр в центр
Результати були вже непогані, але інколи накладання відбувалось зі зміщенням.
Задумавшись над потенційними покращеннями, я вирішив розраховувати перспективу, тобто нахил диска на фото, і потім підлаштовувати новий диск під такий же кут, і мені здається що вийшло нормально.
Проте, як можна побачити, коли колір диска сильно контрастує з тоном зображення складається враження що їх домалювали, тож я вирішив спробувати змінювати колір диска відповідно до кольору фотографії. І як результат вийшло вже більш природно.
Продовжуючи тестувати код я натрапив в інстаграмі на такий цікавий диск і вирішив одразу випробувати код на цьому фото.
Однак результати без зміни кольору і зі зміною виглядали дивно через початковий засвіт диска.
Я вирішив якось розібратись з такими випадками і додав оцінку кольоровості диска, тож тепер при зміні кольору результат буде більш стриманим навіть якщо диск на фото має засвіти.
Закінчивши тестування на різних фото автомобілів і дисків я вирішив інтегрувати це все у телеграм бот. Тож для запуску вводимо команду старт і бот просить нас надіслати фото автомобіля. В ідеалі брати фото де автомобіль стоїть максимально рівно.
Після того як фото автомобіля було надіслано, бот запитує фото диска.
Надсилаємо фото диска, в ідеалі обрізати фото так щоб диск займав на ньому максимальну площу і ми дивились на нього прямо, а не під кутом, але з іншими варіантами теж працює, правда трохи гірше.
Після цього бот нас запитує чи хочемо ми адаптувати колір диска під фото з машиною, свій вибір потім завжди можна змінити, тож давайте спочатку відмовимось.
Тепер перед нами є 3 кнопки - спробувати адаптувати колір, надіслати фото автомобіля і надіслати інше фото диска. Давайте спочатку спробуємо змінити колір.
Тепер давайте спробуємо надіслати інше фото диска.
І одразу погодимось на зміну кольору.
Якщо ми хочемо спробувати замінити диски на іншому фото автомобіля то натискаємо Надіслати фото автомобіля і бот попросить нас його надіслати.
Далі знову нас попросять надіслати фото диска і все по вже знайомій схемі.
Якщо щось піде не так і бот не буде відповідати то найкращий варіант це спробувати його перезапустити командою /start
Її можна знайти натиснувши на Меню.
Я завантажив бот на сервер і по ідеї він має тепер працювати цілодобово і безперебійно, але є підозри що можуть виникнути якісь збої.
Тож дякую що дочитали, сподіваюсь вам було цікаво і такий бот теж здається корисним. Спробувати його ви можете у телеграмі по тегу @rims_replacement_bot там буде ось така аватарка.
Відгуки і пропозиції можна писати тут у коментарях або ж в особисті у телеграмі. Мені буде цікаво дізнатись чи все працює коректно і так як очікується, а також можливо додати якийсь функціонал якщо будуть нові ідеї.
Тому чорний буде ідеально.
Як просувати цей допис?)) йду кидати в чат аккордів