half = False
import sys
sys.path.insert(0, '/kaggle/input/yolov5/yolov5/')
import torch
device = torch.device('cuda:0')
model = torch.load('/kaggle/input/wheat-submit/last_wheat.pt', map_location=device)['model'].to(device).float().eval()
if half:
model.half()
def inference_detector(model, img_path):
from utils.datasets import LoadImages
dataset = LoadImages(img_path, img_size=640)
path, img, im0, vid_cap = next(iter(dataset))
img = torch.from_numpy(img).to(device)
img = img.half() if half else img.float() # uint8 to fp16/32
img /= 255.0 # 0 - 255 to 0.0 - 1.0
if img.ndimension() == 3:
img = img.unsqueeze(0)
pred = model(img, augment=False)[0]
from utils.utils import non_max_suppression
pred = non_max_suppression(pred, conf_thres=0.1, iou_thres=0.5, classes=None, agnostic=True)
from utils.utils import scale_coords
bboxes = []
scores = []
clses = []
for i, det in enumerate(pred): # detections per image
if det is not None and len(det):
det[:, :4] = scale_coords(img.shape[2:], det[:, :4], im0.shape).round()
for *xyxy, conf, cls in det:
xyxy = torch.tensor(xyxy).view(-1).numpy()
bboxes.append([*xyxy, conf.item()])
return np.array(bboxes)
# test
import numpy as np
import cv2
def vis(image_path, det):
image = cv2.imread(image_path, cv2.IMREAD_COLOR)
size = 300
idx = -1
font = cv2.FONT_HERSHEY_SIMPLEX
# fontScale
fontScale = 1
# Blue color in BGR
color = (255, 0, 0)
bboxes = det[:,:4].astype(np.int32)
scores = det[:,4]
# Line thickness of 2 px
thickness = 2
for b,s in zip(bboxes,scores):
if s > 0.1:
image = cv2.rectangle(image, (b[0],b[1]), (b[2],b[3]), (255,0,0), 1)
image = cv2.putText(image, '{:.2}'.format(s), (b[0]+np.random.randint(20),b[1]), font,
fontScale, color, thickness, cv2.LINE_AA)
import matplotlib.pyplot as plt
plt.figure(figsize=[6, 6])
plt.imshow(image[:,:,::-1])
plt.show()
import glob
img_paths = glob.glob('/kaggle/input/global-wheat-detection/test/*.jpg')
img_path = img_paths[0]
det = inference_detector(model, img_path)
vis(img_path, det)
yolov5預(yù)測
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔬啡,“玉大人,你說我怎么就攤上這事镀虐。” “怎么了刮便?”我有些...
- 文/不壞的土叔 我叫張陵空猜,是天一觀的道長。 經(jīng)常有香客問我辈毯,道長坝疼,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任谆沃,我火速辦了婚禮钝凶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘唁影。我一直安慰自己,他們只是感情好据沈,可當(dāng)我...
- 文/花漫 我一把揭開白布卓舵。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪筑公。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼也拜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了趾痘?” 一聲冷哼從身側(cè)響起慢哈,我...
- 正文 年R本政府宣布,位于F島的核電站杯瞻,受9級特大地震影響镐牺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜魁莉,卻給世界環(huán)境...
- 文/蒙蒙 一睬涧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧旗唁,春花似錦畦浓、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屎媳,卻和暖如春夺溢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背烛谊。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 本期主要介紹YoLov5的Window平臺環(huán)境搭建接箫,其優(yōu)點在于移動設(shè)備端的部署會更加方便攒读,基于Pytorch框架。...
- 源代碼來自小賽的文章辛友,他的解釋更加詳細(xì)薄扁,這里我做記錄用剪返。 ``` import numpyas np import...
- YOLODet-PyTorch github地址:GitHub - wuzhihao7788/yolodet-py...
- 在自動駕駛中尚卫,檢測模型的速度和準(zhǔn)確率都很重要,出于這個原因尸红,論文提出Gaussian YOLOv3吱涉。該算法在保持實...