«Дізнаюся, коли побачу» — вивчаємо точність Google Cloud Vision з допомогою Tumblr і NSFW контенту

image
Для невеликих команд і технологічних стартапів хмарні сервіси часто є єдиним шансом налагодити бізнес-процеси і випустити продукт на ринок у розумні строки. Такі великі гравці як Google, Microsoft, Amazon, Яндекс пропонують широку лінійку продуктів всім бажаючим. І якщо до надійності корпоративної пошти питань не виникає, то до сервісів машинного навчання часом слід ставитися насторожено.
Особливо тоді, коли ви намагаєтеся навчити машину розрізняти об'єкти, різницю між якими не завжди можна чітко описати навіть досвідченому людині. Наскільки точні алгоритми, що лежать в основі рішень "з коробки" від великих компаній?
У 1964 Член Верховного Суду США заявив:
Я не буду намагатися зараз точніше визначити матеріал, який підпадає під це короткий опис [«жорстка порнографія»]; можливо, я ніколи не зумію дати чітке визначення. Однак я дізнаюся, коли бачу.
Державна машина в нашій країні періодично впадає в стан активної боротьби з порнографією, зокрема і еротикою в цілому. Не будемо обговорювати цілі, зміст і перспективи цієї боротьби. Але зазначимо, що іноді відповісти на питання — nsfw or not nsfw? — досить складно.
Скромний колективsmmframe.com давно цікавили питання надійності Api від Корпорації Добра і одного разу для обкатки декількох технологій було вирішено перевірити якість роботи Google Cloud Vision на прикладі задачі розпізнавання еротичних і псевдоэротических зображень.

Технічна реалізація або "Завантажити фото голих дівчат"

Перше питання — звідки брати датасет? Нам потрібен датасет задовольняє трьом вимогам:
  • відповідність всіх фотографій одному певному тегу (для швидкого початку роботи)
  • наявність нейтральних фотографій з цього тегу
  • наявність аж ніяк не нейтральних фотографій з цього тегу
  • бажано обійтися без відвертої порнухи і наготи спортивно
Наш вибір припав на Tumblr — безліч підходящих фотографій по тегу girl та зручне API. Звичайно, було б краще шукати по sexy girl, але тумблр сильно обмежує видачу за nsfw тегам.
Збір даних для оцінки якості роботи сервісу сам по собі простий. Реєструємося на сервісі Google Cloud Vision, дивимося ціноутворення в рядку Explicit Content Detection.
Розбираємося з апі від тумблр.
Читаємо документацію і пишемо скрипт який буде по cron завантажувати фотографії і тут же передавати їх Гуглу. Отримуємо відповідь сервісу — оцінка ймовірності того, що на картинці є еротика за шкалою від 1 до 5. Розбираємо відповідь сервісу і зберігаємо в файлик на майбутнє.
Залишається самий довгий і нудний етап — проставити вручну оцінку від 1 до 5 всьому фото в датасете. Для зручності перегляду зображень зробили сайт: labs.smmframe.com. Відважна людина, вызвавшийся переглянути всі фотографії, відзначив два моменти: дуже багато повторів фотографій і дуже багато Емми Уотсон

Дивацтва або відчуй себе Милонова

Дивацтв в результатах від Vision API вистачає.
Відразу зазначимо — сервіс дуже добре працює для очевидних граничних випадків.
Безпечна
image
Небезпечна
(посилання на саму картинку тут.) А поки просто котик.
image
Майже небезпечна
image
Зазначимо, що за обраним нами тегу girls досить часто трапляються зображення манікюрних наборів, квіточок або типових предметів населяють жіночу сумочку. Все це класифікується як Very Unlikely, що правильно. Голі дівчата детектуються як Likely — що теж вірно.
Зустрічаються відверто хибні оцінки абсолютно безпечного контенту? Звичайно! Але складно описати ці випадки чітко.
Складності роботи з дівчатами в нижній білизні або тонка-тонка грань дозволеного
Ретроспективно, передумовою появи статті стало ось це зображення, що випадково потрапив на монітор в одному клубі. Скажемо відразу — дві милі панянки не викликають у Google жодних поганих асоціацій про що свідчить рейтинг Unlikely
image
І це щонайменше дивно, адже інші три картинки значно більш пристойного змісту були оцінені як близькі до NSFW:
image
Зліва направо: Unlikely, Likely, Likely
Це дуже дивний результат, коли Unlikely проставляється фотографій з одягненими дівчатами:
image
Що таке Explicit Content?
Ось приміром мила картинка відрубаної голови з ріжками і досить достовірно промальовані анатомією шиї.
image
Відразу виникає питання — чому проставлено тег girls чому фільтр пропустив це?
Звернувшись до словника, можна дізнатися що поняття Explicit Content не обмежується непристойними речами сексуального характеру, але включає в себе яскраво виражену агресію, нецензурну лайку, пропаганду шкідливих звичок, кров, розчленування і багато іншого, на що не варто звертати увагу особливо вразливим людям.
Виходить, що Google Cloud Vision в даному випадку скоріше помилився, ніж виявився правий, адже картинку не слід показувати дітям.
Гифки
Вот більш цікавий приклад — гифка з переливаються барвами, кішкою і голими грудьми. Нам невідомо як саме аналізуються gif файли, але для людини оцінка даної картинки як непристойною очевидна. Ймовірно, далекий від стандартного колір шкіри і нетиповий ракурс дозволили картинці обдурити фільтри — оцінка Very Unlikely.
Цікаво, що деякі очевидно пристойні благонравные речі в русі можу здаватися пікантними. Порівняйте просто кадр з гифки (пік нижче) і саму гифку
image
Складності доповненої реальності
Раз ми обговорюємо картинки, то давайте розглянемо ось такий приклад. Два зображення отримані в одному і тому ж відомому додатку. Ось тільки перше розцінюється як безпечне, а друге — Likely.
image
Бідний хлопець визнаний NSFW.
image
Дівчина ж просто бавиться.
Чому саме так складно здогадатися, але у Cloud Vision Api нездорова звичка міняти класифікацію при порівняно невеликих змінах виразу обличчя або пози людей.
Ось ще кілька прикладів:
image
Зліва — Unlikely, праворуч — Likely
image
Зліва — Unlikеly, праворуч — Likely. Є версія, що справа в поганому фокусі на лівому зображення.
image
Зліва — Unlikеly, праворуч — Likely.
image
Зліва — Very Unlikеly, праворуч — Unlikely.
5 балів або навіщо нам градація?
Вам могло здатися, що ми придираємося. Дійсно, не завжди можна провести різницю між дівчиною в купальнику і спортивному ліфчику. Більш того, якщо про смаки не сперечаються. Тому, навіть якщо Google дивно поводиться при здавалося б мало розрізняються фотографіях, то давайте покажемо де він крутий.Тиць,тиць. Все абсолютно правильно, залишається тільки дивуватися виконану роботу і здатності помічати такі малі за площею деталі на зображеннях.
Після перших кількох сотень фотографій у датасете ми вирішили не виставляти бали від 1 до 5 і перейти до градації nsfw / не nsfw. Результати зіставлення нашої оцінки з оцінкою Гугл наведені в таблиці нижче. З 13к фотографій після видалення дублікатів отримали 11246.









Тип оцінки Кількість фотографій " Позначено як NSFW Частка VERY_LIKELY 116 62 0.53445 LIKELY 176 47 0.26705 POSSIBLE 503 44 0.08748 UNLIKELY 3709 112 0.03020 VERY_UNLIKELY 6690 50 0.00747 ERROR 52 2 0.03846
Резюме
Результати роботи будь-якого классификатороа завжди зустрічаються як позитивні, так і помилково негативні випадки. Спочатку перед нами стояла задача пошуку зображень можливо непотрібного характеру в пристойній навколишнього обстановці при аналізі видачі зображень Instagram за певним хеш-тегом. Це повинно було вберегти наших клієнтів від демонстрації на екрані в якому-небудь закладі відверто непривабливих сцен. В цілому, API справляється з своїм завданням якщо користуватися ним на рівні ТАК / НІ. Більш тонка градація добре працює для пошуку NSFW контенту, а зустрічаються хибнопозитивні результати часто краще фільтрувати, ніж пропустити — береженого бог береже.
І якщо відповідати на питання, порушене на початку статті — Корпорація Добра виконала відмінну роботу. Невеликий клас задач, в яких потрібно звернути особливу увагу на позитивні і псевдонегативні результати порівняно легко вирішити, додавши додаткові перевірки — наприклад, оцінювати площа відкритої шкіри на зображенні.
Трохи про нас:
Smmframe.com — сервіс дозволяє організувати трансляції з фотографій по заданому хештегом. За допомогою нашого сервісу, розважальні заклади можу рекламувати себе в соціальних мережах. Ми розробили декілька просунутих алгоритмів, що дозволяють знаходити найбільш цікаві фотографії які точно зачеплять майбутніх відвідувачів.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.