Като едно от основните приложения в компютърното зрение, откриването на обекти става все по-важно в сценарии, които изискват висока точност, но имат ограничени изчислителни ресурси, като роботика и автомобили без шофьор. За съжаление, много съвременни високо прецизни детектори не отговарят на тези ограничения. По-важното е, че приложенията за реално откриване на обекти се изпълняват на различни платформи, които често изискват различни ресурси.
Така че естественият въпрос е как да се проектират точни и ефективни обектни детектори, които също могат да се адаптират към широк спектър от ограничения на ресурсите?
EfficientDet: Мащабируемо и ефективно откриване на обекти, прието на CVPR 2020, представя ново семейство от мащабируеми и ефективни детектори на обекти. Въз основа на предишната работа по мащабиране на невронни мрежи (EfficientNet) и включване на нова двупосочна функционална мрежа (BiFPN) и нови правила за мащабиране, EfficientDet постига съвременна точност, докато е 9 пъти по-малка и използва значително по-малко изчисления от известните съвременни детектори. Следващата фигура показва общата мрежова архитектура на моделите.
Оптимизиране на архитектурата на модела
Идеята зад EfficientDet произтича от усилията за намиране на решения за подобряване на изчислителната ефективност чрез систематично изследване на предишни модерни модели за откриване. По принцип детекторите на обекти имат три основни компонента: гръбнак, който извлича характеристики от дадено изображение; мрежа от обекти, която приема множество нива на функции от гръбначния стълб като вход и извежда списък на комбинирани функции, които представляват характерни характеристики на изображението; и крайна мрежа клас / кутия, която използва комбинирани функции за предсказване на класа и местоположението на всеки обект.
След преглед на опциите за дизайн на тези компоненти, ние идентифицирахме няколко ключови оптимизации за подобряване на производителността и ефективността. Предишните детектори използват предимно ResNets, ResNeXt или AmoebaNet като гръбначни мрежи, които са или по-малко мощни, или имат по-ниска ефективност от EfficientNets. С първоначалното внедряване на основата на EfficientNet може да се постигне много по-голяма ефективност. Например, като се започне с изходно ниво на RetinaNet, което използва гръбнак на ResNet-50, нашето проучване за аблация показва, че простото заместване на ResNet-50 с EfficientNet-B3 може да подобри точността с 3%, като същевременно намали изчисленията с 20%. Друга оптимизация е да се подобри ефективността на функционалните мрежи. Докато повечето от предишните детектори просто използват пирамидалната мрежа надолу (FPN), ние откриваме, че FPN надолу по веригата по своята същност е ограничен до еднопосочен поток от информация. Алтернативни FPN като PANet добавят допълнителни нагоре по веригата с цената на допълнителни изчисления.
Последните опити за използване на Neural Architecture Search (NAS) откриха по-сложна архитектура NAS-FPN. Въпреки това, докато тази мрежова структура е ефективна, тя също е нередовна и силно оптимизирана за конкретна задача, което затруднява адаптирането към други задачи. За да разрешим тези проблеми, ние предлагаме нова мрежа от двупосочни функции BiFPN, която реализира идеята за комбиниране на многослойни функции от FPN / PANet / NAS-FPN, която позволява информацията да се предава както отгоре надолу, така и отдолу нагоре. използване на редовни и ефективни връзки.
За по-нататъшно подобряване на ефективността, ние предлагаме нова бърза нормализирана техника на синтез. Традиционните подходи обикновено третират всички входни данни за FPN по един и същи начин, дори при различни резолюции. Забелязваме обаче, че входните функции с различни разделителни способности често допринасят неравномерно към изходните функции. По този начин добавяме допълнително тегло към всяка функция за въвеждане и оставяме мрежата да научи важността на всяка една. Също така ще заменим всички редовни конволюции с по-евтини, дълбоко отделящи се конволюции. С тази оптимизация, нашата BiFPN допълнително подобрява точността с 4%, като същевременно намалява изчислителните разходи с 50%.
Третата оптимизация включва постигане на най-добрия компромис между точността и ефективността при различни ограничения на ресурсите. Предишната ни работа показа, че съвместното мащабиране на дълбочината, ширината и разделителната способност на мрежата може значително да подобри производителността на разпознаване на изображения. Вдъхновени от тази идея, ние предлагаме нов композитен метод за мащабиране на обектни детектори, който колективно увеличава разделителната способност / дълбочината / ширината. Всеки мрежов компонент, т.е. опорна мрежа, обект и блок / клас предсказваща мрежа, ще има един сложен мащабиращ фактор, който контролира всички мащабиращи измерения, използвайки евристични правила. Този подход улеснява определянето на начина на мащабиране на модела чрез изчисляване на мащабен фактор за дадено ограничение на целевия ресурс.
Комбинирайки новия гръбнак и BiFPN, първо проектираме малка базова линия EfficientDet-D0 и след това прилагаме мащабиране на съединението, за да получим EfficientDet-D1 до D7. Всеки сериен модел има по-високи изчислителни разходи, покривайки широк спектър от ограничения на ресурсите от 3 милиарда FLOPs до 300 милиарда FLOPS, и осигурява по-висока точност.
Модел на изпълнение
Оценка на EfficientDet върху набора от данни COCO, широко използван референтен набор от данни за откриване на обекти. EfficientDet-D7 постига средна средна точност (mAP) от 52,2, което е с 1,5 точки по-висока от предишния модерен модел, използвайки 4 пъти по-малко параметри и 9,4 пъти по-малко изчисления
Също така сравнихме размера на параметрите и латентността на CPU / GPU между EfficientDet и предишните модели. С подобни ограничения на точността, моделите EfficientDet работят 2–4 пъти по-бързо на графичния процесор и 5–11 пъти по-бързо на процесора от другите детектори. Докато моделите EfficientDet са предназначени предимно за откриване на обекти, ние също тестваме тяхната ефективност при други задачи като семантично сегментиране. За да изпълняваме задачи по сегментиране, леко модифицираме EfficientDet-D4, като заместваме главата за откриване и загубата и загубата на главата, като същевременно поддържаме една и съща мащабирана гръбнака и BiFPN. Сравняваме този модел с предишните съвременни модели за сегментиране за Pascal VOC 2012, широко използван набор от данни за тестване на сегментиране.
Като се има предвид тяхната изключителна производителност, EfficientDet се очаква да служи като нова основа за бъдещи изследвания на откриването на обекти и потенциално да направи изключително точни модели за откриване на обекти полезни в много реални приложения. Така отвори всички точки на прекъсване на кода и предварително обучен модел на Github.com.