通常来讲是模型把数据学习过深,数据中的细节和噪音也学习进去了,这样就导致模型泛化的性能变差。过拟合的表现是,一个模型(一个假设)在训练集上表现得很好,但是在测试集上表现的确不是很好。 那该如何通过数据限制过拟合呢? 重新清洗数据。数据的噪音太多会影响到模型效果,清洗数据能够把由于这个因素造成的过拟合问题规避 增加训练集的数据量。如果训练集占总数据的比例太少,也会造成过拟合。 当然也能通过算法限制这个问题的,比如正则化方法和dropout法,以后有空我们可以再深入讨论。 五、项目实践 (以车型识别举例) 车辆检测系统下有很多CV相关的应用,比如车型识别、车牌识别、车颜色识别等等。我们从车型识别这一个例子着手,探索项目的具体流程。 项目前期准备 1.数据准备: 车型这个主题说大不大,说小不小。全世界的车辆品牌数目大约三四百个,每个品牌下面又有几十种车系。我们从0开始立项,至少需要把常见的车辆车系都包含。像大众、丰田、奔驰、宝马、奥迪、现代等等热门车辆品牌更是需要拿全数据。每一种车型至少有车头、车尾、车身三种基础数据。 比如奔驰C200: 这三张图片代表了三种数据,不同场景下这三种数据的重要性大为不同。在项目前期假设我们定下来识别车型这个需求主要应用场景是“停车场识别车辆”,那车头这个数据相对而言就更加重要,需要花更多心思收集。为什么呢?我们可以想象,停车场的车辆识别摄像头为了捕捉车牌号,一般会将摄像头正对车辆,摄像头传上来的数据很少会有纯侧面车身的数据甚至车尾数据。我们为了项目更快地应用落地,其他类型数据比较缺少的情况是可以暂时放下后期再做优化的。
在数据准备的过程中,首先需要爬虫从网上爬取数据,再由人工筛选过滤到不可用的数据,将数据统一整合,才能进行下一步工作。 2.文档准备 A)数据标注文档,包括我们项目一共所含多少钟车型、每一种车型分别对应什么样式。数据标注中需要注意的问题,多辆车的图片、角度刁钻的图片是否需要舍弃等等。 B)产品文档,包括落地场景说明、需求说明文档等常规文档。这里拿工业车辆识别需求分析下系统设计: 算法需求描述(识别的种类、范围、速度、准确率、稳定性等等) 摄像头设备硬件需求描述、环境描述、数据传送描述、摄像头配置描述 平台程序设计(车辆识别系统平台前后端设计) 数据关联描述(车辆信息分析统计关联) 如果摄像头在局域网,且有布控功能(识别车辆黑名单的需求)还需要: 下发程序(考虑云端到本地的图像特征下发) 点播程序设计(可以从互联网查看本地摄像头) 项目流程跟踪 1.软硬件端:按照常规的软硬件项目跟踪开发 2.算法:车型识别的流程基本如下:
车型图像上传:通过过摄像头/web上传 图像预处理:包含了上文成像部分中的模糊图像恢复处理(运动模糊有快速算法去模糊:通过已知速度V、位移S,确定图像中任意点的值)
early vision中的图像分割(将目标图像从背景图中标识出来,便于图像识别,可以考虑边缘检测方法)、图像二值化(将图像中的像素点的灰度值设置为0或者255,使用轮廓跟踪让目标轮廓更为凸显)
图像特征提取
特征比对 项目测试 摄像头测试 摄像头与点播程序测试 点播程序(可实时查看摄像头的程序)与平台后台程序测试 算法与平台后台测试、备用接口测试 模型识别时间测试 模型识别准确率、召回率测试 服务器稳定性测试 网络带宽限制测试 正反向测试 其他平台、硬件产品常规测试 项目验收 产品按照流程功能逐一验收 六、后记 (责任编辑:admin) |