Abstract
Perception algorithms in autonomous vehicles are vital for the vehicle to understand the semantics of its surroundings, including detection and tracking of objects in the environment. The outputs of these algorithms are in turn used for decision-making in safety-critical scenarios like collision avoidance, and automated emergency braking. Thus, it is crucial to monitor such perception systems at runtime. However, due to the high-level, complex representations of the outputs of perception systems, it is a challenge to test and verify these systems, especially at runtime. In this paper, we present a runtime monitoring tool, PerceMon that can monitor arbitrary specifications in Timed Quality Temporal Logic (TQTL) and its extensions with spatial operators. We integrate the tool with the CARLA autonomous vehicle simulation environment and the ROS middleware platform while monitoring properties on state-of-the-art object detection and tracking algorithms.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
ASAM OpenSCENARIO Specification. Technical report, ASAM e. V. (March 2021). https://www.asam.net/standards/detail/openscenario/
Annpureddy, Y., Liu, C., Fainekos, G., Sankaranarayanan, S.: S-TaLiRo: a tool for temporal logic falsification for hybrid systems. In: Abdulla, P.A., Leino, K.R.M. (eds.) TACAS 2011. LNCS, vol. 6605, pp. 254–257. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-19835-9_21
Bortolussi, L., Nenzi, L.: Specifying and monitoring properties of stochastic spatio-temporal systems in signal temporal logic. In: Proceedings of the 8th International Conference on Performance Evaluation Methodologies and Tools, pp. 66–73. VALUETOOLS 2014, ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering) (December 2014). https://doi.org/10.4108/icst.Valuetools.2014.258183
Bouyer, P., Chevalier, F., Markey, N.: On the expressiveness of TPTL and MTL. In: Sarukkai, S., Sen, S. (eds.) FSTTCS 2005. LNCS, vol. 3821, pp. 432–443. Springer, Heidelberg (2005). https://doi.org/10.1007/11590156_35
Dokhanchi, A., Amor, H.B., Deshmukh, J.V., Fainekos, G.: Evaluating perception systems for autonomous vehicles using quality temporal logic. In: Colombo, C., Leucker, M. (eds.) RV 2018. LNCS, vol. 11237, pp. 409–416. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03769-7_23
Dokhanchi, A., Hoxha, B., Fainekos, G.: On-line monitoring for temporal logic robustness. In: Bonakdarpour, B., Smolka, S.A. (eds.) RV 2014. LNCS, vol. 8734, pp. 231–246. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-11164-3_19
Donzé, A., Jin, X., Deshmukh, J.V., Seshia, S.A.: Automotive systems requirement mining using breach. In: 2015 American Control Conference (ACC), pp. 4097–4097 (July 2015). https://doi.org/10.1109/ACC.2015.7171970
Dosovitskiy, A., Ros, G., Codevilla, F., Lopez, A., Koltun, V.: CARLA: an open urban driving simulator. In: Conference on Robot Learning, pp. 1–16. PMLR (October 2017). http://proceedings.mlr.press/v78/dosovitskiy17a.html
Dreossi, T., et al.: VerifAI: a toolkit for the formal design and analysis of artificial intelligence-based systems. In: Dillig, I., Tasiran, S. (eds.) CAV 2019. LNCS, vol. 11561, pp. 432–442. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-25540-4_25
Fainekos, G., Hoxha, B., Sankaranarayanan, S.: Robustness of specifications and its applications to falsification, parameter mining, and runtime monitoring with S-TaLiRo. In: Finkbeiner, B., Mariani, L. (eds.) RV 2019. LNCS, vol. 11757, pp. 27–47. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-32079-9_3
Fainekos, G.E., Pappas, G.J.: Robustness of temporal logic specifications for continuous-time signals. Theor. Comput. Sci. 410(42), 4262–4291 (2009). https://doi.org/10.1016/j.tcs.2009.06.021
Gabelaia, D., Kontchakov, R., Kurucz, A., Wolter, F., Zakharyaschev, M.: On the computational complexity of spatio-temporal logics. In: Proceedings of the 16th AAAI International FLAIRS Conference, pp. 460–464. AAAI Press (2003)
Haghighi, I., Jones, A., Kong, Z., Bartocci, E., Gros, R., Belta, C.: SpaTeL: a novel spatial-temporal logic and its applications to networked systems. In: Proceedings of the 18th International Conference on Hybrid Systems: Computation and Control, pp. 189–198. HSCC 2015, Association for Computing Machinery (2015). https://doi.org/10.1145/2728606.2728633
Hekmatnejad, M.: Formalizing Safety, Perception, and Mission Requirements for Testing and Planning in Autonomous Vehicles. Ph.D. thesis, Arizona State University (2021)
Kato, S., et al.: Autoware on board: enabling autonomous vehicles with embedded systems. In: 2018 ACM/IEEE 9th International Conference on Cyber -Physical Systems (ICCPS), pp. 287–296 (April 2018). https://doi.org/10.1109/ICCPS.2018.00035
Lee, T.B.: Report: Software bug led to death in Uber’s self-driving crash (May 2018). https://arstechnica.com/tech-policy/2018/05/report-software-bug-led-to-death-in-ubers-self-driving-crash/
Maler, O., Nickovic, D.: Monitoring temporal properties of continuous signals. In: Lakhnech, Y., Yovine, S. (eds.) FORMATS/FTRTFT -2004. LNCS, vol. 3253, pp. 152–166. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-30206-3_12
Nenzi, L., Bortolussi, L., Ciancia, V., Loreti, M., Massink, M.: Qualitative and quantitative monitoring of spatio-temporal properties. In: Bartocci, E., Majumdar, R. (eds.) RV 2015. LNCS, vol. 9333, pp. 21–37. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-23820-3_2
Nickovic, D., Yamaguchi, T.: RTAMT: Online Robustness Monitors from STL. arXiv:2005.11827 [cs] (May 2020). http://arxiv.org/abs/2005.11827
Quigley, M., et al.: ROS: an open-source robot operating system. In: ICRA Workshop on Open Source Software, vol. 3, p. 5. Kobe, Japan (2009)
Redmon, J.: Darknet: Open source neural networks in c (2013–2016). http://pjreddie.com/darknet/
Redmon, J., Divvala, S., Girshick, R., Farhadi, A.: You only look once: unified, real-time object detection . In: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 779–788 (2016). https://www.cv-foundation.org/openaccess/content%5Fcvpr%5F2016/html/Redmon%5FYou%5FOnly%5FLook%5FCVPR%5F2016%5Fpaper.html
Redmon, J., Farhadi, A.: YOLOv3: An Incremental Improvement. arXiv:1804.02767 [cs] (April 2018). http://arxiv.org/abs/1804.02767
Templeton, B.: Tesla In Taiwan Crashes Directly Into Overturned Truck, Ignores Pedestrian, With Autopilot On (June 2020). https://www.forbes.com/sites/bradtempleton/2020/06/02/tesla-in-taiwan-crashes-directly-into-overturned-truck-ignores-pedestrian-with-autopilot-on/
Wojke, N., Bewley, A., Paulus, D.: Simple online and realtime tracking with a deep association metric. In: 2017 IEEE International Conference on Image Processing (ICIP), pp. 3645–3649 (September 2017). https://doi.org/10.1109/ICIP.2017.8296962
Zapridou, E., Bartocci, E., Katsaros, P.: Runtime verification of autonomous driving systems in CARLA. In: Deshmukh, J., Ničković, D. (eds.) RV 2020. LNCS, vol. 12399, pp. 172–183. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-60508-7_9
Acknowledgment
This work was partially supported by the National Science Foundation under grant no. CNS-2039087 and grant no. CNS-2038666, and the tool was developed with support from Toyota Research Institute North America.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
A Semantics for STQL
A Semantics for STQL
Consider a data stream \(\xi \) consisting of frames containing objects and annotated with a time stamp. Let \(i \in \mathbb {N}\) be the current frame of evaluation, and let \(\xi _i\) denote the \(i^{th}\) frame. We let \(\epsilon : V_t \cup V_f \rightarrow \mathbb {N}\cup \{\mathrm {NaN}\} \) denote a mapping from a pinned time or frame variable to a frame index (if it exists), and let \(\zeta : V_o \rightarrow \mathbb {N}\) be a mapping from an object variable to an actual object ID that was assigned by a quantifier. Finally, we let \(\mathcal {O}(\xi _i)\) denote the set of object IDs available in the frame \(i\), and let \(t(\xi _i)\) output the timestamp of the given frame.
Let \(\llbracket \varphi \rrbracket \) be the quality of the STQL formula, \(\varphi \), at the current frame \(i\), which can be recursively defined as follows:
-
For the propositional and temporal operations, the semantics simply follows the Boolean semantics for LTL or MTL, i.e.,
-
For constraints on time and frame variables,
$$\begin{aligned} \llbracket x - \textsf {C\_TIME}\sim c \rrbracket (\xi , i, \epsilon , \zeta )&= {\left\{ \begin{array}{ll} \top ,\quad \text {if } \epsilon (x) - t(\xi _i) \sim c \\ \bot ,\quad \text {otherwise.} \end{array}\right. } \\ \llbracket f - \textsf {C\_FRAME}\sim c \rrbracket (\xi , i, \epsilon , \zeta )&= {\left\{ \begin{array}{ll} \top ,\quad \text {if } \epsilon (f) - i \sim c \\ \bot ,\quad \text {otherwise.} \end{array}\right. } \\ \end{aligned}$$ -
For operations on object variables,
$$\begin{aligned} \llbracket \{id_j = id_j\} \rrbracket (\xi , i, \epsilon , \zeta )&= {\left\{ \begin{array}{ll} \top ,\quad \text {if } \zeta (id_j) = \zeta (id_k) \\ \bot ,\quad \text {otherwise.} \end{array}\right. } \\ \llbracket {{\,\mathrm{\mathsf {C}}\,}}(id_j) = c \rrbracket (\xi , i, \epsilon , \zeta )&= {\left\{ \begin{array}{ll} \top ,\quad \text {if } \mathcal {O}(\xi _i)(\zeta (id_j)).\text {class} = c \\ \bot ,\quad \text {otherwise.} \end{array}\right. } \\ \llbracket {{\,\mathrm{\mathsf {C}}\,}}(id_j) = {{\,\mathrm{\mathsf {C}}\,}}(id_k) \rrbracket (\xi , i, \epsilon , \zeta )&= {\left\{ \begin{array}{ll} \top ,\quad \text {if } \mathcal {O}(\xi _i)(\zeta (id_j)).\text {class} \\ \qquad \qquad = \mathcal {O}(\xi _i)(\zeta (id_k)).\text {class} \\ \bot ,\quad \text {otherwise.} \end{array}\right. } \\ \llbracket {{\,\mathrm{\mathsf {P}}\,}}(id_j) \sim r \rrbracket (\xi , i, \epsilon , \zeta )&= {\left\{ \begin{array}{ll} \top ,\quad \text {if } \mathcal {O}(\xi _i)(\zeta (id_j)).\text {prob} \sim r \\ \bot ,\quad \text {otherwise.} \end{array}\right. } \\ \llbracket {{\,\mathrm{\mathsf {P}}\,}}(id_j) \sim r \times {{\,\mathrm{\mathsf {P}}\,}}(id_k) \rrbracket (\xi , i, \epsilon , \zeta )&= {\left\{ \begin{array}{ll} \top ,\quad \text {if } \mathcal {O}(\xi _i)(\zeta (id_j)).\text {prob} \sim r \\ \qquad \qquad \times \mathcal {O}(\xi _i)(\zeta (id_k)).\text {prob} \\ \bot ,\quad \text {otherwise.} \end{array}\right. } \end{aligned}$$ -
For the area, latitudinal offset, and longitudinal offset,
$$\begin{aligned} \llbracket {{\,\mathrm{\mathsf {Area}}\,}}(\mathcal {T}_1) \sim r \rrbracket&= {\left\{ \begin{array}{ll} \top ,\quad \text {if } {{\,\mathrm{\mathsf {Area}}\,}}({{\,\mathrm{\mathfrak {U}}\,}}(\mathcal {T}_1, \xi , \zeta )) \sim r \\ \bot ,\quad \text {otherwise.} \end{array}\right. } \\ \llbracket {{\,\mathrm{\mathsf {Lat}}\,}}(id_1, \mathrm {CRT}_1) \sim r \rrbracket (\xi , i, \epsilon , \zeta )&= {\left\{ \begin{array}{ll} \top ,\quad \text {if } f_{lat}{}(id_1, \mathrm {CRT}_1, \xi , i, \epsilon , \zeta ) \sim r \\ \bot ,\quad \text {otherwise.} \end{array}\right. } \\ \llbracket {{\,\mathrm{\mathsf {Lon}}\,}}(id_1, \mathrm {CRT}_1) \sim r \rrbracket (\xi , i, \epsilon , \zeta )&= {\left\{ \begin{array}{ll} \top ,\quad \text {if } f_{lon}(id_1, \mathrm {CRT}_1, \xi , i, \epsilon , \zeta ) \sim r \\ \bot ,\quad \text {otherwise.} \end{array}\right. } \end{aligned}$$where, \(\sim \in \{ <,>,\le ,\ge \}\), and
-
\(f_{lat}\) computes the lateral distance of the \(\mathrm {CRT}\) point of an object identified by \(\mathcal {O}(\zeta (id_1))\) from the Longitudinal axis;
-
\(f_{lon}\) computes the longitudinal distance of the \(\mathrm {CRT}\) point of an object identified by \(\mathcal {O}(\zeta (id_1))\) from the Lateral axis; and
-
\({{\,\mathrm{\mathfrak {U}}\,}}(\mathcal {T}, \xi , \zeta )\) is the compound spatial object created after set operations on bounding boxes (defined below).
-
-
And, finally, for the spatial existence operator,
Here, the compound spatial function, \({{\,\mathrm{\mathfrak {U}}\,}}\) is defined as follows:
$$\begin{aligned} {{\,\mathrm{\mathfrak {U}}\,}}(\varnothing , \xi , \zeta )&= \emptyset \\ {{\,\mathrm{\mathfrak {U}}\,}}(\mathbb {U}, \xi , \zeta )&= \mathbb {U}\\ {{\,\mathrm{\mathfrak {U}}\,}}({{\,\mathrm{\mathfrak {BB}}\,}}(id), \xi , \zeta )&= \zeta (id).\text {bbox} \\ {{\,\mathrm{\mathfrak {U}}\,}}(\overline{\mathcal {T}}, \xi , \zeta )&= \mathbb {U}\setminus {{\,\mathrm{\mathfrak {U}}\,}}(\mathcal {T}, \xi , \zeta ) \\ {{\,\mathrm{\mathfrak {U}}\,}}(\mathcal {T}_1 \sqcup \mathcal {T}_2, \xi , \zeta )&= {{\,\mathrm{\mathfrak {U}}\,}}(\mathcal {T}_1, \xi , \zeta ) \cup {{\,\mathrm{\mathfrak {U}}\,}}(\mathcal {T}_2, \xi , \zeta ) \end{aligned}$$
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Balakrishnan, A., Deshmukh, J., Hoxha, B., Yamaguchi, T., Fainekos, G. (2021). PerceMon: Online Monitoring for Perception Systems. In: Feng, L., Fisman, D. (eds) Runtime Verification. RV 2021. Lecture Notes in Computer Science(), vol 12974. Springer, Cham. https://doi.org/10.1007/978-3-030-88494-9_18
Download citation
DOI: https://doi.org/10.1007/978-3-030-88494-9_18
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-88493-2
Online ISBN: 978-3-030-88494-9
eBook Packages: Computer ScienceComputer Science (R0)