EMG signal image classification (image_classification_emg.py)
from matplotlib import pyplot as plt
import numpy as np
import os
import tensorflow as tf
from nets import inception
from preprocessing import inception_preprocessing
from tkinter import Tk
from tkinter.filedialog import askopenfilename
Tk().withdraw()
checkpoints_dir = ‘D:\\tmp\\train_inception_v4_EMG_FineTune_logs\\all’
slim = tf.contrib.slim
image_size = inception.inception_v4.default_image_size
while True:
file = askopenfilename()
if file == “”:
break
str(file)
print(file)
with tf.Graph().as_default():
image_input = tf.read_file(file)
image = tf.image.decode_jpeg(image_input, channels=3)
processed_image = inception_preprocessing.preprocess_image(image, image_size, image_size, is_training=False)
processed_images = tf.expand_dims(processed_image, 0)
with slim.arg_scope(inception.inception_v4_arg_scope()):
logits, _ = inception.inception_v4(processed_images, num_classes=3, is_training=False)
probabilities = tf.nn.softmax(logits)
init_fn = slim.assign_from_checkpoint_fn(os.path.join(checkpoints_dir, ‘model.ckpt-200000’), slim.get_model_
variables(‘InceptionV4’))
with tf.Session() as sess:
init_fn(sess)
np_image, probabilities = sess.run([image, probabilities])
probabilities = probabilities[0, 0:]
sorted_inds = [i[0] for i in sorted(enumerate(-probabilities), key=lambda x: x[1])]
plt.figure()
plt.imshow(np_image.astype(np.uint8))
plt.axis(‘off ’)
names = os.listdir(“D:\\tmp\\EMG\\EMG_photos”)
for i in range(3):
index = sorted_inds[i]
print('Probability %0.2f%% => [%s]' % (probabilities[index], names[index]))