1-1.nilboy的tensorflow-yolo代码的宏观分析

0.摘要

因为最近要写关于目标检测的论文,想先跑个实验看看效果,于是找到了nilboy的代码,想先总结并谈谈个人的一些思考。

首先,如何安排一个项目的文件结?也就是要想想文件夹、子文件夹、文件、文件里的类和文件里的方法所负责的功能。

其次,用什么样的数据结构取存放数据更加高效合理?

1.使用配置文件来固化参数

各模块中都有常量,如何将这些常量统一到一个地方,想用时可以直接取,可以使用配置文件来统一管理。

2.使用面向对象的思想(类、对象和继承)

类内做到高聚合,类间做到松耦合。

3.数据处理使用多线程

为发挥多核CPU的优势,在处理数据的时候使用多线程,主要用到的地方  将数据加到队列中和对队列中的数据进行操作。

4.特征网络和损失函数的构建

  

5.训练

6.测试

  1. 测试图片使用网络得到预测结果(predicts)
  2. predicts是一个(1,7,7,30)的张量,其中有30个子张量,(1)其中前20个为类别的概率,(2)中间2个子张量为边缘框的概率,(3)最后8个子张量为边缘框的坐标。其中(1)和(2)构成一个(7,7,2,20)的张量,表示每个边缘框中可能含有何种类别的对象。找出最有可能含有对象的框后,将对应的坐标做相应转换,输出成原图坐标。
  3. 使用cv2将原图的坐标可视化到图片上

7.存在问题

posted @ 2019-02-27 09:37  drinkMilk  阅读(93)  评论(0)    收藏  举报