아날로그 미터의 판독은, 예제의 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로 할 수 있군요.
Reference
이 문제에 관하여(아날로그 미터의 판독은, 예제의 MNIST로 할 수 있습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/bono0/items/bf9ec40d0f63d7a193b1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)