原文:
www.kdnuggets.com/2018/06/diy-deep-learning-projects.html
1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。
2. 谷歌数据分析专业证书 - 提升您的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持您的组织 IT
阿克沙伊·巴哈杜尔(Akshay Bahadur)是 LinkedIn 数据科学社区中的优秀例子之一。还有许多其他平台上的优秀人士,如 Quora、StackOverflow、YouTube 和众多论坛,他们在科学、哲学、数学、语言以及数据科学及其相关领域相互帮助。
阿克沙伊·巴哈杜尔(Akshay Bahadur)。
但我认为在过去的 ~3 年里,LinkedIn 社区在数据科学领域分享了很多精彩内容,从分享经验到详细的帖子,介绍了如何在现实世界中进行机器学习或深度学习。我总是推荐进入这个领域的人加入一个社区,LinkedIn 是最好的之一,你会一直在那里找到我 :).
github.com/facebookresearch/Detectron
在深度学习领域,研究图像分类、检测以及在“看到”某物时采取行动非常重要,这一领域在这个十年取得了令人惊叹的成果,比如在某些问题上超越了人类水平的表现。
在这篇文章中,我将展示阿克沙伊·巴哈杜尔在计算机视觉(CV)和深度学习(DL)领域所做的每一篇帖子。如果你对这些术语不熟悉,可以在这里了解更多:
关于深度学习的介绍、课程和博客文章非常丰富。但这是一种不同的介绍。 towardsdatascience.com
我决定提高对计算机视觉和机器学习技术的熟悉程度。作为一名网页开发人员,我发现了这一点…… towardsdatascience.com
对人类和计算机视觉的 50 年回顾 towardsdatascience.com
我最近完成了 Andrew Ng 的 Coursera 计算机视觉课程。Ng 对许多… towardsdatascience.com
akshaybahadur21/HandMovementTracking
通过在 GitHub 上创建一个账户来为 HandMovementTracking 开发做出贡献。 github.com
来自 Akshay:
要进行视频跟踪,算法分析连续的视频帧并输出目标在帧之间的运动。各种算法各有优缺点。选择哪种算法时需要考虑其预期用途。视觉跟踪系统有两个主要组成部分:目标表示和定位,以及滤波和数据关联。
视频跟踪是使用相机随时间定位移动物体(或多个物体)的过程。它有多种用途,包括:人机交互、安全与监控、视频通信与压缩、增强现实、交通控制、医学成像和视频编辑。
这是你需要的所有代码来重现它:
import numpy as np
import cv2
import argparse
from collections import deque
cap=cv2.VideoCapture(0)
pts = deque(maxlen=64)
Lower_green = np.array([110,50,50])
Upper_green = np.array([130,255,255])
while True:
ret, img=cap.read()
hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
kernel=np.ones((5,5),np.uint8)
mask=cv2.inRange(hsv,Lower_green,Upper_green)
mask = cv2.erode(mask, kernel, iterations=2)
mask=cv2.morphologyEx(mask,cv2.MORPH_OPEN,kernel)
#mask=cv2.morphologyEx(mask,cv2.MORPH_CLOSE,kernel)
mask = cv2.dilate(mask, kernel, iterations=1)
res=cv2.bitwise_and(img,img,mask=mask)
cnts,heir=cv2.findContours(mask.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)[-2:]
center = None
if len(cnts) > 0:
c = max(cnts, key=cv2.contourArea)
((x, y), radius) = cv2.minEnclosingCircle(c)
M = cv2.moments(c)
center = (int(M["m10"] / M["m00"]), int(M["m01"] / M["m00"]))
if radius > 5:
cv2.circle(img, (int(x), int(y)), int(radius),(0, 255, 255), 2)
cv2.circle(img, center, 5, (0, 0, 255), -1)
pts.appendleft(center)
for i in xrange (1,len(pts)):
if pts[i-1]is None or pts[i] is None:
continue
thick = int(np.sqrt(len(pts) / float(i + 1)) * 2.5)
cv2.line(img, pts[i-1],pts[i],(0,0,225),thick)
cv2.imshow("Frame", img)
cv2.imshow("mask",mask)
cv2.imshow("res",res)
k=cv2.waitKey(30) & 0xFF
if k==32:
break
# cleanup the camera and close any open windows
cap.release()
cv2.destroyAllWindows()
是的,54 行代码。很简单,对吧?你需要在电脑上安装 OpenCV,如果你有 Mac,可以查看这个:
在这篇文章中,我们将提供在 MacOS 和 OSX 上安装 OpenCV 3.3.0(C++ 和 Python)的逐步说明…
如果你有 Ubuntu:
OpenCV:在 Ubuntu 上安装 OpenCV-Python
现在我们已经有了所有必要的依赖项,接下来安装 OpenCV。安装需要通过 CMake 配置。它… docs.opencv.org
如果你有 Windows:
在 Windows 上安装 OpenCV-Python - OpenCV 3.0.0-dev 文档
在本教程中,我们将学习如何在 Windows 系统上设置 OpenCV-Python。以下步骤已在 Windows 7-64 上测试过…
akshaybahadur21/Drowsiness_Detection
通过在 GitHub 上创建一个账户来为 Drowsiness_Detection 开发做出贡献。 github.com
这可以用于那些长时间驾驶的骑手,可能会导致事故。该代码可以检测你的眼睛,并在用户打瞌睡时发出警报。
依赖
-
cv2
-
immutils
-
dlib
-
scipy
算法
每只眼睛由 6 个(x,y)坐标表示,从眼睛的左上角开始(就像你在看那个人一样),然后顺时针环绕眼睛:
条件
它检查 20 个连续的帧,如果眼睛纵横比小于 0.25,则会生成警报。
关系
总结
akshaybahadur21/Digit-Recognizer
Digit-Recognizer - 识别数字的机器学习分类器 github.com
这段代码帮助你使用 softmax 回归分类不同的数字。你可以安装 Conda 来解决机器学习的所有依赖关系。
描述
Softmax 回归(同义词:多项逻辑回归、最大熵分类器或多类逻辑回归)是逻辑回归的一种推广,我们可以用于多类分类(假设类别是相互排斥的)。相对而言,在二分类任务中,我们使用(标准)逻辑回归模型。
Python 实现
使用的数据集是 MNIST,图像大小为 28 X 28,计划是使用逻辑回归、浅层网络和深度神经网络来分类 0 到 9 的数字。
这里最好的部分之一是他使用 Numpy 编码了三个模型,包括优化、前向和反向传播以及所有其他内容。
对于逻辑回归:查看代码
对于浅层神经网络:查看代码
最终使用深度神经网络:查看代码
通过网络摄像头写入的执行
要运行代码,输入python Dig-Rec.py
python Dig-Rec.py
通过网络摄像头显示图像的执行
要运行代码,输入python Digit-Recognizer.py
python Digit-Recognizer.py
akshaybahadur21/Devanagiri-Recognizer
Devanagiri-Recognizer - 使用卷积网络的印地语字母分类器 github.com
这段代码帮助你使用卷积网络对印地语(Devanagiri)不同字母进行分类。你可以安装 Conda 来解决机器学习的所有依赖关系。
使用的技术
我使用了卷积神经网络。我使用 Tensorflow 作为框架,Keras API 提供高级抽象。
架构
CONV2D → MAXPOOL → CONV2D → MAXPOOL → FC → Softmax → 分类
一些额外的点
-
你可以添加额外的卷积层。
-
添加正则化以防止过拟合。
-
你可以添加额外的图像到训练集中,以提高准确性。
Python 实现
数据集- DHCD(Devanagari 字符数据集),图像大小为 32 X 32,并使用卷积网络。
要运行代码,输入python Dev-Rec.py
python Dev-Rec.py
akshaybahadur21/Facial-Recognition-using-Facenet
Facial-Recognition-using-Facenet - 使用 facenets 实现面部识别。
这段代码帮助进行面部识别,使用 facenets(arxiv.org/pdf/1503.03832.pdf
)。facenets 的概念最初在一篇研究论文中提出。主要概念涉及三元组损失函数,用于比较不同人的图像。这个概念使用了 inception 网络,源码来自于此,而 fr_utils.py 来自于 deeplearning.ai 作为参考。我添加了自己的一些功能,以提供稳定性和更好的检测。
代码要求
你可以为 Python 安装 Conda,它解决了所有机器学习的依赖关系,你将需要:
numpy
matplotlib
cv2
keras
dlib
h5py
scipy
描述
面部识别系统是一种技术,能够通过数字图像或视频源中的视频帧来识别或验证一个人。面部识别系统有多种工作方法,但一般来说,它们通过将选定的面部特征与数据库中的面部进行比较来工作。
添加的功能
-
仅在你的眼睛睁开时检测面部。(安全措施)。
-
使用 dlib 的面部对齐功能,以便在实时流媒体中有效预测。
Python 实现
-
使用的网络- Inception 网络
-
原始论文——Google 的 Facenet
步骤
-
如果你想训练网络,运行
Train-inception.py
,然而你不需要这样做,因为我已经训练了模型并将其保存为face-rec_Google.h5
文件,该文件在运行时会被加载。 -
现在你需要在你的数据库中有图像。代码会检查
/images
文件夹。你可以将图片粘贴到那里,或者使用网络摄像头拍摄。为此,运行create-face.py
,图像将存储在/incept
文件夹中。你需要手动将它们粘贴到/images
文件夹中。 -
运行
rec-feat.py
来运行应用程序。
这段代码帮助你识别和分类不同的表情符号。目前,我们仅支持手部表情符号。
代码要求
你可以为 Python 安装 Conda,它解决了所有机器学习的依赖关系,你将需要:
numpy
matplotlib
cv2
keras
dlib
h5py
scipy
描述
表情符号是用于电子消息和网页的表意符号和笑脸。表情符号存在于各种类型中,包括面部表情、常见物品、地点和天气类型以及动物。它们很像表情符号,但表情符号是实际的图片,而不是文字。
功能
-
过滤器以检测手部。
-
用于训练模型的 CNN。
Python 实现
- 使用的网络 - 卷积神经网络
过程
-
首先,你必须创建一个手势数据库。为此,运行
CreateGest.py
。输入手势名称,你将看到 2 帧显示。查看轮廓帧,并调整你的手,确保捕捉到手部特征。按 'c' 以捕捉图像。它将拍摄 1200 张同一手势的图像。尝试在帧内稍微移动手,以确保你的模型在训练时不会过拟合。 -
对你想要的所有特征重复此操作。
-
运行
CreateCSV.py
将图像转换为 CSV 文件 -
如果你想训练模型,请运行‘TrainEmojinator.py’
-
最后,运行
Emojinator.py
来通过网络摄像头测试你的模型。
贡献者
Akshay Bahadur 和 Raghav Patnecha。
我只能说我对这些项目印象深刻,你可以在你的电脑上运行所有这些项目,或者更简单地在Deep Cognition平台上运行,如果你不想安装任何东西,并且它可以在线运行。
我想感谢 Akshay 和他的朋友们为这个伟大的开源贡献做出的努力,也感谢所有将来的贡献者。尝试这些,运行它们,获取灵感。这只是深度学习和计算机视觉能够做的惊人事物的一个小例子,最终由你来将其转化为能够帮助世界变得更美好的东西。
永不放弃,我们需要每个人对许多不同的事物感兴趣。我认为我们可以改变世界,使其变得更好,改善我们的生活、工作方式、思维方式和解决问题的方法。如果我们将所有现有资源集中起来,使这些知识领域为更大的利益而协作,我们可以对世界和我们的生活产生巨大的积极影响。
我们需要更多感兴趣的人,更多课程,更多专业化,更多热情。我们需要你 :)
感谢阅读。我希望你在这里找到了一些有趣的东西 :)
如果你有问题,可以在 Twitter 上添加我:
[Favio Vázquez (@FavioVaz) | Twitter
*Favio Vázquez (@FavioVaz) 最新的推文。数据科学家。物理学家和计算工程师。我有一…*twitter.com](https://twitter.com/FavioVaz)
和 LinkedIn:
[Favio Vázquez — 首席数据科学家 — OXXO | LinkedIn
*查看 Favio Vázquez 在 LinkedIn 的个人资料,全球最大的专业社区。Favio 列出了 15 个工作…*linkedin.com](http://linkedin.com/in/faviovazquez/)
那里见 :)
简历: Favio Vazquez 是一位物理学家和计算机工程师,专注于数据科学和计算宇宙学。他对科学、哲学、编程和音乐充满热情。目前,他担任 Oxxo 的首席数据科学家,致力于数据科学、机器学习和大数据。他还是 Ciencia y Datos 的创始人,这是一个西班牙语的数据科学出版物。他喜欢接受新挑战,与优秀的团队合作,并解决有趣的问题。他参与了 Apache Spark 的合作,帮助维护 MLlib、核心库和文档。他热衷于将自己的科学知识、数据分析、可视化和自动学习的专长应用于帮助世界变得更美好。
原文。经许可转载。
相关:
-
一个“奇怪”的深度学习入门
-
成为数据科学家的两面性
-
我深入学习深度学习的历程