<?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>M.A.Sc. &#8211; VISION AND IMAGE PROCESSING (VIP) RESEARCH GROUP</title>
	<atom:link href="https://vip.uwaterloo.ca/category/lev/masc/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>Wed, 08 Apr 2026 21:24:15 +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>M.A.Sc. &#8211; VISION AND IMAGE PROCESSING (VIP) RESEARCH GROUP</title>
	<link>https://vip.uwaterloo.ca</link>
	<width>32</width>
	<height>32</height>
</image> 
	<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>Jerry (Jitao) Hu</title>
		<link>https://vip.uwaterloo.ca/jerry-jitao-hu/</link>
		
		<dc:creator><![CDATA[Jerry Hu]]></dc:creator>
		<pubDate>Thu, 26 Mar 2026 20:53:13 +0000</pubDate>
				<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[Current Students]]></category>
		<category><![CDATA[David Clausi]]></category>
		<category><![CDATA[M.A.Sc.]]></category>
		<category><![CDATA[Sports Analytics]]></category>
		<category><![CDATA[Yuhao Chen]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=4461</guid>

					<description><![CDATA[Jerry (Jitao) Hu is a Master of Applied Science student in the Vision and Image Processing Lab at the University of Waterloo. He is in the Systems Design Engineering program and is supervised by Prof. David Clausi and Prof. Yuhao Chen. His research interests include computer vision, sports analytics, reinforcement learning, and robotics. Previously, he completed his Bachelor of Applied Science in Computer Engineering at the University of Waterloo. Outside of his research, he enjoys playing basketball, travelling, photography, and cooking.]]></description>
										<content:encoded><![CDATA[
<p>Jerry (Jitao) Hu is a Master of Applied Science student in the Vision and Image Processing Lab at the University of Waterloo. He is in the Systems Design Engineering program and is supervised by Prof. David Clausi and Prof. Yuhao Chen. His research interests include computer vision, sports analytics, reinforcement learning, and robotics. Previously, he completed his Bachelor of Applied Science in Computer Engineering at the University of Waterloo. Outside of his research, he enjoys playing basketball, travelling, photography, and cooking.</p>



<p><strong>LinkedIn</strong>: <a href="http://www.linkedin.com/in/jerryhu-jt" data-type="link" data-id="www.linkedin.com/in/jerryhu-jt">www.linkedin.com/in/jerryhu-jt</a></p>


<div class="lazyblock-supervisors-Z1NVsk2 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></div>

<div class="lazyblock-research-Z277Rnt 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/sports-analytics/>Sports Analytics</a><br></div>


<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Dmytro Klepachevskyi</title>
		<link>https://vip.uwaterloo.ca/dmytro-klepachevskyi/</link>
		
		<dc:creator><![CDATA[Dmytro Klepachevskyi]]></dc:creator>
		<pubDate>Tue, 24 Mar 2026 18:34:16 +0000</pubDate>
				<category><![CDATA[Current Students]]></category>
		<category><![CDATA[Level]]></category>
		<category><![CDATA[M.A.Sc.]]></category>
		<category><![CDATA[People]]></category>
		<category><![CDATA[Sirisha Rambhatla]]></category>
		<category><![CDATA[Supervisors]]></category>
		<category><![CDATA[Yuhao Chen]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=4435</guid>

					<description><![CDATA[MASc student working on multi-object tracking and object re-identification.
]]></description>
										<content:encoded><![CDATA[
<p>Dmytro (Dima) is a Master&#8217;s student in Systems Design Engineering supervised by Prof. Yuhao Chen and Prof. Sirisha Rambhatla. Dima is interested in computer vision algorithms, especially in the generalizable object re-identification.</p>



<p>Email: dklepach@uwaterloo.ca</p>



<p>Github: <a href="https://github.com/dklpp">https://github.com/dklpp</a></p>


<div class="lazyblock-supervisors-Z2vbQ86 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/yuhao-chen-2/>Yuhao Chen</a>, Sirisha Rambhatla</div>

<div class="lazyblock-research-interests-1TbJy8 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, Object Re-Identification, Multi Object Trackin</div>


<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kshitij Goyal</title>
		<link>https://vip.uwaterloo.ca/kshitij-goyal/</link>
		
		<dc:creator><![CDATA[Kshitij Goyal]]></dc:creator>
		<pubDate>Wed, 11 Mar 2026 17:11:16 +0000</pubDate>
				<category><![CDATA[Current Students]]></category>
		<category><![CDATA[David Clausi]]></category>
		<category><![CDATA[Level]]></category>
		<category><![CDATA[M.A.Sc.]]></category>
		<category><![CDATA[People]]></category>
		<category><![CDATA[Yuhao Chen]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=4408</guid>

					<description><![CDATA[I am currently doing my master's under the superivision of Prof. David Clausi and Prof. Yuhao Chen. My research falls in the intersection of classical machine learning, deep learning and computer vision.]]></description>
										<content:encoded><![CDATA[
<p>Hey, I&#8217;m Kshitij.</p>



<p>I am currently doing my master&#8217;s under the superivision of Prof. David Clausi and Prof. Yuhao Chen. My research falls in the intersection of classical machine learning, deep learning and computer vision. </p>


<div class="lazyblock-supervisors-2fuE6g 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></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Mohammad Basri</title>
		<link>https://vip.uwaterloo.ca/mohammad-basri/</link>
		
		<dc:creator><![CDATA[Mohammad Basri]]></dc:creator>
		<pubDate>Tue, 10 Mar 2026 19:24:25 +0000</pubDate>
				<category><![CDATA[Alumni]]></category>
		<category><![CDATA[David Clausi]]></category>
		<category><![CDATA[Linlin Xu]]></category>
		<category><![CDATA[M.A.Sc.]]></category>
		<category><![CDATA[Remote Sensing]]></category>
		<category><![CDATA[M.A.Sc. Grad Date: 2024]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=3818</guid>

					<description><![CDATA[Hi,  I am Muhammed Patel

I am a graduate student pursuing a Master of Applied Science in Systems Design Engineering at the University of Waterloo. Prior to this, I completed a dual degree program in Industrial Engineering and Industrial Engineering Management with a specialization in Optimization at the Indian Institute of Technology (IIT) Kharagpur.

I am currently working on automatic whale detection and sea ice classification from SAR images.]]></description>
										<content:encoded><![CDATA[
<p>I am Mohammad Basri and I am pursuing graduate studies in System Design Engineering at the University of Waterloo, specializing in applications of AI and ML in public health informatics, including infectious disease forecasting and medical outcome prediction. I am dedicated to leveraging technology for business innovation and passionate about entrepreneurship. He is also an avid sports enthusiast, often found playing tennis or basketball outdoors. </p>


<div class="lazyblock-research-1ph4V6 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/remote-sensing/>Remote Sensing</a><br></div>

<div class="lazyblock-supervisors-Z1OYGPY 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/l-xu/>Linlin Xu</a></div>

<div class="lazyblock-publications-ZvEl07 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(57330627600);

    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>Auguste L. W. Koh</title>
		<link>https://vip.uwaterloo.ca/auguste-l-w-koh/</link>
		
		<dc:creator><![CDATA[Auguste Koh]]></dc:creator>
		<pubDate>Tue, 10 Mar 2026 19:22:36 +0000</pubDate>
				<category><![CDATA[Alumni]]></category>
		<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[M.A.Sc.]]></category>
		<category><![CDATA[Paul Fieguth]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Video Analysis]]></category>
		<category><![CDATA[M.A.Sc. Grad Date: 2024]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=3282</guid>

					<description><![CDATA[Auguste earned his BASc degree in 2021. He is currently pursuing an MASc degree under the supervision of Professor Paul Fieguth. ]]></description>
										<content:encoded><![CDATA[
<p>Auguste earned his BASc degree in Biomedical Engineering at the University of Waterloo in 2021. He is currently pursuing an MASc degree under the supervision of Professor Paul Fieguth. His main research is focused on detecting near misses from video of vehicular and pedestrian traffic; this project is in collaboration with <a href="https://miovision.com">Miovision</a>. In addition, he is a collaborator on the <a href="https://flairop.com">Federated Learning for Robot Picking</a> (FLAIROP) project, in which he works on inferring object relationships from images.</p>


<div class="lazyblock-supervisors-Z2fEkUC 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/p-fieguth/>Paul Fieguth</a></div>

<div class="lazyblock-research-interests-Z264G30 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>Deep learning for video, scene understanding, object detection, object tracking, bin picking, and 3D pose estimation.</div>

<div class="lazyblock-research-gFHLN 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/video-analysis/>Video Analysis</a><br></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Soyeon Jang</title>
		<link>https://vip.uwaterloo.ca/soyeon-jang/</link>
		
		<dc:creator><![CDATA[soyeon jang]]></dc:creator>
		<pubDate>Tue, 11 Feb 2025 14:33:39 +0000</pubDate>
				<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[Current Students]]></category>
		<category><![CDATA[M.A.Sc.]]></category>
		<category><![CDATA[Paul Fieguth]]></category>
		<category><![CDATA[Yuhao Chen]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=4259</guid>

					<description><![CDATA[Soyeon is a master's student in Systems Design Engineering, supervised by Prof. Paul Fieguth and Prof. Yuhao Chen. Currently, her research focuses on animal fur reconstruction and simulation.]]></description>
										<content:encoded><![CDATA[
<p>Soyeon is a Master of Applied Science candidate in Systems Design Engineering, co-supervised by Prof. Paul Fieguth and Prof. Yuhao Chen. Soyeon is interested in the intersection of computer vision and computer graphics, specifically on animal fur reconstruction and simulation. </p>



<p>Email: s7jang [at] uwaterloo [dot] ca</p>


<div class="lazyblock-supervisors-Z1w6qyP 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/p-fieguth/>Paul Fieguth</a>, <a href=https://vip.uwaterloo.ca/yuhao-chen-2/>Yuhao Chen</a></div>

<div class="lazyblock-research-interests-cX3xD 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, Computer Graphics, 3D Reconstruction, Simulation</div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Niloofar Azad</title>
		<link>https://vip.uwaterloo.ca/n-azad/</link>
		
		<dc:creator><![CDATA[Niloo Azad]]></dc:creator>
		<pubDate>Sat, 01 Feb 2025 23:51:12 +0000</pubDate>
				<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[Current Students]]></category>
		<category><![CDATA[David Clausi]]></category>
		<category><![CDATA[Image Segmentation/Classification]]></category>
		<category><![CDATA[Linlin Xu]]></category>
		<category><![CDATA[M.A.Sc.]]></category>
		<category><![CDATA[Remote Sensing]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=4238</guid>

					<description><![CDATA[Niloofar is currently a MASc student in Systems Design Engineering, co-supervised by Prof. David Clausi and Prof. Linlin Xu at the University of Waterloo. She is a member of the Vision and Image Processing (VIP) Lab’s Remote Sensing Group, and her research interests include Machine Learning and Image Processing for Remote Sensing applications.]]></description>
										<content:encoded><![CDATA[
<p>Niloofar is currently a MASc student in Systems Design Engineering, co-supervised by Prof. David Clausi and Prof. Linlin Xu at the University of Waterloo. She is a member of the Vision and Image Processing (VIP) Lab’s Remote Sensing Group, and her research interests include Machine Learning and Image Processing for Remote Sensing applications.</p>



<p>Email: n2azad@uwaterloo.ca</p>



<p>Linkedin: <a href="https://www.linkedin.com/in/niloofar-azad/">https://www.linkedin.com/in/niloofar-azad/</a></p>


<div class="lazyblock-supervisors-1dxjWq 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/l-xu/>Linlin Xu</a></div>

<div class="lazyblock-research-interests-KSPjS 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>Machine Learning, Image Processing, Remote Sensing.
</div>

<div class="lazyblock-research-2KCfP 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/image-segmentation-classification/>Image Segmentation/Classification</a><br><a href=https://vip.uwaterloo.ca/remote-sensing/>Remote Sensing</a><br></div>


<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ryan Schmalenberg</title>
		<link>https://vip.uwaterloo.ca/ryan-schmalenberg/</link>
		
		<dc:creator><![CDATA[Ryan Schmalenberg]]></dc:creator>
		<pubDate>Sat, 02 Nov 2024 19:15:46 +0000</pubDate>
				<category><![CDATA[Alumni]]></category>
		<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[John Zelek]]></category>
		<category><![CDATA[M.A.Sc.]]></category>
		<category><![CDATA[M.A.Sc. Grad Date: 2024]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=3837</guid>

					<description><![CDATA[Hi, my name is Ryan Schmalenberg. I am a graduate of the Master of Applied Science program in Systems Design Engineering. My work in the VIP lab relates to 3D computer vision through camera calibration, and is specifically related to validating methods for accurate camera calibration from out-of-focus images, which is required for long focal length cameras.]]></description>
										<content:encoded><![CDATA[
<p>Hi, my name is Ryan Schmalenberg. I am a graduate of the Master of Applied Science program in Systems Design Engineering. My work in the VIP lab relates to 3D computer vision through camera calibration, and is specifically related to validating methods for accurate camera calibration from out-of-focus images, which is required for long focal length cameras.</p>



<p>Email: rnschmal [at] uwaterloo [dot] ca<br>LinkedIn: <a href="http://www.linkedin.com/in/ryan-schmalenberg" data-type="link" data-id="www.linkedin.com/in/ryan-schmalenberg">www.linkedin.com/in/ryan-schmalenberg</a><br>GitHub: <a href="https://github.com/Engnation">https://github.com/Engnation</a><br>Thesis: <a href="https://hdl.handle.net/10012/21120">https://hdl.handle.net/10012/21120</a></p>


<div class="lazyblock-research-1ph4V6 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></div>

<div class="lazyblock-publications-ZvEl07 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(57330627600);

    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>


<p></p>


<div class="lazyblock-research-interests-Z2eMJn0 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>My research interests lie at the intersection of computer vision, robotics and deep neural networks with a particular focus on exploring extensions of real-world conditions through simulations.</div>

<div class="lazyblock-supervisors-2syvQr 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/j-zelek/>John Zelek</a></div>


<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Liam Salass</title>
		<link>https://vip.uwaterloo.ca/liam-salass/</link>
		
		<dc:creator><![CDATA[Liam Salass]]></dc:creator>
		<pubDate>Mon, 07 Oct 2024 20:21:29 +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>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=4009</guid>

					<description><![CDATA[Liam is a Master of Applied Science candidate in System Design Engineering at Waterloo. He completed his undergraduate studies at Queen's University's Smith School of Engineering in Computer Engineering. Liam's previous research as an undergrad was in 6 degrees of freedom pose estimation as part of the RCVLab. Currently, Liam is contributing to the sports analytics research group (SARG) in VIP Lab.]]></description>
										<content:encoded><![CDATA[
<p>Liam is a Master of Applied Science candidate in <a href="https://uwaterloo.ca/systems-design-engineering/" target="_blank" rel="noreferrer noopener">System Design Engineering at Waterloo</a>. He completed his undergraduate studies at Queen&#8217;s University&#8217;s <a href="https://smithengineering.queensu.ca/" target="_blank" rel="noreferrer noopener">Smith School of Engineering</a> in Computer Engineering. Liam&#8217;s previous research as an undergrad was in 6 degrees of freedom pose estimation as part of the <a href="https://rcvlab.engineering.queensu.ca/people/" target="_blank" rel="noreferrer noopener">RCVLab</a>. Currently, Liam is contributing to the sports analytics research group (SARG) in VIP Lab.</p>



<p><strong>Email: </strong><a href="mailto:liam.salass@uwaterloo.ca">liam.salass@uwaterloo.ca</a><br><strong>Github:</strong> <a href="https://github.com/Liamsalass">https://github.com/Liamsalass</a><br><strong>LinkedIn: </strong><a href="https://www.linkedin.com/in/liamsalass/">(26) Liam Salass | LinkedIn</a></p>


<div class="lazyblock-research-interests-Z1LzBbr 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>&#8212;&#8212;-</div>

<div class="lazyblock-supervisors-ZwSp9E 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-publications-1K42H2 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>


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