# AI Rubbish Sort **Repository Path**: TimFangDev/ARS ## Basic Information - **Project Name**: AI Rubbish Sort - **Description**: Python垃圾分类 & 程序设计比赛项目 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2021-03-12 - **Last Updated**: 2024-04-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
![](icon.ico) # AI 助力垃圾分类 AI Rubbish Sort
--- ## 信息 - 作者 上虞外国语学校 八(六)班 方宇祺 - 开源许可证 [GPL v3](LICENSE) - 源代码仓库 [Gitee](https://gitee.com/TimFangDev/ARS)/[GitHub](https://github.com/Tim-Fang/AI-Rubbish-Sort) --- ## 说明 开展生活垃圾分类,推行垃圾减量化,资源化,无害化,是对传统生产生活方式的一场变革,是一项长期,复杂的系统工程. 为了使人们更方便地垃圾分类,特制作此工具 识别摄像头图像并给出其垃圾种类 --- ## 安装 ### 环境 - 系统 - Windows XP 及以上 - Linux 和 MacOS 暂未测试 - 软件环境 - Python 3.8.x _推荐 3.8 版本 某些包可能不支持更新的版本_ - Python 包 - Numpy - OpenCV - Pillow - Requests - BaiduAip ```bash pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip install numpy pip install opencv-python pip install pillow pip install requests pip install baidu-aip ``` --- ## 使用 为了保证分类信息能及时更新 在第一次使用前需要更新程序 您可以在[Gitee](https://gitee.com/TimFangDev/ARS)或[GitHub](https://github.com/Tim-Fang/AI-Rubbish-Sort)仓库中下载[update.zip](update.zip) 解压后覆盖原文件 然后创建temp文件夹(由于git不支持提交空文件夹 所以需要手动创建)
![](image/readme/1615625520242.png)
运行 [main.py](main.py) 或 [main.exe](main.exe) ```bash python main.py ``` ```bash ./main.exe ``` _注:Python源文件只能在`终端`中使用(例如 cmd 或 python 命令行),不能在 ILDE 中 run,否则某些字符渲染会出现错误_ _main.exe不是最终的可执行文件 虽然可以不用装库 但是依然需要data和temp文件夹_ 等待摄像头打开后,在弹出的窗口中按`s`识别图像并分类 再按一次`s`关闭分类详情
![](image/readme/1615624672342.png)
在终端按`ctrl+c`退出程序(_注意:摄像头窗口的关闭按钮没有用_) --- ## 配置 位置[./data/settings.json](data/settings.json) ```json { "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 个参数需要在[百度智能云](https://console.bce.baidu.com/ai/?fromai=1#/ai/imagerecognition/overview/index) 概览-应用-创建应用 `接口选择`中勾选`图像识别` 申请完成后在`应用详情`中复制 3 个参数到[settings.json](data/settings.json)中 - **DISPLAY_FONT_PATH**: 字体路径 默认为自带的`黑体`([./data/simhei.ttf](data/simhei.ttf)) 有需要可以改为其他字体 - **CAPTURE_ID**: 摄像头 ID 默认为`0`(即内置摄像头) 外置摄像头为`1` - **KEY**: 触发识别的按键 默认为`s` 可以改为其他键 _注:这些设置不能热更新 需要重启程序_ --- ## 错误提交 当您发现程序中存在 BUG 时可以在[Gitee](https://gitee.com/TimFangDev/ARS)或[GitHub](https://github.com/Tim-Fang/AI-Rubbish-Sort)发 ISSUE --- ## 鸣谢 感谢这些超棒的库 - [NumPy](https://github.com/numpy/numpy) - [OpenCV](https://github.com/opencv/opencv) - [PIL](https://github.com/python-pillow/Pillow) - [Requests](https://github.com/psf/requests) - [Aip](https://pypi.org/project/baidu-aip/) ## 常见问题 1. 包安装报错 使用镜像源然后重新下载 2. 启动程序时报错 ```bash 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 function imshow ``` 或者 ```bash Traceback (most recent call last): File "main.py", line 103, in shape = frame.shape 'NoneType' object has no attribute shape ``` 排查: - 检查您的设备是否有摄像头 - 更改settings.json中摄像头ID - 查找是否有程序占用摄像头 如果都不行: - 换个设备 3. 按下s键闪退 ```bash 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文件夹 - 检查本程序的路径中是否包含中文 如果有,请将文件夹拷贝到其他文件夹 重启程序 - 检查您是否有文件夹的写入权限 4. 无法运行main.exe ```bash 此文件的版本与正在运行的windows版本不兼容 ``` - 编译时使用64位机器编译 故不支持32位机器 - 运行源代码 THE END.