网站开发哪家公司,嘉峪关外包网络推广,威海制作网站,2016个人做淘宝客网站今日开始学习K210视觉识别模块: 图形化操作函数 亚博智能 K210视觉识别模块...... 固件库: canmv_yahboom_v2.1.1.bin 训练网站: 嘉楠开发者社区 今日学习使用多线程、多模型来识别各种物体 这里先提前说一下本文这次测试实验的结果吧#xff1a;结果是不太成…今日开始学习K210视觉识别模块: 图形化操作函数 亚博智能 K210视觉识别模块...... 固件库: canmv_yahboom_v2.1.1.bin 训练网站: 嘉楠开发者社区 今日学习使用多线程、多模型来识别各种物体 这里先提前说一下本文这次测试实验的结果吧结果是不太成功的没法同时调用俩个模型进行识别但单独一条线程还是比较正常的 其次就是有一些不足之处就是训练集太少了平均每个物体就30多张图片... 以后如果想识别效果好一点图片数量要多使用210拍摄多角度多光照条件等 文章提供测试代码讲解、完整代码贴出、测试效果图、完整工程下载 目录 简单的多线程程序 程序代码 测试结果 双线程识别尝试 修改模型名称示例 别忘了更改模型名称复制到TF卡编辑复制整合代码进线程函数 测试结果声明 不注释任何线程 注释掉APPLE的线程编辑 网上学习资料贴出 简单的多线程程序 之前学习树莓派python编程就接触过多线程编程这里就不多讲定义函数什么的了直接贴出文章地址 树莓派4B学习笔记14Python多线程编程_线程间的同步通信_(锁‘threading.Lock’)_树莓派4b是否支持多线程-CSDN博客 这部分就简单演示一下简单的双线程 是怎么编程的 程序代码 import _thread #导入线程模块头文件
import time#定义打印测试 线程函数
def print_test(name):while True:print(hello {}.format(name))time.sleep(1)_thread.start_new_thread(print_test,(1,)) #开启线程1,参数必须是元组
_thread.start_new_thread(print_test,(2,)) #开启线程2参数必须是元组while True:print_test(3)pass
测试结果 发现这个定义了双线程的程序其实有三条线程多出来的是主线程 主线程先运行然后运行其余线程这个运行顺序可以变换 双线程识别尝试 今天尝试采集训练数据集然后编程并同时识别苹果与数字6数据集-模型-代码都会在文末打包提供下载~~~ 注意苹果与数字6的 Kmodul 模型不是同一个而是俩个分开训练出的模型分别给俩个线程调用 修改模型名称示例 之前的文章讲过如何修改部分代码使其适配运行但这里我们发现它每个训练出的模型貌似都是名称为det.kmodel因此我要将其作小小修改将名称变为别的 以识别数字6的模型为例我将它的模型名称该为了det_6.kmodel 因此程序中在加载模型的那一行也需要进行多一步的改写 其余的更改在之前的文章中早就提到了跟着更改就行 K210视觉识别模块学习笔记5(嘉楠)训练使用模型_识别人脸_亚博k210-CSDN博客 最后进行上位机测试无误即可 这里别忘了先把模型文件拖入SD卡~因为是上位机IDE测试所以代码文件不需要拖入改好的代码复制或者在CAN_MV的IDE上打开就好了 测试识别结果图 感觉识别效果很不稳定应该是数据集太少的原因 对于APPLE识别苹果的模型是同理的.....也先这样修改好在进行单独测试失败无问题即可 别忘了更改模型名称复制到TF卡复制整合代码进线程函数 这一步就注意一下模型名称都要对应好你修改的名称即可 import _thread #导入线程模块头文件
import time
import sensor, image, time, lcd, gc, cmath
from maix import KPUlcd.init() # Init lcd display
lcd.clear(lcd.RED) # Clear lcd screen.# sensor.reset(dual_buffTrue) # improve fps
sensor.reset() # Reset and initialize the sensor.
sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA) # Set frame size to QVGA (320x240)
#sensor.set_vflip(True) # 翻转摄像头
#sensor.set_hmirror(True) # 镜像摄像头
sensor.skip_frames(time 1000) # Wait for settings take effect.
clock time.clock() # Create a clock object to track the FPS.#定义APPLE识别线程函数
def APPLE_detect(name):labels [APPLE] #类名称按照label.txt顺序填写anchor (2.59, 2.47, 2.84, 3.03, 3.56, 3.44, 3.77, 3.87, 5.31, 4.94) # anchors,使用anchor.txt中第二行的值kpu KPU()# 从sd或flash加载模型kpu.load_kmodel(/sd/det_APPLE.kmodel)#kpu.load_kmodel(0x300000, 584744)kpu.init_yolo2(anchor, anchor_num(int)(len(anchor)/2), img_w320, img_h240, net_w320 , net_h240 ,layer_w10 ,layer_h8, threshold0.6, nms_value0.3, classeslen(labels))while True: gc.collect()clock.tick()img sensor.snapshot()kpu.run_with_output(img)dect kpu.regionlayer_yolo2()fps clock.fps()if len(dect) 0:for l in dect :a img.draw_rectangle(l[0],l[1],l[2],l[3],color(0,255,0))info %s %.3f % (labels[l[4]], l[5])a img.draw_string(l[0],l[1],info,color(255,0,0),scale2.0)print(info)del infoa img.draw_string(0, 0, %2.1ffps %(fps),color(0,60,255),scale2.0)lcd.display(img)#定义SIX识别线程函数
def SIX_detect(name): labels [six] #类名称按照label.txt顺序填写anchor (1.06, 1.22, 1.36, 1.56, 1.75, 2.03, 2.41, 2.88, 3.58, 4.45) # anchors,使用anchor.txt中第二行的值kpu KPU()# 从sd或flash加载模型kpu.load_kmodel(/sd/det_6.kmodel)#kpu.load_kmodel(0x300000, 584744)kpu.init_yolo2(anchor, anchor_num(int)(len(anchor)/2), img_w320, img_h240, net_w320 , net_h240 ,layer_w10 ,layer_h8, threshold0.6, nms_value0.3, classeslen(labels))while(True):gc.collect()clock.tick()img sensor.snapshot()kpu.run_with_output(img)dect kpu.regionlayer_yolo2()fps clock.fps()if len(dect) 0:for l in dect :a img.draw_rectangle(l[0],l[1],l[2],l[3],color(0,255,0))info %s %.3f % (labels[l[4]], l[5])a img.draw_string(l[0],l[1],info,color(255,0,0),scale2.0)print(info)del infoa img.draw_string(0, 0, %2.1ffps %(fps),color(0,60,255),scale2.0)lcd.display(img)_thread.start_new_thread(APPLE_detect,(1,)) #开启线程1,参数必须是元组
_thread.start_new_thread(SIX_detect,(1,)) #开启线程2,参数必须是元组 while True:pass
测试结果声明 感觉K210的处理运算能力还是有限的 当我不注释任何线程时只有APPLE的检测比较正常 当我把APPLE检测的线程注释掉时SIX数字又能比较正常地识别到了~~~ 其次我的数据集图片数量确实太少了平均才30多张识别精度受影响..... 不注释任何线程 注释掉APPLE的线程 完整工程下载地址 https://download.csdn.net/download/qq_64257614/89574163 网上学习资料贴出 K210——thread线程_k210多线程是什么-CSDN博客