Commit 91074b9a authored by Sikhin VC's avatar Sikhin VC

added server API endpoints

parent c673cc3f
Pipeline #69235 canceled with stage
FROM jk:v1 FROM jk:v1
RUN pip install loguru
ADD . /app ADD . /app
WORKDIR /app WORKDIR /app
......
import os
# os.environ["config"]="{\"deployment ID\": \"jkv1_dba3e4e8\"}"
from edge_engine.edge_processor import ExecutePipeline from edge_engine.edge_processor import ExecutePipeline
from edge_engine.edge_processor import Pubs from edge_engine.edge_processor import Pubs
from scripts import CementBagCounter from scripts import CementBagCounter
......
...@@ -4,7 +4,7 @@ from dateutil import parser ...@@ -4,7 +4,7 @@ from dateutil import parser
from datetime import datetime from datetime import datetime
import json import json
import requests import requests
from loguru import logger
def licence_validator(payload): def licence_validator(payload):
try: try:
...@@ -29,7 +29,7 @@ BASE_LOG_PATH = os.environ.get('BASE_LOG_PATH', ...@@ -29,7 +29,7 @@ BASE_LOG_PATH = os.environ.get('BASE_LOG_PATH',
if not os.path.isdir(BASE_LOG_PATH): if not os.path.isdir(BASE_LOG_PATH):
os.mkdir(BASE_LOG_PATH) os.mkdir(BASE_LOG_PATH)
CONFIG_ENV = json.loads(os.environ.get('config', default=None)) CONFIG_ENV = json.loads(os.environ.get('config', default=None))
DEPLOYMENT_ID = CONFIG_ENV.get('DEPLOYMENT_ID',None) DEPLOYMENT_ID = CONFIG_ENV.get('DEPLOYMENT_ID',None)
GET_JANUS_DETAILS = CONFIG_ENV.get('GET_JANUS_DETAILS',None) GET_JANUS_DETAILS = CONFIG_ENV.get('GET_JANUS_DETAILS',None)
MONGO_URI_ADD_EVENTLOGS = CONFIG_ENV.get('MONGO_URI',None) MONGO_URI_ADD_EVENTLOGS = CONFIG_ENV.get('MONGO_URI',None)
...@@ -38,8 +38,7 @@ EDGE_CONFIG = requests.get(url).json()["data"] ...@@ -38,8 +38,7 @@ EDGE_CONFIG = requests.get(url).json()["data"]
LAST_COUNT = requests.get(url).json()["latest_count"] LAST_COUNT = requests.get(url).json()["latest_count"]
if not LAST_COUNT: if not LAST_COUNT:
LAST_COUNT = 0 LAST_COUNT = 0
logger.info(f"RESPONSE {requests.get(url).json()}") DEVICE_ID = EDGE_CONFIG["deviceId"]
DEVICE_ID = EDGE_CONFIG["deviceId"]
DATA_PATH = EDGE_CONFIG["inputConf"].get('dataPath',os.path.join(os.getcwd(), "data".format())) DATA_PATH = EDGE_CONFIG["inputConf"].get('dataPath',os.path.join(os.getcwd(), "data".format()))
sys.stderr.write("Loading data from {} \n".format(DATA_PATH)) sys.stderr.write("Loading data from {} \n".format(DATA_PATH))
\ No newline at end of file
import base64 import base64
from datetime import datetime from datetime import datetime
import time
from collections import deque from collections import deque
from uuid import uuid4
import cv2 import cv2
import numpy as np import numpy as np
from edge_engine.ai.model.modelwraper import ModelWrapper from edge_engine.ai.model.modelwraper import ModelWrapper
from edge_engine.common.logsetup import logger from edge_engine.common.logsetup import logger
from expiringdict import ExpiringDict from expiringdict import ExpiringDict
from scripts.common.config import MONGO_URI
from scripts.common.constants import JanusDeploymentConstants from scripts.common.constants import JanusDeploymentConstants
from scripts.utils.centroidtracker import CentroidTracker from scripts.utils.centroidtracker import CentroidTracker
# from scripts.utils.edge_utils import get_extra_fields
from scripts.utils.helpers import box_iou2 from scripts.utils.helpers import box_iou2
from scripts.utils.image_utils import draw_circles_on_frame, resize_to_64_64 from scripts.utils.image_utils import draw_circles_on_frame
from scripts.utils.infocenter import MongoLogger
from scripts.utils.tracker import Tracker from scripts.utils.tracker import Tracker
from scripts.utils.yolov5_trt import YoloV5TRT from scripts.utils.yolov5_trt import YoloV5TRT
from scipy.optimize import linear_sum_assignment as linear_assignment from scipy.optimize import linear_sum_assignment as linear_assignment
...@@ -332,9 +326,7 @@ class CementBagCounter(ModelWrapper): ...@@ -332,9 +326,7 @@ class CementBagCounter(ModelWrapper):
img2 = cv2.resize(img2, (64, 64)) img2 = cv2.resize(img2, (64, 64))
bs64 = str(base64.b64encode(img2).decode('utf-8')) # Changed this line. converted byte to string bs64 = str(base64.b64encode(img2).decode('utf-8')) # Changed this line. converted byte to string
json = {"eventId": str(uuid1()).split('-')[0], "cameraId": EDGE_CONFIG['deviceId'], "cameraName": EDGE_CONFIG['deviceId'], "timestamp": datetime.isoformat(datetime.now()), "frame": bs64, "cement_bag_count": str(self.count)} json = {"eventId": str(uuid1()).split('-')[0], "cameraId": EDGE_CONFIG['deviceId'], "cameraName": EDGE_CONFIG['deviceId'], "timestamp": datetime.isoformat(datetime.now()), "frame": bs64, "cement_bag_count": str(self.count)}
logger.info(f"json is {json}") requests.post(url=MONGO_URI_ADD_EVENTLOGS, json=json)
response = requests.post(url=MONGO_URI_ADD_EVENTLOGS, json=json)
logger.info(f"response is : {response.text}")
logger.info(f"Count: {self.count}") logger.info(f"Count: {self.count}")
frame = draw_circles_on_frame( frame = draw_circles_on_frame(
frame, centroid, radius=10, color=(0, 255, 0), thickness=-1 frame, centroid, radius=10, color=(0, 255, 0), thickness=-1
...@@ -437,12 +429,13 @@ class CementBagCounter(ModelWrapper): ...@@ -437,12 +429,13 @@ class CementBagCounter(ModelWrapper):
in in
zip(result_boxes, result_scores, result_classid)] zip(result_boxes, result_scores, result_classid)]
# TRT Additions stop # TRT Additions stop
#adding logic to avoid double detections
class_name = list() class_name = list()
bboxs = [] bboxs = []
if dets: if dets:
# adding logic to avoid double detections
dets, frame = self.overlapping_removal(frame, dets) dets, frame = self.overlapping_removal(frame, dets)
for i in dets: for i in dets:
class_name.append(i["class"]) class_name.append(i["class"])
...@@ -452,18 +445,6 @@ class CementBagCounter(ModelWrapper): ...@@ -452,18 +445,6 @@ class CementBagCounter(ModelWrapper):
return bboxs, frame, dets, class_name return bboxs, frame, dets, class_name
# def _analyse_image(self, frame):
# try:
#
# dets, frame, _dets, class_name = self.inference(frame)
# frame, objects, boxs = self.kalman_tracker(dets, frame)
# frame = self.update_bag_count(frame=frame, detection_objects=objects, class_name=class_name,
# detections=_dets)
# logger.debug("self.uncounted_objects --> {}".format(self.uncounted_objects))
#
# except Exception as e:
# logger.exception(f"Error: {e}", exc_info=True)
def _predict(self, obj): def _predict(self, obj):
try: try:
frame = obj['frame'] frame = obj['frame']
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment