Куратор модельно-ориентированного проектирования от ЦИТМ Экспонента подключился к проекту заказчика на этапе модернизации существующего изделия. Заказчик искал возможность программно повысить точность распознавания госномеров и перенести больше функций по определению госномера непосредственно на камеру, снизив тем самым ошибки и требования к каналам передачи данных и зависимость от серверных мощностей, используемых ранее для части алгоритма распознавания. Это позволило бы провести относительно дешевый апгрейд существующих изделий, уже работающих на автомагистралях, повысив их производительность и точность. Была известна архитектура устройства и его ЭКБ, существовали некоторые базы размеченных и неразмеченных изображений. Ключевой нейросетевой алгоритм заказчика, разработанный на языке C, выдавал недостаточную точность, был крайне сложен в модификации и поддержке. Команда разработчиков алгоритма уже не была связана с командой, выполняющей модернизацию изделия.
Ключевые результаты:
- Вместо переноса существующей сети, написанной на си, был проведен быстрый реинжиниринг алгоритма с помощью построения нейросети в MATLAB и ее обучения на существующих данных. Это сэкономило время проекта оценочно в 100 раз, т.к. нейросеть на си создавалась заказчиком в течение 2-х лет и на нее было потрачено так много усилий, что инженеры заказчика не верили в возможность быстрого реинжиниринга этого алгоритма. Реинжиниринг же сети занял считанные дни. Это характерно для проектов, в которых большое количество ресурсов тратится на разработку: конечные инженеры часто встают в защитную позицию по отношению к затраченным ранее усилиям, что иногда снижает скорость развития предприятия.
- Реинжиниринг нейросетевого алгоритма средствами MATLAB открыл упрощенный способ тестирования и отладки качества алгоритма. Был создан фреймворк тестирования и отладки алгоритма по живым данным, с автоматизацией подсчета точности и с возможностью отладки как эталонного алгоритма в моделях, так и портированного алгоритма в железе (Processor-in-the-Loop). Сама автоматизация тестирования алгоритма с помощью Simulink снизила временные затраты на верификацию оценочно на порядок.
- В рекордные сроки (2 дня) удалось создать и обучить алгоритм более высокой точности 98%, что на 3% пункта выше по сравнению с алгоритмом разработанным заказчиком ранее в течение 2-х лет.
- Часть алгоритма в камере работала на ПЛИС, а часть – на GPU. С помощью системной модели всех алгоритмов появилась возможность принять верные технические решения по поводу того, какая часть алгоритма на какой из ЭКБ должна работать. Поскольку при модельно-ориентированном проектировании разработчик не сильно ограничен в вопросе переноса алгоритма между ЭКБ с помощью автоматических генераторов кода, появилась возможность алгоритмической оптимизации проекта на системном уровне.
- Старая ЭКБ как ПЛИС, так и GPU была одним из препятствий проекта, поскольку генераторы кода не поддерживали “из коробки” данную ЭКБ. Эту проблему удалось разрешить благодаря глубокой компетенции куратора МОП от ЦИТМ Экспонента по глубокой настройке генераторов кода. В проекте удалось настроить сквозную верификацию как на моделях, так и на аппаратуре (FIL - FPGA-in-the-Loop, PIL-Processor-In-the-Loop).
- Проект длился с перерывами несколько месяцев. Всего на проект было затрачено 10 рабочих дней куратора МОП от Экспоненты и порядка 20 рабочих дней специалиста Заказчика. За это время специалисту заказчика были переданы процессные компетенции по МОП, а также настроены необходимые фреймворки для самостоятельного масштабирования полученного опыта силами заказчика на подобных проектах.
Скачать статью полностью можно по ссылке ниже.