我已经将一个Yolo模型转换为.tflite,以便在Android中使用。在python中就是这样使用的--
net = cv2.dnn.readNet("yolov2.weights", "yolov2.cfg")
classes = []
with open("yolov3.txt", "r") as f:
classes = [line.strip() for line in f.readlines()]
layer_names = net.getLayerNames()
output_layers = [layer_names[i[0] - 1] for i in net.getUnconnectedOutLayers()]
colors = np.random.uniform(0, 255, size=(len(classes), 3))
cap= cv2.VideoCapture(0)
while True:
_,frame= cap.read()
height,width,channel= frame.shape
blob = cv2.dnn.blobFromImage(frame, 0.00392, (320, 320), (0, 0, 0), True, crop=False)
net.setInput(blob)
outs = net.forward(output_layers)
for out in outs:
for detection in out:
scores = detection[5:]
class_id = np.argmax(scores)
confidence = scores[class_id]
if confidence > 0.2:
# Object detected
center_x = int(detection[0] * width)
center_y = int(detection[1] * height)
w = int(detection[2] * width)
h = int(detection[3] * height)
# Rectangle coordinates
x = int(center_x - w / 2)
y = int(center_y - h / 2)
我使用netron https://github.com/lutzroeder/netron可视化模型。输入描述为name:inputs,类型:float32[1,416,416,3],quantization:0≤q≤255,位置:399,输出描述为name:output_boxs,类型:float32[1,106 47,8],位置:400。
您需要调整输入图像的大小,使其与TensorFlow-Lite
模型的输入大小相匹配,然后将其转换为RGB
格式以馈送到模型。
通过使用TensorFlow-Lite
支持库中的ImageProcessor
,您可以轻松地进行图像大小调整和转换。
ImageProcessor imageProcessor =
new ImageProcessor.Builder()
.add(new ResizeWithCropOrPadOp(cropSize, cropSize))
.add(new ResizeOp(imageSizeX, imageSizeY, ResizeMethod.NEAREST_NEIGHBOR))
.add(new Rot90Op(numRoration))
.add(getPreprocessNormalizeOp())
.build();
return imageProcessor.process(inputImageBuffer);
接下来使用解释器运行推断,您将预处理后的图像提供给TensorFlow-Lite
解释器:
tflite.run(inputImageBuffer.getBuffer(), outputProbabilityBuffer.getBuffer().rewind());
请参考这个官方示例了解更多详细信息,此外,您也可以参考这个示例。
你好,我正在使用改型上传图像文件。有人知道怎么进去吗
我有一个保存的tflite模型,其输入和输出详细信息如下: > 输入:[{“name”:“dense_4_Input”,“index”:0,“shape”:数组([1100],dtype=int32),“shape_signature':数组([1],100],dtype=int 32),'dtype':,'量化':(0.0,0),'量化_parameters”:{“scales”:数组] 输出
问题内容: 假设我有一个模型Car,该模型在 ViewModel1中 实例化为以下初始属性: ViewModel1 然后,我需要在下一个视图控制器中完成汽车的其他信息。遵循MVVM时,在视图控制器之间传递模型的 正确 方法是什么? 使用MVC,操作很简单,因为视图可以引用模型: 以下是对该问题的伪尝试,但是我给人的印象是视图模型应该是私有的,并且只能由单个视图控制器访问。因此,以下尝试对我来说似乎
我想在Tensorflow中将整数量化的tflite模型转换为冻结图(.pb)。我通读并尝试了许多有关StackOverflow的解决方案,但没有一个有效。具体来说,toco不起作用(输出格式不能是TENSORFLOW\u GRAPHDEF)。 我的最终目标是通过tf2onnx获得量化的ONNX模型,但tf2onnx不支持tflite作为输入(只支持保存的_模型、检查点和图形_定义)。但是,在使用
我已经使用tensorflow后端训练了一个DNN,我想在FireBase中托管它。训练好的模型被保存为.meta文件,我尝试使用下面的代码将模型转换为tflite,但我遇到了一些错误。那么我如何将这个模型转换成Tensorflow Lite呢?
我按照TensorFlow lite的指示在Android上创建了一个对象检测应用程序,我的tflite模型在笔记本电脑上测试时成功运行。但是,当我用我的tflite模型替换示例应用程序中的tflite模型时,它无法检测到任何东西。 还有什么我需要做的吗?请帮帮我,我已经陷入这种情况一个星期了。