提交 f2e327cc authored 作者: blu's avatar blu

human detection: region

上级 c1953038
[Unit]
Description=evdaemon manages edge evsuits
# #for wifi only
After=evwifi.service
# After=evwifi.service
# #for eth0 only
# After=network-online.target
# Wants=network-online.target
After=network-online.target
Wants=network-online.target
# #for both
# After=network-online.target evwifi.service
# Wants=network-online.target evwifi.service
......
......@@ -4,6 +4,7 @@ from cerberus import schema_registry, Validator
from celery import Celery
from azure.storage.fileshare import ShareFileClient
import random
import pika
import requests
import os
import yaml
......@@ -65,12 +66,31 @@ binPrefix = os.getenv('BIN_PRE', '')
configDir = os.getenv('CFG_DIR', workd)
API_HOST = None
API_CAMERA_CFG_URI = "/video/analysis/camera/{}/model"
RABBITMQ_TOPIC = None
RABBITMQ_URI = os.getenv("RABB_ADDR", None)
RABBITMQ_TOPIC = os.getenv("RABB_TOPIC", "*.camera.model")
RABBITMQ_EXHANGE = os.getenv("RABB_EXC", "video")
CAMERA_CONFIG_MAP = {}
rabChan = None
if RABBITMQ_URI:
parameters = pika.URLParameters(RABBITMQ_URI) #("amqp://ilabservice:iLabServiceOps123456@40.73.40.246:5672/")
connection = pika.BlockingConnection(parameters)
rabChan = connection.channel()
rabChan.exchange_declare(exchange=RABBITMQ_EXHANGE, exchange_type="topic")
rabChan.queue_declare(queue=RABBITMQ_TOPIC, durable=False)
rabChan.queue_bind(exchange=RABBITMQ_EXHANGE,
queue=RABBITMQ_TOPIC)
rabChan.basic_consume(
queue=RABBITMQ_TOPIC, on_message_callback=rabCallback, auto_ack=True)
print("CONFIG: \n\tMQTT: {}:{}\n\tBIN_NAME: {}".format(
MQTT_HOST, MQTT_PORT, binName))
def rabCallback(ch, method, prop, body):
pass
def downloadFile(ipcSn, dirName, fileName, destDir):
file_path = ipcSn + '/'+dirName+'/'+fileName
......@@ -152,7 +172,6 @@ worker.conf.update(
# timezone='Europe/Oslo',
enable_utc=True)
def take_task(task):
ret = {'code': 0, 'msg': 'ok'}
print("taking task", json.dumps(task))
......@@ -192,20 +211,29 @@ def video_analysis(data):
workd) + '/' + ipcSN, strRand)
os.system('mkdir -p ' + downloadDir)
downloadFile(ipcSN, dirName, fileName, downloadDir)
region = None
if ipcSN in CAMERA_CONFIG_MAP:
region = CAMERA_CONFIG_MAP[ipcSN]['region']
else:
res = requests.get(API_HOST + API_CAMERA_CFG_URI)
try:
if res.status_code == 200:
pass
if "region" in res.json():
region = res.json()["region"]
CAMERA_CONFIG_MAP[ipcSN] = res.json()
except Exception as e:
print("failed to get camera config {}: {}".format(ipcSN, e))
print("downloaded file {} into {}".format(fileName, downloadDir))
# analyze
#cmdLine = '/Users/blu/work/opencv-projects/opencv-yolo/detector /Users/blu/work/opencv-projects/opencv-yolo/web/1550143347000-1577267418999.mp4 -c /Users/blu/work/opencv-projects/opencv-yolo/'
prefix = binPrefix + ' ' if binPrefix else binPrefix
cmdLine = prefix + workd + '/' + binName + ' ' + downloadDir + \
fileName + ' -c ' + configDir + ' -o ' + downloadDir + '/detect.jpg'
if region:
cmdLine += "-s {},{},{},{}".format(region['minX'], region['minY'], region['maxX'], region['maxY'])
else:
print("no region config")
cmdArgs = shlex.split(cmdLine)
print(cmdLine, '\n\n', cmdArgs)
output = subprocess.check_output(cmdArgs)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论