From 63bc54a4ce8e3db341c6576f122479d5e9e12d61 Mon Sep 17 00:00:00 2001 From: sonnhh Date: Mon, 28 Sep 2020 07:15:13 +0000 Subject: [PATCH] new log, no plate still ocr --- app.py | 39 ++++++++++++++++++++------------------- app.pyc | Bin 6628 -> 6491 bytes plate_detect.pyc | Bin 2222 -> 2173 bytes plate_ocr.pyc | Bin 5835 -> 5855 bytes 4 files changed, 20 insertions(+), 19 deletions(-) diff --git a/app.py b/app.py index afb14e6..f3dce78 100644 --- a/app.py +++ b/app.py @@ -83,18 +83,13 @@ def get_from_frame_automatic(): # cv2.imwrite("plate.jpg", Ilp) Ilp, mode = plate_detect.run(img_np) - print("\t Mode:", mode) if Ilp is None: - print("\t No plate found") return make_automatic_res("", track_id, 0) split_plate = mode == "square" - ocr_start_time = time.time() ocr_result, elements = plate_ocr.run(mode, Ilp, "full", split_plate) - ocr_end_time = time.time() - print("\tOCR time:", ocr_end_time - ocr_start_time) confidence = check_plate_quality(elements) if confidence > 10 or confidence < 7: @@ -163,13 +158,10 @@ def get_from_vehicle(): # cv2.imwrite("plate.jpg", Ilp) Ilps, modes = plate_detect.run2(img_np) - print("\t Mode:", mode) if Ilps is None: - print("\t No plate found") return make_automatic_res("", track_id, 0) - ocr_start_time = time.time() longest = '' longest_i = 0 for i, Ilp in enumerate(Ilps): @@ -177,7 +169,6 @@ def get_from_vehicle(): split_plate = mode == "square" ocr_result, elements = plate_ocr.run(mode, Ilp, "full", split_plate) - ocr_end_time = time.time() if len(ocr_result) > len(longest): longest = ocr_result longest_i = i @@ -185,8 +176,6 @@ def get_from_vehicle(): ocr_result = longest Ilp = Ilps[longest_i] - print("\tOCR time:", ocr_end_time - ocr_start_time) - confidence = check_plate_quality(elements) if confidence > 10 or confidence < 7: print("\t [WARNING] Too long/short plate:", ocr_result) @@ -251,6 +240,7 @@ def get_from_plate(): print_current_time() print (request.path) start_time = time.time() + data = request.json img64 = data.get("img64", "") @@ -268,6 +258,7 @@ def get_from_plate(): return {"ocr": ocr_result} except Exception as ex: print (ex) + return {"ocr": ""} """ @@ -289,22 +280,28 @@ def get_from_frame(): try: print_current_time() print(request.path) + start_time = time.time() data = request.json img64 = data.get("img64", "") if img64 == "": return {"ocr": "", "plate": ""} - mode = data.get("mode", "long") # ["long", "square"] + client_mode = data.get("mode", "long") # ["long", "square"] display = data.get("display", "full") # ["full", "row2"] + img_binary = extract_from_base64_str(img64) img_np = imageio.imread(io.BytesIO(img_binary)) - Ilp, mode = plate_detect.run(img_np) - # detect_stop = time.time() - # print "Detect time:", detect_stop - detect_start - if Ilp is None: return {"ocr": "", "plate": ""} - print("\tMode:", mode) - split_plate = mode == "square" - ocr_result, elements = plate_ocr.run(mode, Ilp, display, split_plate) + Ilp, mode = plate_detect.run(img_np) + + if Ilp is None: + Ilp = cv2.cvtColor(img_np, cv2.COLOR_RGB2GRAY) + Ilp = cv2.cvtColor(Ilp, cv2.COLOR_GRAY2BGR) + ocr_result, elements = plate_ocr.run(client_mode, Ilp, display, False) + end_time = time.time() + print("\tTotal time:", end_time - start_time) + return {"ocr": ocr_result, "plate": img64} + + ocr_result, elements = plate_ocr.run(mode, Ilp, display, False) plate_result = base64.b64encode(cv2.imencode(".jpg", Ilp)[1]).decode("utf-8") end_time = time.time() @@ -315,4 +312,8 @@ def get_from_frame(): } except Exception as ex: + return { + "ocr": "", + "plate": "" + } print(ex) diff --git a/app.pyc b/app.pyc index ee074bbb995c6efa5e3074115abf3d93f2243eb1..a9bbed8cb8bd1f16cc256c832ecc5427af7652ac 100644 GIT binary patch delta 2261 zcmZ`)&2Jk;6rWjdoXvW@UVC@#b>e(EY4giQ$A)NR$B!c(~qfBWjA>CDOd=uSM z?=^+N$eI@X$sMK&8B8q_p|aeX5@xyU+d{<(OJrN>6(uyo950Goi-wl4Sbk02rHv{^ zg*CEEgX3IfwlG@?B}@seq@u87MV@0uS*}^(hHtSf&kLnRON2F@5)mc_E`AM}ilxOe zVI?eAf=_wcPq#>z=OuqH;vrftcg}jtsNs98kEtz%m;GLB(#Kp`k5$T~Mg0ovZ&A@L z(xOWcHh>C)chYR=cB&Z`+FRH_KP+sK_eczb`u(Ed58$j0B30qA5tIVJWE6wTvC;oP zb#Z`0@E%@Mu;xtwAA|=z5nb>CDjV;ZH^<9ll>$j}a+x?0Cw};t#L13CK zCbv`s&}mT=ZuEuC<&$Qb%ZHs(iW9G&49 z?;_byE)qr-$;1=UFWr~S2kFMv_Hs~rpssA!>vuP`d4-mvdwLL^%(zi4bBkV&{?1Hl zibf4ZQ=DkZc#&>I+!z`g=w#^T;~AQ|F$#u$5Y1&#XTv9f&?EycGRjsJcuBYSL7s zS&`;y)N5CxGxkvW7N(7Np{3D*lo_i@r7A5@jY3t_!dOde^tFACZbjYBB>gFxb-wU^ z07@MwEl!0lQL+?MR_S8&kMq@FL+;{8vn0(vhPs@tN8h{Eqkm!87>6N>Leo^oj%mf9 z8qr`4ssoKh9qez$7&IF2Xrwr)El`5z{zf%=#(A>md8Xi#x}!wboWAIj;%HM7-SOYf zkKFWgA`NRn8Qt+rS~LW+f}a&ByxJ<$V%heDI#+!a{|6aPS&zsFlF&f(h`2ufXk-qm zAIO3HQPX9*=!RS}&=d4hWKei${BJ=+0$wC&cnJ-s!C72o7FVh79cB@4VVJ#{?PzoM zTwu$)8-bZnf(^K<*?qs|Z^?Brwu8;TY;4w-d2K1EHMZ+Krb7SOm0)?jRzzPL$B{-9 zRq_G-PlE><(P8n*Q%jKyHStMUp@X3n=>dPVR6$xL*p7bnKDIXG?pxAuX||*H%ICXY I^_VyDFPm`kDF6Tf delta 2449 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 dyHcl#tVQy$Fg_ejj2{&hi>c&} zYci1FgRwe^FY>M?y!FW!B{A{E_+or8eZU6|e}Ew|8WTNtc5N{-lY7s(=i_(J*UWeO zf8IZKIF~b9S6Ajv4Kwx&d+f;&f0EYfy^qG6F0^w_4jJ-xVma^Rff28@3(G~P81sp? zwQM^!utnyS+%hIn5BY~hr{bDk)vbi!lx7&h%j^PsjbRFnTg<6p8cobBXign>Vjc^( zz-b_Jnpi}O^aE&PiRhqP>SDRUoR-_d3eh2=RieX0YeYxfjJG3X&M4NMF>E;Fbl!WSa`bz8p7u-TyU>Y#G9SXZjjuCr zLzf!H^0ZE?CLKsHCYZ-U79wRSiY)cL?#_^GttlOQTHaqE=@?MOH9L{$22Y z!(>p2&FYVv$x5Ax8fs-$V?k9G$egcpAGZK?0;JIUfHhf*0l9yQ@M>FlTUL^;-NLJP zF7|L#{(Y0)NYwrh`0e+4t+BL46vK1p-x_)yXkQZEC7wuRNGxeHhJe_Xd%C+Jr|ta*u37 z2y`)k8A-n}U}8|}sL@pDL^*P)FKFE>{FQB(JF)W}%>L`#F}H!F9t?^WK|#=3+bxO| zYKx{q%|tyY5qL{Y1x*51+;ePQTe+vQB`mU|OXF{ag8NmrP@}I*g|;KtkFEFB50NM@ zhh(D8RK!x3t!UcX1y;0X9XnyApI_|Ew@1!RkF2iTnD^b|zD~c5n~C(f>Ek!e^h>8N zjJ&$I>>mGuPfbnoDgOo1PL6IS1PP-*tZ%aZvn1I}UiTL}BKqFm2gA{y_DIG_U%Twj zt%`YHM9tEtdmW>9zINTW$f38{%2o4kblxXs^%L3{7(Dv1v=`vx^09+F&zoSzZ=M$+ z%T1mj0~_i}#tbku1M*;iPRqX>T`iB=&-ht_@h_=ur`l$syXCWq7m3|?Se}96W#TrC fxw+2#vO72DJJI>-MByR{4FXYb7L4e<>e+t)N8+ta delta 1764 zcmZuxU1%It6u#%q&hG5&-|XyU|FUV)Y?C&&wZEthqGDT7Qi6XpVQh?{XBs+5wq|-O zG2H1sOba52D--(SOCJR3b3pJx5h_^pQRqVuLAko*#@t6zN9blZG6v66Fhz>uM~oL?!pg|3`f zwpNO65!hws+Fl8DOh)`u%XK`{AMl(ATziHgyusdNvkX&c++c1Q(`aI5QFALehIuU9 z0Jn)r;vX7@IZ4R=2dxd(8MJK?4Lr@a0CK^%_28|$6O$mdYka$wss-nX39 z+{0vg+MDR9D6b=4)<5cvMgXiUHI;6o5hD!vCpPcFLxA$; zJ#7l$_@<*z1H8C-F}VeBE`GuI61?~i<6T&c&!)eI<@jNGf%XOSdi z2(lt243U-vVN%4#C;CpltvcB%i*l3|l)X>}}Vga#iuq?IGu) zau%f}!UY@B@*Qb!du_~+ZmljY$`t0TutfDL`2+L}G0T)g?4n#{p(7pCyZ#SQ4;|4~ zu*%~w=~S60qvo&*3kPJL;Jm|w3w^>Q5gL8MvMhHAc`!+Y?t;vQnY3l9Z(!P*QiQs#Mi)>C3^xTCew%4s~Dc*fv{S zvasIk5@n)wv|wCRsZVv8CsNhfWLOh5%m~s%P+^#@Fj^s@6WJpaxGZz zjVCd!(=)Uq_XlMnf>0-(oYa-CXhdEzJ78& zn?8Ld2)v7eP?LA~^z;Ou4qhYF#Ay6?@osTTe?Pd~5?k6;5d_bYKE7)of}!{?dn6t# zeI9>Taxx#O&(a2M4C3EP2Z6^q=hP7>Ltd+c+5P3Y1zB!#6B1x>8>%Fk%m7m}APEKp z7+-Tn?UO;4SOQmVV``g??>JMN|2XHtLb`7m^Yg8R6>ok%cqg7OkLTVdr9uAcmyI{d GQ~v{`Ri+*Q