语义分割:基于openCV和深度学习(一)
语义分割:基于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和深度学习(一)的更多相关文章
- 语义分割:基于openCV和深度学习(二)
语义分割:基于openCV和深度学习(二) Semantic segmentation in images with OpenCV 开始吧-打开segment.py归档并插入以下代码: Semanti ...
- 人工智能之基于Opencv与深度学习的计算机视觉实战课程
https://www.bilibili.com/video/av66375362 imagewatch:https://blog.csdn.net/iracer/article/details/83 ...
- Opencv调用深度学习模型
https://blog.csdn.net/lovelyaiq/article/details/79929393 https://blog.csdn.net/qq_29462849/article/d ...
- 从Theano到Lasagne:基于Python的深度学习的框架和库
从Theano到Lasagne:基于Python的深度学习的框架和库 摘要:最近,深度神经网络以“Deep Dreams”形式在网站中如雨后春笋般出现,或是像谷歌研究原创论文中描述的那样:Incept ...
- (转) 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ
特别棒的一篇文章,仍不住转一下,留着以后需要时阅读 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ
- 基于TensorFlow的深度学习系列教程 2——常量Constant
前面介绍过了Tensorflow的基本概念,比如如何使用tensorboard查看计算图.本篇则着重介绍和整理下Constant相关的内容. 基于TensorFlow的深度学习系列教程 1--Hell ...
- 基于 Keras 用深度学习预测时间序列
目录 基于 Keras 用深度学习预测时间序列 问题描述 多层感知机回归 多层感知机回归结合"窗口法" 改进方向 扩展阅读 本文主要参考了 Jason Brownlee 的博文 T ...
- 基于pythpn的深度学习 - 记录
[基于pythpn的深度学习] 环境: windows/linux-ubuntu Tensorflow (基于anaconda) *安装 (python3.5以上不支持) ...
- 基于OpenCL的深度学习工具:AMD MLP及其使用详解
基于OpenCL的深度学习工具:AMD MLP及其使用详解 http://www.csdn.net/article/2015-08-05/2825390 发表于2015-08-05 16:33| 59 ...
随机推荐
- 关于CSS3背景渐变色无效问题
无效的css[linear-gradient]写法 .loginbox{ background-color: linear-gradient(#D0D0D0, #E0E0E0, white); wid ...
- Think5之ajax批量删除数据功能
//批量删除学员信息 public function deleteMany() { $id = input('post.'); //判断id是数组还是一个数值 if(is_array($id)){ f ...
- 看了这篇还不会Linux性能分析和优化,你来打我
前言 一般互联网的项目都是部署在linux服务器上的,如果linux服务器出了问题,那么咱们平时学习的高并发,稳定性之类的是没有任何意义的,所以对linux性能的把握就显得非常重要,当然很多同学可能觉 ...
- POJ1236 强连通 (缩点后度数的应用)
题意: 一些学校有一个发送消息的体系,现在给你一些可以直接发送消息的一些关系(单向)然后有两个问题 (1) 问你至少向多少个学校发送消息可以让所有的学校都得到消息 (2) 问至少加多少条边 ...
- hdu4901 枚举状态(找集合对S(xor) ==T(and))
题意: 给你一个串数字,然后让你在这里面挑取两个集合S ,T,集合的要求是 (1)不能为空 (2)S集合的所有元素必须在T集合的左边 (3)S集合的XOR == T集合的AND 问 ...
- Windows中动态磁盘管理
目录 动态磁盘 基本磁盘和动态磁盘的转换 简单卷 跨区卷 带区卷 镜像卷 RAID-5卷 相关文章:硬盘分区形式(MBR.GPT).系统引导.文件系统.Inode和Block 动态磁盘 Windows ...
- Xposed学习二:实现机制
在上一篇我们学习了如何在AS中创建Xposed模块,本篇来分析下官方教程中redClock的实现原理.本系列文章基于version-51 public void handleLoadPackage(X ...
- Python脚本暴力破解FTP口令(ftplib)
目录 判断FTP服务器是否允许匿名登录 暴力破解FTP口令 列出FTP目录内的网页文件 综合 环境:Windows python2.7.15 ftplib模块是python下用于ftp服务的模块 . ...
- 如何在Mac OS X中开启VIM语法高亮和显示行号
VIM (Wikipedia图) Vim 是一款相当给力的源自UNIX平台的命令行文本编辑器,不过不给力的是,Mac OS X下并没有诸多Linux发行版上VIM那些牛逼哄哄的神马代码高亮显示啊,自动 ...
- python 键盘中断子线程及graceful exiting方案
最近需要实现一个服务程序的graceful exiting,保证在退出前关闭所有已创建的子线程 python借助KeyboardInterrupted异常响应键盘中断,因此首先尝试在子线程中try-c ...