使用 V831 AI检测数字卡片(2021电赛F题智能送药小车数字识别)速成教程(附带k210识别模型) 您所在的位置:网站首页 数字卡片打印图片 使用 V831 AI检测数字卡片(2021电赛F题智能送药小车数字识别)速成教程(附带k210识别模型)

使用 V831 AI检测数字卡片(2021电赛F题智能送药小车数字识别)速成教程(附带k210识别模型)

2024-07-17 15:04| 来源: 网络整理| 查看: 265

V831使用AI 检测卡片速成教程 ,使用 V831 检测数字卡片(2021电赛F题智能送药小车数字识别)的一种方法 版权声明:本文为 neucrack 的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接(持续更新):https://neucrack.com/p/384

V831的效果:

K210的效果:

两个模型都有个缺点就是 1 容易识别成4, k210的模型识别远距离也不太行, v831的效果好些,总体比较粗糙了,但是也许你能用

k210的教程不在这里说了可以看这里: https://neucrack.com/p/325 ,K210的模型这里自取: 链接: https://pan.baidu.com/s/1mhpn1sUlG9KGfaZ9xq3pIg 提取码: cimy ,k210的模型文件使用:板子确保先烧录了固件,然后把所有文件放到SD 卡根目录,包括代码和模型都在里面了,上电就可以看到效果了

下面是 V831 的上手教程(注意不是k210的! k210的到这里就结束辣!!!!):

首先需要一个开发板

淘宝购买: https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-24053782153.4.21f952b1lCLyEk&id=635874427363

买全功能套餐, 有摄像头和屏幕

另外你需要一个 type-c 线(套餐应该有,问客服)

烧录镜像

按照文档烧录: https://wiki.sipeed.com/hardware/zh/maixII/M2/flash.html

文档内容主要是下载镜像: https://dl.sipeed.com/shareURL/MaixII/MaixII-Dock/SDK/release , 系统密码是123,用户名是root, 然后按照文档用读卡器+PhoenixCard 烧录就好了

启动系统

使用 type-c 线连接板子的 USB-UART 接口, 注意不是USB-OTG接口, 如上面封面图所示, 屏幕右下角的接口

然后使用串口终端, 比如 putty , 选择串口连接, 输入串口号,串口号可以在资源管理器看到

修改 wifi SSID 和密码以连接wifi

手动修改

vim /etc/wpa_supplicant.conf

然后最简单的方法,直接重启生效

reboot

或者执行一键配置脚本:

maixpy3_config.py

然后可以看到板子的 ip 地址,比如192.168.0.37

ifconfig下载模型文件

到maixhub下载模型(需要注册登录)

或者百度云:

链接: https://pan.baidu.com/s/1mhpn1sUlG9KGfaZ9xq3pIg 提取码: cimy

会得到两个文件, 一个number_awnn.param和一个number_awnn.bin

下载源代码

使用如下源代码(复制后需要删掉后面的版权信息才能运行), 保存为文件run.py

注意, 复制代码要保证空格不要丢失,不然会无法运行, python 依靠缩进而不是大括号分段

from maix import nnfrom PIL import Image, ImageDraw, ImageFontfrom maix import display, cameraimport timefrom maix.nn import decoderdef draw_rectangle_with_title(draw, box, disp_str, bg_color=(255, 0, 0, 255), font_color=(255, 255, 255, 255)): # draw = ImageDraw.Draw(img) font = ImageFont.load_default() font_w, font_h = font.getsize(disp_str) draw.rectangle((box[0], box[1], box[0] + box[2], box[1] + box[3]), fill=None, outline=bg_color, width=2) draw.rectangle((box[0], box[1] - font_h, box[0] + font_w, box[1]), fill=bg_color) draw.text((box[0], box[1] - font_h), disp_str, fill=font_color, font=font)camera.config(size=(224, 224))labels = ["1", "2", "3", "4", "5", "6", "7", "8"]anchors = [2.44, 2.25, 5.03, 4.91, 3.5 , 3.53, 4.16, 3.94, 2.97, 2.84]model = { "param": "/root/number_awnn.param", "bin": "/root/number_awnn.bin"}options = { "model_type": "awnn", "inputs": { "input0": (224, 224, 3) }, "outputs": { "output0": (7, 7, (1+4+len(labels))*5) }, "mean": [127.5, 127.5, 127.5], "norm": [0.0078125, 0.0078125, 0.0078125],}print("-- load model:", model)m = nn.load(model, opt=options)print("-- load ok")w = options["inputs"]["input0"][1]h = options["inputs"]["input0"][0]yolo2_decoder = decoder.Yolo2(len(labels), anchors, net_in_size=(w, h), net_out_size=(7, 7))while 1: t = time.time() img = camera.capture() if not img: time.sleep(0.01) continue print("-- capture: ", time.time() - t ) t = time.time() out = m.forward(img, quantize=True, layout="hwc") print("-- forward: ", time.time() - t ) t = time.time() boxes, probs = yolo2_decoder.run(out, nms=0.3, threshold=0.5, img_size=(240, 240)) print("-- decode: ", time.time() - t ) t = time.time() for i, box in enumerate(boxes): class_id = probs[i][0] prob = probs[i][1][class_id] disp_str = "{}:{:.2f}%".format(labels[class_id], prob*100) draw_rectangle_with_title(display.get_draw(), box, disp_str) print("-- draw: ", time.time() - t ) t = time.time() display.show() print("-- show: ", time.time() - t )上传文件到开发板内的文件系统

系统密码是123,用户名是root (密码默认可能没有)

linux 直接使用 scp命令拷贝;windows需要使用winscp传输文件, 不会使用请自行搜索

将上面的三个文件传输到/root/目录下

执行识别程序cd /rootpython run.py

就可以看到屏幕显示图像, 摄像头对准卡片就可以识别到卡片了

开机自启vim /etc/init.d/S02app

在start)部分添加

case "$1" in start) echo "Starting app..." (cd /root && python run.py > /dev/null 2>&1 &) ;;自定义程序

修改/root/run.py即可

如果需要使用串口输出信息,参考这里: https://wiki.sipeed.com/soft/maixpy3/zh/usage/hardware/UART.html

这个串口示例的硬件接口是板子上的G6和G7



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有