Python后端与人工智能

Python后端与人工智能

前段时间考研,再加上工作,时间很紧,一直没有更新博客,这几天在搞k210的目标检测模型,做个记录,遇到问题可以添加qq522414928或添加微信13473465975,共同学习

首先附上github地址,本人自己改的,绝对好用,只要有数据,就能跑通https://github.com/LiuXinyu12378/yolo-k210-face-mask

也是想在考研复试的时候可以拿出来给导师看看,证明自己会一些算法和软硬件的东西,让导师更认可自己,好了,下面简单介绍一下过程。

这个模型大概看了看,就是mobilenet+yolo2的检测头,实际就是yolo2的效果

1.首先,就是要准备数据,思来想去,口罩的检测可能更有实际意义,所以就找了口罩的数据,下面分享给大家。可以使用自己的数据集或自己标注一些自己想做得场景,标注工具也在工程里了。

链接:https://pan.baidu.com/s/1mzcFeHboRKcEPfLJNGJ5yA
提取码:9213

2.训练模型,为了达到更好的效果,首先用kmeans聚类,获取图像对应的anchors,效果还可以,然后修改configs.json文件,这里模型输入的大小是224*224的,其实320*240的会更好,修改anchors和训练路径,然后python trian.py训练。训练好后模型会保存在save文件夹下tflite文件。

这里说下为什么模型320*240更好,这是由板子上的摄像头和显示屏决定的,因为k210的c语言没办法实现resize操作,这对它来说太难了,即便写了底层的函数也会运行很慢,所以模型要适配板子,模型的输入要小于等于320*240,这个模型的输入是224*224的,所以屏幕的检测输出并没有沾满,只用了左上角224*224的显示大小。

3.模型转换,模型量化,使用工程目录下得ncc_0.1_win,解压后,把tflite转换成Kmodel,原来训练好的tflite模型大小为20多M,转换完只有1.81M,说明量化很充分,模型在板子上跑起来也很轻快。

ncc_0.1_win\ncc test.tflite test.kmodel -i tflite -o k210model --dataset train_img
01-07 06:42