AI 助力垃圾分类
AI Rubbish Sort
信息
作者 上虞外国语学校 八(六)班 方宇祺
说明
开展生活垃圾分类,推行垃圾减量化,资源化,无害化,是对传统生产生活方式的一场变革,是一项长期,复杂的系统工程.
为了使人们更方便地垃圾分类,特制作此工具 识别摄像头图像并给出其垃圾种类
安装
环境
系统
Windows XP 及以上
Linux 和 MacOS 暂未测试
软件环境
Python 3.8.x
推荐 3.8 版本 某些包可能不支持更新的版本
Python 包
Numpy
OpenCV
Pillow
Requests
BaiduAip
pip config setglobal.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip installnumpy
pip installopencv-python
pip installpillow
pip installrequests
pip installbaidu-aip
使用
为了保证分类信息能及时更新
在第一次使用前需要更新程序
您可以在Gitee或GitHub仓库中下载update.zip
解压后覆盖原文件
然后创建temp文件夹(由于git不支持提交空文件夹 所以需要手动创建)
python main.py
./main.exe
注:Python源文件只能在终端中使用(例如 cmd 或 python 命令行),不能在 ILDE 中 run,否则某些字符渲染会出现错误
main.exe不是最终的可执行文件 虽然可以不用装库 但是依然需要data和temp文件夹
等待摄像头打开后,在弹出的窗口中按s识别图像并分类
再按一次s关闭分类详情
在终端按ctrl+c退出程序(注意:摄像头窗口的关闭按钮没有用)
配置
{
"AIP_APP_ID":"23755448",
"AIP_API_KEY":"kgorBoB0eUNHNDINtHxSsfMV",
"AIP_SECRET_KEY":"XzeGbLN9sCyehQnle6mPIz8Gshaky1K3",
"DISPLAY_FONT_PATH":"data//simhei.ttf",
"CAPTURE_ID":0,
"KEY":"s"
}
AIP_APP_ID:
AIP 的 APP_ID 参数
AIP_API_KEY:
AIP 的 API_KEY 参数
AIP_SECRET_KEY:
AIP 的 SECRET_KEY 参数
以上 3 个参数需要在百度智能云
概览-应用-创建应用
接口选择中勾选图像识别
申请完成后在应用详情中复制 3 个参数到settings.json中
DISPLAY_FONT_PATH:
字体路径 默认为自带的黑体(./data/simhei.ttf)
有需要可以改为其他字体
CAPTURE_ID:
摄像头 ID 默认为0(即内置摄像头)
外置摄像头为1
KEY:
触发识别的按键 默认为s
可以改为其他键
注:这些设置不能热更新 需要重启程序
错误提交
当您发现程序中存在 BUG 时可以在Gitee或GitHub发 ISSUE
鸣谢
感谢这些超棒的库
常见问题
包安装报错
使用镜像源然后重新下载
启动程序时报错
cv2.error: /build/opencv-SviWsf/opencv-2.4.9.1+dfsg/modules/highgui/src/window.cpp:269: error: (-215) size.width>0 && size.height>0 in functionimshow
或者
Traceback (most recent call last):
File "main.py", line 103, in
shape = frame.shape
'NoneType' object has no attribute shape
排查:
检查您的设备是否有摄像头
更改settings.json中摄像头ID
查找是否有程序占用摄像头
如果都不行:
换个设备
按下s键闪退
Traceback (most recent call last):
File "main.py", line 47, in
cv2.imwrite(os.path.join(execution_path, 'temp//get_camera.jpg'),
No such file or dictonary
排查:
检查您是否创建了temp文件夹
检查本程序的路径中是否包含中文
如果有,请将文件夹拷贝到其他文件夹 重启程序
检查您是否有文件夹的写入权限
无法运行main.exe
此文件的版本与正在运行的windows版本不兼容
编译时使用64位机器编译 故不支持32位机器
运行源代码
THE END.