ブログのURL
次のブログを参考にして、リアルタイム推論をしようと思い、実行したのですが
エラーがでました。 解決するにはどうすればよいのでしょうか。
#使用環境
spyder(python3.8)
pandas 1.0.5
matplotlib 3.2.2
opencv-contrib-python 4.4.0.44
opencv-python 4.4.0.42
Pillow 7.2.0
nnabla 1.15.0
#エラー文
runfile('C:/Users/username/Desktop/output/capture.py', wdir='C:/Users/username/Desktop/output')
Traceback (most recent call last):
File "C:\Users\username\Desktop\output\capture.py", line 48, in <module>
ret, frame = cap.read()
NameError: name 'cap' is not defined
Python
1import nnabla.functions as F 2import nnabla.parametric_functions as PF 3from nnabla.utils.data_iterator import data_iterator_csv_dataset 4import os 5import cv2 6from datetime import datetime 7import pandas as pd 8import matplotlib.pyplot as plt 9import numpy as np 10from PIL import Image 11 12def network(x, y, test=False): 13 # Input:x -> 3,250,250 14 # MulScalar 15 h = F.mul_scalar(x, 0.003921568627450981) 16 # DepthwiseDeconvolution -> 3,256,256 17 h = PF.depthwise_deconvolution(h, (7,7), name='DepthwiseDeconvolution') 18 # ReLU 19 h = F.relu(h, True) 20 # MaxPooling -> 3,128,128 21 h = F.max_pooling(h, (2,2), (2,2)) 22 # Convolution -> 16,128,128 23 h = PF.convolution(h, 16, (3,3), (1,1), name='Convolution') 24 # MaxPooling_2 -> 16,64,64 25 h = F.max_pooling(h, (2,2), (2,2)) 26 # Tanh 27 h = F.tanh(h) 28 # Affine -> 100 29 h = PF.affine(h, (100,), name='Affine') 30 # ReLU_2 31 h = F.relu(h, True) 32 # Affine_2 -> 26 33 h = PF.affine(h, (26,), name='Affine_2') 34 # Softmax 35 h = F.softmax(h) 36 # CategoricalCrossEntropy -> 1 37 #h = F.categorical_cross_entropy(h, y) 38 return h 39 40 cap = cv2.VideoCapture(0) # 任意のカメラ番号に変更する 41 42 new_dir_path = "./realtime/" 43 os.makedirs(new_dir_path, exist_ok=True) 44 45 #カメラスタート 46while True: 47 48 ret, frame = cap.read() 49 cv2.imshow("camera", frame) 50 51 k = cv2.waitKey(1)&0xff # キー入力を待つ 52 if k == ord('p'): 53 54 # 「p」キーで画像を保存 55 56 date = datetime.now().strftime("%Y%m%d_%H%M%S") 57 path = new_dir_path + date +".png" 58 cv2.imwrite(path, frame) 59 image_gs = cv2.imread(path) 60 61 path = new_dir_path + date +".png" 62 dst = cv2.resize(image_gs,(250,250)) 63 cv2.imwrite(path, dst) 64 65 f = pd.DataFrame(columns=["x:data","y:data"]) 66 xdata = path 67 ydata = 0 68 new_name = pd.Series([xdata,ydata],index=f.columns) 69 f = f.append(new_name, ignore_index=True) 70 f.to_csv('C:\Users\username\Desktop\output\valu.csv',index=False,header = True ) 71 72 test_data = data_iterator_csv_dataset("C:\Users\nogamitakuma\Desktop\output\valu.csv",1,shuffle=False,normalize=True) 73 74 75 #ネットワークの構築 76 nn.clear_parameters() 77 x = nn.Variable((1,3,250,250)) 78 t = nn.Variable((1,1)) 79 y = network(x, t) 80 81 nn.load_parameters('\Users\username\Desktop\output\yubidata.files/20210108_180946\results.nnp') 82 print("load model") 83 84 85 86 path = new_dir_path + "test" +".png" 87 cv2.imwrite(path, frame) 88 image_gs = cv2.imread(path) 89 90 path = new_dir_path + date +".png" 91 dst = cv2.resize(image_gs,(250,250)) 92 cv2.imwrite(path, dst) 93 94 f = pd.DataFrame(columns=["x:data","y:data"]) 95 xdata = path 96 ydata = 0 97 new_name = pd.Series([xdata,ydata],index=f.columns) 98 f = f.append(new_name, ignore_index=True) 99 f.to_csv('C:\Users\username\Desktop\output\valu.csv',index=False,header = True ) 100 101 test_data = data_iterator_csv_dataset("C:\Users\username\Desktop\output\valu.csv",1,shuffle=False,normalize=True) 102 103 104 #ネットワークの構築 105 nn.clear_parameters() 106 x = nn.Variable((1,3,250,250)) 107 t = nn.Variable((1,1)) 108 y = network(x, t) 109 110 nn.load_parameters('C:\Users\username\Desktop\output\yubidata.files/20210108_180946\results.nnp') 111 print("load model") 112 113 for i in range(test_data.size): 114 115 x.d, t.d = test_data.next() 116 y.forward() 117 print(y.d[0]) 118 119 120 elif k == ord('q'): 121 # 「q」キーが押されたら終了する 122 123 break 124 125 # キャプチャをリリースして、ウィンドウをすべて閉じる 126cap.release() 127cv2.destroyAllWindows()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/11 06:43
2021/01/11 06:44
2021/01/11 06:46
2021/01/11 06:47
2021/01/11 06:55 編集