如何从0到1开发一款互联网+人工智能落地应用

近几年人工智能项目如火如荼,但是大多处于研究阶段,由于需要用到GPU,纯CPU计算耗时较久,因此落地的互联网项目更是少之又少。本文通过一个实际的人工智能舌诊项目,简单介绍下如何从0到1开发一款互联网+人工智能落地应用。

本文内容:

1、准备训练图片数据;

2、选择开源神经网络算法模型;

3、得到训练模型,加载模型,执行预测。

本文需要一点机器视觉和神经网络基础知识

1、准备训练图片数据

以识别人脸图片为例

下载人脸图片数据集,收集目标图片,可以从百度图片下载,建议使用爬虫,PHP语言推荐使用php-spider,Python语言有很多开源爬虫框架;

谷歌或者百度即可

标注图片

安装yolo-mark

GitHub地址:https://github.com/AlexeyAB/Yolo_mark.git

安装MSVS2015

下载OpenCV 4.x windows安装包,官网有下载,下载完后解压到指定目录,如:e:\opencv;

导出yolo-mark源码,用 vs 打开 yolo_mark.sln,更改工程中的OpenCV的路径为本机安装路径:

右击项目 =》属性 =》 C/C++ =》通用 =》附加目录 =》 添加一行: e:\opencv\opencv\build\include

右击项目 =》属性 =》 链接器 =》通用 =》附加目录 =》 添加一行: e:\opencv\opencv\build\x64\vc14\lib

选择编译环境为 x64 & Release,然后右击项目 =》 生成 x64/Release/yolo_mark.cmd;

复制训练样本图片到 x64/Release/data/img;

打开 x64/Release/data/obj.data,更改classes= 1,表示只有一个类型,根据实际情况更改;

打开 x64/Release/data/obj.names,清空文件,输入face,多个的话一行一个;

双击 x64/Release/yolo_mark.cmd,运行即可标注。

标注说明

标注的框只需要包含目标对象即可

如果提示确实dll文件,从OpenCV安装目录opencv\build\bin复制对应的文件到 x64/Release/ 目录下即可

按数字键选择对应的类型(从0开始)后再标注

2、选择开源神经网络算法模型

目前速度最快的开源神经网络算法非yolo莫属,DNN网络采用yolo-v3,和v2版本相比,增加了网络的层级,支持检测小目标。

训练步骤

安装Yolo_mark,github地址:https://github.com/AlexeyAB/Yolo_mark ,上面介绍的比较详细,需要注意以下几点:

只支持OpenCV 2.x and OpenCV 3.x,OpenCV安装参考之前的教程;

编译完成后,运行x64/Release/yolo_mark.cmd,如果提示缺失opencv_ffmpeg3xx_64.dll,复制OpenCV 安装目录下的opencv_ffmpeg3xx_64.dll,到yolo_mark.cmd同级目录下

标注图片,参考教程:https://blog.csdn.net/qq_33485434/article/details/80597381 ;

训练网络:复制x64/Release/data目录下的所有文件到darknet安装目录对应的data目录下,更改cfg/yolov3.cfg中的classes参数,和对应的卷积层参数,具体参考:https://github.com/AlexeyAB/darknet#how-to-train-to-detect-your-custom-objects

常用命令:

训练命令:darknet.exe detector train data/obj.data cfg/yolov3.cfg /backup/yolov3.weights -map 如果没有权重文件,可以省略,会随机生成一个权重文件。

测试命令:darknet.exe detector test data/obj.data cfg/yolov3.cfg yolov3_final.weights,yolov3_final.weights为结束训练后的权重文件

3、得到训练模型,加载模型,执行预测

本文介绍训练完神经网络后,在实际应用小程序“AI看舌”中的使用。欢迎大家分享给有需要的人

准备配置文件和权重文件,具体教程参考前面的教程。更改配置文件为test模式,准备map值最高的权重文件。上传到服务器。

服务器安装OpenCV,centos需要注意设置 OpenCV 的系统库环境变量

新建SpringBoot项目,导入本地OpenCV包,查看之前的教程,通过Java调用OpenCV的DNN模块加载权重文件和配置文件,给出预测;

打包SpringBoot,上传到服务器,通过Java -jar 方式运行,也可以打包成docker镜像,然后上传到镜像服务器,通过docker运行。

具体参考我的github项目:GitHub - lwhua/aikanshe: 使用SpingBoot、OpenCV、yolo开发舌诊小程序

AI看舌,欢迎推荐给与需要的人:AI看舌 - 爱看舌,用AI看舌,专业的人工智能舌诊小程序,开启人工智能舌诊新时代。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容