位置: 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实现登录)

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

  • 企业培训网培训类公司的经营范围是什么

    企业培训网培训类公司的经营范围是什么

  • iphone如何批量删除联系人(iphone如何批量删除电话通讯录联系人)

    iphone如何批量删除联系人(iphone如何批量删除电话通讯录联系人)

  • 华为荣耀9xpro有没有录屏功能(荣耀9xpro使用说明)

    华为荣耀9xpro有没有录屏功能(荣耀9xpro使用说明)

  • 任天堂日版和国行区别

    任天堂日版和国行区别

  • 微信光速抢票抢不到可以退吗(微信光速抢票抢不到可退费吗)

    微信光速抢票抢不到可以退吗(微信光速抢票抢不到可退费吗)

  • 桌面管理器怎么打开(桌面管理器怎么调出来)

    桌面管理器怎么打开(桌面管理器怎么调出来)

  • iphone11热点自动关闭(苹果11开热点自动关闭)

    iphone11热点自动关闭(苹果11开热点自动关闭)

  • 户户通e35没有信号(户户通无信号怎么办)

    户户通e35没有信号(户户通无信号怎么办)

  • 苹果耳机反磁是什么意思(苹果蓝牙耳机反磁坏了怎么修理)

    苹果耳机反磁是什么意思(苹果蓝牙耳机反磁坏了怎么修理)

  • 手机卡不在身边怎么收到验证码(手机卡不在身边怎么注销)

    手机卡不在身边怎么收到验证码(手机卡不在身边怎么注销)

  • 流量超了自动断网怎么开启(流量超了自动断流怎么办)

    流量超了自动断网怎么开启(流量超了自动断流怎么办)

  • 苹果仿生处理器是什么意思(苹果仿生处理器好不好)

    苹果仿生处理器是什么意思(苹果仿生处理器好不好)

  • 华为手表和手环的区别(华为手表和手环怎么选)

    华为手表和手环的区别(华为手表和手环怎么选)

  • 华为手机悬浮球怎么打开(华为手机悬浮球怎么关闭)

    华为手机悬浮球怎么打开(华为手机悬浮球怎么关闭)

  • 怎么录制mp3格式的录音(怎么录制mp3格式的录音视频)

    怎么录制mp3格式的录音(怎么录制mp3格式的录音视频)

  • ps自带的字体可以商用吗(ps自带的字体可以修改吗)

    ps自带的字体可以商用吗(ps自带的字体可以修改吗)

  • 入驻京东自营找谁(京东自营入驻注意事项)

    入驻京东自营找谁(京东自营入驻注意事项)

  • 抖音怎么合拍别人视频(抖音怎么合拍别人的文案视频)

    抖音怎么合拍别人视频(抖音怎么合拍别人的文案视频)

  • 苹果xra2108是什么版本(苹果手机xr型号a2108)

    苹果xra2108是什么版本(苹果手机xr型号a2108)

  • lldal00什么型号(lldal00是华为什么型号手机)

    lldal00什么型号(lldal00是华为什么型号手机)

  • 华为p30pro隐藏呼吸灯(华为p30通话界面隐藏)

    华为p30pro隐藏呼吸灯(华为p30通话界面隐藏)

  • aoltsmon.exe是什么进程 aoltsmon进程信息查询(autoreg.exe)

    aoltsmon.exe是什么进程 aoltsmon进程信息查询(autoreg.exe)

  • 解决办法‘npm‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。(解决办法总比困难多)

    解决办法‘npm‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。(解决办法总比困难多)

  • CV:计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念)、早期/中期/近期应用领域(偏具体应用)、经典CNN架构(偏具体算法)概述、常用工具/库/框架/产品、环境安装、常用数据集、编程技巧(cv计算机视觉定义)

    CV:计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念)、早期/中期/近期应用领域(偏具体应用)、经典CNN架构(偏具体算法)概述、常用工具/库/框架/产品、环境安装、常用数据集、编程技巧(cv计算机视觉定义)

  • 如何办理车辆购置置换补贴手续
  • 小规模纳税人的认定标准是什么
  • 卖家电税是多少
  • 税务季报利润表的本年累计可以更改吗
  • 商品进销差价在贷方代表什么
  • 生产型企业出口退税计算公式
  • 劳务费免税发票的政策规定
  • 机票发票打印有效期多久
  • 企业支付给生产车间
  • 合并报表长期股权投资怎么算
  • 其他综合收益转入留存收益还是投资收益
  • 无形资产增资需要缴纳个税吗
  • 一般纳税人出售固定资产税率
  • 食品发票可以抵扣所得税吗
  • 不同税额怎么抵扣
  • 小型微利企业所得税优惠政策
  • 重置申报清册是什么意思
  • 成本费用怎么做分录
  • 国税申报纳税调整项目怎么填的?
  • 应收账款的借方负数表示什么
  • 物流公司怎么进去工作的
  • 公司销售的产品自用如何记账
  • 广告制作包括印花吗
  • 企业增值税征收范围包括
  • php生成文件流
  • dgservice.exe是什么
  • PHP:mb_convert_variables()的用法_mbstring函数
  • cpqa1000.exe是安全进程吗 cpqa1000进程有什么作用
  • linux怎么打开makefile
  • 解决安装后软件icon一圈白边问题
  • 自愿放弃增值税优惠怎么写
  • 代订机票发票可以入账吗
  • 配置nginx支持php
  • php实现文件上传需要使用哪个全局变量
  • 3d检测软件
  • 专票如何申领
  • idea如何导入sql文件
  • vue项目使用百度地图怎么长久使用
  • 计算机视觉opencv 有什么项目
  • 2021所得税季报怎么填
  • 未分配利润在科目余额表里怎么看
  • 设计服务的成本票可以暂估吗
  • 适用会计准则或会计制度(填写代码)
  • 承兑汇票贴现利率是怎么算
  • sql数据库移动
  • 社会团体费用报销制度
  • 分公司是独立的诉讼主体吗
  • 完税证明可以做为证据使用吗
  • 购入商品再卖出
  • 退教育费附加税怎么申报
  • 对于相关人员培训存在的问题
  • 收到服务费发票可以计入什么科目
  • 上年度财务费用会计分录
  • 帮别人注册医疗器械法人有风险吗
  • 网吧出售
  • 简易计税转出
  • 未确认融资费用借贷方向
  • 汇算清缴从业人数平均值怎么算
  • 多栏式明细账的账页格式适用于
  • 出现错误,请联系客服
  • windows命令行使用
  • win7开机taskeng
  • win8系统打开苹果系统文件
  • macbookair如何隐藏文件
  • 系和系怎么区分
  • Win10怎么打开屏幕键盘
  • win8开机进不了桌面
  • win7怎么看磁盘
  • 优化太差
  • 权作记录 cocos2dx
  • python如何判断一个变量的类型
  • Unable to execute dex: Multiple dex files define 解决方法
  • dos help命令
  • js如何修改style
  • javascript基本语句
  • bootstrap需要学多久
  • 税控盘如何查询上报汇总成功
  • 缴纳个人所得税怎么计算
  • 公司零申报可以交社保吗
  • 餐饮财务分析表怎么写的啊
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设