Main Content

precisionRecall

Get precision recall metrics of object detection results

Since R2024b

Description

[precision,recall,scores] = precisionRecall(metrics) gets the precision, recall, and prediction score values for all classes in the ClassNames property and all overlap thresholds in the OverlapThreshold property of the objectDetectionMetrics object metrics.

example

[precision,recall,scores] = precisionRecall(metrics,Name=Value) specifies precision and recall evaluation options using one or more name-value arguments. For example, ClassNames=["cars" "people"] specifies to get the precision recall metrics for the cars and people classes.

Examples

collapse all

Load a table containing image file names and ground truth bounding box labels into the workspace. The first column contains the image file names, and the remaining columns contain the labeled bounding boxes.

data = load("vehicleTrainingData.mat");
trainingData = data.vehicleTrainingData;

Set the value of the dataDir variable as the location where the vehicleTrainingData.mat file is located. Load the test data into a local vehicle data folder.

dataDir = fullfile(toolboxdir("vision"),"visiondata");
trainingData.imageFilename = fullfile(dataDir,trainingData.imageFilename);

Create an imageDatastore using the files from the table.

imds = imageDatastore(trainingData.imageFilename);

Create a boxLabelDatastore using the label column from the table.

blds = boxLabelDatastore(trainingData(:,2:end));

Load a pretrained YOLO v2 object detector, trained to detect vehicles, into the workspace.

vehicleDetector = load("yolov2VehicleDetector.mat");
detector = vehicleDetector.detector;

Plot Precision-Recall Curve

Run the detector on the test images. Set the detection threshold to a low value to detect as many objects as possible. This enables you to evaluate the detector precision across the full range of recall values.

results = detect(detector,imds,Threshold=0.01);

Compute metrics for evaluating the performance of the object detector.

metrics = evaluateObjectDetection(results,blds);

Get the precision, recall, and confidence scores for the vehicle class using the precisionRecall object function.

[precision,recall,scores] = precisionRecall(metrics);

Plot the precision-recall curve.

figure
plot(recall{1},precision{1})
grid on
title("Precision-Recall for Vehicle Class")
xlabel("Precision")
ylabel("Recall")

Figure contains an axes object. The axes object with title Precision-Recall for Vehicle Class, xlabel Precision, ylabel Recall contains an object of type line.

Display the confidence score thresholds corresponding to each point the precision-recall curve.

scores
scores = 1x1 cell array
    {[1 0.9890 0.9825 0.9808 0.9804 0.9785 0.9776 0.9775 0.9763 0.9752 0.9744 0.9744 0.9726 0.9718 0.9718 0.9717 0.9716 0.9713 0.9705 0.9700 0.9698 0.9688 0.9681 0.9672 0.9665 0.9648 0.9644 0.9639 0.9621 0.9615 0.9612 0.9609 0.9592 0.9585 0.9584 0.9577 0.9571 0.9569 0.9561 0.9558 0.9540 0.9524 0.9516 0.9506 0.9498 0.9485 0.9485 0.9475 0.9464 0.9462 0.9462 0.9462 0.9459 0.9459 0.9458 0.9452 0.9416 0.9410 0.9403 0.9394 0.9384 0.9382 0.9375 0.9369 0.9367 0.9366 0.9360 0.9354 0.9353 0.9351 0.9345 0.9342 0.9339 0.9337 0.9332 0.9324 0.9290 0.9282 0.9276 0.9276 0.9266 0.9252 0.9252 0.9238 0.9237 0.9235 0.9222 0.9208 0.9205 0.9192 0.9182 0.9181 0.9179 0.9152 0.9149 0.9140 0.9134 0.9120 0.9115 0.9109 0.9106 0.9093 0.9092 0.9077 0.9070 0.9060 0.9052 0.9039 0.9039 0.9039 0.9039 0.9034 0.9034 0.9002 0.8999 0.8999 0.8984 0.8979 0.8965 0.8953 0.8946 0.8937 0.8933 0.8923 0.8921 0.8913 0.8896 0.8895 0.8890 0.8888 0.8880 0.8879 0.8872 0.8870 0.8869 0.8868 0.8868 0.8842 0.8837 0.8829 0.8829 0.8826 0.8824 0.8813 0.8812 0.8805 0.8788 0.8780 0.8764 0.8761 0.8758 0.8751 0.8741 0.8741 0.8733 0.8732 0.8730 0.8726 0.8726 0.8724 0.8713 0.8699 0.8682 0.8682 0.8633 0.8629 0.8601 0.8600 0.8600 0.8598 0.8597 0.8576 0.8576 0.8574 0.8568 0.8568 0.8557 0.8554 0.8549 0.8538 0.8535 0.8535 0.8525 0.8519 0.8519 0.8515 0.8515 0.8513 0.8510 0.8503 0.8491 0.8476 0.8470 0.8466 0.8462 0.8455 0.8455 0.8451 0.8421 0.8421 0.8413 0.8413 0.8382 0.8319 0.8319 0.8319 0.8294 0.8290 0.8278 0.8232 0.8181 0.8181 0.8155 0.8153 0.8128 0.8128 0.8098 0.8093 0.8093 0.8090 0.8090 0.8086 0.8056 0.8056 0.8017 0.7948 0.7948 0.7900 0.7900 0.7884 0.7875 0.7861 0.7825 0.7825 0.7821 0.7816 0.7806 0.7797 0.7793 0.7793 0.7791 0.7791 0.7763 0.7763 0.7726 0.7711 0.7710 0.7710 0.7676 0.7639 0.7548 0.7548 0.7541 0.7541 0.7489 0.7468 0.7468 0.7467 0.7467 0.7440 0.7430 0.7408 0.7408 0.7405 0.7401 0.7384 0.7365 0.7355 0.7355 0.7341 0.7341 0.7330 0.7330 0.7315 0.7302 0.7302 0.7270 0.7253 0.7235 0.7198 0.7173 0.7173 0.7171 0.7162 0.7162 0.7152 0.7129 0.7042 0.7038 0.7032 0.7032 0.6992 0.6933 0.6933 0.6892 0.6892 0.6879 0.6853 0.6838 0.6831 0.6829 0.6743 0.6743 0.6698 0.6698 0.6676 0.6643 0.6586 0.6567 0.6547 0.6516 0.6472 0.6472 0.6446 0.6446 0.6446 0.6446 0.6402 0.6381 0.6381 0.6373 0.6359 0.6359 0.6351 0.6351 0.6262 0.6191 0.6126 0.6068 0.5948 0.5694 0.5490 0.5490 0.5395 0.5383 0.5236 0.5236 0.5222 0.5078 0.4989 0.4989 0.4981 0.4944 0.4904 0.4904 0.4814 0.4814 0.4669 0.4620 0.4620 0.4514 0.4485 0.4440 0.4436 0.4417 0.4404 0.4404 0.4396 0.4333 0.4323 0.4316 0.4310 0.4310 0.4272 0.4272 0.4222 0.4222 0.4222 0.4194 0.4194 0.4182 0.4182 0.4174 0.4121 0.4048 0.4006 0.3999 0.3945 0.3945 0.3944 0.3944 0.3924 0.3901 0.3896 0.3885 0.3876 0.3837 0.3820 0.3797 0.3708 0.3679 0.3643 0.3620 0.3571 0.3457 0.3424 0.3421 0.3420 0.3367 0.3367 0.3363 0.3332 0.3332 0.3330 0.3330 0.3323 0.3315 0.3315 0.3298 0.3298 0.3298 0.3288 0.3286 0.3282 0.3241 0.3207 0.3207 0.3190 0.3175 0.3172 0.3169 0.3153 0.3153 0.3137 0.3115 0.3099 0.3099 0.3084 0.3084 0.3072 0.3060 0.3060 0.3060 0.3043 0.3043 0.3042 0.3035 0.3034 0.3031 0.3030 0.3030 0.3026 0.3018 0.3008 0.3003 0.2989 0.2989 0.2988 0.2987 0.2983 0.2946 0.2946 0.2926 0.2922 0.2912 0.2879 0.2862 0.2849 0.2844 0.2841 0.2841 0.2827 0.2815 0.2801 0.2789 0.2785 0.2785 0.2781 0.2773 0.2769 0.2768 0.2762 0.2762 0.2734 0.2723 0.2713 0.2699 0.2696 0.2696 0.2691 0.2691 0.2689 0.2687 0.2683 0.2683 0.2675 0.2675 0.2673 0.2673 0.2665 0.2660 0.2645 0.2634 0.2624 0.2607 0.2601 0.2586 0.2586 0.2572 0.2569 0.2569 0.2560 0.2558 0.2556 0.2556 0.2539 0.2533 0.2524 0.2524 0.2522 0.2522 0.2502 0.2494 0.2493 0.2487 0.2487 0.2469 0.2469 0.2469 0.2469 0.2465 0.2462 0.2461 0.2450 0.2449 0.2445 0.2441 0.2433 0.2423 0.2419 0.2407 0.2404 0.2404 0.2402 0.2401 0.2398 0.2398 0.2396 0.2391 0.2373 0.2373 0.2372 0.2370 0.2370 0.2369 0.2366 0.2366 0.2364 0.2364 0.2359 0.2353 0.2335 0.2330 0.2329 0.2329 0.2327 0.2327 0.2326 0.2320 0.2315 0.2314 0.2314 0.2314 0.2311 0.2308 0.2308 0.2308 0.2307 0.2307 0.2301 0.2301 0.2298 0.2293 0.2291 0.2290 0.2290 0.2282 0.2282 0.2276 0.2267 0.2267 0.2262 0.2262 0.2256 0.2250 0.2250 0.2248 0.2247 0.2242 0.2231 0.2231 0.2230 0.2224 0.2224 0.2213 0.2213 0.2211 0.2211 0.2190 0.2186 0.2186 0.2185 0.2185 0.2183 0.2183 0.2179 0.2177 0.2173 0.2172 0.2169 0.2168 0.2168 0.2166 0.2166 0.2155 0.2150 0.2150 0.2149 0.2135 0.2134 0.2133 0.2127 0.2123 0.2120 0.2118 0.2111 0.2111 0.2110 0.2102 0.2095 0.2081 0.2076 0.2075 0.2074 0.2063 0.2054 0.2054 0.2049 0.2046 0.2046 0.2025 0.2025 0.2023 0.2016 0.2012 0.2012 0.2008 0.2004 0.2003 0.2001 0.1996 0.1996 0.1994 0.1992 0.1992 0.1989 0.1989 0.1983 0.1981 0.1981 0.1970 0.1964 0.1952 0.1949 0.1947 0.1946 0.1945 0.1943 0.1942 0.1942 0.1938 0.1938 0.1934 0.1934 0.1934 0.1933 0.1932 0.1932 0.1929 0.1926 0.1926 0.1923 0.1923 0.1918 0.1910 0.1906 0.1906 0.1904 0.1896 0.1894 0.1892 0.1886 0.1886 0.1885 0.1882 0.1882 0.1877 0.1876 0.1874 0.1873 0.1868 0.1865 0.1863 0.1862 0.1862 0.1860 0.1859 0.1857 0.1855 0.1854 0.1854 0.1853 0.1836 0.1835 0.1834 0.1834 0.1828 0.1827 0.1826 0.1826 0.1824 0.1823 0.1822 0.1820 0.1819 0.1818 0.1816 0.1815 0.1812 0.1808 0.1808 0.1802 0.1794 0.1782 0.1780 0.1780 0.1780 0.1780 0.1778 0.1777 0.1776 0.1773 0.1768 0.1767 0.1766 0.1763 0.1760 0.1760 0.1759 0.1747 0.1747 0.1744 0.1741 0.1741 0.1741 0.1741 0.1739 0.1735 0.1735 0.1735 0.1734 0.1734 0.1734 0.1727 0.1727 0.1727 0.1727 0.1726 0.1726 0.1726 0.1724 0.1724 0.1723 0.1722 0.1722 0.1720 0.1720 0.1720 0.1712 0.1711 0.1708 0.1708 0.1707 0.1707 0.1705 0.1705 0.1703 0.1700 0.1700 0.1700 0.1693 0.1692 0.1690 0.1690 0.1689 0.1687 0.1687 0.1684 0.1683 0.1682 0.1679 0.1677 0.1674 0.1674 0.1673 0.1667 0.1667 0.1665 0.1663 0.1662 0.1662 0.1661 0.1661 0.1661 0.1657 0.1656 0.1656 0.1656 0.1655 0.1653 0.1650 0.1646 0.1643 0.1640 0.1639 0.1639 0.1639 0.1639 0.1639 0.1638 0.1638 0.1637 0.1636 0.1634 0.1634 0.1631 0.1630 0.1627 0.1627 0.1627 0.1627 0.1627 0.1625 0.1623 0.1623 0.1622 0.1622 0.1622 0.1621 0.1617 0.1615 0.1615 0.1615 0.1615 0.1613 0.1612 0.1612 0.1611 0.1611 0.1609 0.1609 0.1608 0.1607 0.1604 0.1601 0.1601 0.1601 0.1600 0.1599 0.1595 0.1595 0.1593 0.1586 0.1579 0.1576 0.1574 0.1574 0.1574 0.1572 0.1572 0.1572 0.1571 0.1571 0.1566 0.1566 0.1566 0.1566 0.1563 0.1563 0.1559 0.1559 0.1557 0.1554 0.1547 0.1547 0.1546 0.1546 0.1543 0.1543 0.1542 0.1539 0.1539 0.1537 0.1537 0.1536 0.1535 0.1533 0.1532 0.1530 0.1528 0.1526 0.1526 0.1526 0.1522 0.1521 0.1519 0.1518 0.1518 0.1517 0.1516 0.1516 0.1516 0.1515 0.1514 0.1514 0.1513 0.1513 0.1511 0.1511 0.1511 0.1510 0.1510 0.1509 0.1505 0.1502 0.1501 0.1496 0.1496 0.1495 0.1495 0.1494 0.1493 0.1493 0.1482 0.1481 0.1480 0.1480 0.1480 0.1477 0.1477 0.1475 0.1474 0.1474 0.1472 0.1472 0.1471 0.1471 0.1470 0.1468 0.1466 0.1461 0.1457 0.1457 0.1457 0.1455 0.1455 0.1452 0.1452 0.1451 0.1451 0.1450 0.1449 0.1449 0.1448 0.1448 0.1448 0.1446 0.1446 0.1446 0.1445 0.1443 0.1443 0.1443 0.1441 0.1439 0.1439 0.1438 0.1438 0.1437 0.1436 0.1435 0.1435 0.1434 0.1434 0.1433 0.1433 0.1432 0.1432 0.1432 0.1432 0.1431 0.1430 0.1429 0.1425 0.1423 0.1422 0.1422 0.1420 0.1419 0.1416 0.1413 0.1413 0.1413 0.1412 0.1412 0.1412 0.1412 0.1410 0.1410 0.1408 0.1408 0.1407 0.1405 0.1402 0.1402 0.1401 0.1401 0.1399 0.1399 0.1398 0.1396 0.1393 0.1393 0.1392 0.1391 0.1391 0.1391 0.1389 0.1388 0.1388 0.1386 0.1386 0.1385 0.1385 0.1384 0.1384 0.1384 0.1382 0.1381 0.1379 0.1379 0.1379 0.1375 0.1375 0.1375 0.1375 0.1374 0.1374 0.1374 0.1373 0.1368 0.1368 0.1368 0.1366 0.1365 0.1363 0.1363 0.1363 0.1361 0.1361 0.1361 0.1360 0.1360 0.1358 0.1358 0.1357 0.1354 0.1354 0.1354 0.1354 0.1354 0.1352 0.1352 0.1351 0.1350 0.1345 0.1343 0.1343 0.1339 0.1338 0.1337 0.1337 0.1336 0.1336 0.1336 0.1335 0.1335 0.1335 0.1334 0.1333 0.1332 0.1332 0.1331 0.1329 0.1328 0.1328 0.1328 0.1326 0.1323 0.1323 0.1322 0.1322 0.1322 0.1321 0.1321 0.1321 0.1321 0.1320 0.1319 0.1319 0.1319 0.1318 0.1317 0.1317 0.1314 0.1312 0.1311 0.1311 0.1310 0.1310 0.1310 0.1309 0.1308 0.1307 0.1303 0.1301 0.1300 0.1300 0.1299 0.1299 0.1299 0.1299 0.1299 0.1299 0.1299 0.1298 0.1298 0.1296 0.1296 0.1295 0.1294 0.1294 0.1293 0.1293 0.1293 0.1293 0.1288 0.1288 0.1288 0.1288 0.1287 0.1285 0.1285 0.1284 0.1283 0.1283 0.1282 0.1282 0.1279 0.1278 0.1278 0.1278 0.1278 0.1278 0.1278 0.1278 0.1278 0.1276 0.1275 0.1275 0.1274 0.1274 0.1274 0.1274 0.1271 0.1271 0.1270 0.1270 0.1269 0.1268 0.1268 0.1268 0.1267 0.1267 0.1266 0.1266 0.1266 0.1265 0.1264 0.1264 0.1263 0.1263 0.1263 0.1261 0.1261 0.1260 0.1257 0.1256 0.1255 0.1255 0.1254 0.1254 0.1253 0.1252 0.1249 0.1249 0.1248 0.1247 0.1247 0.1247 0.1247 0.1245 0.1243 0.1242 0.1242 0.1242 0.1242 0.1241 0.1241 0.1241 0.1241 0.1240 0.1240 0.1238 0.1237 0.1235 0.1235 0.1235 0.1235 0.1233 0.1233 0.1232 0.1232 0.1232 0.1230 0.1229 0.1229 0.1229 0.1228 0.1227 0.1227 0.1227 0.1224 0.1224 0.1224 0.1224 0.1224 0.1222 0.1221 0.1221 0.1221 0.1221 0.1221 0.1221 0.1218 0.1218 0.1218 0.1217 0.1215 0.1214 0.1213 0.1212 0.1209 0.1209 0.1209 0.1208 0.1208 0.1208 0.1208 0.1207 0.1205 0.1205 0.1204 0.1204 0.1203 0.1203 0.1203 0.1202 0.1201 0.1201 0.1201 0.1200 0.1199 0.1199 0.1198 0.1198 0.1198 0.1198 0.1198 0.1197 0.1197 0.1197 0.1197 0.1197 0.1196 0.1195 0.1194 0.1194 0.1194 0.1193 0.1192 0.1192 0.1191 0.1191 0.1191 0.1190 0.1190 0.1190 0.1190 0.1189 0.1188 0.1188 0.1187 0.1187 0.1186 0.1186 0.1185 0.1184 0.1183 0.1183 0.1181 0.1181 0.1181 0.1181 0.1181 0.1180 0.1180 0.1177 0.1176 0.1176 0.1175 0.1175 0.1174 0.1173 0.1172 0.1172 0.1171 0.1171 0.1171 0.1170 0.1169 0.1169 0.1169 0.1167 0.1165 0.1164 0.1164 0.1163 0.1163 0.1163 0.1163 0.1161 0.1160 0.1160 0.1160 0.1159 0.1159 0.1159 0.1159 0.1159 0.1159 0.1158 0.1157 0.1156 0.1156 0.1155 0.1155 0.1155 0.1155 0.1153 0.1153 0.1152 0.1152 0.1151 0.1151 0.1150 0.1150 0.1149 0.1148 0.1147 0.1147 0.1146 0.1146 0.1146 0.1146 0.1146 0.1146 0.1146 0.1142 0.1142 0.1142 0.1141 0.1139 0.1139 0.1139 0.1138 0.1137 0.1137 0.1137 0.1136 0.1136 0.1135 0.1135 0.1135 0.1134 0.1134 0.1134 0.1134 0.1133 0.1133 0.1133 0.1133 0.1133 0.1132 0.1131 0.1131 0.1131 0.1131 0.1130 0.1129 0.1129 0.1128 0.1127 0.1127 0.1127 0.1126 0.1126 0.1126 0.1126 0.1125 0.1125 0.1125 0.1124 0.1124 0.1124 0.1123 0.1122 0.1122 0.1121 0.1120 0.1120 0.1119 0.1119 0.1119 0.1119 0.1119 0.1119 0.1119 0.1118 0.1118 0.1118 0.1117 0.1117 0.1117 0.1116 0.1116 0.1116 0.1116 0.1116 0.1115 0.1115 0.1115 0.1115 0.1114 0.1113 0.1113 0.1113 0.1111 0.1111 0.1111 0.1111 0.1111 0.1110 0.1110 0.1109 0.1108 0.1107 0.1107 0.1107 0.1107 0.1107 0.1107 0.1106 0.1106 0.1106 0.1106 0.1105 0.1105 0.1105 0.1105 0.1105 0.1102 0.1101 0.1101 0.1101 0.1100 0.1099 0.1098 0.1098 0.1098 0.1098 0.1098 0.1097 0.1097 0.1097 0.1097 0.1097 0.1096 0.1096 0.1093 0.1092 0.1092 0.1091 0.1090 0.1089 0.1089 0.1089 0.1089 0.1089 0.1089 0.1088 0.1088 0.1088 0.1088 0.1088 0.1088 0.1087 0.1087 0.1087 0.1086 0.1086 0.1086 0.1086 0.1086 0.1085 0.1085 0.1084 0.1084 0.1084 0.1084 0.1083 0.1083 0.1083 0.1083 0.1082 0.1082 0.1082 0.1082 0.1082 0.1082 0.1082 0.1082 0.1081 0.1081 0.1081 0.1081 0.1079 0.1079 0.1079 0.1079 0.1079 0.1079 0.1078 0.1078 0.1078 0.1077 0.1077 0.1077 0.1076 0.1076 0.1075 0.1075 0.1072 0.1072 0.1071 0.1071 0.1071 0.1070 0.1070 0.1070 0.1069 0.1069 0.1069 0.1068 0.1068 0.1067 0.1066 0.1065 0.1065 0.1065 0.1064 0.1064 0.1063 0.1062 0.1062 0.1062 0.1060 0.1059 0.1059 0.1058 0.1058 0.1057 0.1057 0.1056 0.1055 0.1053 0.1053 0.1053 0.1052 0.1052 0.1052 0.1051 0.1051 0.1050 0.1050 0.1050 0.1049 0.1049 0.1049 0.1048 0.1048 0.1047 0.1046 0.1046 0.1045 0.1045 0.1044 0.1044 0.1044 0.1043 0.1042 0.1042 0.1041 0.1039 0.1039 0.1039 0.1038 0.1038 0.1038 0.1036 0.1036 0.1036 0.1035 0.1035 0.1034 0.1034 0.1032 0.1031 0.1030 0.1030 0.1030 0.1029 0.1029 0.1027 0.1027 0.1027 0.1026 0.1026 0.1026 0.1026 0.1026 0.1026 0.1025 0.1025 0.1024 0.1024 0.1024 0.1023 0.1023 0.1023 0.1023 0.1022 0.1022 0.1022 0.1022 0.1021 0.1021 0.1021 0.1021 0.1021 0.1020 0.1020 0.1019 0.1018 0.1018 0.1017 0.1017 0.1017 0.1015 0.1014 0.1014 0.1014 0.1014 0.1012 0.1012 0.1012 0.1011 0.1011 0.1011 0.1010 0.1010 0.1010 0.1010 0.1010 0.1009 0.1009 0.1009 0.1007 0.1006 0.1006 0.1006 0.1006 0.1006 0.1006 0.1005 0.1005 0.1005 0.1005 0.1005 0.1004 0.1004 0.1003 0.1003 0.1003 0.1002 0.1002 0.1002 0.1002 0.1002 0.1002 0.1002 0.1001 0.1001 0.1001 0.1001 0.1000 0.1000 0.1000 0.1000 0.1000 0.0998 0.0998 0.0998 0.0998 0.0997 0.0997 0.0997 0.0996 0.0995 0.0994 0.0994 0.0994 0.0994 0.0993 0.0993 0.0993 0.0993 0.0992 0.0992 0.0992 0.0991 0.0990 0.0990 0.0990 0.0989 0.0989 0.0988 0.0987 0.0987 0.0986 0.0986 0.0986 0.0986 0.0986 0.0986 0.0986 0.0986 0.0986 0.0986 0.0986 0.0985 0.0985 0.0985 0.0984 0.0984 0.0983 0.0982 0.0982 0.0982 0.0982 0.0981 0.0981 0.0981 0.0979 0.0979 0.0979 0.0978 0.0978 0.0976 0.0975 0.0975 0.0974 0.0974 0.0974 0.0974 0.0973 0.0973 0.0973 0.0973 0.0971 0.0971 0.0970 0.0970 0.0970 0.0970 0.0970 0.0970 0.0969 0.0969 0.0969 0.0969 0.0969 0.0969 0.0969 0.0968 0.0968 0.0967 0.0967 0.0966 0.0966 0.0966 0.0965 0.0965 0.0965 0.0964 0.0964 0.0963 0.0963 0.0963 0.0962 0.0962 0.0962 0.0962 0.0961 0.0961 0.0961 0.0961 0.0959 0.0959 0.0959 0.0959 0.0958 0.0958 0.0958 0.0958 0.0957 0.0957 0.0957 0.0957 0.0957 0.0957 0.0956 0.0956 0.0955 0.0955 0.0955 0.0955 0.0955 0.0954 0.0954 0.0954 0.0954 0.0954 0.0953 0.0953 0.0953 0.0952 0.0952 0.0952 0.0952 0.0952 0.0951 0.0951 0.0951 0.0951 0.0950 0.0950 0.0949 0.0949 0.0949 0.0948 0.0948 0.0948 0.0947 0.0946 0.0946 0.0945 0.0944 0.0944 0.0944 0.0944 0.0942 0.0942 0.0942 0.0941 0.0941 0.0941 0.0941 0.0940 0.0939 0.0939 0.0938 0.0938 0.0937 0.0937 0.0935 0.0935 0.0935 0.0934 0.0934 0.0934 0.0934 0.0934 0.0934 0.0934 0.0934 0.0934 0.0934 0.0933 0.0933 0.0933 0.0933 0.0933 0.0933 0.0933 0.0933 0.0933 0.0932 0.0932 0.0932 0.0931 0.0931 0.0931 0.0931 0.0931 0.0930 0.0930 0.0930 0.0930 0.0928 0.0928 0.0928 0.0928 0.0928 0.0928 0.0928 0.0928 0.0927 0.0926 0.0925 0.0925 0.0925 0.0924 0.0924 0.0923 0.0922 0.0922 0.0922 0.0922 0.0921 0.0921 0.0921 0.0921 0.0921 0.0921 0.0920 0.0919 0.0919 0.0919 0.0918 0.0918 0.0918 0.0918 0.0918 0.0918 0.0918 0.0917 0.0917 0.0917 0.0917 0.0917 0.0917 0.0915 0.0915 0.0915 0.0914 0.0913 0.0913 0.0913 0.0913 0.0913 0.0913 0.0913 0.0913 0.0913 0.0913 0.0913 0.0913 0.0913 0.0912 0.0912 0.0912 0.0912 0.0912 0.0912 0.0912 0.0910 0.0910 0.0910 0.0910 0.0908 0.0908 0.0908 0.0907 0.0906 0.0905 0.0905 0.0905 0.0905 0.0903 0.0903 0.0903 0.0901 0.0901 0.0901 0.0901 0.0900 0.0900 0.0900 0.0900 0.0900 0.0899 0.0899 0.0899 0.0899 0.0898 0.0898 0.0898 0.0898 0.0897 0.0896 0.0896 0.0896 0.0896 0.0896 0.0896 0.0896 0.0895 0.0894 0.0894 0.0894 0.0894 0.0894 0.0893 0.0893 0.0893 0.0892 0.0892 0.0892 0.0892 0.0892 0.0891 0.0891 0.0891 0.0891 0.0890 0.0889 0.0889 0.0889 0.0889 0.0889 0.0888 0.0888 0.0888 0.0888 0.0887 0.0887 0.0887 0.0887 0.0886 0.0884 0.0884 0.0884 0.0884 0.0883 0.0882 0.0882 0.0882 0.0882 0.0882 0.0882 0.0881 0.0881 0.0881 0.0881 0.0881 0.0880 0.0880 0.0878 0.0878 0.0877 0.0877 0.0877 0.0876 0.0876 0.0876 0.0876 0.0876 0.0875 0.0875 0.0875 0.0874 0.0874 0.0874 0.0874 0.0874 0.0874 0.0873 0.0873 0.0873 0.0872 0.0872 0.0872 0.0872 0.0872 0.0871 0.0871 0.0871 0.0871 0.0871 0.0870 0.0870 0.0870 0.0870 0.0870 0.0870 0.0869 0.0868 0.0868 0.0868 0.0868 0.0867 0.0867 0.0867 0.0867 0.0867 0.0867 0.0867 0.0867 0.0867 0.0866 0.0865 0.0865 0.0865 0.0864 0.0864 0.0864 0.0864 0.0863 0.0863 0.0863 0.0862 0.0862 0.0862 0.0862 0.0862 0.0862 0.0860 0.0860 0.0860 0.0860 0.0859 0.0859 0.0859 0.0859 0.0858 0.0858 0.0858 0.0857 0.0857 0.0857 0.0856 0.0856 0.0856 0.0855 0.0855 0.0855 0.0855 0.0854 0.0854 0.0854 0.0854 0.0854 0.0854 0.0854 0.0853 0.0853 0.0853 0.0853 0.0853 0.0852 0.0852 0.0852 0.0852 0.0851 0.0851 0.0851 0.0851 0.0850 0.0850 0.0850 0.0850 0.0849 0.0849 0.0849 0.0848 0.0848 0.0848 0.0848 0.0848 0.0847 0.0847 0.0847 0.0846 0.0846 0.0846 0.0846 0.0845 0.0845 0.0844 0.0844 0.0844 0.0844 0.0844 0.0843 0.0843 0.0843 0.0843 0.0842 0.0842 0.0842 0.0842 0.0842 0.0841 0.0841 0.0841 0.0841 0.0841 0.0840 0.0840 0.0840 0.0840 0.0840 0.0839 0.0839 0.0839 0.0839 0.0839 0.0839 0.0838 0.0838 0.0838 0.0838 0.0837 0.0836 0.0836 0.0836 0.0836 0.0836 0.0836 0.0836 0.0835 0.0835 0.0835 0.0834 0.0833 0.0833 0.0833 0.0833 0.0832 0.0832 0.0832 0.0832 0.0832 0.0831 0.0831 0.0831 0.0831 0.0831 0.0831 0.0830 0.0830 0.0829 0.0829 0.0829 0.0829 0.0828 0.0828 0.0828 0.0828 0.0828 0.0828 0.0828 0.0827 0.0827 0.0827 0.0827 0.0826 0.0826 0.0826 0.0826 0.0826 0.0826 0.0825 0.0825 0.0825 0.0825 0.0825 0.0825 0.0825 0.0825 0.0823 0.0823 0.0823 0.0823 0.0823 0.0823 0.0823 0.0823 0.0823 0.0822 0.0822 0.0822 0.0821 0.0821 0.0821 0.0821 0.0821 0.0821 0.0820 0.0820 0.0820 0.0820 0.0820 0.0820 0.0819 0.0819 0.0819 0.0819 0.0819 0.0819 0.0819 0.0819 0.0818 0.0818 0.0818 0.0818 0.0817 0.0817 0.0817 0.0817 0.0816 0.0816 0.0816 0.0816 0.0816 0.0816 0.0815 0.0815 0.0815 0.0815 0.0815 0.0815 0.0815 0.0815 0.0815 0.0815 0.0815 0.0814 0.0814 0.0814 0.0814 0.0814 0.0813 0.0813 0.0812 0.0812 0.0812 0.0812 0.0811 0.0811 0.0811 0.0811 0.0811 0.0811 0.0811 0.0810 0.0810 0.0810 0.0810 0.0810 0.0809 0.0809 0.0809 0.0808 0.0808 0.0808 0.0808 0.0808 0.0808 0.0808 0.0808 0.0808 0.0808 0.0807 0.0807 0.0807 0.0807 0.0807 0.0806 0.0806 0.0806 0.0806 0.0805 0.0805 0.0805 0.0805 0.0805 0.0804 0.0804 0.0804 0.0804 0.0803 0.0803 0.0803 0.0803 0.0803 0.0803 0.0803 0.0803 0.0803 0.0803 0.0802 0.0802 0.0802 0.0802 0.0802 0.0802 0.0802 0.0801 0.0801 0.0801 0.0801 0.0801 0.0801 0.0801 0.0801 0.0801 0.0800 0.0800 0.0800 0.0800 0.0799 0.0799 0.0799 0.0799 0.0799 0.0798 0.0798 0.0798 0.0797 0.0797 0.0797 0.0797 0.0796 0.0796 0.0795 0.0795 0.0795 0.0795 0.0795 0.0795 0.0795 0.0795 0.0795 0.0795 0.0794 0.0794 0.0794 0.0793 0.0793 0.0793 0.0793 0.0793 0.0793 0.0791 0.0791 0.0791 0.0791 0.0791 0.0790 0.0790 0.0790 0.0789 0.0788 0.0788 0.0788 0.0788 0.0788 0.0788 0.0788 0.0788 0.0788 0.0788 0.0788 0.0787 0.0787 0.0786 0.0786 0.0786 0.0786 0.0786 0.0786 0.0785 0.0785 0.0785 0.0785 0.0784 0.0784 0.0783 0.0783 0.0783 0.0783 0.0783 0.0783 0.0783 0.0782 0.0782 0.0782 0.0782 0.0782 0.0782 0.0782 0.0782 0.0782 0.0782 0.0782 0.0782 0.0781 0.0781 0.0781 0.0781 0.0781 0.0780 0.0780 0.0780 0.0780 0.0780 0.0780 0.0779 0.0779 0.0779 0.0778 0.0778 0.0777 0.0777 0.0777 0.0777 0.0777 0.0777 0.0777 0.0777 0.0777 0.0776 0.0776 0.0776 0.0776 0.0775 0.0775 0.0775 0.0774 0.0774 0.0773 0.0773 0.0773 0.0773 0.0773 0.0772 0.0772 0.0772 0.0772 0.0771 0.0771 0.0771 0.0771 0.0771 0.0771 0.0771 0.0770 0.0770 0.0770 0.0770 0.0770 0.0769 0.0769 0.0769 0.0769 0.0768 0.0768 0.0768 0.0768 0.0768 0.0768 0.0768 0.0768 0.0767 0.0767 0.0767 0.0766 0.0766 0.0766 0.0766 0.0766 0.0765 0.0765 0.0765 0.0764 0.0764 0.0764 0.0764 0.0764 0.0764 0.0763 0.0763 0.0763 0.0763 0.0763 0.0763 0.0762 0.0762 0.0762 0.0762 0.0762 0.0762 0.0762 0.0762 0.0762 0.0761 0.0761 0.0761 0.0760 0.0760 0.0760 0.0760 0.0760 0.0760 0.0760 0.0759 0.0759 0.0759 0.0759 0.0759 0.0759 0.0759 0.0759 0.0759 0.0759 0.0759 0.0758 0.0758 0.0758 0.0758 0.0758 0.0758 0.0758 0.0758 0.0758 0.0758 0.0757 0.0757 0.0756 0.0756 0.0756 0.0756 0.0756 0.0756 0.0756 0.0756 0.0755 0.0755 0.0755 0.0755 0.0755 0.0755 0.0755 0.0755 0.0755 0.0755 0.0754 0.0754 0.0754 0.0754 0.0754 0.0754 0.0754 0.0753 0.0753 0.0753 0.0753 0.0753 0.0753 0.0753 0.0753 0.0753 0.0753 0.0753 0.0752 0.0752 0.0752 0.0752 0.0752 0.0752 0.0751 0.0751 0.0751 0.0751 0.0751 0.0751 0.0750 0.0750 0.0750 0.0750 0.0750 0.0748 0.0748 0.0748 0.0748 0.0748 0.0748 0.0747 0.0747 0.0747 0.0747 0.0747 0.0746 0.0746 0.0746 0.0745 0.0745 0.0745 0.0745 0.0745 0.0745 0.0745 0.0745 0.0745 0.0745 0.0745 0.0744 0.0744 0.0743 0.0743 0.0743 0.0743 0.0743 0.0743 0.0743 0.0743 0.0742 0.0742 0.0742 0.0742 0.0742 0.0742 0.0742 0.0742 0.0741 0.0740 0.0740 0.0740 0.0740 0.0739 0.0739 0.0739 0.0739 0.0739 0.0739 0.0739 0.0739 0.0739 0.0738 0.0738 0.0738 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0736 0.0736 0.0736 0.0736 0.0736 0.0736 0.0736 0.0735 0.0735 0.0735 0.0735 0.0735 0.0735 0.0734 0.0734 0.0734 0.0734 0.0734 0.0734 0.0734 0.0734 0.0734 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0732 0.0732 0.0732 0.0732 0.0732 0.0732 0.0731 0.0731 0.0731 0.0731 0.0731 0.0731 0.0730 0.0730 0.0730 0.0730 0.0730 0.0730 0.0730 0.0730 0.0730 0.0730 0.0729 0.0729 0.0729 0.0729 0.0729 0.0729 0.0728 0.0728 0.0727 0.0727 0.0727 0.0727 0.0726 0.0726 0.0726 0.0725 0.0725 0.0725 0.0724 0.0724 0.0724 0.0724 0.0723 0.0723 0.0723 0.0723 0.0723 0.0723 0.0722 0.0722 0.0722 0.0722 0.0722 0.0722 0.0722 0.0722 0.0722 0.0722 0.0721 0.0721 0.0721 0.0721 0.0721 0.0721 0.0721 0.0721 0.0721 0.0721 0.0721 0.0720 0.0720 0.0720 0.0720 0.0720 0.0720 0.0720 0.0719 0.0719 0.0719 0.0719 0.0719 0.0719 0.0719 0.0719 0.0718 0.0718 0.0718 0.0718 0.0718 0.0718 0.0718 0.0717 0.0717 0.0717 0.0717 0.0717 0.0716 0.0716 0.0716 0.0715 0.0715 0.0715 0.0715 0.0715 0.0715 0.0715 0.0715 0.0714 0.0714 0.0714 0.0714 0.0713 0.0713 0.0713 0.0713 0.0713 0.0712 0.0712 0.0712 0.0712 0.0712 0.0711 0.0711 0.0711 0.0711 0.0711 0.0711 0.0711 0.0711 0.0711 0.0711 0.0711 0.0711 0.0710 0.0710 0.0710 0.0710 0.0710 0.0709 0.0709 0.0709 0.0709 0.0709 0.0709 0.0708 0.0708 0.0708 0.0708 0.0708 0.0708 0.0707 0.0707 0.0707 0.0707 0.0707 0.0707 0.0707 0.0706 0.0706 0.0706 0.0706 0.0706 0.0706 0.0706 0.0706 0.0706 0.0706 0.0706 0.0706 0.0706 0.0705 0.0705 0.0705 0.0705 0.0705 0.0705 0.0704 0.0704 0.0704 0.0703 0.0703 0.0703 0.0703 0.0703 0.0703 0.0703 0.0703 0.0703 0.0702 0.0702 0.0702 0.0702 0.0702 0.0702 0.0702 0.0702 0.0702 0.0702 0.0702 0.0702 0.0701 0.0701 0.0701 0.0701 0.0701 0.0701 0.0701 0.0701 0.0701 0.0701 0.0700 0.0700 0.0700 0.0700 0.0699 0.0699 0.0699 0.0699 0.0699 0.0699 0.0699 0.0698 0.0698 0.0698 0.0698 0.0697 0.0697 0.0697 0.0697 0.0697 0.0697 0.0697 0.0697 0.0697 0.0697 0.0697 0.0697 0.0697 0.0696 0.0696 0.0696 0.0696 0.0696 0.0696 0.0695 0.0695 0.0695 0.0695 0.0695 0.0695 0.0695 0.0695 0.0695 0.0695 0.0695 0.0695 0.0694 0.0694 0.0694 0.0694 0.0694 0.0694 0.0694 0.0694 0.0694 0.0694 0.0694 0.0694 0.0694 0.0694 0.0693 0.0693 0.0693 0.0693 0.0693 0.0693 0.0693 0.0692 0.0692 0.0692 0.0692 0.0692 0.0692 0.0692 0.0692 0.0691 0.0691 0.0691 0.0691 0.0691 0.0691 0.0691 0.0691 0.0691 0.0691 0.0690 0.0690 0.0690 0.0689 0.0689 0.0689 0.0689 0.0689 0.0689 0.0688 0.0688 0.0688 0.0688 0.0688 0.0688 0.0688 0.0688 0.0688 0.0688 0.0688 0.0688 0.0688 0.0687 0.0687 0.0687 0.0687 0.0687 0.0687 0.0687 0.0687 0.0687 0.0687 0.0687 0.0686 0.0686 0.0686 0.0686 0.0686 0.0686 0.0686 0.0686 0.0686 0.0686 0.0686 0.0686 0.0685 0.0685 0.0685 0.0685 0.0685 0.0684 0.0684 0.0684 0.0684 0.0684 0.0684 0.0684 0.0684 0.0684 0.0683 0.0683 0.0683 0.0683 0.0683 0.0683 0.0683 0.0683 0.0683 0.0683 0.0683 0.0683 0.0683 0.0683 0.0683 0.0682 0.0682 0.0682 0.0682 0.0682 0.0682 0.0682 0.0681 0.0681 0.0681 0.0681 0.0681 0.0681 0.0681 0.0681 0.0681 0.0681 0.0681 0.0681 0.0681 0.0680 0.0680 0.0680 0.0680 0.0680 0.0680 0.0680 0.0679 0.0679 0.0679 0.0679 0.0678 0.0678 0.0678 0.0678 0.0678 0.0678 0.0678 0.0678 0.0678 0.0678 0.0678 0.0678 0.0677 0.0677 0.0677 0.0677 0.0677 0.0677 0.0677 0.0676 0.0676 0.0676 0.0676 0.0676 0.0676 0.0676 0.0676 0.0676 0.0676 0.0675 0.0675 0.0674 0.0674 0.0674 0.0674 0.0674 0.0674 0.0674 0.0674 0.0674 0.0673 0.0673 0.0673 0.0673 0.0673 0.0673 0.0673 0.0672 0.0672 0.0672 0.0672 0.0671 0.0671 0.0671 0.0671 0.0671 0.0670 0.0670 0.0670 0.0670 0.0670 0.0670 0.0670 0.0670 0.0670 0.0669 0.0669 0.0669 0.0669 0.0669 0.0669 0.0669 0.0669 0.0669 0.0669 0.0669 0.0669 0.0669 0.0668 0.0668 0.0668 0.0668 0.0668 0.0667 0.0667 0.0667 0.0667 0.0667 0.0667 0.0667 0.0667 0.0667 0.0667 0.0667 0.0667 0.0667 0.0667 0.0667 0.0667 0.0666 0.0666 0.0666 0.0666 0.0666 0.0666 0.0665 0.0665 0.0665 0.0665 0.0665 0.0665 0.0665 0.0665 0.0665 0.0665 0.0664 0.0664 0.0664 0.0664 0.0664 0.0664 0.0664 0.0664 0.0663 0.0663 0.0663 0.0663 0.0663 0.0663 0.0663 0.0663 0.0663 0.0663 0.0663 0.0662 0.0662 0.0662 0.0662 0.0662 0.0662 0.0662 0.0662 0.0662 0.0662 0.0661 0.0661 0.0661 0.0661 0.0661 0.0661 0.0661 0.0661 0.0661 0.0661 0.0661 0.0661 0.0660 0.0660 0.0660 0.0660 0.0660 0.0660 0.0660 0.0660 0.0660 0.0660 0.0660 0.0660 0.0660 0.0660 0.0659 0.0659 0.0659 0.0659 0.0658 0.0658 0.0658 0.0658 0.0658 0.0658 0.0658 0.0658 0.0658 0.0658 0.0658 0.0658 0.0658 0.0657 0.0657 0.0657 0.0657 0.0657 0.0657 0.0657 0.0657 0.0657 0.0657 0.0657 0.0656 0.0656 0.0656 0.0656 0.0656 0.0656 0.0656 0.0656 0.0656 0.0656 0.0656 0.0656 0.0655 0.0655 0.0655 0.0655 0.0655 0.0655 0.0655 0.0655 0.0655 0.0655 0.0654 0.0654 0.0654 0.0654 0.0654 0.0654 0.0654 0.0654 0.0654 0.0654 0.0653 0.0653 0.0653 0.0653 0.0652 0.0652 0.0652 0.0652 0.0652 0.0652 0.0652 0.0652 0.0652 0.0651 0.0651 0.0651 0.0651 0.0650 0.0650 0.0650 0.0650 0.0650 0.0650 0.0650 0.0650 0.0650 0.0650 0.0650 0.0650 0.0649 0.0649 0.0649 0.0649 0.0649 0.0649 0.0649 0.0649 0.0648 0.0647 0.0647 0.0647 0.0647 0.0647 0.0647 0.0647 0.0647 0.0647 0.0647 0.0647 0.0647 0.0646 0.0646 0.0646 0.0646 0.0646 0.0646 0.0646 0.0646 0.0646 0.0646 0.0646 0.0646 0.0646 0.0646 0.0645 0.0645 0.0645 0.0645 0.0645 0.0645 0.0645 0.0644 0.0644 0.0644 0.0644 0.0644 0.0644 0.0644 0.0644 0.0644 0.0644 0.0644 0.0643 0.0643 0.0643 0.0643 0.0643 0.0643 0.0643 0.0643 0.0643 0.0643 0.0643 0.0642 0.0642 0.0642 0.0642 0.0642 0.0642 0.0642 0.0642 0.0642 0.0642 0.0642 0.0641 0.0641 0.0641 0.0641 0.0641 0.0641 0.0641 0.0641 0.0641 0.0641 0.0641 0.0640 0.0640 0.0640 0.0640 0.0640 0.0640 0.0640 0.0640 0.0640 0.0640 0.0640 0.0640 0.0639 0.0639 0.0639 0.0639 0.0639 0.0639 0.0639 0.0639 0.0639 0.0638 0.0638 0.0638 0.0638 0.0638 0.0638 0.0637 0.0637 0.0637 0.0637 0.0637 0.0637 0.0637 0.0637 0.0637 0.0637 0.0637 0.0637 0.0636 0.0636 0.0636 0.0636 0.0636 0.0636 0.0636 0.0636 0.0636 0.0636 0.0636 0.0636 0.0636 0.0636 0.0635 0.0635 0.0635 0.0635 0.0634 0.0634 0.0634 0.0634 0.0634 0.0633 0.0633 0.0633 0.0633 0.0633 0.0633 0.0633 0.0633 0.0633 0.0633 0.0633 0.0633 0.0633 0.0633 0.0632 0.0632 0.0632 0.0632 0.0632 0.0632 0.0632 0.0632 0.0632 0.0632 0.0632 0.0632 0.0632 0.0632 0.0631 0.0631 0.0630 0.0630 0.0630 0.0630 0.0630 0.0630 0.0630 0.0630 0.0630 0.0630 0.0629 0.0629 0.0629 0.0629 0.0629 0.0628 0.0628 0.0628 0.0628 0.0628 0.0628 0.0628 0.0628 0.0628 0.0627 0.0627 0.0627 0.0627 0.0627 0.0627 0.0627 0.0627 0.0627 0.0627 0.0627 0.0626 0.0626 0.0626 0.0626 0.0626 0.0626 0.0626 0.0626 0.0626 0.0626 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625 0.0624 0.0624 0.0624 0.0624 0.0624 0.0624 0.0624 0.0624 0.0624 0.0624 0.0624 0.0624 0.0623 0.0623 0.0623 0.0623 0.0623 0.0623 0.0623 0.0623 0.0623 0.0623 0.0623 0.0622 0.0622 0.0622 0.0622 0.0622 0.0622 0.0622 0.0621 0.0621 0.0621 0.0621 0.0621 0.0621 0.0621 0.0621 0.0621 0.0620 0.0620 0.0620 0.0620 0.0620 0.0620 0.0620 0.0620 0.0620 0.0619 0.0619 0.0619 0.0619 0.0619 0.0619 0.0619 0.0619 0.0619 0.0618 0.0618 0.0618 0.0618 0.0618 0.0618 0.0618 0.0618 0.0618 0.0618 0.0618 0.0618 0.0617 0.0617 0.0617 0.0617 0.0617 0.0617 0.0617 0.0617 0.0617 0.0617 0.0617 0.0617 0.0617 0.0616 0.0616 0.0616 0.0616 0.0616 0.0616 0.0616 0.0616 0.0616 0.0616 0.0616 0.0616 0.0615 0.0615 0.0615 0.0615 0.0615 0.0615 0.0614 0.0614 0.0614 0.0614 0.0614 0.0614 0.0614 0.0614 0.0614 0.0614 0.0614 0.0614 0.0614 0.0614 0.0613 0.0613 0.0613 0.0613 0.0613 0.0613 0.0613 0.0613 0.0613 0.0613 0.0613 0.0613 0.0613 0.0613 0.0612 0.0612 0.0612 0.0612 0.0612 0.0612 0.0612 0.0612 0.0612 0.0612 0.0612 0.0612 0.0612 0.0612 0.0612 0.0612 0.0611 0.0611 0.0611 0.0611 0.0611 0.0611 0.0611 0.0610 0.0610 0.0610 0.0610 0.0610 0.0610 0.0610 0.0610 0.0610 0.0610 0.0610 0.0610 0.0610 0.0610 0.0610 0.0610 0.0609 0.0609 0.0609 0.0609 0.0609 0.0609 0.0609 0.0609 0.0609 0.0609 0.0609 0.0609 0.0609 0.0609 0.0609 0.0608 0.0608 0.0608 0.0608 0.0608 0.0608 0.0608 0.0608 0.0608 0.0608 0.0608 0.0608 0.0608 0.0608 0.0608 0.0608 0.0608 0.0607 0.0607 0.0607 0.0607 0.0607 0.0607 0.0607 0.0607 0.0607 0.0607 0.0607 0.0607 0.0607 0.0607 0.0607 0.0606 0.0606 0.0606 0.0606 0.0606 0.0606 0.0606 0.0606 0.0606 0.0606 0.0606 0.0606 0.0606 0.0606 0.0606 0.0605 0.0605 0.0605 0.0605 0.0605 0.0605 0.0605 0.0605 0.0605 0.0604 0.0604 0.0604 0.0604 0.0604 0.0604 0.0604 0.0604 0.0604 0.0604 0.0604 0.0604 0.0604 0.0604 0.0604 0.0603 0.0603 0.0603 0.0603 0.0603 0.0603 0.0603 0.0603 0.0603 0.0603 0.0603 0.0603 0.0603 0.0602 0.0602 0.0602 0.0602 0.0602 0.0602 0.0602 0.0602 0.0602 0.0602 0.0602 0.0602 0.0602 0.0602 0.0602 0.0602 0.0602 0.0602 0.0601 0.0601 0.0601 0.0601 0.0601 0.0601 0.0601 0.0601 0.0601 0.0601 0.0601 0.0601 0.0601 0.0601 0.0601 0.0601 0.0601 0.0600 0.0600 0.0600 0.0600 0.0600 0.0600 0.0600 0.0600 0.0600 0.0600 0.0600 0.0600 0.0600 0.0600 0.0600 0.0600 0.0600 0.0600 0.0600 0.0599 0.0599 0.0599 0.0599 0.0599 0.0599 0.0599 0.0599 0.0599 0.0599 0.0599 0.0599 0.0599 0.0598 0.0598 0.0598 0.0598 0.0598 0.0598 0.0598 0.0598 0.0598 0.0598 0.0598 0.0598 0.0598 0.0597 0.0597 0.0597 0.0597 0.0597 0.0597 0.0597 0.0597 0.0596 0.0596 0.0596 0.0596 0.0596 0.0596 0.0596 0.0596 0.0596 0.0596 0.0596 0.0596 0.0596 0.0596 0.0595 0.0595 0.0595 0.0595 0.0595 0.0595 0.0595 0.0595 0.0595 0.0595 0.0595 0.0595 0.0594 0.0594 0.0594 0.0594 0.0594 0.0594 0.0593 0.0593 0.0593 0.0593 0.0593 0.0593 0.0593 0.0592 0.0592 0.0592 0.0592 0.0592 0.0592 0.0592 0.0592 0.0591 0.0591 0.0591 0.0591 0.0591 0.0591 0.0591 0.0591 0.0591 0.0591 0.0591 0.0591 0.0591 0.0591 0.0591 0.0590 0.0590 0.0590 0.0590 0.0590 0.0590 0.0590 0.0590 0.0590 0.0590 0.0590 0.0590 0.0590 0.0590 0.0590 0.0590 0.0589 0.0589 0.0589 0.0589 0.0589 0.0589 0.0589 0.0589 0.0589 0.0589 0.0589 0.0588 0.0588 0.0588 0.0588 0.0588 0.0588 0.0588 0.0588 0.0588 0.0588 0.0588 0.0588 0.0588 0.0587 0.0587 0.0587 0.0587 0.0587 0.0587 0.0587 0.0587 0.0587 0.0587 0.0587 0.0587 0.0586 0.0586 0.0586 0.0586 0.0586 0.0586 0.0586 0.0586 0.0586 0.0586 0.0585 0.0585 0.0585 0.0585 0.0585 0.0585 0.0585 0.0585 0.0585 0.0585 0.0585 0.0585 0.0584 0.0584 0.0584 0.0584 0.0584 0.0584 0.0584 0.0584 0.0584 0.0584 0.0584 0.0584 0.0584 0.0584 0.0584 0.0583 0.0583 0.0583 0.0583 0.0583 0.0583 0.0583 0.0583 0.0583 0.0583 0.0582 0.0582 0.0582 0.0582 0.0582 0.0582 0.0582 0.0582 0.0582 0.0582 0.0582 0.0582 0.0581 0.0581 0.0581 0.0581 0.0581 0.0581 0.0581 0.0581 0.0581 0.0580 0.0580 0.0580 0.0580 0.0580 0.0580 0.0580 0.0579 0.0579 0.0579 0.0579 0.0579 0.0579 0.0579 0.0579 0.0579 0.0579 0.0578 0.0578 0.0578 0.0578 0.0578 0.0578 0.0578 0.0578 0.0578 0.0578 0.0578 0.0578 0.0578 0.0578 0.0578 0.0578 0.0577 0.0577 0.0577 0.0577 0.0577 0.0577 0.0577 0.0577 0.0577 0.0576 0.0576 0.0576 0.0576 0.0576 0.0576 0.0576 0.0576 0.0576 0.0576 0.0576 0.0576 0.0576 0.0575 0.0575 0.0575 0.0575 0.0575 0.0575 0.0575 0.0575 0.0575 0.0575 0.0574 0.0574 0.0574 0.0574 0.0574 0.0574 0.0574 0.0574 0.0573 0.0573 0.0573 0.0573 0.0573 0.0573 0.0573 0.0573 0.0573 0.0573 0.0573 0.0573 0.0572 0.0572 0.0572 0.0572 0.0572 0.0572 0.0572 0.0572 0.0572 0.0572 0.0572 0.0572 0.0572 0.0572 0.0572 0.0571 0.0571 0.0571 0.0571 0.0571 0.0571 0.0571 0.0571 0.0571 0.0571 0.0571 0.0571 0.0571 0.0571 0.0570 0.0570 0.0570 0.0570 0.0570 0.0570 0.0570 0.0570 0.0570 0.0570 0.0570 0.0570 0.0570 0.0570 0.0570 0.0570 0.0570 0.0570 0.0570 0.0570 0.0570 0.0569 0.0569 0.0569 0.0569 0.0569 0.0569 0.0569 0.0569 0.0569 0.0569 0.0569 0.0569 0.0569 0.0569 0.0569 0.0568 0.0568 0.0568 0.0568 0.0568 0.0568 0.0568 0.0568 0.0568 0.0568 0.0567 0.0567 0.0567 0.0567 0.0567 0.0567 0.0567 0.0567 0.0567 0.0567 0.0567 0.0567 0.0567 0.0567 0.0567 0.0567 0.0567 0.0567 0.0567 0.0566 0.0566 0.0566 0.0566 0.0566 0.0566 0.0566 0.0566 0.0566 0.0566 0.0566 0.0566 0.0566 0.0566 0.0566 0.0566 0.0566 0.0566 0.0565 0.0565 0.0565 0.0565 0.0565 0.0565 0.0565 0.0565 0.0565 0.0565 0.0565 0.0565 0.0565 0.0565 0.0565 0.0565 0.0564 0.0564 0.0564 0.0564 0.0564 0.0564 0.0564 0.0564 0.0564 0.0564 0.0564 0.0564 0.0564 0.0564 0.0563 0.0563 0.0563 0.0563 0.0563 0.0563 0.0563 0.0563 0.0562 0.0562 0.0562 0.0562 0.0562 0.0562 0.0562 0.0562 0.0562 0.0562 0.0562 0.0562 0.0562 0.0562 0.0562 0.0562 0.0562 0.0562 0.0562 0.0562 0.0562 0.0562 0.0561 0.0561 0.0561 0.0561 0.0561 0.0561 0.0561 0.0560 0.0560 0.0560 0.0560 0.0560 0.0560 0.0560 0.0560 0.0560 0.0560 0.0560 0.0559 0.0559 0.0559 0.0559 0.0559 0.0559 0.0559 0.0559 0.0559 0.0559 0.0559 0.0559 0.0559 0.0559 0.0559 0.0559 0.0559 0.0559 0.0558 0.0558 0.0558 0.0558 0.0558 0.0558 0.0558 0.0558 0.0558 0.0558 0.0558 0.0558 0.0558 0.0558 0.0558 0.0557 0.0557 0.0557 0.0557 0.0557 0.0557 0.0557 0.0557 0.0557 0.0557 0.0557 0.0557 0.0556 0.0556 0.0556 0.0556 0.0556 0.0556 0.0556 0.0556 0.0556 0.0556 0.0556 0.0556 0.0555 0.0555 0.0555 0.0555 0.0555 0.0555 0.0555 0.0555 0.0555 0.0555 0.0555 0.0555 0.0554 0.0554 0.0554 0.0554 0.0554 0.0554 0.0554 0.0554 0.0554 0.0554 0.0554 0.0554 0.0554 0.0554 0.0554 0.0554 0.0554 0.0554 0.0553 0.0553 0.0553 0.0553 0.0553 0.0553 0.0553 0.0553 0.0553 0.0553 0.0553 0.0553 0.0553 0.0552 0.0552 0.0552 0.0552 0.0552 0.0552 0.0552 0.0552 0.0552 0.0552 0.0551 0.0551 0.0551 0.0551 0.0551 0.0551 0.0551 0.0551 0.0551 0.0551 0.0551 0.0551 ... ] (1x37640 single)}

Input Arguments

collapse all

Object detection performance metrics, specified as an objectDetectionMetrics object.

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Example: [precision,recall,scores]=precisionRecall(metrics,ClassNames=[cars people]) specifies the precision recall metric to be evaluated for the cars and people classes.

Class names of detected objects, specified as an array of strings or a cell array of character vectors. By default, the precisionRecall function returns the precision recall metrics for all classes specified by the ClassNames property of the objectDetectionMetrics object metrics.

Overlap threshold, or Intersection over Union (IoU) threshold, for which to get the precision recall metrics, specified as a numeric scalar or numeric vector of box overlap threshold values. By default, the precisionRecall object function returns the precision recall metrics for all overlap thresholds specified by the OverlapThreshold property of the objectDetectionMetrics object metrics. To learn more about how to use overlap thresholds in object detection evaluation, see Evaluate Detector Performance Using Precision Recall at Multiple Overlap Thresholds.

Output Arguments

collapse all

Precision, returned as an M-by-N cell array. M is the number of classes in the ClassNames property, and N is the number of overlap thresholds in the OverlapThreshold property of the objectDetectionMetrics object metrics. Each element of the cell array contains a (numPredictions+1)-element numeric vector of precision values for the bounding boxes, sorted in descending order of bounding box confidence scores. numPredictions is the number of predicted bounding boxes.

Precision is the ratio of the number of true positives (TP) and the total number of predicted positives​. Larger precision scores indicate that more detected objects match ground truth objects. To learn more about the precision metric, see Compute Precision and Recall.

Recall, returned as an M-by-N cell array. M is the number of classes in the ClassNames property, and N is the number of overlap thresholds in the OverlapThreshold property of the objectDetectionMetrics object metrics. Each element of the cell array contains a (numPredictions+1)-element numeric vector of recall values, sorted in descending order of bounding box confidence scores. numPredictions is the number of predicted bounding boxes.

Recall is the ratio of the number of true positives (TP) and the total number of ground truth​. Larger recall scores indicate that more detected objects match ground truth objects. To learn more about the recall metric, see Compute Precision and Recall.

Confidence score for each detection, returned as an M-by-1 cell array. M is the number of classes in the ClassNames property. Each element of the array is a (numPredictions+1)-element numeric vector. numPredictions is the number of predicted objects.

More About

collapse all

Evaluate Detector Performance Using Precision Recall at Multiple Overlap Thresholds

To evaluate how precisely a detector can localize bounding boxes, plot the precision recall curve for a range of overlap thresholds.

At higher overlap thresholds, the criteria for how well the bounding boxes of the detection and ground truth must overlap to be a true positive (TP) are stricter. Therefore, average precision is lower at higher overlap thresholds, which corresponds to a decrease in the area under the precision-recall curve, which plots the recall against precision. Plotting the precision-recall curves across different overlap thresholds can help you evaluate the detector in these ways.

  • Evaluate how well the detector can generate detection at higher overlap thresholds.

  • Identify specific overlap thresholds where a detector's performance significantly drops, highlighting areas for model improvement.

  • Choose an optimal overlap threshold that balances the trade-off between detecting as many objects as possible (high recall) and ensuring high accuracy in these detections (high precision).

  • Use precision-recall curves at different overlap thresholds for a more granular comparison between object detection models than single metric evaluations. Nuances in performance can be obscured when considering only one overlap threshold or when relying solely on aggregated metrics such as mean average precision.

Algorithms

collapse all

Compute Precision and Recall

Precision recall is a powerful tool you can use to evaluate object detector performance. The precisionRecall function computes the precision and recall in these steps.

  1. Sorts the detections which satisfy the criteria specified by the ClassNames and OverlapThresholds name-value arguments in descending order based on their confidence scores. Higher confidence scores indicate that the model is more certain that the detection is correct.

  2. Identifies true positives (TP) and false positives (FP) according to the specified overlap threshold criteria. A detection is considered a TP if its IoU is greater to or equal to the specified overlap threshold. A detection is considered an FP if it does not match any ground truth object or if it matches a ground truth object but the IoU is below the specified overlap threshold.

  3. Starting with the detection with the highest confidence score, the precisionRecall function iterates through each detection and calculates the cumulative number of TPs and FPs at each step. This step-by-step process enables the calculation of precision and recall at every confidence level. At each score, the function calculates the precision and recall.

    Precision measures the accuracy of positive predictions, i.e., the proportion of detections that are correctly identified from all detections made.

    Precision = TP / (TP + FP)

    Recall measures the ability of the detector to detect all object instances, i.e. the proportion of actual positives that are correctly identified. False negatives (FNs) are ground truth objects that haven't been detected or have been detected with a confidence score below the current threshold being considered.

    Recall = TP / (TP + FN)

  4. For each detection, the set of TPs, FPs, and FNs changes, which enables you to recalculate precision and recall at each confidence level.

To visualize the trade-off between precision and recall for different confidence thresholds, plot the calculated precision and recall values. For an example, see Plot Precision-Recall Curve.

Version History

Introduced in R2024b