<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>research on Wouter Bulten</title>
    <link>https://www.wouterbulten.nl/tags/research/</link>
    <description>Recent content in research on Wouter Bulten</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <copyright>Copyright Wouter Bulten (except otherwise noted) &amp;copy; 2023 • All rights reserved.
</copyright>
    <lastBuildDate>Thu, 13 Jan 2022 00:00:00 +0000</lastBuildDate><atom:link href="https://www.wouterbulten.nl/tags/research/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>AI for diagnosis of prostate cancer: the PANDA challenge</title>
      <link>https://www.wouterbulten.nl/posts/panda-challenge/</link>
      <pubDate>Thu, 13 Jan 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.wouterbulten.nl/posts/panda-challenge/</guid>
      <description>Artificial intelligence (AI) for prostate cancer analysis is ready for clinical implementation, shows a global programming competition, the PANDA challenge.</description>
      <content:encoded><![CDATA[<p>What happens if you publicly release more than 10.000 biopsies to challenge AI developers around the world? Is AI for pathology ready for clinical implementation? How powerful are challenges in catalyzing new AI developments? Do algorithms trained on EU data and reference standards generalize to US settings? Can you compare algorithms across different continents and reference standards? In our latest research, now published in <a href="https://www.nature.com/articles/s41591-021-01620-2">Nature Medicine</a>, we aimed to address these questions.</p>
<h2 id="introduction">Introduction</h2>
<p>Artificial intelligence (AI) has shown promise for diagnosing prostate cancer in biopsies.<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup><sup>,</sup><sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup><sup>,</sup><sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup><sup>,</sup><sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup><sup>,</sup><sup id="fnref:5"><a href="#fn:5" class="footnote-ref" role="doc-noteref">5</a></sup> For example, in my Ph.D. research, we have shown that <a href="https://www.wouterbulten.nl/posts/automated-gleason-grading-deep-learning/">AI can grade prostate cancer at the level of experienced pathologists</a> and can also <a href="https://www.wouterbulten.nl/posts/potential-of-ai-in-medicine-improving-prostate-cancer-diagnosis/">support them during their review</a>. However, results have generally been limited to individual studies, lacking validation in multinational settings. Competitions (&ldquo;Challenges&rdquo;) have been shown to be accelerators for medical imaging innovations, with the <a href="https://camelyon16.grand-challenge.org/">CAMELYON challenge</a> being a prime example. Though, the impact of challenges is often hindered by a lack of reproducibility and independent validation.</p>
<p>For the 1.3 million new prostate cancer patients yearly, the Gleason grade of their biopsies is a crucial element for treatment planning. Pathologists characterize tumors into different Gleason growth patterns based on the histologic architecture of the tumor tissue. Based on the distribution of Gleason patterns, biopsy specimens are categorized into one of five groups, with a higher number denoting a worse outlook for the patient. Unfortunately, this process is subjective as pathologists frequently differ in their assessments. This could have significant consequences for a patient, for example leading to undergrading and overgrading of prostate cancer.</p>
<!-- <figure class="post-image lazyload">
    <img loading="lazy" src="/assets/images/gleason-grading/panda_logo_square.png"/> 
</figure>
 -->
<p>With a large team from Radboud University Medical Center, Karolinska Institute, Tampere University, Google Health, and Kaggle, we have organized the <strong><a href="https://panda.grand-challenge.org">PANDA challenge</a></strong>: <i><strong>P</strong>rostate c<strong>AN</strong>cer gra<strong>D</strong>e <strong>A</strong>ssessment using the Gleason grading system</i>. We aimed to set the next step in automated Gleason grading for prostate cancer with this new challenge.</p>
<p>For the PANDA challenge, we released all training data of two major studies<sup id="fnref1:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup><sup>,</sup><sup id="fnref1:5"><a href="#fn:5" class="footnote-ref" role="doc-noteref">5</a></sup> on automated Gleason grading, both previously published in <em>Lancet Oncology</em>. The training set contained almost <strong>11.000 prostate biopsies</strong>, with slide-level labels and label masks. During the competition, <strong>1010 teams with a total of 1290 developers from 65 countries</strong> joined the challenge. With these numbers, the PANDA challenge is, to the best of our knowledge, the largest challenge organized for pathology to date.</p>
<p>The challenge results are now available online in our paper <em>AI for diagnosis and Gleason grading of prostate cancer: the PANDA challenge</em> as published in <a href="https://www.nature.com/articles/s41591-021-01620-2">Nature Medicine</a>.</p>
<figure>
    <img loading="lazy" src="/assets/images/gleason-grading/panda_challenge_results.png"
         alt="With more than 10.000 images for training and over one thousands participants, the PANDA challenge was the largest challenge organized for pathology to date."/> <figcaption>
            <p>With more than 10.000 images for training and over one thousands participants, the PANDA challenge was the largest challenge organized for pathology to date.</p>
        </figcaption>
</figure>

<h2 id="setup-of-the-challenge">Setup of the challenge</h2>
<p>The main goal for all challenge participants was to design an algorithm that could automatically assign a Gleason grade group to a biopsy specimen. There was no limitation on the chosen methods. Still, teams had to follow some instructions to make sure they could correctly load the biopsies during evaluations.</p>
<p>Unique to the PANDA challenge was the way the study was set up. We wanted to make sure there was no room for &ldquo;cheating,&rdquo; and that results would be translatable to other datasets and settings. In many previous challenges, test data is released, and participants needed to submit their algorithms predictions to a central system. Even with the ground truth labels hidden, there is a risk that teams will tune their algorithm to the test data or even hand labeling the data themselves. Therefore, we asked teams to submit their algorithms instead. The test data was kept private at all times.</p>
<p>Throughout the competition, teams could request evaluations of their algorithm on the public leader board. This was done by submitting a new version of their algorithm. The algorithms were then simultaneously blindly validated on the private set. The algorithms were required to analyze 1000 biopsies within 6 hours for this process, but most algorithms needed less time than that.</p>
<figure class="inline-figure">
    <img loading="lazy" src="/assets/images/gleason-grading/panda_method_world.png"
         alt="More than a thousand developers from 65 different countries joined the challenge."/> <figcaption>
            <p>More than a thousand developers from 65 different countries joined the challenge.</p>
        </figcaption>
</figure>

<p>After the competition ended, we selected fifteen teams to join for extensive independent validation of their algorithms on new data. The selection was based on the score on the final leaderboard and method description, and scientific contribution. The latter criteria were used to ensure we had a good representation of algorithms for the analysis.</p>
<p>We reproduced these fifteen algorithms fully in separate cloud systems without the original developers. This made sure we evaluated the algorithms as-is, without any additional tuning. We then applied the algorithms to the new data from the EU<sup id="fnref2:5"><a href="#fn:5" class="footnote-ref" role="doc-noteref">5</a></sup> and the US<sup id="fnref1:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>. The challenge, combined with these additional evaluations, resulted in a total of <strong>32.137.756 biopsies processed</strong> by the algorithms. As with the public/private leaderboard data, we kept the data from the extended validations secret. In fact, the teams did not even know that their algorithms would be analyzed on this data when they designed them. We tried to simulate &ldquo;AI in the wild&rdquo; with this setup, as in real-life scenarios, algorithms will also be applied to completely unseen and new data.</p>
<figure class="lazyload img-fluid">
    <img loading="lazy" src="/assets/images/gleason-grading/panda_method.png"
         alt="Setup of the challenge was split in two phases: A competition phase (the actual challenge), and a validation phase where the top algorithms were evaluated on new data."/> <figcaption>
            <p>Setup of the challenge was split in two phases: A competition phase (the actual challenge), and a validation phase where the top algorithms were evaluated on new data.</p>
        </figcaption>
</figure>

<h2 id="crowdsourced-ai">Crowdsourced AI</h2>
<p>Challenges are often a powerful way of crowdsourcing new AI innovations. The PANDA challenge was no exception: Due to the scale of the competition, after ten days, one of the algorithms was already at the level of the average pathologist. In the remainder of the challenge, many teams caught up and improved further. This speed in development was also driven by extensive sharing of tips and tricks through the challenge forums.</p>
<figure class="img-fluid lazyload">
    <img loading="lazy" src="/assets/images/gleason-grading/competition_overview_highscore.png"
         alt="Within ten days of the competition the first agreement achieved pathologist-level performance (defined as agreement of 0.9 or higher with the reference standard."/> <figcaption>
            <p>Within ten days of the competition the first agreement achieved pathologist-level performance (defined as agreement of 0.9 or higher with the reference standard.</p>
        </figcaption>
</figure>

<figure class="img-fluid lazyload">
    <img loading="lazy" src="/assets/images/gleason-grading/competition_overview_medianscore.png"
         alt="Due to intensive discussions on the challenge forum on how to best approach the problem, many teams quickly achieved high performing algorithms."/> <figcaption>
            <p>Due to intensive discussions on the challenge forum on how to best approach the problem, many teams quickly achieved high performing algorithms.</p>
        </figcaption>
</figure>

<blockquote>
<p>A complete discussion of all results is out of the scope of this blog post; for that, I recommend checking our <a href="https://www.nature.com/articles/s41591-021-01620-2">paper</a>, which is Open Access. In the paper, we compare the algorithms on several datasets and two pathologists panels. We also dive deeper into the question of whether it&rsquo;s actually feasible to evaluate algorithms across datasets with different reference standards.</p>
</blockquote>
<p>Our main results from the validation phase can be summarized as follows: We found that the AI algorithms successfully generalized across different patient populations, laboratories, and reference standards. Although only trained using data from EU pathologists and never tuned to new data, the algorithms retained their performance compared to pathologists from the US. This is an exciting result as it shows that AI is ready for clinical implementation.</p>
<p>In the <a href="https://www.nature.com/articles/s41591-021-01620-2">paper</a> we report more results on all datasets and show how these algorithms hold up compared to different panels of pathologists.</p>
<h2 id="acessing-the-panda-dataset">Acessing the PANDA dataset</h2>
<p>We made the entire training set of 10,616 digitized de-identified H&amp;E stained prostate biopsies (383GB) publicly available for further non-commercial research. The data can be used under a Creative Commons BY-SA-NC 4.0 license. To adhere to the &ldquo;Attribution&rdquo; part of the license, we ask anyone who uses the data to cite the corresponding paper (see <a href="#acknowledgements">Acknowledgements</a>). In addition, you can also cite the two papers<sup id="fnref2:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup><sup>,</sup><sup id="fnref3:5"><a href="#fn:5" class="footnote-ref" role="doc-noteref">5</a></sup> that describe the original data collection.</p>
<p>The latest information about downloading and using the PANDA dataset is available on the <a href="https://panda.grand-challenge.org/">PANDA Challenge website</a>. For now, the quickest way to access the data is through the <a href="https://www.kaggle.com/c/prostate-cancer-grade-assessment/data">competition on Kaggle</a>.</p>
<img src="/assets/images/gleason-grading/competition-biopsy-cover-image.jpg" class="img-fluid lazyload" caption="Central question during the challenge: Can you build a system to predict the grade group for this biopsy?">
<h2 id="using-the-panda-dataset">Using the PANDA dataset</h2>
<p>To quickly get started with the PANDA dataset, we made a Jupyter notebook with some examples. You can find this notebook in our <a href="https://github.com/DIAGNijmegen/panda-challenge/blob/main/notebooks/getting-started-with-the-panda-dataset.ipynb">Github repository</a> or try it out directly on <a href="https://www.kaggle.com/wouterbulten/getting-started-with-the-panda-dataset/notebook">Kaggle</a>.</p>
<p>If you want a quick start, you can read a patch from one of the slides with a few lines of Python and OpenSlide:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">os</span>
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">openslide</span>
</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">IPython.display</span> <span class="kn">import</span> <span class="n">Image</span><span class="p">,</span> <span class="n">display</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Open the image (does not yet read the image into memory)</span>
</span></span><span class="line"><span class="cl"><span class="n">image</span> <span class="o">=</span> <span class="n">openslide</span><span class="o">.</span><span class="n">OpenSlide</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">data_dir</span><span class="p">,</span> <span class="s1">&#39;005e66f06bce9c2e49142536caf2f6ee.tiff&#39;</span><span class="p">))</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Read a specific region of the image starting at the upper left coordinate (x=17800, y=19500) on level 0 and extract a 256*256 pixel patch.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># At this point image data is read from the file and loaded into memory.</span>
</span></span><span class="line"><span class="cl"><span class="n">patch</span> <span class="o">=</span> <span class="n">image</span><span class="o">.</span><span class="n">read_region</span><span class="p">((</span><span class="mi">17800</span><span class="p">,</span><span class="mi">19500</span><span class="p">),</span> <span class="mi">0</span><span class="p">,</span> <span class="p">(</span><span class="mi">256</span><span class="p">,</span> <span class="mi">256</span><span class="p">))</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Display the image</span>
</span></span><span class="line"><span class="cl"><span class="n">display</span><span class="p">(</span><span class="n">patch</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Close the opened slide after use</span>
</span></span><span class="line"><span class="cl"><span class="n">image</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</span></span></code></pre></div><p>After running the snippet above, you should see the following (a single patch):</p>
<figure class="lazyload">
    <img loading="lazy" src="/assets/images/gleason-grading/panda_patch_example.png"/> 
</figure>

<h2 id="want-to-try-a-late-submission">Want to try a late submission?</h2>
<p>It&rsquo;s still possible to participate in the challenge and evaluate your algorithm on the internal validation set. Please go to the <a href="https://www.kaggle.com/c/prostate-cancer-grade-assessment">competition page</a> on <a href="https://www.kaggle.com/c/prostate-cancer-grade-assessment">Kaggle</a> for more information about these late submissions. Note that you will need to submit a working algorithm to receive a score on the test set.</p>
<h2 id="acknowledgements">Acknowledgements</h2>
<p>What started with a small email in 2019 ended up in a vast project that spanned over two years. The PANDA challenge has been a group effort by researchers, pathologists, technicians, developers, and many others.</p>
<p><strong>Author list</strong>: Wouter Bulten, Kimmo Kartasalo, Po-Hsuan Cameron Chen, Peter Ström, Hans Pinckaers, Kunal Nagpal, Yuannan Cai, David F. Steiner, Hester van Boven, Robert Vink, Christina Hulsbergen-van de Kaa, Jeroen van der Laak, Mahul B. Amin, Andrew J. Evans, Theodorus van der Kwast, Robert Allan, Peter A. Humphrey, Henrik Grönberg, Hemamali Samaratunga, Brett Delahunt, Toyonori Tsuzuki, Tomi Häkkinen, Lars Egevad, Maggie Demkin, Sohier Dane, Fraser Tan, Masi Valkonen, Greg S. Corrado, Lily Peng, Craig H. Mermel, Pekka Ruusuvuori, Geert Litjens, Martin Eklund and the PANDA Challenge consortium.</p>
<p>Please use the following to refer to our paper or this post:</p>
<blockquote>
<p>Bulten, W., Kartasalo, K., Chen, PH.C. et al. Artificial intelligence for diagnosis and Gleason grading of prostate cancer: the PANDA challenge. Nat Med (2022). <a href="https://doi.org/10.1038/s41591-021-01620-2">https://doi.org/10.1038/s41591-021-01620-2</a></p>
</blockquote>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-tex" data-lang="tex"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">@article<span class="nb">{</span>Bulten2022,
</span></span><span class="line"><span class="cl">  doi = <span class="nb">{</span>10.1038/s41591-021-01620-2<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  url = <span class="nb">{</span>https://doi.org/10.1038/s41591-021-01620-2<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  year = <span class="nb">{</span>2022<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  month = jan,
</span></span><span class="line"><span class="cl">  publisher = <span class="nb">{</span>Springer Science and Business Media <span class="nb">{</span>LLC<span class="nb">}}</span>,
</span></span><span class="line"><span class="cl">  author = <span class="nb">{</span>Wouter Bulten and Kimmo Kartasalo and Po-Hsuan Cameron Chen and Peter Str<span class="k">\&#34;</span><span class="nb">{</span>o<span class="nb">}</span>m and Hans Pinckaers and Kunal Nagpal and Yuannan Cai and David F. Steiner and Hester van Boven and Robert Vink and Christina Hulsbergen-van de Kaa and Jeroen van der Laak and Mahul B. Amin and Andrew J. Evans and Theodorus van der Kwast and Robert Allan and Peter A. Humphrey and Henrik Gr<span class="k">\&#34;</span><span class="nb">{</span>o<span class="nb">}</span>nberg and Hemamali Samaratunga and Brett Delahunt and Toyonori Tsuzuki and Tomi H<span class="k">\&#34;</span><span class="nb">{</span>a<span class="nb">}</span>kkinen and Lars Egevad and Maggie Demkin and Sohier Dane and Fraser Tan and Masi Valkonen and Greg S. Corrado and Lily Peng and Craig H. Mermel and Pekka Ruusuvuori and Geert Litjens and Martin Eklund and <span class="nb">{</span>The PANDA challenge consortium<span class="nb">}}</span>,
</span></span><span class="line"><span class="cl">  title = <span class="nb">{</span>Artificial intelligence for diagnosis and Gleason grading of prostate cancer: the <span class="nb">{</span>PANDA<span class="nb">}</span> challenge<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  journal = <span class="nb">{</span>Nature Medicine<span class="nb">}</span>
</span></span><span class="line"><span class="cl"><span class="nb">}</span>
</span></span></code></pre></div><div class="post-info-frame">
    <figure>
     <img src="/images/pdh_thesis_wouterbulten_graphic.png" loading="lazy" alt="Artificial intelligence as a digital fellow in pathology: human-machine synergy for improved prostate cancer diagnosis"></a>
    </figure>
    
    <h2>Series on my PhD in Computational Pathology</h2>
    
    <p>This post is part of a series related to my PhD project on prostate cancer, deep learning and computational pathology. In my research I developed AI algorithms to diagnose prostate cancer. Interested in the rest of my research? The three latest post are shown below. For all the posts, you can find <a href="/tags/research">all posts tagged with research</a>.</p>
        
    <h3>Latest post related to my research</h3>
    <ul>
    
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/improve-prostate-cancer-diagnosis-panda-challenge/">Improve prostate cancer diagnosis: participate in the PANDA Gleason grading challenge</a></h3>
            <p><small>Can you build a deep learning model that can accurately grade protate biopsies? Participate in the PANDA challenge </small></o>
        </li>
     
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/potential-of-ai-in-medicine-improving-prostate-cancer-diagnosis/">The potential of AI in medicine: AI-assistance improves prostate cancer grading</a></h3>
            <p><small>In a completely new study we investigated the possible benefits of an AI system for pathologists. Instead of focussing on pathologist-versus-AI, we instead look at potential pathologist-AI synergy.</small></o>
        </li>
     
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/prostate-epithelium-segmentation-deep-learning-immunohistochemistry/">Epithelium segmentation using deep learning and immunohistochemistry</a></h3>
            <p><small>We developed a new deep learning method to segment epithelial tissue in digitized hematoxylin and eosin (H&amp;E) stained prostatectomy slides using immunohistochemistry (IHC) as reference standard.</small></o>
        </li>
     
    </ul>

    <h3>Deep learning posts</h3>
    <p>Sometimes I write a blog post on deep learning or related techniques. The latest posts are shown below. Interested in reading all my blog posts? You can read them on my tech blog.</p>

    <ul>
        
        

        
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/data-augmentation-using-tensorflow-data-dataset/">Simple and efficient data augmentations using the Tensorfow tf.Data and Dataset API</a></h3>
                <p><small>The tf.data API of Tensorflow is a great way to build a pipeline for sending data to the GPU. In this post I give a few examples of augmentations and how to implement them using this API.</small></o>
            </li>
         
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/getting-started-with-gans-2-colorful-mnist/">Getting started with GANs Part 2: Colorful MNIST</a></h3>
                <p><small>In this post we build upon part 1 of &#39;Getting started with generative adversarial networks&#39; and work with RGB data instead of monochrome. We apply a simple technique to map MNIST images to RGB.</small></o>
            </li>
         
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/getting-started-with-generative-adversarial-networks/">Getting started with generative adversarial networks (GAN)</a></h3>
                <p><small>Generative Adversarial Networks (GANs) are one of the hot topics within Deep Learning right now and are applied to various tasks. In this post I&#39;ll walk you through the first steps of building your own adversarial network with Keras and MNIST.</small></o>
            </li>
         
    </ul>
</div>
<h2 id="references">References</h2>
<script type="application/ld+json">
{
   "@context": "http://schema.org/",
   "@type":"Dataset",
   "name":"PANDA Challenge dataset",
   "description":"Whole-slide images of digitized prostate biopsies, released as part of the PANDA challenge.",
   "url":"https://www.wouterbulten.nl/posts/panda-challenge/",
   "sameAs":"https://panda.grand-challenge.org/",
   "identifier": "https://doi.org/10.1038/s41591-021-01620-2",
   "license" : "https://creativecommons.org/licenses/by-nc-sa/4.0/",
   "keywords":[
       "pathology", "computational pathology", "prostate cancer", "epithelium", "deep learning", "H&E"
    ],
  "creator": [
      {
          "@type": "Person",
          "sameAs": "https://orcid.org/0000-0002-6129-5039",
          "givenName": "Wouter",
          "familyName": "Bulten",
          "name": "Wouter Bulten"
      },
      {
          "@type": "Person",
          "sameAs": "https://orcid.org/0000-0003-1554-1291",
          "givenName": "Geert",
          "familyName": "Litjens",
          "name": "Geert Litjens"
      },
      {
          "@type": "Person",
          "sameAs": "https://orcid.org/0000-0002-9470-4783",
          "givenName": "Kimmo",
          "familyName": "Kartasalo",
          "name": "Kimmo Kartasalo"
      },
      {
          "@type": "Person",
          "sameAs": "https://orcid.org/0000-0001-5032-5266",
          "givenName": "Martin",
          "familyName": "Eklund",
          "name": "Martin Eklund"
      },
      {
       "@type":"Organization",
       "url": "https://www.computationalpathologygroup.eu/",
       "name":"Computational Pathology Group, Radboud University Medical Center"
       },
      {
       "@type":"Organization",
       "url": "https://ki.se/en",
       "name":"Department of Medical Epidemiology and Biostatistics, Karolinska Institutet"
       }
  ],
  "citation": "https://doi.org/10.1038/s41591-021-01620-2"
  }
</script><blockquote>
</blockquote>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p><a href="https://www.wouterbulten.nl/posts/potential-of-ai-in-medicine-improving-prostate-cancer-diagnosis/">The potential of AI in medicine: AI-assistance improves prostate cancer grading</a>&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Steiner, D. F. et al. Evaluation of the Use of Combined Artificial Intelligence and Pathologist Assessment to Review and Grade Prostate Biopsies. JAMA Network Open 3, e2023267 (2020). <a href="https://jamanetwork.com/journals/jamanetworkopen/fullarticle/2772831">Read online</a>&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a>&#160;<a href="#fnref1:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>Bulten, W. et al. Artificial intelligence assistance significantly improves Gleason grading of prostate biopsies by pathologists. Modern Pathology (2020) <a href="https://www.nature.com/articles/s41379-020-0640-y">Read online</a>&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p>Bulten, W. et al. Automated deep-learning system for Gleason grading of prostate cancer using biopsies: a diagnostic study. The Lancet Oncology 21, 233-241, <a href="https://doi.org/10.1016/S1470-2045(19)30739-9">Read online</a> (2020).&#160;<a href="#fnref:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a>&#160;<a href="#fnref1:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a>&#160;<a href="#fnref2:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:5">
<p>Ström, P. et al. Artificial intelligence for diagnosis and grading of prostate cancer in biopsies: a population-based, diagnostic study. The Lancet Oncology 21, 222-232, <a href="https://doi.org/10.1016/S1470-2045(19)30738-7">Read online</a> (2020).&#160;<a href="#fnref:5" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a>&#160;<a href="#fnref1:5" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a>&#160;<a href="#fnref2:5" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a>&#160;<a href="#fnref3:5" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
    </item>
    
    <item>
      <title>Improve prostate cancer diagnosis: participate in the PANDA Gleason grading challenge</title>
      <link>https://www.wouterbulten.nl/posts/improve-prostate-cancer-diagnosis-panda-challenge/</link>
      <pubDate>Thu, 09 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.wouterbulten.nl/posts/improve-prostate-cancer-diagnosis-panda-challenge/</guid>
      <description>Can you build a deep learning model that can accurately grade protate biopsies? Participate in the PANDA challenge </description>
      <content:encoded><![CDATA[<p>With 1.1 million new diagnoses every year, prostate cancer (PCa) is second most common cancer among males worldwide. The biopsy Gleason grading system is the strongest prognostic marker for prostate cancer but suffers from significant inter-observer variability, limiting its usefulness for individual patients.</p>
<p>Automated deep learning systems have shown promise in accurately grading prostate cancer<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup><sup>,</sup><sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>. Several studies have shown that these systems can achieve pathologist-level performance, including <a href="https://www.wouterbulten.nl/posts/automated-gleason-grading-deep-learning/">my own research on automated Gleason grading</a>. These developments have the potential to <a href="https://www.wouterbulten.nl/posts/potential-of-ai-in-medicine-improving-prostate-cancer-diagnosis/">assisting pathologists in their diagnostic process</a>. However, A large multi-center evaluation on diagnostic data is still missing.</p>
<p><strong>Do you want to help us to improve prostate cancer diagnosis?</strong></p>
<h2 id="the-panda-challenge">The PANDA challenge</h2>
<p>Researchers and staff from Radboud Universiy Medical Center, Karolinska Institutet, Tampere University and Kaggle are organizing the PANDA challenge: <strong>P</strong>rostate c<strong>AN</strong>cer gra<strong>D</strong>e <strong>A</strong>ssessment using the Gleason grading system. With this challenge we aim to set the next step in automated Gleason grading for prostate cancer.</p>
<p>For this challenge, we are releasing all training data of two major studies<sup id="fnref1:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup><sup>,</sup><sup id="fnref1:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> on automated Gleason grading, both previously published in <em>Lancet Oncology</em>. The training set contains almost <strong>11.000 prostate biopsies</strong>, with slide level labels and label masks. All submitted methods are evaluated on a private set of around 500 biopsies, split between public and private leaderboard.</p>
<p>The top three teams are eligble for a cash prize. The total amount of prize money available for the challenge is $25.000. Additionally, we will invite five teams to present their method the challenge workshop at MICCAI 2020.</p>
<blockquote>
<p>After the challenge, the data can also be used for other research. We will release the data under a <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY-NC-SA</a> license. We ask challenge participants to respect an embargo until the challenge paper has been published. After the embargo is lifted, participants are free to publish their own results.</p>
</blockquote>
<img src="/assets/images/gleason-grading/competition-biopsy-cover-image.jpg" class="img-fluid lazyload" caption="Can you build a system to predict the ISUP grade for this biopsy?">
<h2 id="how-to-participate">How to participate</h2>
<p>To participate in the challenge, please go to the <a href="https://www.kaggle.com/c/prostate-cancer-grade-assessment">competition page</a> on <a href="https://www.kaggle.com/c/prostate-cancer-grade-assessment">Kaggle</a> for more information. All challenge data can be downloaded from the Kaggle platform.</p>
<p>Please signup up <strong>before July 15th</strong> to participate in the challenge. The final submission must be submitted July 22th the latest.</p>
<p><a href="https://www.kaggle.com/c/prostate-cancer-grade-assessment" class="btn btn-primary">Join the PANDA challenge</a></p>
<h2 id="miccai-2020-workshop">MICCAI 2020 Workshop</h2>
<figure class="post-image lazyload">
    <img loading="lazy" src="/assets/images/gleason-grading/miccai-2020-logo.png"/> 
</figure>

<p>The PANDA challenge is part of the <a href="https://www.miccai2020.org/en/">MICCAI 2020</a> conference. During MICCAI, we will host a workshop on the challenge and the overall results. Up to five teams will be invited to present their method. We will select teams for a presentations mostly based on ranking, but can deviate to diversify in the methods presented.</p>
<div class="post-info-frame">
    <figure>
     <img src="/images/pdh_thesis_wouterbulten_graphic.png" loading="lazy" alt="Artificial intelligence as a digital fellow in pathology: human-machine synergy for improved prostate cancer diagnosis"></a>
    </figure>
    
    <h2>Series on my PhD in Computational Pathology</h2>
    
    <p>This post is part of a series related to my PhD project on prostate cancer, deep learning and computational pathology. In my research I developed AI algorithms to diagnose prostate cancer. Interested in the rest of my research? The three latest post are shown below. For all the posts, you can find <a href="/tags/research">all posts tagged with research</a>.</p>
        
    <h3>Latest post related to my research</h3>
    <ul>
    
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/panda-challenge/">AI for diagnosis of prostate cancer: the PANDA challenge</a></h3>
            <p><small>Artificial intelligence (AI) for prostate cancer analysis is ready for clinical implementation, shows a global programming competition, the PANDA challenge.</small></o>
        </li>
     
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/potential-of-ai-in-medicine-improving-prostate-cancer-diagnosis/">The potential of AI in medicine: AI-assistance improves prostate cancer grading</a></h3>
            <p><small>In a completely new study we investigated the possible benefits of an AI system for pathologists. Instead of focussing on pathologist-versus-AI, we instead look at potential pathologist-AI synergy.</small></o>
        </li>
     
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/prostate-epithelium-segmentation-deep-learning-immunohistochemistry/">Epithelium segmentation using deep learning and immunohistochemistry</a></h3>
            <p><small>We developed a new deep learning method to segment epithelial tissue in digitized hematoxylin and eosin (H&amp;E) stained prostatectomy slides using immunohistochemistry (IHC) as reference standard.</small></o>
        </li>
     
    </ul>

    <h3>Deep learning posts</h3>
    <p>Sometimes I write a blog post on deep learning or related techniques. The latest posts are shown below. Interested in reading all my blog posts? You can read them on my tech blog.</p>

    <ul>
        
        

        
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/data-augmentation-using-tensorflow-data-dataset/">Simple and efficient data augmentations using the Tensorfow tf.Data and Dataset API</a></h3>
                <p><small>The tf.data API of Tensorflow is a great way to build a pipeline for sending data to the GPU. In this post I give a few examples of augmentations and how to implement them using this API.</small></o>
            </li>
         
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/getting-started-with-gans-2-colorful-mnist/">Getting started with GANs Part 2: Colorful MNIST</a></h3>
                <p><small>In this post we build upon part 1 of &#39;Getting started with generative adversarial networks&#39; and work with RGB data instead of monochrome. We apply a simple technique to map MNIST images to RGB.</small></o>
            </li>
         
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/getting-started-with-generative-adversarial-networks/">Getting started with generative adversarial networks (GAN)</a></h3>
                <p><small>Generative Adversarial Networks (GANs) are one of the hot topics within Deep Learning right now and are applied to various tasks. In this post I&#39;ll walk you through the first steps of building your own adversarial network with Keras and MNIST.</small></o>
            </li>
         
    </ul>
</div>
<h2 id="references">References</h2>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Bulten, W. et al. Automated deep-learning system for Gleason grading of prostate cancer using biopsies: a diagnostic study. The Lancet Oncology 21, 233-241, <a href="https://doi.org/10.1016/S1470-2045(19)30739-9">Read online</a> (2020).&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a>&#160;<a href="#fnref1:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Ström, P. et al. Artificial intelligence for diagnosis and grading of prostate cancer in biopsies: a population-based, diagnostic study. The Lancet Oncology 21, 222-232, <a href="https://doi.org/10.1016/S1470-2045(19)30738-7">Read online</a> (2020).&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a>&#160;<a href="#fnref1:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
    </item>
    
    <item>
      <title>The potential of AI in medicine: AI-assistance improves prostate cancer grading</title>
      <link>https://www.wouterbulten.nl/posts/potential-of-ai-in-medicine-improving-prostate-cancer-diagnosis/</link>
      <pubDate>Tue, 25 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.wouterbulten.nl/posts/potential-of-ai-in-medicine-improving-prostate-cancer-diagnosis/</guid>
      <description>In a completely new study we investigated the possible benefits of an AI system for pathologists. Instead of focussing on pathologist-versus-AI, we instead look at potential pathologist-AI synergy.</description>
      <content:encoded><![CDATA[<p><a name="introduction"></a></p>
<p>Within medicine, there is somewhat of an &ldquo;<strong>AI hype</strong>.&rdquo; Mainly driven by advances in deep learning, more and more studies show the potential of using artificial intelligence as a diagnostic tool. The same trend is present in the subfield I am working in. The field of pathology slowly transitions from being centered around microscopes to assessing tissue using a computer screen (i.e., <em>digital pathology</em>). With this change, computational models assisting the pathologist became within reach. A new field was born: <em>computational pathology</em>.</p>
<p>In recent years many studies have shown that deep learning-based tools can replicate histological tasks. For prostate cancer, the main topic of my Ph.D. project, detection models<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup><sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> have been around for some time and are slowly becoming available to the clinic.<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup> The next step is building AI systems that can perform prognostic tasks, such as grading cancer. The first steps have already been made in this direction. We recently published our work on <a href="https://www.wouterbulten.nl/posts/automated-gleason-grading-deep-learning/">AI-based grading for prostate cancer</a> in Lancet Oncology.<sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup> In the same issue, colleagues from Karolinska (Sweden) showed similar findings.<sup id="fnref:5"><a href="#fn:5" class="footnote-ref" role="doc-noteref">5</a></sup> These studies, and others,<sup id="fnref:6"><a href="#fn:6" class="footnote-ref" role="doc-noteref">6</a></sup> showed that AI systems can achieve pathologist-level performance, or even outperform pathologists (within the limits of the study setup).</p>
<p>Regardless of these results, the question remains <strong>how much benefit these systems actually offer to individual patients?</strong> Does outperforming pathologists, also mean that it improves the diagnostic process? Despite the merits of deep learning systems, they are also constrained by limitations that can have dramatic effects on the output of such systems. The presence of artifacts, which are very common in the field of pathology, can drastically alter a prediction of a deep learning system. A human observer would not be hindered by, for example, ink on slides or cutting artifacts, and at least flag the case as ungradable. A deep learning system without countermeasures against such artifacts could happily predict high-grade cancer, even if the tissue is benign.</p>
<p>In the end, AI algorithms be applied in the clinic and outside of a controlled research setting. In such applications a pathologist will be in the loop that actively uses the system, or, in the event of a fully automated system, has to sign-off on the cases. In other medical domains, such as radiology, this kind of integration has already been investigated.<sup id="fnref:7"><a href="#fn:7" class="footnote-ref" role="doc-noteref">7</a></sup> Interestingly, within pathology, <strong>research on pathologists actually using AI systems is limited</strong>. Moreover, most studies focus on the benefits of computer-aided detection, and not on prognostic measures such as grading cancer.</p>
<p>After completing our <a href="https://www.wouterbulten.nl/posts/automated-gleason-grading-deep-learning/">study on automated Gleason grading for prostate cancer</a>, we were curious to what extend our system could improve the diagnostic process. In a completely new study, now available Open Acccess through <a href="https://www.nature.com/articles/s41379-020-0640-y">Modern Pathology</a>, we investigated the possible benefits of an AI system for pathologists. <strong>Instead of focussing on pathologist-versus-AI, we instead look at potential pathologist-AI synergy.</strong></p>
<img src="/assets/images/gleason-grading/gleason_grading_ai_assistance_project_overview.png"  style="max-width: 100%;" class="lazyload" caption="Can pathologists benefit from AI-feedback? This was the central question in our study.">
<h2 id="ai-assistance-for-pathologists">AI assistance for pathologists</h2>
<p>When we developed the deep learning system, one of our design focusses was that the system should give interpretable output. Knowing the final diagnosis for a case is interesting, but it is more useful if a system can also show <strong>on what it based its decision</strong>. There are several ways to show output of a deep learning system<sup id="fnref:8"><a href="#fn:8" class="footnote-ref" role="doc-noteref">8</a></sup>. In our case, we do this by letting the system highlight prostate glands that it finds malignant. Each detected malignant gland is marked either yellow <span style="font-size: 18px; color: #edd9b3">☗</span>, orange <span style="font-size: 18px; color: #ed8d48">☗</span>, or red <span style="font-size: 18px; color: #e22b3f">☗</span>. This would make the inspection of the system&rsquo;s prediction easy and should benefit the final diagnose, so we assumed.</p>
<p>In our Lancet Oncology publication,<sup id="fnref1:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup> we showed that our deep learning system outperformed the manjority of the panel members. We, however, only compared the AI system to the panel. To investigate the integration of the AI system in the grading workflow of the pathologist, we invited the same panel to participate in a follow-up experiment. In total, 14 pathologists and residents joined our new study. The new experiment consisted of two reads: 1) the initial unassisted read as part of the Lancet Oncology publication, and 2) an AI-assisted read which occurred after a wash-out period.</p>
<figure class="lazyload">
    <img loading="lazy" src="/assets/images/gleason-grading/ai_assistance_study_setup.png"
         alt="Overview of the study design. In the first read, the panel graded all biopsies without assistance. In the second read, AI assistance was presented next to the biopsy."/> <figcaption>
            <p>Overview of the study design. In the first read, the panel graded all biopsies without assistance. In the second read, AI assistance was presented next to the biopsy.</p>
        </figcaption>
</figure>

<p>The unassisted read was already performed as part of the previous study. For the assisted read, we showed our panel of pathologists a set of 160 biopsies through an online viewer. Of these biopsies, 100 were part of the previous study; this way, we could compare performance between assisted and unassisted. The minimal time between reads was three months. The remaining 60 cases were used as controls.</p>
<p>For the pathologists, the difference between the two reads was the AI feedback. While in the unassisted read, panel members graded cases as they would normally. In the assisted read, we showed the output of the AI system next to the original biopsy (see figure, and <a href="#live-example">live example</a>). Additionally, the biopsy-level prediction of the system was also available to the panel (grade group and Gleason score).</p>
<p>For all of these biopsies, the reference standard was set by three uropathologists in consensus. Panel members determined the grade group of the biopsy, which we later compared to the reference standard.</p>
<h2 id="better-performance-lower-variability">Better performance, lower variability</h2>
<p>After the assisted read, the scores of the individual readers were compared across the two runs. As the primary metric, we used quadratically weighted <a href="https://en.wikipedia.org/wiki/Cohen%27s_kappa">Cohen&rsquo;s kappa</a>. Whereas in the unassisted read, the panel achieved a median score of 0.79, this increased to 0.87 in the AI-assisted read (an increase of almost 10%). Besides this increase, the variability of the panel members dropped; the interquartile range of the panel&rsquo;s kappa values dropped from 0.11 to 0.07.</p>
<p>Without assistance, the AI system outperformed 10 out of 14 observers (71%). In the assisted read, this flipped, and 9 out of 14 panel members exceeded the AI. On a group level, the <strong>AI-assisted pathologists outperformed not only the unassisted reads but also the AI itself</strong>.</p>
<figure class="lazyload">
    <img loading="lazy" src="/assets/images/gleason-grading/gleason_observer_boxplot_webfigure.svg"
         alt="Boxplot of the unassisted and AI-assisted read. In the unassited read (left), the performance of the system is higher than the median of the panel. In the assisted read (right), the panel outperforms both itself (unassisted) and the AI system."/> <figcaption>
            <p>Boxplot of the unassisted and AI-assisted read. In the unassited read (left), the performance of the system is higher than the median of the panel. In the assisted read (right), the panel outperforms both itself (unassisted) and the AI system.</p>
        </figcaption>
</figure>

<p>When split out on experience level, less experienced pathologists benefitted the most. Most of the pathologists who had more than 15 years of experience, already scored similar or better than the AI system and had less to gain in terms of diagnostic performance. Still, the AI could have helped them grade the cases faster, something we did not explicitly test.</p>
<h2 id="external-validation">External validation</h2>
<p>After the experiment on the internal dataset, we performed an additional experiment to test our hypothesis on external data. It is well known that the performance of deep learning systems can degrade when applied to unseen data. Additionally, by repeating our experiment, we were interested to see if the measured effects could be reproduced.</p>
<p>For this external validation, we made use of the Imagebase dataset,<sup id="fnref:9"><a href="#fn:9" class="footnote-ref" role="doc-noteref">9</a></sup> which consisted of 87 cases graded by 24 international experts in prostate pathology. The deep learning system was applied as-is to the dataset without any normalization of the data. The experiment was repeated in the same fashion: first an unassisted read, and, after a washout period, an assisted read with the AI predictions shown next to the original biopsy.</p>
<p>Of the 14 panel members, 12 joined the second experiment using the Imagebase dataset. In the unassisted read, the median pairwise agreement with the Imagebase panel was 0.73 (quadratically weighted Cohen’s kappa) and 9 out of the 11 panel members (75%) scored lower than the AI system. With AI assistance, the agreement increased significantly to 0.78 (p = 0.003), with the majority of the panel now outperforming the standalone AI system (10 out of 12, 83%). <strong>In contrast to the internal experiment, improvements could be seen for all but one of the panel members, with no clear effect of experience level.</strong></p>
<h2 id="looking-beyond-diagnostic-performance">Looking beyond diagnostic performance</h2>
<p>Besides diagnostic performance, other factors are essential to increase the adoption of AI techniques in the diagnostic process<sup id="fnref:10"><a href="#fn:10" class="footnote-ref" role="doc-noteref">10</a></sup>. Pathologists are often time-constrained and have high workloads. Any algorithm has to be easy to use and ideally speed up diagnosis. More research is welcome on how we can efficiently embed these new techniques in routine practice, especially in a field that is used to analog examination through microscopes.</p>
<p>In our study, we did not quantitatively measure the use of our system. Though, we did ask all panel members to fill in a survey regarding the grading process and their usage of the system. A summary of some of the findings:</p>
<ol>
<li>The majority of pathologists indicated that <strong>AI assistance sped up grading</strong>. It would be interesting to investigate the source of this time gain and to measure it quantitatively. Does it speed up finding the tumor? Makes it assessing tumor volumes faster?</li>
<li>The <strong>gland-level prediction of the system was found most useful</strong>. The case-level label the least. This suggests that there is an added benefit of showing AI feedback on the source level. More detailed feedback also allows for more interaction between AI systems and pathologists.</li>
<li>The majority of panel members <strong>would like to use an AI system</strong> during clinical practice.</li>
</ol>
<p>For the other survey questions and the pathologist&rsquo;s responses, please see the <a href="https://www.nature.com/articles/s41379-020-0640-y">full paper</a>.</p>
<h2 id="limitations-conclusion-and-future-outlook">Limitations, conclusion and future outlook</h2>
<p>With our research, we aimed to set a new (small) step towards the clinical adoption of AI systems within pathology. For prostate cancer specifically, we showed that AI assistance reduced the observer variability of Gleason grading. Something that is highly desirable, as it could result in a stronger prognostic marker for individual patients and reduces the effect of the diagnosing pathologist on potential treatment decisions.</p>
<p>Of course, there are limitations to our study that open up many avenues of future research. For example, in our main experiment, we tested only two reads with a fixed order. While we were able to reproduce the same effect in a second experiment, additional research with larger datasets is welcome. Specifically, it would be exciting to investigate the effect of AI assistance over a more extended period. Maybe the benefit of AI assistance wears out over time, as pathologists learn from the feedback and apply this knowledge to unassisted reads. It is also plausible that pathologists become faster as they get accustomed to the feedback of the system. Ultimately, systems such as ours should be evaluated on a patient-level, which allows for new approaches such as automatically prioritizing slides.</p>
<p>In any case, the future is exciting, both from the AI perspective as well as on the implementation side. The tools are there to improve cancer diagnosis even further.</p>
<h2 id="example-of-ai-feedback">Example of AI feedback</h2>
<figure>
<div id="openseadragon1" style="width: 100%; height: 400px; border: 2px solid #f4f4f4; padding: 10px;"></div>
<figcaption>Example case as presented to the pathologist. Left the original biopsy, right the biopsy with the gland-level AI feedback. You can zoom in by scrolling, moving around can be done with click&drag.</figcaption>
</figure>
<h2 id="acknowledgements">Acknowledgements</h2>
<p><strong>Author list</strong>: Wouter Bulten, Maschenka Balkenhol, Jean-Joël Awoumou Belinga, Américo Brilhante, Aslı Çakır, Lars Egevad, Martin Eklund, Xavier Farré, Katerina Geronatsiou, Vincent Molinié, Guilherme Pereira, Paromita Roy, Günter Saile, Paulo Salles, Ewout Schaafsma, Joëlle Tschui, Anne-Marie Vos, ISUP Pathology Imagebase Expert Panel, Hester van Boven, Robert Vink, Jeroen van der Laak, Christina Hulsbergen-van der Kaa &amp; Geert Litjens</p>
<p>This work was financed by a grant from the Dutch Cancer Society (KWF).</p>
<p>Please use the following to refer to our paper or this post:</p>
<blockquote>
<p>Bulten, W., Balkenhol, M., Belinga, J.A. et al. Artificial intelligence assistance significantly improves Gleason grading of prostate biopsies by pathologists. Mod Pathol (2020). <a href="https://doi.org/10.1038/s41379-020-0640-y">https://doi.org/10.1038/s41379-020-0640-y</a></p>
</blockquote>
<p>Or, if you prefer BibTeX:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-tex" data-lang="tex"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">@article<span class="nb">{</span>bulten2020artificial,
</span></span><span class="line"><span class="cl">  author=<span class="nb">{</span>Bulten, Wouter and Balkenhol, Maschenka and Belinga, Jean-Jo<span class="nb">{</span><span class="k">\&#34;</span>e<span class="nb">}</span>l Awoumou and Brilhante, Am<span class="nb">{</span><span class="k">\&#39;</span>e<span class="nb">}</span>rico and <span class="nb">{</span><span class="k">\c</span><span class="nb">{</span>C<span class="nb">}}</span>ak<span class="nb">{</span><span class="k">\i</span><span class="nb">}</span>r, Asl<span class="nb">{</span><span class="k">\i</span><span class="nb">}</span> and Egevad, Lars and Eklund, Martin and Farr<span class="nb">{</span><span class="k">\&#39;</span>e<span class="nb">}</span>, Xavier and Geronatsiou, Katerina and Molini<span class="nb">{</span><span class="k">\&#39;</span>e<span class="nb">}</span>, Vincent and Pereira, Guilherme and Roy, Paromita and Saile, G<span class="nb">{</span><span class="k">\&#34;</span>u<span class="nb">}</span>nter and Salles, Paulo and Schaafsma, Ewout and Tschui, Jo<span class="nb">{</span><span class="k">\&#34;</span>e<span class="nb">}</span>lle and Vos, Anne-Marie and Delahunt, Brett and Samaratunga, Hemamali and Grignon, David J. and Evans, Andrew J. and Berney, Daniel M. and Pan, Chin-Chen and Kristiansen, Glen and Kench, James G. and Oxley, Jon and Leite, Katia R. M. and McKenney, Jesse K. and Humphrey, Peter A. and Fine, Samson W. and Tsuzuki, Toyonori and Varma, Murali and Zhou, Ming and Comperat, Eva and Bostwick, David G. and Iczkowski, Kenneth A. and Magi-Galluzzi, Cristina and Srigley, John R. and Takahashi, Hiroyuki and van der Kwast, Theo and van Boven, Hester and Vink, Robert and van der Laak, Jeroen and Hulsbergen-van der Kaa, Christina and Litjens, Geert<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  title=<span class="nb">{</span>Artificial intelligence assistance significantly improves Gleason grading of prostate biopsies by pathologists<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  journal=<span class="nb">{</span>Modern Pathology<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  year=<span class="nb">{</span>2020<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  month=<span class="nb">{</span>Aug<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  day=<span class="nb">{</span>05<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  abstract=<span class="nb">{</span>The Gleason score is the most important prognostic marker for prostate cancer patients, but it suffers from significant observer variability. Artificial intelligence (AI) systems based on deep learning can achieve pathologist-level performance at Gleason grading. However, the performance of such systems can degrade in the presence of artifacts, foreign tissue, or other anomalies. Pathologists integrating their expertise with feedback from an AI system could result in a synergy that outperforms both the individual pathologist and the system. Despite the hype around AI assistance, existing literature on this topic within the pathology domain is limited. We investigated the value of AI assistance for grading prostate biopsies. A panel of 14 observers graded 160 biopsies with and without AI assistance. Using AI, the agreement of the panel with an expert reference standard increased significantly (quadratically weighted Cohen&#39;s kappa, 0.799 vs. 0.872; p<span class="nb">{</span><span class="k">\thinspace</span><span class="nb">}</span>=<span class="nb">{</span><span class="k">\thinspace</span><span class="nb">}</span>0.019). On an external validation set of 87 cases, the panel showed a significant increase in agreement with a panel of international experts in prostate pathology (quadratically weighted Cohen&#39;s kappa, 0.733 vs. 0.786; p<span class="nb">{</span><span class="k">\thinspace</span><span class="nb">}</span>=<span class="nb">{</span><span class="k">\thinspace</span><span class="nb">}</span>0.003). In both experiments, on a group-level, AI-assisted pathologists outperformed the unassisted pathologists and the standalone AI system. Our results show the potential of AI systems for Gleason grading, but more importantly, show the benefits of pathologist-AI synergy.<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  issn=<span class="nb">{</span>1530-0285<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  doi=<span class="nb">{</span>10.1038/s41379-020-0640-y<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  url=<span class="nb">{</span>https://doi.org/10.1038/s41379-020-0640-y<span class="nb">}</span>
</span></span><span class="line"><span class="cl"><span class="nb">}</span>
</span></span></code></pre></div><div class="post-info-frame">
    <figure>
     <img src="/images/pdh_thesis_wouterbulten_graphic.png" loading="lazy" alt="Artificial intelligence as a digital fellow in pathology: human-machine synergy for improved prostate cancer diagnosis"></a>
    </figure>
    
    <h2>Series on my PhD in Computational Pathology</h2>
    
    <p>This post is part of a series related to my PhD project on prostate cancer, deep learning and computational pathology. In my research I developed AI algorithms to diagnose prostate cancer. Interested in the rest of my research? The three latest post are shown below. For all the posts, you can find <a href="/tags/research">all posts tagged with research</a>.</p>
        
    <h3>Latest post related to my research</h3>
    <ul>
    
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/panda-challenge/">AI for diagnosis of prostate cancer: the PANDA challenge</a></h3>
            <p><small>Artificial intelligence (AI) for prostate cancer analysis is ready for clinical implementation, shows a global programming competition, the PANDA challenge.</small></o>
        </li>
     
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/improve-prostate-cancer-diagnosis-panda-challenge/">Improve prostate cancer diagnosis: participate in the PANDA Gleason grading challenge</a></h3>
            <p><small>Can you build a deep learning model that can accurately grade protate biopsies? Participate in the PANDA challenge </small></o>
        </li>
     
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/prostate-epithelium-segmentation-deep-learning-immunohistochemistry/">Epithelium segmentation using deep learning and immunohistochemistry</a></h3>
            <p><small>We developed a new deep learning method to segment epithelial tissue in digitized hematoxylin and eosin (H&amp;E) stained prostatectomy slides using immunohistochemistry (IHC) as reference standard.</small></o>
        </li>
     
    </ul>

    <h3>Deep learning posts</h3>
    <p>Sometimes I write a blog post on deep learning or related techniques. The latest posts are shown below. Interested in reading all my blog posts? You can read them on my tech blog.</p>

    <ul>
        
        

        
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/data-augmentation-using-tensorflow-data-dataset/">Simple and efficient data augmentations using the Tensorfow tf.Data and Dataset API</a></h3>
                <p><small>The tf.data API of Tensorflow is a great way to build a pipeline for sending data to the GPU. In this post I give a few examples of augmentations and how to implement them using this API.</small></o>
            </li>
         
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/getting-started-with-gans-2-colorful-mnist/">Getting started with GANs Part 2: Colorful MNIST</a></h3>
                <p><small>In this post we build upon part 1 of &#39;Getting started with generative adversarial networks&#39; and work with RGB data instead of monochrome. We apply a simple technique to map MNIST images to RGB.</small></o>
            </li>
         
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/getting-started-with-generative-adversarial-networks/">Getting started with generative adversarial networks (GAN)</a></h3>
                <p><small>Generative Adversarial Networks (GANs) are one of the hot topics within Deep Learning right now and are applied to various tasks. In this post I&#39;ll walk you through the first steps of building your own adversarial network with Keras and MNIST.</small></o>
            </li>
         
    </ul>
</div>
<h2 id="references">References</h2>
<script type="text/javascript">
function loadDzi() {
  var viewer = OpenSeadragon({
    id: "openseadragon1",
    prefixUrl: "/assets/dzi/images/",
    tileSources: "/assets/dzi/gleason_example_1_1024.dzi"
  });
}
</script>
<script async src="/assets/dzi/openseadragon.min.js" onload="loadDzi()"></script>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Litjens, G. et al. Deep learning as a tool for increased accuracy and efficiency of histopathological diagnosis. Sci. Rep. 6, 26286, <a href="https://doi.org/10.1038/srep26286">Read online</a> (2016).&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Campanella, G. et al. Clinical-grade computational pathology using weakly supervised deep learning on whole slide images. Nat. Med. 25, 1301-1309, <a href="https://doi.org/10.1038/s41591-019-0508-1">Read online</a> (2019).&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p><a href="https://www.businesswire.com/news/home/20190307005205/en/FDA-Grants-Breakthrough-Designation-Paige.AI">FDA Grants Breakthrough Designation to Paige.AI</a>&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p>Bulten, W. et al. Automated deep-learning system for Gleason grading of prostate cancer using biopsies: a diagnostic study. The Lancet Oncology 21, 233-241, <a href="https://doi.org/10.1016/S1470-2045(19)30739-9">Read online</a> (2020).&#160;<a href="#fnref:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a>&#160;<a href="#fnref1:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:5">
<p>Ström, P. et al. Artificial intelligence for diagnosis and grading of prostate cancer in biopsies: a population-based, diagnostic study. The Lancet Oncology 21, 222-232, <a href="https://doi.org/10.1016/S1470-2045(19)30738-7">Read online</a> (2020).&#160;<a href="#fnref:5" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:6">
<p>Nagpal, K. et al. Development and Validation of a Deep Learning Algorithm for Improving Gleason Scoring of Prostate Cancer. npj Digital Medicine, <a href="https://doi.org/10.1038/s41746-019-0112-2">Read online</a> (2018).&#160;<a href="#fnref:6" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:7">
<p>Rodríguez-Ruiz, A. et al. Detection of Breast Cancer with Mammography: Effect of an Artificial Intelligence Support System. Radiology 290, 305-314, <a href="https://doi.org/10.1148/radiol.2018181371">Read online</a> (2018).&#160;<a href="#fnref:7" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:8">
<p>Interesting blog post on different ways of displaying model output: <a href="https://pair-code.github.io/interpretability/uncertainty-over-space/">Communicating Model Uncertainty Over Space - How can we show a pathologist an AI model&rsquo;s predictions</a>&#160;<a href="#fnref:8" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:9">
<p>Egevad L, Delahunt B, Berney DM, Bostwick DG, Cheville J, Comperat E, et al. Utility of pathology imagebase for standardisation of prostate cancer grading. Histopathology. 2018;73:8–18. <a href="https://onlinelibrary.wiley.com/doi/full/10.1111/his.13471">Read online</a>&#160;<a href="#fnref:9" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:10">
<p>Cai CJ, Winter S, Steiner D, Wilcox L, Terry M. Hello AI: Uncovering the Onboarding Needs of Medical Practitioners for Human-AI Collaborative Decision-Making. Proceedings of the ACM on Human-Computer Interaction 2019;3:104. <a href="https://dl.acm.org/doi/pdf/10.1145/3359206">Read online</a>&#160;<a href="#fnref:10" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
    </item>
    
    <item>
      <title>Epithelium segmentation using deep learning and immunohistochemistry</title>
      <link>https://www.wouterbulten.nl/posts/prostate-epithelium-segmentation-deep-learning-immunohistochemistry/</link>
      <pubDate>Fri, 02 Aug 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.wouterbulten.nl/posts/prostate-epithelium-segmentation-deep-learning-immunohistochemistry/</guid>
      <description>We developed a new deep learning method to segment epithelial tissue in digitized hematoxylin and eosin (H&amp;amp;E) stained prostatectomy slides using immunohistochemistry (IHC) as reference standard.</description>
      <content:encoded><![CDATA[<p>To improve prostate cancer detection and grading algorithms, we required a system that could precisely outline epithelial tissue. Our main idea was that such a system could automatically refine coarse annotations made by human annotators or other deep learning systems; for example in our project on <a href="/posts/automated-gleason-grading-deep-learning/">automated Gleason grading</a>.</p>
<p>At first, we trained a system using the <a href="/posts/epithelium-segmentation-using-deep-learning/">conventional way</a>: based on human annotations, we trained a U-Net in a simple patch-based approach. Unfortunately, we were hindered by time and the limits of human performance: the system&rsquo;s performance can at most be as best as the annotations of the data. In the case of prostate cancer, epithelial tissue can express as individual cells laying in groups in the stroma, which makes manual annotating data a time-consuming and challenging task. With this project, we set out to develop a novel method to <strong>circumvent the need for elaborate manual annotations</strong>.</p>
<figure class="lazyload">
    <img loading="lazy" src="/assets/images/peso/dataset_examples_2rows-min.jpg"
         alt="Prostate epithelial tissue can express itself in many forms. The first four columns show examples of benign tissue, the last four of prostate cancer. Top row shows the original H&amp;amp;E, the bottom row IHC."/> <figcaption>
            <p>Prostate epithelial tissue can express itself in many forms. The first four columns show examples of benign tissue, the last four of prostate cancer. Top row shows the original H&amp;E, the bottom row IHC.</p>
        </figcaption>
</figure>

<p><a name="data"></a></p>
<h2 id="data-the-peso-dataset">Data (the PESO dataset)</h2>
<p>We have developed our system using a new dataset of 102 prostatectomy tissue blocks. From each block a new section was cut, stained with H&amp;E and scanned. After scanning, the tissue was destained, restained using immunohistochemistry, and scanned again. All slides were scanned at 20x magnification (pixel resolution 0.24 μm).</p>
<p>We used two markers for the immunohistochemistry: CK8/18 (using DAB) to mark all glandular epithelial tissue (benign and malignant), and P63 (using NovaRED) for the basal cell layer, which is normally present in benign glands but not in malignant glands. Restaining, instead of making consecutive slides, results in an H&amp;E and IHC whole-slide image (WSI) pair for each patient that contains the same tissue.</p>
<p>We have released the H&amp;E images used in this project as a public dataset on Zenodo: the <a href="https://zenodo.org/record/1485967#.XT8F0ugzb8A">PESO dataset</a>. More information on this dataset and how to use it can be found in a <a href="/posts/peso-dataset-whole-slide-image-prosate-cancer/">separate blog post</a>.</p>
<figure class="lazyload">
    <img loading="lazy" src="/assets/images/peso/ihc_he_overlay.jpg"
         alt="To train our system we make use of registered H&amp;amp;E and IHC stained slides. Registration makes it possible to transfer annotations from one domain to the other."/> <figcaption>
            <p>To train our system we make use of registered H&amp;E and IHC stained slides. Registration makes it possible to transfer annotations from one domain to the other.</p>
        </figcaption>
</figure>

<p><a name="method"></a></p>
<h2 id="method">Method</h2>
<p>To train our system, we used a two-step approach. First, we trained a convolutional network to segment epithelium in the IHC slides. By applying color deconvolution and subsequent recognition of positively stained pixels, we were able to have extensive training data while preventing the cumbersome and imprecise process of manually annotating epithelial regions. After this first step, we transfered the annotations to the H&amp;E slides and trained the final network. The steps are described in more detail below:</p>
<ol>
<li>On a subset of the IHC dataset, we applied color deconvolution to select the brown color channel. Some binary operations were used to remove small artifacts. The resulting mask contains most of the epithelial tissue but also includes non epithelial tissue that was colored by the stain (such as corpora amylacea).</li>
<li>On this subset, we corrected significant errors by hand. Artifacts were marked as such. Note that this task is only a fraction of the work; instead of annotating individual epithelial cells, only errors have to be annotated in a subset of the slides.</li>
<li>We trained a first U-Net on the corrected IHC slides. This network could then be used to generate epithelial masks for all the IHC slides (including the non-corrected slides).</li>
<li>We registered the H&amp;E and IHC slides. As the original tissue was restained, the masks generated by the IHC network matched the H&amp;E slides perfectly.</li>
<li>The final network was trained using the transferred masks.</li>
</ol>
<p>All hyperparameters for both U-Nets can be found in the <a href="https://www.nature.com/articles/s41598-018-37257-4">paper</a>.</p>
<br>
<figure class="lazyload">
    <img loading="lazy" src="/assets/images/peso/epithelium_segmentation_algorithm.png"
         alt="Method used to segment epithelial tissue. First we train a system to segment epithelial tissue on IHC, later we transfer this to H&amp;amp;E to train the final system."/> <figcaption>
            <p>Method used to segment epithelial tissue. First we train a system to segment epithelial tissue on IHC, later we transfer this to H&amp;E to train the final system.</p>
        </figcaption>
</figure>

<p><a name="results"></a></p>
<h2 id="results">Results</h2>
<p>Our system was able to accurately segment epithelial tissue, both in benign and cancerous regions (overall F1 score of 0.893). Even in regions with high grade prostate cancer, the system is able to segment individual cells. Some problems occurred in regions with high inflammation (that can look very similar to epithelial tissue). Correcting the color deconvolution masks increased the performance, but even more important removed consistent misclassifications of non-epithelial regions (like corpora amylacea). For a complete overview of all results, including results on an external dataset, please refer to the <a href="https://www.nature.com/articles/s41598-018-37257-4">paper (Open Access)</a>.</p>
<p>The final U-Net was a critical component in the automatic data labeling technique of our project on <a href="/posts/automated-gleason-grading-deep-learning/">automated Gleason grading</a>. Using the epithelial masks, we were able to generate precise gland-level outlines of benign and tumorous tissue in prostate biopsies.</p>
<img class="lazyload" src="/assets/images/peso/epithelium_testset_results.jpg" style="max-width: 100%;" caption="Segmentation examples from the test set. Green pixels show true positive, red false positive and blue false negative. The top two rows displays two cases (a–d) of PCa where the network segments the epithelial tissue almost perfectly. In the bottom row two failure cases are shown: a case of high grade PCa (e) and a benign region (f) where debris inside the gland is segmented.">
<p><a name="more-info"></a></p>
<h2 id="more-info">More info</h2>
<p><br><a href="https://www.nature.com/articles/s41598-018-37257-4" class="btn btn-primary">Read full paper on Scientific Reports</a></p>
<p><a href="https://doi.org/10.5281/zenodo.1485966" class="btn btn-primary">Download dataset</a></p>
<p>This work was financed by a grant from the Dutch Cancer Society (KWF). You can use the following reference if you want to cite the paper:</p>
<blockquote>
<p>Bulten, Wouter, et al. &ldquo;Epithelium segmentation using deep learning in H&amp;E-stained prostate specimens with immunohistochemistry as reference standard.&rdquo; Scientific reports 9.1 (2019): 864.</p>
</blockquote>
<p>Or, if you prefer BibTeX:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-tex" data-lang="tex"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">@article<span class="nb">{</span>bulten2019epithelium,
</span></span><span class="line"><span class="cl">  title=<span class="nb">{</span>Epithelium segmentation using deep learning in H<span class="k">\&amp;</span>E-stained prostate specimens with immunohistochemistry as reference standard<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  author=<span class="nb">{</span>Bulten, Wouter and B<span class="nb">{</span><span class="k">\&#39;</span>a<span class="nb">}</span>ndi, P<span class="nb">{</span><span class="k">\&#39;</span>e<span class="nb">}</span>ter and Hoven, Jeffrey and van de Loo, Rob and Lotz, Johannes and Weiss, Nick and van der Laak, Jeroen and van Ginneken, Bram and Hulsbergen-van de Kaa, Christina and Litjens, Geert<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  journal=<span class="nb">{</span>Scientific reports<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  volume=<span class="nb">{</span>9<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  number=<span class="nb">{</span>1<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  pages=<span class="nb">{</span>864<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  year=<span class="nb">{</span>2019<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  publisher=<span class="nb">{</span>Nature Publishing Group<span class="nb">}</span>
</span></span><span class="line"><span class="cl"><span class="nb">}</span>
</span></span></code></pre></div><div class="post-info-frame">
    <figure>
     <img src="/images/pdh_thesis_wouterbulten_graphic.png" loading="lazy" alt="Artificial intelligence as a digital fellow in pathology: human-machine synergy for improved prostate cancer diagnosis"></a>
    </figure>
    
    <h2>Series on my PhD in Computational Pathology</h2>
    
    <p>This post is part of a series related to my PhD project on prostate cancer, deep learning and computational pathology. In my research I developed AI algorithms to diagnose prostate cancer. Interested in the rest of my research? The three latest post are shown below. For all the posts, you can find <a href="/tags/research">all posts tagged with research</a>.</p>
        
    <h3>Latest post related to my research</h3>
    <ul>
    
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/panda-challenge/">AI for diagnosis of prostate cancer: the PANDA challenge</a></h3>
            <p><small>Artificial intelligence (AI) for prostate cancer analysis is ready for clinical implementation, shows a global programming competition, the PANDA challenge.</small></o>
        </li>
     
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/improve-prostate-cancer-diagnosis-panda-challenge/">Improve prostate cancer diagnosis: participate in the PANDA Gleason grading challenge</a></h3>
            <p><small>Can you build a deep learning model that can accurately grade protate biopsies? Participate in the PANDA challenge </small></o>
        </li>
     
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/potential-of-ai-in-medicine-improving-prostate-cancer-diagnosis/">The potential of AI in medicine: AI-assistance improves prostate cancer grading</a></h3>
            <p><small>In a completely new study we investigated the possible benefits of an AI system for pathologists. Instead of focussing on pathologist-versus-AI, we instead look at potential pathologist-AI synergy.</small></o>
        </li>
     
    </ul>

    <h3>Deep learning posts</h3>
    <p>Sometimes I write a blog post on deep learning or related techniques. The latest posts are shown below. Interested in reading all my blog posts? You can read them on my tech blog.</p>

    <ul>
        
        

        
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/data-augmentation-using-tensorflow-data-dataset/">Simple and efficient data augmentations using the Tensorfow tf.Data and Dataset API</a></h3>
                <p><small>The tf.data API of Tensorflow is a great way to build a pipeline for sending data to the GPU. In this post I give a few examples of augmentations and how to implement them using this API.</small></o>
            </li>
         
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/getting-started-with-gans-2-colorful-mnist/">Getting started with GANs Part 2: Colorful MNIST</a></h3>
                <p><small>In this post we build upon part 1 of &#39;Getting started with generative adversarial networks&#39; and work with RGB data instead of monochrome. We apply a simple technique to map MNIST images to RGB.</small></o>
            </li>
         
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/getting-started-with-generative-adversarial-networks/">Getting started with generative adversarial networks (GAN)</a></h3>
                <p><small>Generative Adversarial Networks (GANs) are one of the hot topics within Deep Learning right now and are applied to various tasks. In this post I&#39;ll walk you through the first steps of building your own adversarial network with Keras and MNIST.</small></o>
            </li>
         
    </ul>
</div>
]]></content:encoded>
    </item>
    
    <item>
      <title>The public PESO dataset: prostate H&amp;E whole-side images for epithelium segmentation</title>
      <link>https://www.wouterbulten.nl/posts/peso-dataset-whole-slide-image-prosate-cancer/</link>
      <pubDate>Mon, 29 Jul 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.wouterbulten.nl/posts/peso-dataset-whole-slide-image-prosate-cancer/</guid>
      <description>Public dataset of prostatectomy whole-slide images for epithelium segmentation, licensed under a BY-NC-SA Creative Commons license.</description>
      <content:encoded><![CDATA[<p>As part of our publication on <a href="https://www.nature.com/articles/s41598-018-37257-4">epithelium segmentation using deep learning and immunohistochemistry</a> we published our dataset on Zenodo: the <a href="https://zenodo.org/record/1485967#.XT8F0ugzb8A">PESO dataset</a>. The dataset is free to use under the BY-NC-SA Creative Commons license.</p>
<figure class="lazyload">
    <img loading="lazy" src="/assets/images/peso/ihc_he_overlay.jpg"
         alt="The reference standard of the PESO set was made using immunohistochemistry, resulting in a precise and accurate ground truth."/> <figcaption>
            <p>The reference standard of the PESO set was made using immunohistochemistry, resulting in a precise and accurate ground truth.</p>
        </figcaption>
</figure>

<p><a href="https://doi.org/10.5281/zenodo.1485966" class="btn btn-primary">Download dataset</a></p>
<h2 id="contents-of-the-dataset">Contents of the dataset</h2>
<p>The PESO dataset consists <strong>102 whole-slide images</strong>, split in to in a <code>training</code> and <code>test</code> part. The total dataset is around 140GB. For the training part, the reference standard is included. This set consists of:</p>
<ul>
<li>62 whole-slide images, exported at a pixel resolution of 0.48mu/pixels.</li>
<li>62 Raw color deconvolution masks containing the P63&amp;CK8/18 channel of the color deconvolution operation. These masks mark all regions that are stained by either P63 or CK8/18 in the IHC version of the slides.</li>
<li>25 color deconvolution masks (N=25) on which manual annotations have been made. Within these regions, stain and other artifacts have been removed.</li>
<li>62 training masks (N=62) that have been used to train the main network of our paper. These masks are generated by a trained U-Net on the corresponding IHC slides.</li>
</ul>
<p>The test set consists of:</p>
<ul>
<li>40 whole-slide images, exported at a pixel resolution of 0.48mu/pixels.</li>
<li>40 xml files containing a total of 160 annotations of regions that are used in the original evaluation.</li>
<li>160 png files of 2500x2500 pixels, exported at a pixel resolution of 0.48mu/pixels. Each png file corresponds to one test region.</li>
<li>160 padded png files of 3500x3500 pixels of the same test regions.</li>
<li>A mapping file (csv) describing whether a test region contains cancer or only benign tissue.</li>
</ul>
<figure class="lazyload">
    <img loading="lazy" src="/assets/images/peso/peso_zoom_data_example.jpg"
         alt="Example from the PESO dataset. The dataset consists of full whole-slide images."/> <figcaption>
            <p>Example from the PESO dataset. The dataset consists of full whole-slide images.</p>
        </figcaption>
</figure>

<figure class="lazyload">
    <img loading="lazy" src="/assets/images/peso/peso_epithelium_overlay.jpg"
         alt="Example of the ground truth segmentation of the epithelium tissue."/> <figcaption>
            <p>Example of the ground truth segmentation of the epithelium tissue.</p>
        </figcaption>
</figure>

<h2 id="using-the-data">Using the data</h2>
<p>All slides are saved in TIFF format and can be opened with a viewer such as <a href="https://github.com/computationalpathologygroup/ASAP">ASAP</a>. To use the images in Python we can use the python binding of ASAP. To do so, make sure that the <code>&lt;ASAP install directory&gt;/bin</code> is in your <code>PYTHONPATH</code>. Then use the following snippet to extract a patch:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># Import the ASAP module</span>
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">multiresolutionimageinterface</span> <span class="k">as</span> <span class="nn">mir</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Create a new reader to open files</span>
</span></span><span class="line"><span class="cl"><span class="n">reader</span> <span class="o">=</span> <span class="n">mir</span><span class="o">.</span><span class="n">MultiResolutionImageReader</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">image</span> <span class="o">=</span> <span class="n">reader</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;path to image file&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Get a patch at x=1000, y=12000 (coordinates relative to level 0) at level 2</span>
</span></span><span class="line"><span class="cl"><span class="n">level</span> <span class="o">=</span> <span class="mi">1</span>
</span></span><span class="line"><span class="cl"><span class="n">patch</span> <span class="o">=</span> <span class="n">image</span><span class="o">.</span><span class="n">getUCharPatch</span><span class="p">(</span><span class="mi">10000</span><span class="p">,</span> <span class="mi">12000</span><span class="p">,</span> <span class="mi">1000</span><span class="p">,</span> <span class="mi">1000</span><span class="p">,</span> <span class="n">level</span><span class="p">)</span>
</span></span></code></pre></div><h2 id="more-info--questions">More info / questions?</h2>
<p>Background information on the dataset can be found in <a href="https://doi.org/10.1038/s41598-018-37257-4">the paper</a>. For questions please use the <a href="/contact">contact form</a>.</p>
<script type="application/ld+json">
{
  "@context":"https://schema.org/",
  "@type":"Dataset",
  "name":"PESO: Prostate Epithelium Segmentation on H&E-stained prostatectomy whole slide images",
  "description":"Large set of whole-slide-images (WSI) of prostatectomy specimens with various grades of prostate cancer (PCa). More information can be found in the corresponding paper: https://doi.org/10.1038/s41598-018-37257-4 \n
 \n
The WSIs in this dataset can be viewed using the open-source software ASAP or Open Slide. Due to the large size of the complete dataset, the data has been split up in to multiple archives. \n
 \n
The data from the training set: \n
<ul> \n
<li><b>peso_training_masks.zip</b>: Training masks (N=62) that have been used to train the main network of our paper. These masks are generated by a trained U-Net on the corresponding IHC slides.</li> \n
<li><b>peso_training_masks_corrected.zip</b>: A subset of the color deconvolution masks (N=25) on which manual annotations have been made. Within these regions, stain and other artifacts have been removed.</li> \n
<li><b>peso_training_colordeconvolution.zip: Mask files (N=62) containing the P63&CK8/18 channel of the color deconvolution operation. These masks mark all regions that are stained by either P63 or CK8/18 in the IHC version of the slides.</li> \n
<li><b>peso_training_wsi_{1-6}.zip</b>: Zip files containing the whole slide images of the training set (N=62). Each archive contains 10 slides, excluding the last which contains 12. These images are exported at a pixel resolution of 0.48mu/pixels. \n
</ul>
The data from the test set: \n
<ul> \n
<li><b>peso_testset_regions.zip</b>: Collection of annotation XML files with outlines of the test regions. These can be used to view the test regions in more detail using ASAP.</li> \n
<li><b>peso_testset_png.zip</b>: Export of the test set regions in PNG format (2500x2500 pixels per region).</li> \n
<li><b>peso_testset_png_padded.zip</b>: Export of the test regions in PNG format padded with a 500 pixel wide border (3500x3500 pixels per region). Useful for segmenting pixels at the border of the regions.</li> \n
<li><b>peso_testset_mapping.csv</b>: A csv file mapping files from the test set (numbered 1-160) to regions in the xml files. The csv file also contains the label (benign or cancer) for each region.</li> \n
<li><b>peso_testset_wsi_{1-4}.zip</b>: Zip files containing the whole slide images of the test set (N=40). Each archive contains 10 slides of the test set. These images are exported at a pixel resolution of 0.48mu/pixels.</li> \n
</ul>
This study was financed by a grant from the Dutch Cancer Society (KWF), grant number KUN 2015-7970. \n
 \n
If you make use of this dataset please cite both the dataset itself and the corresponding paper: https://doi.org/10.1038/s41598-018-37257-4",
  "version": "1",
  "url":"https://www.wouterbulten.nl/posts/peso-dataset-whole-slide-image-prosate-cancer/",
  "sameAs":"https://zenodo.org/record/1485967",
  "identifier": "https://doi.org/10.1038/s41598-018-37257-4",
  "keywords":[
    "pathology", "computational pathology", "prostate cancer", "epithelium", "deep learning", "H&E", "immunohistochemistry"
  ],
  "license" : "http://creativecommons.org/licenses/by-nc-sa/4.0",
  "creator": [
      {
          "@type": "Person",
          "sameAs": "https://orcid.org/0000-0002-6129-5039",
          "givenName": "Wouter",
          "familyName": "Bulten",
          "name": "Wouter Bulten"
      },
      {
          "@type": "Person",
          "sameAs": "https://orcid.org/0000-0003-1554-1291",
          "givenName": "Geert",
          "familyName": "Litjens",
          "name": "Geert Litjens"
      },
      {
       "@type":"Organization",
       "url": "https://www.computationalpathologygroup.eu/",
       "name":"Computational Pathology Group, Radboudumc"
       }
  ],
  "citation": "https://doi.org/10.1038/s41598-018-37257-4"
}
</script>
<div class="post-info-frame">
    <figure>
     <img src="/images/pdh_thesis_wouterbulten_graphic.png" loading="lazy" alt="Artificial intelligence as a digital fellow in pathology: human-machine synergy for improved prostate cancer diagnosis"></a>
    </figure>
    
    <h2>Series on my PhD in Computational Pathology</h2>
    
    <p>This post is part of a series related to my PhD project on prostate cancer, deep learning and computational pathology. In my research I developed AI algorithms to diagnose prostate cancer. Interested in the rest of my research? The three latest post are shown below. For all the posts, you can find <a href="/tags/research">all posts tagged with research</a>.</p>
        
    <h3>Latest post related to my research</h3>
    <ul>
    
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/panda-challenge/">AI for diagnosis of prostate cancer: the PANDA challenge</a></h3>
            <p><small>Artificial intelligence (AI) for prostate cancer analysis is ready for clinical implementation, shows a global programming competition, the PANDA challenge.</small></o>
        </li>
     
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/improve-prostate-cancer-diagnosis-panda-challenge/">Improve prostate cancer diagnosis: participate in the PANDA Gleason grading challenge</a></h3>
            <p><small>Can you build a deep learning model that can accurately grade protate biopsies? Participate in the PANDA challenge </small></o>
        </li>
     
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/potential-of-ai-in-medicine-improving-prostate-cancer-diagnosis/">The potential of AI in medicine: AI-assistance improves prostate cancer grading</a></h3>
            <p><small>In a completely new study we investigated the possible benefits of an AI system for pathologists. Instead of focussing on pathologist-versus-AI, we instead look at potential pathologist-AI synergy.</small></o>
        </li>
     
    </ul>

    <h3>Deep learning posts</h3>
    <p>Sometimes I write a blog post on deep learning or related techniques. The latest posts are shown below. Interested in reading all my blog posts? You can read them on my tech blog.</p>

    <ul>
        
        

        
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/data-augmentation-using-tensorflow-data-dataset/">Simple and efficient data augmentations using the Tensorfow tf.Data and Dataset API</a></h3>
                <p><small>The tf.data API of Tensorflow is a great way to build a pipeline for sending data to the GPU. In this post I give a few examples of augmentations and how to implement them using this API.</small></o>
            </li>
         
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/getting-started-with-gans-2-colorful-mnist/">Getting started with GANs Part 2: Colorful MNIST</a></h3>
                <p><small>In this post we build upon part 1 of &#39;Getting started with generative adversarial networks&#39; and work with RGB data instead of monochrome. We apply a simple technique to map MNIST images to RGB.</small></o>
            </li>
         
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/getting-started-with-generative-adversarial-networks/">Getting started with generative adversarial networks (GAN)</a></h3>
                <p><small>Generative Adversarial Networks (GANs) are one of the hot topics within Deep Learning right now and are applied to various tasks. In this post I&#39;ll walk you through the first steps of building your own adversarial network with Keras and MNIST.</small></o>
            </li>
         
    </ul>
</div>
]]></content:encoded>
    </item>
    
    <item>
      <title>Pathologist-level Gleason grading using artificial intelligence (AI) &amp; deep learning</title>
      <link>https://www.wouterbulten.nl/posts/automated-gleason-grading-deep-learning/</link>
      <pubDate>Tue, 23 Jul 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.wouterbulten.nl/posts/automated-gleason-grading-deep-learning/</guid>
      <description>We developed a fully automated deep learning system to grade prostate biopsies using 5759 biopsies from 1243 patients, and showed that this system achieved pathologist-level performance.</description>
      <content:encoded><![CDATA[<p><strong>100-word summary:</strong> The Gleason score is the most important prognostic marker for prostate cancer patients but suffers from significant inter-observer variability. We developed a fully automated deep learning system to grade prostate biopsies. The system was developed using 5759 biopsies from 1243 patients. A semi-automatic labeling technique was used to circumvent the need for full manual annotation by pathologists. The developed system achieved a high agreement with the reference standard. In a separate observer experiment, the deep learning system outperformed 10 out of 15 pathologists. The system has the potential to improve prostate cancer prognostics by acting as a first or second reader.</p>
<p><strong>Authors:</strong> Wouter Bulten, Hans Pinckaers, Hester van Boven, Robert Vink, Thomas de Bel, Bram van Ginneken, Jeroen van der Laak, Christina Hulsbergen-van de Kaa, Geert Litjens</p>
<p><strong>Article URL:</strong> <a href="https://doi.org/10.1016/S1470-2045(19)30739-9">Paper at Lancet Oncology</a></p>
<p><strong>arXiv URL:</strong> <a href="https://arxiv.org/abs/1907.07980">Preprint at arXiv</a></p>
<figure>
    <img loading="lazy" src="/assets/images/gleason-grading/gleason_grading_header_image.png"
         alt="Automated Gleason Grading using Deep Learning and Artificial Intelligence."/> <figcaption>
            <p>Automated Gleason Grading using Deep Learning and Artificial Intelligence.</p>
        </figcaption>
</figure>

<h2 id="introduction">Introduction</h2>
<p>Prostate cancer is one of the most common forms of cancer, with more than 1.2 million new cases each year. The diagnosis of prostate cancer is complicated by multiple factors. Patients with low-grade prostate cancer are often better off with a wait-and-see approach than with active treatment due to the side effects of, for example, surgery. High-grade cancers, however, need to be diagnosed as soon as possible not to delay treatment and to increase patient survival. Unfortunately, diagnosis and grading of prostate cancer is a difficult task which suffers from inter- and Intra-observer variability. While export uropathologists have shown better concordance rates, such expertise is not available for every patient. In other words, there is a need for robust and reproducible grading at expert levels. <strong>We have developed an artificially intelligent system, using deep learning, that can perform the grading of prostate cancer at a pathologist-level performance.</strong></p>
<p>In this blog post, we describe our approach, show how we tackled the problem of data labeling and, finally, show that our deep learning system operates at a pathologist-level performance. The article is now published at <a href="https://doi.org/10.1016/S1470-2045(19)30739-9">Lancet Oncology</a>.</p>
<style type="text/css">
@media(min-width: 768px) {
  .slider-wrapper {
    display: flex;
    flex-wrap: wrap;
  }
  .slider-wrapper figure {
    flex: 1 0 50%;
  }
}
</style>
<div class="slider-wrapper">
<figure>
    <img src="/assets/images/gleason-grading/automated_gleason_example_12.png" loading="lazy" alt="Gleason 4 area from a prostate biopsy">
    <img src="/assets/images/gleason-grading/automated_gleason_example_12_overlay.png" class="no-alt lazyload lazyload-slider" alt="Automated Gleason grading example of Gleason 4 area">
  <figcaption>Raw output output from the deep learning system overlayed on a tissue region. All tissue marked in orange is detected as Gleason 4.</figcaption>
</figure>
<figure>
    <img src="/assets/images/gleason-grading/automated_gleason_example_11.png" loading="lazy" alt="Benign area from a prostate biopsy">
    <img src="/assets/images/gleason-grading/automated_gleason_example_11_overlay.png" class="no-alt lazyload lazyload-slider" alt="Automated Gleason grading example of a benign area">
  <figcaption>Raw output output from the deep learning system overlayed on a tissue region. All tissue marked in green is detected as benign glandular tissue.</figcaption>
</figure>
</div>
<h3 id="background-on-gleason-grading">Background on Gleason grading</h3>
<p>Treatment planning for prostate cancer patients is based mainly on the Gleason score of a biopsy. After the biopsy procedure, a pathologist examines the tissue through a microscope. Through the microscopic analysis, the pathologist needs to distinguish between benign and malignant tissue. Any malignant tissue is then classified according to the architectural pattern of the tumor. This classification system is formally described in the Gleason grading system.</p>
<p><figure>
    <img loading="lazy" src="/assets/images/deep-learning/gleasonscore.jpg" alt="The Gleason scoring system.">
    <figcaption>
        <p>The Gleason scoring system.</p>
    </figcaption>
</figure>  
<small>Image source: <a href="https://commons.wikimedia.org/wiki/File:Gleasonscore.jpg">Wikipedia</a></small></p>
<p>In the Gleason grading system, a tumor region is assigned a number between 1 (low-risk) and 5 (high risk), though patterns 1 and 2 are not reported anymore for biopsies. For prostate biopsies, the most common pattern and the second-highest pattern together form the Gleason score, e.g., 3+5=8. To make reporting of prostate cancer more apparent for patients, Gleason scores are mapped to five prognostically different grade groups; with group 1 being the lowest risk, and 5 the highest.</p>
<p><a name="labeling"></a></p>
<h2 id="semi-automatic-data-labeling">Semi-automatic data labeling</h2>
<p>Pathology archives are often full of tissue specimens, but detailed labels of these specimens are lacking. Deep learning, however, requires large annotated datasets to reach its full potential. Due to time and budget restrictions, it is often practically infeasible to hire pathologists to annotate the data.</p>
<p>In the case of Gleason grading, this problem is even more significant. High-grade cancers (Gleason growth pattern 5) can express in the form of (strands of) individual tumor cells. Individually outlining hundreds of these cells in thousands of tissue specimens is no entertaining endeavor.</p>
<p>We developed a novel approach to circumvent the need of manual annotations. First, we sampled cases from our dataset that contained only one Gleason grade (score 3+3, 4+4 or 5+5). Then we employed the following steps to label the data:</p>
<ol>
<li>For each case in our dataset, we used the original pathologist&rsquo;s report (from diagnostics) to determine the Gleason score of a biopsy.</li>
<li>A previously-trained tumor detection system was applied to all these biopsies. This procedure resulted in a rough outline of the tumor bulk. These tumor regions were still very coarse and needed further refinement. A description of this system can be found in the corresponding <a href="https://www.nature.com/articles/srep26286">paper</a>.</li>
<li>The tumor masks were refined by filtering out all non-epithelial tissue. For this, we used a deep learning system that was trained using immunohistochemistry to detect epithelial cells. More information about this system can be read in the <a href="https://www.nature.com/articles/s41598-018-37257-4">paper</a>.</li>
<li>All detected and filtered tumor cells were assigned with the Gleason grade of the biopsy.</li>
<li>We trained an initial network on the automatically annotated data. After training, this segmentation network was able to assign Gleason growth patterns to individual cells.</li>
</ol>
<figure class="lazyload">
    <img loading="lazy" src="/assets/images/gleason-grading/gleason_grading_method_1.png"
         alt="First part of our semi-automatic labeling method."/> <figcaption>
            <p>First part of our semi-automatic labeling method.</p>
        </figcaption>
</figure>

<p><a name="training"></a></p>
<h2 id="network-training">Network training</h2>
<p>The trained network from step 5 (above) could then be used to annotate our complete dataset. This trained network was not perfect in assigning Gleason scores as it was only trained on a subset of our dataset. To annotate the full training set, we applied the network to all cases of our set. We then used the original pathologist&rsquo;s report to fix any major mistakes. For example, a predicted Gleason 5 region in a biopsy with Gleason score 3+3 would be removed. Tissue that originated from benign biopsies, and was detected as malignant, was classified as &ldquo;hard negative.&rdquo;</p>
<p>With our full training set annotated, we could train the final deep learning system. The whole procedure required minimal human effort. Moreover, <strong>no pathologists were required to annotate the data; instead, we were able to utilize expert knowledge extracted from the pathologist&rsquo;s reports.</strong> All training and network details can be found in the <a href="https://arxiv.org/abs/1907.07980">paper on arXiv</a>.</p>
<figure class="lazyload">
    <img loading="lazy" src="/assets/images/gleason-grading/gleason_grading_method_2.png"
         alt="Second part of our semi-automatic labeling method and application of the system to the test set."/> <figcaption>
            <p>Second part of our semi-automatic labeling method and application of the system to the test set.</p>
        </figcaption>
</figure>

<p>After the final network was trained, we were able to assign grade groups to biopsies automatically. Our system was trained as a segmentation network and outputted precise outlines of the tumor. Because of this segmentation, we can use a simple method to assign grade groups. Similar to clinical practice, we compute the volumes of each growth pattern. These volumes are then used to determine the primary and secondary Gleason grade, and finally, the grade group. We believe that this method is more interpretable and usable by pathologists in clinical practice. Each grade group prediction of the system can be easily checked by validating the marked glands.</p>
<figure class="lazyload">
    <img loading="lazy" src="/assets/images/gleason-grading/gleason_segmentation_overlays_zoomed.png"
         alt="Example segmentation generated by the deep learning system: benign tissue (green), Gleason 3 (yellow), Gleason 5 (red)."/> <figcaption>
            <p>Example segmentation generated by the deep learning system: benign tissue (green), Gleason 3 (yellow), Gleason 5 (red).</p>
        </figcaption>
</figure>

<p><a name="online-examples"></a></p>
<h2 id="online-examples">Online examples</h2>
<p>Two examples showing the raw output of the algorithm, without any post-processing, overlayed on biopsies. Benign tissue is colored green, Gleason 3 in yellow, Gleason 4 in orange and Gleason 5 in red. The original biopsy is shown on the left, the biopsy with overlay on the right. You can zoom in by scrolling, moving around can be done with click&amp;drag.</p>
<style type="text/css">
.dzi-50 {
  flex: 0 0 100%;
  margin-bottom: 1em;
}
@media (min-width: 768px) {
  .dzi-50 {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
</style>
<div style="display: flex; flex-wrap: wrap;">
  <div class="dzi-50">
    <div id="openseadragon1" style="width: 100%; height: 400px;"></div>
  </div>
  <div class="dzi-50  ">
    <div id="openseadragon2" style="width: 100%; height: 400px;"></div>
  </div>
</div>
<p><a name="results"></a></p>
<h2 id="overview-of-main-results">Overview of main results</h2>
<p>We compared our deep learning system on a test set of 535 biopsies. These biopsies were graded by three experts, and their consensus is used as the reference standard. The deep learning system achieved a high agreement with a quadratic Cohen&rsquo;s kappa of 0.918.</p>
<p>Furthermore, from the test set, we selected 100 cases to be graded by an external panel. This panel consisted of 15 external raters (13 pathologists and 2 pathologists-in-training) from 10 different countries. In agreement with the reference standard (quadratic Cohen&rsquo;s kappa) the deep learning system outperforms 10 out of 15 pathologists.</p>
<figure class="lazyload">
    <img loading="lazy" src="/assets/images/gleason-grading/gleason_grading_result.png"
         alt="Comparison of the deep learning system with a panel of pathologists on agreement with the reference standard."/> <figcaption>
            <p>Comparison of the deep learning system with a panel of pathologists on agreement with the reference standard.</p>
        </figcaption>
</figure>

<p>We also evaluated our deep learning system on grouping patients in prognostically relevant groups: (1) benign versus malignant biopsies; (2) using grade group 2 as cut-off; and (3) high versus low cancer. The deep learning system achieves a pathologist-level performance on all groups. Please see the full paper for further results and more detail.</p>
<figure class="lazyload">
    <img loading="lazy" src="/assets/images/gleason-grading/roc_100set_system_vs_pathologists.png"
         alt="Comparison of the deep learning system with a panel of pathologists on two relevant patient risk groups."/> <figcaption>
            <p>Comparison of the deep learning system with a panel of pathologists on two relevant patient risk groups.</p>
        </figcaption>
</figure>

<p><a name="future"></a></p>
<h2 id="future-challenges">Future challenges</h2>
<p>There are still challenges to overcome before a system such as ours can be used in clinical practice. First of all, our system was developed and evaluated using data from a single center. Including data from different centers, with different stain protocols and scanners could increase the generalization ability of the system. Second, while the performance is high, it is not perfect, and the accuracy of the system could be improved. Though, at some point, it is difficult to say what is better given the high inter- and intra-rater agreement within prostate cancer grading.</p>
<figure>
  <img src="/assets/images/gleason-grading/automated_gleason_example_5.png" loading="lazy" alt="Gleason 4/5 area from a prostate biopsy" style="width: 45%">
  <img src="/assets/images/gleason-grading/automated_gleason_example_5_overlay.png" loading="lazy" alt="Automated Gleason grading example of Gleason 4/5 area" style="width: 45%">
  <figcaption>Example of a failure case: In some cases the deep learning system has trouble deciding between growth patterns. In this example a glandular region is partly classified as Gleason 4 (orange) and partly as Gleason 5. Adding more training data and focusing on these difficult regions are an avenue for future research.</figcaption>
</figure>
<p>Given our results, we conclude that there is clear use for automated systems for Gleason grading. Such systems can give feedback to a pathologist at expert levels, both in a first or second reader setting. <strong>AI systems and pathologists excel at different things, and, we firmly believe that a union of both has the most potential for the individual prostate cancer patient.</strong></p>
<p>Interested in how this AI system can help pathologists? We have published <a href="/posts/potential-of-ai-in-medicine-improving-prostate-cancer-diagnosis/">follow-up research</a> on how our <a href="/posts/potential-of-ai-in-medicine-improving-prostate-cancer-diagnosis/">AI system can assist pathologist during grading of prostate biopsies</a>.</p>
<p><a name="try-out-algorithm"></a></p>
<h2 id="try-out-the-algorithm-online">Try out the algorithm online</h2>
<p>Interested on testing our algorithm on your own data? The algorithm we developed is available to try out online, without any requirements on deep learning hardware.</p>
<p><a class="btn btn-primary btn-lg my-3" href="https://www.computationalpathologygroup.eu/software/automated-gleason-grading/#try-out">Try out the algorithm</a></p>
<p>The online Gleason grading algorithm consists of multiple steps to prepare and analyze the data:</p>
<ol>
<li>For each biopsy, a tissue mask will be generated by a deep learning-based tissue segmentation system.</li>
<li>Based on the input and a small set of target files, a CycleGAN-based normalization algorithm is trained.</li>
<li>The trained normalization algorithm is applied to all input biopsies to normalize the data.</li>
<li>Each normalized biopsy is processed by the automated Gleason grading system. The output of the system consists of an overlay and a set of metrics for each biopsy. The metrics include the biopsy-level grade group, the Gleason score, and predicted volume percentages.</li>
</ol>
<figure class="lazyload">
    <img loading="lazy" src="/assets/images/gleason-grading/gleason_algorithm_overview.png"
         alt="Overview of the online Gleason grading algorithm, including the normalization step."/> <figcaption>
            <p>Overview of the online Gleason grading algorithm, including the normalization step.</p>
        </figcaption>
</figure>

<h2 id="more-info">More info</h2>
<p><br><a href="https://doi.org/10.1016/S1470-2045(19)30739-9" class="btn btn-primary">Download paper</a> <a href="https://arxiv.org/abs/1907.07980" class="btn btn-primary">Download preprint</a></p>
<ul>
<li>More details can be found in the <a href="https://doi.org/10.1016/S1470-2045(19)30739-9">article at Lancet Oncology</a> or in the <a href="https://arxiv.org/abs/1907.07980">preprint</a>. Both the article and the preprint have supplementary materials with more details.</li>
<li>A description of the tumor detection algorithm can be found in the <a href="https://www.nature.com/articles/srep26286">paper on tumor detection</a>.</li>
<li>The epithelium segmentation system is described in a separate <a href="https://www.nature.com/articles/s41598-018-37257-4">paper</a>. The dataset is public, can be found <a href="https://zenodo.org/record/1485967">online through Zenodo</a> and is described <a href="/posts/peso-dataset-whole-slide-image-prosate-cancer/">in a blog post</a>.</li>
<li>This research was performed as part of the <a href="https://www.computationalpathologygroup.eu/">Computational Pathology Group</a> and the <a href="https://www.diagnijmgen.nl">Diagnostic Image Analysis Group</a> of <a href="https://www.radboudumc.nl">Radboud University Medical Center</a>.</li>
</ul>
<p>Please use the following to refer to our paper or this post:</p>
<blockquote>
<p>Bulten, Wouter; Pinckaers, Hans; van Boven, Hester; Vink, Robert; de Bel, Thomas; van Ginneken, Bram; van der Laak, Jeroen; Hulsbergen-van de Kaa, Christina; Litjens, Geert, &ldquo;Automated deep-learning system for Gleason grading of prostate cancer using biopsies: a diagnostic study.&rdquo; The Lancet Oncology (2020).</p>
</blockquote>
<p>Or, if you prefer BibTeX:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bibtex" data-lang="bibtex"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nc">@article</span><span class="p">{</span><span class="nl">bulten2020automated</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="na">title</span><span class="p">=</span><span class="s">{Automated deep-learning system for Gleason grading of prostate cancer using biopsies: a diagnostic study}</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="na">author</span><span class="p">=</span><span class="s">{Bulten, Wouter and Pinckaers, Hans and van Boven, Hester and Vink, Robert and de Bel, Thomas and van Ginneken, Bram and van der Laak, Jeroen and Hulsbergen-van de Kaa, Christina and Litjens, Geert}</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="na">journal</span><span class="p">=</span><span class="s">{The Lancet Oncology}</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="na">year</span><span class="p">=</span><span class="s">{2020}</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="na">publisher</span><span class="p">=</span><span class="s">{Elsevier}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></div><p><a name="acknowledgements"></a></p>
<h2 id="acknowledgements">Acknowledgements</h2>
<p>This work was financed by a grant from the Dutch Cancer Society (KWF). We would also like to thank all pathologists that contributed to the observer experiment.</p>
<script type="text/javascript">
function loadDzi() {
  var viewer = OpenSeadragon({
    id: "openseadragon1",
    prefixUrl: "/assets/dzi/images/",
    tileSources: "/assets/dzi/gleason_example_1_1024.dzi"
  });
  var viewer2 = OpenSeadragon({
    id: "openseadragon2",
    prefixUrl: "/assets/dzi/images/",
    tileSources: "/assets/dzi/gleason_example_2_1024.dzi"
  });
}
</script>
<script async src="/assets/dzi/openseadragon.min.js" onload="loadDzi()"></script>
<div class="post-info-frame">
    <figure>
     <img src="/images/pdh_thesis_wouterbulten_graphic.png" loading="lazy" alt="Artificial intelligence as a digital fellow in pathology: human-machine synergy for improved prostate cancer diagnosis"></a>
    </figure>
    
    <h2>Series on my PhD in Computational Pathology</h2>
    
    <p>This post is part of a series related to my PhD project on prostate cancer, deep learning and computational pathology. In my research I developed AI algorithms to diagnose prostate cancer. Interested in the rest of my research? The three latest post are shown below. For all the posts, you can find <a href="/tags/research">all posts tagged with research</a>.</p>
        
    <h3>Latest post related to my research</h3>
    <ul>
    
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/panda-challenge/">AI for diagnosis of prostate cancer: the PANDA challenge</a></h3>
            <p><small>Artificial intelligence (AI) for prostate cancer analysis is ready for clinical implementation, shows a global programming competition, the PANDA challenge.</small></o>
        </li>
     
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/improve-prostate-cancer-diagnosis-panda-challenge/">Improve prostate cancer diagnosis: participate in the PANDA Gleason grading challenge</a></h3>
            <p><small>Can you build a deep learning model that can accurately grade protate biopsies? Participate in the PANDA challenge </small></o>
        </li>
     
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/potential-of-ai-in-medicine-improving-prostate-cancer-diagnosis/">The potential of AI in medicine: AI-assistance improves prostate cancer grading</a></h3>
            <p><small>In a completely new study we investigated the possible benefits of an AI system for pathologists. Instead of focussing on pathologist-versus-AI, we instead look at potential pathologist-AI synergy.</small></o>
        </li>
     
    </ul>

    <h3>Deep learning posts</h3>
    <p>Sometimes I write a blog post on deep learning or related techniques. The latest posts are shown below. Interested in reading all my blog posts? You can read them on my tech blog.</p>

    <ul>
        
        

        
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/data-augmentation-using-tensorflow-data-dataset/">Simple and efficient data augmentations using the Tensorfow tf.Data and Dataset API</a></h3>
                <p><small>The tf.data API of Tensorflow is a great way to build a pipeline for sending data to the GPU. In this post I give a few examples of augmentations and how to implement them using this API.</small></o>
            </li>
         
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/getting-started-with-gans-2-colorful-mnist/">Getting started with GANs Part 2: Colorful MNIST</a></h3>
                <p><small>In this post we build upon part 1 of &#39;Getting started with generative adversarial networks&#39; and work with RGB data instead of monochrome. We apply a simple technique to map MNIST images to RGB.</small></o>
            </li>
         
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/getting-started-with-generative-adversarial-networks/">Getting started with generative adversarial networks (GAN)</a></h3>
                <p><small>Generative Adversarial Networks (GANs) are one of the hot topics within Deep Learning right now and are applied to various tasks. In this post I&#39;ll walk you through the first steps of building your own adversarial network with Keras and MNIST.</small></o>
            </li>
         
    </ul>
</div>
]]></content:encoded>
    </item>
    
    <item>
      <title>Unsupervised Cancer Detection using Deep Learning and Adversarial Autoencoders</title>
      <link>https://www.wouterbulten.nl/posts/unsupervised-cancer-detection-using-deep-learning-adversarial-autoencoders/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.wouterbulten.nl/posts/unsupervised-cancer-detection-using-deep-learning-adversarial-autoencoders/</guid>
      <description>Prostate cancer is graded based on distinctive patterns in the tissue. At MIDL2018 I presented an unsupervised deep learning method, based on clustering adversarial autoencoders, to train a system to detect prostate cancer without using labeled data.</description>
      <content:encoded><![CDATA[<p>Prostate cancer (PCa) is the one of the most common cancers in the world<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> and is graded by pathologist using the <a href="https://en.wikipedia.org/wiki/Gleason_grading_system">Gleason grading system</a>. The grading system was originally made by correlating distinctive patterns in the tissue to patient survival:</p>
<blockquote>
<p>“The way to develop a histologic classification was to forget anything I thought I knew about the behavior of prostate cancer and simply look for different histologic pictures … . Then, the pictures would be handed to statisticians and compared with a ‘gold standard&rsquo; of clinical tumor behavior (ie, patient survival).” - Donald F. Gleason</p>
</blockquote>
<p>As an AI scientist, to me this sounds a lot like pattern recognition; something computers could potentially do better. Currently the grading system consists of 5 distinct classes (of which practically only 3 are used), who says that there are not 10 or 50 relevant morphological classes in the data? That is why I am interested in unsupervised methods that can extract patterns from data and want to apply this to detecting and grading prostate cancer. All information is already present in the data, we &lsquo;just&rsquo; need to find methods to retrieve it.</p>
<p><a href="/assets/images/deep-learning/unsupervised_cancer_detection_infographic.png"><figure>
    <img loading="lazy" src="/assets/images/deep-learning/unsupervised_cancer_detection_infographic.png" alt="Overview of the method (Click for larger version)">
    <figcaption>
        <p>Overview of the method (Click for larger version)</p>
    </figcaption>
</figure>  </a></p>
<p>At <a href="http://midl.amsterdam/">MIDL2018</a> I presented a first step towards this goal: an unsupervised method for detecting and grading prostate cancer. The idea behind this project is to cluster prostate tissue in an unsupervised fashion and then later link these clusters to patient prognosis.</p>
<p><figure>
    <img loading="lazy" src="/assets/images/deep-learning/overview_tissue_to_prognosis.png" alt="Overview of the idea. By clustering patches of prostate tissue we can make groups that can be used to classify tissue and used for patient prognosis.">
    <figcaption>
        <p>Overview of the idea. By clustering patches of prostate tissue we can make groups that can be used to classify tissue and used for patient prognosis.</p>
    </figcaption>
</figure>  </p>
<h2 id="methods-overview">Methods overview</h2>
<p>Our method is based on adversarial autoencoders and uses these autoencoders to cluster tissue during training: a clustering adversarial autoencoder (CAAE)<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>. As opposed to normal autoencoders, this method does not require post-processing in terms of kMeans, t-SNE or other clustering methods.</p>
<p><figure>
    <img loading="lazy" src="/assets/images/deep-learning/adversarial-encoder-decoder.png" alt="Overview of network topology. The network reconstructs an IHC patch from an H&amp;amp;E patch using two vectors: the cluster vector y and a style vector z. A different reconstruction target domain forces the network to learn more relevant features.">
    <figcaption>
        <p>Overview of network topology. The network reconstructs an IHC patch from an H&amp;amp;E patch using two vectors: the cluster vector y and a style vector z. A different reconstruction target domain forces the network to learn more relevant features.</p>
    </figcaption>
</figure>  </p>
<p>Our CAAE consists of four subnetworks (see figure above) and two latent vectors as the embedding. The first latent vector, y (size 50), represents the cluster vector and is regularized by a discriminator to follow a one-hot encoding. This is the vector that is used for the clustering and represent high level structures in the data (for example, in case of MNIST this could represent individual digits). The second latent vector, z (size 20), represents the style of the input patch, and  follows a Gaussian distribution (think of writing style in MNIST).</p>
<p>Training the CAAE forces the network to describe high level information in the cluster vector using one of the 50 classes, and low-level reconstruction information in the style vector. The ratio between the length of the two vectors is critical, a too large z and the network will encode all information using the more easy to encode style vector and disregard the cluster vector.</p>
<p>The CAAE is trained in three stages on each minibatch. First, the autoencoder itself is updated to minimize the reconstruction loss. Second, both discriminators are updated to regularize y and z using data from the encoder and the target distribution. Last, the adversarial part is trained by connecting the encoder to the two discriminators separately and maximizing the individual discriminator loss, updating only the encoder’s weights. This forces the latent spaces to follow the target distributions.</p>
<h2 id="data--anti-body-driven-feature-learning">Data &amp; Anti-body driven feature learning</h2>
<p>We trained our CAAE on patches (128 x 128 pixels) extracted from registered whole slide image (WSI) pairs. Each pair consists of a H&amp;E slide (the staining method that is used for grading prostate cancer), and a slide that was processed using immunohistochemistry (IHC) with an epithelial (CK8/18) and basal cell (P63) marker. The patches were sampled at random as no annotations or information regarding tumor location was available.</p>
<p><figure>
    <img loading="lazy" src="/assets/images/deep-learning/patch_selection.png" alt="Examples from the dataset.">
    <figcaption>
        <p>Examples from the dataset.</p>
    </figcaption>
</figure>  </p>
<p>The H&amp;E patches were used as training input. We tested two reconstruction targets: using the input patch as the target (H&amp;E to H&amp;E) and using the IHC version of the same patch (H&amp;E to IHC). By using a IHC patch as reconstruction target we force the network to learn which features in H&amp;E correspond to features in the IHC; we hypothesized that this <em>anti-body driven feature learning</em> results in more relevant encodings as the network needs to learn which features in the H&amp;E correspond to features in IHC.</p>
<h2 id="results">Results</h2>
<p>After training the networks can be used to cluster new patches by passing patches through the encoder. The other components of the network can be discarded. By taking the argmax of the cluster vector each patch is assigned to a single cluster. A few examples clusters are shown below. Note that not every cluster is relevant as we enforce no structure or prior knowledge on the clustering.</p>
<p><figure>
    <img loading="lazy" src="/assets/images/deep-learning/cluster_patches.png" alt="Example clusters. Some clusters capture a class perfectly, e.g. stroma in row 1 and 2 and tumor in row 5. Some clusters look similar but contain both benign epithelium and tumor (row 6).">
    <figcaption>
        <p>Example clusters. Some clusters capture a class perfectly, e.g. stroma in row 1 and 2 and tumor in row 5. Some clusters look similar but contain both benign epithelium and tumor (row 6).</p>
    </figcaption>
</figure>  </p>
<p>The best network achieves an F1 score of 0.62 on tumor versus non-tumor (see paper for all experiments and results). This score leaves enough room for improvement, but our network achieves this score without using labeled training data on a very noise dataset. In other words, lots of work still ahead of us but it shows that there is information in the data that we can extract using these autoencoders. Donwsides of this method are that these autoencoders are hard to train, can suffer from mode collapse (i.e. only 1 cluster is formed) and can be very unstable during training.</p>
<p>To determine whether the clustering encodes relevant information we can, for visualisation, apply the network as a sliding window to a larger area. Of course this is not really useful for diagnostics, as it is very coarse, but it gives an overview of what the network &lsquo;sees&rsquo;. This method results in nice heatmaps for each class:</p>
<p><figure>
    <img loading="lazy" src="/assets/images/deep-learning/overlay_all_classes_majority.png" alt="Network applied as a sliding window.">
    <figcaption>
        <p>Network applied as a sliding window.</p>
    </figcaption>
</figure>  </p>
<h2 id="more-info--citation">More info &amp; citation</h2>
<p>This work was presented at MIDL 2018. Want to read more? Please refer to the <a href="https://arxiv.org/abs/1804.07098">conference abstract</a> as it contains more detail on the data, training procedure and network architectures. Feel free to add any questions as comments to this post.</p>
<p>You can use the following reference if you want to cite my paper:</p>
<blockquote>
<p>W. Bulten and G. Litjens. &ldquo;Unsupervised Prostate Cancer Detection on H&amp;E using Convolutional Adversarial Autoencoders&rdquo;, in: Medical Imaging with Deep Learning, 2018</p>
</blockquote>
<p>Or, if you prefer BibTeX:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-tex" data-lang="tex"><span class="line"><span class="cl">@InProceedings<span class="nb">{</span>Bulten18,
</span></span><span class="line"><span class="cl">  author    = <span class="nb">{</span>Bulten, Wouter and Litjens, Geert<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  title     = <span class="nb">{</span>Unsupervised Prostate Cancer Detection on H<span class="k">\&amp;</span>E using Convolutional Adversarial Autoencoders<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  booktitle = <span class="nb">{</span>Medical Imaging with Deep Learning<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  year      = <span class="nb">{</span>2018<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  url       = <span class="nb">{</span>https://arxiv.org/abs/1804.07098<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  abstract  = <span class="nb">{</span>We propose an unsupervised method using self-clustering convolutional adversarial autoencoders to classify prostate tissue as tumor or non-tumor without any labeled training data. The clustering method is integrated into the training of the autoencoder and requires only little post-processing. Our network trains on hematoxylin and eosin (H<span class="k">\&amp;</span>E) input patches and we tested two different reconstruction targets, H<span class="nb">&amp;</span>E and immunohistochemistry (IHC). We show that antibody-driven feature learning using IHC helps the network to learn relevant features for the clustering task. Our network achieves a F1 score of 0.62 using only a small set of validation labels to assign classes to clusters.<span class="nb">}</span>,
</span></span><span class="line"><span class="cl"><span class="nb">}</span>
</span></span></code></pre></div><div class="post-info-frame">
    <figure>
     <img src="/images/pdh_thesis_wouterbulten_graphic.png" loading="lazy" alt="Artificial intelligence as a digital fellow in pathology: human-machine synergy for improved prostate cancer diagnosis"></a>
    </figure>
    
    <h2>Series on my PhD in Computational Pathology</h2>
    
    <p>This post is part of a series related to my PhD project on prostate cancer, deep learning and computational pathology. In my research I developed AI algorithms to diagnose prostate cancer. Interested in the rest of my research? The three latest post are shown below. For all the posts, you can find <a href="/tags/research">all posts tagged with research</a>.</p>
        
    <h3>Latest post related to my research</h3>
    <ul>
    
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/panda-challenge/">AI for diagnosis of prostate cancer: the PANDA challenge</a></h3>
            <p><small>Artificial intelligence (AI) for prostate cancer analysis is ready for clinical implementation, shows a global programming competition, the PANDA challenge.</small></o>
        </li>
     
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/improve-prostate-cancer-diagnosis-panda-challenge/">Improve prostate cancer diagnosis: participate in the PANDA Gleason grading challenge</a></h3>
            <p><small>Can you build a deep learning model that can accurately grade protate biopsies? Participate in the PANDA challenge </small></o>
        </li>
     
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/potential-of-ai-in-medicine-improving-prostate-cancer-diagnosis/">The potential of AI in medicine: AI-assistance improves prostate cancer grading</a></h3>
            <p><small>In a completely new study we investigated the possible benefits of an AI system for pathologists. Instead of focussing on pathologist-versus-AI, we instead look at potential pathologist-AI synergy.</small></o>
        </li>
     
    </ul>

    <h3>Deep learning posts</h3>
    <p>Sometimes I write a blog post on deep learning or related techniques. The latest posts are shown below. Interested in reading all my blog posts? You can read them on my tech blog.</p>

    <ul>
        
        

        
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/data-augmentation-using-tensorflow-data-dataset/">Simple and efficient data augmentations using the Tensorfow tf.Data and Dataset API</a></h3>
                <p><small>The tf.data API of Tensorflow is a great way to build a pipeline for sending data to the GPU. In this post I give a few examples of augmentations and how to implement them using this API.</small></o>
            </li>
         
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/getting-started-with-gans-2-colorful-mnist/">Getting started with GANs Part 2: Colorful MNIST</a></h3>
                <p><small>In this post we build upon part 1 of &#39;Getting started with generative adversarial networks&#39; and work with RGB data instead of monochrome. We apply a simple technique to map MNIST images to RGB.</small></o>
            </li>
         
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/getting-started-with-generative-adversarial-networks/">Getting started with generative adversarial networks (GAN)</a></h3>
                <p><small>Generative Adversarial Networks (GANs) are one of the hot topics within Deep Learning right now and are applied to various tasks. In this post I&#39;ll walk you through the first steps of building your own adversarial network with Keras and MNIST.</small></o>
            </li>
         
    </ul>
</div>
<h2 id="references">References</h2>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Torre, L. A., Bray, F., Siegel, R. L., Ferlay, J., Lortet-tieulent, J., and Jemal, A., &ldquo;Global Cancer Statistics, 2012,&rdquo; CA: a cancer journal of clinicians. 65(2), 87-108 (2015).&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>A. Makhzani, J. Shlens, N. Jaitly, and I. Goodfellow, “Adversarial autoencoders,” in International Conference on Learning Representations, 2016.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
    </item>
    
    <item>
      <title>Epithelium segmentation in H&amp;E-stained prostate tissue using deep learning</title>
      <link>https://www.wouterbulten.nl/posts/epithelium-segmentation-using-deep-learning/</link>
      <pubDate>Tue, 26 Jun 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.wouterbulten.nl/posts/epithelium-segmentation-using-deep-learning/</guid>
      <description>Building systems to detect tumor, in this case prostate cancer, is often hard due to a lack of data. Tumor annotations made by pathologists are often coarse due to time constraints. With this project we want to automatically refine these annotations by building a system that can automatically filter out irrelevant parts of the data.</description>
      <content:encoded><![CDATA[<p>Recently, I presented a <a href="https://doi.org/10.1117/12.2292872">conference article</a> at SPIE Medical Imaging 2018, as part of my PhD in computational pathology, deep learning and prostate cancer. In this project we tackled the problem of epithelium segmentation using deep learning. It was the first project I worked on within computational pathology.</p>
<p><em>This post gives a highlight of our work. Want to have more in depth details? All details on the data, training procedure and network architectures are available in the <a href="https://doi.org/10.1117/12.2292872">article</a> itself.</em></p>
<h2 id="why-epithelium">Why epithelium?</h2>
<p>Prostate cancer (PCa) is the most common cancer in men in developed countries<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. PCa develops from genetically damaged glandular epithelium and in the case of high-grade tumors, the glandular structure is eventually lost<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>. As PCa originates from epithelial cells, glandular structures within prostate specimens are regions of interest for finding malignant tissue.</p>
<p><figure>
    <img loading="lazy" src="/assets/images/deep-learning/epithelium_examples.png" alt="Different types of glands: normal glandular structure (a); poorly differentiated, high-grade Gleason 5 PCa (b); non-tumor epithelium surrounded by inflammation (c); Gleason 3 PCa showing color variation between slides (d).">
    <figcaption>
        <p>Different types of glands: normal glandular structure (a); poorly differentiated, high-grade Gleason 5 PCa (b); non-tumor epithelium surrounded by inflammation (c); Gleason 3 PCa showing color variation between slides (d).</p>
    </figcaption>
</figure>  </p>
<p>Building systems to detect tumor is often hard due to a lack of data. In general, more data equals a higher performance. Typically, deep learning methods that try to detect cancer from scanned tissue specimens use a set of annotated cancer regions as the reference standard for training. As these algorithms learn from their training data, the quality of the annotations directly influences the quality of the output. Tumor annotations made by pathologists are often coarse due to time constraints (see picture below, 2nd image).  Outlining all individual tumor cells within PCa is practically infeasible due to the mixture of glandular, stromal and inflammatory components. These coarse annotations limit the potential of these deep learning methods.</p>
<p><figure>
    <img loading="lazy" src="/assets/images/deep-learning/prostate_biopsies_overlay.png" alt="Example prostate tissue with PCa (extracted from a core needle biopsy) (1), tumor annotations (2), epithelium segmentation (3), segmentation and annotations combined (4). ">
    <figcaption>
        <p>Example prostate tissue with PCa (extracted from a core needle biopsy) (1), tumor annotations (2), epithelium segmentation (3), segmentation and annotations combined (4). </p>
    </figcaption>
</figure>  </p>
<p>We propose a method to automatically refine these coarse tumor annotations by training a system that can automatically filter out irrelevant parts of the data, in this case all non-epithelial tissue. This method results in fine-grained annotations without additional manual effort.</p>
<h2 id="how-did-we-approach-this">How did we approach this?</h2>
<p>As data for our experiments we used 30 digitally scanned <a href="https://en.wikipedia.org/wiki/H%26E_stain">H&amp;E</a> whole mount tissue sections from 27 patients that underwent RP treatment. The reported Gleason growth patterns in these sections ranged from 3 to 5. The specimens were randomly split into three sets: 15 slides for training, 5 for validation and 10 for testing.</p>
<p>We compared U-Net<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup> (which is specifically designed for segmentation) and a general fully convolutional network (FCN). For both types of network we tested differences in layer depth. The networks are trained on patches extracted from digitally scanned prostate tissue slices at 10x magnification.</p>
<p><figure>
    <img loading="lazy" src="/assets/images/deep-learning/prostate_annotation_example.png" alt="Example of annotated training data. Many of these regions were annotated by hand. The annotated epithelial glands are outlined in red.">
    <figcaption>
        <p>Example of annotated training data. Many of these regions were annotated by hand. The annotated epithelial glands are outlined in red.</p>
    </figcaption>
</figure>  </p>
<h2 id="what-are-the-results">What are the results?</h2>
<p>The most important numerical results can be found in the table below. See the article for a breakdown in cancer/non-cancer.</p>
<p>For both types of networks, the deeper the network the higher the performance. However, a deeper network also increases the parameter complexity, especially in the case of the FCN. Given the comparable performance, we labeled the U-Net as the winner given its lower parameter count.</p>
<p>The best <strong>U-Net produces fine grained segmentations</strong> and achieves a <strong>F1 score of 0.82 and an AUC of 0.97</strong>.</p>
<p><figure>
    <img loading="lazy" src="/assets/images/deep-learning/classification_cancer_lg.png" alt="Example of one of the regions of our test set. The network is applied to the input image (1). The ground truth (2) can then be compared with the network output (3). The segmentation overlay (4) shows the performance of the network: green marked pixels show true positive, blue false negative and red false positive.">
    <figcaption>
        <p>Example of one of the regions of our test set. The network is applied to the input image (1). The ground truth (2) can then be compared with the network output (3). The segmentation overlay (4) shows the performance of the network: green marked pixels show true positive, blue false negative and red false positive.</p>
    </figcaption>
</figure>  </p>
<table>
<thead>
<tr>
<th></th>
<th>Network</th>
<th>Depth</th>
<th>Contraction parameters</th>
<th>Total parameters</th>
<th>F1</th>
<th>Accuracy</th>
<th>AUC total</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>U-Net</td>
<td>2</td>
<td>16,944</td>
<td>26,130</td>
<td>0.79</td>
<td>0.87</td>
<td>0.95</td>
</tr>
<tr>
<td>2</td>
<td>U-Net</td>
<td>3</td>
<td>72,752</td>
<td>118,162</td>
<td>0.82</td>
<td>0.90</td>
<td>0.96</td>
</tr>
<tr>
<td>3</td>
<td>U-Net</td>
<td>4</td>
<td>294,960</td>
<td>484,498</td>
<td>0.82</td>
<td>0.90</td>
<td>0.97</td>
</tr>
<tr>
<td>4</td>
<td>FCN</td>
<td>2</td>
<td>16,944</td>
<td>6,322,738</td>
<td>0.79</td>
<td>0.87</td>
<td>0.94</td>
</tr>
<tr>
<td>5</td>
<td>FCN</td>
<td>3</td>
<td>72,752</td>
<td>10,572,850</td>
<td>0.81</td>
<td>0.88</td>
<td>0.95</td>
</tr>
<tr>
<td>6</td>
<td>FCN</td>
<td>4</td>
<td>294,960</td>
<td>19,183,666</td>
<td>0.83</td>
<td>0.89</td>
<td>0.96</td>
</tr>
</tbody>
</table>
<h2 id="next-steps">Next steps</h2>
<p>Room for improvement lays with segmenting glands as a whole. Our models rarely misses complete cancer regions, though with some high-grade PCa only parts of the glands are detected. We suspect that most of the errors are, first of all, caused by a lack of training examples and not due to a limitation of the models.</p>
<p>A logical next step is to improve our dataset. However, manual annotations are flawed due to the difficulty of making correct and precise annotations, especially in tumor areas. A potential solution for this is using immunohistochemistry to assist in making annotations. By using specific stains that highlight epithelial cells, we hope to generate precise and less erroneous annotations of epithelial tissue.</p>
<p><figure>
    <img loading="lazy" src="/assets/images/deep-learning/epithelium_wholeslide_zoom.jpg" alt="After training the networks can be applied on a whole-slide level, segmenting the full prostate slide. Each slide is extremely large and measures around 200.000 by 100.000 pixels.">
    <figcaption>
        <p>After training the networks can be applied on a whole-slide level, segmenting the full prostate slide. Each slide is extremely large and measures around 200.000 by 100.000 pixels.</p>
    </figcaption>
</figure>  </p>
<h2 id="more-info--citation">More info &amp; citation</h2>
<p>This work was presented at SPIE Medical Imaging 2018. Want to read more? Please refer to the <a href="https://doi.org/10.1117/12.2292872">conference paper</a> as it contains more detail on the data, training procedure and network architectures. Feel free to add any questions as comments to this post.</p>
<p>You can use the following reference if you want to cite my paper:</p>
<blockquote>
<p>Wouter Bulten, Christina A. Hulsbergen-van de Kaa, Jeroen van der Laak, Geert J. S. Litjens, &ldquo;Automated segmentation of epithelial tissue in prostatectomy slides using deep learning,&rdquo; Proc. SPIE 10581, Medical Imaging 2018: Digital Pathology, 105810S (6 March 2018)</p>
</blockquote>
<p>Or, if you prefer BibTeX:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-tex" data-lang="tex"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">@inproceedings<span class="nb">{</span>Bulten2018,
</span></span><span class="line"><span class="cl">  author = <span class="nb">{</span>Bulten, Wouter and <span class="nb">{</span>Hulsbergen-van de Kaa<span class="nb">}</span>, Christina A. and van der Laak, Jeroen and Litjens Geert J S<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  booktitle = <span class="nb">{</span>Medical Imaging 2018: Digital Pathology<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  doi = <span class="nb">{</span>10.1117/12.2292872<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  isbn = <span class="nb">{</span>9781510616516<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  title = <span class="nb">{{</span>Automated segmentation of epithelial tissue in prostatectomy slides using deep learning<span class="nb">}}</span>,
</span></span><span class="line"><span class="cl">  volume = <span class="nb">{</span>10581<span class="nb">}</span>,
</span></span><span class="line"><span class="cl">  year = <span class="nb">{</span>2018<span class="nb">}</span>
</span></span><span class="line"><span class="cl"><span class="nb">}</span>
</span></span></code></pre></div><div class="post-info-frame">
    <figure>
     <img src="/images/pdh_thesis_wouterbulten_graphic.png" loading="lazy" alt="Artificial intelligence as a digital fellow in pathology: human-machine synergy for improved prostate cancer diagnosis"></a>
    </figure>
    
    <h2>Series on my PhD in Computational Pathology</h2>
    
    <p>This post is part of a series related to my PhD project on prostate cancer, deep learning and computational pathology. In my research I developed AI algorithms to diagnose prostate cancer. Interested in the rest of my research? The three latest post are shown below. For all the posts, you can find <a href="/tags/research">all posts tagged with research</a>.</p>
        
    <h3>Latest post related to my research</h3>
    <ul>
    
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/panda-challenge/">AI for diagnosis of prostate cancer: the PANDA challenge</a></h3>
            <p><small>Artificial intelligence (AI) for prostate cancer analysis is ready for clinical implementation, shows a global programming competition, the PANDA challenge.</small></o>
        </li>
     
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/improve-prostate-cancer-diagnosis-panda-challenge/">Improve prostate cancer diagnosis: participate in the PANDA Gleason grading challenge</a></h3>
            <p><small>Can you build a deep learning model that can accurately grade protate biopsies? Participate in the PANDA challenge </small></o>
        </li>
     
        <li>
            <h4><a href="https://www.wouterbulten.nl/posts/potential-of-ai-in-medicine-improving-prostate-cancer-diagnosis/">The potential of AI in medicine: AI-assistance improves prostate cancer grading</a></h3>
            <p><small>In a completely new study we investigated the possible benefits of an AI system for pathologists. Instead of focussing on pathologist-versus-AI, we instead look at potential pathologist-AI synergy.</small></o>
        </li>
     
    </ul>

    <h3>Deep learning posts</h3>
    <p>Sometimes I write a blog post on deep learning or related techniques. The latest posts are shown below. Interested in reading all my blog posts? You can read them on my tech blog.</p>

    <ul>
        
        

        
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/data-augmentation-using-tensorflow-data-dataset/">Simple and efficient data augmentations using the Tensorfow tf.Data and Dataset API</a></h3>
                <p><small>The tf.data API of Tensorflow is a great way to build a pipeline for sending data to the GPU. In this post I give a few examples of augmentations and how to implement them using this API.</small></o>
            </li>
         
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/getting-started-with-gans-2-colorful-mnist/">Getting started with GANs Part 2: Colorful MNIST</a></h3>
                <p><small>In this post we build upon part 1 of &#39;Getting started with generative adversarial networks&#39; and work with RGB data instead of monochrome. We apply a simple technique to map MNIST images to RGB.</small></o>
            </li>
         
            <li>
                <h4><a href="https://www.wouterbulten.nl/posts/getting-started-with-generative-adversarial-networks/">Getting started with generative adversarial networks (GAN)</a></h3>
                <p><small>Generative Adversarial Networks (GANs) are one of the hot topics within Deep Learning right now and are applied to various tasks. In this post I&#39;ll walk you through the first steps of building your own adversarial network with Keras and MNIST.</small></o>
            </li>
         
    </ul>
</div>
<h2 id="references">References</h2>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Torre, L. A., Bray, F., Siegel, R. L., Ferlay, J., Lortet-tieulent, J., and Jemal, A., &ldquo;Global Cancer Statistics, 2012,&rdquo; CA: a cancer journal of clinicians. 65(2), 87-108 (2015).&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Fine, S. W., Amin, M. B., Berney, D. M., Bjartell, A., Egevad, L., Epstein, J. I., Humphrey, P. A., Magi- Galluzzi, C., Montironi, R., and Stief, C., “A contemporary update on pathology reporting for prostate cancer: Biopsy and radical prostatectomy specimens,” European Urology 62(1), 20–39 (2012).&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>Ronneberger, O., Fischer, P., &amp; Brox, T. (2015, October). U-net: Convolutional networks for biomedical image segmentation. In International Conference on Medical image computing and computer-assisted intervention (pp. 234-241). Springer, Cham.&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
    </item>
    
    <item>
      <title>IoTDI/IC2E 2016 Presentation: Human SLAM</title>
      <link>https://www.wouterbulten.nl/posts/iotdi-ic2e-conference-presentation-human-slam/</link>
      <pubDate>Sun, 17 Apr 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.wouterbulten.nl/posts/iotdi-ic2e-conference-presentation-human-slam/</guid>
      <description>Last week I gave a presentation at IoTDI 2016 regarding my Human SLAM research. My presentation can be viewed online.</description>
      <content:encoded><![CDATA[<p>During the joint conferences of the IEEE International Conference on the Internet-of-Things Design and Implementation (IoTDI) (<a href="http://conferences.computer.org/IC2E/2016/">website</a>) and the IEEE International Conference on Cloud Engineering (IC2E) (<a href="http://conferences.computer.org/IoTDI/">website</a>) I presented my work on indoor localisation and SLAM:</p>
<blockquote>
<p>
The indoor localisation problem is more complex than just finding whereabouts of users. Finding positions of users relative to the devices of a smart space is even more important. Unfortunately, configuring such systems manually is a tedious process, requires expert knowledge, and is sensitive to changes in the environment. Moreover, many existing solutions do not take user privacy into account.
<p>We propose a new system, called Simultaneous Localisation and Configuration (SLAC), to address the problem of locating devices and users relative to those devices, and combine this problem into a single estimation problem. The SLAC algorithm, based on FastSLAM, is able to locate devices using the received signal strength indicator (RSSI) of devices and motion data from users.</p>
</p>
</blockquote>
<p>The presentation can be viewed online for those that are interested in our research and design considerations. As the presentation is built using Reveal.js it can be viewed in any modern browser (both mobile and desktop).</p>
<p>View the presentation <a href="https://code.wouterbulten.nl/human-slam-presentation/">full screen (external window) →</a></p>
<iframe src="https://code.wouterbulten.nl/human-slam-presentation/" style="width:100%;height: 400px"></iframe>
<em>
W. Bulten, A. C. V. Rossum and W. F. G. Haselager, “Human SLAM, Indoor Localisation of Devices and Users,” 2016 IEEE First International Conference on Internet-of-Things Design and Implementation (IoTDI), Berlin, 2016, pp. 211-222. doi: 10.1109/IoTDI.2015.19 <a href="http://ieeexplore.ieee.org/document/7471364">Online publication</a>
</em>
]]></content:encoded>
    </item>
    
    <item>
      <title>Human SLAM, Indoor localization using particle filters</title>
      <link>https://www.wouterbulten.nl/posts/human-slam-indoor-localization-using-particle-filters/</link>
      <pubDate>Wed, 23 Sep 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.wouterbulten.nl/posts/human-slam-indoor-localization-using-particle-filters/</guid>
      <description>A key problem (or challenge) within smart spaces is indoor localization: making estimates of users’ whereabouts. Without such information, systems are unable to react on the presence of users or, sometimes even more important, their absence. This can range from simply turning the lights on when someone enters a room to customizing the way devices interact with a specific user.
Even more important for a system to know where users exactly are, is to know where users are relative to the devices it can control or use to sense the environment.</description>
      <content:encoded><![CDATA[<p>A key problem (or challenge) within smart spaces is indoor localization: making estimates of users’ whereabouts. Without such information, systems are unable to react on the presence of users or, sometimes even more important, their absence. This can range from simply turning the lights on when someone enters a room to customizing the way devices interact with a specific user.</p>
<p>Even more important for a system to know where users exactly are, is to know where users are relative to the devices it can control or use to sense the environment. This relation between user and device location is an essential input to these systems. A central question in this field is therefore:</p>
<blockquote>
<p>What are the locations of devices in a smart space and what are the current locations of users relative to these devices?</p>
</blockquote>
<p>During my graduation project at DoBots I worked on an algorithm, called SLAC : Simultaneous Localization and Configuration, to solve this double localization problem: finding position of users and devices simultaneously.  With SLAC we aimed to simultaneously locate both the user and the devices of a system deployed in an indoor environment. The target platform was the Crownstone.</p>
<p>The general idea of the project is to combine characteristics of devices with information from users that walk around in a building. The figure below illustrates this. We start without any knowledge (1), then we let users walk around and gather data (2), eventually we will learn the locations of each device in the building (3).</p>
<p><figure>
    <img loading="lazy" src="/assets/images/slacjs/slac_project_overview.png" alt="SLAC project overview">
    <figcaption>
        <p>SLAC project overview</p>
    </figcaption>
</figure>  </p>
<p>We use characteristics that are already available in many smart spaces: signal strength measurements (or RSSI) from devices and motion data from smart phones and other portable devices. These two inputs are combined in a system that can locate users and devices, respect individual users’ privacy and perform all estimations in real time. SLAC is based on a common technique from robotics, <a href="https://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping">simultaneous localization and mapping</a> (SLAM), and in particular the FastSLAM algorithm<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p>
<h3 id="algorithm-overview">Algorithm overview</h3>
<p><figure>
    <img loading="lazy" src="/assets/images/slacjs/slac_algorithm.svg" alt="SLAC algorithm">
    <figcaption>
        <p>SLAC algorithm</p>
    </figcaption>
</figure>  </p>
<p>The SLAC algorithm uses two types of inputs: signal strength (RSSI) measurements to determine distances to devices and inertial measurement unit (IMU) data for pose estimations.</p>
<p>The raw RSSI signal contains noise. To filter out large spikes, while trying to retain distance information, a (regular) <a href="https://en.wikipedia.org/wiki/Kalman_filter">Kalman filter</a> is used to filter incoming signal strength measurements.</p>
<p>The second input is focussed on modeling motion. Two sensors are used to measure the motion of users: an accelerometer and a compass. These two sensors are present in almost any modern mobile device (including phones, tablets and wearables). The compass returns the current rotation or heading relative to the global north; this does not require any processing and can be used directly as an input. The acceleration is used as input for a pedometer. The pedometer is based on a design by Zhao (2010)<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> and Ménigot (2014)<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup>.</p>
<p>Given the distance measurements and the motion data, we can map the SLAM problem to the domain of sensor networks and indoor localization. The robot’s controls, which are used for pose sampling, are replaced by our motion estimates. The observations, which are often 2D measurements, are replaced by 1D RSSI measurements similar to the approach of Sun et al. (2009)<sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup>. The flow and update rate of the SLAC algorithm is controlled by the pedometer: the algorithm is run after a new step has been detected.</p>
<p>As device observations are 1D and signals propagate spherical it is impossible, given a single measurement, to determine the bearing of an observation. We therefore must first make an initial estimate of a beacon location before we can refine it using the default method of FastSLAM. We solve this by implementing a second separate particle filter that focusses solely on finding an initial estimate of a device&rsquo;s location.  After each new measurement we update this filter by computing the importance weight and subsequently resampling the filter. When the variance between particles is low enough (given some threshold), we assume that a a devices&rsquo;s location has been found.</p>
<p>Our initialization filter is a separate component that uses the current best user estimate as input. So, to improve on our rough initial estimate we move the estimation from the global initalization filter to each individual particle. As it is impractical to update MxN particle filters (one particle filter per landmark per particle) we use an <a href="https://en.wikipedia.org/wiki/Extended_Kalman_filter">extended Kalman filter</a> (EKF) to estimate a landmark’s location (similar to the original FastSLAM implementation).</p>
<p>When each observation is processed all particles have been updated and contain new importance weights. We then perform resampling. However, it does not make sense to resample after each step; there is just to little information for the resample process. In order to overcome this we utilize <a href="https://en.wikipedia.org/wiki/Particle_filter#Sequential_importance_resampling_.28SIR.29">Sequential Importance Resampling</a> (SIR).</p>
<h3 id="implementation">Implementation</h3>
<p><figure>
    <img loading="lazy" src="/assets/images/slacjs/slac_devices_example.png" alt="Screenshots of application">
    <figcaption>
        <p>Screenshots of application</p>
    </figcaption>
</figure>  </p>
<p>SLAC has been fully implemented in Javascript and more specifically using the <em>ECMAScript version 6/2015</em> standard. Javascript has been chosen to support a large range of devices on which the algorithm can run; this includes web browsers and mobile phones. The <a href="https://cordova.apache.org">Apache Cordova platform</a> was used to access native API’s of mobile devices such as the Bluetooth radio and the motion sensors.</p>
<h3 id="simulations">Simulations</h3>
<p>We evaluated the system using simulations first; this granted the opportunity to repeat the experiment and control the environment. In the simulations we emulated the world by building an environment of similar dimensions as one of our real world test beds.</p>
<p>We varied the number of RSSI updates each device broadcasts between each consecutive algorithm step. As the signal strength is used to make range estimates the number of received messages could have an effect on the overall performance. The different settings are: 1, 2, 5, 10, 25, 50 and 100 updates per step. The results are shown in the figure below.</p>
<p><figure>
    <img loading="lazy" src="/assets/images/slacjs/slac_rssi_step.png" alt="Results of and simulations">
    <figcaption>
        <p>Results of and simulations</p>
    </figcaption>
</figure>  </p>
<p>We found that the number of RSSI updates per algorithm step has a very high effect on the performance of the system. This follows directly from our system: given more information the Kalman filter responsible for filtering the raw RSSI signal will be able to give a less noisy estimate of the current distance to a device. These distance estimates are vital in updating device positions and weighing particles. These results suggest that we need a high update rate for real world applications.</p>
<p>In terms of performance, these simulations showed that within controlled environments (i.e. Gaussian noise, fixed paths of users, no obstacles), we can achieve an average localization error below .20m. This means that, after running the algorithm, the estimate of a device’s location will, on average, only be 20 centimeters away from its actual position. When the update frequency of devices is lowered, to a level similar to our live tests, the average localization error increased and resulted in an average error of .69 to 1.25m.</p>
<h3 id="real-world-tests">Real world tests</h3>
<p>Simulating RSSI values and movement has its drawbacks: noise is predictable and there is less interference from events in the environment. In general it is hard to fully simulate all the factors of a real world environment. In order to asses the performance of the algorithm outside a simulated world, we also tested the algorithm in the wild at the DoBots/Almende building.</p>
<p>While SLAC runs online and in real time, the data for this live test has been recorded and analyzed offline at a later stage. The algorithm did however run during the data collection to give feedback about the process. Each recorded data set consisted of the raw unprocessed and unfiltered motion data (i.e. acceleration and heading) and RSSI measurements. These datasets are played back several times to get an average performance. This is particular important as the algorithm is a random process: using the same input data twice will result in different outcomes.</p>
<blockquote>
<p>Interested in a demo? On the project page of SLACjs there is a <a href="/projects/slacjs/#demo">demo</a> that shows the localization algorithm using real (recorded) data.</p>
</blockquote>
<p>The results of our live tests are shown in the figure below (A_1 to A_4). Additionally, the simulations results of the two conditions (Sim 5 &amp; Sim 10) which are comparable to a real world setup are displayed as a reference.</p>
<p><figure>
    <img loading="lazy" src="/assets/images/slacjs/slac_almende_results.png" alt="Results of live tests and simulations">
    <figcaption>
        <p>Results of live tests and simulations</p>
    </figcaption>
</figure>  </p>
<p>All combined, our live tests showed a localization error of 2.3m, averaged over all devices. This result is good enough for room level accuracy, but there is room for improvement. These results where achieved by letting a single user walk around for one to two minutes (roughly 60 steps). All computations are done locally, i.e. running on users’ devices and without using prior information of the environment.</p>
<h3 id="demo">Demo</h3>
<p>A video of a simulation of the algorithm can be seen in the video below. A user is walking inside a building/smart space filled with seven simulated devices (DoBeacons). The blue line describes the ground truth of the user&rsquo;s path. The green line is the current best estimate of this path. Devices are displayed using squares; true positions are displayed in black and estimates in red.</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/NzOi9uYiAOw?rel=0" frameborder="0" allowfullscreen></iframe>
<p>An online demo can also be found on the website of <a href="https://wouterbulten.nl/projects/slacjs/">SLACjs</a>.</p>
<h3 id="code">Code</h3>
<p>The full source code is available online on <a href="https://github.com/wouterbulten/slacjs">GitHub</a> and is licensed under the GNU Lesser General Public License v3.</p>
<h3 id="source">Source</h3>
<p>This post was originally written for the <a href="https://dobots.nl/2015/09/03/human-slam-indoor-localization-using-particle-filters/">DoBots website</a>.</p>
<em>
W. Bulten, A. C. V. Rossum and W. F. G. Haselager, “Human SLAM, Indoor Localisation of Devices and Users,” 2016 IEEE First International Conference on Internet-of-Things Design and Implementation (IoTDI), Berlin, 2016, pp. 211-222. doi: 10.1109/IoTDI.2015.19 <a href="http://ieeexplore.ieee.org/document/7471364">Online publication</a>
</em>
<h3 id="references">References</h3>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Michael Montemerlo, Sebastian Thrun, Daphne Koller, and Ben Wegbreit. FastSLAM: A factored solution to the simultaneous localization and mapping problem. Proc. of 8th National Conference on Artificial Intelligence/14th Conference on Innovative Applications of Artificial Intelligence, 68(2):593–598, 2002.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Neil Zhao. Full-featured pedometer design realized with 3-Axis digital accelerometer. Analog Dialogue, 44(6), 2010.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>Sébastien Ménigot. Pedometer in HTML5 for Firefox OS and Firefox for Android, 2014. <a href="http://sebastien.menigot.free.fr/index.php?option=com_content&amp;view=article&amp;id=93:pedometer-in-html5-&amp;catid=46:web-application-for-firefox-os&amp;Itemid=82">source</a>&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p>Dali Sun, Alexander Kleiner, and Thomas M. Wendt. Multi-robot range-only SLAM by active sensor nodes for urban search and rescue. In Robocup 2008: Robot Soccer World Cup XII, volume 5399, pages 318–330, 2009.&#160;<a href="#fnref:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
