Запуск скрипта OpenVINO Python при загрузке для Raspberry PI - PullRequest
2 голосов
/ 27 февраля 2020

Я использую Raspberry Pi 3 Model B Rev 1.2 под управлением Raspbian 10 (Buster). Я хочу запустить сценарий python при запуске, который использует OpenVINO и OpenCV для обнаружения объектов и отображения потока с веб-камеры.

Я создал сценарий оболочки launcher.sh, содержащий

#!/bin/sh

/opt/inte/openvino/bin/setupvars.sh
/usr/bin/python3 /home/pi/project/run.py

Я запустил $ chmod 775 launcher.sh и подтвердил, что скрипт работает с $ sh launcher.sh.

Чтобы запустить скрипт при запуске, я использовал $ sudo crontab -e и добавил @reboot sh /home/pi/project/launcher.sh >/home/pi/logs/cronlog 2>&1 в конец.

Скрипт запускается при перезагрузке. Журналы показывают, что среда OpenVINO инициализирована , но в журналах также указывается, что я получил ModuleNotFoundError: Нет модуля с именем 'openvino'. Я предполагаю, что это работает, только когда я запускаю его из терминала, потому что у меня bash .r c каждый раз настраивается env OpenVINO.

Что я делаю неправильно? Есть ли лучший способ сделать это на Бастере?

Ответы [ 2 ]

1 голос
/ 12 марта 2020

Благодаря Mauricio.R от Intel я смог найти правильное решение.

  1. Создайте скрипт, который инициализирует OpenVINO и запускает мой python скрипт, используя nano ~/openvino-app-script с содержимым:
   #!/bin/bash
   source /opt/intel/openvino/bin/setupvars.sh     
   /usr/bin/python3 /path/to/script/run.py

Измените разрешения и владельца сценария bash с помощью chmod u+x ~/openvino-app-script. Вы должны убедиться, что этот скрипт работает, запустив его с bash ./openvino-app-script

Создать файл службы, используя sudo nano /etc/systemd/system/openvino-app.service с содержимым

    [Unit]
    Description=OpenVINO Python Script
    After=network.target

    [Service]
    Environment="DISPLAY=:0"
    Environment="XAUTHORITY=/home/pi/.Xauthority"
    ExecStart=/home/pi/openvino-app-script
    WorkingDirectory=/home/pi
    StandardOutput=inherit
    StandardError=inherit
    Restart=on-failure
    User=pi

    [Install]
    WantedBy=graphical.target
Активируйте услугу с помощью sudo systemctl enable openvino-app.service

Вы можете проверить статус или отключить услугу, изменив enable на disable или status

Это решение работает отлично подходит для моего проекта, который отображает видеопоток с наложением с использованием OpenCV и выполняет вывод с использованием NCS.

1 голос
/ 28 февраля 2020

Мне не удалось решить указанную проблему c, но мне удалось найти способ запустить мой скрипт при загрузке.

Я добавил следующие строки в конец моего .bashr c,

source /opt/intel/openvino/bin/setupvars.sh
cd /home/pi/project
python3 run.py 
cd 

, чтобы инициализировать среду OpenVINO и запускать мой скрипт при каждом открытии нового терминала, а затем я заставил LXTerminal запускаться при загрузке, добавив @lxterminal в конец / etc / xdg / lxsession / LXDE-pi / autostart.

Это довольно хакерский способ сделать это и нецелесообразным, если вы планируете использовать Pi для чего-то еще. Любой совет все равно будет оценен

...