IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 智能垃圾桶总结2 -> 正文阅读

[人工智能]智能垃圾桶总结2

K210程序

阈值设定

K210的程序用的是官方给的五朵花分类的程序,大概流程是摄像头采集图像,与之前在百度飞桨上训练的模型进行对比,当准确率超过设定值时,在屏幕上显示识别的东西。

#define PROB_THRESH     (0.85f)

PROB_THRESH 为设定阈值,调试识别准确率时可以参照飞桨训练的预测精度,PROB_THRESH 取值比预测精度大。
如果在飞桨上预测精度值比较大(超过0.7),但是在烧到板子中识别准确度并不高,在排除比如光线,图片是否与实物类似等问题后,建议把PROB_THRESH 再调大。
之前我们组就是这个问题,其他应该没什么问题,预测精度0.75多,图片也是在实验室环境拍摄,但是总是识别不准。把ROB_THRESH 从0.8 变到0.91,就解决了。准确率提高了,时间就会增长,所以需要不断调节达到又快有准的地步。

以下是飞桨训练得到的预测精度:

运行时长: 18秒244毫秒
结束时间: 2021-08-07 17:42:41
total eval count:292 cost time:18.15 sec predict accuracy:0.7191780821917808

串口发送数据

主函数发送数据:

         if (features[cls] > PROB_THRESH)
         {
            if(cls==0)
               uart_send_data(UART_USB_NUM,"A", 1);
            if(cls==1)
               uart_send_data(UART_USB_NUM,"B", 1);
            if(cls==2)
               uart_send_data(UART_USB_NUM,"C", 1);
            if(cls==3)
               uart_send_data(UART_USB_NUM,"D", 1);
            
			ram_draw_string(display_image.addr, 150, 20, text, RED);
         }

通过K210 识别将数据通过串口发送给ARDUINO,完成垃圾投放。串口通信采取连续发送,ARDUINO接受数据并控制舵机完成投放。并通过一个管脚200ms的高电平,K210识别高电平并在显示屏显示” Waste Launch OK“。

管脚定义:参考官方程序串口通信 ,将pin_config.h文件放在你的工程中,在主函数中引用, #include “pin_config.h”
为了方便后边调程序,我们把串口管脚改到13,14
在pin_config.h文件中更改:

#define PIN_UART_USB_RX       (14)
#define PIN_UART_USB_TX       (13)

串口通信主要遇到的问题是没办法中断发送,摄像头用到中断,串口中断优先级更改后就陷入死循环,所以就采取了一直发送的方式。这也导致后续调参十分复杂,因为在垃圾下落时K210还在识别,所以就得加延时函数,然后就找最佳延时。总之,好复杂。

投放数量显示

投放数量显示成了最难解决的问题,前面说到投放完成后有200ms高电平,K210识别并显示。
我们最开始选择了 switch (cls)语句,但是单独试没有任何问题,但是一起试,就会卡循环,没办法识别,放什么东西都是一个。到现在也没有解决。我们最后改为if语句就没有问题了。

  gpio_pin_value_t key_state = gpiohs_get_pin(KEY_GPIONUM);      
        if(!key_state)
        {         
            jg[0]+=1;
            if (what==9)
            {
                printf("a is ok/n");
                jg[0]-=10;
                lcd_draw_string(10, 4,"1", RED);
            }
          /*  switch (cls)
            {
                case 0:
                    lcd_draw_string(16, 4,&jg, RED);
                    lcd_draw_string(30, 4,"Harmful Waste Launch OK", RED);                    
                    sleep(2);
                    break;
                case 1:
                    lcd_draw_string(16, 4,&jg, RED);
                    lcd_draw_string(30, 4,"Recyclable Waste Launch OK", RED);
                    sleep(2);
                    break;
                case 2:
                    lcd_draw_string(16, 4,&jg, RED);
                    lcd_draw_string(30, 4,"Kitchen Waste Launch OK", RED);
                    sleep(2);                   
                    break;
                case 3:
                                     
                    break;
            }*/
            if(cls==0)
            {
                lcd_draw_string(16, 4,&jg, RED);
                    lcd_draw_string(30, 4,"Harmful Waste Launch OK", RED);
                    what++;
                    sleep(2);
            }
              if(cls==1)
            {
                lcd_draw_string(16, 4,&jg, RED);
                    lcd_draw_string(30, 4,"Recyclable Waste Launch OK", RED);
                    what++;
                    sleep(2);
            }
              if(cls==2)
            {
                lcd_draw_string(16, 4,&jg, RED);
                    lcd_draw_string(30, 4,"Kitchen Waste Launch OK", RED);
                    what++;
                    sleep(2);
            }
              if(cls==3)
            {
                lcd_draw_string(16, 4,&jg, RED);
                    lcd_draw_string(30, 4,"Other Waste Launch OK", RED);
                    what++;
                    sleep(2);
            }
        }
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:23:47  更:2021-08-11 12:26:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 20:57:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码