语义分割:基于openCV和深度学习(一)

Semantic segmentation with OpenCV and deep learning

介绍如何使用OpenCV、深度学习和ENet架构执行语义分段。阅读完今天的文章后,能够使用OpenCV对图像和视频应用语义分割。深度学习有助于提高计算机视觉的前所未有的准确性,包括图像分类、目标检测,现在甚至分割。

传统的分割方法是将图像分割为若干部分(标准化切割、图形切割、抓取切割、超像素等);然而,算法并没有真正理解这些部分所代表的内容。

另一方面,语义分割算法试图:

把图像分成有意义的部分,同时,将输入图像中的每个像素与类标签(即人、路、车、公共汽车等)相关联,语义分割算法非常强大,有很多用例,包括自动驾驶汽车——展示如何将语义分割应用于道路场景图像/视频!要学习如何使用OpenCV和深度学习应用语义分割,请继续阅读!

寻找这篇文章的源代码?直接跳到下载部分。OpenCV语义分割与深度学习              在文章的第一部分,将讨论ENet深度学习体系结构。

在这里,将演示如何使用ENet对图像和视频流应用语义分割。在这一过程中,将分享来自分段的示例输出,将语义分段应用于项目时感受到预期的结果。

The ENet semantic segmentation architecture

Figure 1: The ENet deep learning semantic segmentation architecture.

ENet的一个主要优点是它的速度比大型模型快18倍,需要的参数比大型模型少79倍,具有相似或更好的精度。型号本身只有3.2兆!              在的计算机上,一次CPU转发需要0.2秒——如果使用GPU,这个分段网络可以运行得更快。Paszke等人。在Cityscapes数据集上训练该数据集,这是一个语义的、实例化的、密集的像素注释,包含20-30个类(取决于使用的模型)。顾名思义,城市景观数据集包括可用于城市场景理解的图像示例,包括自动驾驶车辆。

使用的特定模型在20个课题中进行了训练,包括:

如何应用语义分割来提取图像和视频流中每个类的密集像素映射。如果有兴趣,在自定义数据集上训练自己的ENet模型进行分段。

Semantic segmentation with OpenCV and deep learning

$ tree --dirsfirst

.

├── enet-cityscapes

│ ├── enet-classes.txt

│ ├── enet-colors.txt

│ └── enet-model.net

├── images

│ ├── example_01.png

│ ├── example_02.jpg

│ ├── example_03.jpg

│ └── example_04.png

├── videos

│ ├── massachusetts.mp4

│ └── toronto.mp4

├── output

├── segment.py

└── segment_video.py

4 directories, 11 files

项目有四个目录:

enet cityscapes/:包含预先训练的深度学习模型、项目列表和与项目对应的颜色标签。

images/:选择四个样本图像来测试图像分割脚本。

videos/:包括两个用于测试深度学习分段视频脚本的示例视频。这些视频的点数列在“视频分割结果”部分。

output/:出于组织目的,喜欢让脚本将处理过的视频保存到output文件夹中。不包括在下载的输出图像/视频,因为文件的大小相当大。需要使用的代码自行生成它们。 将回顾两个Python脚本:

segment.py:对单个图像执行深度学习语义分割。将通过这个脚本来学习分割的工作原理,然后在转到视频之前对单个图像进行测试。

segment_video.py:顾名思义,此脚本将对视频执行语义分割。

语义分割:基于openCV和深度学习(一)的更多相关文章

  1. 语义分割:基于openCV和深度学习(二)

    语义分割:基于openCV和深度学习(二) Semantic segmentation in images with OpenCV 开始吧-打开segment.py归档并插入以下代码: Semanti ...

  2. 人工智能之基于Opencv与深度学习的计算机视觉实战课程

    https://www.bilibili.com/video/av66375362 imagewatch:https://blog.csdn.net/iracer/article/details/83 ...

  3. Opencv调用深度学习模型

    https://blog.csdn.net/lovelyaiq/article/details/79929393 https://blog.csdn.net/qq_29462849/article/d ...

  4. 从Theano到Lasagne:基于Python的深度学习的框架和库

    从Theano到Lasagne:基于Python的深度学习的框架和库 摘要:最近,深度神经网络以“Deep Dreams”形式在网站中如雨后春笋般出现,或是像谷歌研究原创论文中描述的那样:Incept ...

  5. (转) 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ

    特别棒的一篇文章,仍不住转一下,留着以后需要时阅读 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ

  6. 基于TensorFlow的深度学习系列教程 2——常量Constant

    前面介绍过了Tensorflow的基本概念,比如如何使用tensorboard查看计算图.本篇则着重介绍和整理下Constant相关的内容. 基于TensorFlow的深度学习系列教程 1--Hell ...

  7. 基于 Keras 用深度学习预测时间序列

    目录 基于 Keras 用深度学习预测时间序列 问题描述 多层感知机回归 多层感知机回归结合"窗口法" 改进方向 扩展阅读 本文主要参考了 Jason Brownlee 的博文 T ...

  8. 基于pythpn的深度学习 - 记录

    [基于pythpn的深度学习] 环境:    windows/linux-ubuntu    Tensorflow (基于anaconda)        *安装 (python3.5以上不支持)   ...

  9. 基于OpenCL的深度学习工具:AMD MLP及其使用详解

    基于OpenCL的深度学习工具:AMD MLP及其使用详解 http://www.csdn.net/article/2015-08-05/2825390 发表于2015-08-05 16:33| 59 ...

随机推荐

  1. PHP laravel系列之Blade模版

    一.什么是Blade模版? Blade 是 Laravel 提供的一个既简单又强大的模板引擎. 和其他流行的 PHP 模板引擎不一样,Blade 并不限制你在视图中使用原生 PHP 代码.所有 Bla ...

  2. Python中zipfile压缩文件模块的使用

    目录 zipfile 压缩一个文件 解压文件 高级应用 利用 zipfile 模块破解压缩文件口令:Python脚本破解压缩文件口令 zipfile Python 中 zipfile 模块提供了对 z ...

  3. Sqlmap的使用详解

    目录 Sqlmap Sqlmap的简单用法 探测指定URL是否存在SQL注入漏洞 查看数据库的所有用户 查看数据库所有用户名的密码 查看数据库当前用户 判断当前用户是否有管理权限 列出数据库管理员角色 ...

  4. CreateThread 线程操作与 _beginthreadex 线程安全(Windows核心编程)

    0x01 线程的创建 线程不同于进程,Windows 中的进程是拥有 '惰性' 的,本身并不执行任何代码,而执行代码的任务转交给主线程,列如使用 CreateProcess 创建一个进程打开 Cmd ...

  5. windows核心编程-第一章 对程序错误的处理

    第一章-对程序错误的处理 在开始介绍Microsoft Windows 的特性之前,必须首先了解 Wi n d o w s的各个函数是如何进行错误处理的. 当调用一个Wi n d o w s函数时,它 ...

  6. Ubuntu Linux DNS服务器 BIND9配置文件命令介绍

    BIND9配置方法 转载▼     配置语法 named.conf acl 定义访问控制列表 controls 定义rndc命令使用的控制通道,若省略,则只允许经过rndc.key认证的127.0.0 ...

  7. Redis数据结构—跳跃表

    目录 Redis数据结构-跳跃表 跳跃表产生的背景 跳跃表的结构 利用跳跃表查询有序链表 Redis跳跃表图示 Redis跳跃表数据结构 小结 Redis数据结构-跳跃表 大家好,我是白泽,最近学校有 ...

  8. 使用U盘软碟通安装原版Windows10

    https://zhuanlan.zhihu.com/p/171534675 使用U盘软碟通安装原版Windows10 一.准备:8G U盘一个,电脑装好UltraISO这个软件下载地址 二.Wind ...

  9. 攻防世界 WriteUp

    附:|>>>攻防世界-WEB-新手练习区<<<| WriteUp目录 01.|>>>baby_web<<<| 02.|>& ...

  10. k8s总结复习

    一.k8s介绍 Kubernetes(k8s)是Google开源的容器集群管理系统.在Docker技术的基础上,为容器化的应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整功能,提高了大规模 ...