Vous pouvez utiliser MNIST dans l'exemple de manuel pour lire le compteur analogique à l'aide de l'intelligence artificielle.
Tout d'abord, fixez l'appareil photo et l'éclairage afin que les conditions de prise de vue soient constantes. Si vous pouvez garantir que vous pouvez tirer dans une certaine plage, la précision des prévisions par l'intelligence artificielle s'améliorera. Ensuite, prenez une photo d'un compteur analogique spécifique à l'avance et préparez l'état de chaque position d'aiguille. La quantité de données à préparer dépend de la résolution requise, mais une résolution de 20 à 30 semble être suffisante. En effet, la précision (erreur) du compteur analogique lui-même est d'environ ± 2,5% ou ± 1,6%, c'est-à-dire qu'une erreur d'environ 5% ou 3% est autorisée lors de l'utilisation du compteur analogique. Les compteurs analogiques ne conviennent pas pour mesurer 3 ou 4 chiffres effectifs.
Afin de préparer un grand nombre de données à l'avance, secouez les conditions de prise de vue et les conditions d'éclairage pour filmer autant que possible dans la plage autorisée, ou gonflez les données avec le traitement d'image.
Le programme lui-même a la même classification que MNIST. Avec suffisamment de données, vous pouvez les diviser en entraînement et en tests, vérifier la surcompatibilité, ajuster les paramètres et bien plus encore.
ana00.png
ana01.png
Code source Préparation des données Le fichier image est stocké ci-dessous. https://bono0.com/
import numpy as np import matplotlib.pyplot as plt import cv2
i=np.ndarray([32,32,3]) data=np.ndarray([10,32,32,3]) data[:]=0
i=plt.imread("ana00.png ") plt.imshow(i) plt.show() i = cv2.resize(i, (32,32)) data[0,:,:,:]=i plt.imshow(i) plt.show()
i=plt.imread("ana01.png ") i = cv2.resize(i, (32,32)) data[1,:,:,:]=i
i=plt.imread("ana02.png ") i = cv2.resize(i, (32,32)) data[2,:,:,:]=i
i=plt.imread("ana03.png ") i = cv2.resize(i, (32,32)) data[3,:,:,:]=i
i=plt.imread("ana04.png ") i = cv2.resize(i, (32,32)) data[4,:,:,:]=i
i=plt.imread("ana05.png ") i = cv2.resize(i, (32,32)) data[5,:,:,:]=i
i=plt.imread("ana06.png ") i = cv2.resize(i, (32,32)) data[6,:,:,:]=i
i=plt.imread("ana07.png ") i = cv2.resize(i, (32,32)) data[7,:,:,:]=i
i=plt.imread("ana08.png ") i = cv2.resize(i, (32,32)) data[8,:,:,:]=i
i=plt.imread("ana09.png ") i = cv2.resize(i, (32,32)) data[9,:,:,:]=i
Apprentissage et prédiction import matplotlib.pyplot as plt from sklearn import datasets, svm, metrics from sklearn.model_selection import train_test_split
x = data.reshape((10,-1)) y=np.array([0,1,2,3,4,5,6,7,8,9])
X_train=x X_test=x y_train=y y_test=y
classifier = svm.SVC(gamma=0.001) classifier.fit(X_train, y_train) predicted = classifier.predict(X_test)
print("Classification report for classifier %s:\n%s\n" % (classifier, metrics.classification_report(y_test, predicted)))
L'intelligence artificielle regarde simplement les images et les classe. Nous ne reconnaissons pas le concept des compteurs analogiques ni ne comprenons les aiguilles et les balances. Si vous ne demandez pas d'exigences excessives, vous pouvez lire le compteur analogique avec l'exemple MNIST.
Recommended Posts