我们经常在做项目的时候,觉得分析背景和目标是浪费时间,觉得不过如此。
其实目标梳理特别重要,直接决定你数据的需求分析,模型的选择,决定你交付的质量。
人工智能项目也和其他项目一样,不要想当然,不要自己闷头去干。
当前的课程,给了一个玩具小车,在赛道上识别交通标志的深度学习案例,图像识别的图像分类。
背景:玩具车增加识别交通指示牌的能力。
目标:利用玩具车的前置摄像头,检测交通标志的位置。
任务过程包括:
- 明确数据采集需求
- 制作数据集
- 模型训练
- 模型评测
效果就是这样的。
我们可以看到,赛道是类似纸张铺设的,所以不平整。玩具交通标志,被用检测框标记出来。是很小的立起来的小牌子,塑料的,所以很容易有俯仰角、翻滚角等问题。
计算机视觉(CV)实际应用中。
我们要注意,除了关注的主体,还有很多其他要关注的信息,比如背景、光照;
我们在做图像识别,那么光就是最重要的因素。是不是有逆光、背光、面向光?如果样本图片,不包含这些情况,那么训练出来的模型,就将出现准确率和召回率都很低的情况。
还有客户给我们讲需求时,由于客户不理解这些,可能认为一切很简单,给的项目预算,就有问题,而实际,在这个项目中,我们要采集甚至超过1万个样本,都要进行特征标注,这是非常大的工作量,都要项目经费去支撑。
作为项目负责人,如果忽略了这一点,也将导致项目无法继续交付和落地。
延伸学习:
在深度学习中,图像分类是一个复杂且具有挑战性的任务。以下是一些难点和注意事项:
难点:
- 数据集的质量和多样性:图像分类的性能在很大程度上取决于训练数据的质量和多样性。如果数据集不够大、标注不准确或者缺乏多样性,那么模型的泛化能力可能会受到限制。
- 模型的复杂性:图像分类需要处理大量的输入数据,并学习从这些数据中提取有用的特征。因此,模型需要具有足够的复杂性来捕捉这些特征,但同时也要避免过拟合。
- 光照和视角变化:图像中的光照和视角变化可能会对模型的性能产生负面影响。模型需要能够处理这些变化,并正确地分类图像。
- 类别不平衡:在某些数据集中,某些类别的样本数量可能远多于其他类别,这可能导致模型在训练过程中偏向这些样本数量较多的类别。
注意事项:
- 数据预处理:在进行图像分类之前,需要对图像进行适当的预处理,如缩放、裁剪、归一化等,以确保输入数据的一致性和模型的稳定性。
- 模型选择:根据具体任务和数据集的特点选择合适的模型。目前有许多先进的深度学习模型可用于图像分类,如卷积神经网络(CNN)、残差网络(ResNet)等。
- 调参技巧:在训练过程中,需要合理地设置学习率、批大小等超参数,并使用优化算法来加速训练过程。同时,还需要关注模型的过拟合问题,并采取相应的措施来避免过拟合。
目前最先进的模型和算法:
在图像分类领域,目前最先进的模型之一是EfficientNet系列模型。EfficientNet通过一种称为复合缩放的方法,在保持计算效率和精度的同时,实现了更高的性能。此外,还有许多其他优秀的模型,如ViT(Vision Transformer)等。
在算法方面,除了传统的梯度下降算法外,还有许多优化算法可用于加速训练过程和提高模型性能,如Adam、RMSProp等。这些算法可以根据具体任务和数据集的特点进行选择。
工具:
目前有许多深度学习框架和工具可用于图像分类任务,如TensorFlow、PyTorch、Keras等。这些工具提供了丰富的API和预训练模型,可以方便地构建和训练深度学习模型。此外,还有一些可视化工具可以帮助我们更好地理解模型的训练过程和性能,如TensorBoard等。