<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>VISION AND IMAGE PROCESSING (VIP) RESEARCH GROUP</title>
	<atom:link href="https://vip.uwaterloo.ca/feed/" rel="self" type="application/rss+xml" />
	<link>https://vip.uwaterloo.ca</link>
	<description>The University of Waterloo&#039;s Vision and Image Processing Lab</description>
	<lastBuildDate>Fri, 19 Jun 2026 15:00:05 +0000</lastBuildDate>
	<language>en-CA</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7</generator>

<image>
	<url>https://vip.uwaterloo.ca/wp-content/uploads/2023/04/cropped-favicon-32x32.png</url>
	<title>VISION AND IMAGE PROCESSING (VIP) RESEARCH GROUP</title>
	<link>https://vip.uwaterloo.ca</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Interdisciplinary Living Lab for Environmental Monitoring</title>
		<link>https://vip.uwaterloo.ca/interdisciplinary-living-lab-for-environmental-monitoring/</link>
		
		<dc:creator><![CDATA[Zhibo Wang]]></dc:creator>
		<pubDate>Fri, 19 Jun 2026 15:00:05 +0000</pubDate>
				<category><![CDATA[Seminars]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=4552</guid>

					<description><![CDATA[Thiruni Thirimanne, Prof. Bruce MacVicar, Salma Elgohary, Mira Wang, Leo Qi June 19th, 2026 &#8211; 12:00-1:00 pm, EC4-2101A This presentation describes the current state of the interdisciplinary Living Lab being developed on campus. The goal is to connect researchers across disciplines and make it easier to bring real environmental data into classes, undergraduate design projects, and research. We [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Thiruni Thirimanne, Prof. Bruce MacVicar, Salma Elgohary, Mira Wang, Leo Qi</p>



<span id="more-4552"></span>



<p>June 19th, 2026 &#8211; 12:00-1:00 pm, EC4-2101A</p>



<p>This presentation describes the current state of the interdisciplinary Living Lab being developed on campus. The goal is to connect researchers across disciplines and make it easier to bring real environmental data into classes, undergraduate design projects, and research.</p>



<p>We will give a quick overview of the existing sensor setups in E2, RCH, and CPH, which have been collecting data for about 1 to 2 years. We will also discuss the planned expansion of the network, including new sensors to measure salt concentration in Laurel Creek, which is scheduled for deployment this summer.</p>



<p>Finally, we will introduce our new platform, DataHub.uwaterloo.ca, which brings together all data collected from campus sensors and citizen science into a&nbsp;single easy-to-use resource for both research and teaching.&nbsp;<br> </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Physics-Informed 3D Gaussian Splatting</title>
		<link>https://vip.uwaterloo.ca/physics-informed-3d-gaussian-splatting/</link>
		
		<dc:creator><![CDATA[Zhibo Wang]]></dc:creator>
		<pubDate>Fri, 12 Jun 2026 10:00:00 +0000</pubDate>
				<category><![CDATA[Seminars]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=4548</guid>

					<description><![CDATA[Adrian Ramlal June 12th, 2026 &#8211; 12:00-1:00 pm, EC4-2101A 3D Gaussian Splatting (3DGS) has emerged as a leading method for photorealistic scene reconstruction from multi-view images, yet existing approaches treat reconstruction as a purely visual optimization problem, ignoring the physical laws that govern real-world scenes. This talk explores a bidirectional relationship between physics and vision [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Adrian Ramlal</p>



<span id="more-4548"></span>



<p>June 12th, 2026 &#8211; 12:00-1:00 pm, EC4-2101A</p>



<p>3D Gaussian Splatting (3DGS) has emerged as a leading method for photorealistic scene reconstruction from multi-view images, yet existing approaches treat reconstruction as a purely visual optimization problem, ignoring the physical laws that govern real-world scenes. This talk explores a bidirectional relationship between physics and vision within the 3DGS framework. In the forward direction, physical and geometric priors are introduced at each stage of the pipeline: upsampled point cloud initialization improves reconstruction quality without architectural changes, mesh-coupled Gaussian representations enable physics simulation of dynamic scenes, and differentiable rigid-body simulation provides trajectory supervision during object occlusion in 4D reconstruction. In the inverse direction, we examine how observed fracture behaviour in food materials can be used to recover latent material parameters via surrogate modelling and reinforcement learning, enabling novel simulation of physically plausible fracture dynamics. Together, these contributions demonstrate that neither physics nor vision alone is sufficient for faithful dynamic reconstruction and simulation, and that integrating the two disciplines yields measurable and qualitatively meaningful improvements across all stages of the pipeline.<br> </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Automating Areas of Interest in Eye Tracking Research in Sports</title>
		<link>https://vip.uwaterloo.ca/automating-areas-of-interest-in-eye-tracking-research-in-sports/</link>
		
		<dc:creator><![CDATA[Zhibo Wang]]></dc:creator>
		<pubDate>Fri, 05 Jun 2026 15:27:45 +0000</pubDate>
				<category><![CDATA[Seminars]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=4544</guid>

					<description><![CDATA[Klaus Aplevich June 5th, 2026 &#8211; 12:00-1:00 pm, EC4-2101A Previous eye tracking research in sports has relied on hand annotated areas of interest to label data. This bottlenecked the number of participants and trials that could be used for research leading to small sample sizes and expensive experimental set ups. Using RF-DETR and controlled environments, [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Klaus Aplevich</p>



<span id="more-4544"></span>



<p>June 5th, 2026 &#8211; 12:00-1:00 pm, EC4-2101A</p>



<p>Previous eye tracking research in sports has relied on hand annotated areas of interest to label data. This bottlenecked the number of participants and trials that could be used for research leading to small sample sizes and expensive experimental set ups. Using RF-DETR and controlled environments, it is possible to automate ball detection with reasonable accuracy speeding up the analysis and increasing the sample size. The presentation will show how I automated data collection and how the automated ball detection helps with analyzing data in baseball and volleyball.<br> </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kevin Li</title>
		<link>https://vip.uwaterloo.ca/kevin-li/</link>
		
		<dc:creator><![CDATA[Kevin Li]]></dc:creator>
		<pubDate>Fri, 29 May 2026 19:17:27 +0000</pubDate>
				<category><![CDATA[Current Students]]></category>
		<category><![CDATA[David Clausi]]></category>
		<category><![CDATA[John Zelek]]></category>
		<category><![CDATA[M.A.Sc.]]></category>
		<category><![CDATA[Sports Analytics]]></category>
		<category><![CDATA[Video Analysis]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=4531</guid>

					<description><![CDATA[Kevin Li is a Masters student in the Systems Design Engineering program supervised by Prof. David Clausi and Prof. John Zelek. He is a member of the Sports Analytics Research Group, with research focusing on player re-identification.]]></description>
										<content:encoded><![CDATA[
<p>Kevin Li is a Masters student in the Systems Design Engineering program supervised by Prof. David Clausi and Prof. John Zelek. He is a member of the Sports Analytics Research Group, with research focusing on player re-identification.</p>


<div class="lazyblock-supervisors-bnmLc wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/d-clausi/>David Clausi</a>, <a href=https://vip.uwaterloo.ca/j-zelek/>John Zelek</a></div>

<div class="lazyblock-research-Z1JKF1d wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/sports-analytics/>Sports Analytics</a><br><a href=https://vip.uwaterloo.ca/video-analysis/>Video Analysis</a><br></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Using Visuals to Communicate in the Era of Generative AI</title>
		<link>https://vip.uwaterloo.ca/using-visuals-to-communicate-in-the-era-of-generative-ai/</link>
		
		<dc:creator><![CDATA[Zhibo Wang]]></dc:creator>
		<pubDate>Fri, 29 May 2026 13:42:26 +0000</pubDate>
				<category><![CDATA[Seminars]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=4528</guid>

					<description><![CDATA[Prof. Jian Zhao May 29th, 2026 &#8211; 12:00-1:00 pm, EC4-2101A The recent advancements in artificial intelligence (AI) have been changing how we live, work, and dream, revolutionizing many industries through its versatile capabilities. Despite its many benefits, numerous challenges remain when integrating AI agents into our current workflows. No matter how advanced AI becomes, humans [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Prof. Jian Zhao</p>



<span id="more-4528"></span>



<p>May 29th, 2026 &#8211; 12:00-1:00 pm, EC4-2101A</p>



<p>The recent advancements in artificial intelligence (AI) have been changing how we live, work, and dream, revolutionizing many industries through its versatile capabilities. Despite its many benefits, numerous challenges remain when integrating AI agents into our current workflows. No matter how advanced AI becomes, humans will remain in the loop at all times—focused more on goals, operating at higher levels of abstraction, and analyzing domain-specific circumstances. A major barrier to effective collaboration lies in the communication between humans and AI agents. In this talk, I will introduce my research, which takes a step toward addressing this gap using advanced interaction and visualization techniques to create harmony between humans and AI. I will share my perspective on the factors that influence human-AI communication, as well as showcase a range of example projects situated in various applications such as programming, information-seeking, and design.<br> </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Directional Structure and Thin Occlusion in 3D Reconstruction</title>
		<link>https://vip.uwaterloo.ca/directional-structure-and-thin-occlusion-in-3d-reconstruction/</link>
		
		<dc:creator><![CDATA[Zhibo Wang]]></dc:creator>
		<pubDate>Fri, 22 May 2026 15:09:17 +0000</pubDate>
				<category><![CDATA[Seminars]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=4526</guid>

					<description><![CDATA[Soyeon Jang May 22th, 2026 &#8211; 12:00-1:00 pm, EC4-2101A My seminar focuses on 3D reconstruction of thin and strand-like structures such as hair, fur, fibres, and occluders. I first discuss direction-aware kernel support for neural implicit reconstruction of fuzzy geometry, then present a controlled 3D Gaussian Splatting study where thin occluders partially hide a target [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Soyeon Jang</p>



<span id="more-4526"></span>



<p>May 22th, 2026 &#8211; 12:00-1:00 pm, EC4-2101A</p>



<p>My seminar focuses on 3D reconstruction of thin and strand-like structures such as hair, fur, fibres, and occluders. I first discuss direction-aware kernel support for neural implicit reconstruction of fuzzy geometry, then present a controlled 3D Gaussian Splatting study where thin occluders partially hide a target object. The goal is to understand how directional structure affects both representation quality and reconstruction capacity under occlusion.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Soheil Soltani</title>
		<link>https://vip.uwaterloo.ca/soheil-soltani/</link>
		
		<dc:creator><![CDATA[Soheil Soltani]]></dc:creator>
		<pubDate>Sat, 02 May 2026 00:33:07 +0000</pubDate>
				<category><![CDATA[Current Students]]></category>
		<category><![CDATA[David Clausi]]></category>
		<category><![CDATA[Ph.D.]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=4513</guid>

					<description><![CDATA[Soheil Soltani is a machine learning engineer and researcher with over six years of experience building AI-powered systems across various industries. His core expertise spans computer vision, anomaly detection, predictive maintenance, and large language models — including multi-agent systems, retrieval-augmented generation, and natural language interfaces — with a track record of deploying robust solutions in safety-critical industrial environments.]]></description>
										<content:encoded><![CDATA[
<p>Soheil Soltani is a machine learning engineer and researcher with over six years of experience building AI-powered systems across various industries. His core expertise spans computer vision, anomaly detection, predictive maintenance, and large language models — including multi-agent systems, retrieval-augmented generation, and natural language interfaces — with a track record of deploying robust solutions in safety-critical industrial environments.</p>


<div class="lazyblock-supervisors-2d1bBq wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/d-clausi/>David Clausi</a></div>


<p>Dr. Freda Shi</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Youssef Nafea</title>
		<link>https://vip.uwaterloo.ca/youssef-nafea/</link>
		
		<dc:creator><![CDATA[Youssef Nafea]]></dc:creator>
		<pubDate>Fri, 17 Apr 2026 18:06:04 +0000</pubDate>
				<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[Current Students]]></category>
		<category><![CDATA[David Clausi]]></category>
		<category><![CDATA[Level]]></category>
		<category><![CDATA[People]]></category>
		<category><![CDATA[Ph.D.]]></category>
		<category><![CDATA[Remote Sensing]]></category>
		<category><![CDATA[Research Topics]]></category>
		<category><![CDATA[Supervisors]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=4502</guid>

					<description><![CDATA[I am Youssef, a PhD candidate in Systems Design Engineering (SYDE) at the University of Waterloo. My research focuses on remote sensing, with an emphasis on sea ice classification and cloud detection using machine learning and satellite imagery. I hold a Master’s degree in Natural Language Processing and a Bachelor’s degree in Computer Engineering.]]></description>
										<content:encoded><![CDATA[
<p>I am Youssef, a PhD candidate in Systems Design Engineering (SYDE) at the University of Waterloo. My research focuses on remote sensing, with an emphasis on sea ice classification and cloud detection using machine learning and satellite imagery. I hold a Master’s degree in Natural Language Processing and a Bachelor’s degree in Computer Engineering.</p>


<div class="lazyblock-supervisors-Z1LWbhS wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/d-clausi/>David Clausi</a></div>

<div class="lazyblock-research-interests-kw3Il wp-block-lazyblock-research-interests"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research interests</div>Computer Vision,
Sea Ice Classification</div>

<div class="lazyblock-publications-2g8JW3 wp-block-lazyblock-publications"><meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#peoplePublications {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 3rem;
    text-align: start;
    margin-bottom: 0.6em;
}

#peoplePublications ~ span {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 1.75rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#nav {
    text-align: start;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    margin-bottom: 0.5em;
    margin-left: 0;
    padding-left: 0;
}

#nav a {
    text-decoration-line: underline;
}

#nav a:hover {
    text-decoration-line: none;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}

#pubDataConference {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  
   <div class="row">
      <div class="col ps-0" id="peoplePublications">Publications</div>
      <div id="nav">
        <a href="#journalArticles">Journal Articles</a>
        <span> / </span>
        <a href="#conferencePapers">Conference Papers</a>
      </div>
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <div id="nav">
        <a href="#peoplePublications">Top</a>
      </div>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>

<script>
	  let pubDataJournals = "";
	  let pubDataConference = "";
    let publications = [];
    const apiID = "https://ecserv2.uwaterloo.ca/researchmicro/research/reverseauthor.php?scopus_id="
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=";
    const openAccess = "https://bg.api.oa.works/find?id=";
    let userID;
    getNexus(0);

    async function getNexus(scopusID)
    {
        let userInfo = await fetch(apiID+scopusID);
        let userInfoText = await userInfo.text();
        if(userInfoText == "Sorry, you do not have a Scopus ID assigned")
        {
          document.getElementById('peoplePublications').style.display = "none";
          document.querySelectorAll('[id="nav"]')[0].style.display = "none";
          document.querySelectorAll('[id="nav"]')[1].style.display = "none";
          document.getElementById('journalArticles').style.display = "none";
          document.getElementById('conferencePapers').style.display = "none";
          document.getElementById('pubDataJournals').style.display = "none";
          document.getElementById('pubDataConference').style.display = "none";
        }
        else
        {
          userID = JSON.parse(userInfoText).rows.nexus;
          displayPublications();
        }
    }

    async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        title = title.replaceAll(/ /g, '%20');
        id.innerHTML = "loading..."
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function isConference(publication)
    {
    	return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
   	}

   function displayPublications() {
	    getPublications(api+userID).then(
            function(value) {
                const size = value.rows.length;
                let pubListJournals = "";
                let pubListConference = "";
                for(var i = 0; i < size; i++)
                            {
                                let publication = "";
                                let authors = value.rows[i].list_names_of_authors.split(", ");
                                lastIndex = authors.length - 1;
                                authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                let possibleSupervisors = ["Clausi D.", "Fieguth P.W.", "Fieguth P.", "Wong A.", "Zelek J.", "Xu L.", "Scott A.", "Rambhatla S.", "Lee J.", "Chen Y.", "Shafiee M.J."];
                                if(authors.some(r=>possibleSupervisors.includes(r)))
                                {
                                for(var j = 0; j <= lastIndex; j++)
                                {  
                                    let authorLink = "";
                                    let authorsLC = authors[j].toLowerCase();
                                    if(j == lastIndex)
                                    {
                                        if(authorsLC.includes("."))
                                        {  
                                            authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        else
                                        {
                                            authorLink += authorsLC.charAt(authorsLC.length - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        
                                    }
                                    else
                                    {
                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                        authorLink += "-";
                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        
                                    }
                                    authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                    if(j != lastIndex)
                                    {
                                        publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                    }
                                    else 
                                    {
                                        publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                    }
                                }

                                publication += ', "';
                                
                                publication += value.rows[i].title;
                                
                                publication += '", ';
                                publication += value.rows[i].pub_name;
                                if (!isConference(value.rows[i]))
                                {
                                    publication += ", vol. ";
                                    publication += value.rows[i].volume;
                                    publication += ", ";
                                }
                                if (value.rows[i].page_range != "" && !isConference(value.rows[i]))
                                {
                                    publication += "pp. ";
                                    publication += value.rows[i].page_range;
                                    publication += ", ";
                                }
                                else if(isConference(value.rows[i]))
                                {
                                    publication += ", ";
                                }
                                publication += value.rows[i].year;
                                publication += ". ";
                                publication += `<a href="#" onclick="generateLink(this, '${value.rows[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                publication += "\n\n";
                                if (isConference(value.rows[i]))
                                {
                                    pubListConference += publication;
                                }
                                else
                                {
                                      pubListJournals += publication;
                                }
                                }
                            }
                document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                document.getElementById('pubDataConference').innerHTML = pubListConference;
                if(pubListConference == "")
                {
                   document.getElementById('conferencePapers').style.display = "none";
                }
                if(pubListJournals == "")
                {
                  document.getElementById('journalArticles').style.display = "none";
                }
            },
            function(error) {document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";}
        )
    }

   
</script></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Quanyun (Daniel) Wu</title>
		<link>https://vip.uwaterloo.ca/quanyun-daniel-wu/</link>
		
		<dc:creator><![CDATA[Daniel Wu]]></dc:creator>
		<pubDate>Wed, 08 Apr 2026 20:24:21 +0000</pubDate>
				<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[Computer Vision for Autonomous Robots]]></category>
		<category><![CDATA[Current Students]]></category>
		<category><![CDATA[David Clausi]]></category>
		<category><![CDATA[Jonathan Li]]></category>
		<category><![CDATA[M.A.Sc.]]></category>
		<category><![CDATA[Remote Sensing]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Yuhao Chen]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=4494</guid>

					<description><![CDATA[Quanyun is a MASc student in Systems Design Engineering, co-supervised by Prof. Jonathan Li, Prof. David Clausi, and Prof. Yuhao Chen. His research will focus on 3D reconstruction and Embodied AI.]]></description>
										<content:encoded><![CDATA[
<p>Quanyun is a MASc student in Systems Design Engineering, co-supervised by Prof. Jonathan Li, Prof. David Clausi, and Prof. Yuhao Chen. His research will focus on 3D reconstruction and Embodied AI.</p>


<div class="lazyblock-supervisors-1fmt29 wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/d-clausi/>David Clausi</a>, <a href=https://vip.uwaterloo.ca/yuhao-chen-2/>Yuhao Chen</a>, Jonathan Li</div>

<div class="lazyblock-research-Z1cEOsO wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/computer-vision/>Computer Vision</a><br><a href=https://vip.uwaterloo.ca/remote-sensing/>Remote Sensing</a><br><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research demos</div><a href=https://vip.uwaterloo.ca/computer-vision-for-autonomous-robots/>Computer Vision for Autonomous Robots</a><br></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Maria Koshkina</title>
		<link>https://vip.uwaterloo.ca/maria-koshkina/</link>
		
		<dc:creator><![CDATA[Maria Koshkina]]></dc:creator>
		<pubDate>Wed, 01 Apr 2026 21:05:28 +0000</pubDate>
				<category><![CDATA[Current RAP/PDF]]></category>
		<category><![CDATA[Level]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[People]]></category>
		<category><![CDATA[Research Topics]]></category>
		<category><![CDATA[Sports Analytics]]></category>
		<category><![CDATA[Video Analysis]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=4484</guid>

					<description><![CDATA[I am a Postdoctoral Fellow in the Sports Analytics Research Group, specializing in automatic video understanding for sports. I hold a PhD from the Department of Electrical Engineering and Computer Science, York University and have over 15 years of experience as a professional software developer.]]></description>
										<content:encoded><![CDATA[
<p>I am a Postdoctoral Fellow in the Sports Analytics Research Group, specializing in automatic video understanding for sports. I hold a PhD from the <a href="http://eecs.lassonde.yorku.ca/'">Department of Electrical Engineering and Computer Science</a>, York University and have over 15 years of experience as a professional software developer.</p>



<p>Personal website: <a href="https://mkoshkina.github.io/">https://mkoshkina.github.io/</a></p>


<div class="lazyblock-research-interests-Z4S6yP wp-block-lazyblock-research-interests"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research interests</div>video understanding, multi-object tracking, action recognition</div>

<div class="lazyblock-publications-Z2uXhnH wp-block-lazyblock-publications"><meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#peoplePublications {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 3rem;
    text-align: start;
    margin-bottom: 0.6em;
}

#peoplePublications ~ span {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 1.75rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#nav {
    text-align: start;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    margin-bottom: 0.5em;
    margin-left: 0;
    padding-left: 0;
}

#nav a {
    text-decoration-line: underline;
}

#nav a:hover {
    text-decoration-line: none;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}

#pubDataConference {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  
   <div class="row">
      <div class="col ps-0" id="peoplePublications">Publications</div>
      <div id="nav">
        <a href="#journalArticles">Journal Articles</a>
        <span> / </span>
        <a href="#conferencePapers">Conference Papers</a>
      </div>
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <div id="nav">
        <a href="#peoplePublications">Top</a>
      </div>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>

<script>
	  let pubDataJournals = "";
	  let pubDataConference = "";
    let publications = [];
    const apiID = "https://ecserv2.uwaterloo.ca/researchmicro/research/reverseauthor.php?scopus_id="
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=";
    const openAccess = "https://bg.api.oa.works/find?id=";
    let userID;
    getNexus(57223814285);

    async function getNexus(scopusID)
    {
        let userInfo = await fetch(apiID+scopusID);
        let userInfoText = await userInfo.text();
        if(userInfoText == "Sorry, you do not have a Scopus ID assigned")
        {
          document.getElementById('peoplePublications').style.display = "none";
          document.querySelectorAll('[id="nav"]')[0].style.display = "none";
          document.querySelectorAll('[id="nav"]')[1].style.display = "none";
          document.getElementById('journalArticles').style.display = "none";
          document.getElementById('conferencePapers').style.display = "none";
          document.getElementById('pubDataJournals').style.display = "none";
          document.getElementById('pubDataConference').style.display = "none";
        }
        else
        {
          userID = JSON.parse(userInfoText).rows.nexus;
          displayPublications();
        }
    }

    async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        title = title.replaceAll(/ /g, '%20');
        id.innerHTML = "loading..."
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function isConference(publication)
    {
    	return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
   	}

   function displayPublications() {
	    getPublications(api+userID).then(
            function(value) {
                const size = value.rows.length;
                let pubListJournals = "";
                let pubListConference = "";
                for(var i = 0; i < size; i++)
                            {
                                let publication = "";
                                let authors = value.rows[i].list_names_of_authors.split(", ");
                                lastIndex = authors.length - 1;
                                authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                let possibleSupervisors = ["Clausi D.", "Fieguth P.W.", "Fieguth P.", "Wong A.", "Zelek J.", "Xu L.", "Scott A.", "Rambhatla S.", "Lee J.", "Chen Y.", "Shafiee M.J."];
                                if(authors.some(r=>possibleSupervisors.includes(r)))
                                {
                                for(var j = 0; j <= lastIndex; j++)
                                {  
                                    let authorLink = "";
                                    let authorsLC = authors[j].toLowerCase();
                                    if(j == lastIndex)
                                    {
                                        if(authorsLC.includes("."))
                                        {  
                                            authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        else
                                        {
                                            authorLink += authorsLC.charAt(authorsLC.length - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        
                                    }
                                    else
                                    {
                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                        authorLink += "-";
                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        
                                    }
                                    authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                    if(j != lastIndex)
                                    {
                                        publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                    }
                                    else 
                                    {
                                        publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                    }
                                }

                                publication += ', "';
                                
                                publication += value.rows[i].title;
                                
                                publication += '", ';
                                publication += value.rows[i].pub_name;
                                if (!isConference(value.rows[i]))
                                {
                                    publication += ", vol. ";
                                    publication += value.rows[i].volume;
                                    publication += ", ";
                                }
                                if (value.rows[i].page_range != "" && !isConference(value.rows[i]))
                                {
                                    publication += "pp. ";
                                    publication += value.rows[i].page_range;
                                    publication += ", ";
                                }
                                else if(isConference(value.rows[i]))
                                {
                                    publication += ", ";
                                }
                                publication += value.rows[i].year;
                                publication += ". ";
                                publication += `<a href="#" onclick="generateLink(this, '${value.rows[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                publication += "\n\n";
                                if (isConference(value.rows[i]))
                                {
                                    pubListConference += publication;
                                }
                                else
                                {
                                      pubListJournals += publication;
                                }
                                }
                            }
                document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                document.getElementById('pubDataConference').innerHTML = pubListConference;
                if(pubListConference == "")
                {
                   document.getElementById('conferencePapers').style.display = "none";
                }
                if(pubListJournals == "")
                {
                  document.getElementById('journalArticles').style.display = "none";
                }
            },
            function(error) {document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";}
        )
    }

   
</script></div>

<div class="lazyblock-research-Z1rkiRY wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/sports-analytics/>Sports Analytics</a><br><a href=https://vip.uwaterloo.ca/video-analysis/>Video Analysis</a><br></div>


<p></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
