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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

怎樣用openFrameworks人臉跟蹤器模式控制電機(jī)

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

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

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

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

對于距相機(jī)一定距離的臉部。

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

安裝openFrameworks人臉跟蹤器模式

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

怎樣用openFrameworks人臉跟蹤器模式控制電機(jī)

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

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

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

處理指令

在處理方面,本指南將要求使用草圖,該草圖將從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

}

連接直流電機(jī)到Arduino

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

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

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

連接到Arduino UNO的電機(jī)示意圖。

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中使用人臉檢測

第一步是啟動(dòng)Wekinator平臺(tái)并更改設(shè)置以反映下圖中的設(shè)置。

將輸入值設(shè)置為3.

將輸出值設(shè)置為1.

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

將所有其他設(shè)置保留為默認(rèn)格式。

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

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

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

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

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

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

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

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

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

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

然后將您的臉部從相機(jī)中進(jìn)一步向后移動(dòng)并將分類器輸出更改為“3”。

人臉跟蹤器功能如何識別遠(yuǎn)離相機(jī)的臉部的示例圖像。

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

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

現(xiàn)在,當(dāng)您點(diǎn)擊“列車”然后“運(yùn)行”按鈕時(shí),電機(jī)應(yīng)會(huì)在相機(jī)上的位置移動(dòng)。

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

    關(guān)注

    142

    文章

    9023

    瀏覽量

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

    關(guān)注

    0

    文章

    5

    瀏覽量

    10260
收藏 人收藏

    評論

    相關(guān)推薦

    激光焊縫跟蹤器與傳統(tǒng)焊縫檢測方法的對比

    在焊接自動(dòng)化的推動(dòng)下,焊縫檢測技術(shù)逐漸成為焊接質(zhì)量控制的重要環(huán)節(jié)。傳統(tǒng)的焊縫檢測方法在一定程度上滿足了生產(chǎn)需求,但隨著工業(yè)應(yīng)用對精度和效率要求的提升,激光焊縫跟蹤器逐漸成為一種更具競爭力的解決方案。今天一起了解激光焊縫跟蹤器與傳
    的頭像 發(fā)表于 11-28 16:47 ?163次閱讀
    激光焊縫<b class='flag-5'>跟蹤器</b>與傳統(tǒng)焊縫檢測方法的對比

    深入解析激光焊縫跟蹤器的工作原理與應(yīng)用優(yōu)勢

    ??隨著科技的進(jìn)步,傳統(tǒng)的手動(dòng)焊接方法逐漸被更為先進(jìn)和精確的自動(dòng)化焊接技術(shù)所取代,在現(xiàn)代焊接自動(dòng)化領(lǐng)域,激光焊縫跟蹤器作為一種高效精準(zhǔn)的焊接輔助工具,正受到越來越多企業(yè)的青睞。今天跟隨創(chuàng)想智控深入
    的頭像 發(fā)表于 11-26 15:48 ?164次閱讀
    深入解析激光焊縫<b class='flag-5'>跟蹤器</b>的工作原理與應(yīng)用優(yōu)勢

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

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

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

    電子發(fā)燒友網(wǎng)站提供《使用TMS320C40 DSP實(shí)現(xiàn)單脈沖雷達(dá)的數(shù)字跟蹤器.pdf》資料免費(fèi)下載
    發(fā)表于 10-28 10:04 ?0次下載
    使用TMS320C40 DSP實(shí)現(xiàn)單脈沖雷達(dá)的數(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èi)下載
    發(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é)同專機(jī)在風(fēng)機(jī)高精度自動(dòng)焊接的應(yīng)用

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

    光學(xué)跟蹤器接口連接方法有哪些

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

    光學(xué)跟蹤器信號源手機(jī)怎么設(shè)置

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

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

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

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

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

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

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

    stm32f100怎樣用重映射功能?

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

    Genius Tracker? 安裝速度遠(yuǎn)超競爭對手的單軸跟蹤器

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

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

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