Все, що розроблено і протестовано в ідеальних «лабораторних» умовах, може виявитися під загрозою в реальних умовах. На папері ідеальні умови в аеродинамічній трубі можуть змусити дизайнера повірити в те, що він сконструював кращий у світі перегоновий автомобіль Формули-1. Але в вітряний квітневий день на португальському узбережжі випробувальні моделі можуть буквально зазнати фіаско. Те ж саме стосується відеоаналітики, і чому тестування в реальних користувальницьких середовищах важливо для забезпечення дієвості алгоритмів машинного навчання для конкретних випадків і сценаріїв використання.

Тренування перед тестуванням

Перед тестуванням в реальних умовах необхідно розробити та навчити алгоритми машинного навчання — наприклад, ті, що використовуються для виявлення і розпізнавання об'єктів у відеоаналітиці.

Щоб розробити програмне забезпечення з відеоаналітикою на основі глибокого або машинного навчання, необхідно зібрати великі обсяги даних. При відеоспостереженні це зазвичай зображення та кліпи з людьми, транспортними засобами або іншими об'єктами, що представляють інтерес. З огляду на широту цих об'єктів, необхідні набори даних можуть бути величезними.

Щоб зробити дані розпізнаваними для машини або комп'ютера, необхідний процес анотації даних, за допомогою якого відповідні об'єкти класифікуються та маркуються. Анотовані дані повинні охоплювати досить велика кількість різноманітних вибірок, актуальних для контексту, в якому буде використовуватися аналітичний додаток. На жаль, анотування даних — це, в основному, ручне і трудомістке завдання.

У алгоритмічну модель надходять анотовані дані, і використовується середовище навчання для ітеративної зміни і поліпшення моделі до тієї пори, поки не буде досягнута бажана якість. Іншими словами, модель оптимізується для вирішення поставленого завдання.

Методи навчання машинному навчанню

Навчання алгоритму, заснованому на машинному навчанні, може здійснюватися трьома основними способами:

  • Навчання з учителем: модель вчиться робити точні прогнози;
  • Навчання без вчителя: модель вчиться визначати кластери;
  • Навчання з підкріпленням: модель вчиться на помилках.

Навчання з учителем сьогодні вважається найбільш поширеним методом машинного навчання, і в широкому сенсі його можна схарактеризувати як «навчання на власному прикладі». Навчальні дані чітко анотовані — це означає, що вхідні дані вже пов'язані з бажаним вихідним результатом. Для контрольованого навчання зазвичай потрібен вагомий обсяг анотованих даних, і продуктивність навченого алгоритму безпосередньо залежить від якості цих навчальних даних.

Найбільш важливим аспектом контрольованого навчання вважається використання набору даних, який представляє всі потенційні вхідні дані з реальної ситуації розгортання. Для датчиків руху розробник повинен переконатися, що навчив алгоритм з широким спектром зображень, з різними екземплярами об'єктів, орієнтаціями, масштабами, ситуаціями освітлення, фоном та відвертальними факторами. Тільки в тому випадку, якщо дані навчання є репрезентативними для запланованого варіанту використання, остаточне аналітичне ПЗ для відеоспостереження зможе робити точні прогнози при обробці нових даних.

У навчанні без учителя використовуються алгоритми для аналізу і угрупування немаркованих наборів даних. Це не поширений метод навчання в індустрії відеоспостереження, оскільки модель вимагає великої кількості калібрувань та випробувань, а якість все ще може бути непередбачуваною. Набори даних повинні мати відношення до аналітичного програмного забезпечення, але не повинні мати чіткого маркування

Ручна робота з анотаціями виключається при навчанні без учителя, але кількість зображень або відео, необхідних для навчання, має бути вагомо збільшена на кілька порядків. На етапі навчання модель, яку необхідно навчити, визначає загальні функції в наборах даних, підтримувані структурою навчання. На етапі розгортання це дозволяє групувати дані відповідно до шаблонів, а також виявляти аномалії, які не вписуються ні в одну з вивчених груп.

Навчання з підкріпленням використовується, наприклад, в робототехніці, системі "розумний будинок" і промисловій автоматизації, а також в плануванні бізнес-стратегії, але через необхідність великої кількості зворотного зв'язку цей метод сьогодні має обмежене застосування в відеоспостереженні. Навчання з підкріпленням — це прийняття відповідних дій для максимізації потенційної винагороди в конкретній ситуації; винагороди, яка стає більше, коли модель робить правильний вибір. Алгоритм не використовує пари даних / міток для навчання, а замість цього оптимізується шляхом тестування своїх рішень за допомогою взаємодії з навколишнім середовищем при вимірюванні винагороди. Мета алгоритму — вивчити політику дій, які допоможуть максимізувати винагороду.

Тестування перед розгортанням і в реальних умовах

Після навчання моделі її необхідно ретельно протестувати, як правило, в поєднанні автоматизованої частини з великим тестуванням в реальних ситуаціях розгортання. У автоматизованої частини додаток порівнюється з новими наборами даних, які модель не бачить під час навчання. Якщо ці тести не відповідають очікуваним, процес починається заново: збираються нові навчальні дані, створюються або уточнюються анотації, і модель повторно навчається.

Після досягнення бажаного рівня якості починається польове випробування. У цьому тесті додаток піддається реальним сценаріями. Кількість і варіації залежать від сфери застосування: чим більш вузька сфера застосування, тим менше варіантів необхідно перевіряти; чим ширше охоплення, тим більше потрібно тестів. Результати знову порівнюються і оцінюються, а це повторно може призвести до того, що процес почнеться заново, якщо результати виявляться не там, де повинні бути. Інший потенційний результат може полягати у визначенні попередніх умов, що пояснюють відомий сценарій, в якому програма не рекомендується або рекомендується використовувати тільки частково.

Однак відкрити програму відеоаналітики для реальних сценаріїв і камер відеоспостереження — це не те ж саме, що запустити додаток в реальному світі. Розгортання, також зване логічним висновком або прогнозуванням, являє собою процес виконання навченої моделі машинного навчання в системі відеоспостереження, що відстежує реальні життєві сцени, щоб перевірити, чи використовує алгоритм те, що він вивчив на етапі навчання, для отримання бажаного результату. Тільки на цьому етапі — коли «чисті» дані, які використовуються в процесі розробки і тестування, замінюються реальними даними (якість яких може сильно відрізнятися), з'ясовується, чи підходить алгоритм для тієї мети, для якої був розроблений.

Тестування відеоаналітики: часто не беруть до уваги

Можливо, саме сприйняття наростального «інтелекту» процесорів і технології означає, що користувачі вірять в ідеальну роботу відеоаналітики «з коробки», але це не так. Тестування в реальному світі має життєво важливе значення, і його необхідно враховувати у витратах на розгортання системи безпеки з аналітикою.

Аналітика відеоспостереження буде продовжувати розвиватися, підвищуючи точність і продуктивність, але найчастіше вона розробляється в ідеальних умовах. Недосконалий світ, в якому ми живемо, може підірвати будь-який алгоритм, і перевірка цих недоліків дуже важлива.

Недосконалості не викликані автоматично самим додатком — найчастіше вони викликані невідповідністю очікувань. Це означає, що тестування не тільки допоможе знайти недоліки або обмеження, а й вагомо покращить розуміння загальних можливостей відеоаналітики. У свою чергу, це допоможе підготувати встановлення IP камери відеоспостереження найкращим чином та навіть призведе до можливих змін самої сцени (наприклад, освітлення).