基于深度学习的图像识别机器人设计

程序逻辑设计概要

本文实验采用Python+Keras作为主要语言,使用饭否API接口实现对微博用户上传的图片实时监控,通过多层卷积神经网络对采集图像进行识别,图像符合人群画像标准,则转发。通过对神经网络训练,识别准确率可达到82.5%

卷积神经网络设计

         本文采用对Lenet经典神经网络改进网络,网络结构如下:

# first set of CONV -> RELU -> POOL layers
model.add(Conv2D(20, (5, 5), padding="same", input_shape=inputShape))
model.add(Activation(
"relu"))
model.add(MaxPooling2D(
pool_size=(2, 2), strides=(2, 2)))
# second set of conv relu pool layers
model.add(Conv2D(50, (5, 5), padding="same"))
model.add(Activation(
"relu"))
model.add(MaxPooling2D(
pool_size=(2, 2), strides=(2, 2)))
# triple set of conv relu pool layers
model.add(Conv2D(20, (5, 5), padding="same"))
model.add(Activation(
"relu"))
model.add(MaxPooling2D(
pool_size=(2, 2), strides=(2, 2)))
# first (only) set of FC relu layers
model.add(Flatten())
model.add(Dense(
500))
model.add(Activation(
"relu"))
# softmax classifier
model.add(Dense(classes))
model.add(Activation(
"softmax"))

数据集

对数据集采取二分类划分,类别为人像和非人像。数据集收集自饭否网。共计2168张图片,为了提高人像识别度,其中人像大于1.3:1尺寸的图像通过裁剪为三个等比例正方形方法扩展为共计489张。


自动转发系统设计

         转发系统采用python语言设计,通过饭否API (https://github.com/FanfouAPI/FanFouAPIDoc/wiki)获取系统微博信息。提取信息中的图像数据,使用训练好的model模型进行预测图像分类,若属于人像分类则通过API自动转发。

自动转发系统日志:

扫描二维码关注公众号,回复: 1536330 查看本文章

机器人识别效果

通过35次epoch 迭代,训练准确度达到89%左右,验证准确度达到83%左右。由于采取验证图像数据集过于小,所以可以看出图中验证准确度波动较大,且loss较高。


http://fanfou.com/uarepretty/

总结与展望

         虽然对于人像可以准确的识别,但是对于一些类人像特征的物体,如猫等。也会被误识别为人像并转发。

         其主要原因是网络结构过于浅,无法学习到更细节的特征,仅学习到了如眼睛,脸轮廓等。对于皮肤光滑程度没有很好的识别。如果采取更深层次的网络如ResNet50将会得到更好的效果。


猜你喜欢

转载自blog.csdn.net/zhangkaixu321/article/details/80621509
今日推荐