作者 / wwcheng公众号 / 15Seconds
垃圾分类还需要考虑猪的感受???
小龙虾的虾黄是什么垃圾?小龙虾的壳是什么垃圾?小龙虾的肉是什么垃圾?粽叶是什么垃圾?粽肉是什么垃圾?你是什么垃圾?(小龙虾都要哭了。。)
如果真的是按照这个分类的话,那真是吃小龙虾一时爽,打扫战场愁断肠啊!
也许这些追问显得有些较真和搞笑,但也真实地表明近期人们对于垃圾分类的关注。
今天的内容,是讨论如何利用人工智能对垃圾进行分类,从而让大家有吃小龙虾、喝奶茶的资格不再为垃圾丢哪里而烦恼。
前段时间接触了百度AI,今天的内容依然是借助百度AI开放平台,用Python对垃圾图片进行物体识别,再通过相关的垃圾分类查询网站进行分类,最终实现Python简易版的垃圾分类。
一、程序效果图
双击exe文件即可运行,不需要任何编程环境。
二、准备工作
导入网络爬虫常用的模块
- from bs4 import BeautifulSoup
复制代码 三、导入图片
首先需要对图片进行64位编码(将图片数据编码成一串字符串,使用该字符串代替图像地址)。
导入图片函数如下:
- dlg = win32ui.CreateFileDialog(1)
复制代码- dlg.SetOFNInitialDir(os.path.abspath(os.curdir))
复制代码- image_path = dlg.GetPathName()
复制代码- f = open(image_path, 'rb')
复制代码- image = base64.b64encode(f.read())
复制代码 四、物体识别
图像物体识别是人工智能的典型案例。输入一张图片,就能得到这张图片中的物体名称或者场景名称。
我这里采用的是百度AI的通用物体和场景识别API来实现垃圾图像的识别。借助百度较为成熟开放的技术,省去我们搜集图像样本,建立模型的时间。
物体识别函数如下:
- def baiduai_query(image):
复制代码- request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general"
复制代码- access_token = '24.40a71124704aa4cd793357f9fc2782c0.2592000.1565068326.282335-16728698'
复制代码- request_url = request_url + "?access_token=" + access_token
复制代码- data = parse.urlencode({"image": image})
复制代码- headers = {'Content-Type': 'application/x-www-form-urlencoded'}
复制代码- request = requests.post(request_url, data=data, headers=headers)
复制代码- r = json.loads(request.text)
复制代码- key1 = r['result'][0]['keyword']
复制代码- key2 = r['result'][1]['keyword']
复制代码 五、垃圾分类
借助网站(https://lajifenleiapp.com/) 对图像识别结果进行爬取,最终返回分类结果。
- def lajifenlei_query(query_word):
复制代码- request = requests.get("https://lajifenleiapp.com/sk/"+query_word)
复制代码- soup = BeautifulSoup(request.text, 'lxml')
复制代码- respose = soup.find_all('div', attrs={'class': 'row'})
复制代码- pattern = re.compile(r".*?属于.*?", re.S)
复制代码- if re.match(pattern, respose[2].text):
复制代码- print(respose[2].text.strip()+'\n')
复制代码- print(respose[4].text.strip())
复制代码- print(respose[5].text.strip())
复制代码- print(respose[6].text.strip().replace('\n\n', ''))
复制代码- result = 'https://lajifenleiapp.com/ 网站暂未收录\“%s\”的相关垃圾分类信息' % query_word
复制代码 六、程序入口
最后,添加循环和程序入口,最终封装为可执行文件(exe)。
- query_word = baiduai_query(image)
复制代码- print('AI识别结果1'.center(40, '-'))
复制代码- lajifenlei_query(query_word[0])
复制代码- print('AI识别结果2'.center(40, '-'))
复制代码- lajifenlei_query(query_word[1])
复制代码- print('识别结束'.center(40, '-'))
复制代码- if __name__ == '__main__':
复制代码- str = input('\n'+"输入1开始识别图片并分类,输入0结束程序:")
复制代码- str = input('\n'+"输入1开始识别图片并分类,输入0结束程序:")
复制代码 [code][/code]
结语
上面这些都是人工智能与实际生活相结合的一些案例,我相信在将来肯定会实现,但是实现的过程确实充满艰辛,这对物体识别的精确度要求非常高,之前目前的水平还达不到。图片内的物品数量、图片自身的素质等问题短期内都难以解决。虽然前路不易,但是我对人工智能的未来却更为期待。
本公众号工具会在Github上正式发布和后续更新。
Github项目地址:https://github.com/nigo81/tools-for-auditor
微信公众号:15Seconds
订阅公众号之后,在后台回复“tools”可获取15Seconds公众号所有工具!
[/url][url=http://mp.weixin.qq.com/s?__biz=Mzg5MjI1ODE2OA==&mid=2247483711&idx=1&sn=0495ed731c88e56146c051297d1c8bf2&chksm=cfc19328f8b61a3e0887b3e8552b5220e8de478dbd752cac65808ef83bc97f0412116a9b0483&scene=21#wechat_redirect]往期文章:百度AI,带你体验全新的百度大脑
[/url][url=http://mp.weixin.qq.com/s?__biz=Mzg5MjI1ODE2OA==&mid=2247483711&idx=1&sn=0495ed731c88e56146c051297d1c8bf2&chksm=cfc19328f8b61a3e0887b3e8552b5220e8de478dbd752cac65808ef83bc97f0412116a9b0483&scene=21#wechat_redirect]往期文章:利用Excel获取金融大数据
喜欢我制作的工具,可以点击右下角“在看”或者分享,谢谢大家订阅与支持!
|
|