Откриването на обект е AI модел, който се използва за локализиране на обекти в изображение. От откриване на човешки лица, автомобили, а също и за медицински прегледи като откриване на тумори.

В този блог споделяме трик как да подобрим точността на алгоритъма за откриване на обекти на AWS SageMaker чрез предоставяне на отрицателни проби с помощта на вградената мултикласова поддръжка

Бизнес казус

Порталът за търговия на дребно carsales улеснява покупката и продажбата на автомобили. В нашата платформа има приблизително 250 000 автомобила и има по 5 000 нови реклами на ден. За да поддържа високото качество на рекламите, екипът за поддръжка на клиенти (CST) ръчно преглежда и одобрява всяка реклама. Наскоро Carsales разгърна технология за изкуствен интелект, наречена Tessa, която помага за автоматизиране на процеса на одобрение, който намалява CST от 3,5 часа до само 7 секунди. Това също значително подобрява изживяването на потребителите.

Tessa има много правила за одобряване на обява и едно от тях е да се уверите, че има поне една снимка с видима рего табела. Използването на съществуващи услуги за разпознаване на rego няма да помогне много при трудни условия на снимане, като например когато ъгълът на rego плочата е твърде стръмен или когато осветлението е лошо, което води до много грешно откриване. Създадохме AI за откриване на rego плоча, за да преодолеем този проблем с помощта на AWS SageMaker.

Amazon SageMaker предоставя на всеки разработчик и учен по данни възможността бързо да изгражда, обучава и внедрява модели за машинно обучение. Това е напълно управлявана услуга, която обхваща целия работен процес на машинно обучение, който етикетира и подготвя вашите данни, избира алгоритъм, обучава модела, настройва и го оптимизира за внедряване, прави прогнози и предприема действия.

Подготовка на данните

Данните, необходими за този проект, се състоят от изображения на автомобили (с видима табела rego) и CSV файл, описващ информация за метаданни, като например местоположението на ограничителната кутия на табелата rego във всяко изображение. Изтеглихме около 11 000 изображения на автомобили от нашата база данни. Те обаче са смесени снимки на автомобили от различни ъгли, в които някои не показват регистрационна табела, като GPS инфотейнмънт, двигатели, багажник и т.н.

Очевидно първата ни стъпка е да се отървем от изображения на автомобили, които не показват регистрационна табела. За целта използваме нашата AI технология, Cyclops.

Cyclops може да класифицира изображенията на автомобили в 27 категории като багажник, пътническа седалка, странично огледало, арматурно табло, цяла задна част и цяла предна част с 97.2 % точност.

Използвахме Cyclops, за да категоризираме и премахнем 9500 изображения на автомобили без регистрационна табела, оставяйки ни само с 1500 изображения. Следва неизбежната работа за ръчно етикетиране на 1500 изображения, въпреки че работното натоварване вече е драстично намалено.

След това разделихме 1500 изображения на 1300 за обучение и 200 за валидиране и качихме тези изображения в нашата S3 кофа заедно с JSON файл, който е форматирана версия на нашия CSV файл, за да удовлетвори изискването за въвеждане на AWS SageMaker.

Изграждане на модела

От многото вградени алгоритми, предоставени от AWS SageMaker, Object Detection е най-очевидният избор за нашия случай. Създадохме тетрадка Jupyter и започнахме да изграждаме нашия скрипт за обучение. Благодарение на AWS SageMaker, който предостави скрипт за обучение за откриване на обекти като отправна точка, така че ние просто трябва да променим местоположението на кофата S3, където се съхранява нашия набор за обучение, и изходното местоположение на модела.

След по-малко от 5 минути вече започнахме нашата тренировъчна работа. Ние непрекъснато наблюдавахме напредъка на обучението от дневника на CloudWatch. Обучението приключи след един час с помощта на ml.p2.16xlarge инстанция и получихме точност на валидиране от 93,5%

Създадохме крайната точка на модела, която е толкова проста, колкото просто изпълнение на един ред код и това е, имахме крайна точка на API за извикване, готова за обслужване на изводи. Отне ни около 1,5 седмици, за да стигнем до този момент, където по-голямата част от времето беше прекарано в подготовка на данни. Това наистина променя играта, като знаем, че според нашия опит изграждането на цялостна AI технология като тази ни отнема поне 2 месеца.

Тестване на модела

Като допълнителна проверка тествахме нашия модел спрямо 1500 изображения на автомобили от различни ъгли. За наша изненада получавахме точност само от 20%, което е много по-ниско от точността на валидиране от 93,5%, която получавахме от обучението. По-подробен анализ на показателите за объркване показа, че процентът на фалшиво положителни грешки (моделът казва, че има рего плоча, докато всъщност няма) е доста висок при 80%, което е основният фактор за спада на точността. Дори когато увеличихме прага на оценката на доверието до 0,5, жертвайки припомнянето, все още получавахме доста висок фалшив положителен резултат от 4%. Това не е приемливо, тъй като фалшивият положителен резултат води до одобрение на реклама без видима рего табела, което застрашава нашия процес на одобрение. Напротив, фалшивият отрицателен резултат всъщност не нарушава сделката, тъй като означава само, че рекламата ще бъде изпратена до нашия екип за поддръжка на клиенти за проверка.

Също така забелязахме, че фалшивите положителни резултати се случват по-често на изображения като табло и GPS инфоразвлекателни системи, където има много обекти, които приличат на рего плоча. Точността на валидиране по време на обучението не показа това, тъй като нашият набор за валидиране не съдържа изображения на автомобили без регистрационна табела. С фактите по-горе предположихме, че въпреки че нашият модел свърши страхотна работа при откриването на местоположението на рего плоча, при условие че има такава, лесно се сбърка да се мисли, че има рего плоча, когато нямаше такава.

Осъзнахме грешката си. Целият ни комплект за обучение нямаше изображения на кола без рего табела или правилната терминология е отрицателни проби. Трябва да обучим нашия модел с балансирана комбинация от положителни и отрицателни проби. По този начин изкуственият интелект ще се научи да игнорира обект, който прилича на рего чиния.

Решение

Разширихме набора си за обучение, за да включим балансиран брой изображения на кола с и без регистрационна табела и рестартирахме обучението си, търсенето ни беше съкратено, тъй като това не беше възможно. AWS SageMaker изисква всички изображения да имат поне една ограничителна кутия. Негативно изображение (изображение без рего плоча) няма да има ограничителна рамка.

И така, какво да правя? Докато си блъскахме главите от отчаяние, видяхме мандарина 🍊 да седи в ъгъла на бюрото ни и да задейства светеща крушка. Просто се нуждаем от начин да включим изображения без рего плоча в нашия комплект за обучение, нали?

Алгоритъмът за откриване на обект на SageMaker позволява обучение с множество класове, затова решихме да обучаваме с два класа: Rego Plate и Mandarin. В изображението, когато няма рего, цифрово поставяме мандарина. Сега всяко изображение има ограничителна рамка и SageMaker е доволен.

С голяма надежда рестартирахме обучението и тестваме новия модел. Проведохме теста отново и оценката на показателите за объркване показа много по-добър процент на фалшиви положителни грешки при 20% в сравнение с 80% преди. Освен това процентът на грешки при праг на резултата за достоверност 0,5 е само 0,8% в сравнение с предишните 4% (измерен при праг на резултата за достоверност 0,5)

Можете също да видите от кривата на прецизност и припомняне по-горе, пресечната точка между прецизност и припомняне за нашия нов модел е 0,87, което е много по-добро от стария модел при 0,8.

Резюме

AWS SageMaker ускорява процеса на изграждане на AI, без да се тревожим твърде много за изграждането на инфраструктура. Той драстично намали разходите за разработка, която обикновено отнема около 2 месеца до 2 седмици и без необходимост от задълбочена техническа експертиза. Ние също така доказахме, че е възможно да предоставим отрицателни проби на алгоритъма за откриване на обекти чрез използване на многокласова поддръжка, подобрявайки възможностите на вече страхотни инструменти. Все пак се надяваме, че тази възможност ще се поддържа първоначално в бъдещата актуализация.

Кредити

И накрая, бихме искали да благодарим на Aparna Elangovan и Julian Bright от AWS, които ни помогнаха да се запознаем с AWS SageMaker, особено при изграждането на CI/CD тръбопровода.

Бих искал също така да отдам заслуженото на Eric Yuxuan Lin, софтуерен инженер AI в нашия екип, който работи по този проект.