RM新时代网站-首页

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

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

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

ESP32眼動(dòng)追蹤設(shè)計(jì)實(shí)現(xiàn)-EyeTrackVR

云深之無跡 ? 來源:云深之無跡 ? 2024-03-07 11:02 ? 次閱讀

眼動(dòng)應(yīng)用其實(shí)實(shí)現(xiàn)的主要功能是:實(shí)時(shí)注視估計(jì)和跟蹤。注視估計(jì)是識(shí)別任何給定時(shí)刻的視線,而跟蹤是連續(xù)跟隨視線的能力。

這個(gè)眼動(dòng)儀是研究性質(zhì)的,不建議,也不適合投入生產(chǎn)實(shí)踐。文章中諸多細(xì)節(jié)也未給出,硬件改裝也未給出。安全性和合規(guī)性也未給出,有復(fù)現(xiàn)的,研究的,注意相關(guān)文件的補(bǔ)充。

ESP32-CAM是采集眼動(dòng)數(shù)據(jù)的,接著通過串口或者網(wǎng)絡(luò)把這個(gè)數(shù)據(jù)傳到電腦里面,這個(gè)時(shí)候有一個(gè)Python后端在運(yùn)行,把視頻流解碼,然后使用一個(gè)上位機(jī)來控制這個(gè)后端。

這個(gè)東西只要25

傳輸上面,一個(gè)是無線的2.4G

f2ce56b0-dc2e-11ee-a297-92fbcf53809c.png

測試

一個(gè)有線的-看上去是USB,其實(shí)是串口,比特率高的不行(30W)

f2f662cc-dc2e-11ee-a297-92fbcf53809c.png

這里我就放了seeed的板子

首先項(xiàng)目第一步要跑起來這個(gè)后端:

f3100100-dc2e-11ee-a297-92fbcf53809c.png

安裝windows的包管理

> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
> Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression

f320dfde-dc2e-11ee-a297-92fbcf53809c.png

成功

scoop install pipx
pipx ensurepath

f333d22e-dc2e-11ee-a297-92fbcf53809c.png

接著安裝pipx

pipx install poetry

這個(gè)代碼在運(yùn)行的時(shí)候不可以翻墻,我這里是手機(jī)熱點(diǎn)安裝成功。

pipx ensurepath

自動(dòng)加路徑

f348fbb8-dc2e-11ee-a297-92fbcf53809c.png

poetry install --no-root

f35c4f7e-dc2e-11ee-a297-92fbcf53809c.png

最后在包下面安裝所有的依賴

f3718e70-dc2e-11ee-a297-92fbcf53809c.png

需要注意要使用高版本的解釋器

f380a662-dc2e-11ee-a297-92fbcf53809c.png

這里會(huì)出現(xiàn)很多吃這個(gè)問題

f396c460-dc2e-11ee-a297-92fbcf53809c.png

我們只要把上面的包重新卸載安裝就好

f3af0ed0-dc2e-11ee-a297-92fbcf53809c.png

這個(gè)是所有的后端需要的庫

f3de5848-dc2e-11ee-a297-92fbcf53809c.png

完成后,直接開啟

f3f705e6-dc2e-11ee-a297-92fbcf53809c.png

會(huì)有一個(gè)集成的API列表出現(xiàn)

f47cc0c8-dc2e-11ee-a297-92fbcf53809c.png

這個(gè)API寫了什么呢?

這段JSON描述了一個(gè)跟蹤系統(tǒng)的配置,關(guān)鍵組件的簡要說明:

Enabled: 指示跟蹤系統(tǒng)當(dāng)前是否啟用。在這里,設(shè)置為false,表示已禁用。

Algorithm: 描述了跟蹤系統(tǒng)使用的算法。

以下是按順序列出的算法:

每種算法可能具有特定的參數(shù)和配置。

LEAP

BLOB

HSRAC

RANSAC

HSF

Camera: 描述了與捕獲輸入有關(guān)的參數(shù):

Capture Source: 當(dāng)前為空,這意味著此處未指定。

Rotation: 指定捕獲圖像的旋轉(zhuǎn)。

Threshold: 相機(jī)操作的閾值。

Focal Length: 相機(jī)鏡頭的焦距。

Flip X/Y Axis: 指示是否沿著X或Y軸翻轉(zhuǎn)圖像的標(biāo)志。

Region of Interest (ROI): 指定捕獲圖像中感興趣的區(qū)域,由其X、Y坐標(biāo)、寬度和高度定義。

細(xì)節(jié)什么的,以后再寫,現(xiàn)在看固件,使用platformio開發(fā)

f4906330-dc2e-11ee-a297-92fbcf53809c.png

默認(rèn)固件就是最便宜的開發(fā)板

f4a47d98-dc2e-11ee-a297-92fbcf53809c.png

使用USB的話可以直接切換工程

f4bea5ec-dc2e-11ee-a297-92fbcf53809c.png

這些是需要的所有庫,會(huì)自動(dòng)安裝

f4e0730c-dc2e-11ee-a297-92fbcf53809c.png

這個(gè)USB其實(shí)就是串口轉(zhuǎn)USB,為了速度,30W的比特率

f4f62436-dc2e-11ee-a297-92fbcf53809c.png

這個(gè)是相機(jī)的數(shù)據(jù)

fb = esp_camera_fb_get(); // 從相機(jī)獲取幀緩沖區(qū)
    if (fb) 
    {
      len = fb->len; // 獲取幀的長度
      buf = fb->buf; // 獲取幀的數(shù)據(jù)
    } 
    else 
    {
      log_e("Camera capture failed with response: %s", esp_err_to_name(err)); // 如果獲取幀失敗,則記錄錯(cuò)誤信息
      err = ESP_FAIL; // 設(shè)置錯(cuò)誤碼
    }

這個(gè)是一幀數(shù)據(jù)的樣子

f5097a5e-dc2e-11ee-a297-92fbcf53809c.png

這段代碼的作用是循環(huán)地從攝像頭捕獲幀并將其傳輸?shù)酱?a target="_blank">端口。如果捕獲幀失敗,則會(huì)記錄錯(cuò)誤信息并繼續(xù)循環(huán)。在每次傳輸之后,會(huì)計(jì)算延遲并記錄幀大小和延遲信息。

f5c4f32e-dc2e-11ee-a297-92fbcf53809c.png

代碼進(jìn)行了解耦,就三部分,恒流源的LED和相機(jī)以及串口

f62533f6-dc2e-11ee-a297-92fbcf53809c.png

這個(gè)是代碼的循環(huán)

該函數(shù)的作用是不斷循環(huán)監(jiān)聽串口通信。如果串口可用,它將嘗試解析接收到的 JSON 命令,并將其傳遞給命令管理器進(jìn)行處理。如果串口不可用(可能因?yàn)檎谑褂肬SB接口),則會(huì)調(diào)用 send_frame() 函數(shù)發(fā)送攝像頭幀。

f6362274-dc2e-11ee-a297-92fbcf53809c.png

串口

函數(shù) SerialManager::run(): 不斷循環(huán)監(jiān)聽串行端口上是否有數(shù)據(jù)可用。如果有數(shù)據(jù)可用,則讀取并解析 JSON 命令,然后交給 CommandManager 處理。

f6550766-dc2e-11ee-a297-92fbcf53809c.png

這個(gè)代碼有趣

f668aeb0-dc2e-11ee-a297-92fbcf53809c.png

把代碼的頭對比好,來控制機(jī)器

f67f3b12-dc2e-11ee-a297-92fbcf53809c.png

初始化眼動(dòng)跟蹤器的網(wǎng)絡(luò)相關(guān)功能(如果未啟用 USB API)

看代碼,串口沒有控制功能,單純的輸出圖像數(shù)據(jù)。

f6991456-dc2e-11ee-a297-92fbcf53809c.png

測試可以到70FPS,這個(gè)數(shù)據(jù)有點(diǎn)假

f6a781a8-dc2e-11ee-a297-92fbcf53809c.png

后端開啟,再打開追蹤的GUI

f6c1115e-dc2e-11ee-a297-92fbcf53809c.png

連接

f6d6f532-dc2e-11ee-a297-92fbcf53809c.png

這個(gè)是我的攝像頭太垃圾了,沒有調(diào)焦

f6f3d986-dc2e-11ee-a297-92fbcf53809c.png

開始捕獲了

f714760a-dc2e-11ee-a297-92fbcf53809c.png

追蹤中

這個(gè)上位機(jī)的代碼呢,也可以自己開發(fā):

f72f90f2-dc2e-11ee-a297-92fbcf53809c.png

第一步在這里改成小寫以免打包失?。ㄒ欢ǜ模?/p>

f74599a6-dc2e-11ee-a297-92fbcf53809c.png

記住進(jìn)這個(gè)地方,不然讀取不到打包文件

poetry run pyinstaller eyetrackapp.spec

f7623e76-dc2e-11ee-a297-92fbcf53809c.png

在dist里面找到exe啟動(dòng)

f779cda2-dc2e-11ee-a297-92fbcf53809c.png

最新的更新有了新算法

f794b086-dc2e-11ee-a297-92fbcf53809c.png

ONNX是一個(gè)開放式的規(guī)范,定義了可擴(kuò)展的計(jì)算圖模型、標(biāo)準(zhǔn)數(shù)據(jù)類型以及內(nèi)置的運(yùn)算符。該文件在存儲(chǔ)結(jié)構(gòu)上可以理解為是一種層級(jí)的結(jié)構(gòu)。

f7a5aa8a-dc2e-11ee-a297-92fbcf53809c.png

最新的代碼還是加入了神經(jīng)網(wǎng)絡(luò)

可能對于大多數(shù)人來講,這些東西太過于復(fù)雜。但是沒辦法,就這么個(gè)情況,很多人倒是需要這個(gè)眼動(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)投訴
  • CAM
    CAM
    +關(guān)注

    關(guān)注

    5

    文章

    200

    瀏覽量

    42970
  • 上位機(jī)
    +關(guān)注

    關(guān)注

    27

    文章

    941

    瀏覽量

    54790
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4792

    瀏覽量

    84627
  • 串口轉(zhuǎn)USB
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    1996
  • ESP32
    +關(guān)注

    關(guān)注

    18

    文章

    971

    瀏覽量

    17201

原文標(biāo)題:ESP32眼動(dòng)追蹤實(shí)現(xiàn)-EyeTrackVR

文章出處:【微信號(hào):TT1827652464,微信公眾號(hào):云深之無跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用ESP32實(shí)現(xiàn)藍(lán)牙通信

    上次給大家分享了如何使用ESP32實(shí)現(xiàn)UDP通信,今天跟大家聊聊如何使用ESP32實(shí)現(xiàn)藍(lán)牙通信。
    發(fā)表于 11-21 09:31 ?1.5w次閱讀

    動(dòng)追蹤能提供全新人機(jī)互動(dòng)體驗(yàn)

    強(qiáng)大的電腦芯片、高效的紅外LED以及新型的攝像傳感器,讓先前復(fù)雜的動(dòng)追蹤系統(tǒng)如今能夠適應(yīng)消費(fèi)類電子應(yīng)用的各種需要。借助這些系統(tǒng),電子設(shè)備可以檢測用戶的眼球運(yùn)動(dòng),從而識(shí)別用戶的下一步意圖。結(jié)合現(xiàn)有的輸入方法,
    發(fā)表于 05-18 08:30

    什么是動(dòng)追蹤動(dòng)追蹤如何運(yùn)作?

    什么是動(dòng)追蹤?動(dòng)追蹤如何運(yùn)作?
    發(fā)表于 06-17 06:11

    榮耀magic或出集成動(dòng)追蹤功能

    華為日前發(fā)布了集成動(dòng)追蹤功能的全新榮耀Magic智能手機(jī)。榮耀Magic是Tobii技術(shù)的首款智能手機(jī)集成,使用了基于用戶臨在感和注意力的功能,是Tobii完整
    發(fā)表于 12-19 10:57 ?993次閱讀

    微軟Windows 10將內(nèi)置動(dòng)追蹤技術(shù) 到底什么是動(dòng)追蹤技術(shù)?

    據(jù)外媒報(bào)道,微軟將為Windows 10預(yù)置動(dòng)追蹤功能——Eye Control,這個(gè)功能可以讓用戶使用眼睛就可以完成電腦操作。
    發(fā)表于 08-02 16:05 ?2775次閱讀

    實(shí)現(xiàn)動(dòng)追蹤,索尼有MEMS這個(gè)高招

    索尼專利顯示,未來PSVR或可以通過多個(gè)MEMS(微電子機(jī)械系統(tǒng))投影器來實(shí)現(xiàn)追蹤功能。這個(gè)專利對PSVR的追蹤性能無疑是一個(gè)提升,但索尼目前暫時(shí)沒有披露相關(guān)的計(jì)劃。本文是MEMS在
    發(fā)表于 11-22 11:26 ?0次下載

    用MEMS實(shí)現(xiàn)動(dòng)追蹤

    索尼專利顯示,未來PSVR或可以通過多個(gè)MEMS(微電子機(jī)械系統(tǒng))投影器來實(shí)現(xiàn)追蹤功能。這個(gè)專利對PSVR的追蹤性能無疑是一個(gè)提升,但索尼目前暫時(shí)沒有披露相關(guān)的計(jì)劃。本文是MEMS在
    發(fā)表于 06-12 10:18 ?3485次閱讀

    Oculus獲新專利 能實(shí)現(xiàn)更精確的動(dòng)追蹤功能

    Oculus公司獲得了一項(xiàng)動(dòng)追蹤技術(shù)新專利,他們或?qū)⒃陬^顯上安裝光場攝像頭,從而實(shí)現(xiàn)更精確的動(dòng)
    發(fā)表于 11-12 11:18 ?1585次閱讀

    HTC新推兩款VR設(shè)備 動(dòng)追蹤引領(lǐng)VR未來

    Vive Pro Eye增加了動(dòng)追蹤技術(shù),以實(shí)現(xiàn)更好的社交VR和基于gazed的UI,但更重要的是它可以實(shí)現(xiàn)foveated渲染。
    的頭像 發(fā)表于 01-22 17:11 ?3344次閱讀

    動(dòng)追蹤集成的眼鏡,可將數(shù)據(jù)帶入任何場景

    BIOPAC Systems, Inc.宣布了一項(xiàng)適用于研究人員的動(dòng)追蹤集成新方案,讓這些研究人員能從不同位置的移動(dòng)參與者進(jìn)行實(shí)驗(yàn)。ETVision (EYE-ETV)
    發(fā)表于 07-16 11:22 ?1563次閱讀

    動(dòng)追蹤技術(shù)初顯潛力 落地還需硬件推廣

    展現(xiàn)并不意味著場景落地。如何將動(dòng)追蹤場景應(yīng)用在當(dāng)前MR眼鏡方面,還需要結(jié)合眼鏡產(chǎn)品進(jìn)行推廣,這樣才能成功實(shí)現(xiàn)落地。 AR元年來臨,
    的頭像 發(fā)表于 10-14 16:34 ?2374次閱讀

    ESP32系列芯片的規(guī)格

    ESP32是一款2.4GHz Wi-Fi和藍(lán)牙組合芯片,采用TSMC超低功耗40nm設(shè)計(jì)技術(shù)它旨在實(shí)現(xiàn)最佳功率和射頻性能,顯示出魯棒性、多功能性和靈活性在各種應(yīng)用和電源場景中的可靠性。ESP32系列芯片包括
    發(fā)表于 04-25 16:21 ?7次下載

    動(dòng)追蹤中的坐標(biāo)+追蹤原理

    所有注視數(shù)據(jù)都映射到與活動(dòng)顯示區(qū)域?qū)R的 2D 坐標(biāo)系中。將動(dòng)儀與監(jiān)視器一起使用時(shí),活動(dòng)顯示區(qū)域是不包括監(jiān)視器框架的顯示區(qū)域。對于在沒有顯示器的情況下使用的動(dòng)儀,活動(dòng)顯示區(qū)域是在對
    的頭像 發(fā)表于 09-26 11:17 ?1706次閱讀

    使用ESP32實(shí)現(xiàn)UDP通信的方法

    前面給大家分享了ESP32使用miropython編程環(huán)境搭建,今天給大家分享如何使用ESP32實(shí)現(xiàn)UDP通信。
    的頭像 發(fā)表于 11-14 10:21 ?6326次閱讀

    網(wǎng)絡(luò)攝像頭式動(dòng)追蹤則的優(yōu)勢

    ? 紅外線的力量 ? ? ? 典型的動(dòng)儀是專門為了在任何光線條件下捕捉眼球運(yùn)動(dòng)所設(shè)計(jì)與優(yōu)化的相機(jī)硬件, 并可補(bǔ)償因頭部移動(dòng)和各種眼部生理差異所造成的誤差 網(wǎng)絡(luò)攝像頭式動(dòng)
    的頭像 發(fā)表于 11-03 12:03 ?1070次閱讀
    RM新时代网站-首页