smirk
SMIRK is an experimental pedestrian emergency breaking ADAS facilitating research on quality assurance of critical components that rely on machine learning.
Science Score: 57.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 2 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.7%) to scientific vocabulary
Repository
SMIRK is an experimental pedestrian emergency breaking ADAS facilitating research on quality assurance of critical components that rely on machine learning.
Basic Info
Statistics
- Stars: 16
- Watchers: 5
- Forks: 4
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
SMIRK
SMIRK is an experimental pedestrian emergency braking ADAS facilitating research on quality assurance of critical components that rely on machine learning.
- Domain: Automotive, Advanced Driver-Assistance Systems (ADAS)
- Keywords: automotive, machine learning, computer vision, functional safety, SOTIF, quality assurance, AI testing
- Responsible unit at RISE: Digital Systems/Mobility and Systems/Humanized Autonomy
- Related research projects: SMILEIII, SODA, AIQ Meta-Testbed, VALU3S
- License: GPL3-0
Description
SMIRK is a research prototype under development that facilitates research on verification and validation (V&V) of safety-critical systems embedding Machine Learning (ML) components. SMIRK responds to calls for a fully transparent ML-based Advanced Driver-Assistance System (ADAS) to act as a system-under-test in research on trusted AI [1]. SMIRK provides pedestrian emergency braking. By combining trained and coded software, SMIRK is intended to become a baseline Software-Under-Test (SUT) for ML testing research targeting automotive perception applications such as object detection and path planning. To ensure industrial relevance, SMIRK will implement a reference architecture while adhering to development practices mandated by contemporary automotive safety standards [2], and we complemented it with a fully transparent safety case.
Purpose and Limitations
The SMIRK safety case is restricted to the novel challenges introduced by ML. The development adheres to the overall process described in the publicly available specification ISO/PAS 21448:2019 Road vehicles — Safety of the intended functionality and we provide ML assurance by following the methodology for Assurance of Machine Learning for use in Autonomous Systems (AMLAS). Demonstrating compliance with the quintessential automotive software standard ISO 26262:2018 Road vehicles — Functional safety is out of the scope of this research project. We make the simplified assumption that the overall development context embedded the development of the ML-based SMIRK ADAS fulfills all aspects of ISO 26262, e.g., regarding processes, practices, and tools. While we will use third-party open-source software in SMIRK (both incorporated as assets in the product and as tool support for software testing), we will not provide any safety assurance of external tools - instead we assume that the development organization has the capability to do so.
How To Cite This Work
If you use this software, please cite the peer-reviewed Original Software Publication:
@article{socha2022smirk,
title = {SMIRK: A Machine Learning-Based Pedestrian Automatic Emergency Braking System with a Complete Safety Case},
author = {Socha, Kasper and Borg, Markus and Henriksson, Jens},
journal = {Software Impacts},
volume = {13},
year = {2022},
publisher = {Elsevier},
doi = {10.1016/j.simpa.2022.100352}
}
When referring to the development of SMIRK and its corresponding safety case, please cite the article:
@article{borg2023ergo,
doi = {10.1007/s11219-022-09613-1},
author = {Borg, Markus and Henriksson, Jens and Socha, Kasper and Lennartsson, Olof and Lönegren, Elias Sonnsjö and Bui, Thanh and Tomaszewski, Piotr and Sathyamoorthy, Sankar Raman and Brink, Sebastian and Moghadam, Mahshid Helali},
title = {Ergo, SMIRK is Safe: A Safety Case for a Machine Learning Component in a Pedestrian Automatic Emergency Brake System},
journal = {Software Quality Journal},
issue = {31},
pages = {335–403},
year = {2023}
}
Disclaimer
SMIRK is developed for use in simulated environments. Under no circumstances shall SMIRK be used in real vehicles operating in the physical world. You assume all responsibility and risk for the use of the SMIRK or any resources available on or through this GitHub repository. RISE Research Institutes of Sweden does not assume any liability for the materials, information and opinions provided on, or available through, this web page. No advice or information given by RISE Research Institutes of Sweden or its employees shall create any warranty. Reliance on such advice, information or the content of this web page is solely at your own risk, including without limitation any safety guidelines, resources or precautions related to the installation, operation, maintenance or evolution of SMIRK or any other information related to safety that may be available on or through this web page. RISE Research Institutes of Sweden disclaims any liability for injury, death or damages resulting from the use thereof.
Branching Model
The SMIRK development follows the popular git-flow branching model. The model uses two infinite branches (master and develop) and two types of supporting branches (feature and hotfix branches). Supporting branches shall be ephemeral, i.e., they should only last as long as the feature or hotfix itself is in development. Once completed, they shall be merged back into one of the infinite branches and/or discarded.
In the following examples, feature-x or hotfix-x shall be replaced with a short phrase describing the feature or hotfix.
master- the main branch where the source code of HEAD always reflects a production-ready state.develop- where the main development is reflected. Merges intomaster.feature-x- used to develop new features for the upcoming release. Merges intodevelop.-
hotfix-x- used when it is necessary to act immediately upon an undesired state of a live production version. Merges intomaster.
The repository administrators are responsible for deleting the remote copies of ephemeral branches and updating the version tag for the master branch.
External pull requests are welcome, but must be reviewed before they can be merged into the master branch. Reviewers may ask questions or make suggestions for edits and improvements before your feature can be merged. If your feature branch pull request is not accepted, make the necessary adjustments or fixes as indicated by the repository administrators and redo the pull request.
For a longer description of the branching model, please refer to our examples.
Quickstart
Create a Python 3.7 virtual environment with your preferred tool e.g. using conda:
$ conda create -n=smirk-env python=3.7
$ conda activate smirk-env
Installation in interactive mode currently requires poetry. Once poetry is installed SMRIK can be installed as follows:
$ git clone https://github.com/RI-SE/smirk && cd smirk
$ poetry install
This will allow you to use the smirk CLI command to reproduce the smirk results or try your own configurations.
Use the -h option to see additional help.
``` $ smirk -h
Usage: smirk [OPTIONS] COMMAND [ARGS]...
Experimental pedestrian emergency breaking ADAS facilitating research on quality assurance of critical components that rely on machine learning.
Options: -v, --version Show the version and exit. -h, --help Show this message and exit.
Commands: detect Training and evaluation of pedestrian detection models. generate Data generation safety Outlier detection training and evaluation. test System simulator testing. ```
The -h option is available for sub-commands as well e.g.:
``` $ smirk detect eval -h
Usage: smirk detect eval [OPTIONS]
Evalute pedestrian detection model.
Options: -d, --data DIRECTORY Path to dataset directory [required] -w, --weights FILE Path to model weights [required] --conf FLOAT Confidence threshold [required] --batch-size INTEGER Batch size -h, --help Show this message and exit. ```
Further instructions on reproducing the results and running custom experiments will be provided in the docs.
References
[1] https://futurium.ec.europa.eu/en/european-ai-alliance/pages/altai-assessment-list-trustworthy-artificial-intelligence)
[2] https://www.iso.org/standard/70939.html
Owner
- Name: RISE Research Institutes of Sweden
- Login: RI-SE
- Kind: organization
- Email: info@ri.se
- Location: Sweden
- Website: https://ri.se
- Repositories: 15
- Profile: https://github.com/RI-SE
RI.SE - New solutions for a sustainable future
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: >-
SMIRK: A Machine Learning-Based Pedestrian
Automatic Emergency Braking System With a Complete
Safety Case, Software Impacts, Volume 13
message: >-
If you use this software, please cite it using the
metadata from this file. To cite the corresponding
safety case, please cite: M. Borg et al., “Ergo,
SMIRK is Safe: A Safety Case for a Machine Learning
Component in a Pedestrian Automatic Emergency Brake
System,” Software Quality Journal, 2023.
type: Original Software Publication
authors:
- given-names: Kasper
family-names: Socha
email: kasper.socha@ri.se
affiliation: RISE Research Institutes of Sweden
- given-names: Markus
family-names: Borg
email: markus.borg@ri.se
affiliation: CodeScene
orcid: 'https://orcid.org/0000-0001-7879-4371'
- given-names: Jens
family-names: Henriksson
email: jens.henriksson@semcon.com
affiliation: Semcon
identifiers:
- type: doi
value: 10.1016/j.simpa.2022.100352
description: Original Software Publication
repository-code: 'https://github.com/RI-SE/smirk/'
url: >-
https://www.softwareimpacts.com/article/S2665-9638(22)00068-9/fulltext
abstract: >-
SMIRK is a pedestrian automatic emergency braking
system that facilitates research on safety-critical
systems embedding machine learning components. As a
fully transparent driver-assistance system, SMIRK
can support future research on trustworthy AI
systems, e.g., verification & validation,
requirements engineering, and testing. SMIRK is
implemented for the simulator ESI Pro-SiVIC with
core components including a radar sensor, a mono
camera, a YOLOv5 model, and an anomaly detector.
ISO/PAS 21448 SOTIF guided the development, and we
present a complete safety case for a restricted ODD
using the AMLAS methodology. Finally, all training
data used to train the perception system is
publicly available.
keywords:
- Automotive demonstrator
- Advanced driver-assistance system
- Pedestrian automatic emergency braking
- Machine learning
- Computer vision
- Safety case
license: GPL-3.0
version: '0.99'
date-released: '2022-06-30'
GitHub Events
Total
- Issues event: 1
- Watch event: 1
Last Year
- Issues event: 1
- Watch event: 1
Dependencies
- 110 dependencies
- Pillow ^8.1.0
- alibi-detect ^0.8.1
- allpairspy ^2.5.0
- click ^8.1.3
- nanoid ^2.0.0
- numpy ~1.18.0
- omegaconf ^2.0.5
- pandas ^1.3.3
- psutil ^5.9.0
- pydantic ^1.9.1
- python 3.7.9
- tensorflow ~2.3.0
- tensorflow-hub ^0.12.0
- tensorflow-probability 0.11.1
- yolov5 *
- thop *
- torch ==1.10.0
- torchvision ==0.11.1
- Pillow >=7.1.2
- PyYAML ^6.0
- matplotlib ^3.5.0
- numpy ~1.18.0
- opencv-python ~4.4.0
- pandas ^1.3.3
- python 3.7.9
- requests ^2.26.0
- scipy ^1.7.3
- seaborn ^0.11.2
- tensorboard ^2.7.0
- tqdm ^4.62.3
- Pillow >=7.1.2
- PyYAML >=5.3.1
- matplotlib >=3.2.2
- numpy >=1.18.5
- opencv-python >=4.1.2
- pandas >=1.1.4
- requests >=2.23.0
- scipy >=1.4.1
- seaborn >=0.11.0
- tensorboard >=2.4.1
- thop *
- torch >=1.7.0
- torchvision >=0.8.1
- tqdm >=4.41.0
- Flask ==1.0.2
- gunicorn ==19.9.0
- pip ==21.1
- nvcr.io/nvidia/pytorch 21.10-py3 build
- gcr.io/google-appengine/python latest build