Введение
Google Coral (Edge TPU) — это специализированный ускоритель для выполнения нейросетевых моделей на периферии. В отличие от облачных решений, Coral обрабатывает видео и изображения локально, без задержек сети и с минимальным энергопотреблением. Однако «сырые» детекции — это лишь половина дела. Чтобы превратить распознанные объекты в действия: учёт посетителей, контроль брака на конвейере, включение света при появлении человека — нужен интеллектуальный координатор.
ASI Biont — AI-агент, который подключается к любому устройству через диалог в чате. Вместо того чтобы вручную писать связку «Coral → брокер → логика → уведомления», вы просто описываете задачу, и ASI Biont генерирует весь код интеграции. В этой статье — пошаговое руководство по объединению Google Coral и ASI Biont через MQTT и SSH.
Зачем подключать Google Coral к ASI Biont?
Google Coral (USB Accelerator или Dev Board) позволяет запускать модели TensorFlow Lite с частотой до 4 TOPS. Это идеально для:
- детекции объектов в видеопотоке (люди, автомобили, дефекты);
- классификации изображений;
- сегментации и оценки позы.
Но без «мозга» за пределами камеры результаты остаются локальными. ASI Biont добавляет:
- централизованную логику — анализ трендов, принятие решений на основе детекций;
- автоматизацию — отправку уведомлений в Telegram, управление реле, запись в базу данных;
- многозадачность — один агент может одновременно слушать несколько Coral-устройств.
Способы подключения: SSH и MQTT
ASI Biont поддерживает десятки протоколов промышленной автоматизации. Для Google Coral наиболее эффективны два:
1. SSH (через paramiko в execute_python)
Позволяет AI-агенту выполнять команды на Coral: устанавливать пакеты, запускать скрипты, обновлять модели. Пользователь передаёт IP, логин и пароль — AI генерирует код для подключения и удалённого управления.
2. MQTT (через paho-mqtt в execute_python)
Основной канал передачи данных. Coral публикует результаты детекции в топик, ASI Biont подписывается и обрабатывает сообщения. Для обратной связи (например, включить свет) AI использует industrial_command с протоколом mqtt и командой publish.
Также ASI Biont может подключиться к Coral через HTTP API (если на Coral запущен веб-сервер), но MQTT — самый лёгкий и надёжный вариант для потоковых данных.
Сценарий: умный учёт посетителей в магазине
Разберём реальный кейс. В небольшом розничном магазине установлена камера, подключённая к Raspberry Pi 4 с Coral USB Accelerator. Задача:
- детектировать людей, проходящих через вход;
- вести ежедневную статистику;
- при превышении порога (например, >50 человек в час) отправлять предупреждение администратору в Telegram.
Шаг 1. Подготовка Google Coral
На Coral (Raspberry Pi с Edge TPU) нужно установить библиотеки и загрузить модель. Пользователь может попросить ASI Biont:
«Зайди по SSH на 192.168.1.100 (логин: pi, пароль: raspberry), установи пакеты
edgetpu-api,paho-mqtt,opencv-python, и создай скрипт для детекции людей с публикацией в MQTT».
AI сгенерирует и выполнит следующий код через execute_python (с использованием paramiko):
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.1.100', username='pi', password='raspberry')
commands = [
'pip install edgetpu-api paho-mqtt opencv-python',
'wget -O /home/pi/detect_people.py https://example.com/detect_people.py'
]
for cmd in commands:
stdin, stdout, stderr = ssh.exec_command(cmd)
print(stdout.read().decode())
ssh.close()
(В реальности AI сам напишет полный скрипт detect_people.py, ниже приведём его упрощённую версию)
Шаг 2. Скрипт на Coral (публикация детекций в MQTT)
# detect_people.py — запускается на Coral
import cv2
from edgetpu.detection.engine import DetectionEngine
import paho.mqtt.client as mqtt
import json
# Настройки
MQTT_BROKER = '192.168.1.200' # адрес MQTT-брокера (может быть Raspberry Pi или облако)
MQTT_TOPIC = 'coral/detections'
MODEL = 'mobilenet_ssd_v2_coco_quant_postprocess_edgetpu.tflite'
LABELS = 'coco_labels.txt'
engine = DetectionEngine(MODEL)
cap = cv2.VideoCapture(0)
client = mqtt.Client()
client.connect(MQTT_BROKER)
while True:
ret, frame = cap.read()
if not ret:
break
# Детекция
results = engine.detect_with_image(frame, threshold=0.5, top_k=10)
persons = [r for r in results if r.label_id == 0] # COCO: person id=0
if persons:
payload = {'count': len(persons), 'timestamp': time.time()}
client.publish(MQTT_TOPIC, json.dumps(payload))
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
client.disconnect()
Шаг 3. Интеграция с ASI Biont через диалог
Пользователь в чате ASI Biont пишет:
«Подключись к MQTT-брокеру 192.168.1.200, подпишись на топик coral/detections, считай количество людей за последний час, и если превысит 50 — отправь предупреждение в Telegram».
AI генерирует и выполняет следующий код в execute_python (с таймаутом 30 секунд, но для демонстрации — обработка одного сообщения):
import paho.mqtt.client as mqtt
import json
import time
import requests
TELEGRAM_TOKEN = 'ваш_токен'
CHAT_ID = 'ваш_chat_id'
def on_message(client, userdata, msg):
data = json.loads(msg.payload)
count = data.get('count', 0)
# Здесь может быть накопление статистики
if count > 50:
requests.post(f'https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage',
json={'chat_id': CHAT_ID, 'text': f'⚠️ Обнаружено {count} человек!'})
print(f'Получено: {count} человек')
client = mqtt.Client()
client.on_message = on_message
client.connect('192.168.1.200')
client.subscribe('coral/detections')
client.loop_start()
time.sleep(10) # слушаем 10 секунд
client.loop_stop()
client.disconnect()
После выполнения AI предоставляет пользователю отчёт: «Подключение установлено. При получении более 50 человек отправлено уведомление в Telegram.»
Шаг 4. Обратная связь (управление через MQTT)
Если нужно, например, включить реле при детекции человека, AI использует industrial_command:
industrial_command(
protocol='mqtt',
command='publish',
topic='coral/commands',
message='{"relay": 1, "state": "on"}'
)
Эта команда отправляется напрямую из чата, и скрипт на Coral, подписанный на coral/commands, выполняет нужное действие.
Другие сценарии интеграции
Контроль качества на производстве
- Устройство: Google Coral Dev Board с камерой, направленной на конвейер.
- Модель: обучена на дефектах продукции (царапины, сколы).
- Интеграция: Coral публикует в MQTT топик
factory/defectsс координатами брака. ASI Biont подписывается, записывает дефекты в PostgreSQL и при превышении процента брака останавливает конвейер через Modbus/TCP (industrial_command с протоколом Modbus).
Умный дом с детекцией присутствия
- Устройство: несколько Coral USB Accelerator на Raspberry Pi, разбросанных по дому.
- Задача: определять, в какой комнате находятся люди, и автоматически регулировать освещение.
- Интеграция: каждый Coral публикует данные в общий MQTT брокер. ASI Biont анализирует, кто где, и отправляет команды на умные лампы через HTTP API (execute_python с aiohttp).
Почему это выгодно?
Обычно интеграция Coral с внешними системами требует написания нескольких тысяч строк кода: настройка MQTT-клиента, парсинг, бизнес-логика, интеграция с уведомлениями. ASI Biont берёт эту работу на себя:
- Не нужно программировать вручную — опишите задачу на естественном языке;
- Готовая библиотека протоколов — paho-mqtt, paramiko, pymodbus, aiohttp уже предустановлены в sandbox;
- Мгновенная проверка — AI выполняет код и сразу видит результат;
- Масштабируемость — добавление нового Coral-устройства сводится к фразе «подключи ещё один Coral по MQTT».
Заключение
Google Coral — мощный инструмент for on-device ML, но его потенциал раскрывается только в связке с интеллектуальным агентом. ASI Biont позволяет за несколько минут построить готовое решение: от прототипа до промышленной автоматизации.
Попробуйте сами: зайдите на asibiont.com, создайте API-ключ, скачайте bridge (если нужен COM-порт) и просто опишите в чате, к какому устройству подключиться. ASI Biont напишет код за вас.
Использованные источники:
- Google Coral Official Documentation
- TensorFlow Lite on Edge TPU
- MQTT Protocol Specification
- Paho MQTT Python Client
Комментарии