asana17/ai_can_anomaly_detection_data
ai_can_anomaly_detection_data The rows the detectors in asana17/ai_can_anomaly_detection are trained, calibrated and tested on, built from CAN logs by assemble.dataset there. A run reads them at one revision and records that revision, so the models in asana17/ai_can_anomaly_detection_runs each name the data they were fitted on. python3 -m evaluate.pc.run asana17/ai_can_anomaly_detection_data <revision> out runs_clone main holds the dataset built from every log. A smaller one… See the full description on the dataset page: https://huggingface.co/datasets/asana17/ai_can_anomaly_detection_data.
aicananomalydetectiondata
The rows the detectors in asana17/ai_can_anomaly_detection are trained, calibrated and tested on, built from CAN logs by assemble.dataset there. A run reads them at one revision and records that revision, so the models in asana17/ai_can_anomaly_detection_runs each name the data they were fitted on.
python3 -m evaluate.pc.run asana17/ai_can_anomaly_detection_data <revision> out runs_clonemain holds the dataset built from every log. A smaller one built for a quick try goes to a branch of its own.
Source
Built from the University of Turku J1939 truck dataset, a Renault Euro VI truck on the road, normal traffic only. It is CC BY 4.0, and so is this. https://etsin.fairdata.fi/dataset/7586f24f-c91b-41df-92af-283524de8b3e/data
The raw logs are not here. Fetch them from the page above.
Files
The signals and the settings are in grid.json and built.json.
Frames
frames/ holds the same attacked test logs frame by frame, for sending the attacks over a real CAN bus. They go with the rows above, the attack set the runs 20260916-001002, 20260916-064753, 20260916-234726 and 20260919-025203 scored.
A frame can change while no row moves, so score a detector on attacked_label.npy, not on attacked. A row cut short in the source log was dropped on reading.
