1.test_detector的调用路径:
这里重点介绍load_alphabet函数:
程序退出时,会清理这些图片分配的资源:
根据代码,这里是从data/labels/目录装载png图片,图片有8*95=760
这些图片都是ASCII码,比如我们打开编号为65和97的PNG图片,看以下内容,分别是A和a.
怀疑最后绘框上面的Label字母就是来源于这里,这样就不依赖于系统字库了,我们确认一下,用反证法。
如果我们将所有b的图片替换成a的图片,那么bicycle应该能变成aicycle的,我们测试一下:
我们重新运行推理测试,发现果然如此,b变成了a.
所以,labels/下有ASCII码32-127的8种尺寸的图片,是显示标签用的。
澄清一个问题,继续下一个问题
运行后:
dog.jpg,宽高分别为768,576,这是原图的尺寸。
但是我们的网络描述文件,网络的输入应该是416*416的,该如何处理呢?
打印几个关键变量:
喂给网络的JPG图像,首先要经过resize_image操作,转换为网络吃的416*416大小,load_image调用栈中会调用STBI库,库里面还会进行JPG-RGB的转换。