图像识别项目(MobileNetV1-image-classification)

 

一、项目背景:**项目,在多个展馆中,找到主办方提示的多个物体(主要是一些洗漱化妆用品),用户利用小程序调用手机摄像头,每找到一个目标则点亮一个logo,找到全部logo则可以抽奖,当然抽奖这些都是后面的任务,这过程中主要说一下我在这个项目中的图片分类这一块,代码在我的GitHub上面,可以自行下载

二、环境: python3.7.7 tensorflowjs==1.3.1 tensorflow==1.15.0 keras==2.0.2

三、主要流程:

    1、数据收集:从甲方那里拿到了26个是实物,都是目标,图像采集主要是自己用手机拍摄传至电脑,这个过程中是真的累人,一个目标拍了150-200张左右,我和同事两个人整整搞了一天,腰酸背疼,拍照原则是尽量拍出多种角度、背景的照片;另外为了尽量防止用户拍到一些常见的人、物照片从网上下载了二三十中other类别的图像,最终class_num = 49

    2、模型、参数选择:当时主要是从使用方便、模型体积小参数量少,最终选择mobilenetv1,可以直接用在手机上,测试下来最终的转换之后的模型大小在1M左右;参数alpha = 0.25,input_shape选择128*128,采用‘imagenet’预训练网络,dropout=0.5,其他的参数看代码吧

    3、数据增强:主要是采用keras自带的ImageDataGenerator,归一化、裁剪、旋转、修改亮度对比度、随机高斯噪声、运动模糊等;最终图像数量在5w张左右,训练集验证集划分8:2;

    4、模型训练:epoch=10,最终结果 训练集loss: 0.1621 - 训练集acc: 0.9488 - 验证集val_loss: 0.2784 - 验证集val_acc: 0.9213,这中间也有问题,有的目标识别不准或者识别为别的分类,检查出来是有几张照片混在了其他分类中导致的,还有比较相似的目标增加数据集会更有助于分类准确;GitHub上的代码支持MobileNetV1和MobileNetV2,在主函数入口设置参数is_mobilenetV2即可,默认是False;


2693/2700 [============================>.] - ETA: 3s - loss: 0.1622 - acc: 0.9488
2694/2700 [============================>.] - ETA: 3s - loss: 0.1623 - acc: 0.9488
2695/2700 [============================>.] - ETA: 2s - loss: 0.1622 - acc: 0.9488
2696/2700 [============================>.] - ETA: 2s - loss: 0.1622 - acc: 0.9487
2697/2700 [============================>.] - ETA: 1s - loss: 0.1622 - acc: 0.9487
2698/2700 [============================>.] - ETA: 1s - loss: 0.1621 - acc: 0.9488
2699/2700 [============================>.] - ETA: 0s - loss: 0.1622 - acc: 0.9487
2700/2700 [==============================] - 1624s 601ms/step - loss: 0.1621 - acc: 0.9488 - val_loss: 0.2784 - val_acc: 0.9213

Epoch 00001: val_acc did not improve from 0.93200

Epoch 00001: val_loss did not improve from 0.23689

 

    5、模型转换:使用tensorflowjs_converter将模型转换为tfjs_layers_model或者tfjs_graph_model模型,剩下就是交给前端使用tensoflowjs加载模型预测就欧克了

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值