AI見守りカメラを作ろう 戻り値num_personsの追加について

第3章「 detect 関数の修正」でテキストに従って戻り値にnum_personsを追加すると以下のようなエラーが表示されます。
どういった原因が考えられますでしょうか?
(ちなみにdetect関数内にprint(num_person)を入れ、戻り値を「frame」のみにすれば、カメラに写った人数を認識して動作することは確認できております。)

<エラー内容>
Traceback (most recent call last):
File “/home/pi/mimamori/camera.py”, line 77, in
cv2.imshow(“frame”, frame)
cv2.error: OpenCV(3.4.16) :-1: error: (-5:Bad argument) in function ‘imshow’

Overload resolution failed:

  • mat is not a numerical tuple
  • Expected Ptrcv::UMat for argument ‘mat’

こんにちは

エラー内容は、cv2.imshowで画像を表示させようとした時、画像データではなくタプル型が渡されていることを示していそうです。

おそらく新しい戻り値を追加した後、受け取り側の変数がframeひとつになっているため、(frame, num_persons)のタプル型が代入されてしまっているのではないかと思います。

detect関数の呼び出し部分をチェックしてみてください。

ご連絡ありがとうございます。
ご指摘の通り受け取り側の変数が「frame」のひとつになっていることが原因でした。