diff --git a/selfdrive/car/ford/tests/ford_fuzzy_fingerprint.ipynb b/selfdrive/car/ford/tests/ford_fuzzy_fingerprint.ipynb index 137b5eb814..46ae67825d 100644 --- a/selfdrive/car/ford/tests/ford_fuzzy_fingerprint.ipynb +++ b/selfdrive/car/ford/tests/ford_fuzzy_fingerprint.ipynb @@ -2,9 +2,17 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "kj/filesystem-disk-unix.c++:1703: warning: PWD environment variable doesn't match current directory; pwd = /mnt/c/Users/camer/AppData/Local/Programs/Microsoft VS Code\n" + ] + } + ], "source": [ "from openpilot.tools.lib.comma_car_segments import get_comma_car_segments_database\n", "from openpilot.selfdrive.car.ford.values import CAR\n", @@ -20,85 +28,356 @@ "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Skipping platform: FORD F-150 14TH GEN, no data available\n" - ] + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "1f0a7e43c6374bafa78941befed85958", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/261 [00:00, ?it/s]" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "from openpilot.tools.lib.logreader import get_first_message, LogReader\n", + "import random\n", "\n", + "from tqdm.contrib.concurrent import thread_map\n", "\n", - "FW_TO_CHECK = set()\n", + "from openpilot.tools.lib.logreader import LogReader\n", "\n", - "for platform in platforms:\n", - " if platform not in database:\n", - " print(f\"Skipping platform: {platform}, no data available\")\n", - " continue\n", "\n", - " for segment in database[platform]:\n", - " lr = LogReader(segment)\n", - " CP = get_first_message(lr, \"carParams\").carParams\n", - " FW_TO_CHECK.add((CP.carVin, CP.carFw, CP.carFingerprint, CP.fuzzyFingerprint, CP.fingerprintSource))" + "def process(segment):\n", + " CP = LogReader(segment).first(\"carParams\")\n", + " return CP.carVin, CP.carFw, CP.carFingerprint, CP.fuzzyFingerprint, CP.fingerprintSource\n", + "\n", + "\n", + "FW_TO_CHECK = set(thread_map(process, [\n", + " segment for platform in platforms\n", + " for segment in random.sample(database[platform], min(len(database[platform]), 50))\n", + "]))" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "vin: 3FTTW8E31PRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: FORD MAVERICK 1ST GEN correct: True\n", - "vin: 3FMTK3SU0MMXXXXXX expected: FORD MUSTANG MACH-E 1ST GEN fuzzy: FORD MUSTANG MACH-E 1ST GEN correct: True\n", - "vin: 3FMCR9B69NRXXXXXX expected: FORD BRONCO SPORT 1ST GEN fuzzy: FORD BRONCO SPORT 1ST GEN correct: True\n", - "vin: 3FTTW8F98NRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: FORD MAVERICK 1ST GEN correct: True\n", - "vin: WF0NXXGCHNJXXXXXX expected: FORD FOCUS 4TH GEN fuzzy: FORD FOCUS 4TH GEN correct: True\n", - "vin: 3FTTW8E31PRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: FORD MAVERICK 1ST GEN correct: True\n", - "vin: WF0NXXGCHNJXXXXXX expected: FORD FOCUS 4TH GEN fuzzy: FORD FOCUS 4TH GEN correct: True\n", - "vin: 3FMCR9B69NRXXXXXX expected: FORD BRONCO SPORT 1ST GEN fuzzy: FORD BRONCO SPORT 1ST GEN correct: True\n", - "vin: 1FM5K7LC0MGXXXXXX expected: FORD EXPLORER 6TH GEN fuzzy: FORD EXPLORER 6TH GEN correct: True\n", - "vin: 5LM5J7XC9LGXXXXXX expected: FORD EXPLORER 6TH GEN fuzzy: FORD EXPLORER 6TH GEN correct: True\n", - "vin: 00000000000XXXXXX expected: FORD ESCAPE 4TH GEN fuzzy: FORD ESCAPE 4TH GEN correct: True\n", - "vin: 1FTVW1EL4NWXXXXXX expected: FORD F-150 LIGHTNING 1ST GEN fuzzy: FORD F-150 LIGHTNING 1ST GEN correct: True\n", - "vin: 1FM5K7LC0MGXXXXXX expected: FORD EXPLORER 6TH GEN fuzzy: FORD EXPLORER 6TH GEN correct: True\n", - "vin: 1FMCU9J94MUXXXXXX expected: FORD ESCAPE 4TH GEN fuzzy: FORD ESCAPE 4TH GEN correct: True\n", - "vin: 3FMCR9B69NRXXXXXX expected: FORD BRONCO SPORT 1ST GEN fuzzy: FORD BRONCO SPORT 1ST GEN correct: True\n", - "vin: 00000000000XXXXXX expected: FORD ESCAPE 4TH GEN fuzzy: FORD ESCAPE 4TH GEN correct: True\n", - "vin: 3FTTW8E99NRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: FORD MAVERICK 1ST GEN correct: True\n", - "vin: 3FMTK3SU0MMXXXXXX expected: FORD MUSTANG MACH-E 1ST GEN fuzzy: FORD MUSTANG MACH-E 1ST GEN correct: True\n", - "vin: 1FTVW1EL4NWXXXXXX expected: FORD F-150 LIGHTNING 1ST GEN fuzzy: FORD F-150 LIGHTNING 1ST GEN correct: True\n", - "vin: 00000000000XXXXXX expected: FORD ESCAPE 4TH GEN fuzzy: FORD ESCAPE 4TH GEN correct: True\n", - "vin: 1FM5K8GC7LGXXXXXX expected: FORD EXPLORER 6TH GEN fuzzy: FORD EXPLORER 6TH GEN correct: True\n", - "vin: 1FM5K7LC0MGXXXXXX expected: FORD EXPLORER 6TH GEN fuzzy: FORD EXPLORER 6TH GEN correct: True\n", - "vin: 3FMCR9B69NRXXXXXX expected: FORD BRONCO SPORT 1ST GEN fuzzy: FORD BRONCO SPORT 1ST GEN correct: True\n", - "vin: 1FM5K8HC7MGXXXXXX expected: FORD EXPLORER 6TH GEN fuzzy: FORD EXPLORER 6TH GEN correct: True\n", - "vin: WF0NXXGCHNJXXXXXX expected: FORD FOCUS 4TH GEN fuzzy: FORD FOCUS 4TH GEN correct: True\n", - "vin: 3FTTW8E31PRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: FORD MAVERICK 1ST GEN correct: True\n", - "vin: 5LM5J7XC8MGXXXXXX expected: FORD EXPLORER 6TH GEN fuzzy: FORD EXPLORER 6TH GEN correct: True\n", - "vin: 1FTVW1EL4NWXXXXXX expected: FORD F-150 LIGHTNING 1ST GEN fuzzy: FORD F-150 LIGHTNING 1ST GEN correct: True\n", - "vin: 1FM5K8GC7NGXXXXXX expected: FORD EXPLORER 6TH GEN fuzzy: FORD EXPLORER 6TH GEN correct: True\n", - "vin: 3FMTK3SU0MMXXXXXX expected: FORD MUSTANG MACH-E 1ST GEN fuzzy: FORD MUSTANG MACH-E 1ST GEN correct: True\n", - "Success rate: 100.00%\n" + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "Skipping vin: 00000000000XXXXXX platform: FORD F-150 14TH GEN, no car fw\n", + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "Skipping vin: 00000000000XXXXXX platform: FORD F-150 14TH GEN, no car fw\n", + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "Skipping vin: 00000000000XXXXXX platform: FORD F-150 14TH GEN, no car fw\n", + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "Skipping vin: 00000000000XXXXXX platform: FORD F-150 14TH GEN, no car fw\n", + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "vin: 3FTTW8E34PRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "Skipping vin: 00000000000XXXXXX platform: FORD F-150 14TH GEN, no car fw\n", + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", + " source: fw\n", + " fuzzy: True\n", + " car_fw:\n", + " abs b'PZ6C-2D053-ED'\n", + " engine b'PZ6A-14C204-JE'\n", + " eps b'NZ6C-14D003-AL'\n", + " fwdCamera b'NZ6T-14F397-AC'\n", + "Success rate: 92.58%\n" ] + }, + { + "data": { + "text/html": [ + "
\n", + " | source | \n", + "expected | \n", + "fuzzy | \n", + "correct | \n", + "
---|---|---|---|---|
0 | \n", + "fw | \n", + "FORD BRONCO SPORT 1ST GEN | \n", + "FORD BRONCO SPORT 1ST GEN | \n", + "True | \n", + "
1 | \n", + "fw | \n", + "FORD MAVERICK 1ST GEN | \n", + "mock | \n", + "False | \n", + "
4 | \n", + "fw | \n", + "FORD ESCAPE 4TH GEN | \n", + "FORD ESCAPE 4TH GEN | \n", + "True | \n", + "
6 | \n", + "fw | \n", + "FORD FOCUS 4TH GEN | \n", + "FORD FOCUS 4TH GEN | \n", + "True | \n", + "
7 | \n", + "fixed | \n", + "FORD EXPLORER 6TH GEN | \n", + "FORD EXPLORER 6TH GEN | \n", + "True | \n", + "
10 | \n", + "fw | \n", + "FORD EXPLORER 6TH GEN | \n", + "FORD EXPLORER 6TH GEN | \n", + "True | \n", + "
19 | \n", + "fw | \n", + "FORD MAVERICK 1ST GEN | \n", + "FORD MAVERICK 1ST GEN | \n", + "True | \n", + "
41 | \n", + "fw | \n", + "FORD F-150 LIGHTNING 1ST GEN | \n", + "FORD F-150 LIGHTNING 1ST GEN | \n", + "True | \n", + "
52 | \n", + "fixed | \n", + "FORD MAVERICK 1ST GEN | \n", + "FORD MAVERICK 1ST GEN | \n", + "True | \n", + "
113 | \n", + "fw | \n", + "FORD MUSTANG MACH-E 1ST GEN | \n", + "FORD MUSTANG MACH-E 1ST GEN | \n", + "True | \n", + "