[活動] Raspberry Pi 樹莓派寵物小車實作,從 GPIO 到 OpenCV 影像辨識,打造會看的自走車,一天學會 × T客邦

我們這次和T客邦合作一起辦 Raspberry Pi 樹莓派寵物小車實作,這工作坊曾在 MakerConf 辦過,是一個綜合性的實做。歡迎大家報名參加。

【課程內容】
目標:學習用 Raspberry Pi 的 GPIO 控制硬體、小車組裝與移動、相機使用與 OpenCV 做影像處理,自製會追著物體的寵物小車。
時間:2017/06/25(日) 早上 09:00~下午 18:00
地點:T客邦總部,台北市中山區民生東路二段141號6F (Google 地圖)

費用:
* 早鳥價 $5300 元:購買樹莓派 Pi 3 必備套件+電子零件包,包含午餐。
* 早鳥價 $3500 元:購買電子零件包(須自備樹莓派必備套件,Pi 3 或 Pi 2 都可以),包含午餐。
* 早鳥價 $3100 元:租用樹莓派 + 電子零件包,課程結束時收回,包含午餐。

注意事項:學員當天需自備筆電(Windows/Linux/Mac 皆可)和行動電源。

報名:Raspberry Pi 樹莓派寵物小車實作

[測試] 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 的四倍左右。

[活動] 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相機+影像辨識實作:自己做樹莓派相機做人臉辨識、影像串流、連結雲端,一天學會

raspberry-pi-camera-python-at-techbang

好久不見的 Camera + Python 工作坊來了,我們這次又和T客邦合作一起辦 Raspberry Pi相機+影像辨識實作工作坊,歡迎大家報名參加。

【課程內容】
目標:學習用 Raspberry Pi 的 Camera 模組,瞭解拍照/錄影、手機控制、影像串流、結合硬體操作、結合網路服務、OpenCV 與人臉偵測應用。
時間:2016/10/15(六) 早上 09:30~下午 17:30
地點:T客邦總部,台北市中山區民生東路二段141號6F (Google 地圖)

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

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

報名:Raspberry Pi相機+影像辨識實作工作坊

[產品] Raspberry Pi 寵物小車學習套件

SONY DSC

《特色》
- 8 小時工作坊課程(MakerConf 2016Raspberry Pi 寵物小車使用教材)。
- 可根據自訂顏色讓小車移動跟蹤。
- 從 19 個實驗介紹:GPIO 控制、馬達控制、小車組裝與控制、Raspberry Pi Camera 介紹、基礎 Camera 使用、數位影像處理與 OpenCV。

《規格》
1. 單層自走車底盤(含二輪跑車胎 + 一萬向輪 + 二馬達 + 螺絲組) x1
2. L298N 馬達驅動板 x1
3. 5MP Camera for Raspberry Pi x1
4. 180 洞小型麵包板 x1
5. 1KΩ 電阻(1/4W) x1
6. 1N4004 二極體 x1
7. 16m/m 可變電阻 10Kx1
8. TIP120 電晶體 x1
9. 5mm LED x1
10. 架高螺絲組(螺絲母x4 + 塑膠架高螺絲 x4 + 圓頭螺絲 x4) x1
11. 公對母排線(20cm)x2, 母對母排線(20cm)x4

《教學》
Raspberry Pi 寵物小車 from raspberrypi-tw

《範例程式》
* https://github.com/raspberrypi-tw/pi-follower-car

《下載》
* 狗公仔外型(需自行調整大小)

$ 1,400

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

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

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

 
分享者1:Robert Wang
題目:樹莓派長距離 LoRa 物聯網
大綱:使用 Raspberry Pi + LoRa Module 的應用情境。
附註:Robert Wang 為立亞特科技副總,這次的分享是物聯網(IoT, Internet of Things)常用模組 LoRa 產品應用的實際經驗Robert_Liyatech_LoRa

立亞特科技是專業的 LoRa 模組製造廠商,提供 433/868/915/923MHz 等不同頻段的 LoRa 模組。這次分享了停車位、盜墾、污水監控等案例,還說明了如何實做遠端入侵偵測的軟硬體設定。會後大家對標準與實做面都很有興趣,提問非常熱烈。

* 投影片下載

購買 LoRa 模組:
* [產品] LoRa LRM001(USB) – Microchip RN2483
* [產品] LoRa LRM001(UART) – Microchip RN2483

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

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

這次我們介紹了 XBee 技術與智慧電表的展示,我們也將提供智慧電表的學習套件,讓大家可以透過實做瞭解 XBee 的各項傳輸方式與應用。
此外,我們還展示了如何利用 Arduino 讀取脈搏感測器(Pulse Sensor)的資訊,再透過藍牙傳送到 Raspberry Pi,最後轉送上雲端服務(ThingSpeak)。在這個使用情境,Raspberry Pi 就當作藍牙的閘道器(gateway),整合不同通訊協定。

購買 Pulse Sensor:
* [產品] 脈搏感測器模組(Pulse Sensor)

 
Lightning talk:紀富中
題目:神魔之塔之物理外掛
Fuchung
Plugin_of_Tower_of_Saviors
這次的 Lightning Talk 是道具最多的一次。分享者紀富中將 CNC 工具機加裝了觸控筆以後,就改裝成可代替人的手指,按壓到指定的手機/平板位置。
整個實做步驟是先從 webcam 將神魔之塔的遊戲畫面讀到 Raspberry Pi 以後,使用 OpenCV 做轉珠辨識並轉成數學矩陣。再利用轉珠演算法計算出能得最高分的轉珠位置,再操作 CNC 工具機移動觸控筆去按壓得分。
由於是搭配外部的硬體按壓,因此稱為物理外掛。非常精彩。

* 投影片下載
* 實際展示影片

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