基于k210的水果分拣

前言

由于疫情原因,只完成识别部分,主控采用具有kpu加速的k210进行识别,网络传输打算采用esp32。水果分拣是本学期的一次综合实践课程,识别效果一般,勉强可以使用。
在这里插入图片描述
哔哩哔哩识别效果
采用堪智官方sdk,帧率大概29左右,在人脸识别demo基础上进行编写

darknet

darknet概述
darknet是基于c语言的小众深度学习框架,是有yolo作者编写,其官网地址darknet官网

darknet安装

在darknet官网有安装的详细方式,安装过程也相对简单,官网教程
这里采用百度aistudio演示,首先是通过git下载源码git clone https://github.com/pjreddie/darknet.git
之后便会在当前文件夹下建立darknet文件夹,cd darknet进入darknet文件夹,在这里插入图片描述
编辑配置可以在makefile文件进行更改,aistudio可以将文件后缀改为txt进行编辑,也可以使用vi进行编辑。
在这里插入图片描述
将gpu设置成1,如果使用cpu来训练,速度相当慢。
在这里插入图片描述
保存设置,使用make命令完成编译,会在当前文件夹下生成darknet文件。
在这里插入图片描述
至此darknet安装完成

训练数据处理

数据处理参照网上一篇文章进行处理link,使用LabelImg工具进行标注,工具采用python和qt进行编译,需要安装相应的库,软件的使用方式在github上有详细介绍,这里不做太多介绍labelimg

首先是获取训练图片,如果使用的是maix板,可以使用micropython对目标图片进行获取这里借鉴link的代码

import sensor, image, time, lcd
from fpioa_manager import *
from Maix import GPIO
import os

def getMax():
   maxnum = 0;
   files = os.listdir('/sd')
   for file in files:
       name = file.split(".")
       if(len(name)>1 and name[1] == "jpg"):
           if(int(name[0])>maxnum):
               maxnum = int(name[0])
   return maxnum

fm.register(board_info.LED_R, fm.fpioa.GPIO0)
led_r=GPIO(GPIO.GPIO0,GPIO.OUT)

lcd.init(freq=15000000)

sensor.reset()
sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA)   # Set frame size to QVGA (320x240)
sensor.skip_frames(time = 2000)     # Wait for settings take effect.
sensor.set_hmirror(0)
sensor.set_windowing((224,224))
clock = time.clock()                # Create a clock object to track the FPS.

i = getMax() + 1

def capture():
   global i
   img = sensor.snapshot()
   filename = '/sd/' + str(i) + '.jpg'
   print(filename)
   img.save(filename)
   img.draw_string(2,2, ("%2.1f" %(i)), color=(0,128,0), scale=2)
   lcd.display(img)
   i = i + 1;

print("Start from %d" % i)

while True:
   led_r.value(0)
   time.sleep(1)
   led_r.value(1)
   capture()

这里会自动拍照并进行保存,图片分辨率为224*224

使用labelimg工具对目标进行标注,在
保存文件选择yolo格式,这里有两种保存方式,一种是voc数据集采用的xml文件保存放松,另一种是现在使用的txt文件保存格式,打开保存的txt文件,会显示5个值0 0.48567335243553006 0.5214899713467048 0.9255014326647564 0.9570200573065902
分别代表
物体类别 物体中心位置 x 物体中心位置 y 物体宽度 x 物体高度y

在这里插入图片描述
接下来便是划分训练集和测试集

import glob, os

# Current directory
current_dir = os
  • 18
    点赞
  • 109
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值