分享|16个含源码和数据集的计算机视觉实战项目

本文将分享16个含源码和数据集的计算机视觉实战项目。具体包括:

1. 人数统计工具

2. 颜色检测

3. 视频中的对象跟踪

4. 行人检测

5. 手势识别

6. 人类情感识别

7. 车道线检测

8. 名片扫描仪

9. 车牌识别

10. 手写数字识别

11.鸢尾花分类

12. 家庭照片人脸检测

13. 乐高积木查找器

14. 个人防护装备检测

15. 口罩检测

16. 交通灯检测

1. 人数统计工具

构建人数统计解决方案既可以是一个有趣的项目,又可以真正找到现实世界的应用程序。

要检测和计算图像中存在的人数,您需要相关的训练数据集和数据训练平台。您可以使用 OpenCV 等免费工具来标记数据,或使用 V7 等自动注释工具来更快地完成此项目。

自 COVID-19 爆发以来,人数统计解决方案越来越受欢迎,有助于执行社交距离规则并提高安全性。

下面是一个推荐的数据集和代码,可以帮助您入门:

代码语言:javascript
复制
https://github.com/gjy3035/PCC-Net

2. 颜色检测

接下来是一个简单的颜色检测器,可用于各种视觉任务。

从检测颜色到构建绿屏应用程序(用自定义视频或背景替换绿色背景)到简单的照片编辑软件,构建颜色识别器是计算机视觉入门的一个很棒的项目。

以下是您可能想要在项目中使用的一些有趣的数据集和代码:

代码语言:javascript
复制
https://github.com/mpatacchiola/deepgaze

3. 视频中的对象跟踪

对象跟踪是根据先前的信息估计场景中存在的目标对象的状态。

您可以使用涉及一个对象(例如汽车)或多个对象(例如行人、动物等)的视频来构建简单的对象跟踪模型。

本质上,该模型将执行两项任务 - 预测对象的下一个状态并根据对象的真实状况纠正该状态。对象跟踪模型在交通控制和人机交互中得到应用。

以下是您可能会对此计算机视觉任务感兴趣的一些视频数据集和代码:

代码语言:javascript
复制
https://github.com/JunweiLiang/Object_Detection_Tracking

4. 行人检测

构建对象检测模型来检测行人是最简单、最快完成的计算机视觉项目之一。

您所需要的只是高质量图像的相关数据集和用于训练和测试模型的数据训练平台。您可以使用免费的图像注释工具之一。

行人探测器通常用于汽车行业的交通安全以及人机交互和智能视频系统。

考虑这些数据集和代码来开始:

代码语言:javascript
复制
https://github.com/kuanhungchen/awesome-tiny-object-detection

5. 手势识别

手势识别是一项更高级的计算机视觉任务,要求您首先将手部区域与背景分开,然后分割手指以预测手势。

如果您想保持模型简单,可以使用 OpenCV。训练后,您可以使用网络摄像头测试您的模型。手势模型可用于 VR 游戏和手语。

查看这些数据集和代码以开始:

代码语言:javascript
复制
https://github.com/ahmetgunduz/Real-time-GesRec

6. 人类情感识别

如果您决定执行更具挑战性的任务,请考虑构建情绪检测模型。您可以将模型基于六种主要的面部情绪:快乐、悲伤、愤怒、恐惧、厌恶和惊讶。

该项目的三个主要组成部分包括图像预处理、特征提取和特征分类。

以下是可能派上用场的数据集和代码:

代码语言:javascript
复制
https://github.com/atulapra/Emotion-detection

7. 车道线检测

道路车道检测是另一种在汽车行业发展中发挥关键作用的计算机视觉模型。

道路车道检测器主要用于自动驾驶汽车,可以是一个有趣的初学者项目,它将帮助您获得图像和视频的实践经验。

以下是一些可以帮助您的数据集和代码:

代码语言:javascript
复制
https://github.com/oneshell/road-lane-detection

8. 名片扫描仪

开发名片扫描仪可以使用 OCR(光学字符识别)技术来完成。您训练有素的模型将从名片中查找并提取信息。

本质上,该项目将分为三个阶段:图像处理(噪声消除)、OCR(文本提取)和分类(对关键属性进行分类)。

您可以使用名片阅读器自动输入数据。选择其中一个数据集开始:

代码语言:javascript
复制
https://github.com/dhruv2601/Business-Card-Scanner

9. 车牌识别

车牌识别器是使用 OCR 的计算机视觉项目的另一个想法。

然而,该项目存在两个挑战:数据收集以及车牌格式因地点/国家而异。

因此,除非您训练大量数据(如果您设法获得数据),否则您的模型可能不准确。

注意:车牌号被视为敏感数据,因此在构建模型时请确保坚持使用公开可用的数据集。

一个简单的自动车牌识别系统可以使用基本的图像处理技术,您可以使用 OpenCV 和 Python 来构建它。

然而,更先进的系统使用 YOLO 或 Fast C-RNN 等目标检测器。

自动车牌识别可用于安防、停车、智慧城市、自动收费、门禁等。

以下是您可能会考虑的一些数据集和代码:

代码语言:javascript
复制
https://github.com/sergiomsilva/alpr-unconstrained

10. 手写数字识别

该项目对于计算机视觉新手来说是一个完美的开始——您可以使用 MNIST 数据集构建一个简单的数字识别器。

当您有机会使用卷积神经网络训练模型时,您将学习如何开发、评估和使用卷积深度学习神经网络进行图像分类。

MNIST 数据集包含 60,000 个示例的训练集和 10,000 个示例的测试集。您可以在这里访问它:

代码语言:javascript
复制
https://github.com/MyScript/myscript-math-web

11.鸢尾花分类

这是另一个计算机视觉项目,基于最流行且最容易获得的模式识别数据集之一——鸢尾花分类数据集。

它包含三个类,每个类 50 个实例,其中每个类都指一种鸢尾植物。这是一个很棒的初学者项目,将帮助您获得图像分类的实践经验,因为您将训练模型来预测新鸢尾花的种类。

您可以在此处下载数据集和代码:

代码语言:javascript
复制
https://github.com/amberkakkar01/IRIS-Flower-classification

12. 家庭照片人脸检测

拿起您的家庭相册收集原始数据并构建人脸识别模型以识别照片中的家庭成员。

您可以使用免费的注释工具标记数据,并在不到一个小时的时间内训练您的模型。该任务是一个多阶段过程,包括人脸检测、对齐、特征提取和特征识别。

为了使您的项目更有趣、模型更准确,也可以考虑使用视频数据。如果您无法自行获取数据,请查看这些数据集以开始面部识别项目:

代码语言:javascript
复制
https://github.com/jfthuong/photo-organizer

13. 乐高积木查找器

如果您在童年时期曾花费数小时搭建乐高积木,那么这个项目可能是让您迷上计算机视觉的完美方式。

最简单的形式是,您可以构建一个模型,使用网络摄像头或手机摄像头实时检测和识别乐高积木。您所需要的只是大量的训练数据和训练模型的工具。

以下是适合您的数据集和代码:

代码语言:javascript
复制
https://github.com/ShawnHymel/openmv-lego-brick-finder

14. 个人防护装备检测

该计算机视觉项目的目标是建立一个模型来识别个人防护装备或口罩的元素。您可以在几个小时内完成它,并使用网络摄像头并在计算机前戴上面罩进行测试。

个人防护装备检测模型可应用于建筑或医疗保健(医院)等行业。

查看这些数据集和代码以开始使用:

代码语言:javascript
复制
https://github.com/AnshulSood11/PPE-Detection-YOLO-Deep_SORT

15. 口罩检测

与 PPE 检测类似,您可以构建一个简单的口罩检测模型来识别在公共场合戴口罩和不戴口罩的人。

请记住收集大量数据,以确保模型处理各种遮挡的准确性。

查看此数据集和代码以开始:

代码语言:javascript
复制
https://github.com/naemazam/Real-Time-Face-Mask-Detection

16. 交通灯检测

最后,考虑花一些时间训练交通灯探测器。该项目相对容易完成,因为您可以免费访问数据和研究的可用性。

交通灯检测在智能交通领域得到应用,包括自动驾驶汽车和智能城市等流行用例。

以下是您可以使用的一些数据集和代码:

代码语言:javascript
复制
https://github.com/erdos-project/pylot