Dice Similarity Coefficent vs. IoU

Several readers emailed regarding the segmentation performance of the FCN-8s model I trained in Chapter Four. Specifically, they asked for more detail regarding quantification metrics used to measure the segmentation performance of deep neural networks (DNN). Recall that the Dice similarity coefficient (a.k.a Dice score) was used to to quantify how closely FCN-8s matched the training dataset’s hand annotated ground truth segmentation. The FCN-8s model using the Adam adaptive optimizer had a Dice score of over 96% when trained on preprocessed CT images. But what exactly does this score measure? In this article we’ll learn more about the Dice coefficient and contrast it to the intersection over union (IoU) score which is another popular measure of an algorithm’s pixel-level image segmentation performance.

Take a look at the Cityscapes Dataset segmentation leaderboard in Figure 1. The segmented features of interest in this image dataset are common objects found in a typical city scene such as buildings, roads and traffic lights. Clearly the Cityscapes Dataset is useful for training autonomous driving deep learning networks! Competing DNN models are listed in column 1. Column 2 lists the mean IoU score for each DNN which is the simple average of the per class IoU score. The per class IoU scores for the first 7 classes (road, sidewalk, building etc.) are displayed in columns 3 through 9. To further confuse you, IoU is also known as the Jaccard similarity coefficient or Jaccard score.

IoU and Dice use slightly different approaches to measure how similar an image segmentation algorithm’s results are to it’s corresponding ground truth segmentation. Let’s take a look at IoU first as it is easy to represent geometrically:

In Figure 2, assume the box in the upper left labeled “Ground Truth” is the segmentation region annotated by humans. The box labeled “DNN Result” is the segmentation result produced a deep learning algorithm on the same image. The area of overlap between human and AI results is the blue square in the numerator image. This is the region where an image segmentation algorithm identifies pixels that exactly match the annotated ground truth segmentation. These pixels are known as true positives (TP)The area of union in the denominator combines the segmentation results of both human and AI and then subtracts the true positives to prevent those pixels from being double counted:

In Figure 3, the pixels in the red region were erroneously segmented by the DNN and are known as false positives (FP)The pixels in the yellow region should have segmented by the DNN but were missed. These missed pixels are known as false negatives (FN). If the area of overlap equals the area of union, we have perfect segmentation and the IoU is equal to 1. In that case, FP, TP and FN are all equal to 0:

How does IoU score relate to the Dice’s similarity coefficient? Let’s rewrite IoU terms of TP, FP and FN regions shown in Figure 3:

The derivation of the Dice score is not as easily described geometrically as IoU and is beyond the scope of this article. The interested reader is encouraged to look here under the subheading F-measure. The Dice score can be expressed in terms of TP, FP and FN as follows:

A little algebra yields the following equivalence relations:

Revisiting Chapter 4, the FCN-8s DNN using the Adam optimizer on my preprocessed CT training image dataset had a Dice value of 0.961951 (~96%). Plugging this value into the Equation 3, we get a corresponding IoU score of 0.926691 (~93%). Regardless of metric chosen, considering the best mean IoU value in the Cityscapes Dataset is 83.2%, this is one high-performing fully convolutional neural net!

It's clear that using Dice could have higher score!!!
 

最新文章

  1. Ubuntu Server无线连接配置
  2. eclipse在光标停留在同一对象的背景色提示,开启与关闭
  3. 【BZOJ】3240: [Noi2013]矩阵游戏
  4. impdp使用
  5. [C#] Control.Invoke方法和跨线程访问控件
  6. 理解Python的with as语句
  7. [转]ARM64 Function Calling Conventions
  8. mongoDB1--什么是mongoDB
  9. 升级后 VTE 类虚拟终端不工作
  10. 关于Struts2中 Action 配置method的解读
  11. 炸金花游戏(3)--基于EV(期望收益)的简单AI模型
  12. Ubuntu下安装程序的三种方法(转)
  13. lua --- __newindex 的使用规则
  14. New users can not log on Win8
  15. windowns 2008(apache2.2.25 x86 openssl0.98y) 升级openssl1.0.1e(为了支持小程序接口TLS1.2)
  16. innodb的锁、update单条记录的花费时间压测
  17. TCP: time wait bucket table overflow解决方法
  18. 漫谈单点登录(SSO)(淘宝天猫)(转载)
  19. PSAPI和ToolHelpAPI学习笔记
  20. synchronize模块

热门文章

  1. 将html中的内容生成PDF并且下载
  2. Java线程池定制ThreadPoolExecutor官方定制实例
  3. CodeForces 1228F One Node is Gone
  4. Django---ORM的常用字段和自定义字段,DjangoORM字段与数据库类型对应,字段参数和Meta的参数,Django的admin操作,13中orm操作方法,单标的双下方法
  5. layui 表格中实现照片预览,点击查看原图
  6. QTGraphics-View拖拽以及鼠标指针操作
  7. [TensorFlow 2.0] Keras 简介
  8. 99.9%的Java程序员都说不清的问题:JVM中的对象内存布局?
  9. 《Spring Boot Cook Book》阅读笔记
  10. linux设备驱动程序--hello-world