项目创意
在本节课中,我们将介绍一些你应当关注并动手实践的精彩项目。
我们现在想为你推荐一些可以着手实践并展示在简历、GitHub 等平台上的项目。
项目列表
我们将介绍六个值得尝试的项目创意,帮助你进一步提升技能。
1. 石头剪刀布游戏(简单)
第一个项目是一个石头剪刀布游戏,但不要以为这很简单。我们需要根据具体的要求来实现该项目。在这个项目中,两个人将把手伸到电脑屏幕前,每只手可以被分类为三种类型之一:石头、剪刀或布。系统需要根据画面判断出手势类别。最简单的实现方式是设定两个固定区域,玩家在区域内展示手势;然后使用 opencv thresholding 技术获取手部的黑白图像。通过阈值分割去除背景,提取出手的形状,再利用一个简单的分类器或小型神经网络,判断该手势属于石头、剪刀还是布。如果你想增加难度,可以不用固定区域,而是采用目标检测算法来定位玩家的手部位置。接着将屏幕划分为两部分,分别对应两名玩家,先进行手部检测,再对手部区域进行分类。希望这些思路能帮助你完成这个项目。
2. 基于图像的搜索引擎(中等)
第二个项目是构建一个基于图像的搜索引擎。如果你用过谷歌搜索,应该知道有一个功能是上传一张图片,系统会返回与之相似的其他图片。你可以实现类似的功能。例如,给定一张花朵的图片,系统需找出并返回其他类似的花朵图片。
如何实现这一功能?
我们将基于图像的特征向量来计算它们之间的相似性。可以使用卷积神经网络(如 ResNet),将输入图像传入网络,并从全连接层提取特征向量。然后通过余弦相似度或其他相似性度量方法比较两个特征向量。如果两张图像的特征向量相近,则说明它们在视觉上也较为相似。若要返回最相似的前十张图片,只需找出与输入图像特征向量最接近的十张图像即可。这样就能构建一个简单的图像推荐系统。
3. AI 图像描述生成机器人(困难)
下一个项目难度较高。你需要训练一个基于 LSTM 和 CNN 的模型,并结合一些预训练模型。系统接收一张图像作为输入,自动生成一段描述该图像内容的文字说明。听起来很有挑战性,但只要你掌握了基础知识,就可以尝试实现。你还可以使用 Flask 构建一个网页应用(也可以选择 Django,但我们推荐更轻量且易于学习的 Flask 框架)。
4. AI 音乐生成(困难)
这是一个非常有趣的项目。在这个项目中,你将训练模型生成具有一定规律的序列数据,并将其转换为音频文件。由于涉及序列数据处理,自然需要用到 RNN,更具体地说,建议使用 LSTM。此外,你还将学习音频信号的处理原理,包括正弦波和余弦波的基本知识。我们强烈建议你尝试这个项目。
5. 虚假人脸生成器(困难)
请勿以任何形式滥用此项目。 在该项目中,你的模型将在真实的人脸图像数据集上进行训练,训练完成后能够随机生成一些看似真实但实际上并不存在的人脸图像。要完成这个项目,你需要理解生成模型的工作原理,尤其是生成对抗网络(GANs)及其工作机制。如果不了解 GAN,将无法成功实现该项目。
6. 文本摘要生成(中等)
这是一个自然语言处理(NLP)项目。顾名思义,你要构建一个文本摘要生成器。尽管我们将其难度定为中等,但实际上具有一定的挑战性。文本摘要主要有两种方法:抽取式摘要和生成式摘要。我们建议你先实现一个基于抽取式的摘要系统,然后再尝试实现生成式摘要。该项目需要使用序列到序列(sequence-to-sequence)模型,并设计合适的方法来自动生成一段文本的摘要内容。