0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

8月AI实战:工业视觉缺陷检测 --基于tflite的yolov8模型优化和推理

lijuan 来源: jf_39743386 作者: jf_39743386 2023-09-13 21:56 次阅读

8月AI实战:工业视觉缺陷检测

--基于tflite的yolov8模型优化和推理

操作视频见B站连接:aidlux模型优化+工业缺陷检测~~完美用我的华为手机实现缺陷检测的推理bilibiliaidlux模型优化+工业缺陷检测~~完美用我的华为手机实现缺陷检测的推理

1 模型优化

将onnx模型转化为tflite模型

打开网站:http://aimo.aidlux.com/

输入试用账号和密码:账号:AIMOTC001 ,密码:AIMOTC001

通过页面中的提示AI Model Optimizer,依次执行步骤①上传模型②选择目标平台③参数设置④转换结果。

通过上述①-④可将onnx模型转为tflite模型

模型转换过程包含如下日志信息

2023-09-07 19:47:05,969 - INFO : Optimization started.

2023-09-07 19:47:05,970 - INFO : [ONNX-SIM] Clean ONNX Model input node.

2023-09-07 19:47:06,733 - INFO : [ONNX2TFLITE] Start converting to TFLITE.

2023-09-07 19:47:28,511 - INFO : Model optimization done.

2 推理的py文件

模型采用课程中提供的yolov8_slimneck_SIOU.ONNX,转化完模型路径及名称,如下

# 模型

model_path = "/home/lesson3/yolov8_slimneck_SIOU_tflite/yolov8_slimneck_SIOU_fp32.tflite"

# 测试图片路径

image_path = "/home/lesson3/test"

模型推理过程包含如下步骤:

初始化aidlite类并创建aidlite对象

aidlite = aidlite_gpu.aidlite()

print("ok")

加载模型

value = aidlite.ANNModel(model_path, [640 * 640 * 3 * 4], [8400 * 11 * 4], 4, 0)

print("gpu:", value)

包含遍历每一张图片

for root, dirs, files in os.walk(image_path):

num = 0

for file in files:

file = os.path.join(root, file)

frame = cv2.imread(file)

x_scale = frame.shape[1] / 640

y_scale = frame.shape[0] / 640

将图片转换为模型输入的640*640尺寸

img = cv2.resize(frame, (640, 640))

# img_copy=img.co

img = img / 255.0

img = np.expand_dims(img, axis=0)

img = img.astype(dtype=np.float32)

print(img.shape)

传入模型输入数据

aidlite.setInput_Float32(img)

执行推理

start = time.time()

aidlite.invoke()

end = time.time()

timerValue = 1000 * (end - start)

print("infer time(ms):{0}", timerValue)

获取输出

pred = aidlite.getOutput_Float32(0)

# print(pred.shape)

pred = np.array(pred)

print(pred.shape)

pred = np.reshape(pred, (8400, 11))

print(pred.shape) # shape=(8400,11)

后处理,解析输出

boxes, scores, classes = postProcess(pred, confThresh, NmsThresh)

绘制保存图像

ret_img = draw(frame, x_scale, y_scale, boxes, scores, classes)

ret_img = ret_img[:, :, ::-1]

num += 1

image_file_name = "/home/result/res" + str(num) + ".jpg"

8. 保存图片

cv2.imwrite(image_file_name, ret_img)

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    26472

    浏览量

    264107
  • 工业视觉
    +关注

    关注

    0

    文章

    58

    浏览量

    7050
收藏 人收藏

    评论

    相关推荐

    基于YOLOv8实现自定义姿态评估模型训练

    Hello大家好,今天给大家分享一下如何基于YOLOv8姿态评估模型,实现在自定义数据集上,完成自定义姿态评估模型的训练与推理
    的头像 发表于 12-25 11:29 1278次阅读
    基于<b class='flag-5'>YOLOv8</b>实现自定义姿态评估<b class='flag-5'>模型</b>训练

    龙哥手把手教你学视觉-深度学习YOLOV5篇

    调用yolov4训练,调用模型,等labview视觉编程设计从零基础开始的全过程。根据工业视觉外观检测
    发表于 09-03 09:39

    怎样使用PyTorch Hub去加载YOLOv5模型

    PyTorch Hub 加载预训练的 YOLOv5s 模型,model并传递图像进行推理。'yolov5s'是最轻最快的 YOLOv5 型
    发表于 07-22 16:02

    使用Yolov5 - i.MX8MP进行NPU错误检测是什么原因?

    tflite --int8我还尝试过 TFlite 集线器模型,如 SSD 和 mobilenet,它们已经转换为 uint8。 在附件
    发表于 03-31 07:38

    【爱芯派 Pro 开发板试用体验】yolov8模型转换

    尝试将最新的yolov8模型转换为爱芯派的模型。 环境准备 准备Docker环境 首先自己在任意机器上准备好docker环境,详细步骤见官网。 Docker 镜像文件 准备 yolo8
    发表于 11-20 12:19

    使用YOLOv8做目标检测和实例分割的演示

    YOLOv8是来自Ultralytics的最新的基于YOLO的对象检测模型系列,提供最先进的性能。
    的头像 发表于 02-06 10:11 5989次阅读

    TensorRT 8.6 C++开发环境配置与YOLOv8实例分割推理演示

    YOLOv8实例分割TensorRT 推理代码已经完成C++类封装,三行代码即可实现YOLOv8对象检测与实例分割模型
    的头像 发表于 04-25 10:49 3709次阅读
    TensorRT 8.6 C++开发环境配置与<b class='flag-5'>YOLOv8</b>实例分割<b class='flag-5'>推理</b>演示

    AI爱克斯开发板上用OpenVINO™加速YOLOv8分类模型

    本系列文章将在 AI 爱克斯开发板上使用 OpenVINO 开发套件依次部署并测评 YOLOv8 的分类模型、目标检测模型、实例分割
    的头像 发表于 05-05 11:47 600次阅读
    在<b class='flag-5'>AI</b>爱克斯开发板上用OpenVINO™加速<b class='flag-5'>YOLOv8</b>分类<b class='flag-5'>模型</b>

    AI爱克斯开发板上用OpenVINO™加速YOLOv8目标检测模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 分类模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署并测评
    的头像 发表于 05-12 09:08 851次阅读
    在<b class='flag-5'>AI</b>爱克斯开发板上用OpenVINO™加速<b class='flag-5'>YOLOv8</b>目标<b class='flag-5'>检测</b><b class='flag-5'>模型</b>

    AI爱克斯开发板上使用OpenVINO加速YOLOv8目标检测模型

    《在AI爱克斯开发板上用OpenVINO加速YOLOv8分类模型》介绍了在AI爱克斯开发板上使用OpenVINO 开发套件部署并测评YOLOv8
    的头像 发表于 05-26 11:03 722次阅读
    <b class='flag-5'>AI</b>爱克斯开发板上使用OpenVINO加速<b class='flag-5'>YOLOv8</b>目标<b class='flag-5'>检测</b><b class='flag-5'>模型</b>

    教你如何用两行代码搞定YOLOv8各种模型推理

    大家好,YOLOv8 框架本身提供的API函数是可以两行代码实现 YOLOv8 模型推理,这次我把这段代码封装成了一个类,只有40行代码左右,可以同时支持
    的头像 发表于 06-18 11:50 2089次阅读
    教你如何用两行代码搞定<b class='flag-5'>YOLOv8</b>各种<b class='flag-5'>模型</b><b class='flag-5'>推理</b>

    三种主流模型部署框架YOLOv8推理演示

    部署。这里以YOLOv8为例,演示了YOLOv8对象检测模型在OpenVINO、ONNXRUNTIME、TensorRT三个主流框架上C++推理
    的头像 发表于 08-06 11:39 1848次阅读

    OpenCV4.8+YOLOv8对象检测C++推理演示

    自从YOLOv5更新成7.0版本,YOLOv8推出以后,OpenCV4.6以前的版本都无法再加载导出ONNX格式模型了,只有OpenCV4.7以上版本才可以支持最新版本YOLOv5与
    的头像 发表于 09-27 11:07 708次阅读
    OpenCV4.8+<b class='flag-5'>YOLOv</b>8对象<b class='flag-5'>检测</b>C++<b class='flag-5'>推理</b>演示

    用自己的数据集训练YOLOv8实例分割模型

    YOLOv8 于 2023 年 1 月 10 日推出。截至目前,这是计算机视觉领域分类、检测和分割任务的最先进模型。该模型在准确性和执行时间
    的头像 发表于 11-10 16:44 1429次阅读
    用自己的数据集训练<b class='flag-5'>YOLOv8</b>实例分割<b class='flag-5'>模型</b>

    基于OpenCV DNN实现YOLOv8模型部署与推理演示

    基于OpenCV DNN实现YOLOv8推理的好处就是一套代码就可以部署在Windows10系统、乌班图系统、Jetson的Jetpack系统
    的头像 发表于 03-01 15:52 452次阅读
    基于OpenCV DNN实现<b class='flag-5'>YOLOv8</b>的<b class='flag-5'>模型</b>部署与<b class='flag-5'>推理</b>演示