日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > 目标检测 >内容正文

目标检测

目标检测simple Faster R-CNN训练自己的数据集

發(fā)布時(shí)間:2023/12/29 目标检测 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 目标检测simple Faster R-CNN训练自己的数据集 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、復(fù)現(xiàn)

剛開始接觸目標(biāo)檢測,自己動(dòng)手復(fù)現(xiàn)的第一個(gè)開源項(xiàng)目是github上chenyuntc的simple faster?rcnn。歷經(jīng)千辛萬苦最后貌似因?yàn)榉?wù)器顯卡內(nèi)存不夠,在訓(xùn)練時(shí)一直出現(xiàn)一個(gè)錯(cuò)誤,如下:

最后也沒解決掉,就直接使用預(yù)訓(xùn)練模型去測試了,測試平臺(tái)是jupyter notebook.在連著實(shí)驗(yàn)室vpn使用服務(wù)器時(shí),外部的網(wǎng)絡(luò)就卡成了狗,而我對(duì)linux環(huán)境的不熟悉,也在一定程度上對(duì)自己造成了困擾。總之最后測試的效果還可以,精確度比較高,但是我不知道是否由于自己訓(xùn)練失敗的原因,總之沒有看到任何訓(xùn)練、測試結(jié)果準(zhǔn)確度和速度的參數(shù)。

二、跑自己數(shù)據(jù)集

這兩天淺淺標(biāo)注了150張圖片的自己的數(shù)據(jù)集,準(zhǔn)備看一下初步效果順便熟悉一下流程。

1、準(zhǔn)備好數(shù)據(jù)集后的第一件事是要裁剪使其大小合適,(當(dāng)然去掉無關(guān)背景后也方便自己選擇圖片),裁剪尺寸自己按需來定。裁剪代碼如下:

import numpy as np import cv2 import osdef update(input_img_path, output_img_path):image = cv2.imread(input_img_path)print(image.shape)cropped = image[800:1170, 780:1180] # 裁剪坐標(biāo)為[y0:y1, x0:x1]cv2.imwrite(output_img_path, cropped)dataset_dir = r'D:\nagetive-33' output_dir = r'D:\nagetive-44' #改成自己的路徑# 獲得需要轉(zhuǎn)化的圖片路徑并生成目標(biāo)路徑 image_filenames = [(os.path.join(dataset_dir, x), os.path.join(output_dir, x))for x in os.listdir(dataset_dir)] # 轉(zhuǎn)化所有圖片 for path in image_filenames:update(path[0], path[1])

2、裁剪后需要將選好的數(shù)據(jù)集中的圖片重命名,方便查找。(起始序號(hào)可更改)排序代碼如下:

import os import os.path import numpy as np rootdir = r"F:\DataSet_damo\JPEGImages/" #末尾斜杠不要丟,你的文件存放位置 files = os.listdir(rootdir) b=1 #可更改起始序號(hào) for name in files:a=os.path.splitext(name)print(a[0])newname = str(b)+'.jpg'b = b + 1os.rename(rootdir+name,rootdir+newname)

3、 由于我使用的是faster rcnn的改進(jìn)版算法,其使用的數(shù)據(jù)集標(biāo)簽格式為VOC格式,不像使用yolo系列還需要做標(biāo)簽的xml——>txt格式轉(zhuǎn)換,因此目前需要做的只有將打完標(biāo)簽的xml格式的數(shù)據(jù)集分別劃分為訓(xùn)練集、驗(yàn)證集和測試集。劃分代碼如下:

import os import randompath='D:/VOCtrainval_06-Nov-2007/yoloV3conf\keras-yolo3-master/VOCdevkit/VOC2007/'trainval_percent = 0.66 train_percent = 0.5xmlfilepath = path+'Annotations' txtsavepath = path+'ImageSets/Main' total_xml = os.listdir(xmlfilepath)num=len(total_xml) list=range(num) tv=int(num*trainval_percent) tr=int(tv*train_percent) trainval= random.sample(list,tv) train=random.sample(trainval,tr)ftrainval = open(path+'ImageSets/Main/trainval.txt', 'w') ftest = open(path+'ImageSets/Main/test.txt', 'w') ftrain = open(path+'ImageSets/Main/train.txt', 'w') fval = open(path+'ImageSets/Main/val.txt', 'w')for i in list:name=total_xml[i][:-4]+'\n'if i in trainval:ftrainval.write(name)if i in train:ftrain.write(name)else:fval.write(name)else:ftest.write(name)ftrainval.close() ftrain.close() fval.close() ftest .close()

總結(jié)

以上是生活随笔為你收集整理的目标检测simple Faster R-CNN训练自己的数据集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。