1-1.nilboy的tensorflow-yolo代码的宏观分析
0.摘要
因为最近要写关于目标检测的论文,想先跑个实验看看效果,于是找到了nilboy的代码,想先总结并谈谈个人的一些思考。
首先,如何安排一个项目的文件结?也就是要想想文件夹、子文件夹、文件、文件里的类和文件里的方法所负责的功能。
其次,用什么样的数据结构取存放数据更加高效合理?
1.使用配置文件来固化参数
各模块中都有常量,如何将这些常量统一到一个地方,想用时可以直接取,可以使用配置文件来统一管理。
2.使用面向对象的思想(类、对象和继承)
类内做到高聚合,类间做到松耦合。
3.数据处理使用多线程
为发挥多核CPU的优势,在处理数据的时候使用多线程,主要用到的地方 将数据加到队列中和对队列中的数据进行操作。
4.特征网络和损失函数的构建
5.训练
6.测试
- 测试图片使用网络得到预测结果(predicts)
- predicts是一个(1,7,7,30)的张量,其中有30个子张量,(1)其中前20个为类别的概率,(2)中间2个子张量为边缘框的概率,(3)最后8个子张量为边缘框的坐标。其中(1)和(2)构成一个(7,7,2,20)的张量,表示每个边缘框中可能含有何种类别的对象。找出最有可能含有对象的框后,将对应的坐标做相应转换,输出成原图坐标。
- 使用cv2将原图的坐标可视化到图片上
浙公网安备 33010602011771号