Majid Mirmehdi

224 papers A* 3A 30B 11C 5Misc 4Journal 113Unranked 56
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Tom Raynes, Otto Brookes, Timm Haucke, Lukas Boesch, Anne-Sophie Crunchant, Hjalmar S. Kühl, Sara Beery, Majid Mirmehdi, Tilo Burghardt
2026 J jnl
CoRR
Zhuoling Li, Hossein Rahmani, Jiarui Zhang, Yu Xue, Majid Mirmehdi, Jason Kuen, Jiuxiang Gu, Jun Liu
2026 J jnl
CoRR
Yu Qin, Phillip Sloan, Raúl Santos-Rodríguez, Majid Mirmehdi, Telmo de Menezes e Silva Filho
2026 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Jingjing Liu, Zhiyong Wang, Xinyu Fan, Amirhossein Dadashzadeh, Honghai Liu, Majid Mirmehdi
2026 J jnl
CoRR
Xiaofei Hui, Qian Wu, Haoxuan Qu, Majid Mirmehdi, Hossein Rahmani, Jun Liu
2026 J jnl
Int. J. Comput. Vis.
Xiaofei Hui, Qian Wu, Haoxuan Qu, Majid Mirmehdi, Hossein Rahmani, Jun Liu
2025 J jnl
CoRR
Vida Adeli, Ivan Klabucar, Javad Rajabi, Benjamin Filtjens, Soroush Mehraban, Diwei Wang, Hyewon Seo, Trung-Hieu Hoang, Minh N. Do, Candice Müller, Claudia Oliveira, Daniel Boari Coelho, Pieter Ginis, Moran Gilat, Alice Nieuwboer, Joke Spildooren, J. Lucas McKay, HyeokHyen Kwon, Gari D. Clifford, Christine D. Esper, Stewart A. Factor, Imari Genias, Amirhossein Dadashzadeh, Leia C. Shum, Alan L. Whone, Majid Mirmehdi, Andrea Iaboni, Babak Taati
2025 J jnl
CoRR
Amirhossein Dadashzadeh, Parsa Esmati, Majid Mirmehdi
2025 J jnl
Multim. Tools Appl.
Maksim Kholiavchenko, Jenna Kline, Maksim Kukushkin, Otto Brookes, Sam Stevens, Isla Duporge, Alec Sheets, Reshma Ramesh Babu, Namrata Banerji, Elizabeth G. Campolongo, Matthew J. Thompson, Nina Van Tiel, Jackson Miliko, Eduardo Bessa, Majid Mirmehdi, Thomas Schmid, Tanya Y. Berger-Wolf, Daniel I. Rubenstein, Tilo Burghardt, Charles V. Stewart
2025 J jnl
CoRR
Vida Adeli, Soroush Mehraban, Majid Mirmehdi, Alan L. Whone, Benjamin Filtjens, Amirhossein Dadashzadeh, Alfonso Fasano, Andrea Iaboni, Babak Taati
2025 J jnl
CoRR
Haoxuan Qu, Qiuchi Xiang, Yujun Cai, Yirui Wu, Majid Mirmehdi, Hossein Rahmani, Jun Liu
2025 J jnl
CoRR
Jenna Kline, Samuel Stevens, Guy Maalouf, Camille Rondeau Saint-Jean, Dat Nguyen Ngoc, Majid Mirmehdi, David Guérin, Tilo Burghardt, Elzbieta Pastucha, Blair R. Costelloe, Matthew Watson, Thomas Richardson, Ulrik Pagh Schultz Lundquist
2025 J jnl
CoRR
Qiushuo Cheng, Jingjing Liu, Catherine Morgan, Alan L. Whone, Majid Mirmehdi
2025 J jnl
CoRR
Guanxiong Sun, Majid Mirmehdi, Zahraa S. Abdallah, Raúl Santos-Rodríguez, Ian Craddock, Telmo de Menezes e Silva Filho
2025 A* conf
CVPR
Otto Brookes, Maksim Kukushkin, Majid Mirmehdi, Colleen Stephens, Paula Dieguez, Thurston C. Hicks, Sorrel Jones, Kevin Lee, Maureen S. McCarthy, Amelia Meier, Emmanuelle Normand, Erin G. Wessling, Roman M. Wittig, Kevin Langergraber, Klaus Zuberbühler, Lukas Boesch, Thomas Schmid, Mimi Arandjelovic, Hjalmar S. Kühl, Tilo Burghardt
2025 J jnl
CoRR
Otto Brookes, Maksim Kukushkin, Majid Mirmehdi, Colleen Stephens, Paula Dieguez, Thurston C. Hicks, Sorrel Jones, Kevin Lee, Maureen S. McCarthy, Amelia Meier, Emmanuelle Normand, Erin G. Wessling, Roman M. Wittig, Kevin Langergraber, Klaus Zuberbühler, Lukas Boesch, Thomas Schmid, Mimi Arandjelovic, Hjalmar S. Kühl, Tilo Burghardt
2025 J jnl
CoRR
Dante Francisco Wasmuht, Otto Brookes, Maximillian Schall, Pablo Palencia, Chris Beirne, Tilo Burghardt, Majid Mirmehdi, Hjalmar S. Kühl, Mimi Arandjelovic, Sam Pottie, Peter Bermant, Brandon Asheim, Yi Jin Toh, Adam Elzinga, Jason Holmberg, Andrew Whitworth, Eleanor Flatt, Laura Gustafson, Chaitanya Ryali, Yuan-Ting Hu, Baishan Guo, Andrew Westbury, Kate Saenko, Didac Suris
2025 J jnl
CoRR
Alex Hoi Hang Chan, Otto Brookes, Urs Waldmann, Hemal Naik, Iain D. Couzin, Majid Mirmehdi, Noël Adiko Houa, Emmanuelle Normand, Christophe Boesch, Lukas Boesch, Mimi Arandjelovic, Hjalmar S. Kühl, Tilo Burghardt, Fumihiro Kano
2025 B conf
FG
Shuchao Duan, Amirhossein Dadashzadeh, Alan L. Whone, Majid Mirmehdi
2025 J jnl
CoRR
Shuchao Duan, Amirhossein Dadashzadeh, Alan L. Whone, Majid Mirmehdi
2025 J jnl
CoRR
Jingjing Liu, Zhiyong Wang, Xinyu Fan, Amirhossein Dadashzadeh, Honghai Liu, Majid Mirmehdi
2025 J jnl
CoRR
Wenshuo Li, Majid Mirmehdi, Tilo Burghardt
2025 J jnl
Frontiers Robotics AI
Ulrik Pagh Schultz Lundquist, Saadia Afridi, Clément Berthelot, Nguyen Ngoc Dat, Kasper Hlebowicz, Elena Iannino, Lucie Laporte-Devylder, Guy Maalouf, Giacomo May, Kilian Meier, Constanza A. Molina Catricheo, Edouard G. A. Rolland, Camille Rondeau Saint-Jean, Vandita Shukla, Tilo Burghardt, Anders Lyhne Christensen, Blair R. Costelloe, Matthijs Damen, Andrea Flack, Kjeld Jensen, Henrik Skov Midtiby, Majid Mirmehdi, Fabio Remondino, Thomas Richardson, Benjamin Risse, Devis Tuia, Magnus Wahlberg, Dylan Cawthorne, Steve Bullock, William Njoroge, Samuel Mutisya, Matthew Watson, Elzbieta Pastucha
2025 J jnl
CoRR
Nguyen Ngoc Dat, Tom Richardson, Matthew Watson, Kilian Meier, Jenna Kline, Sid Reid, Guy Maalouf, Duncan Hine, Majid Mirmehdi, Tilo Burghardt
2025 J jnl
Artif. Intell. Medicine
Qiushuo Cheng, Catherine Morgan, Arindam Sikdar, Alessandro Masullo, Alan L. Whone, Majid Mirmehdi
2024 J jnl
CoRR
Phillip Sloan, Philip Clatworthy, Edwin Simpson, Majid Mirmehdi
2024 J jnl
CoRR
Zeynel A. Samak, Philip Clatworthy, Majid Mirmehdi
2024 J jnl
CoRR
Otto Brookes, Majid Mirmehdi, Hjalmar S. Kühl, Tilo Burghardt
2024 A conf
WACV
Amirhossein Dadashzadeh, Shuchao Duan, Alan L. Whone, Majid Mirmehdi
2024 J jnl
CoRR
Otto Brookes, Majid Mirmehdi, Colleen Stephens, Samuel Angedakin, Katherine Corogenes, Dervla Dowd, Paula Dieguez, Thurston C. Hicks, Sorrel Jones, Kevin Lee, Vera Leinert, Juan Lapuente, Maureen S. McCarthy, Amelia Meier, Mizuki Murai, Emmanuelle Normand, Virginie Vergnes, Erin G. Wessling, Roman M. Wittig, Kevin Langergraber, Nuria Maldonado, Xinyu Yang, Klaus Zuberbühler, Christophe Boesch, Mimi Arandjelovic, Hjalmar S. Kühl, Tilo Burghardt
2024 J jnl
Int. J. Comput. Vis.
Otto Brookes, Majid Mirmehdi, Colleen Stephens, Samuel Angedakin, Katherine Corogenes, Dervla Dowd, Paula Dieguez, Thurston C. Hicks, Sorrel Jones, Kevin Lee, Vera Leinert, Juan Lapuente, Maureen S. McCarthy, Amelia Meier, Mizuki Murai, Emmanuelle Normand, Virginie Vergnes, Erin G. Wessling, Roman M. Wittig, Kevin Langergraber, Nuria Maldonado, Xinyu Yang, Klaus Zuberbühler, Christophe Boesch, Mimi Arandjelovic, Hjalmar S. Kühl, Tilo Burghardt
2024 ed.
CamTraps
David C. Schedl, Chistoph Praschl, Majid Mirmehdi
2024 J jnl
CoRR
Qiushuo Cheng, Catherine Morgan, Arindam Sikdar, Alessandro Masullo, Alan L. Whone, Majid Mirmehdi
2023 conf
BMVC Workshop
Hanyuan Wang, Majid Mirmehdi, Dima Damen, Toby Perrett
2023 J jnl
CoRR
Hanyuan Wang, Majid Mirmehdi, Dima Damen, Toby Perrett
2023 J jnl
Int. J. Comput. Vis.
Xinyu Yang, Tilo Burghardt, Majid Mirmehdi
2023 J jnl
CoRR
Amirhossein Dadashzadeh, Shuchao Duan, Alan L. Whone, Majid Mirmehdi
2023 J jnl
CoRR
Shuchao Duan, Amirhossein Dadashzadeh, Alan L. Whone, Majid Mirmehdi
2023 conf
ISBI
Zeynel A. Samak, Philip Clatworthy, Majid Mirmehdi
2023 J jnl
CoRR
Zeynel A. Samak, Philip Clatworthy, Majid Mirmehdi
2023 conf
VISIGRAPP (5: VISAPP)
Otto Brookes, Majid Mirmehdi, Hjalmar S. Kühl, Tilo Burghardt
2023 J jnl
CoRR
Otto Brookes, Majid Mirmehdi, Hjalmar S. Kühl, Tilo Burghardt
2023 A* conf
CVPR
Toby Perrett, Saptarshi Sinha, Tilo Burghardt, Majid Mirmehdi, Dima Damen
2023 J jnl
CoRR
Toby Perrett, Saptarshi Sinha, Tilo Burghardt, Majid Mirmehdi, Dima Damen
2023 B conf
ICIP
Chengxi Zeng, Xinyu Yang, David Smithard, Majid Mirmehdi, Alberto M. Gambaruto, Tilo Burghardt
2023 J jnl
CoRR
Chengxi Zeng, Xinyu Yang, David Smithard, Majid Mirmehdi, Alberto M. Gambaruto, Tilo Burghardt
2022 conf
CVPR Workshops
Amirhossein Dadashzadeh, Alan L. Whone, Majid Mirmehdi
2022 J jnl
CoRR
Kaiyang Zhou, Adeline Paiement, Majid Mirmehdi
2022 J jnl
CoRR
Xinyu Yang, Tilo Burghardt, Majid Mirmehdi
2022 J jnl
Comput. Medical Imaging Graph.
Zeynel A. Samak, Philip Clatworthy, Majid Mirmehdi
2022 J jnl
CoRR
Alessandro Masullo, Toby Perrett, Tilo Burghardt, Ian Craddock, Dima Damen, Majid Mirmehdi
2022 B conf
AVSS
Hanyuan Wang, Majid Mirmehdi, Dima Damen, Toby Perrett
2022 J jnl
CoRR
Hanyuan Wang, Majid Mirmehdi, Dima Damen, Toby Perrett
2022 conf
WACV (Workshops)
Mowen Xue, Theo Greenslade, Majid Mirmehdi, Tilo Burghardt
2022 conf
VISIGRAPP (5: VISAPP)
Hanyuan Wang, Dima Damen, Majid Mirmehdi, Toby Perrett
2022 J jnl
CoRR
Hanyuan Wang, Dima Damen, Majid Mirmehdi, Toby Perrett
2022 J jnl
CoRR
Chengxi Zeng, Xinyu Yang, Majid Mirmehdi, Alberto M. Gambaruto, Tilo Burghardt
2022 C conf
ICMV
Chengxi Zeng, Xinyu Yang, Majid Mirmehdi, Alberto M. Gambaruto, Tilo Burghardt
2021 J jnl
CoRR
Amirhossein Dadashzadeh, Alan L. Whone, Majid Mirmehdi
2021 A conf
BMVC
Xinyu Yang, Majid Mirmehdi, Tilo Burghardt
2021 C conf
ICPRAM
Amirhossein Dadashzadeh, Alan L. Whone, Michal Rolinski, Majid Mirmehdi
2021 J jnl
Sensors
Farnoosh Heidarivincheh, Ryan McConville, Catherine Morgan, Roisin McNaney, Alessandro Masullo, Majid Mirmehdi, Alan L. Whone, Ian Craddock
2021 conf
VISIGRAPP (5: VISAPP)
Alessandro Masullo, Toby Perrett, Dima Damen, Tilo Burghardt, Majid Mirmehdi
2021 J jnl
CoRR
Mowen Xue, Theo Greenslade, Majid Mirmehdi, Tilo Burghardt
2021 A* conf
CVPR
Toby Perrett, Alessandro Masullo, Tilo Burghardt, Majid Mirmehdi, Dima Damen
2021 J jnl
CoRR
Toby Perrett, Alessandro Masullo, Tilo Burghardt, Majid Mirmehdi, Dima Damen
2021 A conf
BMVC
Faegheh Sardari, Björn Ommer, Majid Mirmehdi
2021 J jnl
CoRR
Faegheh Sardari, Björn Ommer, Majid Mirmehdi
2020 J jnl
CoRR
Xinyu Yang, Majid Mirmehdi, Tilo Burghardt
2020 J jnl
CoRR
Amirhossein Dadashzadeh, Alan L. Whone, Michal Rolinski, Majid Mirmehdi
2020 conf
ACCV (4)
Toby Perrett, Alessandro Masullo, Tilo Burghardt, Majid Mirmehdi, Dima Damen
2020 J jnl
CoRR
Toby Perrett, Alessandro Masullo, Tilo Burghardt, Majid Mirmehdi, Dima Damen
2020 J jnl
Sensors
Alessandro Masullo, Tilo Burghardt, Dima Damen, Toby Perrett, Majid Mirmehdi
2020 conf
MIUA
Zeynel A. Samak, Philip Clatworthy, Majid Mirmehdi
2020 J jnl
CoRR
Zeynel A. Samak, Philip Clatworthy, Majid Mirmehdi
2020 J jnl
Sensors
Faegheh Sardari, Adeline Paiement, Sion L. Hannuna, Majid Mirmehdi
2020 J jnl
CoRR
Faegheh Sardari, Adeline Paiement, Sion L. Hannuna, Majid Mirmehdi
2019 J jnl
Sensors
Kristina Y. Yordanova, Stefan Lüdtke, Samuel Whitehouse, Frank Krüger, Adeline Paiement, Majid Mirmehdi, Ian Craddock, Thomas Kirste
2019 J jnl
J. Real Time Image Process.
Sion L. Hannuna, Massimo Camplani, Jake Hall, Majid Mirmehdi, Dima Damen, Tilo Burghardt, Adeline Paiement, Lili Tao
2019 conf
ICIAP (1)
Víctor Ponce-López, Tilo Burghardt, Yue Sun, Sion L. Hannuna, Dima Damen, Majid Mirmehdi
2019 conf
ICCV Workshops
Xinyu Yang, Majid Mirmehdi, Tilo Burghardt
2019 J jnl
CoRR
Xinyu Yang, Majid Mirmehdi, Tilo Burghardt
2019 J jnl
IET Comput. Vis.
Amirhossein Dadashzadeh, Alireza Tavakoli Targhi, Maryam Tahmasbi, Majid Mirmehdi
2019 conf
ICIAR (2)
Alessandro Masullo, Tilo Burghardt, Toby Perrett, Dima Damen, Majid Mirmehdi
2019 J jnl
CoRR
Alessandro Masullo, Tilo Burghardt, Toby Perrett, Dima Damen, Majid Mirmehdi
2019 conf
ICIAP (2)
Faegheh Sardari, Adeline Paiement, Majid Mirmehdi
2019 conf
ICCV Workshops
Farnoosh Heidarivincheh, Majid Mirmehdi, Dima Damen
2019 J jnl
CoRR
Farnoosh Heidarivincheh, Majid Mirmehdi, Dima Damen
2019 conf
ICCV Workshops
Alessandro Masullo, Tilo Burghardt, Dima Damen, Toby Perrett, Majid Mirmehdi
2018 J jnl
CoRR
Atis Elsts, Tilo Burghardt, Dallan Byrne, Dima Damen, Xenofon Fafoutis, Sion L. Hannuna, Víctor Ponce-López, Alessandro Masullo, Majid Mirmehdi, George Oikonomou, Robert J. Piechocki, Emma Tonkin, Antonis Vafeas, Przemyslaw Woznowski, Ian Craddock
2018 A conf
BMVC
Farnoosh Heidarivincheh, Majid Mirmehdi, Dima Damen
2018 J jnl
CoRR
Farnoosh Heidarivincheh, Majid Mirmehdi, Dima Damen
2018 A conf
BMVC
Alessandro Masullo, Tilo Burghardt, Dima Damen, Sion L. Hannuna, Víctor Ponce-López, Majid Mirmehdi
2018 J jnl
CoRR
Alessandro Masullo, Tilo Burghardt, Dima Damen, Sion L. Hannuna, Víctor Ponce-López, Majid Mirmehdi
2018 conf
WACV Workshops
Baodong Wang, Lili Tao, Tilo Burghardt, Majid Mirmehdi
2018 J jnl
IEEE Trans. Biomed. Eng.
Vahid Soleimani, Majid Mirmehdi, Dima Damen, Massimo Camplani, Sion L. Hannuna, Charles Sharp, James Dodd
2018 J jnl
IET Comput. Vis.
Lili Tao, Tilo Burghardt, Majid Mirmehdi, Dima Damen, Ashley Cooper, Massimo Camplani, Sion L. Hannuna, Adeline Paiement, Ian Craddock
2018 conf
PerCom Workshops
Samuel Whitehouse, Kristina Y. Yordanova, Stefan Lüdtke, Adeline Paiement, Majid Mirmehdi
2018 B conf
ICIP
Vahid Soleimani, Majid Mirmehdi, Dima Damen, James Dodd
2018 conf
ECCV Workshops (2)
Víctor Ponce-López, Tilo Burghardt, Sion L. Hannuna, Dima Damen, Alessandro Masullo, Majid Mirmehdi
2018 J jnl
CoRR
Víctor Ponce-López, Tilo Burghardt, Sion L. Hannuna, Dima Damen, Alessandro Masullo, Majid Mirmehdi
2017 conf
CVPR Workshops
Ryan Layne, Sion L. Hannuna, Massimo Camplani, Jake Hall, Timothy M. Hospedales, Tao Xiang, Majid Mirmehdi, Dima Damen
2017 Misc conf
MVA
Kaiyang Zhou, Adeline Paiement, Majid Mirmehdi
2017 J jnl
CoRR
Farnoosh Heidarivincheh, Majid Mirmehdi, Dima Damen
2017 B conf
Intelligent Vehicles Symposium
Toby Perrett, Majid Mirmehdi, Eduardo Dias
2017 J jnl
IET Comput. Vis.
Massimo Camplani, Adeline Paiement, Majid Mirmehdi, Dima Damen, Sion L. Hannuna, Tilo Burghardt, Lili Tao
2017 J jnl
IEEE Trans. Biomed. Eng.
Vahid Soleimani, Majid Mirmehdi, Dima Damen, James Dodd, Sion L. Hannuna, Charles Sharp, Massimo Camplani, Kevin C. Viner
2017 J jnl
IEEE Trans. Intell. Transp. Syst.
Toby Perrett, Majid Mirmehdi, Eduardo Dias
2017 conf
PerCom Workshops
Kristina Y. Yordanova, Samuel Whitehouse, Adeline Paiement, Majid Mirmehdi, Thomas Kirste, Ian Craddock
2016 conf
3DV
Vahid Soleimani, Majid Mirmehdi, Dima Damen, Sion L. Hannuna, Massimo Camplani
2016 J jnl
Comput. Vis. Image Underst.
Lili Tao, Adeline Paiement, Dima Damen, Majid Mirmehdi, Sion L. Hannuna, Massimo Camplani, Tilo Burghardt, Ian Craddock
2016 A conf
BMVC
Farnoosh Heidarivincheh, Majid Mirmehdi, Dima Damen
2016 conf
ACCV Workshops (1)
Lili Tao, Tilo Burghardt, Majid Mirmehdi, Dima Damen, Ashley Cooper, Sion L. Hannuna, Massimo Camplani, Adeline Paiement, Ian Craddock
2016 J jnl
CoRR
Lili Tao, Tilo Burghardt, Majid Mirmehdi, Dima Damen, Ashley Cooper, Sion L. Hannuna, Massimo Camplani, Adeline Paiement, Ian Craddock
2016 conf
ACCV Workshops (1)
Toby Perrett, Majid Mirmehdi
2016 J jnl
CoRR
Massimo Camplani, Adeline Paiement, Majid Mirmehdi, Dima Damen, Sion L. Hannuna, Tilo Burghardt, Lili Tao
2016 J jnl
IEEE Trans. Image Process.
Adeline Paiement, Majid Mirmehdi, Xianghua Xie, Mark C. K. Hamilton
2016 conf
ISBI
Oliver Moolan-Feroze, Majid Mirmehdi, Mark C. K. Hamilton
2015 C conf
HealthCom
Lili Tao, Tilo Burghardt, Sion L. Hannuna, Massimo Camplani, Adeline Paiement, Dima Damen, Majid Mirmehdi, Ian Craddock
2015 conf
ICC Workshops
Przemyslaw Woznowski, Xenofon Fafoutis, Terence Song, Sion L. Hannuna, Massimo Camplani, Lili Tao, Adeline Paiement, Evangelos Mellios, Mo Haghighi, Ni Zhu, Geoffrey S. Hilton, Dima Damen, Tilo Burghardt, Majid Mirmehdi, Robert J. Piechocki, Dritan Kaleshi, Ian Craddock
2015 conf
ICPRAM (Selected Papers)
Jack Greenhalgh, Majid Mirmehdi
2015 J jnl
IEEE Intell. Syst.
Ni Zhu, Tom Diethe, Massimo Camplani, Lili Tao, Alison Burrows, Niall Twomey, Dritan Kaleshi, Majid Mirmehdi, Peter A. Flach, Ian Craddock
2015 J jnl
Int. J. Comput. Vis.
Tilo Burghardt, Dima Damen, Walterio W. Mayol-Cuevas, Majid Mirmehdi
2015 J jnl
CoRR
Toby Perrett, Majid Mirmehdi, Eduardo Dias
2015 conf
ICPRAM (1)
Jack Greenhalgh, Majid Mirmehdi
2015 A conf
BMVC
Massimo Camplani, Sion L. Hannuna, Majid Mirmehdi, Dima Damen, Adeline Paiement, Lili Tao, Tilo Burghardt
2015 J jnl
IEEE Trans. Intell. Transp. Syst.
Jack Greenhalgh, Majid Mirmehdi
2015 conf
BioCAS
Vahid Soleimani, Majid Mirmehdi, Dima Damen, Sion L. Hannuna, Massimo Camplani, Jason Viner, James Dodd
2015 conf
ICCV Workshops
Ben Crabbe, Adeline Paiement, Sion L. Hannuna, Majid Mirmehdi
2014 J jnl
Robotics Auton. Syst.
Alan Broun, Chris Beck, Tony Pipe, Majid Mirmehdi, Chris Melhuish
2014 J jnl
IEEE Trans. Image Process.
Adeline Paiement, Majid Mirmehdi, Xianghua Xie, Mark C. K. Hamilton
2014 A conf
BMVC
Adeline Paiement, Lili Tao, Massimo Camplani, Sion L. Hannuna, Dima Damen, Majid Mirmehdi
2014 J jnl
Pattern Recognit.
David Hanwell, Majid Mirmehdi
2014 J jnl
IET Comput. Vis.
Carlos Merino-Gracia, Majid Mirmehdi
2014 conf
MICCAI (1)
Oliver Moolan-Feroze, Majid Mirmehdi, Mark C. K. Hamilton, Chiara Bucciarelli-Ducci
2014 C conf
ICPRAM
Christopher Beck, Alan Broun, Majid Mirmehdi, Tony Pipe, Chris Melhuish
2014 J jnl
IET Comput. Vis.
David Hanwell, Majid Mirmehdi
2013 A ed.
BMVC
Tilo Burghardt, Dima Damen, Walterio W. Mayol-Cuevas, Majid Mirmehdi
2013 J jnl
Image Vis. Comput.
Carlos Merino-Gracia, Majid Mirmehdi, José F. Sigut, José L. González-Mora
2013 J jnl
IET Comput. Vis.
Ronghua Yang, Majid Mirmehdi, Xianghua Xie, David Hall
2013 conf
TAROS
Alan Broun, Chris Beck, Tony Pipe, Majid Mirmehdi, Chris Melhuish
2012 conf
MICCAI (3)
Lorenz Berger, Majid Mirmehdi, Sam Reed, Jeremy Tavare
2012 J jnl
IEEE Trans. Image Process.
Xiaosong Wang, Majid Mirmehdi
2012 J jnl
IEEE Trans. Image Process.
John Chiverton, Xianghua Xie, Majid Mirmehdi
2012 conf
TAROS
Alan Broun, Chris Beck, Tony Pipe, Majid Mirmehdi, Chris Melhuish
2012 conf
ICPRAM (2)
David Hanwell, Majid Mirmehdi
2012 conf
ICPRAM (2)
Zhiqiang Hou, Sion L. Hannuna, Xianghua Xie, Majid Mirmehdi
2012 J jnl
IEEE Trans. Intell. Transp. Syst.
Jack Greenhalgh, Majid Mirmehdi
2012 conf
EUSIPCO
Jack Greenhalgh, Majid Mirmehdi
2011 conf
CBDAR
Carlos Merino-Gracia, Karel Lenc, Majid Mirmehdi
2011 J jnl
Image Vis. Comput.
Xianghua Xie, Majid Mirmehdi
2010 conf
ECCV (5)
Xiaosong Wang, Majid Mirmehdi
2010 conf
ECCV (4)
V. Javier Traver, Majid Mirmehdi, Xianghua Xie, Raúl Montoliu
2010 B conf
ICPR
Xianghua Xie, Majid Mirmehdi
2009 conf
WIAMIS
Xiaosong Wang, Majid Mirmehdi
2009 conf
VISAPP (2)
Sion L. Hannuna, Xianghua Xie, Majid Mirmehdi, Neill W. Campbell
2009 A conf
BMVC
Xiaosong Wang, Majid Mirmehdi
2009 Misc conf
IbPRIA
Filiberto Pla, Gema Gracia, Pedro García-Sevilla, Majid Mirmehdi, Xianghua Xie
2009 A conf
BMVC
John Chiverton, Majid Mirmehdi, Xianghua Xie
2008 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Xianghua Xie, Majid Mirmehdi
2008 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Xianghua Xie, Majid Mirmehdi
2008 A conf
BMVC
John Chiverton, Xianghua Xie, Majid Mirmehdi
2008 B conf
ICPR
John Chiverton, Majid Mirmehdi, Xianghua Xie
2007 A conf
BMVC
Xianghua Xie, Majid Mirmehdi
2007 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Xianghua Xie, Majid Mirmehdi
2006 B conf
ACIVS
Ronghua Yang, Majid Mirmehdi, Xianghua Xie
2006 conf
ICPR (2)
Ronghua Yang, Majid Mirmehdi
2006 J jnl
Mach. Vis. Appl.
Xianghua Xie, Majid Mirmehdi, Barry T. Thomas
2006 A conf
BMVC
Xianghua Xie, Majid Mirmehdi
2005 J jnl
IEEE Trans. Medical Imaging
James Revell, Majid Mirmehdi, Donal McNally
2005 conf
ICIP (3)
Xianghua Xie, Majid Mirmehdi
2005 A conf
BMVC
Changming Kong, Andrew Calway, Majid Mirmehdi
2005 J jnl
Int. J. Document Anal. Recognit.
Majid Mirmehdi
2005 conf
ICAPR (2)
Xianghua Xie, Majid Mirmehdi
2004 conf
ICIAR (1)
Marta Penas, María J. Carreira, Manuel G. Penedo, Majid Mirmehdi, Barry T. Thomas
2004 conf
CIVR
Janko Calic, Neill W. Campbell, Majid Mirmehdi, Barry T. Thomas, Ron Laborde, Sarah V. Porter, Cedric Nishan Canagarajah
2004 conf
ICIAR (2)
Xianghua Xie, Majid Mirmehdi, Barry T. Thomas
2004 J jnl
IEEE Trans. Image Process.
Xianghua Xie, Majid Mirmehdi
2004 A conf
BMVC
Sayyed Amirhassan Monadjemi, Majid Mirmehdi, Barry T. Thomas
2003 J jnl
Pattern Anal. Appl.
Majid Mirmehdi, Paul Clark, J. Lam
2003 Misc conf
ICIAP
Sarah V. Porter, Majid Mirmehdi, Barry T. Thomas
2003 A conf
BMVC
Xianghua Xie, Majid Mirmehdi
2003 conf
ICIP (2)
Xianghua Xie, Majid Mirmehdi
2003 J jnl
Pattern Recognit.
Paul Clark, Majid Mirmehdi
2003 A conf
BMVC
James Revell, Majid Mirmehdi, Donal McNally
2003 J jnl
Image Vis. Comput.
Sarah V. Porter, Majid Mirmehdi, Barry T. Thomas
2003 A conf
ICDAR
Eve Bertucci, Maurizio Pilu, Majid Mirmehdi
2003 A conf
BMVC
Sarah V. Porter, Majid Mirmehdi, Barry T. Thomas
2002 J jnl
Image Vis. Comput.
Majid Mirmehdi
2002 conf
ECCV (4)
Alireza Osareh, Majid Mirmehdi, Barry T. Thomas, Richard Markham
2002 conf
MICCAI (2)
Alireza Osareh, Majid Mirmehdi, Barry T. Thomas, Richard Markham
2002 conf
ICPR (1)
Alireza Osareh, Majid Mirmehdi, Barry T. Thomas, Richard Markham
2002 J jnl
J. Vis. Commun. Image Represent.
Majid Mirmehdi, Radhakrishnan Periasamy
2002 J jnl
Image Vis. Comput.
María J. Carreira, Majid Mirmehdi, Barry T. Thomas, Marta Penas
2002 J jnl
Int. J. Document Anal. Recognit.
Paul Clark, Majid Mirmehdi
2002 A conf
BMVC
Sayyed Amirhassan Monadjemi, Barry T. Thomas, Majid Mirmehdi
2001 A conf
BMVC
Majid Mirmehdi, Radhakrishnan Periasamy
2001 A conf
BMVC
Sarah V. Porter, Majid Mirmehdi, Barry T. Thomas
2001 A conf
BMVC
Paul Clark, Majid Mirmehdi
2000 J jnl
J. Intell. Robotic Syst.
James G. Shanahan, Barry T. Thomas, Majid Mirmehdi, Trevor P. Martin, Neill W. Campbell, James F. Baldwin
2000 B conf
ICPR
Paul Clark, Majid Mirmehdi
2000 A conf
BMVC
Paul Clark, Majid Mirmehdi
2000 B conf
ICPR
María J. Carreira, Majid Mirmehdi, Barry T. Thomas, John F. Haddon
2000 conf
Document Recognition and Retrieval
Paul Clark, Majid Mirmehdi
2000 A ed.
BMVC
Majid Mirmehdi, Barry T. Thomas
2000 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Majid Mirmehdi, Maria Petrou
2000 B conf
ICPR
Sarah V. Porter, Majid Mirmehdi, Barry T. Thomas
1999 C conf
IV
D. Ball, Majid Mirmehdi
1999 J jnl
IEEE Trans. Image Process.
Majid Mirmehdi, Phil L. Palmer, Josef Kittler, Homam Dabis
1999 A conf
BMVC
James G. Shanahan, Barry T. Thomas, Majid Mirmehdi, Trevor P. Martin, James F. Baldwin
1998 A conf
BMVC
D. Davies, Phil L. Palmer, Majid Mirmehdi
1998 conf
ACCV (2)
Majid Mirmehdi, Phil L. Palmer, Josef Kittler
1998 conf
ECCV (1)
Maria Petrou, Majid Mirmehdi, M. Coors
1998 conf
EUSIPCO
D. Davies, Phil L. Palmer, Majid Mirmehdi
1997 J jnl
Pattern Recognit. Lett.
Majid Mirmehdi, Phil L. Palmer, Josef Kittler
1997 A conf
BMVC
Maria Petrou, Majid Mirmehdi, M. Coors
1996 A conf
BMVC
Majid Mirmehdi, Phil L. Palmer, Josef Kittler, Homam Dabis
1996 conf
EUSIPCO
Majid Mirmehdi, Radek Marík, Maria Petrou, Josef Kittler
1995 J jnl
Eur. Trans. Telecommun.
Stefano Fioravanti, Roberto Fioravanti, Francesco G. B. De Natale, Radek Marik, Majid Mirmehdi, Josef Kittler, Maria Petrou
1994 Misc conf
MVA
Josef Kittler, Radek Marik, Majid Mirmehdi, Maria Petrou, J. Song
1993 J jnl
Image Vis. Comput.
Majid Mirmehdi, T. J. Ellis
1991 J jnl
Microprocess. Microsystems
Majid Mirmehdi, Geoff A. W. West, G. R. Dowling
1991 J jnl
Concurr. Pract. Exp.
Majid Mirmehdi
1991
Majid Mirmehdi
redb/extractors/ioc_extractor/ioc_extractor.py
← Index redb/extractors/ioc_extractor/ioc_extractor.py python
"""
IOC Extractor - Extractor class for extracting IOCs from decompilation results.

This extractor works with in-memory data from DecompileBinja, following the
standard Extractor pattern to support both ClickHouse and PrintExporter (dry-run).

Usage:
    # After DecompileBinja completes:
    ioc_extractor = IOCExtractorFromResults(
        analysis_results=decompiler.analysis_results,
        sha256=sha256,
        log=logger,
        exporters=exporters,
        index_prefix=index_prefix
    )
    ioc_extractor.export_data()
"""

import inspect
from datetime import datetime, timezone
from pathlib import Path
from typing import Any, List, Dict, Optional

from redb.extractors.enum import Tag
from redb.extractors.database_exporters import DatabaseExporter

# Import the IOCScraper and related classes from standalone module
from redb.extractors.ioc_extractor.standalone_ioc_extractor import (
    IOCScraper,
    IOCType,
    SourceType,
    ExtractedIOC,
)
from typing import Set


class IOCExtractorFromResults:
    """
    Extracts IOCs from in-memory decompilation results.

    This follows a simplified Extractor pattern but doesn't inherit from Extractor
    since it doesn't read from a binary file - instead it takes already-processed
    analysis results from DecompileBinja.
    """

    def __init__(
        self,
        analysis_results: Dict[str, Any],
        sha256: str,
        log: Any,
        exporters: Optional[List[DatabaseExporter]] = None,
        index_prefix: Optional[str] = None,
        tld_file: Optional[Path] = None,
        suppress_types: Optional[Set[IOCType]] = None,
        js_context: bool = False,
    ):
        """
        Initialize IOC Extractor with analysis results.

        Args:
            analysis_results: Dict containing 'strings' and 'decompiled' lists from DecompileBinja
            sha256: Sample SHA256 hash
            log: Logger instance
            exporters: List of database exporters (ClickHouse, Print, etc.)
            index_prefix: Index prefix for database
            tld_file: Optional path to TLD list file
            js_context: When True, the underlying IOCScraper rejects FQDN
                candidates that match JS object-access syntax (see
                JS_FP_TLDS / JS_FP_SLDS). Set this for the JS pipeline only;
                APK suppresses FQDN entirely via suppress_types and binary
                callers leave it disabled.
        """
        self.log = log
        self.log.debug(f"Creating {self.__class__.__name__}")
        self.analysis_results = analysis_results
        self.sha256 = sha256
        self.exporters = exporters or []
        self.index_prefix = index_prefix
        self.scraper = IOCScraper(
            tld_file, suppress_types=suppress_types, js_context=js_context,
        )
        self.extracted_iocs: List[ExtractedIOC] = []

    def extract(self) -> List[ExtractedIOC]:
        """
        Extract IOCs from strings and decompiled functions in analysis_results.

        Returns:
            List of ExtractedIOC objects
        """
        self.log.debug(inspect.currentframe().f_code.co_name)
        self.extracted_iocs = []

        # Extract from strings
        strings_count = self._extract_from_strings()

        # Extract from decompiled functions
        functions_count = self._extract_from_decompiled()

        # Extract from text-based artefact surfaces (JS, PowerShell, etc.)
        text_count = self._extract_from_text()

        self.log.info(
            f"Extracted {len(self.extracted_iocs)} IOCs for {self.sha256[:16]}... "
            f"(strings: {strings_count}, functions: {functions_count}, "
            f"text: {text_count})"
        )

        return self.extracted_iocs

    def _extract_from_strings(self) -> int:
        """Extract IOCs from sample's strings."""
        count = 0
        strings = self.analysis_results.get("strings", [])

        for s in strings:
            string_value = s.get("string", "")
            string_offset = s.get("string_offset", 0)

            if isinstance(string_value, bytes):
                string_value = string_value.decode('utf-8', errors='replace')

            for ioc in self.scraper.scrape(string_value, SourceType.STRING, str(string_offset)):
                self.extracted_iocs.append(ioc)
                count += 1

        return count

    def _extract_from_decompiled(self) -> int:
        """Extract IOCs from sample's decompiled functions.

        Supports both Binja format (key: "decompiled", fields: "decompiled_function",
        "decompiled_function_hash", "function_type") and APK format (key:
        "decompiled_content", fields: "decompiled_method", "decompiled_method_hash",
        "method_type").
        """
        count = 0

        # Binja format
        decompiled = self.analysis_results.get("decompiled", [])
        for func in decompiled:
            func_type = func.get("function_type", "UNKNOWN")
            if func_type in ("LIBRARY", "THUNK"):
                continue

            func_content = func.get("decompiled_function", "")
            func_hash = func.get("decompiled_function_hash", "unknown")

            if isinstance(func_content, bytes):
                func_content = func_content.decode('utf-8', errors='replace')

            for ioc in self.scraper.scrape(func_content, SourceType.DECOMPILED_FUNCTION, func_hash):
                self.extracted_iocs.append(ioc)
                count += 1

        # APK format (decompiled_content with method-level fields)
        decompiled_content = self.analysis_results.get("decompiled_content", [])
        for func in decompiled_content:
            func_type = func.get("method_type", "UNKNOWN")
            if func_type in ("LIBRARY", "THUNK"):
                continue

            func_content = func.get("decompiled_method", "")
            func_hash = func.get("decompiled_method_hash", "unknown")

            if isinstance(func_content, bytes):
                func_content = func_content.decode('utf-8', errors='replace')

            for ioc in self.scraper.scrape(func_content, SourceType.DECOMPILED_FUNCTION, func_hash):
                self.extracted_iocs.append(ioc)
                count += 1

        return count

    def _extract_from_text(self) -> int:
        """Extract IOCs from text-based artefact surfaces.

        Walks `analysis_results["text_raw"]` and `analysis_results["text_normalized"]`,
        each a list of `{"content": str, "content_hash": str}` dicts. Each
        list is routed through its own SourceType (`TEXT_RAW` /
        `TEXT_NORMALIZED`) so analysts can distinguish IOCs that were already
        present in the raw source from those exposed only after normalisation
        (deobfuscation/beautification). Generic across text-based formats —
        used by JS today, intended for PowerShell, Python, email body,
        extracted PDF/Office text in the future.
        """
        count = 0

        for key, source_type in (
            ("text_raw", SourceType.TEXT_RAW),
            ("text_normalized", SourceType.TEXT_NORMALIZED),
        ):
            for entry in self.analysis_results.get(key, []):
                content = entry.get("content", "")
                content_hash = entry.get("content_hash", "unknown")

                if isinstance(content, bytes):
                    content = content.decode('utf-8', errors='replace')

                for ioc in self.scraper.scrape(content, source_type, content_hash):
                    self.extracted_iocs.append(ioc)
                    count += 1

        return count

    def prepare_export_data(self, exporter_type: str) -> Any:
        """
        Prepare data for specific export type.

        Returns tuple for ClickHouse or list of dicts for Print/Elasticsearch.
        """
        self.log.debug(inspect.currentframe().f_code.co_name)

        if not self.extracted_iocs:
            return None

        now = datetime.now(timezone.utc)

        if exporter_type == "ClickHouseExporter":
            data = [
                [
                    self.sha256,
                    ioc.ioc_type.value,
                    ioc.ioc_value,
                    ioc.source_type.value,
                    ioc.source_identifier,
                    now,
                ]
                for ioc in self.extracted_iocs
            ]

            column_names = [
                "sha256",
                "ioc_type",
                "ioc_value",
                "source_type",
                "source_identifier",
                "extracted_at",
            ]

            column_type_names = [
                "FixedString(64)",
                "Enum8('ipv4'=1, 'ipv6'=2, 'fqdn'=3, 'url'=4, 'email'=5, 'server'=6, "
                "'hash_md5'=10, 'hash_sha1'=11, 'hash_sha256'=12, 'cve'=20, 'cwe'=21, 'cpe'=22, "
                "'crypto_btc'=30, 'crypto_eth'=31, 'crypto_xrp'=32, 'crypto_bch'=33, "
                "'crypto_ada'=34, 'crypto_substrate'=35, 'path_linux'=40, 'path_windows'=41, "
                "'registry_key'=42, 'onion'=50)",
                "String",
                "Enum8('decompiled_function'=1, 'disassembled_function'=2, 'string'=3, "
                "'text_raw'=4, 'text_normalized'=5)",
                "String",
                "DateTime64(3, 'UTC')",
            ]

            return (data, column_names, column_type_names)

        else:
            # For PrintExporter and others - return list of dicts
            return [
                {
                    "sha256": self.sha256,
                    "ioc_type": ioc.ioc_type.value,
                    "ioc_value": ioc.ioc_value,
                    "source_type": ioc.source_type.value,
                    "source_identifier": ioc.source_identifier,
                    "extracted_at": now.isoformat(),
                }
                for ioc in self.extracted_iocs
            ]

    def get_clickhouse_table(self) -> str:
        """Return the ClickHouse table name for IOCs."""
        return "redb_iocs"

    def tag(self) -> str:
        """Return the tag for this extractor."""
        return Tag.IOC.value if hasattr(Tag, 'IOC') else "ioc"

    def export_data(self) -> bool:
        """
        Export extracted IOCs to all configured exporters.

        Returns:
            True if export succeeded, False if failed, None if no data
        """
        self.log.debug(inspect.currentframe().f_code.co_name)

        # First extract the IOCs
        extracted = self.extract()

        if not extracted:
            self.log.debug("No IOCs extracted, skipping export")
            return None

        success = True

        from redb.extractors.database_exporters import PrintExporter, ClickHouseExporter

        for exporter in self.exporters:
            try:
                if isinstance(exporter, PrintExporter):
                    # For PrintExporter, pass the list of dicts
                    export_data = self.prepare_export_data("PrintExporter")
                    success &= exporter.export(export_data)

                elif isinstance(exporter, ClickHouseExporter):
                    # For ClickHouse, pass tuple with table info
                    export_data = self.prepare_export_data("ClickHouseExporter")
                    if export_data:
                        success &= exporter.export(
                            export_data,
                            table=self.get_clickhouse_table(),
                            column_names=export_data[1],
                            column_type_names=export_data[2]
                        )

            except Exception as e:
                self.log.error(f"Error exporting IOCs to {exporter.__class__.__name__}: {e}")
                success = False

        return success