satoshi
Posts: 2
Joined: Tue Jul 25, 2017 5:06 am

USBカメラの長時間稼働について

Tue Jul 25, 2017 5:51 am

お世話になります。

Raspberry PI 3 Model B(OSはRaspbian)でUSBカメラを使用して、顔認識させる処理をしていたところ、
1時間くらい経つと、カメラデバイスがdisconnectされる現象が発生いたしました。

PythonとOpenCVで簡単なプログラムを作成し、確認したところ同様の現象が発生いたしました。
1時間くらい経つと、「VIDIOC_DQBUF: No such device」と表示されます。

これはRaspberry PI の仕様(または既知の不具合)なのでしょうか?
もし回避方法があればご教授いただけますでしょうか?

Raspbian、Python、python-opencvのバージョンと、確認用に作成したPythonのソースは以下になります。

・Raspbianバージョン( lsb_release -a で確認)
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 8.0 (jessie)
Release: 8.0
Codename: jessie

・Pythonバージョン
2.7.9

・python-opencvバージョン
2.4.9.1

・確認用Pythonプログラム
/home/pi/py 以下に下記ソースファイルと、カスケードファイル(https://github.com/opencv/opencv/tree/m ... arcascades)を配置しています。

Code: Select all

import cv2
import time
from pytz import timezone
from datetime import datetime

face_cascade = cv2.CascadeClassifier('/home/pi/py/haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('/home/pi/py/haarcascade_eye.xml')

c = cv2.VideoCapture(0)
num = 0
while True:
    num = num + 1
    
    c.read()
    r, img = c.read()

    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    faces = face_cascade.detectMultiScale(gray)
    for (x,y,w,h) in faces:
        cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
        roi_gray = gray[y:y+h, x:x+w]
        roi_color = img[y:y+h, x:x+w]
        eyes = eye_cascade.detectMultiScale(roi_gray)
        for (ex,ey,ew,eh) in eyes:
            cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)

    time.sleep(3)
    now = datetime.now()
    jst_now = timezone('Asia/Tokyo').localize(now)
    jst_now_str = jst_now.strftime('%Y/%m/%d %H:%M:%S')
    print('['+jst_now_str+']'+str(num))

c.release()

otani
Posts: 34
Joined: Fri Dec 13, 2013 4:18 am

Re: USBカメラの長時間稼働について

Sun Jul 30, 2017 9:46 am

原因のほとんどが電源ですのでUSB電圧を監視してみてください。
5V2Aとか容量にこだわる人もいますが2A負荷での電圧の方が重要です。
デジタルテスターをお持ちですか? USB出力で4.8V とかに落ちていませんか?
電源を入れ替えてみて症状が変わるか確認してみてください。
普通のUSBアダプタは軽負荷でも5.0V以下のものが多いため WiFi,Bluetooth,大容量SDCard,USB Camera等の使用により電圧が落ちて不具合が発生します。

対策
1. セルフパワーUSBアダプタを使い Cameraは USBアダプタ経由で使う。
これでUSBカメラの電圧は落ちにくくなります。

同様の事例です:
[SOLVED] USB-WEBCAMS GETTING DISCONNECTED RANDOMLY
viewtopic.php?f=29&t=40551

Webcam disconnects after a few hours of running motion
https://raspberrypi.stackexchange.com/q ... ng-motion

2.  5Vアダプタを 5.3V~5.5V狙いに昇圧する。 内部のLSIは 3.3V,2.8Vへ降圧して供給されているので問題は出ません。
4A 昇圧DC-DCコンバータ ( + 100円ショップのMicroUSBをつなぐ)
https://www.amazon.co.jp/HiLetgo-DC-DC% ... QW5KKWHVW
間違えるとRaspiを壊します。リスクがありますので自己責任でお願いします。
電気の知識がなかったら やめてください。

satoshi
Posts: 2
Joined: Tue Jul 25, 2017 5:06 am

Re: USBカメラの長時間稼働について

Tue Aug 01, 2017 8:01 am

otaniさん、ありがとうございます。

電圧は計れてはいないのですが、電源を別からとっても同様でした。
ただ、別のUSBカメラに変更し、動作させてみたところ、USBから給電していますが、
丸1日経っても問題なく動作いたしました。
どうやらUSBカメラ側に問題があったようです。
一旦、これで様子を見てみようと思います。

Return to “日本語”

Who is online

Users browsing this forum: No registered users and 2 guests