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

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

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

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

AI模型部署邊緣設(shè)備的奇妙之旅:視覺巡線

福州市凌睿智捷電子有限公司 ? 2025-03-31 09:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、項目簡介

在本次項目中,我們將采用LockAI視覺攝像頭與OpenCV-C++技術(shù)相結(jié)合的方式來實現(xiàn)特定場地內(nèi)的視覺巡線任務(wù)。

控制方面,我們選用了小凌派-RK2206開發(fā)板,該開發(fā)板運行OpenHarmony請諒解操作系統(tǒng),并通過串口通訊與LockAI進行高效的數(shù)據(jù)交互。基于攝像頭傳輸回來的目標坐標數(shù)據(jù),我們將運用PID算法精確地對智能車的行駛進行調(diào)控。這樣,不僅能夠確保智能車沿著預(yù)定線路穩(wěn)定行駛,還能通過實時數(shù)據(jù)分析優(yōu)化行車路徑,提升整體運行效率和穩(wěn)定性。整個方案集成了先進的圖像識別技術(shù)和精準的控制算法,為實現(xiàn)自動化巡線提供了可靠的技術(shù)保障。

2、基本知識

2.1、PID算法簡介

PID算法,即比例-積分-微分(Proportional-Integral-Derivative)控制器,是一種在工業(yè)控制中廣泛應(yīng)用的反饋控制機制。它通過計算設(shè)定值(目標值)與實際值之間的誤差,并基于此誤差進行調(diào)節(jié),以達到穩(wěn)定系統(tǒng)輸出的目的。其原理如下:

比例(P)控制:比例控制是根據(jù)當前誤差值(即設(shè)定值與實際值之差)直接按比例調(diào)整輸出。它的作用是快速響應(yīng)誤差,減少誤差幅度。比例系數(shù)Kp越大,調(diào)節(jié)的速度越快,但是過大的Kp會導致系統(tǒng)振蕩。

積分(I)控制:積分控制是對過去所有誤差的累積進行調(diào)節(jié),其目的是消除靜差(即系統(tǒng)穩(wěn)定后仍然存在的誤差)。積分項通過累加過去的誤差來影響控制量,使得即使誤差很小,只要持續(xù)存在,也會逐漸增加控制量,直到誤差被完全消除。積分系數(shù)Ki需要謹慎選擇,因為太高的積分作用可能導致系統(tǒng)不穩(wěn)定。

微分(D)控制:微分控制考慮的是誤差的變化率,用于預(yù)測誤差的未來趨勢,從而提前采取措施減小誤差。微分項能夠幫助抑制超調(diào)現(xiàn)象,提高系統(tǒng)的響應(yīng)速度和平穩(wěn)性。然而,由于它對噪聲較為敏感,因此實際應(yīng)用中往往需要慎重設(shè)置微分系數(shù)Kd。

在實際的控制過程中我們采用離散型PID控制。在離散時間系統(tǒng)中,假設(shè)采樣周期為TT,則離散型PID控制器的輸出u(k)u(k)可以表示為: u(k)=Kpe(k)+Ki∑i=0kTe(i)+Kde(k)?e(k?1)Tu(k)=Kpe(k)+K**ii=0kTe(i)+KdT**e(k)?e(k?1) 其中,

KpK**p、KiK**i和 KdK**d分別為比例、積分和微分系數(shù)。

e(k)e(k) 代表第kk次采樣時的誤差,即設(shè)定值與實際值之差。

TT是采樣時間間隔。

為了更有效地實現(xiàn)積分項的計算,通常采用增量式PID算法,其表達式為: Δu(k)=u(k)?u(k?1)=Kp[e(k)?e(k?1)]+KiTe(k)+Kde(k)?2e(k?1)+e(k?2)TΔu(k)=u(k)?u(k?1)=K**p[e(k)?e(k?1)]+KiT**e(k)+KdT**e(k)?2e(k?1)+e(k?2)

這樣做的好處在于,只需保存最近幾次的誤差值以及上一次的控制量,就可以計算出當前的控制增量Δu(k)Δu(k),從而減少了存儲需求,并且易于編程實現(xiàn)。

2.2、LockAI簡介

凌智視覺模塊(Lockzhiner Vision Module) 是福州市凌睿智捷電子有限公司聯(lián)合百度飛槳傾力打造的一款高集成度人工智能視覺模塊,專為邊緣端人工智能和機器視覺應(yīng)用而設(shè)計。讀者如有興趣,可以參考Gitee倉庫(LockAI Gitee倉)

3、實驗內(nèi)容

3.1、視覺代碼實現(xiàn)

本項目是基于攝像頭的視覺檢測系統(tǒng),主要功能包括實時捕獲視頻流、提取感興趣區(qū)域(ROI)、通過 HSV 閾值分割檢測黑色區(qū)域,并計算目標質(zhì)心位置以確定水平偏移量。系統(tǒng)通過串口將質(zhì)心 X 坐標發(fā)送給外部設(shè)備(如小車控制器),同時在圖像上繪制 ROI 邊框和質(zhì)心位置,并將處理結(jié)果發(fā)送至編輯模塊進行顯示,便于調(diào)試和驗證。代碼采用模塊化設(shè)計,支持動態(tài)調(diào)整攝像頭分辨率,具備良好的靈活性和擴展性,適用于智能車視覺巡線、目標跟蹤等場景。為進一步提升性能,建議增強異常處理機制、優(yōu)化算法效率,并將關(guān)鍵參數(shù)提取到配置文件中以便于調(diào)整和適配不同環(huán)境。整體而言,該系統(tǒng)實現(xiàn)了實時性、可視化與模塊化的結(jié)合,為嵌入式視覺應(yīng)用提供了可靠的技術(shù)支持。

#include#include#include#include#include#include#includeintmain(intargc,char*argv[]){ // 設(shè)置串口波特率為115200 lockzhiner_vision_module::USART1 usart; if(!usart.Open(115200)) { std::cout <> temp_mat;// 獲取新的一幀 if(temp_mat.empty()) { std::cerr <(cx + roi_rect.x),static_cast(cy + roi_rect.y)),5, cv::Scalar(0,255,0),-1);// 綠色圓點表示質(zhì)心位置 // 輸出質(zhì)心的X坐標 std::cout <

3.2、PID代碼實現(xiàn)

本項目主要通過串口與 LockAI 攝像頭進行通信,并在串口任務(wù)中解析出目標的關(guān)鍵數(shù)據(jù),例如目標的質(zhì)心坐標、目標檢測區(qū)域的大小等信息。這些數(shù)據(jù)被用作 PID 控制器的反饋輸入,進而計算出 PID 的輸出值。小凌派開發(fā)板基于該輸出值實現(xiàn)了麥克納姆輪的運動解算。只需輸入期望的 X 軸、Y 軸以及旋轉(zhuǎn) W 軸的速度,即可通過解算函數(shù)計算出四個輪子對應(yīng)的速度。各軸的速度會自動疊加,確保運動的平滑性與精確性。將 PID 的輸出結(jié)果輸入到麥克納姆輪的解算函數(shù)中,即可實現(xiàn)對小車車身姿態(tài)和運動的精準控制。

floatPID_Calc(PidTypeDef *pid,floatref,floatset){ if(pid == NULL) { return0.0f; } pid->error[2] = pid->error[1]; pid->error[1] = pid->error[0]; pid->set=set; pid->fdb =ref; pid->error[0] =set-ref; if(pid->mode == PID_POSITION) { pid->Pout = pid->Kp * pid->error[0]; pid->Iout += pid->Ki * pid->error[0]; pid->Dbuf[2] = pid->Dbuf[1]; pid->Dbuf[1] = pid->Dbuf[0]; pid->Dbuf[0] = (pid->error[0] - pid->error[1]); pid->Dout = pid->Kd * pid->Dbuf[0]; LimitMax(pid->Iout, pid->max_iout); pid->out= pid->Pout + pid->Iout + pid->Dout; LimitMax(pid->out, pid->max_out); } elseif(pid->mode == PID_DELTA) { pid->Pout = pid->Kp * (pid->error[0] - pid->error[1]); pid->Iout = pid->Ki * pid->error[0]; pid->Dbuf[2] = pid->Dbuf[1]; pid->Dbuf[1] = pid->Dbuf[0]; pid->Dbuf[0] = (pid->error[0] -2.0f* pid->error[1] + pid->error[2]); pid->Dout = pid->Kd * pid->Dbuf[0]; pid->out+= pid->Pout + pid->Iout + pid->Dout; LimitMax(pid->out, pid->max_out); } returnpid->out;}voidUserControl(){ WheelControl wheelControls[WHEELS_COUNT]; floatvx =0;// X方向線速度,單位:m/s floatvy =0;// Y方向線速度,單位:m/s floatw =0; // 角速度,單位:rad/s CtrolInit(); for(;;) { // PID_Calc(&PWMPid[0], x, 320); // PID_Calc(&PWMPid[0], x, 320); if(FirstRec ==1) { // 檢測用 // PID_Calc(&PWMPid[2], x, 240); // PID_Calc(&PWMPid[1], s, 10000); // calculateWheelPWMSpeeds(-PWMPid[1].out, vy, PWMPid[2].out, wheelControls); // 循跡用 PID_Calc(&PWMPid[2], x,240); calculateWheelPWMSpeeds(-5, vy, PWMPid[2].out, wheelControls); // 設(shè)置方向GPIO LzGpioSetVal(GPIO0_PA5, wheelControls[0].direction);// 右前 LzGpioSetVal(GPIO0_PA3, wheelControls[3].direction);// 右后 LzGpioSetVal(GPIO0_PA1, wheelControls[2].direction);// 左后 LzGpioSetVal(GPIO0_PA0, wheelControls[1].direction);// 左前 // 啟動PWM IoTPwmStart(RU_B4, wheelControls[0].pwm,1000);// 右前 IoTPwmStart(RD_B6, wheelControls[3].pwm,1000);// 右后 IoTPwmStart(LD_C7, wheelControls[2].pwm,1000);// 左后 IoTPwmStart(LU_C3, wheelControls[1].pwm,1000);// 左前 } LOS_Msleep(1); }}

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

    關(guān)注

    38

    文章

    1499

    瀏覽量

    91170
  • AI
    AI
    +關(guān)注

    關(guān)注

    91

    文章

    39768

    瀏覽量

    301371
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    26

    文章

    6290

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    邊緣AI應(yīng)用越來越普遍,AI模型邊緣端如何部署?

    模型在端側(cè)的部署也成了業(yè)界關(guān)注的焦點。 ? 如何把AI 模型邊緣部署 ? 首先得軟硬件適配
    的頭像 發(fā)表于 07-04 00:11 ?4434次閱讀
    <b class='flag-5'>邊緣</b><b class='flag-5'>AI</b>應(yīng)用越來越普遍,<b class='flag-5'>AI</b><b class='flag-5'>模型</b>在<b class='flag-5'>邊緣</b>端如何<b class='flag-5'>部署</b>?

    邊緣側(cè)部署模型優(yōu)勢多!模型量化解決邊緣設(shè)備資源限制問題

    電子發(fā)燒友網(wǎng)報道(文/李彎彎)大模型邊緣部署是將大模型部署邊緣
    的頭像 發(fā)表于 01-05 00:06 ?6558次閱讀

    邊緣AI實現(xiàn)的核心環(huán)節(jié):硬件選擇和模型部署

    電子發(fā)燒友網(wǎng)綜合報道 邊緣AI的實現(xiàn)原理是將人工智能算法和模型部署到靠近數(shù)據(jù)源的邊緣設(shè)備上,使這
    發(fā)表于 05-26 07:09 ?1468次閱讀

    AI模型部署邊緣設(shè)備奇妙之旅:如何實現(xiàn)手寫數(shù)字識別

    處理,而不必傳輸?shù)酵獠糠?wù)器,這有助于更好地保護用戶隱私和數(shù)據(jù)安全。 然而,邊緣計算也帶來了獨特的挑戰(zhàn),特別是在資源受限的嵌入式系統(tǒng)中部署復雜的AI模型時。為了確保神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 12-06 17:20

    AI模型部署邊緣設(shè)備奇妙之旅:如何在邊緣部署OpenCV

    的能力。 本文章主要講述如何在邊緣設(shè)備上使用OpenCV。本次使用的邊緣設(shè)備是凌智電子開發(fā)的凌智視覺模塊,具體如下: 如對該
    發(fā)表于 12-14 09:31

    AI模型部署邊緣設(shè)備奇妙之旅:目標檢測模型

    以及邊緣計算能力的增強,越來越多的目標檢測應(yīng)用開始直接在靠近數(shù)據(jù)源的邊緣設(shè)備上運行。這不僅減少了數(shù)據(jù)傳輸延遲,保護了用戶隱私,同時也減輕了云端服務(wù)器的壓力。然而,在邊緣
    發(fā)表于 12-19 14:33

    AI模型部署邊緣設(shè)備奇妙之旅邊緣設(shè)備的局域網(wǎng)視頻流傳輸方案

    代碼展示了如何使用Python內(nèi)置的socket庫來實現(xiàn)一個簡單的TCP回顯服務(wù)器和客戶端。 3 邊緣設(shè)備實現(xiàn) 我此次使用的設(shè)備是凌智視覺模塊,但是該
    發(fā)表于 01-04 14:32

    邊緣設(shè)備奇妙之旅:在小凌派-RK2206上部署AI模型來實現(xiàn)視覺

    1、項目簡介 在本次項目中,我們將采用LockAI視覺攝像頭與OpenCV-C++技術(shù)相結(jié)合的方式來實現(xiàn)特定場地內(nèi)的視覺任務(wù)。 控制方面,我們選用了小凌派-RK2206開發(fā)板,該開
    發(fā)表于 03-31 10:58

    STM32F769是否可以部署邊緣AI

    STM32F769是否可以部署邊緣AI
    發(fā)表于 06-17 06:44

    工業(yè)視覺網(wǎng)關(guān):RK3576賦能多路檢測與邊緣AI

    ~150ms6TOPS NPU 邊緣AI推理易對接 MES / 追溯系統(tǒng) 一、產(chǎn)痛點:從“人看”到“機判”的轉(zhuǎn)變· 多工位/多角度同步:單機位覆蓋不足,典型項目需 8~12 路并發(fā),且畫面時序一致性要求高
    發(fā)表于 10-16 17:56

    嵌入式邊緣AI應(yīng)用開發(fā)指南

    保駕護航。下面讓我們來了解如何不借助手動工具或手動編程來選擇模型、隨時隨地訓練模型并將其無縫部署到TI處理器上,從而實現(xiàn)硬件加速推理。圖1: 邊緣A
    發(fā)表于 11-03 06:53

    AI模型部署邊緣設(shè)備奇妙之旅:如何在邊緣部署OpenCV

    1簡介Opencv(OpenSourceComputerVisionLibrary)是一個基于開源發(fā)行的跨平臺計算機視覺庫,它實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法,已成為計算機視覺領(lǐng)域最有
    的頭像 發(fā)表于 12-14 09:10 ?1476次閱讀
    <b class='flag-5'>AI</b><b class='flag-5'>模型</b><b class='flag-5'>部署</b><b class='flag-5'>邊緣</b><b class='flag-5'>設(shè)備</b>的<b class='flag-5'>奇妙</b><b class='flag-5'>之旅</b>:如何在<b class='flag-5'>邊緣</b>端<b class='flag-5'>部署</b>OpenCV

    AI模型部署邊緣設(shè)備奇妙之旅:目標檢測模型

    1簡介人工智能圖像識別是人工智能領(lǐng)域的一個重要分支,它涉及計算機視覺、深度學習、機器學習等多個領(lǐng)域的知識和技術(shù)。圖像識別主要是處理具有一定復雜性的信息。計算機采用與人類類似的圖像識別原理,即對圖像
    的頭像 發(fā)表于 12-19 14:12 ?1936次閱讀
    <b class='flag-5'>AI</b><b class='flag-5'>模型</b><b class='flag-5'>部署</b><b class='flag-5'>邊緣</b><b class='flag-5'>設(shè)備</b>的<b class='flag-5'>奇妙</b><b class='flag-5'>之旅</b>:目標檢測<b class='flag-5'>模型</b>

    AI模型部署邊緣設(shè)備奇妙之旅邊緣設(shè)備的局域網(wǎng)視頻流傳輸方案

    1、簡介隨著物聯(lián)網(wǎng)(IoT)和智能設(shè)備的快速發(fā)展,邊緣計算技術(shù)已成為高效數(shù)據(jù)處理和服務(wù)交付的重要組成部分。當我們考慮利用邊緣設(shè)備進行實時監(jiān)控時,一個常見的需求是通過攝像頭捕捉視頻,并
    的頭像 發(fā)表于 01-04 12:00 ?1386次閱讀
    <b class='flag-5'>AI</b><b class='flag-5'>模型</b><b class='flag-5'>部署</b><b class='flag-5'>邊緣</b><b class='flag-5'>設(shè)備</b>的<b class='flag-5'>奇妙</b><b class='flag-5'>之旅</b>:<b class='flag-5'>邊緣</b>端<b class='flag-5'>設(shè)備</b>的局域網(wǎng)視頻流傳輸方案

    邊緣AI實現(xiàn)的核心環(huán)節(jié):硬件選擇和模型部署

    邊緣AI的實現(xiàn)原理是將人工智能算法和模型部署到靠近數(shù)據(jù)源的邊緣設(shè)備上,使這些
    的頭像 發(fā)表于 06-19 12:19 ?1380次閱讀
    <b class='flag-5'>邊緣</b><b class='flag-5'>AI</b>實現(xiàn)的核心環(huán)節(jié):硬件選擇和<b class='flag-5'>模型</b><b class='flag-5'>部署</b>