找回密码
 立即注册
查看: 955|回复: 16

GitHub 上有哪些有关图像处理或是机器学习的有趣项目?

[复制链接]
发表于 2021-7-3 08:02 | 显示全部楼层 |阅读模式
GitHub 上有哪些有关图像处理或是机器学习的有趣项目?
发表于 2021-7-3 08:04 | 显示全部楼层
从茫茫的一片白,到细细勾勒出建筑的轮廓。
雕梁画栋悄悄的构建,飞檐区分出天和地。
正前方道路悄悄显现,雪地由模糊变得清晰,道路通向的,则是庄严的大殿。
一切都像梦里一般,宫殿如同电影镜头那样显现,刚开始模糊抽象,定睛一看却是实景,绘画风格十分独特。
这个AI名叫LearningToPaint,作者是北大信息科学技术学院大三学生黄哲威(hzwer)。
同样的效果,还可以出现在照片上:
“复现”名家油画也可以:
从大面积的花瓶、花朵,到勾勒细节的花瓣,梵高的作品就这样演绎出来。
还有莫奈的日出:
光影粗略勾勒,描绘出一个高度马赛克状态的日出,之后补充细节,水面、云霞、船上的桅杆依次出现。
这个AI的思路非常写意派,就像“画马”一样,粗略勾勒出马的形态,之后便能迅速的补充每个细节,画面形象也因此在屏幕上活过来了。


写意派绘画AI的诞生

不仅这个AI会画画,它的作者也会画画。黄哲威的灵感,正是来自于学习绘画的经历。
小时候学素描的时候,他觉得素描老师就是画技高超的大佬,无论是描绘静物还是人物画像,老师都能画得惟妙惟肖。
然而,单纯画得像并不意味着画得好。
后来,当他看到毕加索、丢勒等画家的作品时才发现,绘画大师们根本无需刻意“画得像”,而是只用寥寥数笔,就能勾勒出景物的本质,描绘出生动的形象。
那AI能不能这样画呢?
不让AI一个像素一个像素的填充,而是教他们像人类一样一笔一划的绘画。让AI学会在连续的动作空间上作决策,每步决定一个笔画的形状,位置,颜色等参数。如果还能限制笔画数量,是不是就能像大画家们一样,用简单的几笔就能画出景物的灵魂呢?
为了实现这样一个AI,黄哲威和同伴选定了深度确定策略梯度 (DDPG) 算法
和GAN有些类似,DDPG也是一个“精神分裂”的算法,分为两个网络:
策略网络Actor,负责画画,是一个面向评委的画师,为了获得评委的高评价不断进步;
价值网络Critic,负责当评委,Actor画出的每一笔他都要做出评价,力求成为一个客观、中立、公允的评委老师,最终目标是帮助Actor画出一个最像原图的画。
因此,在这样一个“精神分裂”的状态下,AI学会了对自己严格要求。


△ DDPG


即使增加了许多改进,原版DDPG算法的效果依然不理想,经过大量训练的AI,依然很难画出像样的笔画。
最后,黄哲威把DDPG改造成了一个基于模型的方法。


△ Model-based DDPG


他想到,可以预训练一个神经网络作为笔画渲染器,帮助AI完成对绘画过程的建模。
改造之后,训练速度和表现都有了大大的提高。




整个网络的结构长这样,使用了带有梯度惩罚的WGAN(WGAN with gradient penalty),用来度量画和目标的相似度:




FC指的是全连接层,除了最后一个全连接层的输出向量,策略网络Actor和价值网络Critic采用了同样的结构。






Conv指卷积层,GAP指的是全局平均池化层。




神经渲染器,由几个全连接层和子像素卷积层(Sub-Pixel)组成,可以生成各种不同种类的笔画。
有了网络结构之后,就可以在包括MNIST、SVHN、CelebA和ImageNet等各个知名数据集上训练了。训练的过程实际上是AI不断尝试绘画,不断改进自身策略的过程,不需要标注数据,也不需要人类的绘画经验。
以CelebA为例,训练需要一张 GPU,10小时预训练笔画渲染器,40小时训练AI,总共要画百万张画。
在线Demo,你也能让AI画画

LearningToPaint的代码和CelebA上训练好的模型已经开源,Colab上还有一个在线Demo,不会写代码的同学也可以试用。




只要依次点每一行开头的符号运行,运行到Training之前的部分,AI就可以画出一张川普头像。




把第五行中的地址换成任意一张你喜欢的图片,接着继续运行到第八行,就可以看到AI画出这张图。
当然,由于显示窗口是正方形的,如果上传的是非正方形图片会被压缩,建议裁剪之后再放上来,或者也可以把第七行的512×512改成你想要的尺寸。
如果运行到第7行,问你要不要重新做一个视频:
File 'video.mp4' already exists. Overwrite ? [y/N]就在后面的框框里输入y表示yes。
比如,我们试了试让AI画新垣结衣小姐姐:




《刺客信条》的主角:



甚至抽象版《复联4》的海报,海报上的字都能辨识:



另外,你还可以设定强制AI用不同形状的画笔来绘制,比如只许画圆:




或者只许画三角形:




最后,黄哲威本体:


传送门

论文:
Learning to Paint with Model-based Deep Reinforcement Learning
Zhewei Huang, Wen Heng, Shuchang Zhou
https://arxiv.org/abs/1903.04411
GitHub:
https://github.com/hzwer/LearningToPaint
作者写的介绍文章:
https://zhuanlan.zhihu.com/p/61761901
Demo:
https://colab.research.google.com/github/hzwer/LearningToPaint/blob/master/LearningToPaint.ipynb

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-7-3 08:08 | 显示全部楼层
Github 上有关注的的话:
    vispy/vispy · GitHub:python 一个高性能的数据可视化视觉库 stackgl · GitHub:WebGL 各种组件以及一些 demos(详见:stack.gl)


非 Github,一些站点:
    Shadertoy:我最喜欢的视觉技术网站之一,shader 编程共享网站,里面很多很酷的例子。有一些已经被我移植到 opengl es 上了(详见:nekocode/murmur · GitHub) OpenProcessing:图像处理,可视化的话 也不要忘记了 Processing ,这个站点上很多很酷的,甚至可交互的例子,有点 java 底子,又想研究可视化技术的话,它是一个十分经典而且不错的选择
    GLSL.io – Open Collection of GLSL Transitions:也是一个 glsl shader 分享网站,主要关注于图片切换效果上
发表于 2021-7-3 08:15 | 显示全部楼层
**************************** 求同好者 ***************************

这个回答最重要的目的已经写在第一行了。。。
都是自己写的,性能还不完美,提前放出来开源(当年Linus不就是这么干的?)~

项目有人关注就更新补充更多的文档 =。=

项目名称: E-Face

EFace by jasonleaster

适用对象: 图像处理或机器学习相关童鞋

项目内容: 简易的人脸检测系统.

之前我在 如何从0学习opencv,完成类似人脸检测的毕设? - 知乎用户的回答
说过,调用API是很简单的,如何实现背后的最核心的技术,才是最有价值的(当然,如果你想让自己more valuable),很多人调用API也说自己搞face detection的。
有兴趣的话也可以去尝试一下Object Detection的另外一个应用,汽车车体检测。我利用OpenCV和公开可获得的数据集做了一点实践工作,有兴趣的可以看看我的记录 Training Cascade With OpenCV

项目性质: 源码学习,技术交流。非工业级别图像处理库(O(∩_∩)O现在达不到那标准。。。)

硬件平台要求:一台PC基本上就能跑。(intel core i5/ 8G RAM / Ubuntu).

      对于14000幅左右分辨率为19*19的训练集:
            对于feature总数为32746(即,数据规模为14000 * 32746)
            特征提取耗时约3000+秒
            模型训练约为(35s * 300,单个弱分类器训练耗时,35s,预期最大选取300个弱分类器)

上面我简要介绍了一下EFace的性能情况,可能无脑黑又会说Python写的又low又慢。下面是, Yi-Qing Wang 在论文[2]中有关于他们在训练中对于他们系统性能的描述

        A few words on the actual cascade training carried out on a 8-core Linux machine with 48G memory.
... ...
The training process lasted for around 24 hours before producing a 31-layer cascade.
                                                                             -- Yi-Qing Wang

在其个人网站上可以找到前辈的研究领域作品和论文。

这个Face Detection的实现还不perfect,Cascade也还在写,Cascade的主要目的就是降低训练耗时,Yi-Qing Wang 说31层的Cascade都耗时24小时。

目前Cascade的部分还在实现中ing,尽可能的对自己半年前的Python代码进行了优化。研究了一下关于Python性能的优化,从一开始基本上就能跑 (18小时左右 )到现在的性能算提升了很大,而且数据处理量也提升了更多(一开始我写出来的内存消耗很大,6G的内存只能跑3000幅19*19的图片的样子,到现在能跑12k幅)。

EFace的相关特性肯定这里讲不完,有兴趣的话可以Project Home Page of EFace看看。实现细节的各种斟酌考虑也很有意思,还是那句话,有兴趣看代码,一起交流。

下面是Viola的ROC曲线


EFace的ROC曲线,270+ feature classifier(做个简单对比):




但是我的后期检测部分表现的并不是很好,希望有兴趣的童鞋一起交流一改进。

EFace的人脸检测测试样例:


上面你们能看到这个帅哥被绿色的框框框住了,这个单幅图像的检测结果表现还不错。
但是多幅人脸图像的话,可能就表现的不是很好(或者说我的detector有问题(*@ο@*) 哇~)
会出现漏检和错检的情况(能做到这个样子,我已经非常开心了)。






Reference:
1. << Robust Real-Time Face Detection >> PAUL VIOLA, MICHAEL J. JONES
2. << An Analysis of the Viola-Jones Face Detection Algorithm >> -- Yi-Qing Wang
3. << Robust Real-time Object Detection >> Paul Viola, Michael Jones
4. 《High Performance Python》Micha Gorelick / lan Ozsvald

EFace 期待有兴趣的童鞋加入哈~

Update : 2016.09.09

         人脸检测扩展的说,甚至于目标检测的实际项目中,对于目标的准确检测其实有很多困难的。CV界有个不好的风气,某些人、团队为了金钱利益而使用极其差劲的低劣手段发paper,很多垃圾论文数据造假,结果造假。说这些,目的也很简单,还是希望能够促成对Face Detection 甚至广义的Object detection方向感兴趣的同学,去看看EFace的源代码,有兴趣的话,我们可以聊聊。

Face Detection一些困难的点,从算法模型的根源产生的困难和目标问题两个方面,我讲讲自己遇到的一些困难。

1. 算法模型的根源产生的困难

1.1 要得到鲁棒性强的商用系统,基于统计的学习需要大量的样本数据做训练集
大多数经典的算法都是基于Data-driven的算法模型,都是基于统计学习的方式去训练模型,最后得到一个鲁棒性还不错的模型参数。这就需要大量的训练样本。

1.2. 大量的样本数据,一方面需要很强的计算平台,另一方面可能会需要很大容量的缓存空间
说白了,折腾机器学习想要产生点经济效益,特别是CV领域,得有强有力的硬件资源作支撑。一般玩家很难进入,当然稍微舍得花钱的公司下决心要搞机器视觉的,那点钱都是小钱了。但是一个优秀的程序员想单独在家里完成这个lab?很困难。这是现实基础问题。

2.目标问题本身的困难
我们这里的目标问题,就是把人脸给他检测出来嘛~
这个问题很简单吗?诚然,不简单。
2.1 现实生活中人脸位于图像中可能是有很多角度的

给人对这个答案有兴趣的伙伴可以直接把上面这幅图直接拿去测当前人脸应用商业化的一些非常优秀的公司,他们的模型也不能完全检测出这里面所有的人脸(5个人脸哦,有的公司检测出来2个人脸,有的公司的公测API检测出0个人脸)

说到这里,这些公司难道是骗子?不然,不点名了,我所知道的这两家公司都是我非常尊敬的公司,正是他们实事求是的态度,能够把人脸技术“落地化,产品化”,更加务实。再次表达我的敬意。如果有对OpenCV做一点了解的同学也会发现,OpenCV的人脸检测模块也是不能完美完成目标检测这个任务的。

我说了,问题的本身还是在于人脸检测确实不是个简单的活儿,系统的输入---- 训练样本,大多数也都是训练的正脸样本,很少有斜着脸的样本,这也从根本上造成了检测结果对rotated face不敏感。

对于这样的问题,我的一点简单的看法:仅针对,可能存在人脸倒着的情况,训练的过程可以保持不变,只是最后检测的时候,增加一步,把输入图像翻转180°之后再进行检测,取翻转前和翻转后两者检测结果的“并集”,即可。

2.2 终极问题,你觉得什么是人脸?
本质上,图像在计算机中呈现出来是由于有颜色模型的存在,RGB等等,黑白的也罢,像素取值区间在0~255之间,一副图像中,所谓的人脸区域,不过是一些特殊“亮暗模式”,而谁又能构建出一个准确的数学模型去对这个问题进行定位呢?现在流行的方法是,基于统计训练模型,利用大数据本身对模型参数进行求解。

谈不上对CV有很深入的研究,但是这其中引发了我思考很多有意思的问题,比方说“客官,你怎么定义人脸呢?难道半张人脸不是人脸?四分之一张人脸是人脸吗?...(Object detection以及目标模型的模糊性)” “阁下,不知道你能不能帮个忙,给我解释一下,什么叫做蓝天啊?(图像分割)”

有没有兴趣去看看EFace的代码呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-7-3 08:25 | 显示全部楼层
TensorFlow 作为一款发展成熟的机器学习开源框架,也在图像处理的领域贡献过不少经典案例。尽管很多可能还处于研究阶段,不过今天刚刚正式开幕的 2020 谷歌开发者大会上,我们为大众提供了一个可以“亲密接触”用机器学习实现动态捕捉与视觉建模的好机会 —— “谷歌面馆”线上互动体验
“谷歌面馆” 是基于 TensorFlow.js 中的 PoseNet 来实现动态捕捉,将用户的肢体动作与“拉面”概念做结合,创造出的有趣好玩的互动体验,让大家在观看 Google 开发者大会演讲间隙活动双手,补充满满元气,同时希望借此激发开发者的创造力,用代码探索更多可能性。
互动的玩法也很简单,每个玩家动手和上半身来制作虚拟“面条”,就像拉面大师那样,在 1 分钟内尽可能地拉扯和拉伸面条,同时收集特殊或避免不必要的配料,以增加面条长度的点数来获胜。你投入制作的面条越多,获得的英雄徽章就越多,就有机会获得更多主题演讲以及开发科技学习机会。快去大会官网亲自体验一下吧!
我正在Google开发者大会“拉面”太好玩了,快来和我比拼吧!看到这里,你可能不禁好奇,趣味拉面互动体验到底是如何实现的?它所使用的 PoseNet 又是什么?
其实,“谷歌面馆” 使用了一种叫 PoseNet 的视觉模块,它可以通过检测人体关键部位的位置,来估测图像或视频中的人体姿势。例如,PoseNet 可以估测图像中人物手肘和膝盖的所在位置。姿势估测模型只会识别人体关键部位的位置,而不会去辨别图像中的人物。目前,PoseNet 已在 GitHub 上开源,并被广泛用于不同项目中。例如,开发者可根据人体图像增强现实制作计算机图形人物动画以及为运动中的运动员分析步态
总之,借助 PoseNet 这款示例应用,开发者和机器学习专家能够更轻松地探索轻量级移动模型的各种可能性。接下来,我们将利用 TensorFlow.js 中的 PoseNet 和 Facemesh(来自 Mediapipe)模型,展现一个通过简单的网络摄像头实现人体动作捕捉的项目实例,手把手教你从零开始落地一个用身体控制浏览器中 SVG 角色的趣味应用。
    总体思路
采用 2D 矢量图并根据 PoseNet 和 FaceMesh 的识别结果实时更新其矢量曲线。为此,Pose Animator 借鉴了计算机图形技术中骨骼动画的思路,并将其应用于矢量角色。

    SVG 角色创建
在骨骼动画中,角色的呈现分为两个部分:
    用于勾勒角色的表皮,以及 用于对表皮进行动画处理的一组互连骨骼层级结构。
在 Pose Animator 中,表皮由输入 SVG 文件中的 2D 矢量路径定义。对于骨骼结构,Pose Animator 基于 PoseNet 和 FaceMesh 的关键点提供了预定义的(骨骼层级)绑定表示 (Rig Representation)。在输入 SVG 文件中以及字符插图中指定了此骨骼结构的初始姿态,同时通过机器学习模型的识别结果来实时更新骨骼位置。
查看这些步骤,尝试使用 Pose Animator 创建自己的 SVG 角色。

    骨架绑定
完整的绑定(骨架绑定)流程需要以下步骤:
    解析输入的 SVG 文件以获取矢量图和预定义的骨架,两者均为 T 姿态(初始姿态)。 遍历矢量路径中的每个分段,使用线性混合蒙皮(Linear Blend Skinning,本文中稍后会作出解释)计算每根骨骼的权重影响和变换矩阵 (Transformation)。 在每个输入帧上实时运行 FaceMesh 和 PoseNet,并使用结果关键点更新骨骼位置。 根据更新后骨骼的位置、骨骼的权重和变换矩阵,计算矢量分段的新位置。
还有其他工具也可提供类似的木偶操作功能,但是,大多数工具仅改变人物图像的位置,而不会通过识别关键点改变角色的实际几何形状。此外,很少有工具能提供全身识别和动画呈现。Pose Animator 能让单条曲线变形,因此十分擅长捕捉面部和全身运动的细微之处,并有望带来更具表现力的动画效果。
绑定结构依照 PoseNet 和 FaceMesh 的输出关键点设计。PoseNet 将返回 17 个全身关键点,非常简单,可以直接包含在绑定中。但是,FaceMesh 将提供 486 个关键点,所以我需要谨慎选择将包括哪些关键点。最后,我从 FaceMesh 输出中选择了 73 个关键点,这样我们就拥有了一个由 90 个关键点和 78 根骨骼组成的全身绑定,如下所示:
90 个关键点,78 根骨骼的全身绑定
每个输入 SVG 文件都应该在默认位置包含这个骨架。更具体地说,Pose Animator 将寻找一个名为“骨骼”的组,其中包含以它们所代表的各个关节命名的锚点元素。可在此处查看绑定 SVG 示例。设计师可以在设计文件中自由地移动关节,让骨骼最理想地嵌入到角色中。Pose Animator 将根据 SVG 文件中的默认位置来计算蒙皮,但有时绑定算法可能无法很好地支持一些极端情况(例如,腿/手臂骨骼非常短),并有可能让呈现的效果不自然。
在设计软件 (Adobe Illustrator) 中嵌入绑定的插图
    绑定算法:
Pose Animator 通过一种最常用的绑定算法,使用骨骼结构让表皮变形,这种算法称为线性混合蒙皮 (Linear Blend Skinning,LBS),该算法通过将每根骨骼单独控制的变换相混合,再由每根骨骼的影响因子加权,来变换表皮的顶点。在我们的例子中,顶点是指矢量路径上的锚点,骨骼由上述绑定中的两个相连关键点定义(例如,“leftWrist”和“leftElbow”关键点定义了骨骼“leftWrist-leftElbow”)。
要代入数学公式,那么顶点 vi’ 的实际空间位置计算为:
其中
    wi 是骨骼 i 在顶点 i 上的影响因子, v -i 描述了顶点 i 的初始位置, Tj 描述了让骨骼 j 的初始姿态与其当前姿态相一致的空间变换。
骨骼的影响因子可自动生成,也可以通过权重绘制来手动分配。Pose Animator 当前仅支持自动权重分配。顶点 i 上骨骼 j 的原始影响因子计算方式如下:
其中 d 是从 vi 到骨骼 j 上最近点的距离。最后,我们将一个顶点上所有骨骼的权重标准化,使其总和为 1。
现在,要将 LBS 应用于由直线和贝塞尔曲线组成的 2D 矢量路径,我们需要通过进出图柄对贝塞尔曲线分段进行一些特殊处理。我们需要分别计算曲线点、进控制点和出控制点的权重。由于这样可以更精准地捕获控制点的骨骼影响因子,因此会产生更好的外观效果。
这是一个特殊的例子。当进控制点、曲线点和出控制点共线时,我们对这三个点同时使用曲线点权重,以确保在以动画方式呈现时它们仍保持共线。这有助于保持曲线的平滑。
共线曲线手柄共享相同的权重以保持共线
    提升动作稳定性
LBS 已经为我们提供了动画帧,但是 FaceMesh 和 PoseNet 原始输出引入了明显的抖动。为减少抖动,获得更流畅的动画,我们可以使用预测结果中的信任值分数对每个输入帧进行不均匀加权,让信任值较低的帧所带来的影响也较小。
遵循这一思路,Pose Animator 会按如下算式计算关节 i 在第 t 帧的平滑位置
其中
第 i 帧的平滑可信度计算方式如下
考虑极端情况。当两个连续帧的可信度均为 1 时,位置将以 50% 的速度靠近最新位置,这看起来很灵敏且相当平滑。(要进一步提高响应速度,可以通过更改最新帧的权重来调整靠近速度。)当最新帧的置信度为 0 时,其影响将被完全忽略,因此可防止低信任值结果造成的突然抖动。
除了使用可信度对关节位置进行插值外,我们还引入了最小阈值来确定是否应该绘制路径。
路径的可信度是其分段点的平均可信度得分,而反过来它又是影响骨骼分数的加权平均值。当特定帧的分数低于特定阈值时,整个路径将被隐藏。
这对于隐藏低信任值区域的路径十分有用,这些区域中往往是镜头范围之外的身体部位。想象一下有一张上半身照:尽管腿部和臀部的关键点预测的可信度很低,但 PoseNet 始终会返回这些关键点预测。通过这种限制机制,我们可以确保下半身被恰当隐藏,而不显示为异常扭曲的路径。
    动手尝试吧!
您可以点击这里进入实时演示,您可以在其中处理现有角色,也可以添加自己的 SVG 角色,看它们如何变得栩栩如生。尽管演示的是人类角色,但 Pose Animator 可用于任何 2D 矢量设计,因此您可以大胆尝试任何抽象/前卫的设计。
要创建自己的动画插图,请查看本指南!不要忘了在社交媒体上通过 #PoseAnimator# 与我们分享您的创作。如有任何问题或想直接查看源代码,可前往 Github
除了利用 PoseNet 继续开发和探索各种创意的交互体验外,TensorFlow 和谷歌也将继续推进技术的发展和迭代,致力于用科技创造价值。
2020 Google 开发者大会于 11 月 16 - 21 日全线上举行,其中 11 月19日为 TensorFlow Day。 11 月 19 日下午 1 点起,一连 10 场 TensorFlow 技术演讲也将在 2020 谷歌开发者大会官网亮相,为大家呈现更多机器学习领域的最新进展和项目分享。赶快点击下方链接进入大会官网,试玩“谷歌面馆”拉面体验和抢先锁定大会议程吧!
Google 开发者大会想了解更多 TensorFlow 应用案例背后的秘密?欢迎关注 TensorFlow 官方微信公众号(TensorFlow_official),超丰富的实操教学、实用干货在这里陪伴你的机器学习进阶之路!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-7-3 08:34 | 显示全部楼层
关于 GitHub 上机器学习的项目,我们之前有篇超详细的汇总,可以去看看:


机器学习领域有哪些适合新手学习的 GitHub 项目?

这里就分享一些有关图像处理的项目好了。


数码照片处理——消除相机抖动

本项目通过算法计算出盲反褶积实现消除相机抖动给照片带来的效果。
本项目 GitHub 地址:
stsievert/ece533_finalproj

Imaginary

一个由 Go 语言编写的用于高水平图像处理的快速 HTTP 微服务,可以自用或公用来进行大规模图像处理,支持 Docker 和 Heroku。
本项目GitHub地址:
h2non/imaginary

Imageproxy

imageproxy 是一款用 Go 语言编写的图像处理工具。能够:
    完成基本的图像处理,比如剪裁、旋转、调整尺寸等。 可以缓存在内存、硬盘、亚马逊云、谷歌云和 Azure 云上。 支持 JPEG,PNG,webp,GIF 和 TIFF 格式。
本项目GitHub地址:
willnorris/imageproxy

Image-Resizer

Image-Resizer 是一款 node.js 应用,能够随时用来调整和修饰图像,支持 Heroku,也能很容易的部署在任何云平台上,比如亚马逊云。
本项目GitHub地址:
jimmynicol/image-resizer

Thumbor

Thumbor 是一款智能化图像处理应用,可以用于调整图像大小和制作图像翻页效果。
本项目GitHub地址:
thumbor/thumbor

Pilbox

Pilbox 是一款基于 Python 框架 Tornado 的图像处理工具,使用 Python 图像处理库 Pillow,可以用来请求照片并将它们调整为理想的尺寸。
本项目GitHub地址:
agschwender/pilbox

Rekognize

Rekognize 是使用 Amazon Rekognition 和 Amazon Polly,以及 Raspberry PI 的图像处理应用。
本项目GitHub地址:
raju249/Rekognize

FilterClient

FilterClient 项目可以将过滤器应用到图像上,给图像添加滤镜。
本项目GitHub地址:
EricCrosson/image-processing

scikit-image

一款用 Python 编写的图像处理工具。
项目GitHub地址:
scikit-image/scikit-image

Java 图像处理项目

该项目可以使用 NetBeans IDE 7.3.1,下载地址:https://netbeans.org/
项目用到的 DYimageFX-jar 文件下载地址:
https://github.com/yusufshakeel/Java-Image-Processing-Project/tree/master/DYimageFX-jar


项目全部代码地址:
https://github.com/yusufshakeel/Java-Image-Processing-Project/archive/master.zip


本项目 GitHub 地址:
https://github.com/yusufshakeel/Java-Image-Processing-Project


图像处理应用

本项目使用 OpenCV 库和 Qt 编写而成,应用包含了基于 Qt 的 GUI,能让用户加载图像、选择多种图像处理器、参数等,可以实现图像分割、提取特征点、校正相机和消除图像失真等。
本项目GitHub地址:
tohojo/image-processing

还有一个 GitHub 库汇总了几个用 Python 和 OpenCV 编写的图像处理项目,比如全景图像拼接,将图像制作成漫画风格,图像色彩迁移,图像压缩,自动检测图像中物体尺寸,以及图像人物的眼球追踪等。
这些项目的代码也包含在内。


GitHub 库地址:
shekkizh/ImageProcessingProjects<hr/>http://weixin.qq.com/r/80QiOi3EDnBxrWlZ9xHh (二维码自动识别)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-7-3 08:36 | 显示全部楼层
我来分享几个吧,是普拉纳夫 · 达尔(Pranav Dar)发文总结的 2018 年 2 月份 Github 上最火的 5 个数据科学和机器学习项目。
如下:


最近,普拉纳夫 · 达尔(Pranav Dar)发文总结了 2018 年 2 月份 Github 上最火的 5 个数据科学和机器学习项目。
Pranav Dar,Analytics Vidhya 的编辑。数据可视化和六西格玛从业者喜欢阅读和深入研究数据科学和机器学习艺术。始终在寻找新的方法来改善使用 ML 和 AI 的流程。
1.FastPhotoStyle(快速转换照片风格)




FastPhotoStyle 这个项目是英伟达(NVIDIA)开发的一个 Python 库。该模型将内容照片和风格照片作为输入。然后它将风格照片的风格转移到内容照片,即就是将内容照片的风格转换为我们输入的风格照片的风格。
开发人员举出了两个算法示例。首先,第一个是非常简单的迭代算法,只需要下载一张内容图和风格图,重新调整他们尺寸,然后运行图像风格化代码。第二个样例中,需要使用语义标签映射来创建程式化图像。
2.Twitter Scraper(Twitter 爬虫)




如果你在 Twitter 上发过文章,就知道 Twitter 自身的 API 有流速限制,当然,作为国内用户大多数人都没用使用过 Twitter ,这个 Python 库就是考虑到这一点,它没有 API 限流(不需要任何身份验证),也没有限制,并且速度非常快。开发人员可以用这个库爬取任何用户的任意一条 Twitter (推文)。
而且,这个项目可以用于制作马尔科夫链,但是目前它只能适用于 Python 3.6 及以上版本。
3.Handwriting Synthesis(手写体合成)




这个项目来自亚历克斯 · 格雷夫斯(Alex Graves)撰写的论文(Generating Sequences with Recurrent Neural Networks)《用 RNN 生成序列》,正如存储库的名称所示,您可以生成不同风格的手写,是其中手写体合成实验的实现,它可以生成不同风格的手写字迹。模型包括初始化和偏置两个部分,其中初始化控制样例的风格,偏置控制样例的整洁度。
作者在 GitHub 页面上呈现的样本的多样性真的很吸引人。他正在寻找贡献者来加强存储库,所以如果您有兴趣,可以研究去看看。
4.ENAS PyTorch(高效神经网络结构搜索)




该项目是对论文《参数共享的高效神经网络结构搜索(Efficient Neural Architecture Search (ENAS) via Parameters Sharing)》的实现。ENAS 做什么?高效神经网络结构搜索,即 ENAS 减少了计算需求,将 NAS 的 GPU 计算时间减少了 1000 倍。他们通过共享大型计算图中的子图模型之间的参数共享来完成此操作。
如何使用它的过程已经在 GitHub 页面上得到了很好的展示。实现这个库的先决条件是:
    Python 3.6+ 需要 PyTorch tqdm,imageio,graphviz,tqdm,tensorboardX
5.Sign Language(手势语言识别)




这是一个相对简单但又十分吸引人的机器学习项目。在 Python 中使用卷积神经网络构造模型,可以识别手势并将其转换为机器上的文本。
该项目存储库的作者用 Tensorflow 和 Keras 共同搭建了 CNN 模型,他特别详细地说明了他是怎么创建这个项目的,以及每一步是怎么进行的。
是不是感觉非常不错的,如果你对机器学习感兴趣,可以去这些开源项目中去研究和学习一下。另外,通过这几个开源项目,我们又一次了解了 Python 的重要性,所以,对于想学编程的读者或者初入职场的计算机学生,可以往 Python 方向学习一下。
俗话说,一切分享不给开源项目地址的分享,都是伪分享,所以,上述五个开源项目的地址依次如下:
    https://github.com/NVIDIA/FastPhotoStyle https://github.com/kennethreitz/twitter-scraper https://github.com/sjvasquez/handwriting-synthesis https://github.com/carpedm20/ENAS-pytorch https://github.com/EvilPort2/Sign-Language
文章首发于微信公众号:非著名程序员,关注我,每天与 10 万开发者共同进步,你离成功,只差一个关注。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-7-3 08:44 | 显示全部楼层
2018.9.7更新
github上已更新到0.20版,相关细节可以看我专栏记一次玩深度学习的痛与乐,还有苦逼的调参心得
<hr/>

Emmm……安利自己刚写的一个一个针对手机摄影手残党做的一个应用。立意很简单,虽然讲精细修图AI目前肯定是比不过所有的美图工作者的,但至少AI可以做到一键优化,傻瓜式的操作,降低门槛。
而且自己虽然是计算机科班出身,但一直没做过写什么生活上便利自己的东西,一直想做点什么,上一年开始接触摄影,有一台单反,但要买配套的镜头实在太贵(毕竟单反穷三代……),而且很多时候自己并不会背着单反四处跑,所以看到美景主要都是手机摄影居多。
所以上周无意中一拍脑袋便有了这个想法。
目前已完成的功能有:
    去除手抖
2.去除因过分调焦引入的噪音
3.自然图像超分重建
4.人脸超分重建
目前主要是满足自己需求为主,模型采用了小模型(release的文件总共2.85MB ),每一个功能的模型都在相应问题下的小数据(1w成对的图片)上进行训练。目前只有命令行界面,后续会视情况来决定是否使用较大模型和大数据集上训练,以及是否提供GUI等。如果关注度不高,那就纯粹以满足自己需求为主了。
另外,项目采用的是插件机制,所以欢迎有兴趣的童鞋开发出有趣的模型并PR回来。


https://github.com/MashiMaroLjc/elegance看看关注度如何再决定在不在专栏写一些技术细节和训练的trick吧。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-7-3 08:50 | 显示全部楼层
Vlfeat, Matconvnet, Piotr's Toolbox, Caffe, 可以随便玩,随便折腾。。
发表于 2021-7-3 08:54 | 显示全部楼层
看题关键词为 图像, 机器学习, 于是就想到了一个让模型学会如何去看真实世界并专注于事物某些特征的项目.
这个项目叫: LearnToSee (stephencwelch/LearningToSee) . 我第一次看见时觉得, 简单的技术好好运用竟然这么有趣.
stephencwelch/LearningToSee项目还有配套 youtube视频 (https://www.youtube.com/watch?v=i8D90DkCLhI), 简直不要太友好.
本项目循序渐经, 最终让模型学会从摄像头捕捉手指并在左边的像素框里用黑白像素实时显示出来. 私认为已经很好的符合了 learn to see 的目的.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-23 19:10 , Processed in 0.167727 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表