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

human detection: region

上级 c1953038
[Unit] [Unit]
Description=evdaemon manages edge evsuits Description=evdaemon manages edge evsuits
# #for wifi only # #for wifi only
After=evwifi.service # After=evwifi.service
# #for eth0 only # #for eth0 only
# After=network-online.target After=network-online.target
# Wants=network-online.target Wants=network-online.target
# #for both # #for both
# After=network-online.target evwifi.service # After=network-online.target evwifi.service
# Wants=network-online.target evwifi.service # Wants=network-online.target evwifi.service
......
...@@ -4,6 +4,7 @@ from cerberus import schema_registry, Validator ...@@ -4,6 +4,7 @@ from cerberus import schema_registry, Validator
from celery import Celery from celery import Celery
from azure.storage.fileshare import ShareFileClient from azure.storage.fileshare import ShareFileClient
import random import random
import pika
import requests import requests
import os import os
import yaml import yaml
...@@ -65,12 +66,31 @@ binPrefix = os.getenv('BIN_PRE', '') ...@@ -65,12 +66,31 @@ binPrefix = os.getenv('BIN_PRE', '')
configDir = os.getenv('CFG_DIR', workd) configDir = os.getenv('CFG_DIR', workd)
API_HOST = None API_HOST = None
API_CAMERA_CFG_URI = "/video/analysis/camera/{}/model" 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 = {} 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( print("CONFIG: \n\tMQTT: {}:{}\n\tBIN_NAME: {}".format(
MQTT_HOST, MQTT_PORT, binName)) MQTT_HOST, MQTT_PORT, binName))
def rabCallback(ch, method, prop, body):
pass
def downloadFile(ipcSn, dirName, fileName, destDir): def downloadFile(ipcSn, dirName, fileName, destDir):
file_path = ipcSn + '/'+dirName+'/'+fileName file_path = ipcSn + '/'+dirName+'/'+fileName
...@@ -152,7 +172,6 @@ worker.conf.update( ...@@ -152,7 +172,6 @@ worker.conf.update(
# timezone='Europe/Oslo', # timezone='Europe/Oslo',
enable_utc=True) enable_utc=True)
def take_task(task): def take_task(task):
ret = {'code': 0, 'msg': 'ok'} ret = {'code': 0, 'msg': 'ok'}
print("taking task", json.dumps(task)) print("taking task", json.dumps(task))
...@@ -192,20 +211,29 @@ def video_analysis(data): ...@@ -192,20 +211,29 @@ def video_analysis(data):
workd) + '/' + ipcSN, strRand) workd) + '/' + ipcSN, strRand)
os.system('mkdir -p ' + downloadDir) os.system('mkdir -p ' + downloadDir)
downloadFile(ipcSN, dirName, fileName, 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) res = requests.get(API_HOST + API_CAMERA_CFG_URI)
try: try:
if res.status_code == 200: 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: except Exception as e:
print("failed to get camera config {}: {}".format(ipcSN, e)) print("failed to get camera config {}: {}".format(ipcSN, e))
print("downloaded file {} into {}".format(fileName, downloadDir)) print("downloaded file {} into {}".format(fileName, downloadDir))
# analyze # 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/' #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 prefix = binPrefix + ' ' if binPrefix else binPrefix
cmdLine = prefix + workd + '/' + binName + ' ' + downloadDir + \ cmdLine = prefix + workd + '/' + binName + ' ' + downloadDir + \
fileName + ' -c ' + configDir + ' -o ' + downloadDir + '/detect.jpg' 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) cmdArgs = shlex.split(cmdLine)
print(cmdLine, '\n\n', cmdArgs) print(cmdLine, '\n\n', cmdArgs)
output = subprocess.check_output(cmdArgs) output = subprocess.check_output(cmdArgs)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论