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

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

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

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

454398 ? 來(lái)源:工程師吳畏 ? 2019-08-02 11:42 ? 次閱讀

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

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

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

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

對(duì)于出現(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ò)攝像頭識(shí)別面部的面部跟蹤器程序的示例圖像。

處理指令

在處理方面,本指南將要求使用草圖,該草圖將從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,請(qǐng)按照下圖中的位置。

查看我們的文章詳細(xì)說(shuō)明如何通過(guò)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中使用人臉檢測(cè)

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

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

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

將輸出類(lèi)型指定為“all continuous”

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

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

了解更多信息在安裝和使用Wekinator程序時(shí),請(qǐng)查看我們的如何開(kāi)始使用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ī)記錄一些測(cè)試。將分類(lèi)器輸出值指定為“1”。您還需要記錄此移動(dòng)的簡(jiǎn)短示例。

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

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

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

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

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

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

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

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

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

    關(guān)注

    142

    文章

    8842

    瀏覽量

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

    關(guān)注

    0

    文章

    5

    瀏覽量

    10254
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    高抗噪性 電壓跟蹤器

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

    卡巴斯基稱(chēng)谷歌網(wǎng)絡(luò)跟蹤器活躍量全球第一

    卡巴斯基最新發(fā)布的2024年度網(wǎng)絡(luò)追蹤報(bào)告顯示,谷歌公司的網(wǎng)絡(luò)跟蹤器在全球范圍內(nèi)的活躍量穩(wěn)居榜首,這一現(xiàn)象再次引發(fā)了公眾對(duì)在線隱私保護(hù)的關(guān)注。
    的頭像 發(fā)表于 09-27 14:51 ?276次閱讀

    邏輯和翻譯例優(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é)同專(zhuān)機(jī)在風(fēng)機(jī)高精度自動(dòng)焊接的應(yīng)用

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

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

    光學(xué)跟蹤器是一種用于測(cè)量和跟蹤物體位置和運(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 ?521次閱讀

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

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

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

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

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

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

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

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

    stm32f100怎樣用重映射功能?

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

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

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

    Wi-SUN 可最大限度地提高太陽(yáng)能跟蹤器的性能

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

    什么是電壓跟蹤器?

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

    怎樣用ADAU1761設(shè)計(jì)DRC的壓縮/擴(kuò)展?

    請(qǐng)問(wèn)怎樣用ADAU1761設(shè)計(jì)DRC的壓縮/擴(kuò)展。我在SigmaStudio 4.5的模塊中只找到RMS。如果ADAU1761設(shè)計(jì)DRC要怎樣
    發(fā)表于 11-28 06:41

    怎樣用32單片機(jī)測(cè)電壓?

    怎樣用32單片機(jī)測(cè)電壓
    發(fā)表于 10-31 07:09