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

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

  • 苹果手机表情包在哪里(苹果手机表情包输入法)

    苹果手机表情包在哪里(苹果手机表情包输入法)

  • 华为mate30pro扬声器杂音怎么回事 (华为mate30pro扬声器在哪里设置)

    华为mate30pro扬声器杂音怎么回事 (华为mate30pro扬声器在哪里设置)

  • 直播者能看到对方吗(直播者能看到看直播的人吗)

    直播者能看到对方吗(直播者能看到看直播的人吗)

  • 黑鲨2和黑鲨2pro的区别(黑鲨2和黑鲨2pro参数对比)

    黑鲨2和黑鲨2pro的区别(黑鲨2和黑鲨2pro参数对比)

  • 网络速度433mbps是多快(网络速度有点问题)

    网络速度433mbps是多快(网络速度有点问题)

  • 拼多多退回件是什么意思(拼多多退回件是什么快递)

    拼多多退回件是什么意思(拼多多退回件是什么快递)

  • 红米k20pro升降摄像头容易坏吗(红米k20pro升降摄像头怎么用)

    红米k20pro升降摄像头容易坏吗(红米k20pro升降摄像头怎么用)

  • 苹果微信一发语音顶部就消失(iphone微信发语音老是一秒就发出去)

    苹果微信一发语音顶部就消失(iphone微信发语音老是一秒就发出去)

  • 剪线键盘什么意思(剪线键盘是哪里来的)

    剪线键盘什么意思(剪线键盘是哪里来的)

  • 电话拨号连接是计算机个人用户常用的接入(电脑拨号电话机)

    电话拨号连接是计算机个人用户常用的接入(电脑拨号电话机)

  • 笔记本电脑显示未检测到电池是怎么回事(笔记本电脑显示windows未能启动怎么办)

    笔记本电脑显示未检测到电池是怎么回事(笔记本电脑显示windows未能启动怎么办)

  • 百家号头像为什么审核通过不了(百家号头像为什么修改不了)

    百家号头像为什么审核通过不了(百家号头像为什么修改不了)

  • 华为终端和华为的区别(华为终端和华为技术的区别)

    华为终端和华为的区别(华为终端和华为技术的区别)

  • 域名的主要作用(域名的主要作用是什么)

    域名的主要作用(域名的主要作用是什么)

  • 多媒体的4个基本特征(多媒体的六种基本元素)

    多媒体的4个基本特征(多媒体的六种基本元素)

  • 微信收款信息如何共享(微信收款信息如何设置声音)

    微信收款信息如何共享(微信收款信息如何设置声音)

  • 怎样用手机充值市民卡啊(怎样用手机充值粤通卡)

    怎样用手机充值市民卡啊(怎样用手机充值粤通卡)

  • 微信群怎么看谁是管理员(微信群怎么看谁退出了群聊)

    微信群怎么看谁是管理员(微信群怎么看谁退出了群聊)

  • 手机云空间怎么清理(手机云空间怎么打开)

    手机云空间怎么清理(手机云空间怎么打开)

  • 苹果11怎么更换微信提示音(苹果11怎么更换手机铃声)

    苹果11怎么更换微信提示音(苹果11怎么更换手机铃声)

  • 喵喵机打印不出来怎么办(喵喵机打印不出纸)

    喵喵机打印不出来怎么办(喵喵机打印不出纸)

  • 社保未支付订单怎么取消(社保未支付订单怎么取消不了)

    社保未支付订单怎么取消(社保未支付订单怎么取消不了)

  • 知道QQ号码怎么添加微信(知道qq号码怎么偷密码)

    知道QQ号码怎么添加微信(知道qq号码怎么偷密码)

  • 华为p30pro都有什么功能(华为p30pro强大功能有哪些)

    华为p30pro都有什么功能(华为p30pro强大功能有哪些)

  • 手机号码怎么备份到另一个手机(手机号码怎么备注名称)

    手机号码怎么备份到另一个手机(手机号码怎么备注名称)

  • 网络端口被占用(网络端口被占用怎么解决)

    网络端口被占用(网络端口被占用怎么解决)

  • 全国增值税发票查验平台入口
  • 增值税专票如何作废
  • 哪些情况需要提高警惕小心毒品
  • 增值税核算应设置什么
  • 汽车销售分期付款的账务处理
  • 资金收益率计应收账款吗
  • 黄金销售免税
  • 社群运营收入怎么样
  • 银行贷款第三方收款人
  • 全年一次性奖金税率表
  • 发票打印机贵吗
  • 豆粕适用税率
  • 预交土地增值税怎么计算公式
  • 营业外收入包括其他业务收入吗
  • 差旅费企业所得税扣除
  • 员工垫付公司费用法规
  • 开增值税发票开户行怎么填?
  • 查账征收企业所得税申报表怎么填
  • 小规模季度不超过45万的税收优惠
  • 稳岗补贴需要交个税吗
  • 增值税普通发票有什么用
  • 劳务公司开的专票需要交税吗
  • 印花税如何进行税种认定
  • 有限合伙的定义
  • 跨区域个人所得税延期情况说明
  • 专用发票不报销对公司有影响吗
  • 土地抵扣进项税,,能调回来吗
  • 计提固定资产减值准备会计科目
  • 其他业务收入借贷方向会计分录
  • 进项税额暂不转出情况说明怎么写
  • 报销通行费会计分录
  • mac系统怎么更改输入法
  • 会计科目按经济类型分类
  • linux服务器nfs安装
  • dedecms主页修改
  • 苹果 macOS 13.3 开发者预览版 Beta 2 发布
  • 股东变更股权转让未分配利益
  • 返点收入怎么会计分录
  • php删除数据
  • php安装扩展fileinfo
  • 存货核算有哪些内容
  • 有关厉元朗的小说
  • 路径规划是什么意思
  • 前后端分离弊端
  • ps一个页面怎么选中画板
  • python怎么将整数转化为字符串
  • 织梦图集的使用教程
  • 织梦栏目描述调用
  • 数组和结构体
  • 交易性金融资产入账价值怎么计算
  • 营业外收入 销项税
  • 会计需要装订资料有哪些
  • 伤残鉴定中心流程
  • 生产企业的生产许可证
  • 简易征收的税款可以抵减
  • 当期免抵税额和免抵退税额的区别
  • 企业所得税缴纳模式
  • 错开发票所需要提供的资料以及时效要求是?
  • 金税盘买发票还要填交验旧表吗?
  • win8已共享但别电脑无权限
  • xp系统中制作动画的软件
  • services.exe修改注册表
  • 宏基aspire s3适用固态硬盘
  • win7怎么添加此电脑
  • win10系统运行速度慢
  • 红帽企业版更新了吗
  • windows7压缩文件图标
  • win7系统怎么禁止更新
  • Unity3D游戏开发引擎
  • 深入理解ffmpeg pdf
  • 基于JAVASCRIPT实现的可视化工具是
  • js settimeout用法
  • td nowrap css nowrap使用说明于注意事项
  • js 获取图片大小
  • 星球大战与高达的关系
  • Shell、Perl、Python、PHP访问 MySQL 数据库代码实例
  • java script入门
  • 惠州市房产交易税费征收标准
  • 城市维护建设税属于什么科目
  • 电影失眠详细剧情
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设