[測試] OpenCV on UP board

upboard

承蒙研揚科技公司好意,贈送一塊 UP board

有關開箱與安裝可參考以下幾篇文章:
* UP board:開箱與基本介紹
* [開箱] UP Board 開發板:可跑 Windows 10,世界最小 x86 PC
* [試用] 真的能跑 Windows 10 的開發板 – UP Board

由於 UP Board 所使用的 CPU 為 Intel Atom x5-Z8350,在 Intel 網站的規格為 64 位元 4 核心,時脈可達 1.92 GHz。乍看之下是比 Raspberry Pi 3 的處理速度快上不少,但 ARMX86 是不同架構,而且操作上的反應速度除了和時脈有關,不同的執行條件也會有差異。

我們使用 Python OpenCV 測試。只要輸入 sudo apt-get install python-opencv 就可以安裝有 Python binding 的 OpenCV

UVC(USB Video Class)就是 USB device class 視訊裝置在不需要安裝任何的驅動程式下隨插即用,包括網路攝影機(Webcam)、數位攝影機(Digital Camcorders)、類比影像轉換器(Transcoders)、電視卡(TV Receiver Card)等。而在 Linux 上如果有一個支援 UVC 的 Webcam 插到 USB,就會向 Kernel 註冊為 Webcam 設備,裝置節點為 /dev/videoX

V4L2(Video4Linux 2nd)是一套 Linux 針對視訊設備(例如 Webcam)所定義好的 Userspace API,因此硬體廠商只要能實做 API 的功能,就能讓使用者透過統一的介面控制硬體。如此一來上層的使用者就即使不知道硬體的廠牌與底層的實做方法,只要知道呼叫相同的函式就能得到相同的結果,如下圖。

v4l2圖片來源:Multimedia in embedded Linux systems

在 Raspberry Pi 上使用 Webcam 偵測人臉的程式(camera_face_detect.py)如下。需先下載 haarcascade_frontalface_default.xml 後和 camera_face_detect.py 一起執行,例如 python camera_face_detect.py haarcascade_frontalface_default.xml

#!/usr/bin/python                                  
#+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#|R|a|s|p|b|e|r|r|y|P|i|.|c|o|m|.|t|w|
#+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#
# camera_face_detect.py
# Face detect from camera
#
# Date   : 06/22/2014
# Usage  : python camera_face_detect.py haarcascade_frontalface_default.xml

import cv2
import sys
import time

cascPath = sys.argv[1]
faceCascade = cv2.CascadeClassifier(cascPath)

cap = cv2.VideoCapture(0)
cap.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH,  640)
cap.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, 480)

while True:
    # Capture frame-by-frame
    before = time.time()
    ret, frame = cap.read()

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

    faces = faceCascade.detectMultiScale(
        gray,
        scaleFactor=1.1,
        minNeighbors=5,
        minSize=(30, 30),
        flags=cv2.cv.CV_HAAR_SCALE_IMAGE
    )

    after = time.time()
    print "Found {0} faces!, fps= {1}".format(len(faces), round(1/(after-before), 1))

    # Draw a rectangle around the faces
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)

    # Display the resulting frame
    cv2.imshow("preview", frame)

    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

# When everything is done, release the capture
cap.release()
cv2.destroyAllWindows()

在沒有硬體加速的情況下,視訊從 Webcam 取得後就完全由 CPU 處理。程式中的 cv2.VideoCapture(0) 表示從 /dev/video0 取得 VideoCapture 物件,之後就可以透過 .set 或是 .read 等標準的 V4L2 API 存取 Webcam。

而人臉偵測在 OpenCV 中最常使用的方法為 Haar Feature-based Cascade Classifier,原理與使用可參考 Raspberry Pi Camera + Python 的介紹。

這次用的是 Microsoft LifeCam VX-800(圖右),動態攝影解析度為 30 萬像素(640×480 pixels)。產品規格書下載

raspberrypi_upboard_microsoft_1407

每個從 Webcam 取回的 frame 都會用 faceCascade.detectMultiScale 做人臉偵測的判斷,如果有找到則會用 cv2.rectangle 將人臉標示出來,並印出找到幾個人臉與 FPS(Frame per Second)。

face
圖片來源:Face Detection using Haar Cascades

架設的環境如下,左邊綠色的 pi-topCEED負責播影片,而 UP Board 接上 LifeCam VX-800 就執行人臉偵測,為了能即時顯示找到的人臉,就接上給奇創造On-Lap 1002 攜帶式螢幕。

raspberrypi_upboard_test_theme

測試的結果,在 640×480 的解析度下,使用 UP Board 做人臉辨識大概為 3-4 FPS。當然如果不將結果畫出來或是沒有啟動 X-Window 的情況下一定會有更好的結果。

upboard_opencv_v4l2

相同的測試條件在 Pi 3 大概只剩下 1 FPS。

raspberrypi_opencv_v4l2

由 UP Board 跑 OpenCV 的影片和在 Pi 3 跑 OpenCV 的影片,可看出在這個情境下 UP Board 的處理速度大概是 Pi 3 的四倍左右。

[產品] LoRa LRM001(USB/UART) – Microchip RN2483

SONY DSC

《特色》
* Mini PCI Express form factor
* 2 u.FL antennas to support either 433 or 868MHz
* Range 7KM
* FTDI® 232HL
* 型式認證號碼:CCAN16LP0530T5

《規格》
* Microchip® RN2483
* Compliant with LoRaWan®
* USB/UART interface
* Mini PCI Express form factor
* 2 u.FL antennas to support 433 or 868MHz
* Range: 7KM
* Data rate: 1k bps
* Network type: Star
* Standby current: 0.1mA
* Rx current: 12ma
* RF Output power (maximum) : 20dbm
* Receiver sensitivity: -130 dbm
* Support Win 7 and Window 10
* Support Linux : Ubuntu 12.04
* Operating temperature: -30oC~ 75oC
* Operating humidity: 5% ~ 95% RH
* Dimension: 50 x 29 x 9 mm

《內容物》
- LoRa LRM001(USB/UART) Module x1
- microUSB to USB cable x1
- 2.54 to 2.0mm Jumper Wires x1
- Antenna x1

《下載》
- 規格書
- RN2483 Command Reference Users Guide

《使用教學》
- LoRa LRM001 User Guide
- 投影片下載

$ 2,250

[產品] Raspberry Pi 3 壓克力雙色堆疊外殼

Raspberry Pi 3 壓克力雙色堆疊外殼
SONY DSC

《特色》
* 適用於 Pi 3 / Pi 2
* 本產包含:五片壓克力 + 四組金屬螺絲

《規格》

顏色: 黑色x透明
材質: 壓克力
尺寸: 92 x 62 x 15.5mm
重量: 50g

$ 350


Raspberry Pi 3 壓克力雙色堆疊外殼(附風扇)
SONY DSC

《特色》
* 適用於 Pi 3 / Pi 2
* 本產包含:六片壓克力 + 四組金屬螺絲 + 風扇

《規格》

顏色: 黑色x透明
材質: 壓克力
尺寸: 92 x 62 x 17.5mm
重量: 70g

$ 400(附風扇)


* 注意:本外殼不包含 Raspberry Pi 主板

《相關》
* [產品] Model B Pi 3 原廠授權透明外殼
* [產品] Official Model B Pi 3 紅白雙色外殼
* [產品] Raspberry Pi 3 Model B + 外殼 + 5V/2.5A電源組

[活動] Raspberry Pi 相機+OpenCV實作:攝影拍照、人臉偵測、影像處理與應用,一天學會

raspberry-pi-camera-opencv-at-techbang

我們這次和T客邦合作一起辦 Raspberry Pi 相機+OpenCV實作,歡迎大家報名參加,這次的重點除了是 Camera 的基本操作以外,還會介紹 OpenCV 的使用實例。

【課程內容】
目標:學習用 Raspberry Pi 的 Camera 模組,包括指令列與利用 picamera 自製雲端相機務。介紹 OpenCV 影像處理與應用(色彩空間、侵蝕膨脹、濾波器、輪廓、邊緣檢測)等等。
時間:2017/01/21(六) 早上 09:00~下午 18:00
地點:T客邦總部,台北市中山區民生東路二段141號6F (Google 地圖)

費用:
* 早鳥價 $5,100元:購買樹莓派 Pi3 必備套件+電子零件包,包含午餐。
* 早鳥價 $3,300元:購買電子零件包,包含午餐。
* 早鳥價 $2,900元:租用樹莓派+電子零件包,包含午餐。

注意事項:學員當天需自備筆電,Windows / Linux / Mac 皆可。

報名:Raspberry Pi 相機+OpenCV實作

[活動] Raspberry Pi社群聚會 #17 @2016/12/26

報名:Raspberry Pi社群聚會 #17

這次有提供 Pizza !!

第十七次 Raspberry Pi 社群聚會,希望能透過社群活動的分享和交流,找到更多 Raspberry Pi 的可能。本次主題是「 Raspberry Pi 物聯網(IoT, Internet of Things)應用展示」

分享者1:Jeffrey(IBM)
題目:透過 Humix 打造無所不在的個人數位助理
大綱:
1. 介紹如何透過Humix的軟體模型架構, 快速打造屬於自己的語音助理機器人
2. 介紹Humix 如何整合 Watson AI Services & NodeRed
3. 如何利用Facebook API 連接機器人的大腦,以便連結家中的數位系統
4. Live Demo

分享者2:Anderson(QNAP)
題目:QNAP QIoT 您專屬的IoT 私有雲平台
大綱:介紹如何在NAS上利用MQTT, NodeRED 連結各式裝置。

活動資訊

  • 活動時間: 2016/12/26(週一) 19:30 ~ 21:30 (7:00pm 開始入場)
  • 語言: Chinese/中文
  • 活動人數上限: 120
  • 活動地點:CLBC台北市大安區復興南路一段293號4樓
  • 交通資訊:(地圖:http://clbc.tw/location/)至捷運大安站下車,出口後直走60秒內可抵達 CLBC 大安館

clbc_map
顯示詳細地圖

費用

  • 每人150元場地費用
  • 帶作品展示的參加者免收場地費用

備註

  • 活動場地有提供無線網路
  • 場地有飲料,由覓茶提供

報名:Raspberry Pi社群聚會 #17

[活動] Raspberry Pi社群聚會 #16 會後資料(Raspberry Pi IoT 無線傳輸技術)

第十六次 Raspberry Pi 社群聚會,希望能透過社群活動的分享和交流,找到更多 Raspberry Pi 的可能。本次主題是「 Raspberry Pi 物聯網(IoT, Internet of Things)無線傳輸技術」。

感謝大家的共筆,將分享的重點紀錄起來。我們會持續辦各種活動,連結更多有興趣的朋友們,找到更多 Raspberry Pi 的可能。

分享者1:柯大(MakerPro 技術顧問)
題目:LoRa 開發經驗分享
大綱:LoRa 通訊架構、LoRa 應用 與LoRa 模組使用
下載:20161115_樹莓派 LoRa 開發經驗分享_V2

LoRa 開發經驗分享
柯大這次將台灣的 LoRa 模組廠商全部測試完畢。包括正文科技、亞太電信、泰發科技、MICROCHIP、群登科技、環天世通科技等,投影片中有詳細的使用方式與接線圖,也比較各家的優缺點。

lora_node_and_lora_gateway
最後展示了 LoRa Node + LoRa Gateway 的實際應用。其中 LoRa Node 是紀錄溫濕度與 PM2.5 的數值,資訊會先傳給以 Ameba + LoRa 自建的 LoRa Gateway,再以 WiFi 上傳到用 QNAP 所搭建的 NAS 私有雲。可以從後端介面查詢各項原始資訊,並用 Node-RED 建立物件之間的關聯性。

Raspberry Pi社群聚會 #16
科大這次的分享因為是一手實測,內容非常豐富,大家都迫不及待的先用手機紀錄下來。

立亞特科技Robert
立亞特科技的 Robert 也以製造商的角色也分享了 LoRa 模組的使用經驗,包括功率、傳送距離、使用注意須知等。

 

分享者2:sosorry(台灣樹莓派)
題目:Raspberry Pi IoT 應用展示(藍牙)
Raspberry Pi IoT 應用展示

我們這次介紹了 Bluetooth 無線傳輸技術。包括有:
1. Bluetooth 技術演進,從 BR/EDR 到 BLE。
2. Pi 3 的藍牙問題與使用,該怎麼設定才能讓 UART 和藍牙同時使用。
3. 常用藍牙工具,如何配對與連線,如何查看藍牙封包等。
4. 常見 IoT 架構,包括感測器終端節點、網路閘道器、雲端服務等,通常會用智慧型手機做監控或是互動裝置。
5. Beacon 展示與應用,以 Google 推的 Physical Web 來推播各項資訊,免除安裝 app 的問題。


Raspberry Pi IoT無線傳輸技術介紹 – Bluetooth篇 from raspberrypi-tw

 
歡迎大家來參加社群聚會,相關活動我們都會在網頁facebook 公告,如果有主題想分享也請來信 service AT raspberrypi.com.tw。