[ed159a]: / yolov5 / __pycache__ / val.cpython-38.pyc

Download this file

99 lines (98 with data), 12.5 kB

U

hĤaUEã@sÌdZddlZddlZddlZddlZddlmZddlmZddl	Z
ddlZddlmZee
ƒ ¡ZejdZeeƒejkrŒej eeƒ¡eej ee ¡¡ƒZddlmZddlmZddlmZdd	lmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+dd
l,m-Z-m.Z.ddl/m0Z0m1Z1m2Z2ddl3m4Z4m5Z5d
d„Z6dd„Z7dd„Z8e 9¡ddddddddddddddedddddddedƒdeƒdfdd„ƒZ:dd „Z;d!d"„Z<e=d#krÈe;ƒZ>e<e>ƒdS)$z•
Validate a trained YOLOv5 model accuracy on a custom dataset

Usage:
    $ python path/to/val.py --data coco128.yaml --weights yolov5s.pt --img 640
éN)ÚPath)ÚThread)Útqdm)ÚDetectMultiBackend)Ú	Callbacks)Úcreate_dataloader)ÚLOGGERÚbox_iouÚ
check_datasetÚcheck_img_sizeÚcheck_requirementsÚ
check_yamlÚcoco80_to_coco91_classÚcolorstrÚincrement_pathÚnon_max_suppressionÚ
print_argsÚscale_coordsÚ	xywh2xyxyÚ	xyxy2xywh)ÚConfusionMatrixÚap_per_class)Úoutput_to_targetÚplot_imagesÚplot_val_study)Ú
select_deviceÚ	time_syncc
Cs¤t |¡ddddg}| ¡D]€^}}}tt |¡ dd¡ƒ| d¡ ¡}|r`|f||f˜n|f|˜}	t|dƒ$}
|
 dt|	ƒ ¡|	d¡W5QRXqdS)NérééÿÿÿÿÚaz%g Ú
)	ÚtorchÚtensorÚtolistrÚviewÚopenÚwriteÚlenÚrstrip)ÚprednÚ	save_confÚshapeÚfileZgnZxyxyZconfÚclsZxywhÚlineÚf©r1ú1C:\Users\safak\Desktop\blood_cancer\yolov5\val.pyÚsave_one_txt%s$r3c	Cs¶|j ¡rt|jƒn|j}t|dd…dd…fƒ}|dd…dd…f|dd…dd…fd8<t| ¡| ¡ƒD]<\}}| ||t|dƒdd„|Dƒt|ddƒdœ¡qtdS)NréécSsg|]}t|dƒ‘qS)é)Úround©Ú.0Úxr1r1r2Ú
<listcomp>7sz!save_one_json.<locals>.<listcomp>)Úimage_idZcategory_idÚbboxÚscore)ÚstemÚ	isnumericÚintrÚzipr$Úappendr7)r*ÚjdictÚpathÚ	class_mapr<ÚboxÚpÚbr1r1r2Ú
save_one_json/s0ýrJcCsŠtj|jd|jdtj|jd}t|dd…dd…f|dd…dd…fƒ}t ||dk|dd…dd…f|dd…dfk@¡}|djdr†t t |d¡||d|dfdd…dffd¡ 	¡ 
¡}|djddkrH||dd…df ¡ddd…}|tj
|dd…dfd	d
d}|tj
|dd…dfd	d
d}t |¡ |j¡}|dd…dd…f|k||dd…df ¡<|S)a
    Return correct predictions matrix. Both sets of boxes are in (x1, y1, x2, y2) format.
    Arguments:
        detections (Array[N, 6]), x1, y1, x2, y2, conf, class
        labels (Array[M, 5]), class, x1, y1, x2, y2
    Returns:
        correct (Array[N, 10]), for 10 IoU levels
    r)ÚdtypeÚdeviceNrrr5r4rT)Úreturn_indexr6)r"Úzerosr,ÚboolrLr	ÚwhereÚcatÚstackÚcpuÚnumpyÚargsortÚnpÚuniqueÚTensorÚtoÚlong)Z
detectionsÚlabelsÚiouvÚcorrectZiour:Úmatchesr1r1r2Ú
process_batch;s	"*6<""",r_é é€çü©ñÒMbP?ç333333ã?ÚvalÚFúruns/valÚexpTc`sF
|dk	}|rJt| ¡ƒjdd}}}||jdkM}|r@| ¡n| ¡nÜt||d}tt|ƒ||d}|rv|dn|j	dddt
|||d}|j|j|j
}}}t||d	}||s¾|oÆ|jdkM}|rè|rÜ|j ¡n|j ¡n6|rô|j}n*d}d
}t d¡}t d|›d|›d
¡t|ƒ}| ¡t| d¡tƒoL|d d¡}|rXd
n
t|dƒ}t ddd¡ |¡} |  ¡}!|sê|jd
d||f|d|dkrªdnd}"|dkr¼|nd}t|||||||"|t |›dƒdd}d‰t!|d}#dd„t"t#|dƒr|j$n|j%j$ƒDƒ}$|r,t&ƒn
t't(d ƒƒ}%d!d"}&dddgdddddddf\}'}(})}*}+},}-}.tj)d|d#}/ggggf\}0}1}2}3t*||&d$d%}4t"|4ƒD]ö\}5\}6‰}7}8t+ƒ}9|sÆ|rÞ|6j|dd&}6ˆ |¡‰|rì|6 ¡n|6 ¡}6|6d'}6|6j,\}:};}<}=t+ƒ}>|'d|>|97<|r2||6ƒn||6|	dd(\}?}@|'d
t+ƒ|>7<|r||/|d)d*„|@Dƒˆƒd
7}/ˆdd…d+d…ft -|=|<|=|<g¡ |¡9<|rȇfd,d*„t(|:ƒDƒng}At+ƒ}Bt.|?|||Ad|d-}?|'d+t+ƒ|B7<t"|?ƒD]$\}C}Dˆˆdd…df|Ckd
d…f}Et/|Eƒ}F|FrP|Edd…df 0¡ng}Gt|7|Cƒ|8|Cd}H}Iˆd
7‰t/|Dƒdkr¶|Fr|1 1tj)d|!tj2d.t -¡t -¡|Gf¡q|rÌd|Ddd…d/f<|D 3¡}Jt4|6|Cj,d
d…|Jdd…dd0…f|I|8|Cd
ƒ|FrŠt5|Edd…d
d/…fƒ}Kt4|6|Cj,d
d…|K|I|8|Cd
ƒt 6|Edd…dd
…f|Kfd
¡}Lt7|J|L| ƒ}M|r¢|# 7|J|L¡ntj)|Dj,d|!tj2d.}M|1 1|M 8¡|Ddd…d0f 8¡|Ddd…d/f 8¡|Gf¡|rüt9|J|
|I|d|Hj:d1d2|rt;|J|0|H|%ƒ| <d3|D|J|H|$|6|C¡q|r¢|5dkr¢|d4|5›d5}Nt=t>|6ˆ|7|N|$fdd6 ?¡|d4|5›d7}Nt=t>|6t@|?ƒ|7|N|$fdd6 ?¡q¢d8d*„tA|1ŽDƒ}1t/|1ƒrB|1d B¡rBtC|1|||$d9œŽ\}O}P}(})}*}2}3|2dd…df|2 Dd
¡}Q}2|( D¡|) D¡|Q D¡|2 D¡f\}+},}-}.tEjF|1d GtEjH¡|d:}Rn
t )d
¡}Rd;}St |Sd<ˆ|R I¡|+|,|-|.f¡|
s†|d=krâ|sâ|d
krât/|1ƒrât"|3ƒD]>\}T}Ut |S|$|Uˆ|R|U|(|T|)|T|Q|T|2|Tf¡q¢tJ‡fd>d?„|'Dƒƒ}V|s|d||f}It d@|I›|V¡|rD|#jK|t'|$ L¡ƒdA| <dB¡|	ržt/|0ƒ	rž|dk	r|tt|t'ƒrt|dn|ƒj:ndC}Wtt| dDdE¡ƒdFƒ}Xt||W›dGƒ}Yt dH|Y›dI¡tM|YdJƒ}NtN O|0|N¡W5QRXzŠtPdKgƒddLlQmR}ZddMlSmT}[|Z|Xƒ}\|\ U|Y¡}D|[|\|DdNƒ}]|	r<dOd*„|jVjWDƒ|]jX_Y|] Z¡|] [¡|] \¡|]j]dd+…\}.}-Wn4t^k
	rœ}^zt dP|^›¡W5d}^~^XYnX| ¡|	sò|	rÔdQt/t'| _dR¡ƒƒ›dS|d›ndC}&t dTt dU|ƒ›|&›¡tE )|¡|.}_t"|3ƒD]\}T}U|2|T|_|U<
q|+|,|-|.f|/ 8¡t/|ƒ 0¡˜|_|VfS)VNTFrS)Ú
batch_size)Úexist_okr[)Úparentsri)rLÚdnn)Úsrz2Forcing --batch-size 1 square inference shape(1,3,ú,z) for non-PyTorch backendsrdzcoco/val2017.txtÚncgà?gffffffî?é
r6)ÚimgszÚhalfÚspeedg©ÚtrainrdÚtestz: )ÚpadÚrectÚprefixr)rncSsi|]\}}||“qSr1r1)r9ÚkÚvr1r1r2Ú
<dictcomp> szrun.<locals>.<dictcomp>Únamesièz%20s%11s%11s%11s%11s%11s%11s)ZClassZImagesZLabelsÚPÚRzmAP@.5z
mAP@.5:.95)rLz {l_bar}{bar:10}{r_bar}{bar:-10b})ÚdescÚ
bar_format)Únon_blockingéÿ)ÚaugmentrdcSsg|]}| ¡‘qSr1)Úfloatr8r1r1r2r;¸szrun.<locals>.<listcomp>r4cs,g|]$}ˆˆdd…df|kdd…f‘qS)Nrrr1)r9Úi)Útargetsr1r2r;¼s)r[Zmulti_labelZagnostic)rKr5rú.txt)r-Zon_val_image_endZ	val_batchz_labels.jpg)ÚtargetÚargsÚdaemonz	_pred.jpgcSsg|]}t |d¡‘qS)r)rVÚconcatenater8r1r1r2r;ïs)ÚplotÚsave_dirr|)Ú	minlengthz$%20s%11i%11i%11.3g%11.3g%11.3g%11.3gÚallé2c3s|]}|ˆdVqdS)g@@Nr1r8)Úseenr1r2Ú	<genexpr>szrun.<locals>.<genexpr>zKSpeed: %.1fms pre-process, %.1fms inference, %.1fms NMS per image at shape )rr|Z
on_val_endrerEz../cocoz"annotations/instances_val2017.jsonz_predictions.jsonz&
Evaluating pycocotools mAP... saving ú...ÚwZpycocotools)ÚCOCO)ÚCOCOevalr=cSsg|]}tt|ƒjƒ‘qSr1)rArr?r8r1r1r2r;szpycocotools unable to run: r!zlabels/*.txtz labels saved to zResults saved to Úbold)`ÚnextÚ
parametersrLÚtyperqr„rrrÚmkdirrÚstrideÚptÚenginerÚmodelrhr"rÚinfor
ÚevalÚ
isinstanceÚgetÚstrÚendswithrAÚlinspacerYÚnumelÚwarmuprrrÚ	enumerateÚhasattrr|ÚmodulerÚlistÚrangerNrrr,rXrr(r$rCrOÚclonerrrQr_rSr3r?rJÚrunrrÚstartrrBÚanyrÚmeanrVÚbincountÚastypeÚint64ÚsumÚtuplerŒÚvaluesr&ÚjsonÚdumprZpycocotools.cocor•Zpycocotools.cocoevalr–ZloadResÚdatasetZ	img_filesÚparamsZimgIdsZevaluateÚ
accumulateÚ	summarizeÚstatsÚ	ExceptionÚglob)`ÚdataÚweightsrhrpÚ
conf_thresÚ	iou_thresÚtaskrLÚ
single_clsrƒÚverboseÚsave_txtÚsave_hybridr+Ú	save_jsonÚprojectÚnamerirqrkrŸÚ
dataloaderrÚplotsÚ	callbacksÚcompute_lossÚtrainingrržrœÚis_cocornr\ZniourvZconfusion_matrixr|rFrlÚdtrHÚrÚf1ÚmpÚmrZmap50ÚmapÚlossrDr¿ÚapZap_classÚpbarZbatch_iZimÚpathsÚshapesÚt1ÚnbÚ_ÚheightÚwidthÚt2ÚoutZ	train_outÚlbÚt3ÚsiÚpredr[ÚnlZtclsrEr,r*ZtboxZlabelsnr]r0ÚtpÚfpZap50ÚntZpfr…ÚcÚtr”Z	anno_jsonZ	pred_jsonr•r–Úannor¡ÚeÚmapsr1)r‘r†r2r¯Ss"
 ÿÿ
(*
 0  (4$ 6$ $
 *8
,

",r¯cCs°t ¡}|jdttddd|jddttddd	|jd
tddd|jd
ddtddd|jdtddd|jdtddd|jdddd|jdddd|jdd d!d"|jd#d d$d"|jd%d d&d"|jd'd d(d"|jd)d d*d"|jd+d d,d"|jd-d d.d"|jd/td0d1d|jd2d3d1d|jd4d d5d"|jd6d d7d"|jd8d d9d"| ¡}t|j	ƒ|_	|j
|j	 d:¡O_
|j|j
O_ttj|ƒ|S);Nz--datazdata/coco128.yamlzdataset.yaml path)ršÚdefaultÚhelpz	--weightsú+z
yolov5s.ptzmodel.pt path(s))Únargsršrórôz--batch-sizer`z
batch sizez--imgszz--imgz
--img-sizerazinference size (pixels)z--conf-thresrbzconfidence thresholdz--iou-thresrczNMS IoU thresholdz--taskrdz train, val, test, speed or study)rórôz--devicerez%cuda device, i.e. 0 or 0,1,2,3 or cpuz--single-clsÚ
store_trueztreat as single-class dataset)Úactionrôz	--augmentzaugmented inferencez	--verbosezreport mAP by classz
--save-txtzsave results to *.txtz
--save-hybridz-save label+prediction hybrid results to *.txtz--save-confz%save confidences in --save-txt labelsz--save-jsonzsave a COCO-JSON results filez	--projectrfzsave to project/namez--namergz
--exist-okz*existing project/name ok, do not incrementz--halfz!use FP16 half-precision inferencez--dnnz!use OpenCV DNN for ONNX inferencez	coco.yaml)ÚargparseÚArgumentParserÚadd_argumentr¤ÚROOTrAr„Ú
parse_argsr
rÂrËr¥rÉrÊrÚFILEr?)ÚparserÚoptr1r1r2Ú	parse_opt1s6rc	Cspttddd|jdkrJ|jdkr8t d|j›d¡tft|ƒŽn"t|j	t
ƒr\|j	n|j	g}d|_|jd	kr¨d
\|_|_|_
|D]|_	tft|ƒddi—ŽqˆnÄ|jd
krl|D]ž|_	dt|jƒj›dt|j	ƒj›d}t
tdddƒƒg}}|D]J|_t d|›d|j›d¡tft|ƒddi—Ž\}}}| ||¡qútj||ddq¸t d¡t|ddS)Nzrequirements.txt)ZtensorboardÚthop)ÚrequirementsÚexcludersrbzWARNING: confidence threshold z* >> 0.001 will produce invalid mAP values.Trr)gÐ?gÍÌÌÌÌÌÜ?FrÏFZstudyZstudy_rár‡éi€é€z	
Running z	 --imgsz r“z%10.4g)Úfmtzzip -r study.zip study_*.txt)r:)rrürÆrÄrr r¯Úvarsr¢rÃr¬rqrÅrËrrÂr?r­rprCrVÚsavetxtÚosÚsystemr)rrÃr0r:ÚyrÕrárïr1r1r2ÚmainOs,




"

r
Ú__main__)?Ú__doc__rùr¹r
ÚsysÚpathlibrÚ	threadingrrTrVr"rÚ__file__Úresolverþrjrür¤rErCÚrelpathÚcwdZ
models.commonrÚutils.callbacksrÚutils.datasetsrÚ
utils.generalrr	r
rrr
rrrrrrrrÚ
utils.metricsrrÚutils.plotsrrrÚutils.torch_utilsrrr3rJr_Úno_gradr¯rr
Ú__name__rr1r1r1r2Ú<module>sr
@
ç^