Categories
DIY

DeepStack – medium rare

уже получается, что нужно бы вернуться в рабочее и продуктивное русло, но что-то не случается, все еще. Тем не менее, мозг уже начинает намекать на то, что пора начинать писать то, что никому и никогда не пригодится.

А в голове звучит ответ:

Съеби в туман, запутай след!

И никаких последствий нет

Съеби в туман, запутай след!

Пневмослон

В целом, уже получается, что нужно бы вернуться в рабочее и продуктивное русло, но что-то не случается, все еще. Тем не менее, мозг уже начинает намекать на то, что пора начинать писать то, что никому и никогда не пригодится.

Сегодня такой темой окажется, пожалуй, DeepStack и прочие прелести распознования картинок, которые можно натянуть на глобус, а точнее на HomeAssisstant.

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

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

Поигравшись, посмотрев, что, оно и правда что-то умеет – идея ушла в дальний ящик на, где-то, год. Идея вернулась в голову, когда появились дешевые ESP32-CAM в арсенале – в этот раз получилось сделать так, чтобы в относительном реалтайме получалась картинка, и, ее, неожиданно, появилась идея обрабатывать это и распозновать предметы.

В этот раз было выбрано решение, которые называется Deepstack. В целом, задачи стояли такие – чтобы к этому можно было подключиться через API и попробовать обрабатывать катинки в режиме клиент-сервера, во-вторых, хотелось подсобрать статистику посещения различных помещений.

Пример определения через веб морду

Как некоторый механизм упрощения развертывания и понимания механизма работы заодно развернул веб-морду, сделанную миром открытого исходного кода.

version: '3.3'

services:
   deepstack:
        container_name: deepstack
        image: deepquestai/deepstack:latest
        volumes:
           - /docker/deepstack:/datastore
        ports:
           - 5000:5000
        restart: always
        environment:
            - VISION-FACE=True
            - VISION-DETECTION=True
        networks:
           deepstack:
              ipv4_address: 172.50.0.3
   deepstackui:
        container_name: deepstack_ui
        image: robmarkcole/deepstack-ui:latest
        ports:
           - 8501:8501
        restart: always
        environment:
            - DEEPSTACK_TIMEOUT=100
            - DEEPSTACK_IP=172.50.0.3
            - DEEPSTACK_PORT=5000
        networks:
           deepstack:
              ipv4_address: 172.50.0.2
networks:
  deepstack:
    driver: bridge
    ipam:
     config:
       - subnet: 172.50.0.0/16

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

Собака

Например, можно считать количество людей в комнатах. Очевидно, что для того, чтобы результат был бы похож на результат – нужно настроить пределы точности, разобраться со светом, правильно поставить камеры, но с другой стороны – и так ничего. Как PoC.

Пример наполняемости комнаты в зависимости от времени.

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

Среди всего прочего возникла потребность весь этот балаган кроме того, что скрестить, так еще и, допустим, закрепить таким образом, чтобы это были не просто провода растянутые по всей кваритре, а еще и некоторая эстетика.

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

Заодно освоено использование таких магических инструментов Автоматизированного Проектирования как Autocad Fusion. Прямо чортова магия.

Думаю, что остальные детали этого удивительного приключения раскрою позже, но тем не менее выводом из радостного похода на две веселые буквы (CV) будет – можно. Можно сделать дешево, можно сделать опенсорсно. Вопрос только один – а нужно ли?

By khabradmin

Зачем это здесь? Почему это здесь? Кто это читает? Автор этого бложека задает себе те же самые вопросы. Ответ прост: потому что. В силу того, что khabradmin причастен к IT, домен пародирует habr.ru. В силу того, что автор много фотографирует, контент совершенно иного свойства. Суть писанины в том, что хочется писать. А вот писать в соц. сетях утомительно и глупо, поэтому комментариев тут нет. Приятного чтения, если получится