使用 V831 AI检测数字卡片(2021电赛F题智能送药小车数字识别)速成教程(附带k210识别模型) | 您所在的位置:网站首页 › 数字卡片打印图片 › 使用 V831 AI检测数字卡片(2021电赛F题智能送药小车数字识别)速成教程(附带k210识别模型) |
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 实验室设备网 版权所有 |