对Tensorflow对象检测API的输入进行规范化处理。

问题描述 投票:0回答:1

Tensorflow对象检测API是否默认进行了像输入标准化这样的预处理?

我在任何地方都找不到任何关于它的文档。在DataAugmentations中有一个叫做'NormalizeImage'的选项。在动物园中所有模型的配置文件中,我从来没有看到它的使用。我训练了 ssd_mobilenet_v3_small_coco_2020_01_14 对于转移学习到我的自定义类,而不使用它和一切工作.我知道有一个类似的问题。此处 但几年来没有答案,网络也不一样了。

用下面的代码测试(OpenCV 4.3.0 DNN模块)产生正确的结果。

import cv2 as cv


net = cv.dnn_DetectionModel('model/graph/frozen_inference_graph.pb', 'cvgraph.pbtxt')
net.setInputSize(300, 300)
#net.setInputScale(1.0 / 127.5)
#net.setInputMean((127.5, 127.5, 127.5))
net.setInputSwapRB(True)

frame = cv.imread('test/2_329_985_165605-561561.jpg')

classes, confidences, boxes = net.detect(frame, confThreshold=0.7)

for classId, confidence, box in zip(classes.flatten(), confidences.flatten(), boxes):
    print(classId, confidence)
    cv.rectangle(frame, box, color=(0, 255, 0))

cv.imshow('out', frame)
cv.waitKey()

此处 使用了归一化。在我的例子中,使用归一化产生了错误的结果,边界框比它应该的大得多。我猜测输入归一化是由tensorflow在某个地方执行的?

python opencv tensorflow object-detection-api tensorflow-model-garden
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.