(Tensorflow学习)药品的缺陷分类应用 tensorflow实现

在17版本的halcon中有深度学习的例子,关于分类的。

如下面三类,脏污,裂纹,和好的。

这边可以用tensorflow重现下,因为在笔记本上跑的,显卡不行,把原来300*300 resize到150*150

网络搭建个简单的,两层卷积就行,用keras实现。

读取图像用keras里的那个flow_from_directory,非常方便,最后保存h5模型,方便使用

训练源码

from keras.models import Sequential
from keras.layers import Conv2D, MaxPool2D, Flatten, Dropout, Dense
from keras.losses import categorical_crossentropy
from keras.optimizers import Adadelta
from keras.preprocessing.image import ImageDataGenerator

import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.8
set_session(tf.Session(config=config))

model=Sequential()
model.add(Conv2D(32,(5,5),activation='relu',input_shape=[150,150,3]))
model.add(MaxPool2D(pool_size=(2,2),strides=[2,2],padding='SAME'))
model.add(Conv2D(64,(5,5),activation='relu'))
model.add(MaxPool2D(pool_size=(2,2),strides=[1,1],padding='SAME'))
model.add(Flatten())
model.add(Dropout(0.5))
model.add(Dense(128,activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(3,activation='softmax'))
model.compile(loss=categorical_crossentropy,optimizer=Adadelta(),metrics=['accuracy'])


datagen = ImageDataGenerator(rescale=1./255)
train_generator = datagen.flow_from_directory(
    './pill/magnesium',
    target_size=(150, 150),
    batch_size=16)
model.fit_generator(train_generator, steps_per_epoch=100, epochs=50)

mp = "model.h5"
model.save(mp)

测试源码

from keras.models import load_model
from skimage import io,transform
import numpy as np

load_model=load_model('model.h5')
img=io.imread("a.png")
img=transform.resize(img,(150,150))
img3=img[np.newaxis,:,:,:]
predicted = load_model.predict(img3)
print(predicted)
io.imshow(img)
io.show()

OK

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值