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

До недавнего времени большинство примеров, которые мы видели, таких как Neural Compute Stick или Google’s AIY Projects kits, основывались на нестандартных микросхемах, таких как чип Intel Movidius. Однако недавно Arm незаметно выпустила свою библиотеку CMSIS-NN, библиотеку нейронной сети, оптимизированную для микроконтроллеров на базе Cortex-M.

Разработка машинного обучения осуществляется в два этапа. Первоначально алгоритм обучается на большом наборе выборочных данных на быстром мощном компьютере или кластере, затем обученная сеть развертывается в приложении, которому необходимо интерпретировать реальные данные. На этом этапе развертывания, или этапе «вывода», действительно полезны периферийные вычисления.

Библиотека CMSIS-NN означает, что теперь гораздо проще развертывать обученные сети на гораздо более дешевых микроконтроллерах. Это именно то, что OpenMV сделал со своим OpenMV Cam, который построен на базе процессора Cortex-M7.

OpenMV Cam - это небольшая, маломощная плата камеры на базе микроконтроллера. Запрограммированный на MicroPython, он хорошо подходит для приложений машинного зрения и является частью поколения доступных плат, которое сейчас появляется на рынке. Основанный на процессоре Arm Cortex-M7 STM32F765VI с тактовой частотой 216 МГц, он имеет 512 КБ ОЗУ и 2 МБ флэш-памяти. Он оснащен гнездом для карты micro SD для локального хранения, а также полноскоростным USB (12 Мбит / с) и шиной SPI (54 Мбит / с) для потоковой передачи изображений. На плате есть как 12-битный АЦП, так и 12-битный ЦАП.

Датчик изображения на плате - OV7725, способный снимать 8-битные изображения в оттенках серого 640x480 или 16-битные изображения RGB565 с разрешением 640x480 и 60 FPS при разрешении выше 320x240 и 120 FPS, когда оно ниже.

Датчик устанавливается за объективом 2,8 мм с использованием стандартного крепления объектива M12, также иногда известного как «S-крепление», которое обычно используется для систем видеонаблюдения и дешевых веб-камер. Это означает, что если вы хотите использовать другую или более специализированную линзу с платой, вы можете заменить линзу по умолчанию и прикрепить ее.

Мы уже видели обученные сети на периферийных устройствах, я подробно рассказывал о них здесь, в блоге Hackster, и в мясном пространстве на конференциях O'Reilly's AI и Strata, а также на конференции Crowd Supply's Teardown. .

Однако пошаговое руководство OpenMV о том, как обучить модель в Caffe, затем квантовать ее для использования с библиотекой CMSIS-NN и развернуть на маломощном оборудовании, - это первый раз, когда я увидел, что весь процесс завершен. с поклоном. Если вы заинтересованы в приближении к вашим данным обученных сетей, это хорошее место для начала.

Возможность запускать обученные сети ближе к данным - без облачной поддержки, которая в наши дни кажется необходимой почти для каждой задачи, или даже в некоторых случаях даже без сетевого подключения - может помочь снизить барьеры для разработки, настройки и развертывания приложений машинного обучения. Это потенциально может помочь сделать «умные объекты» действительно умными, а не просто подключенных к сети клиентов для алгоритмов машинного обучения, работающих в удаленных центрах обработки данных. Фактически, это может стать началом кардинальных изменений в том, как мы думаем о машинном обучении и о том, как можно построить Интернет вещей. Потому что теперь есть - по крайней мере, потенциал - чтобы позволить нам размещать умные устройства на интеллектуальном устройстве, а не в облаке.

Недавние скандалы и слухи вокруг неправомерного использования данных, собранных из социальных сетей, выявили давние проблемы, связанные с конфиденциальностью и неправомерным использованием данных, в то время как GDPR в Европе ужесточил ограничения на обмен данными. Тем не менее, новое поколение встраиваемых устройств, появление Интернета вещей может привести к полному прекращению крупномасштабного сбора данных. Вместо этого интеллектуальные устройства позволят нам обрабатывать данные на периферии, используя машинное обучение для интерпретации самого гибкого датчика, который у нас есть, - камеры.

Интерпретация данных камеры в режиме реального времени и их абстрагирование в виде сигналов, а не изображений, позволит нам извлекать ценные сведения из данных, не сохраняя данные, потенциально нарушающие конфиденциальность и GDPR. Хотя потоки данных в социальных сетях предоставляют «просмотры», много сигналов, они дают мало информации. Обработка изображений с использованием моделей машинного обучения на периферии на потенциально не подключенных к сети встроенных устройствах позволит нам в реальном времени получать обратную связь с окружающей средой, замыкая цикл без крупномасштабного сбора данных, который стал настолько распространенным.

В конце концов, нам все равно не нужны данные, нам нужны действия, которые они могут генерировать. Информация о нашей среде более полезна, чем данные, предназначенные только для записи, которые собираются и хранятся в дождливый день.