国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

無人機航拍圖像數(shù)據(jù)集匯總

這篇具有很好參考價值的文章主要介紹了無人機航拍圖像數(shù)據(jù)集匯總。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

引言

最近的項目涉及到對無人機航拍圖像的目標檢測,檢測的目標包含車輛、人、無人機、船舶,比較熱門的航拍數(shù)據(jù)集大多是遙感圖像的數(shù)據(jù)集,與本項目相關的數(shù)據(jù)集查找不易,本文分享一下相關的航拍數(shù)據(jù)數(shù)據(jù)集,以及數(shù)據(jù)集的處理方法。

文中部分數(shù)據(jù)集已經(jīng)下載,需要獲取文中涉及到的數(shù)據(jù)集請私信(目錄中的文件名是本人為了方便自己定義的)

數(shù)據(jù)集處理

1、獲取感興趣的類別

在訓練過程中,數(shù)據(jù)集中的部分類別使用不到,需要提取中感興趣的類別,如果以圖像中沒有感興趣的類別,將圖像舍棄,如果圖像中既有感興趣的類別也有不感興趣的類別,則將不感興趣的類別從標簽文件中刪除,只保存感興趣的類別信息

import os
import shutil
#voc格式標簽的地址
ann_filepath='VOCdevkit/VOC2012/Annotations/'
#原圖像的地址
img_filepath='VOCdevkit/VOC2012/JPEGImages/'
#轉(zhuǎn)換后圖像的存放地址
img_savepath='VOCdevkit/VOC2012/JPEGImages_ssd/'
#轉(zhuǎn)換后標簽的存放地址
ann_savepath='VOCdevkit/VOC2007/Annotations_ssd/'
if not os.path.exists(img_savepath):
    os.mkdir(img_savepath)
 
if not os.path.exists(ann_savepath):
    os.mkdir(ann_savepath)
names = locals()

#數(shù)據(jù)集中所有的類別,類別名稱要與標簽號對應,如aeroplane對應name_id為0,將其放在第一個位置
#以voc數(shù)據(jù)集為例如下24~27
classes = ['aeroplane','bicycle','bird', 'boat', 'bottle',
           'bus', 'car', 'cat', 'chair', 'cow','diningtable',
           'dog', 'horse', 'motorbike', 'pottedplant',
           'sheep', 'sofa', 'train', 'tvmonitor', 'person']
 
 
for file in os.listdir(ann_filepath):
    print(file)
    fp = open(ann_filepath +  file)
    ann_savefile=ann_savepath+file
    fp_w = open(ann_savefile, 'w')
    lines = fp.readlines()
 
    ind_start = []
    ind_end = []
    lines_id_start = lines[:]
    lines_id_end = lines[:]
 
 #設置感興趣的類別:classesn = '\t\t<name>RoiClassName</name>\n'
 #RoiClassName為具體的類別名稱
    classes1 = '\t\t<name>aeroplane</name>\n'
    classes2 = '\t\t<name>boat</name>\n'
    classes3 = '\t\t<name>bus</name>\n'
    classes4 = '\t\t<name>car</name>\n'
    classes5 = '\t\t<name>person</name>\n'
 
    #在xml中找到object塊,并將其記錄下來
    while "\t<object>\n" in lines_id_start:
        a = lines_id_start.index("\t<object>\n")
        ind_start.append(a)
        lines_id_start[a] = "delete"
 
 
    while "\t</object>\n" in lines_id_end:
        b = lines_id_end.index("\t</object>\n")
        ind_end.append(b)
        lines_id_end[b] = "delete"
 
    #names中存放所有的object塊
    i = 0
    for k in range(0, len(ind_start)):
        names['block%d' % k] = []
        for j in range(0, len(classes)):
            if classes[j] in lines[ind_start[i] + 1]:
                a = ind_start[i]
                for o in range(ind_end[i] - ind_start[i] + 1):
                    names['block%d' % k].append(lines[a + o])
                break
        i += 1
        #print(names['block%d' % k])
 
 
    #xml頭
    string_start = lines[0:ind_start[0]]
    #xml尾
    string_end = [lines[len(lines) - 1]]
 
 
    #在給定的類中搜索,若存在則,寫入object塊信息
    a = 0
    for k in range(0, len(ind_start)):
        if classes1 in names['block%d' % k]:
            a += 1
            string_start += names['block%d' % k]
        if classes2 in names['block%d' % k]:
            a += 1
            string_start += names['block%d' % k]
        if classes3 in names['block%d' % k]:
            a += 1
            string_start += names['block%d' % k]
        if classes4 in names['block%d' % k]:
            a += 1
            string_start += names['block%d' % k]
        if classes5 in names['block%d' % k]:
            a += 1
            string_start += names['block%d' % k]
    string_start += string_end
    for c in range(0, len(string_start)):
        fp_w.write(string_start[c])
    fp_w.close()
    #如果沒有我們尋找的模塊,則刪除此xml,有的話拷貝圖片
    if a == 0:
        os.remove(ann_savepath+file)
    else:
        name_img = img_filepath + os.path.splitext(file)[0] + ".jpg"
        shutil.copy(name_img, img_savepath)
    fp.close()

2、修改和刪除相應類別ID以及標注信息

  • 在實際應用中,數(shù)據(jù)集無需劃分子類,如原數(shù)據(jù)集中含有貨船、郵輪、客船等船的子類;但是項目中只需要檢測到船,并不需要劃分子類,這就需要我們對將數(shù)據(jù)集中的類別進行和并重構(gòu)

  • 數(shù)據(jù)集中含有的與項目無關的類別也可以刪除

import os
import random
import numpy as np
from numpy import *
 
txt_file_path = '/mnt/dir1/database/VisDrone2019/VisDrone2019-DET-val/labels'  # 原始的標簽路徑
save_file_path = '/mnt/dir1/database/VisDrone2019/VisDrone2019-DET-val/labels1'  # 修改后的標簽路徑
 
labels_name = os.listdir(txt_file_path)  # 獲得每一個標簽名字的列表 / os.listdir() 方法用于返回指定的文件夾包含的文件或文件夾的名字的列表
num = len(labels_name)  # 獲取列表長度
list = range(num)  # 創(chuàng)建從0到num的整數(shù)列表  list = range(0, num)
files = os.listdir(save_file_path)
 
for i in list:  # 遍歷每一個文件
    name = labels_name[i]  # 獲取每一個文件的文件名
    read_file = open(txt_file_path + "/" + name, 'r')  # 讀取txt_file_path/labels路徑中的文件,r表示以只讀方式打開文件
    fline = read_file.readlines()  # 讀取txt文件中每一行 / readlines()表示讀取整行 / fline是列表類型,fline列表里的元素是str類型
    save_txt = open(save_file_path + "/" + name, 'w+')  # 讀取save_file_path/labels路徑中的文件. w+表示打開一個文件用于讀寫。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內(nèi)容會被刪除。如果該文件不存在,創(chuàng)建新文件。
 
    for j in fline:  # 遍歷txt文件中每一行
        list1 = j.split()
        # print(list1)
 
        # 刪除類別
        if list1[0] != '2':  # 刪除類別2
            if list1[0] != '6':  # 刪除類別6
                if list1[0] != '7':  # 刪除類別7
                    if list1[0] != '9':  # 刪除類別9
                    list2 = list1
                    #print(list2)
 
                    # 修改類別
                    if list2[0] == '1':
                        list2[0] = '0'  # 將類別1改成類別0
                    elif list2[0] == '3':
                        list2[0] = '1'  # 將類別3改成類別1
                    elif list2[0] == '4':
                        list2[0] = '1'  # 將類別4改成類別1
                    elif list2[0] == '5':
                        list2[0] = '1'  # 將類別5改成類別1
                    elif list2[0] == '8':
                        list2[0] = '1'  # 將類別8改成類別1
 
                    b = " ".join(list2)   # 將列表轉(zhuǎn)換成字符串類型,且用空格分割
                    save_txt.write(b)  # 寫入新的文件中
                    save_txt.write('\n')  # 換行

3、VOC數(shù)據(jù)集轉(zhuǎn)YOLO

import xml.etree.ElementTree as ET
import pickle
import os
from os import listdir, getcwd
from os.path import join
 
 
def convert(size, box):
    x_center = (box[0] + box[1]) / 2.0
    y_center = (box[2] + box[3]) / 2.0
    x = x_center / size[0]
    y = y_center / size[1]
    w = (box[1] - box[0]) / size[0]
    h = (box[3] - box[2]) / size[1]
    return (x, y, w, h)
 
 
def convert_annotation(xml_files_path, save_txt_files_path, classes):
    xml_files = os.listdir(xml_files_path)
    #print(xml_files)
    for xml_name in xml_files:
        print(xml_name)
        xml_file = os.path.join(xml_files_path, xml_name)
        out_txt_path = os.path.join(save_txt_files_path, xml_name.split('.')[0] + '.txt')
        #
        folder = os.path.exists(save_txt_files_path)
        if not folder: #判斷是否存在文件夾如果不存在則創(chuàng)建為文件夾
            os.makedirs(save_txt_files_path) #makedirs 創(chuàng)建文件時如果路徑不存在會創(chuàng)建這個路徑#
        #
        out_txt_f = open(out_txt_path, 'w', encoding="utf-8")
        tree = ET.parse(xml_file)
        root = tree.getroot()
        size = root.find('size')
        w = int(size.find('width').text)
        h = int(size.find('height').text)
 
        for obj in root.iter('object'):
            difficult = obj.find('difficult').text
            cls = obj.find('name').text
            if cls not in classes or int(difficult) == 1:
                continue
            cls_id = classes.index(cls)
            xmlbox = obj.find('bndbox')
            b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text),
                 float(xmlbox.find('ymax').text))
            # b=(xmin, xmax, ymin, ymax)
            print(w, h, b)
            bb = convert((w, h), b)
            out_txt_f.write(str(cls_id) + " " + " ".join([str(a) for a in bb]) + '\n')
 
 
if __name__ == "__main__":
    # 需要轉(zhuǎn)換的類別,需要一一對應
    classes1 = ['aeroplane', 'boat', 'bus', 'car', 'person']
    # 2、voc格式的xml標簽文件路徑
    xml_files1 = r'VOCdevkit/VOC2012/Annotations_ssd/'
    # 3、轉(zhuǎn)化為yolo格式的txt標簽文件存儲路徑
    save_txt_files1 = r'VOCdevkit/VOC2012/labels_ssd/'
 
    convert_annotation(xml_files1, save_txt_files1, classes1)

無人機數(shù)據(jù)集介紹

?FW-UAV1

固定翼無人機數(shù)據(jù)集,其中包含1817幅圖像,圖像格式為.png,已經(jīng)轉(zhuǎn)換為yolo格式,但是還未劃分數(shù)據(jù)集、標簽和圖像在一個文件夾中。

下載地址:Fixed Wing UAV Dataset (kaggle.com)

無人機數(shù)據(jù)集,無人機,計算機視覺

?圖像實例:

無人機數(shù)據(jù)集,無人機,計算機視覺

FW-UAV2

固定翼無人機,554幅圖像,yolo格式,標簽和圖像在一個文件夾中

?下載地址:Fixed Wing UAV Dataset (kaggle.com)

無人機數(shù)據(jù)集,無人機,計算機視覺

圖像實例:

無人機數(shù)據(jù)集,無人機,計算機視覺

FW-UAV3

固定翼無人機數(shù)據(jù)集,包含1790幅圖像,包含yolo標簽格式

下載地址:Fixed Wing UAV - Plane (kaggle.com)

?無人機數(shù)據(jù)集,無人機,計算機視覺

?圖片實例:

無人機數(shù)據(jù)集,無人機,計算機視覺

?

UAV1

旋翼式無人機數(shù)據(jù)集,其中包含4010幅圖像,已經(jīng)標注好了yolo格式,標簽和圖片在一個文件夾中,數(shù)據(jù)集未劃分

下載地址:Drone Object Detection (kaggle.com)

無人機數(shù)據(jù)集,無人機,計算機視覺

圖像實例:

無人機數(shù)據(jù)集,無人機,計算機視覺

UAV2

旋翼式無人機數(shù)據(jù)集,其中包含4014幅圖像,已經(jīng)標注好了yolo格式,標簽和圖片在一個文件夾中,數(shù)據(jù)集未劃分

下載地址:Amateur Unmanned Air Vehicle Detection (kaggle.com)

無人機數(shù)據(jù)集,無人機,計算機視覺

?圖像實例:

無人機數(shù)據(jù)集,無人機,計算機視覺

?

車輛和行人數(shù)據(jù)集

VisDrone

VisDrone數(shù)據(jù)集中的一部分,一共有5138幅圖像,已經(jīng)轉(zhuǎn)換為yolo格式,劃分好了訓練集、驗證集、測試集

下載地址:visdrone (kaggle.com)

無人機數(shù)據(jù)集,無人機,計算機視覺

?圖像實例:

無人機數(shù)據(jù)集,無人機,計算機視覺

HIT-UAV

車輛和行人數(shù)據(jù)集,共有2866幅圖像,Person8000個,Car5000個,可以直接使用

數(shù)據(jù)集地址:HIT-UAV: A High-altitude Infrared Thermal Dataset (kaggle.com)

無人機數(shù)據(jù)集,無人機,計算機視覺

?圖像實例:

無人機數(shù)據(jù)集,無人機,計算機視覺

?

船舶數(shù)據(jù)集

SHIP1

航拍船只數(shù)據(jù)集(衛(wèi)星),一共有621幅圖像,標注格式為voc ,archive2

下載地址:Ship Detection from Aerial Images (kaggle.com)無人機數(shù)據(jù)集,無人機,計算機視覺

?圖像實例:

無人機數(shù)據(jù)集,無人機,計算機視覺

?

SHIP2

共有134000幅航拍船只圖像(遙感),標簽格式為yolo archive3

下載地址:Ships/Vessels in Aerial Images (kaggle.com)

無人機數(shù)據(jù)集,無人機,計算機視覺

?圖像實例:

無人機數(shù)據(jù)集,無人機,計算機視覺

SHIP3

航拍鳥瞰圖,沒有標簽,8932幅圖像

下載地址:ship-imageclassify (kaggle.com)

無人機數(shù)據(jù)集,無人機,計算機視覺

圖像實例:

無人機數(shù)據(jù)集,無人機,計算機視覺文章來源地址http://www.zghlxwxcb.cn/news/detail-774416.html

到了這里,關于無人機航拍圖像數(shù)據(jù)集匯總的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 數(shù)據(jù)集【NO.7】無人機航拍數(shù)據(jù)集——VisDrone2019數(shù)據(jù)集

    數(shù)據(jù)集【NO.7】無人機航拍數(shù)據(jù)集——VisDrone2019數(shù)據(jù)集

    寫在前面:數(shù)據(jù)集對應應用場景,不同的應用場景有不同的檢測難點以及對應改進方法,本系列整理匯總領域內(nèi)的數(shù)據(jù)集,方便大家下載數(shù)據(jù)集,若無法下載可關注后私信領取。關注免費領取整理好的數(shù)據(jù)集資料!本文數(shù)據(jù)集鏈接: https://pan.baidu.com/s/1IkxncYLWjphMHHeGkLQz3w? 提取碼

    2024年02月11日
    瀏覽(17)
  • 無人機航拍高度與地面采樣距離

    無人機航拍高度與地面采樣距離

    為搞清無人機航拍高度與地面采樣距離的關系,首先需要了解像素與像元之間的細小差別(個人理解)。像素偏重于圖片描述,也就是常說的一張圖片像素是多少。像元則指一個像素點的實際大小。 對同樣大小面積的圖片,像元越小,即像素面積越小,進而該場景圖片像素數(shù)

    2024年02月09日
    瀏覽(19)
  • PhotoScan拼接無人機航拍RGB照片

    PhotoScan拼接無人機航拍RGB照片

    目錄 背景 拼接步驟 1.新建并保存項目 2.添加照片 3.對齊照片 4.添加標記(Markers) 5.添加地面控制點 6.建立批處理任務 7.使用批處理文件進行批處理 8.導出DEM 9.導出DOM 本文介紹使用地面控制點(GCPs)拼接???????無人機RGB影像,生成DEM、DOM。 數(shù)據(jù)獲取情況: 無人機:

    2024年02月09日
    瀏覽(27)
  • YOLO目標檢測——無人機航拍行人檢測數(shù)據(jù)集下載分享【含對應voc、coc和yolo三種格式標簽】

    YOLO目標檢測——無人機航拍行人檢測數(shù)據(jù)集下載分享【含對應voc、coc和yolo三種格式標簽】

    實際項目應用 :智能交通管理、城市安防監(jiān)控、公共安全救援等領域 數(shù)據(jù)集說明 :無人機航拍行人檢測數(shù)據(jù)集,真實場景的高質(zhì)量圖片數(shù)據(jù),數(shù)據(jù)場景豐富 標簽說明 :使用lableimg標注軟件標注,標注框質(zhì)量高,含voc(xml)、coco(json)和yolo(txt)三種格式標簽,分別存放在不同文件

    2024年01月18日
    瀏覽(178)
  • 基于目標檢測的無人機航拍場景下小目標檢測實踐

    基于目標檢測的無人機航拍場景下小目標檢測實踐

    無人機變得越來越普及,很多場景中由于客觀原因的限制大量采用了無人機,無人機預警、無人機抓怕、無人機勸導等等,無人機逐漸成為復雜場景中不可替代的重要覺得,無人機航拍數(shù)據(jù)與遙感圖像數(shù)據(jù)有幾分相似,圖像中以小目標居多,不同的是,遙感本身圖像很大,所

    2023年04月08日
    瀏覽(18)
  • 0基礎學習VR全景平臺篇第138篇:無人機航拍實操

    0基礎學習VR全景平臺篇第138篇:無人機航拍實操

    上課!全體起立~ 大家好,歡迎觀看蛙色官方系列全景攝影課程! 為了使全景的概念體現(xiàn)得更為廣闊和大氣,我們也需要在天空上運用無人機進行全景拍攝,而無人機的拍攝相對于地面來說也是較為簡單,掌握其基本的拍攝技巧就可以實現(xiàn)全景的呈現(xiàn),后期再加以補天和拼接

    2024年01月18日
    瀏覽(32)
  • 【贈書第1期】零基礎學無人機航拍與短視頻后期剪輯實戰(zhàn)教程

    【贈書第1期】零基礎學無人機航拍與短視頻后期剪輯實戰(zhàn)教程

    文章目錄 ????????前言 1 購買前須知 2 準備工作 3 飛行控制 4 拍攝技巧 5 安全提示 6 推薦圖書 7 粉絲福利 隨著科技的不斷發(fā)展,無人機已經(jīng)不再是軍事裝備的專屬,它已經(jīng)成為了消費級無人機的主流產(chǎn)品。作為國內(nèi)領先的無人機生產(chǎn)商,大疆科技深耕無人機領域多年,其

    2024年02月06日
    瀏覽(25)
  • 實踐航拍小目標檢測,基于輕量級YOLOv8n開發(fā)構(gòu)建無人機航拍場景下的小目標檢測識別分析系統(tǒng)

    實踐航拍小目標檢測,基于輕量級YOLOv8n開發(fā)構(gòu)建無人機航拍場景下的小目標檢測識別分析系統(tǒng)

    關于無人機相關的場景在我們之前的博文也有一些比較早期的實踐,感興趣的話可以自行移步閱讀即可: 《deepLabV3Plus實現(xiàn)無人機航拍目標分割識別系統(tǒng)》 《基于目標檢測的無人機航拍場景下小目標檢測實踐》 《助力環(huán)保河道水質(zhì)監(jiān)測,基于yolov5全系列模型【n/s/m/l/x】開發(fā)構(gòu)

    2024年03月11日
    瀏覽(31)
  • 實踐航拍小目標檢測,基于YOLOv7【tiny/l/x】不同系列參數(shù)模型開發(fā)構(gòu)建無人機航拍場景下的小目標檢測識別分析系統(tǒng)

    實踐航拍小目標檢測,基于YOLOv7【tiny/l/x】不同系列參數(shù)模型開發(fā)構(gòu)建無人機航拍場景下的小目標檢測識別分析系統(tǒng)

    關于無人機相關的場景在我們之前的博文也有一些比較早期的實踐,感興趣的話可以自行移步閱讀即可: 《deepLabV3Plus實現(xiàn)無人機航拍目標分割識別系統(tǒng)》 《基于目標檢測的無人機航拍場景下小目標檢測實踐》 《助力環(huán)保河道水質(zhì)監(jiān)測,基于yolov5全系列模型【n/s/m/l/x】開發(fā)構(gòu)

    2024年03月18日
    瀏覽(35)
  • 計算機視覺實戰(zhàn)項目3(圖像分類+目標檢測+目標跟蹤+姿態(tài)識別+車道線識別+車牌識別+無人機檢測+A*路徑規(guī)劃+單目測距與測速+行人車輛計數(shù)等)

    計算機視覺實戰(zhàn)項目3(圖像分類+目標檢測+目標跟蹤+姿態(tài)識別+車道線識別+車牌識別+無人機檢測+A*路徑規(guī)劃+單目測距與測速+行人車輛計數(shù)等)

    該項目一個基于深度學習和目標跟蹤算法的項目,主要用于實現(xiàn)視頻中的目標檢測和跟蹤。 該項目使用了 YOLOv5目標檢測算法和 DeepSORT 目標跟蹤算法,以及一些輔助工具和庫,可以幫助用戶快速地在本地或者云端上實現(xiàn)視頻目標檢測和跟蹤! 教程博客_傳送門鏈接-------單目測

    2024年02月08日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包