https://github.com/asya-ai/parkexpert-licenseplate-api
Projektā izveidot ./app
python flask vienkāršu web lapu, par piemēru var ņemt vai kādu citu mūsu mazo Flask app projektus https://github.com/asya-ai/assistentis_labeling/
Ventspils ofisā var par šo palīdzēt Valters, Everts, Viktors, Rolands, Reinis utt.
Lai palaistu uz servera ne no main root Python projektu var lietot root
xxxxxxxxxx
21export PYTHONPATH=$PYTHONPATH:\some\path
2python .\app\main.py
Jāizveido clients tabulā SHA256 hash client_password, kur glabāt klienta paroli, lai varētu ielogoties un client_username
Jāpārveido gan API, gan db, ka task_tag vietā sūta zone_name, lai varētu noteikt, kura zona ir jāizveido vai jāizmanto no jau esošajām (zones). zone_uuid, lai nevarētu noteikt, kura zona ir kura, bet varētu izmantot kā identifikatoru URL izveidošanai
Jāizveido datubāzes struktūra, kur glabāt zonu polygons. Jāglabā serializētā JSON formātā, lai varētu izmantot kā JSON objektu.
Jāizveido UX, kur katrai zonai var iezīmēt polygons, pievienot un noņemt zonas (katrai zonai paņemt parauga bildi no iepriekš sūtītajām vai, ja pievieno jaunu zonu ir jāugšupielādē bilde)
Vispirms taisam, ka tikai esošām zonām iezīmējam polygons no tām, kas automātiski tiek pievienotas pēc tam, kad pievieno tasks. Parādoties jaunai zonai saglabāt piemēra attēlu ./zones/{zone_uuid}.jpg
formātā, kur uz tā var iezīmēt poligonus (iespējams nākotnē noderētu vairāki piemēru attēli zonām)
Vēlāk varētu arī manuāli pirms ienāk tasks pievienot
Fonā pēc katru poligonu izveides saglabāt masku ./masks/{zone_uuid}.png
formātā, kur maska ir melna ar balto poligonu iekšā, kuru izmanto nākamā solī API. No polygons masku var iegūt ar OpenCV vai citu library palīdzību (Reinis var palīdzēt)
Saprogrammēt, ka API ņem vēra mašīnas kuras atrodas virs iou_threshold (interscection over union) pēc pikseļiem dotajā apgabālā, to var izrēķināt apvienojot 2 attēlus un atrodot kur tie pārklājas ar polygon izveidoto masku. Ja vispār zonai nav maska (piemēram jaunām zonām), tad pārbaudīt visus auto, kas attēla.
API kā atbildi atsūtīt informāciju par vienu vislielāko auto, kas atrodas zonā
Ja neviena mašīna neiekrīt, tad task FAILED status
Jāpalūdz, kad Pauls no pirmdienas atpakaļ, lai uz asya 3 expose vēl vienu portu, lai var ērti piekļūt sistēmai, padot ziņu Evaldam, kur tie atrodas, Evalds uztaisīs name domain mapping
Esošo API workers uzlikt uz GPU/Cuda, lai nodrošinātu ātrdarbību
Login forma
Saraksts ar client zonām un edit iespēja, vēlāk pievienot jaunas zonas
Zonas rediģēšana, kur pievienot un noņemt poligonus (fonā rāda) JS lib izvēlies kādu no šīm vai citu:
react-polygon, ja pievieno ReactJS šim skatam forntendā
Fabric.js: This library provides an interactive object model on top of the canvas element, allowing you to create and populate objects like simple geometrical shapes or complex shapes consisting of several paths.
Paper.js: An open-source vector graphics scripting framework that runs on top of the HTML5 Canvas. It offers a clean Scene Graph / Document Object Model and powerful functionality to create and work with vector graphics and Bézier curves.
jPolygon: A JavaScript library specifically designed to draw polygons in an HTML5 canvas over an image. It supports undo and clear functions.
D3.js: While primarily used for data visualization, D3.js can also be used to draw polygons by manipulating SVG elements.
Two.js: A two-dimensional drawing API that is renderer agnostic, enabling the same API to render in multiple contexts: WebGL, Canvas2D, and SVG.