前言
2019年7月,上海作为第一个试运行垃圾分类的城市。当时的微信指数居高不下,引发了非常热烈的社会讨论,原因是上海当时执行得很坚决,社区垃圾桶旁都有带着红袖标的大爷大妈在看着,扔错了现场罚200元。
当时人心惶惶,有很多人担心自己分类不准确被罚款。上海市政府在宣传垃圾分类的时候就在推一个垃圾分类查询的小程序。我当时捕捉到了这个热点,花了一天
时间使用uni-app
快速搭建了一个拍照识别垃圾所属分类的小程序《垃圾分类精灵》(现在还在线,大家可以搜来用
)。在短短半个月里获取到了6w
多用户。
截图展示
我在这个小程序里各种顽梗,比如生成的海报是一个考卷,既然可以拍照识别垃圾分类,那么我想一定有人去识别自己的照片或者给别人拍照,那么我干脆把人类识别出来,并升华一下主题
就是人类,创造了垃圾
由于是第一款可以拍照识别垃圾分类
的小程序,在当时还是小小的火了一把,以至于华为手机都主动找上门,咨询我是如何做到的,AI训练集哪里来的。希望与我合作,把这个拍照识别植入到华为系统的负一屏以及系统相机中。还有智能音箱团队也希望可以和我们合作...
随着合作沟通越聊越深入,华为团队的伙伴们需要我提供的原理介绍越来越多,我发现我快忽悠
不住了。哈哈哈😃~
然后我就拒绝并放弃了合作,因为这背后的原理几乎毫无难度,拿不出手啊~
核心魔法
因为核心的识别不过是使用百度AI接口通用物体和场景识别
,识别出图片主体内容后再去请求垃圾分类关键词搜索接口...
const res = await uniCloud.httpclient.request("https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=clientID&client_secret=clientSecret",{ dataType:"json" }) const access_token = res.data.access_token; const classify_res = await uniCloud.httpclient.request("https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general",{ dataType:"json", method:"POST", data:{ image:event.image, access_token:access_token }, headers:{ "Content-Type":"application/x-www-form-urlencoded" } }) return classify_res.data;
是不是非常简单?
垃圾分类接口
垃圾分类接口是从上海政务服务平台抓取到的一个API
https://sffc.sh-service.com/wx_miniprogram/sites/feiguan/trashTypes_2/Handler/Handler.ashx?a=EXC_QUERY&kw=关键词
把图片的识别结果拿来请求这个接口就可以拿到分类查询结果了。大部分城市的垃圾分类都是分为四类,叫法上有两种区别,上海的湿垃圾
= 北京的厨余垃圾
,干垃圾
= 其它垃圾
针对用户选择的城市不同,转换一下分类查询结果即可
结语
这么简单的东西也拿出来分享让大家见笑了,不过我个人是很享受这样的技术微创新,换一个思路来解决问题或者提升用户体验。就像变魔术一样,只是当魔术被揭秘之后,大家可能就容易忽略掉这个魔术在原创时的闪光点了