99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

通過機器學習檢測葉子顏色并對其健康狀態(tài)作出判斷

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

掃碼添加小助手

加入工程師交流群

前提

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

硬件

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

設(shè)置TinyML

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

首先,創(chuàng)建一個新項目并將其命名。接下來需要通過Node.js以及NPM來安裝EdgeImpulse CLI。然后運行:

npm install -g edge-impulse-cli

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

edge-impulse-data-forwarder

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

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

顏色識別

APDS-9960的工作原理是:通過物體表面所反射的光線波長來讀取顏色。為了與傳感器通信,最好安裝Arduino APDS9960庫,該庫可以訪問一些有用的功能。

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

APDS.readColor()

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

掃描儀

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

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

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

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

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

如前所述,使用

APDS.readColor()

來讀取顏色。計算總和后,將計算百分比,然后通過調(diào)用

Serial.printf()

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

訓練模型

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

測驗

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

可以通過添加更多訓練數(shù)據(jù)并減慢訓練速度來提高此準確性。

代碼

#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

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

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

責任編輯:haq

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

    關(guān)注

    2565

    文章

    52955

    瀏覽量

    767069
  • 驅(qū)動器
    +關(guān)注

    關(guān)注

    54

    文章

    8689

    瀏覽量

    149876
  • 機器學習
    +關(guān)注

    關(guān)注

    66

    文章

    8501

    瀏覽量

    134566

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    機器學習異常檢測實戰(zhàn):用Isolation Forest快速構(gòu)建無標簽異常檢測系統(tǒng)

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

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

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

    【「# ROS 2智能機器人開發(fā)實踐」閱讀體驗】視覺實現(xiàn)的基礎(chǔ)算法的應用

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

    如何檢測電機的好壞?

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

    斷路器的檢測方法

    斷路器的檢測方法多種多樣,以下是一些常見的檢測方法: 一、直觀檢查 直觀檢查是斷路器檢測的基礎(chǔ)步驟,主要通過觀察斷路器的外觀來判斷
    發(fā)表于 12-27 10:29

    什么是機器學習?通過機器學習方法能解決哪些問題?

    來源:Master編程樹“機器學習”最初的研究動機是讓計算機系統(tǒng)具有人的學習能力以便實現(xiàn)人工智能。因為沒有學習能力的系統(tǒng)很難被認為是具有智能的。目前被廣泛采用的
    的頭像 發(fā)表于 11-16 01:07 ?959次閱讀
    什么是<b class='flag-5'>機器</b><b class='flag-5'>學習</b>?<b class='flag-5'>通過</b><b class='flag-5'>機器</b><b class='flag-5'>學習</b>方法能解決哪些問題?

    晶體管的工作狀態(tài)判斷方法

    晶體管的工作狀態(tài)判斷是電子工程領(lǐng)域中的一項重要技能,它對于確保電路的正常運行和性能優(yōu)化至關(guān)重要。晶體管的工作狀態(tài)通常根據(jù)其內(nèi)部PN結(jié)的偏置情況來判斷,主要包括截止
    的頭像 發(fā)表于 09-23 18:16 ?4535次閱讀

    中偉視界:礦山智能化,多種判斷方法提升皮帶跑偏檢測可靠性

    皮帶輸送機的跑偏檢測技術(shù),包括圖像處理算法、機器學習模型和物聯(lián)網(wǎng)技術(shù)的應用,詳細闡述了各類判斷方法及實際案例,強調(diào)實時監(jiān)測和高精度檢測的優(yōu)勢
    的頭像 發(fā)表于 09-13 18:00 ?530次閱讀

    機器人語言系統(tǒng)包括三個基本狀態(tài)

    包括檢測機器人的當前狀態(tài)、任務執(zhí)行情況、以及是否出現(xiàn)錯誤或異常情況。監(jiān)控狀態(tài)對于確保機器人的安全、穩(wěn)定和高效運行至關(guān)重要。 編輯
    的頭像 發(fā)表于 09-04 09:24 ?1110次閱讀

    基于機器學習的IWR6843AOP跌倒和姿態(tài)檢測實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《基于機器學習的IWR6843AOP跌倒和姿態(tài)檢測實現(xiàn).pdf》資料免費下載
    發(fā)表于 09-03 10:02 ?3次下載
    基于<b class='flag-5'>機器</b><b class='flag-5'>學習</b>的IWR6843AOP跌倒和姿態(tài)<b class='flag-5'>檢測</b>實現(xiàn)

    NPN型晶體管三種狀態(tài)判斷方法

    NPN型晶體管作為電子學中的基礎(chǔ)元件,具有放大、開關(guān)等多種功能。工作狀態(tài)根據(jù)基極、發(fā)射極和集電極之間的電壓和電流關(guān)系可分為截止狀態(tài)、放大狀態(tài)和飽和
    的頭像 發(fā)表于 08-13 17:33 ?4920次閱讀

    機器視覺在焊接質(zhì)量檢測中的應用

    的可能性。今天跟隨創(chuàng)想智控小編一起了解機器視覺在焊接質(zhì)量檢測中的應用。 1. 機器視覺原理 機器視覺是一種利用計算機技術(shù)對圖像進行分析和處理的技術(shù)。它
    的頭像 發(fā)表于 08-13 16:33 ?623次閱讀

    時序邏輯電路中如何判斷有效狀態(tài)和無效狀態(tài)

    在時序邏輯電路中,有效狀態(tài)和無效狀態(tài)判斷是電路分析和設(shè)計的重要環(huán)節(jié)。有效狀態(tài)是指電路在實際工作過程中被利用到的狀態(tài),它們構(gòu)成了電路的有效循
    的頭像 發(fā)表于 08-12 15:51 ?5161次閱讀

    觸發(fā)器的無效狀態(tài)怎么判斷

    觸發(fā)器的無效狀態(tài)判斷是一個涉及數(shù)據(jù)庫管理和維護的重要方面。觸發(fā)器作為數(shù)據(jù)庫中的一種特殊對象,有效性直接關(guān)系到數(shù)據(jù)庫操作的正確性和性能。
    的頭像 發(fā)表于 08-12 14:46 ?1387次閱讀

    【「時間序列與機器學習」閱讀體驗】全書概覽與時間序列概述

    如何通過根因分析技術(shù)獲得導致故障的維度和元素,包括基于時間序列異常檢測算法的根因分析、基于熵的根因分析、基于樹模型的根因分析、規(guī)則學習等。 ●第7章“智能運維的應用場景”:介紹智能運維領(lǐng)域的應用,包括
    發(fā)表于 08-07 23:03