-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Explore CVAT serverless implementation, and design our knative implementation #735
Comments
CVAT kicks off the serverless piece with an HTTP request (trigger)
CVAT deploys the functions for Nuclio with
Nuclio, for k8s, converts the code into an image, CRD in k8s, and relevant resources in k8s (ingress, deployment, services)
CVAT has
|
@rushtehrani This is the response for the "models" page in CVAT. Some comments on the fields:
The request is simple [
{
"id": "openvino.dextr",
"kind": "interactor",
"labels": [],
"state": "ready",
"description": "Deep Extreme Cut",
"framework": "openvino",
"name": "DEXTR"
},
{
"id": "openvino.omz.intel.person-reidentification-retail-0300",
"kind": "reid",
"labels": [],
"state": "ready",
"description": "Person reidentification model for a general scenario",
"framework": "openvino",
"name": "Person reidentification"
},
{
"id": "openvino.omz.intel.text-detection-0004",
"kind": "detector",
"labels": [
"text"
],
"state": "ready",
"description": "Text detector based on PixelLink architecture with MobileNetV2-like as a backbone for indoor/outdoor scenes.",
"framework": "openvino",
"name": "Text detection v4"
},
{
"id": "openvino.omz.public.faster_rcnn_inception_v2_coco",
"kind": "detector",
"labels": [
"person",
"bicycle",
"car",
"motorcycle",
"airplane",
"bus",
"train",
"truck",
"boat",
"traffic_light",
"fire_hydrant",
"stop_sign",
"parking_meter",
"bench",
"bird",
"cat",
"dog",
"horse",
"sheep",
"cow",
"elephant",
"bear",
"zebra",
"giraffe",
"backpack",
"umbrella",
"handbag",
"tie",
"suitcase",
"frisbee",
"skis",
"snowboard",
"sports_ball",
"kite",
"baseball_bat",
"baseball_glove",
"skateboard",
"surfboard",
"tennis_racket",
"bottle",
"wine_glass",
"cup",
"fork",
"knife",
"spoon",
"bowl",
"banana",
"apple",
"sandwich",
"orange",
"broccoli",
"carrot",
"hot_dog",
"pizza",
"donut",
"cake",
"chair",
"couch",
"potted_plant",
"bed",
"dining_table",
"toilet",
"tv",
"laptop",
"mouse",
"remote",
"keyboard",
"cell_phone",
"microwave",
"oven",
"toaster",
"sink",
"refrigerator",
"book",
"clock",
"vase",
"scissors",
"teddy_bear",
"hair_drier",
"toothbrush"
],
"state": "ready",
"description": "Faster RCNN inception v2 COCO via Intel OpenVINO toolkit",
"framework": "openvino",
"name": "Faster RCNN"
},
{
"id": "openvino.omz.public.mask_rcnn_inception_resnet_v2_atrous_coco",
"kind": "detector",
"labels": [
"person",
"bicycle",
"car",
"motorcycle",
"airplane",
"bus",
"train",
"truck",
"boat",
"traffic_light",
"fire_hydrant",
"stop_sign",
"parking_meter",
"bench",
"bird",
"cat",
"dog",
"horse",
"sheep",
"cow",
"elephant",
"bear",
"zebra",
"giraffe",
"backpack",
"umbrella",
"handbag",
"tie",
"suitcase",
"frisbee",
"skis",
"snowboard",
"sports_ball",
"kite",
"baseball_bat",
"baseball_glove",
"skateboard",
"surfboard",
"tennis_racket",
"bottle",
"wine_glass",
"cup",
"fork",
"knife",
"spoon",
"bowl",
"banana",
"apple",
"sandwich",
"orange",
"broccoli",
"carrot",
"hot_dog",
"pizza",
"donut",
"cake",
"chair",
"couch",
"potted_plant",
"bed",
"dining_table",
"toilet",
"tv",
"laptop",
"mouse",
"remote",
"keyboard",
"cell_phone",
"microwave",
"oven",
"toaster",
"sink",
"refrigerator",
"book",
"clock",
"vase",
"scissors",
"teddy_bear",
"hair_drier",
"toothbrush"
],
"state": "ready",
"description": "Mask RCNN inception resnet v2 COCO via Intel OpenVINO",
"framework": "openvino",
"name": "Mask RCNN"
},
{
"id": "openvino.omz.public.yolo-v3-tf",
"kind": "detector",
"labels": [
"person",
"bicycle",
"car",
"motorbike",
"aeroplane",
"bus",
"train",
"truck",
"boat",
"traffic light",
"fire hydrant",
"stop sign",
"parking meter",
"bench",
"bird",
"cat",
"dog",
"horse",
"sheep",
"cow",
"elephant",
"bear",
"zebra",
"giraffe",
"backpack",
"umbrella",
"handbag",
"tie",
"suitcase",
"frisbee",
"skis",
"snowboard",
"sports ball",
"kite",
"baseball bat",
"baseball glove",
"skateboard",
"surfboard",
"tennis racket",
"bottle",
"wine glass",
"cup",
"fork",
"knife",
"spoon",
"bowl",
"banana",
"apple",
"sandwich",
"orange",
"broccoli",
"carrot",
"hot dog",
"pizza",
"donut",
"cake",
"chair",
"sofa",
"pottedplant",
"bed",
"diningtable",
"toilet",
"tvmonitor",
"laptop",
"mouse",
"remote",
"keyboard",
"cell phone",
"microwave",
"oven",
"toaster",
"sink",
"refrigerator",
"book",
"clock",
"vase",
"scissors",
"teddy bear",
"hair drier",
"toothbrush"
],
"state": "ready",
"description": "YOLO v3 via Intel OpenVINO",
"framework": "openvino",
"name": "YOLO v3"
},
{
"id": "openvino.omz.semantic-segmentation-adas-0001",
"kind": "detector",
"labels": [
"road",
"sidewalk",
"building",
"wall",
"fence",
"pole",
"traffic light",
"traffic sign",
"vegetation",
"terrain",
"sky",
"person",
"rider",
"car",
"truck",
"bus",
"train",
"motorcycle",
"bicycle",
"ego-vehicle",
"background"
],
"state": "ready",
"description": "Segmentation network to classify each pixel into typical 20 classes for ADAS",
"framework": "openvino",
"name": "Semantic segmentation for ADAS"
},
{
"id": "pth.foolwood.siammask",
"kind": "tracker",
"labels": [],
"state": "ready",
"description": "Fast Online Object Tracking and Segmentation",
"framework": "pytorch",
"name": "SiamMask"
},
{
"id": "tf.faster_rcnn_inception_v2_coco",
"kind": "detector",
"labels": [
"person",
"bicycle",
"car",
"motorcycle",
"airplane",
"bus",
"train",
"truck",
"boat",
"traffic_light",
"fire_hydrant",
"stop_sign",
"parking_meter",
"bench",
"bird",
"cat",
"dog",
"horse",
"sheep",
"cow",
"elephant",
"bear",
"zebra",
"giraffe",
"backpack",
"umbrella",
"handbag",
"tie",
"suitcase",
"frisbee",
"skis",
"snowboard",
"sports_ball",
"kite",
"baseball_bat",
"baseball_glove",
"skateboard",
"surfboard",
"tennis_racket",
"bottle",
"wine_glass",
"cup",
"fork",
"knife",
"spoon",
"bowl",
"banana",
"apple",
"sandwich",
"orange",
"broccoli",
"carrot",
"hot_dog",
"pizza",
"donut",
"cake",
"chair",
"couch",
"potted_plant",
"bed",
"dining_table",
"toilet",
"tv",
"laptop",
"mouse",
"remote",
"keyboard",
"cell_phone",
"microwave",
"oven",
"toaster",
"sink",
"refrigerator",
"book",
"clock",
"vase",
"scissors",
"teddy_bear",
"hair_drier",
"toothbrush"
],
"state": "ready",
"description": "Faster RCNN from Tensorflow Object Detection API",
"framework": "tensorflow",
"name": "Faster RCNN via Tensorflow"
},
{
"id": "tf.matterport.mask_rcnn",
"kind": "detector",
"labels": [
"BG",
"person",
"bicycle",
"car",
"motorcycle",
"airplane",
"bus",
"train",
"truck",
"boat",
"traffic_light",
"fire_hydrant",
"stop_sign",
"parking_meter",
"bench",
"bird",
"cat",
"dog",
"horse",
"sheep",
"cow",
"elephant",
"bear",
"zebra",
"giraffe",
"backpack",
"umbrella",
"handbag",
"tie",
"suitcase",
"frisbee",
"skis",
"snowboard",
"sports_ball",
"kite",
"baseball_bat",
"baseball_glove",
"skateboard",
"surfboard",
"tennis_racket",
"bottle",
"wine_glass",
"cup",
"fork",
"knife",
"spoon",
"bowl",
"banana",
"apple",
"sandwich",
"orange",
"broccoli",
"carrot",
"hot_dog",
"pizza",
"donut",
"cake",
"chair",
"couch",
"potted_plant",
"bed",
"dining_table",
"toilet",
"tv",
"laptop",
"mouse",
"remote",
"keyboard",
"cell_phone",
"microwave",
"oven",
"toaster",
"sink",
"refrigerator",
"book",
"clock",
"vase",
"scissors",
"teddy_bear",
"hair_drier",
"toothbrush"
],
"state": "ready",
"description": "An implementation of Mask RCNN on Python 3, Keras, and TensorFlow.\n",
"framework": "tensorflow",
"name": "Mask RCNN via Tensorflow"
}
] |
@aleksandrmelnikov how are things like labels, kind, framework, etc stored? Are they actually coming from the wrapper code for each model? |
They are actually stored via They store the information via metadata in the spec, and they load it inside Example yaml: metadata:
name: tf.matterport.mask_rcnn
namespace: cvat
annotations:
name: Mask RCNN via Tensorflow
type: detector
framework: tensorflow
spec: |
[
{ "id": 0, "name": "BG" },
{ "id": 1, "name": "person" },
{ "id": 2, "name": "bicycle" },
{ "id": 3, "name": "car" },
{ "id": 4, "name": "motorcycle" },
{ "id": 5, "name": "airplane" },
{ "id": 6, "name": "bus" },
{ "id": 7, "name": "train" },
{ "id": 8, "name": "truck" },
{ "id": 9, "name": "boat" },
{ "id": 10, "name": "traffic_light" },
{ "id": 11, "name": "fire_hydrant" },
{ "id": 12, "name": "stop_sign" },
{ "id": 13, "name": "parking_meter" },
{ "id": 14, "name": "bench" },
{ "id": 15, "name": "bird" },
{ "id": 16, "name": "cat" },
{ "id": 17, "name": "dog" },
{ "id": 18, "name": "horse" },
{ "id": 19, "name": "sheep" },
{ "id": 20, "name": "cow" },
{ "id": 21, "name": "elephant" },
{ "id": 22, "name": "bear" },
{ "id": 23, "name": "zebra" },
{ "id": 24, "name": "giraffe" },
{ "id": 25, "name": "backpack" },
{ "id": 26, "name": "umbrella" },
{ "id": 27, "name": "handbag" },
{ "id": 28, "name": "tie" },
{ "id": 29, "name": "suitcase" },
{ "id": 30, "name": "frisbee" },
{ "id": 31, "name": "skis" },
{ "id": 32, "name": "snowboard" },
{ "id": 33, "name": "sports_ball" },
{ "id": 34, "name": "kite" },
{ "id": 35, "name": "baseball_bat" },
{ "id": 36, "name": "baseball_glove" },
{ "id": 37, "name": "skateboard" },
{ "id": 38, "name": "surfboard" },
{ "id": 39, "name": "tennis_racket" },
{ "id": 40, "name": "bottle" },
{ "id": 41, "name": "wine_glass" },
{ "id": 42, "name": "cup" },
{ "id": 43, "name": "fork" },
{ "id": 44, "name": "knife" },
{ "id": 45, "name": "spoon" },
{ "id": 46, "name": "bowl" },
{ "id": 47, "name": "banana" },
{ "id": 48, "name": "apple" },
{ "id": 49, "name": "sandwich" },
{ "id": 50, "name": "orange" },
{ "id": 51, "name": "broccoli" },
{ "id": 52, "name": "carrot" },
{ "id": 53, "name": "hot_dog" },
{ "id": 54, "name": "pizza" },
{ "id": 55, "name": "donut" },
{ "id": 56, "name": "cake" },
{ "id": 57, "name": "chair" },
{ "id": 58, "name": "couch" },
{ "id": 59, "name": "potted_plant" },
{ "id": 60, "name": "bed" },
{ "id": 61, "name": "dining_table" },
{ "id": 62, "name": "toilet" },
{ "id": 63, "name": "tv" },
{ "id": 64, "name": "laptop" },
{ "id": 65, "name": "mouse" },
{ "id": 66, "name": "remote" },
{ "id": 67, "name": "keyboard" },
{ "id": 68, "name": "cell_phone" },
{ "id": 69, "name": "microwave" },
{ "id": 70, "name": "oven" },
{ "id": 71, "name": "toaster" },
{ "id": 72, "name": "sink" },
{ "id": 73, "name": "refrigerator" },
{ "id": 74, "name": "book" },
{ "id": 75, "name": "clock" },
{ "id": 76, "name": "vase" },
{ "id": 77, "name": "scissors" },
{ "id": 78, "name": "teddy_bear" },
{ "id": 79, "name": "hair_drier" },
{ "id": 80, "name": "toothbrush" }
]
spec:
description: |
An implementation of Mask RCNN on Python 3, Keras, and TensorFlow.
runtime: "python:3.6"
handler: main:handler
eventTimeout: 30s
env:
- name: MASK_RCNN_DIR
value: /opt/nuclio/Mask_RCNN
build:
image: cvat/tf.matterport.mask_rcnn
baseImage: tensorflow/tensorflow:2.1.0-py3
directives:
postCopy:
- kind: WORKDIR
value: /opt/nuclio
- kind: RUN
value: apt update && apt install --no-install-recommends -y git curl libsm6 libxext6 libxrender-dev
- kind: RUN
value: git clone https://github.com/matterport/Mask_RCNN.git
- kind: RUN
value: curl -L https://github.com/matterport/Mask_RCNN/releases/download/v2.0/mask_rcnn_coco.h5 -o Mask_RCNN/mask_rcnn_coco.h5
- kind: RUN
value: pip3 install -r Mask_RCNN/requirements.txt
- kind: RUN
value: pip3 install pycocotools tensorflow==1.13.1 keras==2.1.0 pillow pyyaml
triggers:
myHttpTrigger:
maxWorkers: 2
kind: "http"
workerAvailabilityTimeoutMilliseconds: 10000
attributes:
maxRequestBodySize: 33554432 # 32MB
platform:
attributes:
restartPolicy:
name: always
maximumRetryCount: 3 |
These were investigated from create new task -> actions -> automatic annotation Kick off serverless function. /* Request */
{
"threshold": 0.5,
"max_distance": 50,
"task": 1,
"function": "openvino.omz.intel.person-reidentification-retail-0300"
}
/* Response */
{
"id": "6dd018f2-64fa-4c8f-948b-121c92be4bd1",
"function": {
"id": "openvino.omz.intel.person-reidentification-retail-0300",
"threshold": 0.5,
"task": 1
},
"status": "queued",
"progress": 0,
"enqueued": "2020-11-18T19:05:49.161191",
"started": null,
"ended": null,
"exc_info": null
} Status and progress check on the serverless execution.
{
"id": "6dd018f2-64fa-4c8f-948b-121c92be4bd1",
"function": {
"id": "openvino.omz.intel.person-reidentification-retail-0300",
"threshold": 0.5,
"task": 1
},
"status": "finished", //queued, started, finished
"progress": 100, //starts with 0, goes to 100
"enqueued": "2020-11-18T19:05:49.161191",
"started": "2020-11-18T19:05:49.174984",
"ended": "2020-11-18T19:05:49.313751",
"exc_info": null
} Cancelling a serverless execution
Returns 204 No Content |
Recording request and responses for annotation kicked off from annotation page (of a given task). Request
Body {
"mapping": {
"person": "person",
"car": "car"
},
"cleanup": false, //deletes task data from database
"frame": 0,
"task": 1
}
Body {
"mapping": {
"text": "person"
},
"cleanup": false,
"frame": 0,
"task": 1
} Response [
{
"confidence": null,
"label": "person",
"points": [
496,
132,
531,
132,
531,
142,
496,
142
],
"type": "polygon"
},
{
"confidence": null,
"label": "person",
"points": [
528,
210,
555,
210,
555,
224,
528,
224
],
"type": "polygon"
},
//...continues...
] Request
Body {
"mapping": {
"person": "person",
"car": "car"
},
"cleanup": false,
"frame": 0,
"task": 1
} Response [
{
"confidence": "0.99303883",
"label": "person",
"points": [
1176.3516235351562,
374.1847229003906,
1280.0,
699.4732475280762
],
"type": "rectangle"
},
{
"confidence": "0.98096424",
"label": "person",
"points": [
83.2307243347168,
359.85846519470215,
198.68478775024414,
662.8982162475586
],
"type": "rectangle"
}
//...
] Request
{
"mapping": {
"person": "person",
"car": "car"
},
"cleanup": false,
"frame": 0,
"task": 1
} Response [
{
"confidence": "0.99985194",
"label": "person",
"points": [
61,
344,
217,
670
],
"type": "rectangle"
},
{
"confidence": "0.9997302",
"label": "person",
"points": [
849,
354,
1061,
720
],
"type": "rectangle"
}
//...
] Request POST http://localhost:8080/api/v1/lambda/functions/openvino-omz-semantic-segmentation-adas-0001
{
"mapping": {
"person": "person",
"car": "car"
},
"cleanup": false,
"frame": 0,
"task": 1
} Response [
{
"confidence": null,
"label": "person",
"points": [
0.0,
323.37236285124135,
6.0,
324.0474398505345,
15.0,
312.00384387108494,
20.0,
311.0982009090489,
30.0,
322.080764686252,
40.0,
314.0945640011426,
50.0,
315.0491316160951,
60.0,
328.34740633562683,
73.04631569391837,
321.0,
80.0,
311.1112883342544,
90.0,
320.3486430694041,
94.0,
307.0201630502398,
105.0,
310.0227706337829,
110.0,
317.0251536983245,
120.0,
311.09508015085714,
132.494829009255,
312.0,
150.0,
307.0128049933534,
156.98935181762772,
315.0,
159.0,
331.0842018812,
172.0,
318.55084849423577,
182.0,
316.06506673666183,
190.67774707788055,
332.0,
199.0,
333.1516860066772,
209.0,
325.35884974491347,
231.0,
324.0506705816824,
239.02297941787285,
304.0,
250.0,
297.10454904961733,
260.6684635517673,
313.0,
277.68845747767904,
323.0,
296.0,
317.0183710297214,
301.0,
306.59491616867854,
319.0,
307.08144052685134,
331.94103217703014,
316.0,
343.0,
331.0726127529786,
350.0757518263273,
331.0,
359.0,
315.25797276182834,
368.0,
317.0117430921824,
375.0,
329.0462554779512,
404.0,
310.02247539566923,
415.0,
312.4455892753989,
428.0,
324.04767394694977,
445.0,
314.0945640011426,
461.0,
314.0849363832643,
471.0,
308.4651703698857,
484.0,
316.12599086164903,
505.0,
319.0545221374546,
528.0,
313.52408225677027,
550.0,
319.0900326085039,
576.0,
312.0088626333916,
628.0,
316.10284709862407,
642.0,
307.0320390882156,
658.0,
313.0383187096331,
694.0,
301.2618609651209,
714.0,
302.1594923954951,
729.0,
287.3053112685377,
754.0,
292.14905146947785,
772.0,
287.079127770434,
788.0,
287.5540832648252,
799.0,
295.1567198469649,
804.0,
288.06639523736555,
822.0,
288.1418354820172,
829.0,
281.03676724827875,
831.0,
284.01719323093164,
838.0,
281.0283968255487,
863.0,
285.1049240938825,
868.0,
275.06743184072565,
879.0,
282.1023008393633,
898.0,
281.0743777913505,
911.0,
274.0102790191164,
934.0,
284.04028249934066,
938.0,
276.0921489779281,
943.0,
276.0908430935164,
944.9886432930049,
279.0,
938.0,
288.07953746229254,
958.0,
288.1256184498406,
964.0,
276.0186700565305,
976.0,
283.0408561949083,
989.0,
278.3350249308497,
1027.0,
288.1418354820172,
1050.0,
283.16421718096063,
1049.0211426102305,
278.0,
1054.0,
274.00917291257224,
1057.7679326741975,
284.0,
1076.0,
281.01218381599904,
1085.0,
284.037867207903,
1089.0,
281.01088333135954,
1095.8480959069284,
288.0,
1106.0,
290.6108268456344,
1107.0,
305.40559189265895,
1110.0,
307.1118507747409,
1120.5099102053518,
285.0,
1131.0,
278.12004829065535,
1135.3977600890803,
283.0,
1128.8712204679641,
284.0,
1126.9446128703871,
291.0,
1137.0,
292.102884668471,
1145.9832256890882,
304.0,
1132.8949558637546,
310.0,
1126.9510378657465,
333.0,
1140.9442632599732,
366.0,
1139.0,
369.89451412645786,
1129.0,
367.48427734725595,
1127.9797654671972,
381.0,
1132.9943118357103,
397.0,
1124.8850799165436,
407.0,
1123.3905951373736,
420.0,
1113.7858082079847,
422.0,
1109.8670001252606,
432.0,
1106.9129402826734,
490.0,
1111.0,
495.0173565216377,
1147.0,
497.02181807038977,
1164.0,
506.01106013026066,
1179.0,
522.0475830583266,
1188.003492593912,
445.0,
1183.014346038191,
390.0,
1189.092902282544,
384.0,
1177.0644757566283,
377.0,
1173.0146811187192,
352.0,
1187.10297640843,
327.0,
1184.0261863397004,
311.0,
1190.0,
308.05909303028216,
1199.1221619262933,
312.0,
1203.0121486702901,
292.0,
1201.001135134162,
282.0,
1209.0,
280.0856100641939,
1208.7395762108913,
294.0,
1219.0,
295.01689906365664,
1239.0,
323.18907329811844,
1244.0,
320.0713265237664,
1246.9324869216975,
323.0,
1251.8820231451618,
332.0,
1254.8356035999204,
356.0,
1258.8434430712487,
360.0,
1265.0,
357.09284142137903,
1268.0,
348.02790104589263,
1269.0,
354.2320348768142,
1274.0,
351.08694218918197,
1279.0,
357.096503035196
],
"type": "polygon"
},
{
"confidence": null,
"label": "person",
"points": [
1034.7221559550428,
330.0,
1044.3403315205298,
315.0,
1026.952746453593,
319.0,
1027.8689252091986,
325.0,
1034.7221559550428,
330.0
],
"type": "polygon"
},
//...
] Request
{
"mapping": {
"text": "car"
},
"cleanup": false,
"frame": 0,
"task": 1
}
{
"mapping": {
"person": "person",
"car": "car"
},
"cleanup": false,
"frame": 0,
"task": 1
}
{
"mapping": {
"person": "person",
"car": "car"
},
"cleanup": false,
"frame": 0,
"task": 1
}
{
"mapping": {
"person": "person",
"car": "car"
},
"cleanup": false,
"frame": 0,
"task": 1
}
{
"mapping": {
"person": "person",
"car": "car"
},
"cleanup": false,
"frame": 0,
"task": 1
}
{
"mapping": {
"person": "person",
"car": "car"
},
"cleanup": false,
"frame": 0,
"task": 1
} Response [
{
"confidence": "0.9955258",
"label": "person",
"points": [
852.5807189941406,
373.9480447769165,
1062.0193481445312,
713.2855939865112
],
"type": "rectangle"
},
{
"confidence": "0.9941553",
"label": "person",
"points": [
1175.0753784179688,
370.0285005569458,
1280.0,
695.2166891098022
],
"type": "rectangle"
}//...
]
{
"mapping": {
"person": "person",
"car": "car"
},
"cleanup": false,
"frame": 0,
"task": 1
}
{
"mapping": {
"person": "person",
"car": "car"
},
"cleanup": false,
"frame": 0,
"task": 1
}
{
"mapping": {
"person": "person",
"car": "car"
},
"cleanup": false,
"frame": 0,
"task": 1
} Tracker across frames
{
"task": 1,
"frame": 0,
"shape": [
1045.1845703125,
487.4638671875,
1230.0082702636719,
714.9391784667969
]
} Response {
"shape": [
1045.1845703125,
487.4638671875,
1230.0082702636719,
714.9391784667969
],
"state": {
"im_h": "720",
"im_w": "1280",
"p": "{\"py/object\": \"utils.tracker_config.TrackerConfig\", \"instance_size\": 255, \"base_size\": 8, \"out_size\": 127, \"seg_thr\": 0.35, \"penalty_k\": 0.04, \"window_influence\": 0.4, \"lr\": 1.0, \"total_stride\": 8, \"ratios\": [0.33, 0.5, 1, 2, 3], \"scales\": [8], \"round_dight\": 0, \"score_size\": 25, \"anchor_num\": 5, \"anchor\": {\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray._reconstruct\"}, {\"py/tuple\": [{\"py/type\": \"numpy.ndarray\"}, {\"py/tuple\": [0]}, {\"py/b64\": \"Yg==\"}]}, {\"py/tuple\": [1, {\"py/tuple\": [3125, 4]}, {\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f4\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, false, {\"py/b64\": \"<giant_base_64_string_of_image>\"}]}]}}",
"avg_chans": "{\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray._reconstruct\"}, {\"py/tuple\": [{\"py/type\": \"numpy.ndarray\"}, {\"py/tuple\": [0]}, {\"py/b64\": \"Yg==\"}]}, {\"py/tuple\": [1, {\"py/tuple\": [3]}, {\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f8\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, false, {\"py/b64\": \"vZp4VqhsWUDiWdFINI1YQN+8mnhi1FlA\"}]}]}",
"window": "{\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray._reconstruct\"}, {\"py/tuple\": [{\"py/type\": \"numpy.ndarray\"}, {\"py/tuple\": [0]}, {\"py/b64\": \"Yg==\"}]}, {\"py/tuple\": [1, {\"py/tuple\": [3125]}, {\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f8\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, false, {\"py/b64\": \"<base_64_image\"}]}]}",
"target_pos": "{\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray._reconstruct\"}, {\"py/tuple\": [{\"py/type\": \"numpy.ndarray\"}, {\"py/tuple\": [0]}, {\"py/b64\": \"Yg==\"}]}, {\"py/tuple\": [1, {\"py/tuple\": [2]}, {\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f8\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, false, {\"py/b64\": \"AAAAvGLGkUAAAAC4nMmCQA==\"}]}]}",
"target_sz": "{\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray._reconstruct\"}, {\"py/tuple\": [{\"py/type\": \"numpy.ndarray\"}, {\"py/tuple\": [0]}, {\"py/b64\": \"Yg==\"}]}, {\"py/tuple\": [1, {\"py/tuple\": [2]}, {\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f8\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, false, {\"py/b64\": \"AAAAwFsaZ0AAAADANW9sQA==\"}]}]}",
"net.zf": "{\"py/reduce\": [{\"py/function\": \"torch._utils._rebuild_tensor_v2\"}, {\"py/tuple\": [{\"py/reduce\": [{\"py/function\": \"torch.storage._load_from_bytes\"}, {\"py/tuple\": [{\"py/b64\": \"<base_64_image>\"}]}]}, 64, {\"py/tuple\": [1, 256, 7, 7]}, {\"py/tuple\": [57600, 225, 15, 1]}, true, null]}]}"
}
}
{
"task": 1,
"frame": 2,
"state": {
"im_h": "720",
"im_w": "1280",
"p": "{\"py/object\": \"utils.tracker_config.TrackerConfig\", \"instance_size\": 255, \"base_size\": 8, \"out_size\": 127, \"seg_thr\": 0.35, \"penalty_k\": 0.04, \"window_influence\": 0.4, \"lr\": 1.0, \"total_stride\": 8, \"ratios\": [0.33, 0.5, 1, 2, 3], \"scales\": [8], \"round_dight\": 0, \"score_size\": 25, \"anchor_num\": 5, \"anchor\": {\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray._reconstruct\"}, {\"py/tuple\": [{\"py/type\": \"numpy.ndarray\"}, {\"py/tuple\": [0]}, {\"py/b64\": \"Yg==\"}]}, {\"py/tuple\": [1, {\"py/tuple\": [3125, 4]}, {\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f4\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, false, {\"py/b64\": \"=\"}]}]}}",
"avg_chans": "{\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray._reconstruct\"}, {\"py/tuple\": [{\"py/type\": \"numpy.ndarray\"}, {\"py/tuple\": [0]}, {\"py/b64\": \"Yg==\"}]}, {\"py/tuple\": [1, {\"py/tuple\": [3]}, {\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f8\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, false, {\"py/b64\": \"vZp4VqhsWUDiWdFINI1YQN+8mnhi1FlA\"}]}]}",
"window": "{\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray._reconstruct\"}, {\"py/tuple\": [{\"py/type\": \"numpy.ndarray\"}, {\"py/tuple\": [0]}, {\"py/b64\": \"Yg==\"}]}, {\"py/tuple\": [1, {\"py/tuple\": [3125]}, {\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f8\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, false, {\"py/b64\": \"==\"}]}]}",
"target_pos": "{\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray._reconstruct\"}, {\"py/tuple\": [{\"py/type\": \"numpy.ndarray\"}, {\"py/tuple\": [0]}, {\"py/b64\": \"Yg==\"}]}, {\"py/tuple\": [1, {\"py/tuple\": [2]}, {\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f8\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, false, {\"py/b64\": \"AACAJhRzkUAAAKC2uuWCQA==\"}]}]}",
"target_sz": "{\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray._reconstruct\"}, {\"py/tuple\": [{\"py/type\": \"numpy.ndarray\"}, {\"py/tuple\": [0]}, {\"py/b64\": \"Yg==\"}]}, {\"py/tuple\": [1, {\"py/tuple\": [2]}, {\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f8\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, false, {\"py/b64\": \"4C/1Ka6AZkDg3/zEX2RtQA==\"}]}]}",
"score": "{\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray.scalar\"}, {\"py/tuple\": [{\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f4\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, {\"py/b64\": \"Nv5/Pw==\"}]}]}",
"ploygon": "{\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray._reconstruct\"}, {\"py/tuple\": [{\"py/type\": \"numpy.ndarray\"}, {\"py/tuple\": [0]}, {\"py/b64\": \"Yg==\"}]}, {\"py/tuple\": [1, {\"py/tuple\": [4, 2]}, {\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f4\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, false, {\"py/b64\": \"0X6XRJpNM0SFHYFEVvwyRJdRgUQkP/ND47KXRKzh80M=\"}]}]}",
"net.zf": "{\"py/reduce\": [{\"py/function\": \"torch._utils._rebuild_tensor_v2\"}, {\"py/tuple\": [{\"py/reduce\": [{\"py/function\": \"torch.storage._load_from_bytes\"}, {\"py/tuple\": [{\"py/b64\": \"===\"}]}]}, 64, {\"py/tuple\": [1, 256, 7, 7]}, {\"py/tuple\": [57600, 225, 15, 1]}, true, null]}]}"
}
} Response {
"shape": [
1190.830078125,
718.5213012695312,
1016.8630981445312,
716.9252319335938,
1018.958984375,
488.47662353515625,
1192.926025390625,
490.07269287109375
],
"state": {
"im_h": "720",
"im_w": "1280",
"p": "{\"py/object\": \"utils.tracker_config.TrackerConfig\", \"instance_size\": 255, \"base_size\": 8, \"out_size\": 127, \"seg_thr\": 0.35, \"penalty_k\": 0.04, \"window_influence\": 0.4, \"lr\": 1.0, \"total_stride\": 8, \"ratios\": [0.33, 0.5, 1, 2, 3], \"scales\": [8], \"round_dight\": 0, \"score_size\": 25, \"anchor_num\": 5, \"anchor\": {\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray._reconstruct\"}, {\"py/tuple\": [{\"py/type\": \"numpy.ndarray\"}, {\"py/tuple\": [0]}, {\"py/b64\": \"Yg==\"}]}, {\"py/tuple\": [1, {\"py/tuple\": [3125, 4]}, {\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f4\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, false, {\"py/b64\": \"=\"}]}]}}",
"avg_chans": "{\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray._reconstruct\"}, {\"py/tuple\": [{\"py/type\": \"numpy.ndarray\"}, {\"py/tuple\": [0]}, {\"py/b64\": \"Yg==\"}]}, {\"py/tuple\": [1, {\"py/tuple\": [3]}, {\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f8\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, false, {\"py/b64\": \"vZp4VqhsWUDiWdFINI1YQN+8mnhi1FlA\"}]}]}",
"window": "{\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray._reconstruct\"}, {\"py/tuple\": [{\"py/type\": \"numpy.ndarray\"}, {\"py/tuple\": [0]}, {\"py/b64\": \"Yg==\"}]}, {\"py/tuple\": [1, {\"py/tuple\": [3125]}, {\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f8\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, false, {\"py/b64\": \"==\"}]}]}",
"target_pos": "{\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray._reconstruct\"}, {\"py/tuple\": [{\"py/type\": \"numpy.ndarray\"}, {\"py/tuple\": [0]}, {\"py/b64\": \"Yg==\"}]}, {\"py/tuple\": [1, {\"py/tuple\": [2]}, {\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f8\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, false, {\"py/b64\": \"AAAAv+kvkUAAAJCe+OeCQA==\"}]}]}",
"target_sz": "{\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray._reconstruct\"}, {\"py/tuple\": [{\"py/type\": \"numpy.ndarray\"}, {\"py/tuple\": [0]}, {\"py/b64\": \"Yg==\"}]}, {\"py/tuple\": [1, {\"py/tuple\": [2]}, {\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f8\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, false, {\"py/b64\": \"dp3rDXpSZkBVSUusLz1tQA==\"}]}]}",
"score": "{\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray.scalar\"}, {\"py/tuple\": [{\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f4\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, {\"py/b64\": \"bPh/Pw==\"}]}]}",
"ploygon": "{\"py/reduce\": [{\"py/function\": \"numpy.core.multiarray._reconstruct\"}, {\"py/tuple\": [{\"py/type\": \"numpy.ndarray\"}, {\"py/tuple\": [0]}, {\"py/b64\": \"Yg==\"}]}, {\"py/tuple\": [1, {\"py/tuple\": [4, 2]}, {\"py/reduce\": [{\"py/type\": \"numpy.dtype\"}, {\"py/tuple\": [\"f4\", 0, 1]}, {\"py/tuple\": [3, \"<\", null, null, null, -1, -1, 0]}]}, false, {\"py/b64\": \"kNqURF2hM0Q9N35ENzszRGC9fkQCPfRDoh2VRE4J9UM=\"}]}]}",
"net.zf": "{\"py/reduce\": [{\"py/function\": \"torch._utils._rebuild_tensor_v2\"}, {\"py/tuple\": [{\"py/reduce\": [{\"py/function\": \"torch.storage._load_from_bytes\"}, {\"py/tuple\": [{\"py/b64\": \"==\"}]}]}, 64, {\"py/tuple\": [1, 256, 7, 7]}, {\"py/tuple\": [57600, 225, 15, 1]}, true, null]}]}"
}
} Request
{
"frame": 1,
"points": [
[
741.5517578125,
713.9072265625
],
[
697.884765625,
585.9521484375
],
[
732.412109375,
508.7724609375
],
[
665.3876953125,
459.0126953125
]
],
"task": 1
} Response [
[
708,
530
],
[
707,
530
],
[
705,
534
],
//...
] Request
{
"frame": 1,
"points": [
[
781.15625,
580.8740234375
],
[
771.0009765625,
382.8486328125
]
],
"task": 1
} |
Explore CVAT implementation cvat-ai/cvat#1767 and https://github.com/openvinotoolkit/cvat/tree/e7585b8ce900cec2c9dd6ef2dc1092e6567780b1/cvat/apps/lambda_manager so we can design our Knative implementation in a way that it is easily pluggable into CVAT.
The text was updated successfully, but these errors were encountered: