아날로그 미터의 판독은, 예제의 MNIST로 할 수 있습니다.

인공 지능을 이용해 아날로그 미터의 읽기를 실시하는데 교과서의 예제에 있는 MNIST로 할 수 있습니다.

우선 카메라와 조명을 고정하여 촬영 조건이 일정해지도록 설치합니다. 일정한 범위 내에서 촬영할 수 있는 것을 보증할 수 있으면, 인공 지능에 의한 예측 정밀도가 향상됩니다.
그런 다음 특정 아날로그 미터를 사전에 촬영하여 바늘의 위치 상태를 각각 준비합니다. 어느 정도의 데이터를 준비하는지는 요구하는 분해능에 따릅니다만, 20-30 분해능도 있으면 충분하다고 생각됩니다.
왜냐하면 아날로그 미터 자체의 정밀도(오차)는 ±2.5%나 ±1.6% 정도 있어, 즉, 약 5%나 3% 정도의 오차는 아날로그 미터를 사용하는 시점에서 허용되고 있습니다.
유효자릿수 3자리, 4자리의 측정에는 아날로그 미터는 적합하지 않습니다.

사전의 데이터를 많이 준비하기 위해, 촬영 조건이나 조명 조건을 흔들어, 허용 범위내의 상태를 가능한 한 촬영하거나, 화상 처리로 데이터를 수증합시다.

프로그램 자체는 MNIST와 동등한 클래스 분류입니다. 데이터가 충분하면 교육과 테스트로 나누고, 과잉 적합성을 검증하고, 파라미터를 조정하고, 다양한 방법으로 할 수 있습니다.

ana00.png


ana01.png


소스 코드
데이터 준비
이미지 파일을 아래에 보관합니다.
htps : // 보노의 0. 코m/

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

학습과 예측
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)))

인공 지능은 이미지를보고 클래스 분류하고 있습니다. 아날로그 미터의 개념을 인식하거나 바늘이나 눈금을 이해하는 것은 아닙니다. 과도한 요구 사양을 요구하지 않으면, 아날로그 미터의 읽기는, 예제의 MNIST로 할 수 있군요.

좋은 웹페이지 즐겨찾기