电赛总结 + openmv4 实现数字识别

2021电赛总结

历经四天三夜,2021年电赛结束了

第一次参加电赛,估计也没啥时间参加电赛了。从开始到结束,历经种种波折,队友告诉我没有经历波折的电赛是不完整的,最后的最后也就完成了电赛题目的一部分。不容易呀,好不容易拼出个可以跑的小车

历经波折 ——摄像头风波

第一天看题,小车 数字识别 这不之前做过类似的,用openmv4可以跑,然后就按以前的思路做,利用模板匹配去实现数字识别,想的简单,这不轻轻松松,有手就行。到了下午,进行测试匹配时,误差太大了。后面才赶紧下单买4plus摄像头。
用另外一套方案。

历经波折——电池着火

第二天继续搞电赛,对数字信息存储,打标签,训练数据集,跑卷积,结果中午休息的时候电池炸了,还好人没事。

电赛总结 + openmv4 实现数字识别

历经波折——串联插座烧了

插座的都烧了 也没哪个队了 后面又去其他的地方找排插接电,离谱啊

最后一天

12.07 7的意志 休息会一下,看到edg赢了,继续肝电赛,继续搞识别。早上摄像头到了,又立刻换方案,最后的最后也就晚八点,封箱以后就长出一口气,望着对面,一片空白。

电赛总结与收获

1、对openmv4plus有了更新的体悟,虽然以后不会有时间参加电赛了,记录这唯一一次也就是大三唯一的一次电赛了,再接下来小白就要进行备考了,希望大佬给给资料,关于考研备考
2 电赛准备数字识别
1 保存数据集
电赛总结 + openmv4 实现数字识别

	2 利用网站对数据集进行用KNN训练
	![在训练出来的数据集](https://www.icode9.com/i/ll/?i=9fe78dc5cee746988865e3a82e3b845d.png#pic_center)

	3、导入模型进行计算 
#导入功能包
import pyb
import sensor, image, time, math
import os, tf

#摄像头传感器配置
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QQVGA) # we run out of memory if the resolution is much bigger...
sensor.set_brightness(1500)
sensor.skip_frames(time = 20)
sensor.set_auto_gain(False)  # must turn this off to prevent image washout...
sensor.set_auto_whitebal(True,(0,0x80,0))  # must turn this off to prevent image washout...
clock = time.clock()

#导入模型
net_path = "traind.tflite"                                  # 定义模型的路径
labels = ["1", "2", "3","4","5", "6", "7", "8"]   # 加载标签
net = tf.load(net_path, load_to_fb=True)                                  # 加载模型


while(True):
    #拍摄一张照片
    img = sensor.snapshot()

    #寻找矩形
    for r in img.find_rects(threshold = 20000):
        #矩形画框
        img.draw_rectangle(r.rect(), color = (255, 0, 0))
        #提取矩形中图像
        img1 = img.copy(r.rect())
        #运行模型识别
        for obj in tf.classify(net , img1, min_scale=1.0, scale_mul=0.5, x_overlap=0.0, y_overlap=0.0):
            #计算结果
            sorted_list = sorted(zip(labels, obj.output()), key = lambda x: x[1], reverse = True)
            print(sorted_list[0][0])
            img.draw_string(r.rect()[0] + 20, r.rect()[1]-20, sorted_list[0][0],color = (255,0,0), scale = 2,mono_space=False)
上一篇:Flink——四种读取数据方式(集合、文件、kafka、自定义数据源)


下一篇:springboot(十七):使用Spring Boot上传文件