Tag Archives: opencv

[ 介紹文 ] 2018.12.04- 千呼萬喚終於始出來!!OpenCV 4.0發佈

撰文

Jack Omnixri

圖片

Jack Omnixri

主題圖片

freepik

說明

本文由作者Jack Omnixri授權轉載,特此致謝!原文網址為:http://ai-robot-stsp.tw/forums/topic/opencv-4-0千呼萬喚始出來/

 

有在玩電腦(機器)視覺的朋友,對開源電腦視覺函式庫「OpenCV」一定不陌生。從2000年發展至今已超過十八個年頭,中間歷經多次重大變革及分支,從2.2版開始支援C++,2.4版開始支援CUDA、OpenCL等加速工具,2.4.9版後本來進到3.0版,停止支援C語言只支援C++,但許多使用C語言的伙伴仍不離不棄,繼續將部份新增功能加入,於是劇情就展開成兩條支線,目前已來到2.4.13.6版,後續是否能繼續發展,實在令人擔憂。而3.0.0版於2015年正式推出,加入許多深度學習工具,3.3版後加入了更多深度學習框架及算法,如Caffe、Yolo⋯⋯等等。最近(2018年11月20日)正式推出4.0版更讓人眼睛一亮,在深度學習部份有了重大改革,實在值得花些時間好好研究。

圖1 OpenCV發展史(OmniXRI Jack整理製作)

 

以下就簡單把此次4.0版更新重點做點整理:

  1. 更完整支援C++11,去除大量OpenCV 1.x版留下的C API,要配合CMake 3.5.1之後版本編譯。

  2. 除原有CUDA、OpenCL支援平行演算外,另外新增大量以GPU繪圖加速計算的處理函式庫G-API。

  3. 在深度神經網路(DNN)模組中增加FP16支援,同時加入ONNX框架,使得各種模型能順利加入執行,如AlexNet、Inception v2、Resnet、VGG、Yolo、Tiny Yolo v2⋯⋯等等。

  4. 對DNN的改進,如Mask RCNN、Faster R-CNN。

  5. 在快速QR Code檢測、3D場場建構的Kinect Fusion、高質量密集光流算法也都有重大改進。

 

另外,Intel OpenVINO對OpenCV也是大力支援,同步推出更新版本,可支援更多的模型及算法,包括:

1. 支援低解析度(Int8)推論,以利Intel CPU及未來低階推論用AI晶片。
2. 加強支援TensorFlow、MXNet、ONNX等框架,以及R-FCN、Yolo v3、 OpenPose等模型算法。
3. 增加三種預訓練模型,以利人臉特徵點、人體姿態建立及將影像超解析度等應用。
4. 可下載ResNet-50、ResNet-101、ResNet-152、GoogleNet v3等模型參數。

 

更多預訓練模型可參考:
https://github.com/opencv/open_model_zoo

 

OpenCV 4.0及OpenVINO更完整的釋出說明可參考官網:
https://opencv.org/opencv-4-0-0.html
https://docs.opencv.org/4.0.0/index.html

 

相關文章

[ 影片 ] 2018.11.01- CAVEDU觀點:如何看AI與科技教育(完整版)

拍攝

宗諭

剪輯、後製

怡婷

資料提供

豐智

製作協助

皇甫、鈺莨

主講人

阿吉老師曾吉弘

 

 

 

在這一集的「CAVEDU觀點」中,我們探討的主題是:AI與科技教育

總共有以下幾個重點:

 

  1. CAVEDU如何看AI人工智慧教學?(約開始於0:22)

  2. 科技教學方式一直改變,該怎麼辦?(約開始於2:35)

  3. CAVEDU如何設計課程?(約開始於4:53)

  4. CAVEDU如何在課程中導入AI人工智慧?(約開始於5:50)

  5. CAVEDU如何把AI人工智慧落實在大學、高中課堂上(約開始於6:30)

  6. 使用AI人工智慧進行視覺辨識,和使用OpenCV有何不同?(約開始於7:14)

  7. 設計樹莓派AI無人車的核心理念?(約開始於8:43)

  8. 什麼是邊緣運算?(約開始於9:32)

  9. 為何邊緣運算結合AI相關應用適合教學場域?(約開始於10:32)

  10. Intel Movidius神經運算棒介紹(約開始於10:51)

  11. 人工智慧實務工作坊(AGV)介紹(約開始於12:55)

 

重點相當多,讀者們可以根據自己想觀看的內容,選擇段落:

 

也歡迎大家訂閱我們的YouTube頻道,接收來自教育現場的AI與科技教育的訊息,謝謝。

 

相關文章

[Processing匯入OpneCV視覺函式庫] 臉孔追蹤小專題

作者/攝影  曾吉弘
時間  3小時
成本
  • Webcam
難度  * * * *
材料表
  • 個人電腦
  • Webcam 或筆電內建攝影鏡頭
  • Processing IDE

本文要介紹如何在 Processing 中匯入OpenCV視覺函式庫,並做到臉孔追蹤的效果。

 

這比建置完整的OpenCV環境做法簡單多了,但是功能相對也會比完整的openCV環境來得少,就看您個人的需求囉。其實 Processing 的程式碼都很簡潔,也很容易做出漂亮的介面,是阿吉老師上課很喜歡的。Processing結合Arduino也很簡單。

 

硬體

請將#1伺服機的訊號腳位接到Arduino的#9腳位,用於控制PTZ平台的水平方向移動(Pan)

請將#2伺服機的訊號腳位接到Arduino的#11腳位,用於控制PTZ平台的垂直方向移動(Tilt)。其餘分別接電接地完成即可。

View post on imgur.com

示意圖(圖片來源 adafruit 與 sparkfun.com):

View post on imgur.com

View post on imgur.com

您可由 thingiverse這樣的網站找到更多的PTZ平台設計

 

Processing設定

1.下載Processing

2.開啟 Sketch → Import Library…   Add Library:在跳出選單中下載openCV, processing video函式庫

View post on imgur.com

View post on imgur.com

View post on imgur.com

3.下載Arduino函式庫,完成之後可以在 File → Examples 看到相關範例,都可以直接玩玩看喔

 

View post on imgur.com

4.開啟範例程式:LiveCamTest,就可以直接追蹤臉孔囉,以下是我們加入Arduino相關控制碼

import gab.opencv.*;
import processing.video.*;
import java.awt.*;
import processing.serial.*;
import cc.arduino.*;

int center_x, center_y;
Arduino arduino;

Capture video;
OpenCV opencv;

void setup() {
  size(640, 480);  
  video = new Capture(this, 640/2, 480/2);
  opencv = new OpenCV(this, 640/2, 480/2);
  opencv.loadCascade(OpenCV.CASCADE_FRONTALFACE);  
  println(Arduino.list());

  arduino = new Arduino(this, Arduino.list()[0], 57600); 
  //0代表第一個COM裝置,請根據實際狀況修改
  arduino.pinMode(9, Arduino.SERVO);     //#1 servo 水平
  arduino.pinMode(11, Arduino.SERVO);   //#2 servo 垂直
  video.start();
}

void draw() {
  scale(2);
  opencv.loadImage(video);

  image(video, 0, 0 );

  noFill();
  stroke(0, 255, 0);
  strokeWeight(2);
  Rectangle[] faces = opencv.detect();   //偵測是否有臉
  println(faces.length);                            //偵測到幾張臉

  for (int i = 0; i < faces.length; i++) {    //根據臉孔數目來跑迴圈
    println(faces[i].x + "," + faces[i].y);    //顯示臉的座標
    rect(faces[i].x, faces[i].y, faces[i].width, faces[i].height); //畫長方形把臉框出來
    center_x = faces[i].x + (faces[i].width/2);   //起始點x + 0.5*寬
    center_y = faces[i].y + (faces[i].height /2);  //起始點y + 0.5*高
    print(center_x); 
    print(", "); 
    println(center_y);
    ellipse(center_x, center_y, 10, 10);
    arduino.servoWrite(9, int(map(center_x, 100, 270, 0, 180)));  
    //本組數值是center_x 於畫面之左右極值,需依照實際情況調整
    arduino.servoWrite(11, int(map(center_y, 80, 250, 0, 180)));  
    //本組數值是center_y 於畫面的上下極值,需依照實際情況調整
  }
  delay(100);
}

void captureEvent(Capture c) {
  c.read();
}

執行

 

由console的訊息可以看到以下訊息:

 

OpenCV for Processing 0.5.4 by Greg Borenstein http://gregborenstein.com

Using Java OpenCV 2.4.5.0

Load cascade from: C:/Users/user/Documents/Processing/libraries/opencv_processing/library/cascade-files/haarcascade_frontalface_alt.xml

Cascade loaded: haarcascade_frontalface_alt.xml

 

代表在此的臉孔追蹤還是用到了Haar分類演算法,點選連結可以看到關於本分類法的數理基礎。

 

執行畫面如下,可以看到畫面會把偵測到的臉孔標出來,也會在console中顯示偵測到的臉孔張數與座標

View post on imgur.com

View post on imgur.com

相關文章:

 

 

 

 

 

 

[LattePanda] OpenCV視覺辨識人臉追蹤

本文說明如何使用 LattePanda搭配OpenCV視覺辨識函式庫來打造人臉辨識機器人。

作者/攝影 袁佑緣
時間  1小時
成本
  • LattePanda
  • 螢幕
  • 鍵盤
  • 滑鼠
  • 喇叭
  • webcam
難度 * *
材料表
  • LattePanda
  • 螢幕
  • 鍵盤
  • 滑鼠
  • Webcam

 

本文說明如何使用 LattePanda搭配 python語言去使用OpenCV機器視覺函式庫來打造一個人臉辨識機器人,本範例的操作環境將以LattePanda的Windows10為主。

 

1. 軟體準備

安裝Python與相關套件

首先請到Python的網站下載最新版的安裝檔,在這邊要提醒一下Python目前有兩種版本,一個是2.7x版,另一個3.x版。Python 2.7x版是比較舊的版本,同時官方也有發出聲明將不會在繼續更新了,而本篇的範例使用的是新版3.x的Python,所以請注意一下不要選錯囉,以本文為例,最新的版本是3.6.1,如下圖。接著請按照以下步驟進行。

 

請在安裝Python時,將下方Add Python 3.6 to PATH勾選起來,意思是要把Python加入windows作業系統的環境變數內。

 

安裝完成後,為了測試我們的電腦是否能正常呼叫Python,請呼叫您電腦的終端機,windows的使用者請按下快捷鍵win+R便會在左下角顯示執行視窗,接著輸入cmd,這樣一來就會叫出windows的命令提示字元。

 

 

接下來請在上面輸入Python,呼叫Python的互動界面,如果能成功看到>>>的符號,那就代表已經成功叫起Python的界面了,而使用者可以直接在上面輸入Python的相關指令,如果沒有正確顯示這個界面的話,可能是您前面的安裝過程有問題,請重新回到前面的安裝步驟,有可能是您沒有勾選系統變數那個選項,所以windows無從呼叫Python。

接下來請輸入exit()跳出這個Python互動界面,回到windows的命令提示字元。

接下來請輸入pip install numpy,使用Python的套件管理員pip來安裝numpy這個套件。

裝完numpy之後,一樣使用pip來安裝OpenCV套件,請輸入pip install opencv-python

最後請輸入pip install pyserial,安裝在python中用來做Serial溝通的pyserial套件。

準備Python IDE

撰寫Python的程式除了要打code之外,還需要執行的環境,所以筆者在這邊推薦一款非常容易上手的Python IDE,請到以下的網站(http://thonny.org/)下載並安裝Thonny。

 

裝完必要的Python套件之後,我們就要來把Thonny的程式路徑設定成我們電腦系統中預設的Python執行程式。請點選Tools然後再點選Options,進入Thonny的偏好設定。如下圖。

接下來選擇interpreter,也就是Python的直譯器為系統預設的路徑,如下圖。

2.硬體架設

 本範例使用羅技C170的webcam作為辨識人臉的攝影鏡頭,另外為了要能夠追蹤人臉的位置,我們還需要架設一個旋轉平台,如下圖,由底下的小型伺服馬達(MG90)來控制鏡頭對到的方位。且注意到下方的小馬達控制訊號線是接到LattePanda左邊的3Pin接頭,記得靠外側是要接深色的地線喔!

 

 

3.軟體實作

Arduino 程式碼

為了要控制旋轉平台的伺服馬達,我們需要使用LattePanda上的Arduino Leonardo晶片,請打開Arduino IDE並打上以下的程式碼,並上傳到LattePanda上的Arduino端(請記得選對COM port)。

Arduino端的控制動作其實很簡單,它會聽取Serial傳來的字元命令,如果是小寫的字母a或b就會分別左右旋轉一度,進而達到轉動鏡頭的效果,而伺服馬達的控制訊號腳位在本範例中用的是9號腳位,接法如上圖,如果想接其他腳位請記得要改一下Arduino程式碼裡的腳位定義(s.attach(9))。

#include <Servo.h>

Servo s;
int degree = 90;

void setup()
{
    Serial.begin(115200);
    s.attach(9);
}

void loop()
{
    if(Serial.available())
    {
        int cmd = Serial.read();
        if(cmd == 'a')
        {
            degree++;
            if(degree >= 180)
                degree = 180;
            s.write(degree);
        }
        else if(cmd == 'b')
        {
            degree--;
            if(degree <= 0)
                degree = 0;
            s.write(degree);
        }
        else
            Serial.println("Press a/b to turn the camrea!");
    }
}

 

Python 程式碼

前面已經準備好Python會需要用到的函式庫跟IDE了,接下來我們就要來實作最後關鍵的人臉辨識以及追蹤,因為需要用到辨識人臉的模型,請去OpenCV的github網站(https://github.com/opencv/opencv/tree/master/data/haarcascades)下載 haarcascade_frontalface_default.xml與 haarcascade_eye.xml這兩個.xml檔,分別是用來辨識人的臉部與以及眼睛。

程式碼的實做可以拆解成幾個重要的部份,以下就讓我們一步一步的來了解吧!

首先我們會由cv2.VideoCapture(0)來讀取Webcam的影像資訊,並且設定初始的解析度是640×480,接下來在連接埠COM5建立一個Serial通道,用來下指令給Arduino端,以控制鏡頭的方向。

而while迴圈裡面則包含了主要的辨識程式,辨識的方法其實很簡單,就是先把鏡頭每一幀的照片先灰階化,再透過前面下載的臉部及眼部辨識模組套進去(face_cascde和eye_cascade)去做最可能的人臉偵測(這裡使用的方法是取最大/近的臉部面積)。

最後為了要追蹤人臉,我們需要計算出人臉的中心位置(position = x + w/2.0),x是標示人臉方框的 角落x座標,w則是寬度,所以取一半的寬度就會得到人中的x座標位置,接下來我們只要跟我們取的影像中線做比較,然後左右旋轉鏡頭去做追蹤即可,而這調中線的位置則可以從前面設定的解析度640×480來算出,取寬的一半就能得到範例程式中的320了,如果說讀者想要嘗試其他的解析度,請記得也要修改鏡頭追蹤的中線喔!

import cv2
import numpy as np
import serial

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

cap = cv2.VideoCapture(0)
cap.set(3, 640)
cap.set(4, 480)
ser = serial.Serial('COM5', 115200)

while True:
    _, img = cap.read()
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 2, 5)
    if len(faces):
        (x, y, w, h) = max(faces, key=lambda face: face[2]*face[3])
        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)
        position = x + w/2.0
        print(position)
        if position < 320:
            ser.write(b'a')
        else:
            ser.write(b'b')
        
    cv2.imshow('face', img)
    k = cv2.waitKey(5) & 0xFF
    if k == 27:
        break
cv2.destroyAllWindows()

 

示範影片

 

相關文章:

[LattePanda教學] openCV環境安裝與基本臉孔瞳孔偵測 @Windows 10

本文將說明如何設定 LattePanda 拿鐵熊貓開發板上的 openCV環境,並執行一個小範例來玩玩看

延伸閱讀


Continue reading

150627 「用Raspberry Pi自造遠端影像監控系統」工作坊@台北科大電子系,MakerPro 合辦活動

感謝 MakerPro 的邀請,CAVEDU 這三個月來一共與 MakerPro 舉辦了三場智慧物聯網研習。今天是第三場:「用Raspberry Pi自造遠端影像監控系統」工作坊。前兩場使用的是 Arduino Yun 來進行智慧家電與家庭防盜等議題。請您回顧之前的介紹喔

150427  「用Arduino Yún自造智慧家電」工作坊

150523 「Arduino Yun 自造家庭防盜系統」工作坊

IMG_1926

今天的主題既然都長這樣了,想必硬度很高。因為我們要用 openCV 來處理接在 Raspberry Pi 上的 Webcam 影像,所以與基礎的 Pi 研習不太一樣,系統開機之後很快就要進到 python 語法、如何預覽 Webcam 影像等。然後才能談到如何去處理影像進行邊緣偵測、二值化與物件中心與面積計算等。最後的目標當然是讓 Webcam 可以跟著要追蹤的物體左右轉動一定範圍,是不是很有挑戰性的題目呢?

想要自己玩玩看的朋友,請下載我們包好的 img 檔直接燒錄SD卡來開機,當然也可以試試看自己裝 openCV python 套件,不過 Raspberry Pi B+ build 一次(不含先前下載所有相依套件)要8小時,Pi 2 應該可以更快一點才是。相關投影片請到 CAVEDU slideshare 帳號下載,上面的資料應該還算豐富啦

安裝OpenCV 於 Raspberry Pi / Banana Pi

[感謝祭,有下有推]Raspbian openCV img 檔下載 – 可用於 Raspberry Pi B、B+ 以及 Banana Pi

[Raspberry Pi 2]樹莓派2效能測試,使用Chrome 瀏覽器與 openCV


來看上課照片吧,本日授課講師為本團隊徐豐智老師,專業親切(又有點冷)。本團隊目前 Arduino、LinkIt ONE 與 Raspberry pi 的主力講師,身負課程研發重任喔!

IMG_1887

 

場地使用北科大電子系的電腦教室,外頭可是接近 34 度的大太陽啊。

IMG_1893

經濟部通推小組的同仁也來介紹 2015 通訊大賽的相關訊息,獎金很不錯(第一名30萬),有興趣的朋友快點參加吧~

IMG_1895

既然用到的是 openCV python 函式庫,首先要帶同學對於 python 語法有一定的認識,接著就是如何自定義與匯入函式庫以及讀寫 GPIO 腳位等等。

IMG_1901

由於影像監控平台需使用Pi 的 GPIO 腳位來控制 servo,歷代的 Pi 在腳位編號上又有點不一樣,因此豐智老師非常仔細地把 GPIO 所有要注意的事項解說一遍,再帶同學逐步接線完成,和電有關的操作都要非常注意,接錯的話 Pi 很容易飄出一縷青煙之後就 GG 了…

 

 

IMG_1908

這是範例畫面,右下角是原始影像,左側則是邊緣偵測(edge detection)的結果。您可想像我們需大致定義物件的邊界與形狀,接著再由物件面積(與物體遠近有關)中心座標與畫面中心(寬/2, 高/2 )的差來控制 servo 的左右轉動,本日範例只有 X 方向左右轉動。

camrea02

本日使用的X平台長這樣,後方位置是用來安裝 Pi ,這樣看起來完整度還不錯。如果您希望加入Y軸的話,就要以90度接上另一個 servo (右圖)。

IMG_1917   2015-06-16 13.24.41

 

150627 「用Raspberry Pi自造遠端影像監控系統」工作坊

6ec660920f834155b226cf26c0a9ee19

報名請按我

開始時間2015-06-27 09:30

結束時間2015-06-27 16:30地點台北市忠孝東路三段一號 (台北科技大學電子系電腦教室)

主辦單位MakerPRO自造者創業社群平台

相關網址www.makerpro.cc

報名費:$700 元


前兩場的Maker X IOT工作坊,以Arduino Yún為開發平台,並以智慧家庭為學習主題,活動一發出很快就報名額滿,顯現出Maker對此類議題的學習需求極大。本次「Maker進修工作坊」將改以同樣熱門的Raspberry Pi為開發平台,並以Linux/Python的作業系統及OpenCV為進階學習的重點,讓您的創作實力躍升到另一等級。

本次工作坊以【Maker x IOT】為主軸,擬帶領具Raspberry Pi使用基礎的Maker及Pre-Startup,快速學習到完整的物聯網應用開發概念。在一天的工作坊中,你將學得:

1. 認識Raspberry Pi 2開發環境;

2. Python基礎語法、模組的建立與應用

3. Raspberry Pi 2使用伺服機馬達轉動 Webcam

4. 建置遠端影像監控及學習使用OpenCV

註:本次工作坊特別感謝經濟部通訊產業發展推動小組提供補助,讓學員能降低學習進入門檻(免學費、只收必要材料費),希望能培育更多Maker圈的物聯網創新人才。


適合對象:已具備Raspberry Pi實作及電子學基礎的Maker、想要製作超酷物聯網應用,或想發展物聯網相關商業模式與服務的Pre-Startup。參加者應具備電子電路、Raspberry Pi以及程式設計的基礎概念,才能順利實作本次課程中的相關專題。

議程介紹:

時間學習內容
9:00 – 9:30報到
9:30 – 11:00使用 Raspberry Pi安裝可搭配之作業系統

Raspberry Pi作業系統環境設定

使用Linux基礎指令操作系統

11:00 – 11:15Break
11:15 – 12:00Python基礎語法、模組的建立與應用

Raspberry Pi開機指定執行自己的python程式

12:15 – 13:15午餐
13:15 – 13:45建立遠端連線程式、使用Linux圖形化、文字、檔案傳輸介面
13:45 –14:45GPIO 結合硬體(可遠端): Raspberry Pi 2使用伺服機馬達轉動 Webcam
14:45 – 15:00Break
15:00 – 16:20遠端影像監控(可遠端):Webcam機器視覺,建立攝影機影像,使用OpenCV建立二色化影像、辨識指定顏色與座標追蹤
16:20 – 16:30結語、賦歸

註:在不影響工作坊學習主旨的前提下,主辦單位保留議程修訂權利;若有修訂之必要,將在開課前通知學員。


主辦單位:經濟部通訊產業發展推動小組

執行單位:MakerPRO自造者創業社群平台

教學單位:CAVEDU

時間:2015年6月27日(六)

報名費:Free(只收材料費:700NTD)

人數:27人(材料費繳費完成者額滿27位為止)


注意事項:

  1. 本工作坊的實作平台,包括Raspberry Pi 2 Model B、Raspberry Pi Model B、Raspberry Pi Model B+、Banana Pi等4種控制板皆可用,請自備。若需代購,CAVEDU只提供Raspberry Pi 2 Model B。
  2. USB WEBCAM建議選用”正牌”產品,若需代購,CAVEDU提供羅技C170。
  3. 請自備Micro SD SD卡,8G以上就可以,重點是速度要Class 10,也可代購。
  4. 電源供應器請自備平板或是智慧型手機的充電器,只要其輸出電壓為5V,輸出電流在1A以上,並準備micro USB線。
  5. 其他自備(或代購)材料請見報名表。
  6. 材料費700元的材料清單,包括:170孔麵包板、路線線材、LED(5mm 紅)、色碼電阻、微動開關、Servo伺服器MG90、WEBCAM旋轉台。
  7. 代購材料請於報到時繳費領取。

講師介紹:

徐豐智, CAVEDU 教育團隊講師。專長為Arduino、嵌入式系統、iOS/Android行動裝置應用與Python等教學應用。

141211_RaspberryPi樹莓派研習營 使用openCV視覺函式庫@未來廠房

第四周未來廠房的樹莓派研習營,本週要介紹的是在樹莓派上運行opencv函式庫。opencv函式庫主要功能在於影像資料的處理,不僅能夠處理靜態影像(圖片、照片等…),也能即時處理動態影像(webcam傳送的即時影像),這次分享的是使用攝影機,讓攝影機能夠辨識眼前的綠色球體。

不過要把 openCV 在 Pi 上面的環境建好需要一點功夫,所以我們已經幫大家準備好了 SD 卡的映像檔,下載之後燒錄,開機就能開始玩 openCV了

[感謝祭,有下有推]Raspbian openCV img 檔下載 – 可用於 Raspberry Pi B、B+ 以及 Banana Pi

這次主要分為三個主題分享

1、讓Webcam連線至樹莓派,將影像串流成功傳到Python開啟的視窗

camera01

2、將影像影像平滑化,找出綠色的物件,將物件以外的影像變為黑色,物件變為白色

camrea02

3、找出綠色物件的邊界值,將物件用框架框起來

camera03

這次分享的內容主要是電腦再進行視覺辨識時,需要做的步驟,

比如透過(1)平滑化,將影像變模糊,減少綠色物件因為光造成顏色不同而產生的辨識錯誤

使用(2)RGB轉換HSV,降低光對顏色造成的影響

接下來(3)調整可以接受的顏色範圍。這樣我們就可以把指定的顏色以白色顯示,其他部分以黑色顯示。

camrea04

接著找出綠色的邊界值,找出辨識物件的對角線頂點,將物件以綠色的線框起來。

這樣就可以在樹莓派上面看到辨識出來的影像囉。

camrea05

這週大家也是全神貫注的聽~12月18日,第五週的課程會上GPIO,

除了上LED和按鈕控制之外,也會把樹莓派裝在車上控制直流馬達,敬請期待!!!

141120開班!動手玩電腦 —Raspberry Pi 工作營 – 六週課程喔!

86d38b4483144d099071066e72497c90

9~10 月的 Raspberry Pi 四周課程結束了,在 FutureWard 上課的學員回饋都覺得是很充實又食物導向的課程。這次我們將課程延長為六週,加入了詢問度很高的 OpenCV 視覺辨識課程,還有透過 GPIO 來控制機器手臂,大大活用您手邊的 Raspberry Pi!

報名網址請按我

請參考以下的課程說明:

1.如果你是

  • 對電子、資訊領域感興趣的Maker
  • 對3C及科技產物充滿熱情的狂熱者
  • 想瞭解如何透過單板電腦Raspberry Pi,完成各種不同的指令

2.你將可以

  • 瞭解如何操作使用Raspberry Pi,學會常用的Linux指令
  • 學習使用Raspberry Pi 的程式開發工具
  • 透過Raspberry Pi連結控制電子元件,進行創作與運用
  • 以Raspberry Pi打造個人化的網路影音播放器

3.課程內容說明

Raspberry Pi是一款只有一張信用卡大小的 Linux 系統電腦,如果將它連接到你的螢幕再接上鍵盤,就是一台小型個人電腦。它可以處理你在個人電腦上做的事,比如說文字編輯、玩遊戲、寫程式等等,還能播放高畫質的視訊影片。不但如此還能控制其他硬體,例如感測器與馬達,甚至可搭配 Arduino 或是與樂高機器人進行整合式的應用。在本次研習中您將可藉由Raspberry Pi 踏入 Linux 的世界,以及Raspberry Pi 所展現的諸多應用。

課程安排:

 11/20 19:00-21:30  第一堂:認識 Raspberry Pi
  • 硬體介紹
  • 可做到的事情與可搭配的作業系統
  • 開機!Raspberry Pi
  • 基礎Linux環境操作
  • 中文化環境安裝
11/27 19:00-21:30 第二堂:網路功能
  • 網路功能
  • 遠端登入/遠端桌面
  • 數位多媒體中心–XBMC (需使用另外的SD卡開機)
12/4 19:00-21:30 第三堂:Python 程式基礎1
  • Python程式範例教學
  • 如何一開機就執行某個 Python程式
  • Scratch基本介紹與使用
12/11 19:00-21:30 第四堂:Python 程式基礎2
  • 製作 openCV 開機用 SD卡
  • 取得Webcam 影像
  • 使用openCV建立二色化影像
  • 辨識指定顏色與座標追蹤
12/18 19:00-21:30 第五堂:GPIO 結合硬體
  • 使用GPIO 控制LED 亮滅
  • 使用GPIO 取得按鈕狀態
  • 使用GPIO 控制PWM訊號:使用樹莓派操控馬達車
12/25 19:00-21:30 第六堂: GPIO 控制伺服機
  • 使用GPIO 控制複數的伺服馬達
  • 使用GPIO製作遙控機械手臂

  

[感謝祭,有下有推]Raspbian openCV img 檔下載 – 可用於 Raspberry Pi B、B+ 以及 Banana Pi

歡迎下載我們包好的 Raspbian + openCV python library 系統映像檔。直接燒錄到 SD 卡中開機就可以快樂使用了,當然您還需要一個攝影機,您要用 Raspberry Pi 照相機模組或是 USB webcam 都可以。本文中的 webcam 影像是來自阿吉老師八年前的老羅技 Logitech。

我們實測在 Raspberry Pi B、B+ 以及 Banana Pi 都可順利執行,當然啦, 如果您 openCV 影像視窗開太大的話,Raspberry Pi 會比較吃力。建議用 320 x 240 即可。

2014-07-25 10.38.16

檔案 1.8G,解壓縮後變成 7.4G。

開機之後,請進入 /pi/opencv2.4.9/samples/python2 下的所有範例都可直接使用。

老規矩,有下有推。請大家用力分享喔~  技術支援感謝本團隊顏義翔老師

安裝OpenCV 於 Raspberry Pi / Banana Pi

本文是在 Raspberry Pi 上安裝 openCV 函式庫,安裝需要時間,請大家耐心操作喔。最近相當熱門的 Banana Pi 我們也裝起來看看

有圖有真相~

10526761_812229105456860_1312356630_o

安裝 OpenCV 編譯相關套件

  • sudo  apt-get install build-essential
  • sudo  apt-get install cmake
  • sudo  apt-get install pkg-config
  • sudo  apt-get install libgtk2.0-dev libgtk2.0
  • sudo  apt-get install zlib1g-dev
  • sudo  apt-get install libpng-dev
  • sudo  apt-get install libjpeg-dev
  • sudo  apt-get install libtiff-dev
  • sudo  apt-get install libjasper-devsudo
  • sudo  apt-get install libavcodec-dev
  • sudo  apt-get install swig

下載OpenCV2.4.9for Linux 利用wget+檔案的網址

  • wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download
  1. 紅字為版本,載下來的檔案會放在資料夾pi中,檔名為download

解壓縮 並建立 編譯暫存資料夾

  • cd unzip opencv-2.4.9 (解壓縮)
  • cd opencv-2.4.9 (進入解壓縮的資料夾)
  • mkdir release (建立資料夾release)
  • cd release (進入release資料夾)

編譯及安裝 OpenCV

  • cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
  • sudo apt-get update
  • make (Raspberry Pi 安裝需要10小時請耐心等候 Banana Pi 安裝需要3小時,按完就可以去睡覺了)
  • sudo make install

定義環境變數

  • sudo nano /etc/bash.bashrc

進入文件後,在文件的末端添加以下 環境變數 並存檔, 內容如下:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

export PKG_CONFIG_PATH

加入後按Ctrl+O存檔,再按Ctrl+X離開文件

確認opencv版本

  • pkg-config –modversion opencv

最後新增一個 sample code 執行編譯與測試

  • nano showimage.c (新增一個.c檔)

showimage.c 內容

#include “highgui.h”
int main( int argc, char **argv )
{
IplImage *img = cvLoadImage( argv[1] );
cvNamedWindow(“ShowImage “, CV_WINDOW_AUTOSIZE);
cvShowImage(“ShowImage “, img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow(“ShowImage “);
}

編譯指令

  • g++ `pkg-config –cflags –libs opencv` showimage.c -o showimage

執行指令

  • ./ showimage opencv-2.4.9/samples/c/lena.jpg
  1. 如果出現此錯誤:

error while loading shared libraries: libopencv_calib3d.so.2.4:cannot open shared object file: No such file or directory

請輸入指令:

  • sudo ldconfig -v

執行結果

參考資料

1.http://me1237guy.pixnet.net/blog/post/56390270-%E5%AE%89%E8%A3%9Dinstalling-opencv2.4.8-on-a-rasperberry-pi

(安裝教學)

2.http://rexkingworld.blogspot.tw/2014/01/opencv-raspberry-pi.html (安裝教學 及 sample code)

3.http://blog.csdn.net/xygl2009/article/details/12858289 (sample code 及 如何撰寫程式)

4.http://ubuntuforums.org/showthread.php?t=2109967 (無法執行程式問題)

 

撰寫人:顏義翔      撰寫日期:2014/7/5