# bad-detect **Repository Path**: jackonyang/bad-detect ## Basic Information - **Project Name**: bad-detect - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-10-24 - **Last Updated**: 2021-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 管道缺陷-项目说明 ## 文档清单 已全部上传至百度云 链接: https://pan.baidu.com/s/1cWTG_bn5R9eRi4B18RO5iA 提取码: myki - 01.软件需求说明书-叶绍泽-深圳工勘.pdf: 甲方提供,需求文件(仅供参考) - 02.需求-管道缺陷类型和例子汇总.pdf:甲方提供,需要识别的缺陷类型和例子。 - 11-2.管道缺陷识别项目-解决方案预研报告-v1.pptx:我方提供。甲方提供了 2178 张真实图片做可行性论证,我们的结果报告。 - 12.预研报告-附件1-管道缺陷检测-详细预测结果-r1.pdf: 可行性报告的附件。选取了 68 张典型图片及其识别结果。 - 缺陷视频(目录):最新提供的原始视频。 ## 项目背景 城市下水道的管道系统,需要检测是否有缺陷。 目前的做法是,放一个摄像机器人进去录像,看内壁有没有腐蚀、阻塞等。 我们可以用类似人脸识别的技术,去识别缺陷,包括缺陷的类型(腐蚀、阻塞等)。 我们使用经典的 [深度学习](https://zh.wikipedia.org/wiki/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0) 理论。 ## 技术方案 #### 识别的核心流程 1. 视频分帧。即,把 1 个视频转换成 N 张图片。后续的处理,全部基于图片进行。 2. 图片过滤。删除不适合于缺陷识别的图片。比如,视频的开头和结尾。 3. 图片缺陷识别。我们提前训练好了一个深度学习的模型,输入一张图片,输出是有没有缺陷,若有,缺陷的类型。 4. 缺陷位置识别。视频左下角,有当前距离。如果有缺陷,用 OCR 技术识别出距离。 5. 合并识别结果。某一处有缺陷,连续的 N 张图片都会识别出缺陷。最终的报告里,应该只报告 1 处缺陷,而不是 N 次重复报告。 #### 深度学习的模型训练 深度学习的模型,可以分 2 大类。 - CNN(卷积神经网络): 图像识别。 - RNN(循环神经网络): 语音识别、自然语言处理等。 我们使用 CNN 模型。 通俗的理解,CNN 就像一个刚出生的婴儿。 刚开始,什么都不会,需要进行"模型训练"。 我们发给他 N 张图片,告诉他这是有缺陷的。 同理,再发 N 张图片,并告诉他这是没有缺陷的。 模型对比两组图片的相似处和差别,会总结出规律。就像婴儿的学习一样。 最初的学习,可能是错的。 比如,有缺陷的图片都是在有水的管道里拍的,没有缺陷的都是在没有水的管道里拍的。 模型学到的,可能就不是有没有缺陷,而是有没有水。 随着数据量的增加,很多有缺陷的图片也是在没有水的管道里拍的。 模型就会自动纠正这个错误,学习到正确的缺陷特征,比如,内壁不光滑(对应的图片像素值大小波动)。 训练模型时,最关键的就是输入的数据。 数据特征要尽量的多样化,数据量尽可能大。 输入的数据,需要我们自己准备。 这个是很花费时间和精力的体力活。 另外,人工的标注,总会有失误。 些许的失误,对模型影响不大。但如果失误太多,就影响最终结果了。 #### 产品形态 客户端,还是云服务等。 1. 起步阶段,建议选择 windows 客户端,不要服务器端。 2. 有了种子用户以后,可以逐步推出云服务。比如,云存储(数据备份),云识别(视频提交到服务器上识别) ## 开发计划 #### DEMO 版本 如果是合作的模式,第一版就只做核心功能。 甲方可以用来给他的潜在客户做 DEMO 即可。 ![DEMO](21-甲方当前版本.png) 上图是甲方提供的,他们的当前版本。 原则上,我们也只做这一个页面,但设计的更加美观、易用。 呈现的元素上,也优化一下。 - 播放视频 - 当前缺陷,缺陷位置 - 该视频识别到的所有缺陷及位置。 - 导出缺陷报告 #### 正式版 v1 谈了第一单用户以后,给用户做定制开发。 即使我们先做好了,签了单子以后也不可能没有定制需求。 ## 工作量评估和成本 模型训练和功能开发,是分开的。 #### 数据标注和结果检查 最好让甲方来做,我们自己搞,成本高,效率低,质量差。 1. 数据标注,是个不小的工作量。需要找学生、或者众包平台。 2. 数据标注结果检查。几万张图片,外包弄好了,我们怎么校验标注质量,也需要些时间和人力投入。 自己做的话,预计成本 10万。 #### 模型训练 这一步,是用标注好的图片训练一个人工智能模型。 我们需要至少 3 个模型:是不是管道图片,有没有缺陷,缺陷类型。 如果外包给西电,预算 10 万。 若报价超过 10 万,可能就考虑自己做了。 预计 2-3 个月。 成本 10 万。 #### 识别的核心流程开发 把视频拆分成图片,调用人工智能模型,并合并识别结果。 代码量可能不太高,主要是反复调试参数。 预期,可以申请专利。知识产权的归属权,很重要。 这部分工作成果,尽量不对甲方公开。 3-4 人月。 成本 10 万。 #### UI、生成报告等基础功能开发 DEMO 的话,很简单。 预计 2 人/月搞定。 成本 5 万以内。 #### 总结 只计算了研发成本,没有考虑管理、沟通、交通、礼金等。 总成本,预计 35 万以内。 其中,数据标注,甲方应该会做。我们实际承担的成本是 25 万以内。 大部分开发,我和女朋友可以搞定。 我们的现金投入,会低于这个数字。 只要大家一起合作上 2 个客户, 我们的识别正确率、AI 模型就会打磨的非常好了。 换一个供应商,想要从头复制一份产品跟我们竞争,基本不可能了。 这个技术壁垒一旦形成,配合着专利保护,应该会比较不错。