0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣用openFrameworks人臉跟蹤器模式控制電機

454398 ? 來源:工程師吳畏 ? 2019-08-02 11:42 ? 次閱讀

在本指南中,我們將記錄四個輸出的樣本:

對于出現(xiàn)在相機前面的面部。

對于出現(xiàn)在相機右側(cè)的臉部。

對于距相機一定距離的臉部。

對于出現(xiàn)在相機前面的物體。

安裝openFrameworks人臉跟蹤器模式

openFrameworks的安裝文件,以及面部追蹤功能,可在Wekinator網(wǎng)站上找到。

怎樣用openFrameworks人臉跟蹤器模式控制電機

圖像顯示W(wǎng)ekinator網(wǎng)站上面部跟蹤下載文件的位置ite。

下載面部跟蹤文件后,解壓縮并運行程序。它應激活計算機網(wǎng)絡攝像頭以跟蹤用戶的面部。

使用計算機網(wǎng)絡攝像頭識別面部的面部跟蹤器程序的示例圖像。

處理指令

在處理方面,本指南將要求使用草圖,該草圖將從Wekinator軟件接收輸出數(shù)據(jù)并將其轉(zhuǎn)發(fā)給Arduino。

import vsync.*; // Importing the library that will help us in sending and receiving the values from the Arduino

import processing.serial.*; // Importing the serial library

// Below libraries will connect and send, receive the values from wekinator

import oscP5.*;

import netP5.*;

// Creating the instances

OscP5 oscP5;

NetAddress dest;

ValueSender sender;

// These variables will be syncronized with the Arduino and they should be same on the Arduino side.

public int output;

void setup()

{

// Starting the serial communication, the baudrate and the com port should be same as on the Arduino side.

Serial serial = new Serial(this, “COM10”, 115200);

sender = new ValueSender(this, serial);

// Synchronizing the variables as on the Arduino side. The order should be same.

sender.observe(“output”);

// Starting the communication with wekinator. listen on port 12000, return messages on port 6448

oscP5 = new OscP5(this, 12000);

dest = new NetAddress(“127.0.0.1”, 6448);

}

// Recieve OSC messages from Wekinator

void oscEvent(OscMessage theOscMessage) {

if (theOscMessage.checkAddrPattern(“/wek/outputs”) == true) {

// Receiving the output from wekinator

float value = theOscMessage.get(0).floatValue();

// Converting the output to int type

output = int(value);

}

}

void draw()

{

// Nothing to be drawn for this example

}

連接直流電機到Arduino

處理草圖將從Wekinator發(fā)送輸出數(shù)據(jù)到Arduino,它將相應地控制電機。

為了將電機連接到Arduino,請按照下圖中的位置。

查看我們的文章詳細說明如何通過openFramework發(fā)送和接收數(shù)據(jù)平臺使用Arduinoto更好地了解openFrameworks如何與Arduino通信。

連接到Arduino UNO的電機示意圖。

Arduino代碼

#include //Including the library that will help us in receiving and sending the values from processing

ValueReceiver《1》 receiver; /*Creating the receiver that will receive only one value.

Put the number of values to synchronize in the brackets */

/* The below variable will be synchronized in the processing

and it should be same on both sides. */

int output;

//Motor Pins

int EN_A = 11;

int IN1 = 9;

int IN2 = 8;

int IN3 = 7;

int IN4 = 6;

int EN_B = 10;

void setup()

{

/* Starting the serial communication because we are communicating with the

Processing through serial. The baudrate should be same as on the processing side. */

Serial.begin(115200);

//Initializing the motor pins as output

pinMode(EN_A, OUTPUT);

pinMode(IN1, OUTPUT);

pinMode(IN2, OUTPUT);

pinMode(IN3, OUTPUT);

pinMode(IN4, OUTPUT);

pinMode(EN_B, OUTPUT);

digitalWrite(EN_A, HIGH);

digitalWrite(EN_B, HIGH);

// Synchronizing the variable with the processing. The variable must be int type.

receiver.observe(output);

}

void loop()

{

// Receiving the output from the processing.

receiver.sync();

// Matching the received output to light up led‘s

if (output == 1)

{

//Forward

digitalWrite(IN1, LOW);

digitalWrite(IN2, HIGH);

digitalWrite(IN3, LOW);

digitalWrite(IN4, HIGH);

}

else if (output == 2)

{

//Right

digitalWrite(IN1, HIGH);

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

}

else if (output == 3)

{

//Left

digitalWrite(IN1, LOW);

digitalWrite(IN2, LOW);

digitalWrite(IN3, HIGH);

digitalWrite(IN4, LOW);

}

else if (output == 4)

{

//Stop

digitalWrite(IN1, LOW);

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

}

}

在Wekinator中使用人臉檢測

第一步是啟動Wekinator平臺并更改設置以反映下圖中的設置。

將輸入值設置為3.

將輸出值設置為1.

將輸出類型指定為“all continuous”

將所有其他設置保留為默認格式。

為了啟用Wekinator和openFrameworks平臺之間的通信,您需要下載ChucK編程語言,你可以在查克官方網(wǎng)站上這樣做。

了解更多信息在安裝和使用Wekinator程序時,請查看我們的如何開始使用Wekinator的指南。

Wekinator將從openFrameworks應用程序接收3個輸入,然后向ChucK程序發(fā)送5個不同的輸出,這會提示它產(chǎn)生不同的聲音。

Wekinator軟件程序中的“創(chuàng)建新項目”窗口。

單擊“下一步”,將顯示“新建項目”窗口,如下所示。

Wekinator軟件程序中的“New Project”窗口。

將臉靠近相機記錄一些測試。將分類器輸出值指定為“1”。您還需要記錄此移動的簡短示例。

顯示面部追蹤器功能如何識別靠近相機的面部的示例圖像。

接下來,將您的臉移到屏幕右側(cè),將分類輸出值更改為“2”。再一次,記錄運動。

顯示臉部追蹤器功能如何識別相機右側(cè)臉部的示例圖像。

然后將您的臉部從相機中進一步向后移動并將分類器輸出更改為“3”。

人臉跟蹤器功能如何識別遠離相機的臉部的示例圖像。

最后一步是完全退出相機視圖。將分類器輸出分配給’4?!?/p>

臉部追蹤器功能的示例圖像未在相機視圖中識別臉部。

現(xiàn)在,當您點擊“列車”然后“運行”按鈕時,電機應會在相機上的位置移動。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電機
    +關(guān)注

    關(guān)注

    142

    文章

    8875

    瀏覽量

    144859
  • 面部追蹤
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    10254
收藏 人收藏

    評論

    相關(guān)推薦

    TRKRLDOEVM-119通跟蹤器LDO評估模塊

    電子發(fā)燒友網(wǎng)站提供《TRKRLDOEVM-119通跟蹤器LDO評估模塊.pdf》資料免費下載
    發(fā)表于 11-09 14:47 ?0次下載
    TRKRLDOEVM-119通<b class='flag-5'>用</b><b class='flag-5'>跟蹤器</b>LDO評估模塊

    使用TMS320C40 DSP實現(xiàn)單脈沖雷達的數(shù)字跟蹤器

    電子發(fā)燒友網(wǎng)站提供《使用TMS320C40 DSP實現(xiàn)單脈沖雷達的數(shù)字跟蹤器.pdf》資料免費下載
    發(fā)表于 10-28 10:04 ?0次下載
    使用TMS320C40 DSP實現(xiàn)單脈沖雷達的數(shù)字<b class='flag-5'>跟蹤器</b>

    高抗噪性 電壓跟蹤器

    電壓跟蹤
    jf_30741036
    發(fā)布于 :2024年09月29日 19:26:44

    邏輯和翻譯例優(yōu)化資產(chǎn)跟蹤器

    電子發(fā)燒友網(wǎng)站提供《邏輯和翻譯例優(yōu)化資產(chǎn)跟蹤器.pdf》資料免費下載
    發(fā)表于 09-21 11:24 ?0次下載
    <b class='flag-5'>用</b>邏輯和翻譯<b class='flag-5'>用</b>例優(yōu)化資產(chǎn)<b class='flag-5'>跟蹤器</b>

    創(chuàng)想智控激光焊縫跟蹤器協(xié)同專機在風機高精度自動焊接的應用

    和自動化設備盲焊,難以滿足現(xiàn)代工業(yè)對高精度、?高效率的需求。?為此,?創(chuàng)想智控推出了激光焊縫跟蹤器協(xié)同專機的高精度自動焊接解決方案。 ??激光焊縫跟蹤器原理 ??激光焊縫跟蹤器是一種先進的傳感技術(shù),利用激光掃
    的頭像 發(fā)表于 09-06 18:16 ?218次閱讀
    創(chuàng)想智控激光焊縫<b class='flag-5'>跟蹤器</b>協(xié)同專機在風機高精度自動焊接的應用

    光學跟蹤器接口連接方法有哪些

    光學跟蹤器是一種用于測量和跟蹤物體位置和運動的設備,廣泛應用于航空航天、軍事、機器人、虛擬現(xiàn)實等領域。光學跟蹤器接口連接方法是指將光學跟蹤器與計算機或其他設備進行連接和通信的方法。 有
    的頭像 發(fā)表于 08-29 18:26 ?548次閱讀

    光學跟蹤器信號源手機怎么設置

    光學跟蹤器是一種用于測量和跟蹤物體位置和運動的設備。它通常由一個攝像頭、一個光源和一個傳感組成。在手機中,光學跟蹤器可以通過應用程序?qū)崿F(xiàn),例如AR(增強現(xiàn)實)應用。 以下是一些關(guān)于光
    的頭像 發(fā)表于 08-29 18:03 ?526次閱讀

    光學跟蹤器使用的技術(shù)有哪幾種

    光學跟蹤器是一種用于測量和跟蹤目標位置的高精度設備,廣泛應用于軍事、航空航天、工業(yè)自動化、科學實驗等領域。它們通常利用光學原理來確定目標的位置、速度和加速度。光學跟蹤器的技術(shù)種類繁多,每種技術(shù)都有其
    的頭像 發(fā)表于 08-29 17:37 ?681次閱讀

    創(chuàng)想智控激光焊縫跟蹤器在醫(yī)療攪拌罐反應釜自動焊接的應用

    焊接路徑,提高焊接精度,減少人工干預,成了自動焊接領域的利器。今天跟隨創(chuàng)想智控一起了解激光焊縫跟蹤器在醫(yī)療攪拌罐反應釜自動焊接的應用。 ?? 激光焊縫跟蹤器原理 ??激光焊縫跟蹤器通過激光傳感
    的頭像 發(fā)表于 08-24 13:57 ?171次閱讀
    創(chuàng)想智控激光焊縫<b class='flag-5'>跟蹤器</b>在醫(yī)療攪拌罐反應釜自動焊接的應用

    創(chuàng)想智控激光焊縫跟蹤器在機械法蘭盤自動掃描焊接的應用

    應運而生,成為解決這些問題的有效工具。今天一起了解創(chuàng)想智控激光焊縫跟蹤器在機械法蘭盤自動掃描焊接的應用。 ?? 激光焊縫跟蹤器原理 ??激光焊縫跟蹤器利用高精度激光掃描技術(shù),實時檢測焊縫位置并調(diào)整焊接路徑。其原理
    的頭像 發(fā)表于 08-17 15:58 ?1713次閱讀
    創(chuàng)想智控激光焊縫<b class='flag-5'>跟蹤器</b>在機械法蘭盤自動掃描焊接的應用

    stm32f100怎樣用重映射功能?

    的是stm32f100c8t6b芯片,現(xiàn)在想用將PB1映射為TIM1_CH3N,在調(diào)用GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_TIM1)時, GPIO_PinAFConfig和GPIO_AF_TIM1都沒定義,stm32f100
    發(fā)表于 05-07 06:06

    Genius Tracker? 安裝速度遠超競爭對手的單軸跟蹤器

    來自第三方的時間研究表明?GameChange Solar 的?Genius Tracker? 安裝速度遠超競爭對手的單軸跟蹤器 現(xiàn)場研究表明,照比市場中其他三款有競爭力的?1P 跟蹤器
    的頭像 發(fā)表于 04-07 16:49 ?434次閱讀

    Wi-SUN 可最大限度地提高太陽能跟蹤器的性能

    目前,隨著光伏系統(tǒng)技術(shù)的進步,智能跟蹤得以實現(xiàn),可最大限度地提高太陽光能的輸出。不同于固定式電池板,太陽能光伏 (PV) 跟蹤器能夠全天將太陽能電池板朝向太陽,并在惡劣天氣下保護電池板免受冰雹或狂風
    的頭像 發(fā)表于 01-07 08:38 ?623次閱讀
    Wi-SUN 可最大限度地提高太陽能<b class='flag-5'>跟蹤器</b>的性能

    什么是電壓跟蹤器?

    什么是電壓跟蹤器?
    的頭像 發(fā)表于 12-07 16:10 ?867次閱讀
    什么是電壓<b class='flag-5'>跟蹤器</b>?

    怎樣用ADAU1761設計DRC的壓縮/擴展?

    請問怎樣用ADAU1761設計DRC的壓縮/擴展。我在SigmaStudio 4.5的模塊中只找到RMS。如果ADAU1761設計DRC要怎樣
    發(fā)表于 11-28 06:41