uploaded site and api data

This commit is contained in:
Dumitrana-Mihnea
2023-05-14 11:56:01 +03:00
committed by GitHub
parent db657aac76
commit bb7265d6b4
28 changed files with 3673 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
import os
import mediapipe as mp
import cv2
import pickle
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import numpy as np
mp_hands = mp.solutions.hands
hands = mp_hands.Hands(static_image_mode=True, min_detection_confidence=0.5)
data_dir = "./data"
data = []
labels = []
for dir_ in os.listdir(data_dir):
print(dir_)
for img_path in os.listdir(os.path.join(data_dir, dir_)):
data_aux = []
img = cv2.imread(os.path.join(data_dir, dir_, img_path))
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
results = hands.process(img_rgb)
if results.multi_hand_landmarks:
for hand_landmarks in results.multi_hand_landmarks:
for i in range(len(hand_landmarks.landmark)):
x = hand_landmarks.landmark[i].x
y = hand_landmarks.landmark[i].y
data_aux.append(x)
data_aux.append(y)
# print(f"Poza {img_path} cu ", end=' ')
# print(x, y)
data.append(data_aux)
labels.append(dir_)
data = np.asarray(data)
labels = np.asarray(labels)
x_train, x_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, shuffle=True, stratify=labels)
model = RandomForestClassifier()
model.fit(x_train, y_train)
y_predict = model.predict(x_test)
score = accuracy_score(y_predict, y_test)
print(f"{score * 100}% classified correctly")
f = open("model.p", "wb")
pickle.dump({"model": model}, f)
f.close()
+2
View File
@@ -0,0 +1,2 @@
[[{"x":0.8352290987968445,"y":1.0246509313583374,"z":6.380777790582215e-7},{"x":0.7852715849876404,"y":0.992743968963623,"z":-0.02249276265501976},{"x":0.7460511326789856,"y":0.9277198910713196,"z":-0.040133822709321976},{"x":0.7261029481887817,"y":0.8596256971359253,"z":-0.05214756354689598},{"x":0.7156654596328735,"y":0.806212842464447,"z":-0.065250463783741},{"x":0.7528064846992493,"y":0.9252693057060242,"z":-0.07445880025625229},{"x":0.7142532467842102,"y":0.8472095727920532,"z":-0.10898181796073914},{"x":0.6942790746688843,"y":0.7844054102897644,"z":-0.1276625096797943},{"x":0.6811489462852478,"y":0.7316831350326538,"z":-0.13941222429275513},{"x":0.7964140176773071,"y":0.8995473384857178,"z":-0.07670313119888306},{"x":0.7756801843643188,"y":0.7937293648719788,"z":-0.1070675328373909},{"x":0.7689130306243896,"y":0.718907356262207,"z":-0.12218372523784637},{"x":0.7662367820739746,"y":0.6581640839576721,"z":-0.13254722952842712},{"x":0.8419972062110901,"y":0.8913975358009338,"z":-0.07802332192659378},{"x":0.8377389311790466,"y":0.8043600916862488,"z":-0.11083008348941803},{"x":0.8356887102127075,"y":0.7433968186378479,"z":-0.127068430185318},{"x":0.8340345025062561,"y":0.6942105889320374,"z":-0.13611175119876862},{"x":0.8862054347991943,"y":0.8947083353996277,"z":-0.07868341356515884},{"x":0.9083899259567261,"y":0.8240664601325989,"z":-0.1105000302195549},{"x":0.9251305460929871,"y":0.7798703908920288,"z":-0.12317387014627457},{"x":0.9397422075271606,"y":0.7432297468185425,"z":-0.1296428143978119}],
[{"x":0.15515635907649994,"y":0.9633815288543701,"z":7.199977289928938e-7},{"x":0.20031718909740448,"y":0.9605085849761963,"z":-0.03806344047188759},{"x":0.23353257775306702,"y":0.9522206783294678,"z":-0.06956487894058228},{"x":0.24222178757190704,"y":0.9587247967720032,"z":-0.0999852865934372},{"x":0.24733389914035797,"y":0.9740628004074097,"z":-0.13321256637573242},{"x":0.2604224681854248,"y":0.8114917278289795,"z":-0.06296493113040924},{"x":0.30314508080482483,"y":0.7292249798774719,"z":-0.09619221091270447},{"x":0.3255283236503601,"y":0.6730362176895142,"z":-0.12107474356889725},{"x":0.34156253933906555,"y":0.6200391054153442,"z":-0.1400400847196579},{"x":0.2171422243118286,"y":0.7836028337478638,"z":-0.06895798444747925},{"x":0.24275580048561096,"y":0.6850705742835999,"z":-0.09884735941886902},{"x":0.25457364320755005,"y":0.6168791651725769,"z":-0.12403333187103271},{"x":0.2625443637371063,"y":0.5596932768821716,"z":-0.14239178597927094},{"x":0.170135498046875,"y":0.7859712839126587,"z":-0.07722687721252441},{"x":0.1786479949951172,"y":0.6838392615318298,"z":-0.10688867419958115},{"x":0.17985376715660095,"y":0.6157321333885193,"z":-0.1315436065196991},{"x":0.18125669658184052,"y":0.5590601563453674,"z":-0.14800553023815155},{"x":0.12401241064071655,"y":0.8124399781227112,"z":-0.0879233255982399},{"x":0.10290519893169403,"y":0.7394360899925232,"z":-0.11872303485870361},{"x":0.08626630902290344,"y":0.6938216090202332,"z":-0.13427463173866272},{"x":0.07402856647968292,"y":0.6551141142845154,"z":-0.14299866557121277}]]
+562
View File
@@ -0,0 +1,562 @@
mesh_viewer.ts:97 Uncaught ReferenceError: javascript is not defined
at mesh_viewer.ts:97:45
(anonymous) @ mesh_viewer.ts:97
mesh_viewer.ts:97 GET http://localhost/dist8/deps.js net::ERR_ABORTED 404 (Not Found)
goog.Dependency.load @ mesh_viewer.ts:97
(anonymous) @ mesh_viewer.ts:97
goog.DebugLoader_.loadDeps_ @ mesh_viewer.ts:97
goog.DebugLoader_.loadClosureDeps @ mesh_viewer.ts:97
(anonymous) @ mesh_viewer.ts:97
wave.js:23 <div class="landmark-grid-container"> </div>flex
script.js:54 div.landmark-grid-container
hands_solution_simd_wasm_bin.js:9 I0000 00:00:1683939511.204000 1 gl_context_webgl.cc:151] Successfully created a WebGL context with major version 3 and handle 3
put_char @ hands_solution_simd_wasm_bin.js:9
write @ hands_solution_simd_wasm_bin.js:9
write @ hands_solution_simd_wasm_bin.js:9
doWritev @ hands_solution_simd_wasm_bin.js:9
_fd_write @ hands_solution_simd_wasm_bin.js:9
$func8152 @ hands_solution_simd_wasm_bin.wasm:0x503240
$func8162 @ hands_solution_simd_wasm_bin.wasm:0x5039b1
$func8163 @ hands_solution_simd_wasm_bin.wasm:0x503a5c
$func7782 @ hands_solution_simd_wasm_bin.wasm:0x4d7edf
$func7781 @ hands_solution_simd_wasm_bin.wasm:0x4d7ebe
$func7779 @ hands_solution_simd_wasm_bin.wasm:0x4d7b6a
$func7760 @ hands_solution_simd_wasm_bin.wasm:0x4d6781
$func7759 @ hands_solution_simd_wasm_bin.wasm:0x4d5a01
$func6988 @ hands_solution_simd_wasm_bin.wasm:0x495061
$func6477 @ hands_solution_simd_wasm_bin.wasm:0x457e96
$func6272 @ hands_solution_simd_wasm_bin.wasm:0x44323d
$func251 @ hands_solution_simd_wasm_bin.wasm:0x1e50a
$func221 @ hands_solution_simd_wasm_bin.wasm:0x19cb6
(anonymous) @ hands_solution_simd_wasm_bin.js:9
(anonymous) @ hands.js:82
ua @ hands.js:14
next @ hands.js:15
b @ hands.js:15
Promise.then (async)
g @ hands.js:15
Promise.then (async)
g @ hands.js:15
(anonymous) @ hands.js:15
wa @ hands.js:15
E @ hands.js:16
x.send @ hands.js:79
(anonymous) @ hands.js:94
ua @ hands.js:14
next @ hands.js:15
(anonymous) @ hands.js:15
wa @ hands.js:15
E @ hands.js:16
x.send @ hands.js:94
onFrame @ script.js:155
U.tick @ control_utils.js:44
(anonymous) @ control_utils.js:43
requestAnimationFrame (async)
V @ control_utils.js:43
c @ control_utils.js:45
hands_solution_simd_wasm_bin.js:9 I0000 00:00:1683939511.206000 1 gl_context.cc:359] GL version: 3.0 (OpenGL ES 3.0 (WebGL 2.0 (OpenGL ES 3.0 Chromium)))
put_char @ hands_solution_simd_wasm_bin.js:9
write @ hands_solution_simd_wasm_bin.js:9
write @ hands_solution_simd_wasm_bin.js:9
doWritev @ hands_solution_simd_wasm_bin.js:9
_fd_write @ hands_solution_simd_wasm_bin.js:9
$func8152 @ hands_solution_simd_wasm_bin.wasm:0x503240
$func8162 @ hands_solution_simd_wasm_bin.wasm:0x5039b1
$func8163 @ hands_solution_simd_wasm_bin.wasm:0x503a5c
$func7782 @ hands_solution_simd_wasm_bin.wasm:0x4d7edf
$func7781 @ hands_solution_simd_wasm_bin.wasm:0x4d7ebe
$func7779 @ hands_solution_simd_wasm_bin.wasm:0x4d7b6a
$func7760 @ hands_solution_simd_wasm_bin.wasm:0x4d6781
$func7759 @ hands_solution_simd_wasm_bin.wasm:0x4d5a01
$func6933 @ hands_solution_simd_wasm_bin.wasm:0x493386
$func6861 @ hands_solution_simd_wasm_bin.wasm:0x490d93
$func6860 @ hands_solution_simd_wasm_bin.wasm:0x490c61
$func6988 @ hands_solution_simd_wasm_bin.wasm:0x495114
$func6477 @ hands_solution_simd_wasm_bin.wasm:0x457e96
$func6272 @ hands_solution_simd_wasm_bin.wasm:0x44323d
$func251 @ hands_solution_simd_wasm_bin.wasm:0x1e50a
$func221 @ hands_solution_simd_wasm_bin.wasm:0x19cb6
(anonymous) @ hands_solution_simd_wasm_bin.js:9
(anonymous) @ hands.js:82
ua @ hands.js:14
next @ hands.js:15
b @ hands.js:15
Promise.then (async)
g @ hands.js:15
Promise.then (async)
g @ hands.js:15
(anonymous) @ hands.js:15
wa @ hands.js:15
E @ hands.js:16
x.send @ hands.js:79
(anonymous) @ hands.js:94
ua @ hands.js:14
next @ hands.js:15
(anonymous) @ hands.js:15
wa @ hands.js:15
E @ hands.js:16
x.send @ hands.js:94
onFrame @ script.js:155
U.tick @ control_utils.js:44
(anonymous) @ control_utils.js:43
requestAnimationFrame (async)
V @ control_utils.js:43
c @ control_utils.js:45
hands_solution_simd_wasm_bin.js:9 W0000 00:00:1683939511.207000 1 gl_context.cc:1000] OpenGL error checking is disabled
put_char @ hands_solution_simd_wasm_bin.js:9
write @ hands_solution_simd_wasm_bin.js:9
write @ hands_solution_simd_wasm_bin.js:9
doWritev @ hands_solution_simd_wasm_bin.js:9
_fd_write @ hands_solution_simd_wasm_bin.js:9
$func8152 @ hands_solution_simd_wasm_bin.wasm:0x503240
$func8162 @ hands_solution_simd_wasm_bin.wasm:0x5039b1
$func8163 @ hands_solution_simd_wasm_bin.wasm:0x503a5c
$func7782 @ hands_solution_simd_wasm_bin.wasm:0x4d7edf
$func7781 @ hands_solution_simd_wasm_bin.wasm:0x4d7ebe
$func7779 @ hands_solution_simd_wasm_bin.wasm:0x4d7b6a
$func7760 @ hands_solution_simd_wasm_bin.wasm:0x4d6781
$func7759 @ hands_solution_simd_wasm_bin.wasm:0x4d5a01
$func6861 @ hands_solution_simd_wasm_bin.wasm:0x490df7
$func6860 @ hands_solution_simd_wasm_bin.wasm:0x490c61
$func6988 @ hands_solution_simd_wasm_bin.wasm:0x495114
$func6477 @ hands_solution_simd_wasm_bin.wasm:0x457e96
$func6272 @ hands_solution_simd_wasm_bin.wasm:0x44323d
$func251 @ hands_solution_simd_wasm_bin.wasm:0x1e50a
$func221 @ hands_solution_simd_wasm_bin.wasm:0x19cb6
(anonymous) @ hands_solution_simd_wasm_bin.js:9
(anonymous) @ hands.js:82
ua @ hands.js:14
next @ hands.js:15
b @ hands.js:15
Promise.then (async)
g @ hands.js:15
Promise.then (async)
g @ hands.js:15
(anonymous) @ hands.js:15
wa @ hands.js:15
E @ hands.js:16
x.send @ hands.js:79
(anonymous) @ hands.js:94
ua @ hands.js:14
next @ hands.js:15
(anonymous) @ hands.js:15
wa @ hands.js:15
E @ hands.js:16
x.send @ hands.js:94
onFrame @ script.js:155
U.tick @ control_utils.js:44
(anonymous) @ control_utils.js:43
requestAnimationFrame (async)
V @ control_utils.js:43
c @ control_utils.js:45
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 [[{"x":0.8140498995780945,"y":1.155534029006958,"z":0.0000010514937685002224},{"x":0.7359741926193237,"y":1.0859907865524292,"z":-0.03146498277783394},{"x":0.6988840103149414,"y":0.9564893841743469,"z":-0.06314167380332947},{"x":0.7039138078689575,"y":0.8355244994163513,"z":-0.08410068601369858},{"x":0.726629912853241,"y":0.750944197177887,"z":-0.10955847799777985},{"x":0.7080771327018738,"y":0.9438077211380005,"z":-0.14544285833835602},{"x":0.6564611792564392,"y":0.7907771468162537,"z":-0.20122770965099335},{"x":0.6265214681625366,"y":0.6916421055793762,"z":-0.23605354130268097},{"x":0.6009018421173096,"y":0.6081937551498413,"z":-0.2610349655151367},{"x":0.7865785360336304,"y":0.9510325789451599,"z":-0.15634576976299286},{"x":0.7815659046173096,"y":0.7740107774734497,"z":-0.20514428615570068},{"x":0.7765318155288696,"y":0.6572185754776001,"z":-0.23160769045352936},{"x":0.7660412788391113,"y":0.5650690793991089,"z":-0.25320181250572205},{"x":0.8642588257789612,"y":0.9737101197242737,"z":-0.162696972489357},{"x":0.8906987905502319,"y":0.7985145449638367,"z":-0.21562379598617554},{"x":0.9004497528076172,"y":0.6689568161964417,"z":-0.24854426085948944},{"x":0.9049975275993347,"y":0.5695917010307312,"z":-0.2726788818836212},{"x":0.9294121265411377,"y":1.0054806470870972,"z":-0.16661357879638672},{"x":0.9852825403213501,"y":0.9116175770759583,"z":-0.22081062197685242},{"x":1.01906156539917,"y":0.8806132078170776,"z":-0.2398642599582672},{"x":1.045973300933838,"y":0.8570849895477295,"z":-0.2519315779209137}]]
script.js:124 [[{"x":0.8322381973266602,"y":1.0162608623504639,"z":9.723190714794328e-7},{"x":0.747757077217102,"y":0.9798997640609741,"z":-0.03337813913822174},{"x":0.6753461956977844,"y":0.9310736060142517,"z":-0.07073889672756195},{"x":0.6143061518669128,"y":0.9143345355987549,"z":-0.10576065629720688},{"x":0.5562354326248169,"y":0.9335223436355591,"z":-0.14704079926013947},{"x":0.69749516248703,"y":0.731829822063446,"z":-0.08730152994394302},{"x":0.6400586366653442,"y":0.5744540095329285,"z":-0.1286448985338211},{"x":0.611598789691925,"y":0.4722822904586792,"z":-0.1556382030248642},{"x":0.5902823805809021,"y":0.38392505049705505,"z":-0.17510879039764404},{"x":0.7820249795913696,"y":0.7123401761054993,"z":-0.10481241345405579},{"x":0.7626743912696838,"y":0.5235517024993896,"z":-0.1402134746313095},{"x":0.7528814673423767,"y":0.3993535339832306,"z":-0.17106296122074127},{"x":0.74772709608078,"y":0.29079756140708923,"z":-0.1934414654970169},{"x":0.8607425689697266,"y":0.7370054721832275,"z":-0.12276580184698105},{"x":0.866374671459198,"y":0.5532642006874084,"z":-0.1690400391817093},{"x":0.8686074018478394,"y":0.4267726242542267,"z":-0.21038341522216797},{"x":0.8674495816230774,"y":0.3199838697910309,"z":-0.23731349408626556},{"x":0.9321892261505127,"y":0.7892143726348877,"z":-0.13958130776882172},{"x":0.9803751707077026,"y":0.6789135336875916,"z":-0.18509693443775177},{"x":1.0127334594726562,"y":0.6282098889350891,"z":-0.20355607569217682},{"x":1.0357786417007446,"y":0.5887877941131592,"z":-0.21291205286979675}],[{"x":0.8498014211654663,"y":1.0710203647613525,"z":0.000001164914124274219},{"x":0.7486876249313354,"y":1.013598084449768,"z":-0.026714980602264404},{"x":0.6837756037712097,"y":0.9565881490707397,"z":-0.051181405782699585},{"x":0.6340632438659668,"y":0.9390504360198975,"z":-0.07414879649877548},{"x":0.5887877941131592,"y":0.9596759676933289,"z":-0.10166682302951813},{"x":0.7089052200317383,"y":0.7908656001091003,"z":-0.04424835741519928},{"x":0.6742098927497864,"y":0.6782524585723877,"z":-0.06515457481145859},{"x":0.6534513831138611,"y":0.5959567427635193,"z":-0.08844318240880966},{"x":0.6361015439033508,"y":0.5206927061080933,"z":-0.10760944336652756},{"x":0.784972608089447,"y":0.762688934803009,"z":-0.05276075005531311},{"x":0.7709494829177856,"y":0.640825629234314,"z":-0.06670714914798737},{"x":0.7649253010749817,"y":0.5491682291030884,"z":-0.09577775001525879},{"x":0.759592592716217,"y":0.4663121998310089,"z":-0.11949466913938522},{"x":0.8654502630233765,"y":0.7626949548721313,"z":-0.06146051734685898},{"x":0.8667386770248413,"y":0.6432316303253174,"z":-0.08373191952705383},{"x":0.8681396842002869,"y":0.5473146438598633,"z":-0.11767440289258957},{"x":0.8685454726219177,"y":0.4643867611885071,"z":-0.1426226645708084},{"x":0.9407880902290344,"y":0.7885806560516357,"z":-0.0701870545744896},{"x":0.9821084141731262,"y":0.6941385865211487,"z":-0.09336858987808228},{"x":1.0133854150772095,"y":0.6354882121086121,"z":-0.10514674335718155},{"x":1.042013168334961,"y":0.5879390835762024,"z":-0.11232069879770279}]]
script.js:124 [[{"x":0.8744906783103943,"y":1.0113388299942017,"z":0.0000016394551494158804},{"x":0.7643049955368042,"y":0.9914852976799011,"z":-0.05137281119823456},{"x":0.6645444631576538,"y":0.9439111948013306,"z":-0.09482662379741669},{"x":0.5649287700653076,"y":0.9376358985900879,"z":-0.13422027230262756},{"x":0.47993800044059753,"y":0.9410340785980225,"z":-0.1797209531068802},{"x":0.728915810585022,"y":0.6543309092521667,"z":-0.07610289752483368},{"x":0.6869057416915894,"y":0.5063509345054626,"z":-0.11408723890781403},{"x":0.6637019515037537,"y":0.4040322005748749,"z":-0.15381643176078796},{"x":0.6419637203216553,"y":0.3096970319747925,"z":-0.18602930009365082},{"x":0.815497875213623,"y":0.6185013055801392,"z":-0.08858537673950195},{"x":0.8095181584358215,"y":0.4541466534137726,"z":-0.1191876009106636},{"x":0.8079002499580383,"y":0.34311604499816895,"z":-0.163346067070961},{"x":0.8017667531967163,"y":0.24449360370635986,"z":-0.1977064609527588},{"x":0.8944206833839417,"y":0.6361277103424072,"z":-0.10334961116313934},{"x":0.9133416414260864,"y":0.47029370069503784,"z":-0.15086358785629272},{"x":0.9263125061988831,"y":0.3586118221282959,"z":-0.20441746711730957},{"x":0.9297343492507935,"y":0.2608588933944702,"z":-0.24374401569366455},{"x":0.956680178642273,"y":0.6983981728553772,"z":-0.11912048608064651},{"x":1.030639410018921,"y":0.6155490875244141,"z":-0.18160003423690796},{"x":1.0884859561920166,"y":0.6042100191116333,"z":-0.20924940705299377},{"x":1.1325582265853882,"y":0.603702962398529,"z":-0.223610982298851}]]
script.js:124 [[{"x":0.8803628087043762,"y":1.0014629364013672,"z":0.0000014593846344723715},{"x":0.7713954448699951,"y":0.9917486310005188,"z":-0.07023174315690994},{"x":0.6567171812057495,"y":0.9428564310073853,"z":-0.11787640303373337},{"x":0.5484996438026428,"y":0.9306182861328125,"z":-0.15846259891986847},{"x":0.45203131437301636,"y":0.9358161687850952,"z":-0.20434263348579407},{"x":0.7307270169258118,"y":0.6322365403175354,"z":-0.09952437877655029},{"x":0.68035888671875,"y":0.45874059200286865,"z":-0.14275749027729034},{"x":0.6545394062995911,"y":0.34464821219444275,"z":-0.17610874772071838},{"x":0.6361608505249023,"y":0.24633392691612244,"z":-0.20187216997146606},{"x":0.8230410814285278,"y":0.5939611196517944,"z":-0.10499469935894012},{"x":0.825035035610199,"y":0.38512033224105835,"z":-0.13552255928516388},{"x":0.8303371667861938,"y":0.24905839562416077,"z":-0.16807974874973297},{"x":0.836621105670929,"y":0.13350504636764526,"z":-0.19516661763191223},{"x":0.9048917889595032,"y":0.6164177060127258,"z":-0.11628825217485428},{"x":0.9281401634216309,"y":0.4230707585811615,"z":-0.16807974874973297},{"x":0.9420567750930786,"y":0.30110469460487366,"z":-0.2204006463289261},{"x":0.9535149931907654,"y":0.1962016224861145,"z":-0.25957512855529785},{"x":0.9735214114189148,"y":0.6842241883277893,"z":-0.13066986203193665},{"x":1.0599873065948486,"y":0.6041153073310852,"z":-0.19904875755310059},{"x":1.1255981922149658,"y":0.5811589360237122,"z":-0.23504696786403656},{"x":1.1767141819000244,"y":0.565033495426178,"z":-0.2569282054901123}]]
script.js:124 [[{"x":0.8750336170196533,"y":0.9908167123794556,"z":0.0000012551245163194835},{"x":0.7648800015449524,"y":0.973118782043457,"z":-0.07036110758781433},{"x":0.6479532718658447,"y":0.9213394522666931,"z":-0.11904314160346985},{"x":0.5410860180854797,"y":0.9169502258300781,"z":-0.16230539977550507},{"x":0.44352078437805176,"y":0.9242358207702637,"z":-0.2106516808271408},{"x":0.7142426371574402,"y":0.608866274356842,"z":-0.08748376369476318},{"x":0.6647303700447083,"y":0.4406206011772156,"z":-0.13304820656776428},{"x":0.6396316885948181,"y":0.3296501040458679,"z":-0.17228162288665771},{"x":0.6215206384658813,"y":0.2316095530986786,"z":-0.20393691956996918},{"x":0.807329535484314,"y":0.570217490196228,"z":-0.09650072455406189},{"x":0.8063603639602661,"y":0.36497920751571655,"z":-0.12873157858848572},{"x":0.8118831515312195,"y":0.23504072427749634,"z":-0.16393612325191498},{"x":0.8161804676055908,"y":0.1196364164352417,"z":-0.1945362538099289},{"x":0.8918552994728088,"y":0.5944584608078003,"z":-0.11319170147180557},{"x":0.9075238704681396,"y":0.39764949679374695,"z":-0.16384020447731018},{"x":0.9234153032302856,"y":0.2843173146247864,"z":-0.2071983814239502},{"x":0.9313442707061768,"y":0.17628028988838196,"z":-0.24096404016017914},{"x":0.966572105884552,"y":0.6652205586433411,"z":-0.13400746881961823},{"x":1.02266263961792,"y":0.5689550042152405,"z":-0.1926177591085434},{"x":1.0669612884521484,"y":0.5431395769119263,"z":-0.21679089963436127},{"x":1.098677396774292,"y":0.5169825553894043,"z":-0.23329001665115356}]]
script.js:124 [[{"x":0.8665289282798767,"y":0.9848954677581787,"z":0.0000013209360076871235},{"x":0.7609226703643799,"y":0.9648950695991516,"z":-0.07197963446378708},{"x":0.6480709314346313,"y":0.9116542339324951,"z":-0.12011947482824326},{"x":0.5411328673362732,"y":0.9049577713012695,"z":-0.16246043145656586},{"x":0.4500688314437866,"y":0.9175719022750854,"z":-0.21004799008369446},{"x":0.7176499366760254,"y":0.6001684069633484,"z":-0.09292000532150269},{"x":0.6621071696281433,"y":0.4306213855743408,"z":-0.13935700058937073},{"x":0.6352125406265259,"y":0.31676575541496277,"z":-0.1772797703742981},{"x":0.6183992028236389,"y":0.2175496220588684,"z":-0.20765480399131775},{"x":0.8082113862037659,"y":0.5574846267700195,"z":-0.10069786012172699},{"x":0.8021847009658813,"y":0.35260292887687683,"z":-0.13659563660621643},{"x":0.8050499558448792,"y":0.21853852272033691,"z":-0.17415021359920502},{"x":0.8102002143859863,"y":0.10472840070724487,"z":-0.20562979578971863},{"x":0.8905263543128967,"y":0.577374279499054,"z":-0.11606945842504501},{"x":0.9036345481872559,"y":0.3835495412349701,"z":-0.17332181334495544},{"x":0.9175413250923157,"y":0.2644346058368683,"z":-0.227352574467659},{"x":0.9285590648651123,"y":0.16010862588882446,"z":-0.2671162486076355},{"x":0.9619537591934204,"y":0.6445280313491821,"z":-0.13521495461463928},{"x":1.0390549898147583,"y":0.5483458042144775,"z":-0.20470935106277466},{"x":1.1031619310379028,"y":0.5169990062713623,"z":-0.24134349822998047},{"x":1.1517221927642822,"y":0.4936438798904419,"z":-0.2649071216583252}]]
script.js:124 [[{"x":0.8703764081001282,"y":0.9768186211585999,"z":0.0000012558249409266864},{"x":0.7657812833786011,"y":0.9565961956977844,"z":-0.07109589874744415},{"x":0.6517131328582764,"y":0.9052735567092896,"z":-0.12119261175394058},{"x":0.5451292991638184,"y":0.9060387015342712,"z":-0.16592182219028473},{"x":0.4516203701496124,"y":0.9205896854400635,"z":-0.21583019196987152},{"x":0.7138724327087402,"y":0.5984061360359192,"z":-0.0901646688580513},{"x":0.6639502644538879,"y":0.42965298891067505,"z":-0.13738928735256195},{"x":0.6392043828964233,"y":0.315335214138031,"z":-0.17797516286373138},{"x":0.6221522688865662,"y":0.215796560049057,"z":-0.21018019318580627},{"x":0.8053074479103088,"y":0.5581952333450317,"z":-0.09849842637777328},{"x":0.8013037443161011,"y":0.35290876030921936,"z":-0.13286928832530975},{"x":0.8055440783500671,"y":0.22059544920921326,"z":-0.1694059818983078},{"x":0.8087284564971924,"y":0.10411399602890015,"z":-0.2007635235786438},{"x":0.8892788887023926,"y":0.5780625343322754,"z":-0.11441259831190109},{"x":0.9027993679046631,"y":0.3813081979751587,"z":-0.1658276468515396},{"x":0.9194008708000183,"y":0.2641948461532593,"z":-0.21055684983730316},{"x":0.9281132221221924,"y":0.1560976207256317,"z":-0.2448335587978363},{"x":0.9645347595214844,"y":0.643187403678894,"z":-0.13456428050994873},{"x":1.0217101573944092,"y":0.54313063621521,"z":-0.19285351037979126},{"x":1.0712286233901978,"y":0.5081151723861694,"z":-0.2180902063846588},{"x":1.1070854663848877,"y":0.4762517213821411,"z":-0.2352285534143448}]]
script.js:124 [[{"x":0.8703004121780396,"y":0.9648945927619934,"z":0.0000013311509974300861},{"x":0.7689233422279358,"y":0.9532482624053955,"z":-0.07444275170564651},{"x":0.6585955023765564,"y":0.9074979424476624,"z":-0.1251223087310791},{"x":0.5567349791526794,"y":0.9055793285369873,"z":-0.1697239726781845},{"x":0.46537983417510986,"y":0.9173372983932495,"z":-0.21990086138248444},{"x":0.7198460102081299,"y":0.5923007130622864,"z":-0.09706347435712814},{"x":0.6630349159240723,"y":0.42493629455566406,"z":-0.1448640376329422},{"x":0.6365411877632141,"y":0.31033754348754883,"z":-0.1843474805355072},{"x":0.6199336051940918,"y":0.2101970911026001,"z":-0.2158793956041336},{"x":0.8100979328155518,"y":0.5513138771057129,"z":-0.10492360591888428},{"x":0.8018510341644287,"y":0.34806469082832336,"z":-0.14157375693321228},{"x":0.8056693077087402,"y":0.21214821934700012,"z":-0.18114858865737915},{"x":0.8115657567977905,"y":0.09598743915557861,"z":-0.21441704034805298},{"x":0.8922126293182373,"y":0.5714350342750549,"z":-0.12027827650308609},{"x":0.9049876928329468,"y":0.38115814328193665,"z":-0.1776755154132843},{"x":0.9220544695854187,"y":0.26010647416114807,"z":-0.23269642889499664},{"x":0.9345092177391052,"y":0.15459248423576355,"z":-0.27364224195480347},{"x":0.9637272357940674,"y":0.637814462184906,"z":-0.13965441286563873},{"x":1.0386666059494019,"y":0.5442309379577637,"z":-0.2094816118478775},{"x":1.1037882566452026,"y":0.5106533169746399,"z":-0.24622316658496857},{"x":1.1531044244766235,"y":0.486528217792511,"z":-0.27035194635391235}]]
script.js:124 [[{"x":0.8781510591506958,"y":0.9898098707199097,"z":0.0000011465513125585858},{"x":0.7696915864944458,"y":0.9590485095977783,"z":-0.06420252472162247},{"x":0.6612800359725952,"y":0.8978290557861328,"z":-0.11075739562511444},{"x":0.5617229342460632,"y":0.8798172473907471,"z":-0.15257865190505981},{"x":0.4719560444355011,"y":0.8879283666610718,"z":-0.19780075550079346},{"x":0.7095574736595154,"y":0.5895835161209106,"z":-0.07661102712154388},{"x":0.655483067035675,"y":0.42233580350875854,"z":-0.1217871829867363},{"x":0.6259021759033203,"y":0.31378069519996643,"z":-0.16048333048820496},{"x":0.6031301617622375,"y":0.2199588418006897,"z":-0.1909990757703781},{"x":0.797824501991272,"y":0.5526458621025085,"z":-0.08552677929401398},{"x":0.7879494428634644,"y":0.349084734916687,"z":-0.12050037831068039},{"x":0.7869051098823547,"y":0.22318875789642334,"z":-0.15533609688282013},{"x":0.7855789065361023,"y":0.11279380321502686,"z":-0.18392163515090942},{"x":0.8808967471122742,"y":0.5728333592414856,"z":-0.10202548652887344},{"x":0.8869067430496216,"y":0.37287142872810364,"z":-0.14669610559940338},{"x":0.8993657827377319,"y":0.2526383101940155,"z":-0.18291054666042328},{"x":0.9049922227859497,"y":0.14251527190208435,"z":-0.21048501133918762},{"x":0.958966076374054,"y":0.6340690851211548,"z":-0.12316590547561646},{"x":1.0091760158538818,"y":0.513163685798645,"z":-0.1669173687696457},{"x":1.0500398874282837,"y":0.4401213526725769,"z":-0.18539226055145264},{"x":1.0784142017364502,"y":0.3717501163482666,"z":-0.19871991872787476}]]
script.js:124 [[{"x":0.8776692748069763,"y":0.9794930219650269,"z":8.433294738097175e-7},{"x":0.766642689704895,"y":0.9466441869735718,"z":-0.05124255269765854},{"x":0.6594768762588501,"y":0.8723697662353516,"z":-0.08625027537345886},{"x":0.5718791484832764,"y":0.8253118991851807,"z":-0.11823857575654984},{"x":0.4991890490055084,"y":0.8105403184890747,"z":-0.1528962105512619},{"x":0.7049950957298279,"y":0.5987946391105652,"z":-0.05566227436065674},{"x":0.6567143201828003,"y":0.4445483684539795,"z":-0.09828417748212814},{"x":0.6250503659248352,"y":0.35092055797576904,"z":-0.13565491139888763},{"x":0.5972045660018921,"y":0.2665860652923584,"z":-0.1640111654996872},{"x":0.7888489961624146,"y":0.565778911113739,"z":-0.06668970733880997},{"x":0.7700496912002563,"y":0.3724973797798157,"z":-0.09802161902189255},{"x":0.7606698274612427,"y":0.25348588824272156,"z":-0.1286533772945404},{"x":0.7526750564575195,"y":0.1461450457572937,"z":-0.1534213274717331},{"x":0.8700288534164429,"y":0.5803363919258118,"z":-0.08493747562170029},{"x":0.8613367080688477,"y":0.39746761322021484,"z":-0.12068911641836166},{"x":0.8624588251113892,"y":0.28641998767852783,"z":-0.14563211798667908},{"x":0.8600950241088867,"y":0.18428021669387817,"z":-0.16497386991977692},{"x":0.9486103653907776,"y":0.6308736801147461,"z":-0.10791129618883133},{"x":0.9692126512527466,"y":0.5038874745368958,"z":-0.13871809840202332},{"x":0.9849631786346436,"y":0.4236794114112854,"z":-0.14747002720832825},{"x":0.9936079978942871,"y":0.34860876202583313,"z":-0.15447156131267548}]]
script.js:124 [[{"x":0.848159670829773,"y":1.0008916854858398,"z":-0.0000011557824564079056},{"x":0.7417598962783813,"y":0.9552924633026123,"z":-0.05090413615107536},{"x":0.6432437896728516,"y":0.8645215034484863,"z":-0.08779945969581604},{"x":0.5934991836547852,"y":0.7656782865524292,"z":-0.12811553478240967},{"x":0.5840463638305664,"y":0.6548700332641602,"z":-0.15898381173610687},{"x":0.6728586554527283,"y":0.6117318868637085,"z":-0.019537007436156273},{"x":0.6446182131767273,"y":0.4605117440223694,"z":-0.09431519359350204},{"x":0.6451900601387024,"y":0.5802738070487976,"z":-0.1383778154850006},{"x":0.6639842391014099,"y":0.6768710017204285,"z":-0.15662185847759247},{"x":0.750218391418457,"y":0.6014033555984497,"z":-0.028139809146523476},{"x":0.7336814999580383,"y":0.4404744505882263,"z":-0.10710230469703674},{"x":0.7233364582061768,"y":0.6113216280937195,"z":-0.12909288704395294},{"x":0.7289826273918152,"y":0.7160245180130005,"z":-0.1229843944311142},{"x":0.825264036655426,"y":0.6112036108970642,"z":-0.04972316324710846},{"x":0.8089388012886047,"y":0.46831607818603516,"z":-0.1244504377245903},{"x":0.7914180755615234,"y":0.6325792074203491,"z":-0.11027873307466507},{"x":0.7950381636619568,"y":0.7391717433929443,"z":-0.07875888049602509},{"x":0.9036799669265747,"y":0.6446822881698608,"z":-0.07615258544683456},{"x":0.8772179484367371,"y":0.5380708575248718,"z":-0.12274006009101868},{"x":0.8535578846931458,"y":0.6540143489837646,"z":-0.10579916089773178},{"x":0.8527462482452393,"y":0.7431488633155823,"z":-0.07916611433029175}]]
script.js:124 [[{"x":0.841061532497406,"y":1.0571227073669434,"z":-0.0000013352405403566081},{"x":0.7331993579864502,"y":0.9930845499038696,"z":-0.03946785628795624},{"x":0.636512815952301,"y":0.8924055099487305,"z":-0.07126521319150925},{"x":0.5897271037101746,"y":0.7811851501464844,"z":-0.10707393288612366},{"x":0.5900688171386719,"y":0.6652304530143738,"z":-0.13392068445682526},{"x":0.6749743223190308,"y":0.6711767911911011,"z":-0.008179258555173874},{"x":0.6393575072288513,"y":0.5549972057342529,"z":-0.08093161135911942},{"x":0.6437657475471497,"y":0.6815142035484314,"z":-0.12405861169099808},{"x":0.667112410068512,"y":0.7675915956497192,"z":-0.14268696308135986},{"x":0.7480028867721558,"y":0.6602217555046082,"z":-0.020291604101657867},{"x":0.7143656015396118,"y":0.5466830134391785,"z":-0.09110676497220993},{"x":0.7081539034843445,"y":0.703610360622406,"z":-0.10809145122766495},{"x":0.7219190001487732,"y":0.7798627614974976,"z":-0.10261251777410507},{"x":0.8230068683624268,"y":0.6709165573120117,"z":-0.04504462704062462},{"x":0.7884954214096069,"y":0.5707893967628479,"z":-0.1117701530456543},{"x":0.779591977596283,"y":0.722224235534668,"z":-0.09141984581947327},{"x":0.7940711379051208,"y":0.7928798198699951,"z":-0.060229089111089706},{"x":0.9028377532958984,"y":0.7030512094497681,"z":-0.07408294826745987},{"x":0.8578648567199707,"y":0.6329119205474854,"z":-0.11239631474018097},{"x":0.8424752354621887,"y":0.7446366548538208,"z":-0.08993270248174667},{"x":0.8545011878013611,"y":0.8054699301719666,"z":-0.062107574194669724}]]
script.js:124 [[{"x":0.8202288150787354,"y":1.1722571849822998,"z":-0.0000014220609045878518},{"x":0.7181037664413452,"y":1.131995439529419,"z":-0.02344546653330326},{"x":0.6213394403457642,"y":1.0292171239852905,"z":-0.04407235234975815},{"x":0.5845188498497009,"y":0.9353037476539612,"z":-0.06878068298101425},{"x":0.6016528606414795,"y":0.8462224006652832,"z":-0.08865717053413391},{"x":0.6548718214035034,"y":0.7721044421195984,"z":-0.006744460202753544},{"x":0.6075148582458496,"y":0.7307649850845337,"z":-0.06167932599782944},{"x":0.6010696291923523,"y":0.833366870880127,"z":-0.10198137164115906},{"x":0.6173583269119263,"y":0.9188797473907471,"z":-0.12248013913631439},{"x":0.7325752973556519,"y":0.7495954036712646,"z":-0.022255804389715195},{"x":0.679798424243927,"y":0.7393556237220764,"z":-0.0716724768280983},{"x":0.6729722619056702,"y":0.854890763759613,"z":-0.09165877848863602},{"x":0.688216507434845,"y":0.9349474310874939,"z":-0.09539247304201126},{"x":0.8119821548461914,"y":0.763379693031311,"z":-0.04549994319677353},{"x":0.7565029859542847,"y":0.7801496386528015,"z":-0.09370864927768707},{"x":0.7537546753883362,"y":0.9015036225318909,"z":-0.08558235317468643},{"x":0.7691783905029297,"y":0.9729694128036499,"z":-0.06976901739835739},{"x":0.8901439905166626,"y":0.8061813116073608,"z":-0.07207512855529785},{"x":0.8336741328239441,"y":0.8312281370162964,"z":-0.10454371571540833},{"x":0.8205039501190186,"y":0.9323990345001221,"z":-0.09063383936882019},{"x":0.8299579620361328,"y":0.9952386617660522,"z":-0.07097698003053665}]]
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 [[{"x":0.9059802889823914,"y":0.4420326352119446,"z":-1.9939236040045216e-7},{"x":0.8867474794387817,"y":0.40834441781044006,"z":-0.0032773083075881004},{"x":0.8620104193687439,"y":0.37859779596328735,"z":-0.011041558347642422},{"x":0.8375500440597534,"y":0.36288562417030334,"z":-0.01932063326239586},{"x":0.8170599937438965,"y":0.3501429855823517,"z":-0.02862936072051525},{"x":0.8793790936470032,"y":0.34129658341407776,"z":-0.018600713461637497},{"x":0.8612026572227478,"y":0.312574177980423,"z":-0.031023511663079262},{"x":0.8398833274841309,"y":0.3080388605594635,"z":-0.03941141068935394},{"x":0.8219737410545349,"y":0.3116580545902252,"z":-0.04473546892404556},{"x":0.885513186454773,"y":0.35877788066864014,"z":-0.02297045849263668},{"x":0.8444751501083374,"y":0.3664717376232147,"z":-0.03363531455397606},{"x":0.823562741279602,"y":0.386599063873291,"z":-0.036933548748493195},{"x":0.8139265179634094,"y":0.40186384320259094,"z":-0.04011458903551102},{"x":0.886612057685852,"y":0.38659533858299255,"z":-0.027223005890846252},{"x":0.848463773727417,"y":0.394472599029541,"z":-0.036062948405742645},{"x":0.8313329219818115,"y":0.40783146023750305,"z":-0.03442220017313957},{"x":0.8211755156517029,"y":0.4189153015613556,"z":-0.03402038291096687},{"x":0.886059582233429,"y":0.41559526324272156,"z":-0.03150904178619385},{"x":0.855987012386322,"y":0.4241280257701874,"z":-0.03921050578355789},{"x":0.8420834541320801,"y":0.4319705367088318,"z":-0.03716794028878212},{"x":0.8338919878005981,"y":0.43831610679626465,"z":-0.03482401743531227}]]
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
script.js:124 []
+53
View File
@@ -0,0 +1,53 @@
from fastapi import FastAPI, Request
import uvicorn
from starlette.middleware.cors import CORSMiddleware
import pickle
import numpy as np
app = FastAPI()
origins = ["http://localhost"]
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
model_dict = pickle.load(open("./model.p", "rb"))
model = model_dict["model"]
labels_dict = {0: "hello", 1: "i love you", 2: "yes", 3: "good", 4: "bad", 5: "okay", 6: "you", 7: "i/i'm", 8: "why", 9: "no"}
@app.get("/")
async def read_root():
return {"message": "Hello World"}
@app.post("/")
async def process_json(request: Request):
# Get the JSON data from the request
data = await request.json()
if len(data) == 0:
return {"result": "no data"}
hands_data = data
data_aux = []
# hand landmarks are taken from data.json
if len(hands_data) == 42:
hand = hands_data[:21]
else:
hand = hands_data
for landmark in hand:
x = landmark["x"]
y = landmark["y"]
data_aux.append(x)
data_aux.append(y)
prediction = model.predict([np.asarray(data_aux)])
predicted_sign = labels_dict[int(prediction[0])]
print(predicted_sign)
return {"result": predicted_sign}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
Binary file not shown.
+8
View File
@@ -0,0 +1,8 @@
home = C:\Users\mihne\AppData\Local\Programs\Python\Python310
implementation = CPython
version_info = 3.10.7.final.0
virtualenv = 20.16.7
include-system-site-packages = false
base-prefix = C:\Users\mihne\AppData\Local\Programs\Python\Python310
base-exec-prefix = C:\Users\mihne\AppData\Local\Programs\Python\Python310
base-executable = C:\Users\mihne\AppData\Local\Programs\Python\Python310\python.exe
+60
View File
@@ -0,0 +1,60 @@
# DEPENDENCIES ------>
import json
import pickle
import numpy as np
model_dict = pickle.load(open("./model.p", "rb"))
model = model_dict["model"]
labels_dict = {1: "hello", 2: "Nothing"}
hands_data = json.load(open("./data.json", "r"))
data_aux = []
# hand landmarks are taken from data.json
hand = hands_data[0]
for landmark in hand:
x = landmark["x"]
y = landmark["y"]
z = landmark["z"]
data_aux.append(x)
data_aux.append(y)
data_aux.append(z)
prediction = model.predict([np.asarray(data_aux)])
print(prediction)
predicted_sign = labels_dict[int(prediction[0])]
print(predicted_sign)
data_aux = []
# if results.multi_hand_landmarks:
# for hand_landmarks in results.multi_hand_landmarks:
# mp_drawing.draw_landmarks(
# frame,
# hand_landmarks,
# mp_hands.HAND_CONNECTIONS,
# mp_drawing_styles.get_default_hand_landmarks_style(),
# mp_drawing_styles.get_default_hand_connections_style())
#
# for i in range(len(hand_landmarks.landmark)):
# x = hand_landmarks.landmark[i].x
# y = hand_landmarks.landmark[i].y
# z = hand_landmarks.landmark[i].z
# data_aux.append(x)
# data_aux.append(y)
# data_aux.append(z)
# x_.append(x)
# y_.append(y)
# prediction = model.predict([np.asarray(data_aux)])
# predicted_sign = labels_dict[int(prediction[0])]
# data_aux = []
# x_ = []
# y_ = []
#
# cv2.imshow("Handy", frame)
# cv2.waitKey(1)
#
# capture.release()
# cv2.destroyAllWindows()
@@ -0,0 +1,35 @@
import os
import cv2
DATA_DIR = "./data"
if not os.path.exists(DATA_DIR):
os.makedirs(DATA_DIR)
cap = cv2.VideoCapture(0)
while True:
# ask user for word number to collect data for
i = int(input("Enter word number (-1 to eit): "))
if i == -1:
break
if os.path.exists(os.path.join(DATA_DIR, str(i))):
# find last image number
count = len(os.listdir(os.path.join(DATA_DIR, str(i))))
else:
os.makedirs(os.path.join(DATA_DIR, str(i)))
count = 0
print("Collecting data")
done = False
# takes a picture every time the space bar is pressed, ends when q is pressed
print("Press space to take a picture, press q to stop")
while not done:
ret, frame = cap.read()
cv2.imshow("Frame", frame)
if cv2.waitKey(25) == ord(" "):
print("Saving image " + str(count))
cv2.imwrite(os.path.join(DATA_DIR, str(i), str(count) + ".jpg"), frame)
count += 1
if cv2.waitKey(25) == ord("q"):
done = True
break
cap.release()
cv2.destroyAllWindows()