本项目为使用C++和Python实现的基于卷积神经网络的校园垃圾识别系统实现。本项目的基本功能:客户端拥有对常见校园垃圾的识别能力;客户端可以上传识别结果;服务器可以接受并储存终端的识别结果。
2 概要设计
2.1 主要数据结构
2.1.1 服务器线程队列
服务器由于是多线程的实现,必然有多线程装载的容器,本程序选取了C++标准库的vector数据结构进行开发 其构造为:
Vector是动态空间,随着元素的加入,它的内部机制会自动扩充空间以容纳新元素,因此vector的运用对于内存的合理利用与运用的灵活性有很大的帮助了。
Vector所采用的数据结构非常简单, 线性连续空间, 它以两个迭代器-Myfirst和-Mylast分别指向配置得来的连续空间中目前已被使用的范围, 并以迭代器-Myend指向整块连续内存空间的尾端。
为了降低空间配置时的速度成本,vector实际配置的大小可能比客户端需求大一些,以备将来可能的扩充,倍增扩容使均摊时间复杂度降至O(n)复杂度。
在本程序的运用中改数据结构实现了服务器端的线程池,显然,任何接口都不是线程安全的。
源码和文档都托管在了【WRITE-BUG数字空间】上面了,有需要的可自取~