Thursday, July 16, 2015

Raspberry pi 使用兩個webcam


因為為要試一些 OpenCV 的東西,所以,就去弄了二台 Webcam 來用而我選用mjpg-streamer 這一套軟體來擷取 WebCam 畫面和提供網路串流,用 mjpg-streamer 來播送二台 Webcam 的方法,說破了,就是一次起二個使用不同埠號 (Port) 的 mjpg-streamer 伺服器哩 ! webcam 分別是 /dev/video0 和 /dev/video1 為例,然後,分別使用 8001 和 8002 埠來當 Web Server 的話,就在 Raspberry Pi 上開二個終端機 (Termianl) 並切換到 mjpg-stream 的安裝資料夾後、分別執行下面這二行指令。
sudo ./mjpg_streamer -i "./input_uvc.so -d /dev/video1  -r QSIF -f 15" -o "./ou
tput_http.so -w ./www -p 8001"
 sudo ./mjpg_streamer -i "./input_uvc.so -d /dev/video0  -r QSIF -f 15" -o "./ou
tput_http.so -w ./www -p 8002"

檢視webcam port
 ls /dev/video*

參考資料:
http://www.arthurtoday.com/2014/05/raspberrypi-using-mjpgstreamer-monitoring-multiple-webcams.html

Tuesday, July 14, 2015

從MJPG獲得視頻並用opencv處理

https://github.com/jacksonliam/mjpg-streamer
登入你的pi,去到/usr/src目錄下創建一個MJPG目錄

cd /usr/src
sudo mkdir mjpg-streamer
sudo chown `whoami`:users mjpg-streamer
cd mjpg-streamer

從GitHub下載
git clone https://github.com/jacksonliam/mjpg-streamer.git

為了編譯代碼,我們需要安裝一些庫的依賴關係
sudo apt-get install libv4l-dev libjpeg8-dev imagemagick build-essential cmake subversion

接下來,我們需要編譯MJPG
cd mjpg-streamer-experimental
make

現在我們應設置為開始串流視頻。有很多選項可以設置。有關詳細信息,請訪問上面鏈接的頁面GitHub
export LD_LIBRARY_PATH=.
./mjpg_streamer -o "output_http.so -w ./www" -i "input_raspicam.so -x 640 -y 480 -fps 20 -ex night"

如果誰想要進一步處理視頻,你可以創建一個文件rpi-stream.py及以下將腳本貼到它獲得視頻流使用OpenCV的顯示
import cv2
import urllib
import numpy as np
 
stream=urllib.urlopen('http://192.168.0.193:8080/?action=stream')
bytes=''
while True:
    bytes+=stream.read(1024)
    a = bytes.find('\xff\xd8')
    b = bytes.find('\xff\xd9')
    if a!=-1 and b!=-1:
        jpg = bytes[a:b+2]
        bytes= bytes[b+2:]
        i = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8),cv2.CV_LOAD_IMAGE_COLOR)
        cv2.imshow('i',i)
        if cv2.waitKey(1) == 27:
            exit(0)

參考資料:
http://petrkout.com/electronics/low-latency-0-4-s-video-streaming-from-raspberry-pi-mjpeg-streamer-opencv/

Friday, July 10, 2015

Webcam 拍照與瀏覽器串流

RaspBerry Pi官方推出直接安裝在 Pi主機的攝影鏡頭,使用軟性排線插在主機板上,而非使用USB介面。考量Webcam的多用途性,我買了相容性比較高的 Logitech Webcam C310,畫質稍好,價格又不會太高。Webcam有兩個用法,一是拍照存檔成jpeg檔,另一個功能是拍攝成影片,前者安裝 fswebcam就可以達成,要作為監視器使用,則需安裝 motion 軟體。

安裝 fswebcam


sudo apt-get install fswebcam

拍照存成 test.jpg
fswebcam test.jpg

檢查是否有驅動Webcam
sudo lsusb

安裝影像軟體 Motion
sudo apt-get install motion

修改設定,安裝完成後,修改設定檔 motion.conf ,將DAEMON OFF改為ON,設定為自動啟動motion,Webcam_localhost ON改為 OFF,不從Raspberry Pi連線至Webcam

sudo vi /etc/motion/motion.conf

修改內容
daemon on
webcam_localhost = off 
修改 /etc/default/motion 將 start_motion_daemon=no 改為 yes
sudo vi /etc/default/motion

修改內容
tart_motion_daemon=yes

重新啟動 motion 服務
sudo service motion start
剛開始我使用 IE 連線時,會要我下載檔案,然後下載了2-3mb還是無法看到影像,在論壇上找了很久,有網友告知使用 Firefox 或 Safari 就可以看到影像畫面了。
參考資料:
http://atceiling.blogspot.tw/2014/04/raspberry-pi-webcam.html http://www.raspberrypi.org/forums/viewtopic.php?f=43&t=55906