質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2925閲覧

webカメラから数字を認識

yamasn

総合スコア23

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/04/13 08:34

編集2020/04/13 09:22

前提・実現したいこと

webカメラ内の数字を認識したいです。

発生している問題・エラーメッセージ

python

1TypeError: incompatible array types are mixed in the forward input (SoftmaxCrossEntropy). 2Actual: <class '__main__.MyMLP'>, <class 'numpy.ndarray'>

下記ソースコードを実行し、Eキーを押すとこのようなエラーメッセージが出ます。
どうすればエラーを解決できるでしょうか。

該当のソースコード

python

1import cv2 2import numpy as np 3from chainer import Chain, serializers 4import chainer.functions as F 5import chainer.links as L 6 7# 多層パーセプトロンモデルの設定 8class MyMLP(Chain): 9 # 入力784、中間層500、出力10次元 10 def __init__(self, n_in=784, n_units=500, n_out=10): 11 super(MyMLP, self).__init__( 12 l1=L.Linear(n_in, n_units), 13 l2=L.Linear(n_units, n_units), 14 l3=L.Linear(n_units, n_out), 15 ) 16 # ニューラルネットの構造 17 def __call__(self, x): 18 h1 = F.relu(self.l1(x)) 19 h2 = F.relu(self.l2(h1)) 20 y = self.l3(h2) 21 return y 22 23def preprocessing(img): 24 img = img[190:290,270:370] 25 img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 26 img = cv2.GaussianBlur(img, (3, 3), 0) 27 img = cv2.resize(img, (28, 28)) 28 res, img = cv2.threshold(img, 70 , 255, cv2.THRESH_BINARY) 29 img = 255 - img 30 img = img.astype(np.float32) 31 cv2.imwrite("img.jpg",img) 32 img /= 255 33 img = np.array(img).reshape(1,784) 34 return img 35 36def main(): 37 # 学習済みモデルの読み込み 38 net = L.Classifier(MyMLP) 39 serializers.load_npz('test.model', net) 40 #Webカメラの映像表示 41 capture = cv2.VideoCapture(0) 42 if capture.isOpened() is False: 43 raise("IO Error") 44 while True: 45 #Webカメラの映像とりこみ 46 ret, image = capture.read() 47 if ret == False: 48 continue 49 #Webカメラの映像表示 50 cv2.rectangle(image,(270,190),(370,290),(0,0,255),3) 51 cv2.imshow("Capture", image) 52 k = cv2.waitKey(10) 53 #Eキーで処理実行 54 if k == 101: 55 img = preprocessing(image) 56 num = net(img) 57 #cv2.imwrite("img.jpg",img) 58 print(num.data) 59 print(np.argmax(num.data)) 60 #ESCキーでキャプチャー画面を閉じる 61 if k == 27: 62 break 63 cv2.destroyAllWindows() 64 65 66if __name__ == '__main__': 67 main()

補足情報(FW/ツールのバージョンなど)

環境
・Anaconda3
・OS:Windows10
・Mnistモデルは↓リンクのtrain.pyを実行して作ったものです。
リンク内容

どなたかわかる方いらっしゃれば
ご教授していただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

別のやり方で成功しました。

投稿2020/04/13 11:16

yamasn

総合スコア23

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問