图像处理

别再折腾开发环境了,一劳永逸的搭建方法

跟風遠走 提交于 2020-10-14 18:48:29
点击上方 “ AI算法与图像处理 ”,选择加"星标"或“置顶” 重磅干货,第一时间送达 来源:Jack Cui 网上教程五花八门,读者吐槽最多的,也都是怎么搭建开发环境。 对于小白来说,开发环境搭建,是必过的 第一关 。 记得自己刚学 Python ,还是小白的时候,最爱做的一件事就是: 折腾开发环境 。 代码还没写几行,就各种折腾,走了太多弯路,浪费了太多时间。 IDE 我也折腾了个遍,Eclipse、Pycharm、Sublime Text 等等。 折腾了几周,代码不会写啥,最后也就来个「Hello World」。 作为工作时长两年的「算法搬砖工」,今天给「未来的大牛,如今的小白」们讲一下,开发环境怎么搭建。 以后要是有朋友问你环境搭建问题, 文章直接发给他 ,告诉他,这篇教程真的香! 1 环境搭建 我们都知道,Python 是一种脚本语言,有着丰富的 第三方库 。 Python 自带了很多 官方库 ,可以直接用,例如 re、os、math 等等。 但第三方库是需要我们自己安装的。 就好比,一个正常人,一生下来,自带了眼镜、鼻子、嘴巴等,这就是“官方库”。 你要是想买个漂亮衣服,做个漂亮发型,那得自己“安装”,这就是“第三方库”。 Python 提供了超级多,而且强大的第三方库。 我们搭建开发环境,就是让 Python 具备各式各样的能力,以满足我们的需求。

ACL2020|使用强化学习为机器翻译生成对抗样本

笑着哭i 提交于 2020-10-14 03:00:36
     本文介绍的是 ACL 2020 论文《 A Reinforced Generation of Adversarial Examples for Neural Machine Translation》,论文作者来自南京大学、腾讯。   作者 | 邹 威   编辑 | 丛 末      论文地址:https://arxiv.org/pdf/1911.03677.pdf    1    背景介绍   对抗样本(adversarial example)是近年来用于探索深度学习系统鲁棒性的重要工具。对抗样本通过对普通测试输入进行微小扰动(以不改变人期望输出为准),并以劣化系统输出为目标得到。   当前神经机器翻译(neural machine translation, NMT)系统在实用场合常常会出现用户难以预计的错误,这些错误甚至存在消极的社会影响。而基于用户反馈进行的维护通常也是在这些错误产生后才能进行,开发者更希望在上线前就能进行大量的测试进行预防性维护。直接的鲁棒性测试通常需要专家编制大量对应的测试数据并进行标注,但对于机器翻译这类任务而言成本过高。因此我们可以通过利用已有平行句对的输入产生对抗样本的方式,沿用原本的输出,从而快速得到大量可用于鲁棒分析的平行数据。      图1: 对人名的变动影响了翻译的预期结果(此样例当前已被修复)    2    文本对抗样本及难点

利用python-opencv生成视频帧数控制,和常见错误总结

别说谁变了你拦得住时间么 提交于 2020-10-13 06:19:49
首先呢 利用opencv生成视频的例子相信网络上已经很多了。但是大多数例子都只是捕获一个摄像头就没了。但是在实际运用中会发现。因为涉及到图像处理,生成的视频要不就就是过快要不就是比实际时间长。 控制视频的帧数,捕获摄像头和生成图像都适用 关键在于在生成一帧的时候与下一帧的间隔时间。中间图像处理会造成延迟所以说会造成视频时间比预想的长 #计算处理时间 sleeptime = time.time() - now #计算每一帧要延迟的时间 sleeptime = 1 / fps - sleeptime import time import datetime import cv2 #生成一个视频 fps = 30.0 # 视频帧率 size = (289, 419) baseimgpath = "/root/1.jpg" save_path = "/root/" flag = True fourcc = cv2.VideoWriter_fourcc(*'X264') file = save_path + datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S') + ".mp4" videoWriter = cv2.VideoWriter(file, fourcc, fps, size) while flag: now = time.time

Python数字图像处理1.2---彩色图像灰度化和二值化

余生颓废 提交于 2020-10-11 09:24:07
本篇将介绍彩色图像灰度化和二值化的原理,并使用Python来实现对应算法内容。 [彩色图像灰度化] 1.定义 在上一节中,我们介绍了8位单色灰度图,它使用0-255来表示一个像素,但在实际使用中,我们最常用的还是彩色图像灰度化。对于32位bgra彩色图像,或者24位rgb/bgr彩色图像,一个像素由红绿蓝三原色混合而成,这也就是绘画中的调色过程,如何调制灰色?其实很简单,只要红绿蓝以相同程度进行混合,那么结果就呈现出灰色。基于这个原理,我们可以给出彩色图像灰度化的本质:R=G=B,即红绿蓝三通道的像素值相等,此时,彩色图就表现为灰度图,而这个过程,就叫做彩色图像的灰度化。 如图Fig.1所示,左侧位32bgra彩色图,右侧为对应的灰度图,该灰度图算法来自Photoshop“去色”命令。 (a)32位彩色图 (b)32位灰度图 来源: oschina 链接: https://my.oschina.net/u/4334316/blog/4667775

水下图像处理算法Sea-thru

怎甘沉沦 提交于 2020-10-11 08:30:26
水下图像处理算法Sea-thru,出自CVPR 2019,被称之为将彻底改变水下计算机视觉的“革命性工具”。 代码开源 https://github.com/jgibson2/sea-thru (非官方) 还没发现预训练模型地址 来源: oschina 链接: https://my.oschina.net/u/4331670/blog/4667724

OpenCV与图像处理实战(一):车道线检测

主宰稳场 提交于 2020-10-11 04:41:07
大家好,我是 【AI 菌】 。本专栏以实战为主,分享一些用opencv进行图像处理的实用案例。本专栏会持续更新,欢迎关注和交流! 文章目录 一、效果展示 二、基本思路 三、实战讲解 3.1 主函数 3.2 直线拟合 3.3 车道线检测 还没有搭建环境的小伙伴,戳戳这篇: VS2015 + OpenCV3.1 环境配置与项目搭建(C++版) 一、效果展示 对车辆所在车道的车道线检测效果: 二、基本思路 如下图所示,实现车道线的 基本流程 如下: 输入原图或视频。 使用Canny()进行边缘检测。 提取感兴趣区域。 提取轮廓,同时过滤掉不是车道线的轮廓。 对轮廓内点进行直线拟合。 在原图上画出检测到的车道线。 三、实战讲解 3.1 主函数 在主函数中,我们需要读取视频,对每一帧都进行车道线检测处理。 int main ( ) { VideoCapture cap ( "road.mp4" ) ; int height = cap . get ( CAP_PROP_FRAME_HEIGHT ) ; //480 int width = cap . get ( CAP_PROP_FRAME_WIDTH ) ; //856 int count = cap . get ( CAP_PROP_FRAME_COUNT ) ; int fps = cap . get ( CAP_PROP_FPS )

ISP基本框架及算法介绍

半世苍凉 提交于 2020-10-10 12:52:24
ISP基本框架及算法介绍 ISP(Image Signal Processor),即图像处理,主要作用是对前端图像传感器输出的信号做后期处理,主要功能有线性纠正、噪声去除、坏点去除、内插、白平衡、自动曝光控制等,依赖于ISP才能在不同的光学条件下都能较好的还原现场细节,ISP技术在很大程度上决定了摄像机的成像质量。它可以分为独立与集成两种形式。 ISP 的Firmware 包含三部分,一部分是ISP 控制单元和基础算法库,一部分是AE/AWB/AF 算法库,一部分是sensor 库。Firmware 设计的基本思想是单独提供3A 算法库,由ISP 控制单元调度基础算法库和3A 算法库,同时sensor 库分别向ISP 基础算法库和3A 算法库注册函数回调,以实现差异化的sensor 适配。ISP firmware 架构如下图所示。 不同的sensor 都以回调函数的形式,向ISP 算法库注册控制函数。ISP 控制单元调度基础算法库和3A 算法库时,将通过这些回调函数获取初始化参数,并控制sensor,如调节曝光时间、模拟增益、数字增益,控制lens 步进聚焦或旋转光圈等。 1. TestPattern------测试图像 Test Pattern主要用来做测试用。不需要先在片上ROM存储图片数据,直接使用生成的测试图像,用生成的测试图像进行后续模块的测试验证

美颜技术中图像处理算法之滤镜

喜欢而已 提交于 2020-10-10 04:14:11
可能是现在滤镜太多了,现在所有的图像相关app,基本都有滤镜功能,同时还有很多开源滤镜程序。包括现在流行的视频美颜技术中,滤镜也成为美颜SDK中常用的功能之一。图玩智能为企业提供更稳定更优质的美颜产品及服务,欢迎随时咨询www.toivan.com. 美食滤镜、风景滤镜、人像滤镜,每家滤镜都各有特色,可以说没有最好,只有更有特色的滤镜,不过身边很多人还是比较推崇VSCO的滤镜。 那么滤镜程序都是如何实现的呢?以前的工作流程是,滤镜效果由设计师使用ps设计,设计滤镜常用的ps功能是:调节饱和度及色相、调节曲线、叠加纹理等等,通过调节饱和度和色相,可以有针对性的调节某一个色系,使之变浓、变淡或者改变色调,而其他色系不变。同样,对rgb某一个通道进行曲线调节,可以非线性的拉伸或压缩某一颜色通道对整幅图像的影响,实现精细化的色调调节。叠加纹理要简单一些,将设计好的纹理,通过某种混合操作,叠加在原图上,实现各种特效,比如lomo滤镜,暗角除了可以通过算法生成外,也可以通过叠加纹理实现。而程序员拿到设计师的滤镜设计稿后,要做的就是编写程序高度还原设计效果。这一点多多少少还是有些挑战,因为ps经过多年发展后,不同版本有些功能效果还不一样,比如最为常见的亮度、对比度调节,算法很简单,但是要做到和ps效果一样,还是要花时间摸索、调试。我当时在实现过程中,比较难还原的是分色系:红、黄、绿、青、蓝

直播系统源码开发有关存储对象的配置二三方法讲解

◇◆丶佛笑我妖孽 提交于 2020-10-10 02:06:02
16年可以说是直播元年,直播市场需求的不断发展壮大,使得众多的企业加入了直播系统源码开发搭建的队伍之中,经过几年的沉淀,直播软件行业用户以及流量都在呈现稳定的增长趋势。尤其对于2020年来说,直播平台源码结合了短视频、电商带货、教育讲课等功能,各行各业融入直播进行市场助力,可以说简单架构模式的直播系统平台已经不适用于市场发展的节奏。直播软件开发人员也寻求更多的三方cdn合作,搭建集齐技术、架构、服务于一体的直播系统平台,今天讲一下,在直播系统源码开发的过程中,使用不同的三方cdn服务,如何对直播视频的存储对象进行配置。这里选择集中常见的存储方法进行解说。 一、七牛存储配置 1.首先需要注册一个七牛云账号(实名认证、创建秘钥) 2.开通对象存储 3.创建存储空间 4.获取AK和SK 5.七牛云测试域名,此类测试域名,限总流量,限单 IP 访问频率,限速,仅供测试使用。 根据自己的情况绑定域名 6..登陆后台配置视频配置,复制七牛云密钥、域名、空间名等, 7.添加视频进行测试是否能正常上传视频 二、阿里云OSS的配置 1.首先注册认证一个阿里云账号 2.开通oss服务 3.创建bucket 4.获取OSS的AccessKeyId和AccessKeySecret 5.要想在浏览器能够根据路径展示图片等文件需要将用户权限设置成公共读 6.其次代码中需要用到的参数, endpoint#

块截断编码图像压缩技术

风格不统一 提交于 2020-10-06 18:45:29
由于多媒体技术的发展,图像压缩技术成为图像处理中研究的热点。编码压缩技术的发展,使大容量图像信息的存储与传输得以实现,并且解决了多媒体等新技术在实际应用中遇到的各种困难。 论文先介绍了当前流行的图像压缩技术,重点介绍块截断编码技术,先从理论上介绍块截断编码原理,块截断编码是一种有效、快速的数字图像压缩技术,作为一种经典的图像压缩编码,块截断编码技术的实时性很强。论文介绍了两种块截断编码算法,一种是标准的块截断编码算法,另外一种是改进的块截断算法即绝对矩块截断算法。在图像压缩性能评价中,常用的准则有客观保真度与主观保真度。其中客观评价主要采用峰值信噪比(PSNR)和均方误差(MSE)这两种方法,主观评价是指人对图像质量的主观感觉。论文选取三幅图像,分别用这两种算法对这三种图像进行压缩,观察压缩后图像的质量及每幅图像压缩时的峰值信噪比(PSNR)和均方误差(MSE)来评价这两种方法。总结这两种方法各自的特点。 实验证明,标准的块截断图像编码算法快速容易实现,而且它对信道误码不敏感,实时性比较强,图像质量比较好;绝对矩块截断编码不仅具备了以上的优点,而且运算处理更加迅速,并且较好的保留了图像的边缘,获得了更高的图像质量。 二十世纪末,人类社会开始进入到数字化时代,数字图像技术作为数字技术的重要组成部分,将人们带入了崭新的多媒体世界。随着科学的发展和社会的进步