位置: IT常识 - 正文

yolov5部署+微信小程序前端展示(yolov5部署微信小程序)

编辑:rootadmin
yolov5部署+微信小程序前端展示

推荐整理分享yolov5部署+微信小程序前端展示(yolov5部署微信小程序),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:yolov4部署,yolov3部署,yolov5部署到mcu,yolov5搭建,yolov5部署到mcu,yolov3部署,yolov5部署到mcu,yolov5部署到mcu,内容如对您有帮助,希望把文章链接给更多的朋友!

分为yolov5项目部署和微信小程序两部分,先介绍微信小程序前端展示+flask后端,之后介绍项目部署这部分。

一、先上效果图

1. 点击选择图片,调用摄像头选择图片

2.选择图片之后,点击开始检测,然后返回结果

 ​​​​​​​

 二、前端代码

wxml文件:

view class="container"> <view> <image src="{{avatarUrl}}" class=".img" bindtap="imgClick"></image> <button bindtap="chooseimg" class=".btn_select">选择图片</button> <button form-type="submit" class=".btn_submit" bindtap="submitimg">开始检测</button> </view> <view class="text-container"> <view>{{name_and_nums}}</view> <view class="text" wx:for="{{names}}">{{item.name}}: {{item.value}} </view> </view> </view>yolov5部署+微信小程序前端展示(yolov5部署微信小程序)

js文件,分为两部分,一部分是调用摄像头,另一部分是图片检测

1. 数据定义:

data: { avatarUrl: 'res.png', base64imgurl: null, name_num: '', names: [], name_and_nums: '' },

2. 调用摄像头,使用微信小程序中的wx.chooseImage接口,并使用wx.setStorage接口对图片路径进行保存。代码:

chooseimg: function() { var that = this // 选择图片 wx.chooseImage({ count: 1, sizeType: ['original', 'compressed'], sourceType: ['album', 'camera'], success(res) { // tempFilePath可以作为 img 标签的 src 属性显示图片 var tempFilePaths = res.tempFilePaths console.log(tempFilePaths) that.setData({avatarUrl:tempFilePaths[0]}) console.log(tempFilePaths[0]) wx.setStorage({key:'img_path', data: tempFilePaths[0]})}

3. 先使用wx.getImageInfo获取上一步保存的图片格式(png/jpg等),然后调用wx.uploadFile接口,将图片上传到服务器,然后使用训练好的权重参数对图片进行检测,然后返回结果,因为返回的结果是一种图像流。为了在前端对图片进行展示,需要在图片编码前加字段:‘data:image/png;base64’,将图片格式转换为base64格式。代码:

submitimg: function(){ var img_path var that wx.getImageInfo({ src: img_path, success(res){ imgtype = res.type console.log(imgtype) } }) wx.uploadFile({ filePath: img_path, name: 'image', url: '服务器地址', // 上传成功! success(res){ console.log(res) var img_data = JSON.parse(res.data).data.image var base64str_img = 'data:image/' + imgtype + ';base64,' + img_data that.setData({avatarUrl: base64str_img}) // 上传失败 fail(){ console.log('--failed--') } }) }}(PS:在前端定义了传入的数据名为image,所以,flask后端接收数据名也同样为image)//前端:wx.uploadFile({ filePath: img_path, name: 'image', url: 服务器地址})//后端img_file = request.files["image"]三、后端代码

后端这里使用的是flask,这部分的使用相对比较简单

1. 因为model返回的结果是一个list,里面有dict组成,主要就是框的左上角、右下角左边、类别以及类别名。之后对这个result进行处理,写一个画图的py文件,根据输入的图像和得到result画框,将画框后的结果保存到save_path中,然后再将图像格式进行转换为base64(返回的数据格式:(这里的img_res已经是经过画框之后的结果))

2. 然后因为前端的要求,返回的形式需要用json格式,同时也需要将返回结果放在data里面,方便前端读取后端返回的数据。

@app.route(DETECTION_URL, methods=["POST"])def predict(): if request.method != "POST": return jsonify({"code": 2, "msg": "the request method is error!", "data": {"isSecret": "null"}}) if request.files.get("image"): # 将读取的图片流转换为图片格式 im_file = request.files["image"] im_bytes = im_file.read() im = Image.open(io.BytesIO(im_bytes)) #将图片输入到模型中,输出的结果是一个list,带有坐标类别等信息 results = model(im, size=640) # reduce size=320 for faster inference # 预测的结果(坐标 种类 置信度) result = results.pandas().xyxy[0].to_json(orient="records") img_res = '' with open(save_path, 'rb') as f: img_res = f.read() img_res = base64.b64encode(img_res) return jsonify({ "data": {"detect_res": "yes", "image": str(img_res, 'utf-8')}})if __name__ == "__main__": torch.hub._validate_not_a_forked_repo = lambda a, b, c: True model = torch.hub.load("path", "custom", path="./best.pt", source="local", force_reload=False) # force_reload to recache

最后!总结一下,之前刚开始要做的时候,感觉还挺难的,真的开始做的时候,感觉还行(虽然做的比较简单,页面也不是很好看,css一生之敌!!!) 

之后,会学一下项目的部署,目前用的是别人部署好的,但是还是要自己学学的!!!

ps:为什么会写这个博客呢?因为在刚开始找资料的时候,找到一个博客,感觉和我的需求一样,于是就点进去看,结果是一个购买链接,还卖399!!!就这么个东西就399!!我表示很无语,就决定自己写好了之后一定要公开!!!如果大家有什么问题,可以留言,我们一起共同学习!!!

本文链接地址:https://www.jiuchutong.com/zhishi/299038.html 转载请保留说明!

上一篇:Flask实现用户登录注册(附前后端源码)(flask实现登录)

下一篇:图像处理——图像增强(图像处理入门)

  • APP运营推广该如何精准投放广告?(app运营推广是干什么)

    APP运营推广该如何精准投放广告?(app运营推广是干什么)

  • 手机放口袋里总是自动触屏怎么办(手机放口袋里总是自动亮屏)

    手机放口袋里总是自动触屏怎么办(手机放口袋里总是自动亮屏)

  • 抖音粉丝团升级经验每一级需要多少抖币(抖音粉丝团升级到12级需要多久)

    抖音粉丝团升级经验每一级需要多少抖币(抖音粉丝团升级到12级需要多久)

  • 拼多多店铺名怎么改(拼多多店铺名怎么取名)

    拼多多店铺名怎么改(拼多多店铺名怎么取名)

  • 美图秀秀怎么加水印(美图秀秀怎么加满屏水印)

    美图秀秀怎么加水印(美图秀秀怎么加满屏水印)

  • 快手消息里面怎样设置小红点(快手消息里面怎么删除)

    快手消息里面怎样设置小红点(快手消息里面怎么删除)

  • flash模式是什么意思(flash mode)

    flash模式是什么意思(flash mode)

  • 苹果手机下载东西一直获取不了(苹果下载软件手机)

    苹果手机下载东西一直获取不了(苹果下载软件手机)

  • 显示对方未添加你为好友(显示对方未添加你为好友但消息能发)

    显示对方未添加你为好友(显示对方未添加你为好友但消息能发)

  • wifi direct是什么意思(wifi director)

    wifi direct是什么意思(wifi director)

  • 苹果6s耗电巨快(苹果6s耗电快是怎么回事)

    苹果6s耗电巨快(苹果6s耗电快是怎么回事)

  • 淘宝下单怎么备注(淘宝下单怎么备注手机型号)

    淘宝下单怎么备注(淘宝下单怎么备注手机型号)

  • 微信扫一扫添加不到桌面(微信扫一扫添加好友)

    微信扫一扫添加不到桌面(微信扫一扫添加好友)

  • 华为手机没有来电显示怎么回事(华为手机没有来电声音怎么回事)

    华为手机没有来电显示怎么回事(华为手机没有来电声音怎么回事)

  • iphonexs停产了吗?(iphonexs停产了还买得到吗)

    iphonexs停产了吗?(iphonexs停产了还买得到吗)

  • 优酷一个号能几个人登(优酷一个号能几个手机登)

    优酷一个号能几个人登(优酷一个号能几个手机登)

  • 小米回收站删除的照片能找回吗(小米回收站删除的视频能找回吗)

    小米回收站删除的照片能找回吗(小米回收站删除的视频能找回吗)

  • 拼多多账号怎么注册(拼多多账号怎么解绑手机号)

    拼多多账号怎么注册(拼多多账号怎么解绑手机号)

  • 魅族16sPro怎么备份数据(魅族16备份怎么恢复)

    魅族16sPro怎么备份数据(魅族16备份怎么恢复)

  • 苹果怎么设置闹钟5分钟重复(苹果怎么设置闹钟震动)

    苹果怎么设置闹钟5分钟重复(苹果怎么设置闹钟震动)

  • word怎么设置上标表示形式(word怎么设置上角标)

    word怎么设置上标表示形式(word怎么设置上角标)

  • 考虫的课如何永久保存(考虫课怎么永久保留?)

    考虫的课如何永久保存(考虫课怎么永久保留?)

  • vivos1pro运行内存有8g嘛(vivos1运行内存多大)

    vivos1pro运行内存有8g嘛(vivos1运行内存多大)

  • 苹果x是高通基带吗

    苹果x是高通基带吗

  • 虎扑如何升级发帖(虎扑怎样升级)

    虎扑如何升级发帖(虎扑怎样升级)

  • 服务器停止响应是什么意思(为什么服务器停止响应)

    服务器停止响应是什么意思(为什么服务器停止响应)

  • wltuser.exe是什么进程?wltuser.exe可以清除吗?(wirecut.exe)

    wltuser.exe是什么进程?wltuser.exe可以清除吗?(wirecut.exe)

  • 视同销售发放福利的会计分录
  • 所得税申报表营业成本填什么数据
  • 贴现法付息的有效年利率
  • 一次性加速折旧汇算清缴怎么填报
  • 已经作废的发票还需要申报吗
  • 民间非营利机构加班费记什么科目
  • 个人独资企业没有申报税的后果
  • 公司转给法人备注怎么填
  • 新开商贸公司怎么做账和报税
  • 事业单位财务收支
  • 发票种类和适用范围
  • 筹建期间有收入怎么办
  • 银行回单少了一笔
  • 企业的固定资产因自然灾害产生的净损失应计入哪里
  • 应入固定资产的已做费用,如何调账
  • 开出转账支票的摘要怎么写
  • 开增值税票需要合同吗
  • 已开专票在哪里查询
  • 实收资本入账价值怎么算
  • 怎么把公司账户的钱转到个人账号
  • 小规模纳税人有销无进是什么意思
  • 以前年度费用漏记了怎么办小企业会计准则
  • win10系统的电脑能装win7吗
  • wordpress访问速度优化
  • 上月多计提的所得税怎么做分录
  • 收到退款的会计分录
  • php ftp上传文件
  • php数组函数面试题
  • 股权转让要交什么税举例
  • Ant Design Pro(5)-7.高级表格ProTable
  • php $_files
  • 结算劳务外包的工作内容
  • 微信小程序获取手机号
  • 捐赠所得属于什么会计科目
  • 税务稽查的进项税怎么处理
  • 单位车辆车船使用税滞纳金如何交
  • 搜索人工制造
  • win11的截屏
  • vue点击按钮显示对应的内容
  • Java+JSP+Mysql+Tomcat实现Web图书管理系统
  • 企业开负数发票退货后怎么处理?
  • 织梦安装数据库一直连接失败
  • sqlserver2008还原数据库 错误3624
  • 不含税货款要开发票怎么弄
  • 折现指标和非折现指标
  • 劳务派遣差额征税政策
  • 劳动仲裁赔偿款会计分录
  • 项目差旅费可以直接计入劳务成本吗
  • 成本核算方法是资源到作业,作业到产品吗?
  • 免税设备是什么意思
  • 困难行业企业包括哪四大类
  • 工资代发户怎么开
  • 进口关税税款的计税依据
  • 工程款项目的发包人是谁
  • 总部结算什么意思
  • 私企做会计风险大吗
  • 怎么设置现金流
  • bios密码忘记了要怎么重置
  • mscorsvw.exe是什么进程
  • 双屏windows
  • w10强制更新怎么关闭
  • win7怎么设置禁止安装软件
  • linux中修改root密码
  • 错误代码0x8007007B
  • 如何给win7系统升级
  • shader cull
  • 安卓deprecated
  • python函数菜鸟教程
  • unity总结
  • 天气球球怎么下载
  • nodejs怎么连接mysql
  • python所有语句
  • 中国有多少人2022
  • 重庆地方税务局12366
  • 国家税务局文件查询
  • 浪潮报销软件安装
  • 非居民企业通俗指
  • 西安税务总局
  • 股权转让和大宗转让区别
  • 广东省广州电子税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设