Vinay P. Namboodiri

268 papers A* 32A 54B 11C 1Misc 6Journal 137Unranked 27
YearRankTypeTitle / Venue / Authors
2026 A* conf
AAAI
Utsav Singh, Vinay P. Namboodiri
2026 J jnl
CoRR
Samik Some, Vinay P. Namboodiri
2025 J jnl
CoRR
Shashank Sharma, Janina Hoffmann, Vinay P. Namboodiri
2025 A* conf
CVPR
Diljeet Jagpal, Xi Chen, Vinay P. Namboodiri
2025 J jnl
CoRR
Diljeet Jagpal, Xi Chen, Vinay P. Namboodiri
2025 conf
MIUA (3)
Arvapalli Sai Susmitha, Vinay P. Namboodiri
2025 A* conf
CVPR
Jack R. Saunders, Charlie Hewitt, Yanan Jian, Marek Kowalski, Tadas Baltrusaitis, Yiye Chen, Darren Cosker, Virginia Estellers, Nicholas Gyde, Vinay P. Namboodiri, Benjamin E. Lundell
2025 conf
AIED (5)
Snigdha Agarwal, Vinay P. Namboodiri, C. V. Jawahar
2025 J jnl
CoRR
Shashank Sharma, Janina Hoffmann, Vinay P. Namboodiri
2025 J jnl
CoRR
Aadya Arora, Vinay P. Namboodiri
2025 Misc conf
ICASSP
Aadya Arora, Vinay P. Namboodiri
2025 A conf
INTERSPEECH
Kirandevraj R, Vinod K. Kurmi, Vinay P. Namboodiri, C. V. Jawahar
2025 A* conf
ICLR
Utsav Singh, Vinay P. Namboodiri
2025 J jnl
CoRR
Alexey Kravets, Da Chen, Vinay P. Namboodiri
2025 A conf
WACV
Badri N. Patro, Vinay P. Namboodiri, Vijay Srinivas Agneeswaran
2025 A conf
WACV
Alexey Kravets, Vinay P. Namboodiri
2025 J jnl
Trans. Mach. Learn. Res.
Alexey Kravets, Vinay P. Namboodiri
2024 conf
MIDL
Arvapalli Sai Susmitha, Vinay P. Namboodiri
2024 A conf
BMVC
Alexey Kravets, Vinay P. Namboodiri
2024 J jnl
CoRR
Alexey Kravets, Vinay P. Namboodiri
2024 J jnl
CoRR
Jack R. Saunders, Vinay P. Namboodiri
2024 conf
Eurographics (Short Papers)
Jack R. Saunders, Vinay P. Namboodiri
2024 J jnl
CoRR
Jack R. Saunders, Charlie Hewitt, Yanan Jian, Marek Kowalski, Tadas Baltrusaitis, Yiye Chen, Darren Cosker, Virginia Estellers, Nicholas Gyde, Vinay P. Namboodiri, Benjamin E. Lundell
2024 J jnl
CoRR
Utsav Singh, Souradip Chakraborty, Wesley A. Suttle, Brian M. Sadler, Anit Kumar Sahu, Mubarak Shah, Vinay P. Namboodiri, Amrit Singh Bedi
2024 J jnl
CoRR
Utsav Singh, Pramit Bhattacharyya, Vinay P. Namboodiri
2024 A* conf
ICML
Utsav Singh, Wesley A. Suttle, Brian M. Sadler, Vinay P. Namboodiri, Amrit S. Bedi
2024 J jnl
CoRR
Utsav Singh, Wesley A. Suttle, Brian M. Sadler, Vinay P. Namboodiri, Amrit Singh Bedi
2024 A conf
BMVC
Avideep Mukherjee, Soumya Banerjee, Piyush Rai, Vinay P. Namboodiri
2024 J jnl
CoRR
Avideep Mukherjee, Soumya Banerjee, Vinay P. Namboodiri, Piyush Rai
2024 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Pratik Mazumder, Pravendra Singh, Piyush Rai, Vinay P. Namboodiri
2024 J jnl
CoRR
Cangxiong Chen, Vinay P. Namboodiri, Julia E. Sero
2024 J jnl
CoRR
Badri N. Patro, Vinay P. Namboodiri, Vijay Srinivas Agneeswaran
2024 A conf
BMVC
Jack R. Saunders, Vinay P. Namboodiri
2024 J jnl
CoRR
Jack R. Saunders, Vinay P. Namboodiri
2024 J jnl
CoRR
Sindhu B. Hegde, Rudrabha Mukhopadhyay, C. V. Jawahar, Vinay P. Namboodiri
2024 J jnl
CoRR
Samik Some, Vinay P. Namboodiri
2024 A* conf
AAAI
Sai Niranjan Ramachandran, Rudrabha Mukhopadhyay, Madhav Agarwal, C. V. Jawahar, Vinay P. Namboodiri
2024 A* conf
ICRA
Soumya Banerjee, Vinay Kumar Verma, Avideep Mukherjee, Deepak Gupta, Vinay P. Namboodiri, Piyush Rai
2024 J jnl
CoRR
Alexey Kravets, Vinay P. Namboodiri
2023 A conf
BMVC
Avideep Mukherjee, Badri N. Patro, Vinay P. Namboodiri
2023 A conf
WACV
Madhav Agarwal, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2023 J jnl
CoRR
Utsav Singh, Vinay P. Namboodiri
2023 J jnl
CoRR
Jack R. Saunders, Steven Caulkin, Vinay P. Namboodiri
2023 A conf
WACV
Aditya Agarwal, Bipasha Sen, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2023 J jnl
CoRR
Utsav Singh, Vinay P. Namboodiri
2023 A conf
BMVC
Jack R. Saunders, Vinay P. Namboodiri
2023 J jnl
CoRR
Jack R. Saunders, Vinay P. Namboodiri
2023 J jnl
CoRR
Badri N. Patro, Vinay P. Namboodiri, Vijay Srinivas Agneeswaran
2023 A* conf
ICRA
Soumya Banerjee, Vinay Kumar Verma, Vinay P. Namboodiri
2023 J jnl
CoRR
Soumya Banerjee, Vinay Kumar Verma, Vinay P. Namboodiri
2023 A* conf
ACM Multimedia
Sindhu B. Hegde, Rudrabha Mukhopadhyay, C. V. Jawahar, Vinay P. Namboodiri
2023 A conf
WACV
Anchit Gupta, Rudrabha Mukhopadhyay, Sindhu Balachandra, Faizan Farooq Khan, Vinay P. Namboodiri, C. V. Jawahar
2023 A conf
WACV
Aditya Agarwal, Bipasha Sen, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2023 J jnl
CoRR
Cangxiong Chen, Vinay P. Namboodiri, Julian A. Padget
2023 J jnl
CoRR
Soumya Banerjee, Vinay Kumar Verma, Avideep Mukherjee, Deepak Gupta, Vinay P. Namboodiri, Piyush Rai
2022 J jnl
CoRR
Madhav Agarwal, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2022 conf
WACV (Workshops)
Sumit Kumar, Badri N. Patro, Vinay P. Namboodiri
2022 A conf
BMVC
Madhav Agarwal, Anchit Gupta, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2022 J jnl
CoRR
Madhav Agarwal, Anchit Gupta, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2022 J jnl
Pattern Recognit.
Pravendra Singh, Pratik Mazumder, Vinay P. Namboodiri
2022 J jnl
Pattern Recognit.
Badri N. Patro, Anupriy, Vinay P. Namboodiri
2022 A* conf
ACM Multimedia
Sindhu B. Hegde, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2022 J jnl
CoRR
Sindhu B. Hegde, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2022 J jnl
CoRR
Aditya Agarwal, Bipasha Sen, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2022 A conf
WACV
Pratik Mazumder, Pravendra Singh, Vinay P. Namboodiri
2022 J jnl
Neurocomputing
Pratik Mazumder, Pravendra Singh, Vinay P. Namboodiri
2022 A* conf
KDD
Sumit Negi, Manisha Verma, Rajdeep H. Banerjee, Pooja A, Lydia B. Chilton, Mithun Das Gupta, Vinay P. Namboodiri, Dinesh Garg
2022 A conf
INTERSPEECH
Kirandevraj R, Vinod Kumar Kurmi, Vinay P. Namboodiri, C. V. Jawahar
2022 A* conf
AAAI
Vinod K. Kurmi, Rishabh Sharma, Yash Vardhan Sharma, Vinay P. Namboodiri
2022 J jnl
CoRR
Vinod K. Kurmi, Rishabh Sharma, Yash Vardhan Sharma, Vinay P. Namboodiri
2022 J jnl
CoRR
Bipasha Sen, Aditya Agarwal, Vinay P. Namboodiri, C. V. Jawahar
2022 J jnl
Trans. Mach. Learn. Res.
Bipasha Sen, Aditya Agarwal, Vinay P. Namboodiri, C. V. Jawahar
2022 B conf
ICPR
Munender Varshney, Ravindra Yadav, Vinay P. Namboodiri, Rajesh M. Hegde
2022 J jnl
CoRR
Munender Varshney, Ravindra Yadav, Vinay P. Namboodiri, Rajesh M. Hegde
2022 Misc conf
ICASSP
Ravindra Yadav, Ashish Sardana, Vinay P. Namboodiri, Rajesh M. Hegde
2022 A* conf
ACM Multimedia
Sindhu B. Hegde, K. R. Prajwal, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2022 J jnl
CoRR
Sindhu B. Hegde, K. R. Prajwal, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2022 J jnl
CoRR
Aditya Agarwal, Bipasha Sen, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2022 conf
WACV (Workshops)
Vivek Gupta, Badri N. Patro, Hemant Parihar, Vinay P. Namboodiri
2021 A conf
WACV
Pratik Mazumder, Pravendra Singh, Kranti Kumar Parida, Vinay P. Namboodiri
2021 J jnl
CoRR
Avideep Mukherjee, Badri Narayana Patro, Sahil Sidheekh, Maneesh Singh, Vinay P. Namboodiri
2021 A conf
BMVC
Rudrabha Mukhopadhyay, Sindhu B. Hegde, Vinay P. Namboodiri, C. V. Jawahar
2021 J jnl
Neurocomputing
Pravendra Singh, Pratik Mazumder, Mohammed Asad Karim, Vinay P. Namboodiri
2021 J jnl
CoRR
Soumya Banerjee, Vinay Kumar Verma, Toufiq Parag, Maneesh Singh, Vinay P. Namboodiri
2021 Misc conf
ICASSP
Vinod K. Kurmi, Vipul Bajaj, Badri N. Patro, K. S. Venkatesh, Vinay P. Namboodiri, Preethi Jyothi
2021 J jnl
CoRR
Vinod K. Kurmi, Vipul Bajaj, Badri N. Patro, K. S. Venkatesh, Vinay P. Namboodiri, Preethi Jyothi
2021 A conf
BMVC
Bharat Bhusan Sau, Soumya Roy, Vinay P. Namboodiri, Raghu Sesha Iyengar
2021 J jnl
CoRR
Vinod K. Kurmi, Badri N. Patro, Venkatesh K. Subramanian, Vinay P. Namboodiri
2021 A conf
WACV
Vinod K. Kurmi, Badri N. Patro, Venkatesh K. Subramanian, Vinay P. Namboodiri
2021 A conf
WACV
Vinod K. Kurmi, Venkatesh K. Subramanian, Vinay P. Namboodiri
2021 J jnl
CoRR
Vinod K. Kurmi, Venkatesh K. Subramanian, Vinay P. Namboodiri
2021 J jnl
CoRR
Vinod K. Kurmi, Venkatesh K. Subramanian, Vinay P. Namboodiri
2021 J jnl
Neurocomputing
Vinod Kumar Kurmi, Venkatesh K. Subramanian, Vinay P. Namboodiri
2021 J jnl
CoRR
Pratik Mazumder, Pravendra Singh, Vinay P. Namboodiri
2021 A conf
WACV
Pratik Mazumder, Pravendra Singh, Vinay P. Namboodiri
2021 J jnl
Image Vis. Comput.
Vinod K. Kurmi, Venkatesh K. Subramanian, Vinay P. Namboodiri
2021 J jnl
CoRR
Anchit Gupta, Faizan Farooq Khan, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2021 conf
ICVGIP
Anchit Gupta, Faizan Farooq Khan, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2021 A* conf
IJCAI
Mohammed Asad Karim, Vinay Kumar Verma, Pravendra Singh, Vinay P. Namboodiri, Piyush Rai
2021 J jnl
CoRR
Mohammed Asad Karim, Vinay Kumar Verma, Pravendra Singh, Vinay P. Namboodiri, Piyush Rai
2021 J jnl
Image Vis. Comput.
Badri N. Patro, Vinod K. Kurmi, Sandeep Kumar, Vinay P. Namboodiri
2021 J jnl
CoRR
Shanu Kumar, Vinod Kumar Kurmi, Praphul Singh, Vinay P. Namboodiri
2021 conf
ACL/IJCNLP (Findings)
Zeeshan Khan, Kartheek Akella, Vinay P. Namboodiri, C. V. Jawahar
2021 J jnl
CoRR
Zeeshan Khan, Kartheek Akella, Vinay P. Namboodiri, C. V. Jawahar
2021 A conf
WACV
Badri N. Patro, Mayank Lunayach, Deepankar Srivastava, Sarvesh, Hunar Singh, Vinay P. Namboodiri
2021 A conf
BMVC
Bipasha Sen, Aditya Agarwal, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2021 J jnl
CoRR
Bipasha Sen, Aditya Agarwal, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2021 J jnl
CoRR
Blessen George, Vinod K. Kurmi, Vinay P. Namboodiri
2021 J jnl
Pattern Recognit.
Badri N. Patro, Anupriy, Vinay P. Namboodiri
2021 A conf
WACV
Pratik Mazumder, Pravendra Singh, Vinay P. Namboodiri
2021 A* conf
CVPR
Pravendra Singh, Pratik Mazumder, Piyush Rai, Vinay P. Namboodiri
2021 J jnl
CoRR
Pravendra Singh, Pratik Mazumder, Piyush Rai, Vinay P. Namboodiri
2021 conf
COMAD/CODS
Jerin Philip, Shashank Siripragada, Vinay P. Namboodiri, C. V. Jawahar
2021 J jnl
Neurocomputing
Badri N. Patro, Dev Chauhan, Vinod K. Kurmi, Vinay P. Namboodiri
2021 A conf
WACV
Raghav Brahmadesam Venkataramaiyer, Abhishek Joshi, Saisha Narang, Vinay P. Namboodiri
2021 A conf
WACV
Badri N. Patro, G. S. Kasturi, Ansh Jain, Vinay P. Namboodiri
2021 Misc conf
ICASSP
Ravindra Yadav, Ashish Sardana, Vinay P. Namboodiri, Rajesh M. Hegde
2021 A conf
Interspeech
Parul Kapoor, Rudrabha Mukhopadhyay, Sindhu B. Hegde, Vinay P. Namboodiri, C. V. Jawahar
2021 J jnl
CoRR
Parul Kapoor, Rudrabha Mukhopadhyay, Sindhu B. Hegde, Vinay P. Namboodiri, C. V. Jawahar
2021 conf
ICVGIP
Seshadri Mazumder, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2021 J jnl
IEEE Trans. Image Process.
Badri Narayana Patro, Mayank Lunayach, Vinay P. Namboodiri
2021 A conf
WACV
Sindhu B. Hegde, K. R. Prajwal, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2021 J jnl
CoRR
Swaroop Panda, Vinay P. Namboodiri, Shatarupa Thakurta Roy
2020 A conf
WACV
Vinay Kumar Verma, Pravendra Singh, Vinay P. Namboodiri, Piyush Rai
2020 J jnl
CoRR
Vinay Kumar Verma, Pravendra Singh, Vinay P. Namboodiri, Piyush Rai
2020 J jnl
CoRR
K. R. Prajwal, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2020 A* conf
ACM Multimedia
K. R. Prajwal, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2020 B conf
LREC
Shashank Siripragada, Jerin Philip, Vinay P. Namboodiri, C. V. Jawahar
2020 J jnl
CoRR
Shashank Siripragada, Jerin Philip, Vinay P. Namboodiri, C. V. Jawahar
2020 J jnl
CoRR
Pratik Mazumder, Pravendra Singh, Kranti Kumar Parida, Vinay P. Namboodiri
2020 J jnl
IEEE J. Sel. Top. Signal Process.
Pravendra Singh, Vinay Kumar Verma, Piyush Rai, Vinay P. Namboodiri
2020 A conf
WACV
Pravendra Singh, Pratik Mazumder, Vinay P. Namboodiri
2020 A conf
WACV
Ravindra Yadav, Ashish Sardana, Vinay P. Namboodiri, Rajesh M. Hegde
2020 Misc conf
ICASSP
Pratik Mazumder, Pravendra Singh, Vinay P. Namboodiri
2020 A conf
WACV
Raghav Brahmadesam Venkataramaiyer, Subham Kumar, Vinay P. Namboodiri
2020 A conf
WACV
Pravendra Singh, Munender Varshney, Vinay P. Namboodiri
2020 J jnl
CoRR
Pravendra Singh, Munender Varshney, Vinay P. Namboodiri
2020 J jnl
CoRR
Arpan Mangal, Surya Kalia, Harish Rajgopal, Krithika Rangarajan, Vinay P. Namboodiri, Subhashis Banerjee, Chetan Arora
2020 A conf
WACV
Badri N. Patro, Vinod K. Kurmi, Sandeep Kumar, Vinay P. Namboodiri
2020 J jnl
CoRR
Badri N. Patro, Vinod K. Kurmi, Sandeep Kumar, Vinay P. Namboodiri
2020 A conf
BMVC
Samik Some, Mithun Das Gupta, Vinay P. Namboodiri
2020 J jnl
CoRR
Samik Some, Mithun Das Gupta, Vinay P. Namboodiri
2020 J jnl
Image Vis. Comput.
Pravendra Singh, Prem Raj, Vinay P. Namboodiri
2020 A* conf
AAAI
Badri N. Patro, Anupriy, Vinay P. Namboodiri
2020 conf
ICON
Kartheek Akella, Sai Himal Allu, Sridhar Suresh Ragupathi, Aman Singhal, Zeeshan Khan, C. V. Jawahar, Vinay P. Namboodiri
2020 J jnl
CoRR
Kartheek Akella, Sai Himal Allu, Sridhar Suresh Ragupathi, Aman Singhal, Zeeshan Khan, Vinay P. Namboodiri, C. V. Jawahar
2020 J jnl
Image Vis. Comput.
Pravendra Singh, Vinay Sameer Raja Kadi, Vinay P. Namboodiri
2020 J jnl
Image Vis. Comput.
Pratik Mazumder, Pravendra Singh, Vinay P. Namboodiri
2020 J jnl
Int. J. Comput. Vis.
Pravendra Singh, Vinay Kumar Verma, Piyush Rai, Vinay P. Namboodiri
2020 J jnl
CoRR
Pratik Mazumder, Pravendra Singh, Vinay P. Namboodiri
2020 A conf
WACV
Yatin Dandi, Aniket Das, Soumye Singhal, Vinay P. Namboodiri, Piyush Rai
2020 A* conf
CVPR
K. R. Prajwal, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2020 J jnl
CoRR
K. R. Prajwal, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2020 A conf
IROS
Prem Raj, Vinay P. Namboodiri, Laxmidhar Behera
2020 J jnl
CoRR
Prem Raj, Vinay P. Namboodiri, Laxmidhar Behera
2020 A conf
WACV
Pravendra Singh, Vinay Kumar Verma, Piyush Rai, Vinay P. Namboodiri
2020 conf
CVPR Workshops
Rajat, Munender Varshney, Pravendra Singh, Vinay P. Namboodiri
2020 J jnl
CoRR
Rajat, Munender Varshney, Pravendra Singh, Vinay P. Namboodiri
2020 B conf
IJCNN
Pravendra Singh, Pratik Mazumder, Vinay P. Namboodiri
2020 J jnl
CoRR
Pravendra Singh, Pratik Mazumder, Vinay P. Namboodiri
2020 conf
ICON
Binu Jasim, Vinay P. Namboodiri, C. V. Jawahar
2020 J jnl
CoRR
Pratik Mazumder, Pravendra Singh, Vinay P. Namboodiri
2020 J jnl
CoRR
Jerin Philip, Shashank Siripragada, Vinay P. Namboodiri, C. V. Jawahar
2020 A conf
WACV
Badri N. Patro, Shivansh Patel, Vinay P. Namboodiri
2020 J jnl
CoRR
Badri N. Patro, Shivansh Patel, Vinay P. Namboodiri
2020 A conf
BMVC
Ankit Jha, Awanish Kumar, Biplab Banerjee, Vinay P. Namboodiri
2020 J jnl
CoRR
Raghav Brahmadesam Venkataramaiyer, Abhishek Joshi, Saisha Narang, Vinay P. Namboodiri
2020 A* conf
NeurIPS
Arnab Ghosh, Harkirat S. Behl, Emilien Dupont, Philip H. S. Torr, Vinay P. Namboodiri
2020 J jnl
CoRR
Arnab Ghosh, Harkirat Singh Behl, Emilien Dupont, Philip H. S. Torr, Vinay P. Namboodiri
2020 B conf
IJCNN
Pravendra Singh, Vinay P. Namboodiri
2020 J jnl
CoRR
Ravindra Yadav, Ashish Sardana, Vinay P. Namboodiri, Rajesh M. Hegde
2020 A conf
INTERSPEECH
Ravindra Yadav, Ashish Sardana, Vinay P. Namboodiri, Rajesh M. Hegde
2020 J jnl
CoRR
Ravindra Yadav, Ashish Sardana, Vinay P. Namboodiri, Rajesh M. Hegde
2020 J jnl
CoRR
K. R. Prajwal, Rudrabha Mukhopadhyay, Jerin Philip, Abhishek Jha, Vinay P. Namboodiri, C. V. Jawahar
2020 J jnl
CoRR
Badri N. Patro, Mayank Lunayach, Vinay P. Namboodiri
2020 J jnl
CoRR
Sindhu B. Hegde, K. R. Prajwal, Rudrabha Mukhopadhyay, Vinay P. Namboodiri, C. V. Jawahar
2020 A* conf
ACM Multimedia
Riddhiman Dasgupta, Francis Tom, Sudhir Kumar, Mithun Das Gupta, Yokesh Kumar, Badri N. Patro, Vinay P. Namboodiri
2019 J jnl
CoRR
Jerin Philip, Vinay P. Namboodiri, C. V. Jawahar
2019 J jnl
CoRR
Pravendra Singh, Pratik Mazumder, Vinay P. Namboodiri
2019 A* conf
CVPR
Vinod Kumar Kurmi, Shanu Kumar, Vinay P. Namboodiri
2019 J jnl
CoRR
Vinod Kumar Kurmi, Shanu Kumar, Vinay P. Namboodiri
2019 J jnl
CoRR
Pratik Mazumder, Pravendra Singh, Vinay P. Namboodiri
2019 conf
WAT@EMNLP-IJCNLP
Jerin Philip, Shashank Siripragada, Upendra Kumar, Vinay P. Namboodiri, C. V. Jawahar
2019 J jnl
CoRR
Jerin Philip, Vinay P. Namboodiri, C. V. Jawahar
2019 J jnl
CoRR
Raghav Brahmadesam Venkataramaiyer, Subham Kumar, Vinay P. Namboodiri
2019 Misc conf
ICASSP
Abhishek Jha, Vikram Voleti, Vinay P. Namboodiri, C. V. Jawahar
2019 A conf
BMVC
Vinod Kumar Kurmi, Vipul Bajaj, Venkatesh K. Subramanian, Vinay P. Namboodiri
2019 J jnl
CoRR
Vinod Kumar Kurmi, Vipul Bajaj, Venkatesh K. Subramanian, Vinay P. Namboodiri
2019 J jnl
CoRR
Badri N. Patro, Vinay P. Namboodiri
2019 J jnl
CoRR
Soumik Dasgupta, Badri N. Patro, Vinay P. Namboodiri
2019 J jnl
CoRR
Badri N. Patro, Anupriy, Vinay P. Namboodiri
2019 J jnl
CoRR
Badri N. Patro, Shivansh Patel, Vinay P. Namboodiri
2019 A* conf
CVPR
Pravendra Singh, Vinay Kumar Verma, Piyush Rai, Vinay P. Namboodiri
2019 J jnl
CoRR
Pravendra Singh, Vinay Kumar Verma, Piyush Rai, Vinay P. Namboodiri
2019 J jnl
CoRR
Aadil Hayat, Utsav Singh, Vinay P. Namboodiri
2019 J jnl
CoRR
Yatin Dandi, Aniket Das, Soumye Singhal, Vinay P. Namboodiri, Piyush Rai
2019 B conf
IJCNN
Vinod Kumar Kurmi, Vinay P. Namboodiri
2019 J jnl
CoRR
Vinod Kumar Kurmi, Vinay P. Namboodiri
2019 A conf
WACV
Pravendra Singh, Manikandan R, Neeraj Matiyali, Vinay P. Namboodiri
2019 J jnl
CoRR
Saurabh Srivastava, Vinay P. Namboodiri, Tadinada Vankata Prabhakar
2019 A* conf
IJCAI
Pravendra Singh, Vinay Kumar Verma, Piyush Rai, Vinay P. Namboodiri
2019 J jnl
CoRR
Pravendra Singh, Vinay Kumar Verma, Piyush Rai, Vinay P. Namboodiri
2019 J jnl
CoRR
Badri N. Patro, Anupriy, Vinay P. Namboodiri
2019 J jnl
CoRR
Badri N. Patro, Dev Chauhan, Vinod K. Kurmi, Vinay P. Namboodiri
2019 J jnl
Mach. Vis. Appl.
Abhishek Jha, Vinay P. Namboodiri, C. V. Jawahar
2019 A conf
WACV
Pravendra Singh, Vinay Sameer Raja Kadi, Nikhil Verma, Vinay P. Namboodiri
2019 A* conf
ACM Multimedia
K. R. Prajwal, Rudrabha Mukhopadhyay, Jerin Philip, Abhishek Jha, Vinay P. Namboodiri, C. V. Jawahar
2019 A* conf
ICCV
Badri N. Patro, Mayank Lunayach, Shivansh Patel, Vinay P. Namboodiri
2019 J jnl
CoRR
Badri N. Patro, Mayank Lunayach, Shivansh Patel, Vinay P. Namboodiri
2019 B conf
IJCNN
Abhishek Joshi, Vinay P. Namboodiri
2019 J jnl
CoRR
Abhishek Joshi, Vinay P. Namboodiri
2018 conf
WAT@PACLIC
Jerin Philip, Vinay P. Namboodiri, C. V. Jawahar
2018 A conf
BMVC
Arshad Jamal, Vinay P. Namboodiri, Dipti Deodhare, K. S. Venkatesh
2018 A conf
BMVC
Soumya Roy, Asim Unmesh, Vinay P. Namboodiri
2018 A* conf
CVPR
Badri N. Patro, Vinay P. Namboodiri
2018 J jnl
CoRR
Badri N. Patro, Vinay P. Namboodiri
2018 J jnl
Multim. Tools Appl.
Arshad Jamal, Dipti Deodhare, Vinay P. Namboodiri, Venkatesh K. Subramanian
2018 J jnl
CoRR
Badri N. Patro, Vinod K. Kurmi, Sandeep Kumar, Vinay P. Namboodiri
2018 B conf
COLING
Badri Narayana Patro, Vinod Kumar Kurmi, Sandeep Kumar, Vinay P. Namboodiri
2018 J jnl
CoRR
Pravendra Singh, Vinay Kumar Verma, Piyush Rai, Vinay P. Namboodiri
2018 A conf
INTERSPEECH
Laxmi Pandey, Anurendra Kumar, Vinay P. Namboodiri
2018 A* conf
CVPR
Arnab Ghosh, Viveka Kulharia, Vinay P. Namboodiri, Philip H. S. Torr, Puneet Kumar Dokania
2018 J jnl
CoRR
Pravendra Singh, Manikandan R, Neeraj Matiyali, Vinay P. Namboodiri
2018 A* conf
EMNLP
Badri Narayana Patro, Sandeep Kumar, Vinod Kumar Kurmi, Vinay P. Namboodiri
2018 J jnl
CoRR
Badri N. Patro, Sandeep Kumar, Vinod K. Kurmi, Vinay P. Namboodiri
2018 A* conf
AAAI
Shashank Sharma, Vinay P. Namboodiri
2018 J jnl
CoRR
Shashank Sharma, Vinay P. Namboodiri
2018 J jnl
CoRR
Pravendra Singh, Vinay Sameer Raja Kadi, Nikhil Verma, Vinay P. Namboodiri
2018 conf
ACCV (3)
Arshad Jamal, Vinay P. Namboodiri, Dipti Deodhare, K. S. Venkatesh
2018 B conf
ESANN
Debjeet Majumdar, Vinay P. Namboodiri
2018 A conf
WACV
Abhishek Jha, Vinay P. Namboodiri, C. V. Jawahar
2017 conf
CRV
Unnat Jain, Vinay P. Namboodiri, Gaurav Pandey
2017 J jnl
CoRR
Unnat Jain, Vinay P. Namboodiri, Gaurav Pandey
2017 A* conf
AAAI
Viveka Kulharia, Arnab Ghosh, Amitabha Mukerjee, Vinay P. Namboodiri, Mohit Bansal
2017 J jnl
CoRR
Prabuddha Chakraborty, Vinay P. Namboodiri
2017 J jnl
CoRR
Arnab Ghosh, Viveka Kulharia, Vinay P. Namboodiri, Philip H. S. Torr, Puneet Kumar Dokania
2017 conf
ISMAR Adjunct
G. S. S. Srinivas Rao, Neeraj Thakur, Vinay P. Namboodiri
2017 J jnl
Comput. Graph. Forum
Rahul Arora, I. Darolia, Vinay P. Namboodiri, Karan Singh, Adrien Bousseau
2017 conf
NCVPRIPG
Prachi Rani, Arpit Jangid, Vinay P. Namboodiri, K. S. Venkatesh
2016 J jnl
CoRR
Soumya Roy, Vinay P. Namboodiri, Arijit Biswas
2016 J jnl
CoRR
Arnab Ghosh, Viveka Kulharia, Amitabha Mukerjee, Vinay P. Namboodiri, Mohit Bansal
2016 conf
ECCV Workshops (3)
Aishwarya Jadhav, Vinay P. Namboodiri, K. S. Venkatesh
2016 J jnl
CoRR
Arnab Ghosh, Viveka Kulharia, Vinay P. Namboodiri
2016 J jnl
CoRR
Ayush Mittal, Anant Raj, Vinay P. Namboodiri, Tinne Tuytelaars
2016 conf
ACCV (5)
Yeshi Dolma, Vinay P. Namboodiri
2015 A conf
BMVC
Subhabrata Debnath, Anjan Banerjee, Vinay P. Namboodiri
2015 J jnl
CoRR
Anant Raj, Vinay P. Namboodiri, Tinne Tuytelaars
2015 A conf
BMVC
Anant Raj, Vinay P. Namboodiri, Tinne Tuytelaars
2015 J jnl
CoRR
Anant Raj, Vinay P. Namboodiri, Tinne Tuytelaars
2015 B conf
FG
Deepak Pathak, Sai Nitish Satyavolu, Vinay P. Namboodiri
2014 A* conf
CVPR
Hakan Bilen, Marco Pedersoli, Vinay P. Namboodiri, Tinne Tuytelaars, Luc Van Gool
2014 J jnl
Int. J. Comput. Vis.
Hakan Bilen, Vinay P. Namboodiri, Luc Van Gool
2013 A conf
WACV
Vincent De Smet, Luc Van Gool, Vinay P. Namboodiri
2012 conf
DAGM/OAGM Symposium
Hakan Bilen, Vinay P. Namboodiri, Luc Van Gool
2011 A conf
WACV
Hakan Bilen, Vinay P. Namboodiri, Luc Van Gool
2011 A conf
BMVC
Hakan Bilen, Vinay P. Namboodiri, Luc Van Gool
2011 C conf
VCIP
Vinay P. Namboodiri, Vincent De Smet, Luc Van Gool
2008 A* conf
CVPR
Vinay P. Namboodiri, Subhasis Chaudhuri
2008 B conf
ICIP
Vinay P. Namboodiri, Subhasis Chaudhuri, Sunil Hadap
2007 conf
ICIP (4)
Vinay P. Namboodiri, Subhasis Chaudhuri
2007 J jnl
Pattern Recognit. Lett.
Vinay P. Namboodiri, Subhasis Chaudhuri
2007 J jnl
Pattern Recognit.
Rajashekhar, Subhasis Chaudhuri, Vinay P. Namboodiri
2007 A conf
BMVC
Vinay P. Namboodiri, Subhasis Chaudhuri
2007 conf
SSVM
Priyam Chatterjee, Vinay P. Namboodiri, Subhasis Chaudhuri
2006 conf
ICVGIP
Vinay P. Namboodiri, Amit Ghorawat, Subhasis Chaudhuri
2005 conf
CVPR (1)
Vinay P. Namboodiri, Subhasis Chaudhuri
2004 B conf
ICIP
S. Rajashekhar, Subhasis Chaudhuri, Vinay P. Namboodiri
2004 conf
ICVGIP
Vinay P. Namboodiri, Subhasis Chaudhuri
redb/extractors/decompiler/bninja/analysis/cfg-old.py
← Index redb/extractors/decompiler/bninja/analysis/cfg-old.py python
from collections import deque
from enum import Enum

from binaryninja.enums import (
    BranchType,
    InstructionTextTokenType,
)

# Support both package and standalone imports
try:
    from ..utils.hashes import calculate_md5, calculate_sha256
except ImportError:
    # Fallback to absolute imports (for multiprocessing spawned processes)
    from redb.extractors.decompiler.bninja.utils.hashes import calculate_md5, calculate_sha256


class CFGAnalysis:
    def __init__(self, function):
        self.function = function

    def determine_block_type(self, block) -> str:
        """Determine the type of a basic block."""
        # Check if it's a thunk function (usually just a jump or call)
        if len(block.disassembly_text) <= 2 and any(
            "jmp" in line.tokens[0].text.lower() for line in block.disassembly_text
        ):
            return "THUNK"

        # Check if it contains only data (no valid instructions)
        if all(not line.tokens for line in block.disassembly_text):
            return "DATA"

        # Default to code
        return "CODE"

    def extract_cyclomatic_complexity(self):
        """
        Cyclomatic complexity (McCabe’s metric) measures the number of linearly independent paths
        through a function’s control flow graph (CFG).
        The standard formula is:

            M = E - N + 2

        where:
            - E = number of edges in the CFG
            - N = number of nodes (basic blocks)
            - 2 accounts for the entry and exit nodes of a single connected graph
        """
        if self.function is None:
            return 0

        # number of basic blocks
        num_blocks = len(self.function.basic_blocks)
        # number of edges in the graph
        num_edges = sum(
            len(basic_block.outgoing_edges)
            for basic_block in self.function.basic_blocks
        )
        return num_edges - num_blocks + 2

    def extract_function_cfg(self):
        """Extract information about a function CFG and return it as a dictionary."""

        function = self.function
        function_data = {
            "function_address": self.function.start,
            "blocks": [],
            "measures": {
                "cyclomatic_complexity": self.extract_cyclomatic_complexity(),
            },
        }

        if self.function is None:
            return function_data

        # Get the map of the depth associated to every block
        depths = self.get_map_depth()

        # Get the map of the positions associated to every block
        id_maps = self.get_block_id_map()

        # Extract block data with graph structure information
        for block in function.basic_blocks:
            # dominators per every block translated
            dominators = sorted(self.extract_dominators(block, id_maps))

            # post dominators
            post_dominators = sorted(self.extract_post_dominators(block, id_maps))

            # Build block instructions string
            block_instructions = "\n".join(str(line) for line in block.disassembly_text)

            # Determine block type
            block_type = self.determine_block_type(block)

            # Extract successors directly from basic block
            successor_blocks = [edge.target.start for edge in block.outgoing_edges]
            # We ensure a canonical order and we sort the edges
            successor_blocks.sort()

            # Extract predecessors directly from basic block
            predecessor_blocks = [edge.source.start for edge in block.incoming_edges]
            # We ensure a canonical order and we sort the edges
            predecessor_blocks.sort()

            # Determine branch type from outgoing edges
            branch_type = self.determine_branch_type(block)

            instructions_count = len(block.disassembly_text)

            # Create block record
            block_json = {
                "function_address": self.function.start,
                "block_start_address": block.start,
                "block_end_address": block.end,
                "block_size": block.end - block.start,
                "instructions_count": instructions_count,
                "block_instructions_hash": calculate_sha256(block_instructions),
                "predecessor_blocks": predecessor_blocks,
                "successor_blocks": successor_blocks,
                "depth": depths[block.start],
                "position": id_maps[block.start],
                "branch_type": branch_type,
                "block_type": block_type,
                "flags": self.extract_block_flags(block),
                "dominators": dominators,
                "post_dominators": post_dominators,
            }
            function_data["blocks"].append(block_json)

        return function_data

    def extract_dominators(self, bb, id_maps):
        """Extract the dominators normalized"""
        dom_idx = [id_maps[d.start] for d in bb.dominators]
        return dom_idx

    def extract_post_dominators(self, bb, id_maps):
        """Extract the post-dominators normalized"""
        post_dom_idx = [id_maps[d.start] for d in bb.post_dominators]
        return post_dom_idx

    def determine_branch_type(self, block):
        """
        Determine the type of branch at the end of a basic block.
        This combines edge type information with instruction analysis.
        """
        # If no outgoing edges, it might be a return or terminal block
        if not block.outgoing_edges:
            # Check if the last instruction is a return
            for line in reversed(list(block.disassembly_text)):
                if line.tokens and any(
                    token.text.lower() in ["ret", "retn"] for token in line.tokens
                ):
                    return "RETURN"
            return "UNKNOWN"

        # Collect branch types from all outgoing edges
        branch_types = []
        for edge in block.outgoing_edges:
            edge_type = edge.type
            # Map edge type to our branch type enum
            if isinstance(edge_type, str):
                if edge_type == "IndirectCall":
                    branch_types.append("CALL")
                else:
                    branch_types.append("UNKNOWN")
            else:
                # Use our mapping for integer/enum values
                type_mapping = {
                    BranchType.UnconditionalBranch: "DIRECT",
                    BranchType.FalseBranch: "CONDITIONAL",
                    BranchType.TrueBranch: "CONDITIONAL",
                    BranchType.CallDestination: "CALL",
                    BranchType.FunctionReturn: "RETURN",
                    BranchType.SystemCall: "CALL",
                    BranchType.IndirectBranch: "INDIRECT",
                    BranchType.ExceptionBranch: "UNKNOWN",
                    BranchType.UnresolvedBranch: "UNKNOWN",
                    BranchType.UserDefinedBranch: "UNKNOWN",
                }
                branch_types.append(type_mapping.get(edge_type, "UNKNOWN"))

        # Determine overall branch type (prioritize CALL > RETURN > CONDITIONAL > DIRECT)
        if "CALL" in branch_types:
            return "CALL"
        elif "RETURN" in branch_types:
            return "RETURN"
        elif "CONDITIONAL" in branch_types:
            return "CONDITIONAL"
        elif "DIRECT" in branch_types:
            return "DIRECT"
        elif len(block.outgoing_edges) == 1:
            return "FALLTHROUGH"

        # If edge analysis was inconclusive, fall back to instruction analysis
        last_instr = None
        for line in reversed(list(block.disassembly_text)):
            if line.tokens:
                last_instr = line
                break

        if last_instr:
            mnemonic = None
            for token in last_instr.tokens:
                if token.type == InstructionTextTokenType.InstructionToken:
                    mnemonic = token.text.lower()
                    break

            if mnemonic:
                if mnemonic == "call":
                    return "CALL"
                elif mnemonic == "jmp":
                    return "DIRECT"
                elif mnemonic.startswith("j") and mnemonic != "jmp":
                    return "CONDITIONAL"
                elif mnemonic in ["ret", "retn"]:
                    return "RETURN"

        return "UNKNOWN"

    def get_map_depth(self):
        """
        Run a BFS on the basic blocks of the function to assign a depth to every block
        """

        depths = {}
        entry = self.function.get_basic_block_at(self.function.start)

        ### Simple BFS
        q = deque()
        q.append(entry)
        depths[entry.start] = 0

        while q:
            b = q.popleft()
            b_depth = depths[b.start]
            for edge in b.outgoing_edges:
                tgt = edge.target

                if tgt is None:
                    continue

                if tgt.start not in depths:
                    depths[tgt.start] = b_depth + 1
                    q.append(tgt)

        return depths

    def get_block_id_map(self):
        """
        Assign a unique, sequential ID to each basic block of the function using a BFS starting from the entry block.
        """

        id_map = {}
        entry = self.function.get_basic_block_at(self.function.start)

        q = deque()
        q.append(entry)

        current_id = 0
        id_map[entry.start] = current_id

        while q:
            b = q.popleft()
            for edge in b.outgoing_edges:
                tgt = edge.target

                if tgt is None:
                    continue

                if tgt.start not in id_map:
                    current_id += 1
                    id_map[tgt.start] = current_id
                    q.append(tgt)

        return id_map

    def extract_block_flags(self, block):
        """
        Get the flags for every basic block. Currently, we implemented these heuristics:
            - if a basic block is the entry node for a function
            - if a basic block is the exit block for a function
            - if a basic block is part of a natural loop
        """
        flags = []

        if block.start == self.function.start:
            flags.append(BlockFlags.EntryBlock.value)

        if any(edge.type == BranchType.FunctionReturn for edge in block.outgoing_edges):
            flags.append(BlockFlags.ExitBlock.value)

        # if this block is in its dominance frontier, then it's part of a natural loop
        if block in block.dominance_frontier:
            flags.append(BlockFlags.LoopBlock.value)

        return flags


class BlockFlags(Enum):
    # generally, the basic block identifying the entry point of the function
    EntryBlock = "EntryBlock"
    # any basic blocks that makes the control flow exiting from the current function
    ExitBlock = "ExitBlock"
    # any block is in a natural loop if it is in its own dominance frontier
    LoopBlock = "LoopBlock"


class BlockType(Enum):
    THUNK = "THUNK"
    DATA = "DATA"
    PADDING = "PADDING"
    CODE = "CODE"