mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 21:46:30 +00:00
62623b7123
rewrite zmq to DEALER and ROUTER add GET_USER command to get CurrentUser from Python all auth is on the python side inference run and validate annotations on python
36 lines
1.1 KiB
Cython
36 lines
1.1 KiB
Cython
import msgpack
|
|
|
|
cdef class Detection:
|
|
def __init__(self, double x, double y, double w, double h, int cls, double confidence):
|
|
self.x = x
|
|
self.y = y
|
|
self.w = w
|
|
self.h = h
|
|
self.cls = cls
|
|
self.confidence = confidence
|
|
|
|
def __str__(self):
|
|
return f'{self.cls}: {self.x:.2f} {self.y:.2f} {self.w:.2f} {self.h:.2f}, prob: {(self.confidence*100):.1f}%'
|
|
|
|
cdef class Annotation:
|
|
def __init__(self, bytes image_bytes, long time, list[Detection] detections):
|
|
self.image = image_bytes
|
|
self.time = time
|
|
self.detections = detections if detections is not None else []
|
|
|
|
cdef bytes serialize(self):
|
|
return msgpack.packb({
|
|
"i": self.image, # "i" = image
|
|
"t": self.time, # "t" = time
|
|
"d": [ # "d" = detections
|
|
{
|
|
"x": det.x,
|
|
"y": det.y,
|
|
"w": det.w,
|
|
"h": det.h,
|
|
"c": det.cls,
|
|
"p": det.confidence
|
|
} for det in self.detections
|
|
]
|
|
})
|