本代码场景是无人机飞行识别检测,测过在300m高空检测地面挖机,1400张数据集,识别率很高,还是不错的,yolov5版本。
print("下载图片数据")
begin_time = time.time()
mateSourceImgUrl1=mateSourceImgUrl
# 发送网络请求获取图片数据
response = requests.get(mateSourceImgUrl)
# 将图片数据转换为numpy数组
image_array = np.array(bytearray(response.content), dtype=np.uint8)
image_cv2 = cv2.imdecode(image_array, -1)
# 将OpenCV格式的图片转换为PIL的Image对象
mateSourceImg = Image.fromarray(cv2.cvtColor(image_cv2, cv2.COLOR_BGR2RGB))
response1= requests.get(sourceImgUrl)
# 将图片数据转换为numpy数组
image_array1 = np.array(bytearray(response1.content), dtype=np.uint8)
image_cv21 = cv2.imdecode(image_array1, -1)
# 将OpenCV格式的图片转换为PIL的Image对象
sourceImg = Image.fromarray(cv2.cvtColor(image_cv21, cv2.COLOR_BGR2RGB))
print("将图片封装成image对象")
# 创建 Data_test 类的实例
test_set = RS.Data_test(sourceImgUrl=sourceImg, mateSourceImgUrl=mateSourceImg,url=mateSourceImgUrl1)
test_loader = DataLoader(test_set, batch_size=opt.pred_batch_size)
img=predict_one(net, test_loader)
#过滤树木,水面,广场
img=postprocess_image(img)
# 将PIL Image对象转换为numpy数组
np_array_A = np.array(sourceImg)
print("将结果融合到对比图上")