视觉检测大模型DRTR部署使用
视觉检测大模型DRTR部署使用importtorchimportrequests from PILimportImagefrom transformersimportDetrImageProcessor,DetrForObjectDetectionimportmatplotlib.pyplotasplt #1.加载模型和特征提取器 processorDetrImageProcessor.from_pretrained(facebook/detr-resnet-50)modelDetrForObjectDetection.from_pretrained(facebook/detr-resnet-50)model.eval()#2.读取图片 urlhttp://images.cocodataset.org/val2017/000000039769.jpg# 示例图片 imageImage.open(requests.get(url,streamTrue).raw)#3.预处理并推理 inputsprocessor(imagesimage,return_tensorspt)withtorch.no_grad():outputsmodel(**inputs)#4.后处理DETR 无需 NMS直接输出结果 target_sizestorch.tensor([image.size[::-1]])resultsprocessor.post_process_object_detection(outputs,target_sizestarget_sizes,threshold0.9)[0]#5.显示检测框 plt.figure(figsize(12,9))plt.imshow(image)axplt.gca()forscore,label,boxinzip(results[scores],results[labels],results[boxes]):box[round(i,2)foriinbox.tolist()]# 绘制矩形框 rectplt.Rectangle((box[0],box[1]),box[2]-box[0],box[3]-box[1],fillFalse,colorred,linewidth2)ax.add_patch(rect)# 添加标签 ax.text(box[0],box[1],f{model.config.id2label[label.item()]}: {score.item():.3f},bboxdict(facecolorred,alpha0.5),fontsize10,colorwhite)plt.axis(off)plt.show()