Як збирали кількість знищених цілей за 2023-й рік (+ датасет)
Пару тижнів тому у твітері розлетілась моя інфографіка, від якої у дизайнерів (і у мене теж) ледь не зупинилось серце від зменшеного масштабу ракет та дронів, але на якій прекрасно видно масштаб кількості збитих шахедів – зображення навіть опублікувало Міноборони.
На редіт зображення теж потрапило з досить цікавими коментарями:
Збір та аналіз
Інформації про кількість збитих цілей кожного дня у відкритому доступі та зручному форматі за рік не було – в офіційних звітах Генштаб публікує лише загальну інформацію за ракети/БПЛА. Повітряні Сили публікують кожного дня зображення, тому ми вирішили спробувати їх розібрати. За весь рік зібралось 246 зображень, і Clark from InVision Михайло з Alerts.in.ua зібрав їх з соціальних мереж. Звіти публікують не кожного дня, але у деякі дні можна побачити декілька звітів.
Парсинг та обробка
Спочатку треба було всі дані перевести в текстовий формат. Я так і не знайшов гарних бібліотек, які витягнули б цей текст з зображень з українським текстом, але gpt-4 вміє у vision – може розпізнавати зображення та те, що на них бачить, тому він ідеально впорався з цією задачею!
Разом з gpt я трохи відредагував трохи промпти, щоб він повертав лише значення з зображень та нічого не перекладали та не змінювати, і почав обробляти ці всі 246 файлів. GPT взяв за це якісь $3, і віддав через пару хвилин, що він розпізнав! Якість розпізнаного тексту була ідеальною, тому кожен цент був витрачений не дарма!
До речі, деякі розробники розпізнають кількість овочів та фруктів на зображеннях, і переводять це все в json формат:
В зображеннях варіативність значень знищеної техніки та різних форматів (наприклад, коли було знищено ВДК «Новочеркаськ» або ракети залетіли в простір НАТО) та gpt не вміє в математику. Був сенс лише автоматизувати розпізнавання лише тексту, а не агрегувати всі витягнуті значення, а далі вже писати регулярні вирази для категоризації.
Через те, що цікавить лише все, що між «ЗНИЩЕНО» та «Повітряні Сили», було дуже легко зібрати список всього, що взагалі згадується та розбити все по категоріях знищених БПЛА, ракет та авіації.
Діаграми та Metabase
Якось Стас мені розповів, що вони на Джинні використовують metabase – мені стало цікаво його спробувати для побудови діаграм – з sqlite він так собі працює та повертає часто помилки (але я впевнений, що він гарно працює з чимось складним, а не звичайним .sqlite файлом), але графіки побудував успішно!
Наприклад, кількість збитих шахедів за кожен місяць року:
Та загальна кількість збитих ракет:
Що по авіації?
Дуже багато зʼявилось питань та конспірологічних теорій, чому авіації на інфографіці не було. Причини дві: я не встигав перевести іконки авіації у вектори та Повітряні Сили не публікували всю інформацію про збиту авіацію. У звітах від Повітряних Сил є інформація лише про 17 одиниць техніки, хоча Генштаб повідомляв за 44 збитих за рік.
Є датасет?
Так, ось:
Трохи більше інформації по полях:
uav_drones
– це дрони, про які згадувалось «оперативно-тактичного рівня», «отр», «розвідувальн*» або «бпла». Також якщо в одному рядку згадувались дві різні моделі дронів (наприклад, «4 БПЛА "Орлан-10", "Supercam"») – вони входили в цю категоріюmissiles
– кількість ракет, які не вдалось додати в будь-яку іншу категорію. Наприклад, «11 ракет "Іскандер-М", "Іскандер-К"» – це крилаті та балістичні ракети, тому я зберігав їх як 11 missiles, але «10 балістичних ракет (тип уточнюється)» зберігаються якballistic_missiles
, а якщо вказується найменування ракети – вона зберігається вже під конкретною назвою.helicopter
– звіти вигляду «1 вертоліт (тип уточнюється)».- Звіт з ВДК «Новочеркаськ» від 26-го грудня в цей файл не потрапив.
Якщо будете використовувати та будувати якусь інфографіку – додайте посилання, будь ласка! ❤️