91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

通過(guò)機(jī)器學(xué)習(xí)檢測(cè)葉子顏色并對(duì)其健康狀態(tài)作出判斷

電子森林 ? 來(lái)源:Aduino Project Hub ? 作者:Arduino “having11” ? 2021-04-01 10:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前提

就像人類(lèi)一樣,植物也可能染病,比如植物的葉子可能會(huì)因真菌或其他病原體而發(fā)黃或出現(xiàn)斑點(diǎn)。因此,通過(guò)機(jī)器學(xué)習(xí)的力量,可以掃描顏色,然后將其用于訓(xùn)練一個(gè)模型,該模型可以檢測(cè)葉子的顏色并對(duì)其健康狀態(tài)作出判斷。

硬件

這個(gè)項(xiàng)目主要用Arduino Nano 33 BLE Sense,它之所以被選中主要是它具有一組功能強(qiáng)大的傳感器,包括9DoF IMU,APDS-9960(顏色,手勢(shì),接近度和亮度),麥克風(fēng)以及溫度/濕度/壓力傳感器組合。為了使電路板圍繞植物的葉子移動(dòng)并進(jìn)行測(cè)量,將一對(duì)步進(jìn)電機(jī)與一對(duì)DRV8825驅(qū)動(dòng)器板配合使用。

設(shè)置TinyML

對(duì)于此項(xiàng)目,列出的針對(duì)Arduino Nano 33 BLE Sense on Edge Impulse的內(nèi)置傳感器將不起作用,這意味著將我們必須使用data forwarder而不是serial daemon。

首先,創(chuàng)建一個(gè)新項(xiàng)目并將其命名。接下來(lái)需要通過(guò)Node.js以及NPM來(lái)安裝EdgeImpulse CLI。然后運(yùn)行:

npm install -g edge-impulse-cli

如果找不到安裝路徑,則可能需要將其安裝路徑添加到PATH環(huán)境變量中。接下來(lái),運(yùn)行

edge-impulse-data-forwarder

并確保其有效,然后按Ctrl + C退出。

d97068ba-9245-11eb-8b86-12bb97331649.jpg

顏色識(shí)別

APDS-9960的工作原理是:通過(guò)物體表面所反射的光線波長(zhǎng)來(lái)讀取顏色。為了與傳感器通信,最好安裝Arduino APDS9960庫(kù),該庫(kù)可以訪問(wèn)一些有用的功能。

在代碼中,首先初始化APDS-9960,然后程序進(jìn)入循環(huán)功能,等待直到有顏色數(shù)據(jù)出現(xiàn)。如果有讀數(shù),則使用

APDS.readColor()

以及與表面的接近程度來(lái)讀取顏色。每個(gè)RGB分量都從0-2 ^ 16-1數(shù)轉(zhuǎn)換為其值與總和的比率。

掃描儀

掃描葉子的顏色是通過(guò)在兩個(gè)軸上移動(dòng)裝備以使葉子在車(chē)載APDS-9960下方經(jīng)過(guò)的各個(gè)位置進(jìn)行的。通過(guò)沿順時(shí)針或逆時(shí)針?lè)较蛐D(zhuǎn)絲杠來(lái)移動(dòng)每個(gè)軸,以使程序段沿任一方向平移。整個(gè)系統(tǒng)是在Fusion 360中設(shè)計(jì)的,下面是這些設(shè)計(jì)的一些渲染圖:

X軸位于Y軸的頂部,從而使頂部程序段在兩個(gè)軸上移動(dòng)。Y軸上有一個(gè)附加的V輪,以支撐步進(jìn)電機(jī)的重量。零件是使用PLA打印的,填充量約為45%。

收集數(shù)據(jù)

當(dāng)系統(tǒng)首次啟動(dòng)時(shí),步進(jìn)電機(jī)是不知道它的初始位置的,因此我們必須進(jìn)行原點(diǎn)復(fù)位,(可通過(guò)限位開(kāi)關(guān)實(shí)現(xiàn))。接下來(lái)初始化APDS-9960。有一個(gè)定義為兩個(gè)元素的數(shù)組的邊界框,它們包含一個(gè)框的相對(duì)角。在這兩個(gè)位置之間選擇一個(gè)隨機(jī)點(diǎn),然后將步進(jìn)器運(yùn)行到該位置,同時(shí)讀取它們之間的顏色。

處理和發(fā)送顏色信息

如前所述,使用

APDS.readColor()

來(lái)讀取顏色。計(jì)算總和后,將計(jì)算百分比,然后通過(guò)調(diào)用

Serial.printf()

的方法通過(guò)USB發(fā)送百分比。值用逗號(hào)分隔,每個(gè)讀數(shù)用換行符分隔。數(shù)據(jù)轉(zhuǎn)發(fā)器程序接收到數(shù)據(jù)后,會(huì)將其作為帶有給定標(biāo)簽(健康或不健康)的訓(xùn)練數(shù)據(jù)發(fā)送到Edge Impulse云端。

訓(xùn)練模型

收集完所有訓(xùn)練數(shù)據(jù)后,就該建立一個(gè)可以區(qū)分健康葉子和不健康葉子的模型了。我使用了由三軸時(shí)間序列,頻譜分析模塊和Keras模塊組成的脈沖。查看以下屏幕截圖可以了解我如何從數(shù)據(jù)中生成這些功能:

測(cè)驗(yàn)

為了測(cè)試新模型,這次我收集了一些新的測(cè)試數(shù)據(jù),這是不健康的。該模型的準(zhǔn)確性約為63%,并且在通過(guò)一些測(cè)試功能后,能夠在大多數(shù)時(shí)間正確地對(duì)葉子進(jìn)行分類(lèi)。

可以通過(guò)添加更多訓(xùn)練數(shù)據(jù)并減慢訓(xùn)練速度來(lái)提高此準(zhǔn)確性。

代碼

#include 《Arduino_APDS9960.h》#include 《AccelStepper.h》#include 《MultiStepper.h》#include “pinDefs.h” int r, g, b, c, p;

float sum;

AccelStepper xStepper(AccelStepper::DRIVER, STEPPER_1_STEP, STEPPER_1_DIR);

AccelStepper yStepper(AccelStepper::DRIVER, STEPPER_2_STEP, STEPPER_2_DIR);

MultiStepper steppers;// a random location will be chosen within the bounding box

const long boundingBox[2][2] = { {0,0}, {40,40}};

void setup(){ Serial.begin(115200); while(!Serial);

if(!APDS.begin()) { Serial.println(“Could not init APDS9960”); while(1); }

pinMode(X_AXIS_HOMING_SW, INPUT_PULLUP); pinMode(Y_AXIS_HOMING_SW, INPUT_PULLUP); //Serial.println(digitalRead(X_AXIS_HOMING_SW) + digitalRead(Y_AXIS_HOMING_SW)); xStepper.setPinsInverted(X_AXIS_DIR); yStepper.setPinsInverted(Y_AXIS_DIR); xStepper.setMaxSpeed(150); yStepper.setMaxSpeed(150); steppers.addStepper(xStepper); steppers.addStepper(yStepper); homeMotors();}

void loop(){ long randomPos[2]; randomPos[0] = random(boundingBox[0][0], boundingBox[1][0]) * STEPS_PER_MM; randomPos[1] = random(boundingBox[0][1], boundingBox[1][1]) * STEPS_PER_MM; steppers.moveTo(randomPos);

while(steppers.run()) { if(!APDS.colorAvailable() || !APDS.proximityAvailable()){} else { APDS.readColor(r, g, b, c); sum = r + g + b; p = APDS.readProximity();

if(!p && c 》 10 && sum 》= 0) { float rr = r / sum, gr = g / sum, br = b / sum; Serial.printf(“%1.3f,%1.3f,%1.3f

”, rr, gr, br); } } }}

void homeMotors(){ // home x //Serial.println(“Now homing x”); while(digitalRead(X_AXIS_HOMING_SW))

xStepper.move(-1);

// home y //Serial.println(“Now homing y”); while(digitalRead(Y_AXIS_HOMING_SW)) yStepper.move(-1); xStepper.setCurrentPosition(0); yStepper.setCurrentPosition(0);}

原理圖

dae9a12a-9245-11eb-8b86-12bb97331649.png

原文標(biāo)題:Arduino使用TinyML掃描植物的葉子確定植物的健康

文章出處:【微信公眾號(hào):FPGA入門(mén)到精通】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(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)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2576

    文章

    55047

    瀏覽量

    791394
  • 驅(qū)動(dòng)器
    +關(guān)注

    關(guān)注

    54

    文章

    9083

    瀏覽量

    155574
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8553

    瀏覽量

    136964

原文標(biāo)題:Arduino使用TinyML掃描植物的葉子確定植物的健康

文章出處:【微信號(hào):xiaojiaoyafpga,微信公眾號(hào):電子森林】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    穿孔機(jī)頂頭檢測(cè)機(jī)器視覺(jué)深度學(xué)習(xí)

    頂頭狀態(tài)。 檢測(cè)頂頭算法 引入人工智深度學(xué)習(xí)技術(shù),通過(guò)Keras實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)(CNN),用Numpy實(shí)現(xiàn)采集數(shù)據(jù)的訓(xùn)練,得到符合現(xiàn)場(chǎng)需求的模型,進(jìn)一步提升
    發(fā)表于 12-22 14:33

    如何通過(guò)性能表現(xiàn)判斷備用電池是否需要更換?

    判定,以下是詳細(xì)方法和標(biāo)準(zhǔn): 一、放電續(xù)航能力測(cè)試:核心判定指標(biāo) 電池的續(xù)航時(shí)長(zhǎng)是容量衰減的直接體現(xiàn),也是判斷是否更換的關(guān)鍵依據(jù),操作和判定標(biāo)準(zhǔn)如下: 測(cè)試流程 確保電池處于 滿電浮充狀態(tài)
    的頭像 發(fā)表于 12-10 11:19 ?965次閱讀
    如何<b class='flag-5'>通過(guò)</b>性能表現(xiàn)<b class='flag-5'>判斷</b>備用電池是否需要更換?

    如何判斷備用電池是否需要更換?

    參數(shù)判定:量化評(píng)估電池健康狀態(tài)通過(guò)裝置本地屏、Web 界面或萬(wàn)用表獲取電池關(guān)鍵參數(shù),對(duì)比以下閾值判斷是否需更換: 電池類(lèi)型 核心監(jiān)測(cè)參數(shù) 健康
    的頭像 發(fā)表于 12-10 11:17 ?541次閱讀
    如何<b class='flag-5'>判斷</b>備用電池是否需要更換?

    如何深度學(xué)習(xí)機(jī)器視覺(jué)的應(yīng)用場(chǎng)景

    深度學(xué)習(xí)視覺(jué)應(yīng)用場(chǎng)景大全 工業(yè)制造領(lǐng)域 復(fù)雜缺陷檢測(cè):處理傳統(tǒng)算法難以描述的非標(biāo)準(zhǔn)化缺陷模式 非標(biāo)產(chǎn)品分類(lèi):對(duì)形狀、顏色、紋理多變的產(chǎn)品進(jìn)行智能分類(lèi) 外觀質(zhì)量評(píng)估:基于學(xué)習(xí)的外觀質(zhì)量標(biāo)
    的頭像 發(fā)表于 11-27 10:19 ?223次閱讀

    設(shè)備的狀態(tài)監(jiān)測(cè)可以通過(guò)哪些方式實(shí)現(xiàn)?

    設(shè)備狀態(tài)監(jiān)測(cè)的核心是 通過(guò) “硬件傳感 + 軟件自檢 + 通信反饋 + 遠(yuǎn)程聯(lián)動(dòng)”,實(shí)現(xiàn)對(duì)設(shè)備 “健康狀態(tài)、運(yùn)行狀態(tài)、安全
    的頭像 發(fā)表于 11-07 09:44 ?910次閱讀

    基于FPGA的膚色檢測(cè)方案簡(jiǎn)介

    ,絕大多數(shù)人的膚色分量位于這個(gè)區(qū)間中?;诖耍梢?b class='flag-5'>通過(guò)判斷圖像中像素點(diǎn)的Cb和Cr分量,從而判斷是否存在人臉以及人臉位置。當(dāng)然,這種檢測(cè)方法十分容易出現(xiàn)誤差,只要
    發(fā)表于 10-28 07:07

    如何判斷諧波檢測(cè)設(shè)備的環(huán)境干擾強(qiáng)度?

    判斷諧波檢測(cè)設(shè)備的環(huán)境干擾強(qiáng)度,需結(jié)合 “定性場(chǎng)景識(shí)別 + 定量工具測(cè)量 + 設(shè)備狀態(tài)反饋”,從 “是否有干擾源、干擾強(qiáng)度數(shù)值、干擾對(duì)設(shè)備的影響” 三個(gè)維度綜合判斷,核心是區(qū)分 “弱干
    的頭像 發(fā)表于 10-13 17:26 ?798次閱讀

    “芯”助力健康監(jiān)測(cè):新潔能NCE6050A如何點(diǎn)亮血壓檢測(cè)儀的精準(zhǔn)信號(hào)

    在當(dāng)今數(shù)字化醫(yī)療蓬勃發(fā)展的時(shí)代,精準(zhǔn)的健康監(jiān)測(cè)設(shè)備成為守護(hù)人們健康的堅(jiān)實(shí)防線。而血壓檢測(cè)儀作為其中的關(guān)鍵一環(huán),精準(zhǔn)度直接關(guān)系到人們對(duì)自身健康
    的頭像 發(fā)表于 10-10 16:56 ?790次閱讀
    “芯”助力<b class='flag-5'>健康</b>監(jiān)測(cè):新潔能NCE6050A如何點(diǎn)亮血壓<b class='flag-5'>檢測(cè)</b>儀的精準(zhǔn)信號(hào)

    機(jī)器視覺(jué)檢測(cè)PIN針

    物理?yè)p傷)必須進(jìn)行極其精密的測(cè)量與核查。以往依賴(lài)人眼的檢測(cè)方式存在明顯短板:不僅作業(yè)速度慢、受人員狀態(tài)影響大(易疲勞導(dǎo)致誤判),而且在面對(duì)日益嚴(yán)苛的微米級(jí)精度標(biāo)準(zhǔn)時(shí)顯得力不從心。相比之下,基于機(jī)器視覺(jué)
    發(fā)表于 09-26 15:09

    如何通過(guò)日常數(shù)據(jù)判斷電源紋波是否超標(biāo)?

    可觀測(cè)的異常表現(xiàn)。結(jié)合日??色@取的數(shù)據(jù)(如設(shè)備運(yùn)行狀態(tài)、簡(jiǎn)單監(jiān)測(cè)值、故障日志),可通過(guò)以下 4 個(gè)維度間接判斷,覆蓋工業(yè)、消費(fèi)電子等常見(jiàn)場(chǎng)景: 一、通過(guò) “設(shè)備運(yùn)行
    的頭像 發(fā)表于 09-23 11:06 ?1103次閱讀
    如何<b class='flag-5'>通過(guò)</b>日常數(shù)據(jù)<b class='flag-5'>判斷</b>電源紋波是否超標(biāo)?

    如何在機(jī)器視覺(jué)中部署深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

    圖 1:基于深度學(xué)習(xí)的目標(biāo)檢測(cè)可定位已訓(xùn)練的目標(biāo)類(lèi)別,通過(guò)矩形框(邊界框)對(duì)進(jìn)行標(biāo)識(shí)。 在討論人工智能(AI)或深度
    的頭像 發(fā)表于 09-10 17:38 ?902次閱讀
    如何在<b class='flag-5'>機(jī)器</b>視覺(jué)中部署深度<b class='flag-5'>學(xué)習(xí)</b>神經(jīng)網(wǎng)絡(luò)

    機(jī)器學(xué)習(xí)異常檢測(cè)實(shí)戰(zhàn):用Isolation Forest快速構(gòu)建無(wú)標(biāo)簽異常檢測(cè)系統(tǒng)

    本文轉(zhuǎn)自:DeepHubIMBA無(wú)監(jiān)督異常檢測(cè)作為機(jī)器學(xué)習(xí)領(lǐng)域的重要分支,專(zhuān)門(mén)用于在缺乏標(biāo)記數(shù)據(jù)的環(huán)境中識(shí)別異常事件。本文深入探討異常檢測(cè)技術(shù)的理論基礎(chǔ)與實(shí)踐應(yīng)用,
    的頭像 發(fā)表于 06-24 11:40 ?1417次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>異常<b class='flag-5'>檢測(cè)</b>實(shí)戰(zhàn):用Isolation Forest快速構(gòu)建無(wú)標(biāo)簽異常<b class='flag-5'>檢測(cè)</b>系統(tǒng)

    精準(zhǔn)監(jiān)測(cè),健康無(wú)憂--XC3576H工控主板賦能亞健康檢測(cè)

    健康風(fēng)險(xiǎn)。核心功能包括:1.生理指標(biāo)監(jiān)測(cè):通過(guò)生物電、光學(xué)傳感器等技術(shù),檢測(cè)心率、血氧、血壓、血糖趨勢(shì)等關(guān)鍵指標(biāo),無(wú)需抽血即可獲取身體數(shù)據(jù)。2.疲勞度
    的頭像 發(fā)表于 05-28 17:56 ?580次閱讀
    精準(zhǔn)監(jiān)測(cè),<b class='flag-5'>健康</b>無(wú)憂--XC3576H工控主板賦能亞<b class='flag-5'>健康</b><b class='flag-5'>檢測(cè)</b>儀

    【「# ROS 2智能機(jī)器人開(kāi)發(fā)實(shí)踐」閱讀體驗(yàn)】視覺(jué)實(shí)現(xiàn)的基礎(chǔ)算法的應(yīng)用

    : 一、機(jī)器人視覺(jué):從理論到實(shí)踐 第7章詳細(xì)介紹了ROS2在機(jī)器視覺(jué)領(lǐng)域的應(yīng)用,涵蓋了相機(jī)標(biāo)定、OpenCV集成、視覺(jué)巡線、二維碼識(shí)別以及深度學(xué)習(xí)目標(biāo)檢測(cè)等內(nèi)容。
    發(fā)表于 05-03 19:41

    如何檢測(cè)電機(jī)的好壞?

    檢測(cè)電機(jī)的好壞可以通過(guò)多種方法綜合判斷,以下是一些常用的檢測(cè)方法: ? 一、外觀檢查 首先,通過(guò)觀察電機(jī)的外觀,可以初步
    的頭像 發(fā)表于 04-23 17:23 ?6824次閱讀