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

yolov2檢測(cè)網(wǎng)數(shù)據(jù)集獲取與預(yù)處理_采集健康和非健康貓狗數(shù)據(jù)

這篇具有很好參考價(jià)值的文章主要介紹了yolov2檢測(cè)網(wǎng)數(shù)據(jù)集獲取與預(yù)處理_采集健康和非健康貓狗數(shù)據(jù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、網(wǎng)上公開(kāi)數(shù)據(jù)集

阿里云天池?cái)?shù)據(jù)集-cat-dog

二、獲取并預(yù)處理數(shù)據(jù)集

2.1 獲取非健康的貓狗數(shù)據(jù)

因?yàn)殚_(kāi)源數(shù)據(jù)庫(kù)中沒(méi)有非健康貓狗相關(guān)的,所以需要自己下載非健康貓狗數(shù)據(jù),并制作數(shù)據(jù)集。
下面是用于爬取非健康貓狗數(shù)據(jù)的爬蟲(chóng)代碼:

# 爬取代碼1,可以輸入關(guān)鍵詞進(jìn)行爬取百度圖庫(kù)圖片,但是運(yùn)行報(bào)錯(cuò)了
import requests
import os
import re
#設(shè)置請(qǐng)求頭,防止被百度禁止訪問(wèn)
headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
#word是要爬的圖片名字
word=input("請(qǐng)輸入關(guān)鍵詞:")
#j用來(lái)標(biāo)記圖片數(shù)量
j=1
class PaChong:
    def __init__(self,word,i):
        #path是圖片存放的地方
        self.path="C://Users/tanhui/Desktop/比賽項(xiàng)目文檔/3_數(shù)據(jù)集制作和標(biāo)注//"+word+"/"
#         第幾頁(yè)
        self.page=i/20+1
        #如果文件夾不存在,則創(chuàng)建文件夾
        if not os.path.exists(self.path):
            os.mkdir(self.path)
    #發(fā)出requests請(qǐng)求
    def requests_get(self,url):
        requests.adapters.DEFAULT_RETRIES = 5
        req=requests.get(url,timeout=30)
        req.encoding="utf-8"
        self.req=req.text
    
    #正則找到圖片鏈接
    def  get_imgurl(self):
        imgurls=re.findall('"objURL":"(.*?)"',self.req,re.S)
        self.imgurls=imgurls
    #下載圖片到本地
    def download(self):
        global j
        for imgurl in self.imgurls:
            path=self.path+word+str(j)
            #寫入文件
            with open(path+".jpg","wb") as f:
                r=requests.get(imgurl)
                f.write(r.content)
            print("%s下載成功"%path)
            j+=1
        print("第{}頁(yè)下載結(jié)束!".format(self.page))
#通過(guò)pn參數(shù)實(shí)現(xiàn)翻頁(yè),第一頁(yè)為0,,間隔為20
for i in range(0,60,20):
    url="https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word={0}&pn={1}&gsm=50&ct=&ic=0&lm=-1&width=0&height=0".format(word,i)
    Run=PaChong(word,i)
    Run.requests_get(url)
    Run.get_imgurl()
    Run.download()
'''
爬取指定關(guān)鍵字圖片,這個(gè)反爬取效果好
'''
import re# 正則表達(dá)式,解析網(wǎng)頁(yè)
import requests# 請(qǐng)求網(wǎng)頁(yè)
import traceback
import os
    
def dowmloadPic(html,keyword,startNum):
    headers = {'user-agent':'Mozilla/5.0'}# 瀏覽器偽裝,因?yàn)橛械木W(wǎng)站會(huì)反爬蟲(chóng),通過(guò)該headers可以偽裝成瀏覽器訪問(wèn),否則user-agent中的代理信息為python
    pic_url = re.findall('"objURL":"(.*?)",',html,re.S)# 找到符合正則規(guī)則的目標(biāo)網(wǎng)站
    num = len(pic_url)
    i = startNum
    subroot = root + '/' + word
    txtpath = subroot + '/download_detail.txt'

    print('找到關(guān)鍵詞:'+keyword+'的圖片,現(xiàn)在開(kāi)始下載圖片...')
    
    for each in pic_url:
        a = '第'+str(i+1)+'張圖片,圖片地址:'+str(each) + '\n'
        b = '正在下載' + a
        print(b)
        path = subroot + '/' + str(i+1)
        try:
            if not os.path.exists(subroot):
                os.mkdir(subroot)
            if not os.path.exists(path):
                pic = requests.get(each,headers = headers,timeout = 10)
                with open(path+'.jpg','wb') as f:
                    f.write(pic.content)
                    f.close()
                with open(txtpath,'a') as f:
                    f.write(a)
                    f.close()
                    
        except:
            traceback.print_exc()
            print ('【錯(cuò)誤】當(dāng)前圖片無(wú)法下載')
            continue
        i += 1
 
    return i
 
 
if __name__ == '__main__':
    
    headers = {'user-agent':'Mozilla/5.0'}
    words = ['病貓','病狗']
    #words為一個(gè)列表,可以自動(dòng)保存多個(gè)關(guān)鍵字的圖片
    root = './download_images_of_'
    for word in words:
        root = root + word + '&'
    if not os.path.exists(root):
        os.mkdir(root)
    for word in words:
        lastNum = 0
        # word = input("Input key word: ")
        if word.strip() == "exit":
            break
        pageId = 0
        #此處的參數(shù)為需爬取的頁(yè)數(shù),設(shè)置為20頁(yè)
        for i in range(20):
            url = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=' + word + "&pn="+str(pageId)+"&gsm=?&ct=&ic=0&lm=-1&width=0&height=0"
            pageId += 20#好像沒(méi)啥影響
            html = requests.get(url,headers = headers)
            # print(html.text) #打印網(wǎng)頁(yè)源碼,相當(dāng)于在網(wǎng)頁(yè)中右鍵查看源碼內(nèi)容
            lastNum = dowmloadPic(html.text, word, lastNum,)#本條語(yǔ)句執(zhí)行一次獲取60張圖

2.2 剔除重復(fù)的貓狗數(shù)據(jù)

使用圖片去重/相似圖片清理利器 軟件清除重復(fù)的圖片數(shù)據(jù)。

2.3 淘寶購(gòu)買貓狗救助視頻

使用ffmpeg將救助視頻文件按照一秒截取一張PNG圖片,ffmpeg相關(guān)鏈接可以參考5.3.2.3節(jié)

ffmpeg -i xxx.mp4 -r 1 -y C:\Users\tanhui\Desktop\比賽項(xiàng)目文檔\3_數(shù)據(jù)集制作和標(biāo)注\4_unhealthy_dogs\xxx_%6d.png

2.4 批量重命名貓狗

按照如下命名:

1_healthy_cats/healthy_cat_1.jpg
2_unhealthy_cats/unhealthy_cat_1.jpg
3_healthy_dogs/healthy_dog_1.jpg
4_unhealthy_dogs/unhealthy_dog_1.jpg

批量重命名程序1:

# -*- coding: utf-8 -*-
import os
#對(duì)所有文件以數(shù)字遞增的方式重命名
def file_rename():
    i = 0
    #需要重命名的文件絕對(duì)路徑
    path = r"C:\Users\tanhui\Desktop\比賽項(xiàng)目文檔\3_數(shù)據(jù)集制作和標(biāo)注\4_unhealthy_dogs"
     #讀取該文件夾下所有的文件
    filelist = os.listdir(path)  
    #遍歷所有文件
    for files in filelist:   
        i = i + 1
        Olddir = os.path.join(path, files)    #原來(lái)的文件路徑
        if os.path.isdir(Olddir):       #如果是文件夾則跳過(guò)
                continue
        #os.path.splitext(path)  #分割路徑,返回路徑名和文件擴(kuò)展名的元組
        #文件名,此處沒(méi)用到
        filename = os.path.splitext(files)[0]     
        #文件擴(kuò)展名
        filetype = os.path.splitext(files)[1]         #如果你不想改變文件類型的話,使用原始擴(kuò)展名
        Newdir = os.path.join(path, str(i)+filetype)   #新的文件路徑
        os.rename(Olddir, Newdir)   
    return True

if __name__ == '__main__':
    file_rename()

批量重命名程序2:

import os

def rename():
    i = 0
    path = r"C:\Users\tanhui\Desktop\比賽項(xiàng)目文檔\3_數(shù)據(jù)集制作和標(biāo)注\4_unhealthy_dogs"

    filelist = os.listdir(path)   #該文件夾下所有的文件(包括文件夾)
    for files in filelist:   #遍歷所有文件
        i = i + 1
        Olddir = os.path.join(path, files)    #原來(lái)的文件路徑
        if os.path.isdir(Olddir):       #如果是文件夾則跳過(guò)
                continue
        filename = '4_unhealthy_dog_'     #文件名
        filetype = '.jpg'        #文件擴(kuò)展名
        Newdir = os.path.join(path, filename + str(i) + filetype)   #新的文件路徑
        os.rename(Olddir, Newdir)    #重命名
    return True

if __name__ == '__main__':
    rename()

2.5 圖像數(shù)據(jù)下采樣

使用ffmpeg截取視頻幀獲得的圖像大小為1080P的,雖然使用Yolov2網(wǎng)絡(luò)訓(xùn)練時(shí),輸入的圖像是任意大小的(參考5、6),但過(guò)高碼率的圖像會(huì)在訓(xùn)練時(shí)出現(xiàn)顯存不足或者訓(xùn)練速度較慢的情況。因此將進(jìn)行圖像進(jìn)行下采樣處理。在單獨(dú)使用cv2.resize函數(shù)進(jìn)行調(diào)整圖片會(huì)出現(xiàn)圖片文件還是幾百kb的情況,所以我們需要用cv的jpeg進(jìn)行壓縮,這里的壓縮比設(shè)置為50,能夠得到10-40kb的圖像。

import cv2
import os
import time
# 圖像處理函數(shù)
def resize_image(lr_path,sr_path):
   
    #讀入圖片
    img_lr = cv2.imread(lr_path,1)

    #獲取圖像尺寸
    height, width = img_lr.shape[:2]

    #判斷圖像等于1080p
    if height == 1080 and width == 1920:
        #圖像縮放到原來(lái)的1/4
        img_sr = cv2.resize(img_lr,(1920//4,1080//4),interpolation=cv2.INTER_CUBIC)
        #保存圖像
        #對(duì)于jpg文件的壓縮,第三個(gè)參數(shù)是壓縮質(zhì)量
        #1M 100K 10K 圖片質(zhì)量的范圍是0-100 有損壓縮
        #jpg圖片的額壓縮壓縮質(zhì)量參數(shù)數(shù)值越小,壓縮比越高
        cv2.imwrite(sr_path,img_sr,[cv2.IMWRITE_JPEG_QUALITY,50]) # 保存圖片的質(zhì)量,值為0到100,越高質(zhì)量越好,默認(rèn)95
        print(sr_path + ' resize success')
    #圖像不等于1080p
    else:
        print(lr_path + ' is not 1080p')
        cv2.imwrite(sr_path,img_lr) 

if __name__ == "__main__":
    print("處理圖片中...\n")
    start = time.time()
    # 遍歷原始目錄,對(duì)每個(gè)低分辨率圖片進(jìn)行處理,并保存到對(duì)應(yīng)文件夾中
    for root, dirs, files in os.walk("2_unhealthy_cats"):
        for file in files:
            # 構(gòu)造低分辨率圖片路徑
            lr_path = os.path.join(root, file)
            # 構(gòu)造處理后圖片保存路徑
            sr_path = lr_path.replace("2_unhealthy_cats", "2_unhealthy_cats_resize")
            # 創(chuàng)建保存目錄
            os.makedirs(os.path.dirname(sr_path), exist_ok=True)

            # 進(jìn)行圖片處理并保存
            resize_image(lr_path, sr_path)
    end = time.time()
    print("處理完成,耗時(shí):{:.2f}s".format(end - start))
    

相關(guān)鏈接

  1. 關(guān)鍵詞爬取圖片(Python)-CSDN博客

  2. Python根據(jù)關(guān)鍵字進(jìn)行圖片爬取-CSDN博客]

  3. 一款公認(rèn)的圖片去重/相似圖片清理利器 - 知乎 (zhihu.com)

  4. ffmpeg制作數(shù)據(jù)集使用教程

  5. yolov2對(duì)輸入圖片有啥要求嗎?輸入圖片不是正方形的咋辦?對(duì)手工定義?

  6. 史上最通俗易懂的YOLOv2講解文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-633709.html

到了這里,關(guān)于yolov2檢測(cè)網(wǎng)數(shù)據(jù)集獲取與預(yù)處理_采集健康和非健康貓狗數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 1.0數(shù)據(jù)采集與預(yù)處理概述

    1.0數(shù)據(jù)采集與預(yù)處理概述

    大數(shù)據(jù)的來(lái)源: 1.搜索引擎數(shù)據(jù) 2.電商交易數(shù)據(jù) 3.社交網(wǎng)絡(luò)數(shù)據(jù) 4.物聯(lián)網(wǎng)傳感器數(shù)據(jù) 5.網(wǎng)站日志數(shù)據(jù) 數(shù)據(jù)采集的概念: 數(shù)據(jù)采集的ETL 工具負(fù)責(zé)將分布的、異構(gòu)數(shù)據(jù)源中的不同種類,和結(jié)構(gòu)的數(shù)據(jù)如文本數(shù)據(jù)、關(guān)系數(shù)據(jù)以及圖片、視頻等非結(jié)構(gòu)化數(shù)據(jù)等抽取到臨時(shí)中間層后進(jìn)

    2024年02月02日
    瀏覽(16)
  • 【數(shù)據(jù)采集與預(yù)處理】數(shù)據(jù)接入工具Kafka

    【數(shù)據(jù)采集與預(yù)處理】數(shù)據(jù)接入工具Kafka

    目錄 一、Kafka簡(jiǎn)介 (一)消息隊(duì)列 (二)什么是Kafka 二、Kafka架構(gòu) 三、Kafka工作流程分析 (一)Kafka核心組成 (二)寫入流程 (三)Zookeeper 存儲(chǔ)結(jié)構(gòu) (四)Kafka 消費(fèi)過(guò)程 四、Kafka準(zhǔn)備工作 (一)Kafka安裝配置 (二)啟動(dòng)Kafka (三)測(cè)試Kafka是否正常工作 五、編寫Spark Str

    2024年01月19日
    瀏覽(25)
  • 【數(shù)據(jù)采集與預(yù)處理】數(shù)據(jù)傳輸工具Sqoop

    【數(shù)據(jù)采集與預(yù)處理】數(shù)據(jù)傳輸工具Sqoop

    目錄 一、Sqoop簡(jiǎn)介 二、Sqoop原理 三、Sqoop安裝配置 (一)下載Sqoop安裝包并解壓 (二)修改配置文件 (三)拷貝JDBC驅(qū)動(dòng) (四)驗(yàn)證Sqoop (五)測(cè)試Sqoop是否能夠成功連接數(shù)據(jù)庫(kù) 四、導(dǎo)入數(shù)據(jù) (一)RDBMS到HDFS (二)RDBMS到HBase (三)RDBMS到Hive 五、導(dǎo)出數(shù)據(jù) HDFS/Hive到RDBMS 六、

    2024年01月21日
    瀏覽(25)
  • 數(shù)據(jù)預(yù)處理matlab matlab數(shù)據(jù)的獲取、預(yù)處理、統(tǒng)計(jì)、可視化、降維

    1.1 從Excel中獲取 使用readtable() 例1: 使用 spreadsheetImportOptions(Name,Value) 初步確定導(dǎo)入信息, 再用 opts.Name=Value 的格式添加。 例2: 先初始化 spreadsheetImportOptions 對(duì)象, 再用 opts.Name=Value 的格式逐個(gè)添加。 例3: 將導(dǎo)入信息存到變量里, 再使用 spreadsheetImportOptions(Name,Value)

    2024年02月15日
    瀏覽(55)
  • YOLOv7教程系列:一、基于自定義數(shù)據(jù)集訓(xùn)練專屬于自己的目標(biāo)檢測(cè)模型(保姆級(jí)教程,含數(shù)據(jù)集預(yù)處理),包含對(duì)train.py/test.py/detect.py/export.py詳細(xì)說(shuō)明

    YOLOv7作為YOLO系列的又一大巔峰之作,下面將介紹利用自己的數(shù)據(jù)集訓(xùn)練YOLOv7模型。 github代碼鏈接:https://github.com/WongKinYiu/yolov7 目前版本為v0.1 運(yùn)行環(huán)境如下: ubuntu20.04 cuda11.0 cudnn8.0.4 python3.8 torch1.12.0 torchvision0.11.0 在data目錄下新建Annotations, images, ImageSets, labels 四個(gè)文件夾 i

    2024年01月22日
    瀏覽(33)
  • 基于爬蟲(chóng)和Kettle的書籍信息采集與預(yù)處理

    基于爬蟲(chóng)和Kettle的書籍信息采集與預(yù)處理

    將讀書網(wǎng)上的書籍的基本信息,比如:封面、書名、作者、出版社、價(jià)格、出版時(shí)間、內(nèi)容簡(jiǎn)介、作者簡(jiǎn)介、書籍目錄、ISBN和標(biāo)簽爬取出來(lái),并將爬取的結(jié)果放入數(shù)據(jù)庫(kù)中,方便存儲(chǔ)。 ??? 圖1讀書網(wǎng)書籍類別詳情 此次實(shí)驗(yàn)爬取讀書網(wǎng)頁(yè)面中文學(xué)、小說(shuō)、傳記、青春文學(xué)、

    2024年01月21日
    瀏覽(26)
  • 基于Python的海量豆瓣電影、數(shù)據(jù)獲取、數(shù)據(jù)預(yù)處理、數(shù)據(jù)分析、可視化、大屏設(shè)計(jì)項(xiàng)目(含數(shù)據(jù)庫(kù))

    基于Python的海量豆瓣電影、數(shù)據(jù)獲取、數(shù)據(jù)預(yù)處理、數(shù)據(jù)分析、可視化、大屏設(shè)計(jì)項(xiàng)目(含數(shù)據(jù)庫(kù))

    項(xiàng)目介紹 有需要本項(xiàng)目的代碼或文檔以及全部資源,或者部署調(diào)試可以私信博主?。。。。。。。。。?本文基于Python的網(wǎng)絡(luò)爬蟲(chóng)手段對(duì)豆瓣電影網(wǎng)站進(jìn)行數(shù)據(jù)的抓取,通過(guò)合理的分析豆瓣網(wǎng)站的網(wǎng)頁(yè)結(jié)構(gòu),并設(shè)計(jì)出規(guī)則來(lái)獲取電影數(shù)據(jù)的JSON數(shù)據(jù)包,采用正態(tài)分布的延時(shí)措施

    2024年02月12日
    瀏覽(50)
  • 基于爬蟲(chóng)和Kettle的豆瓣電影的采集與預(yù)處理

    基于爬蟲(chóng)和Kettle的豆瓣電影的采集與預(yù)處理

    將豆瓣電影網(wǎng)上的電影的基本信息,比如:電影名稱、導(dǎo)演、電影類型、國(guó)家、上映年份、評(píng)分、評(píng)論人數(shù)爬取出來(lái),并將爬取的結(jié)果放入csv文件中,方便存儲(chǔ)。 ??? 圖1豆瓣網(wǎng)網(wǎng)站結(jié)構(gòu)詳情 此次實(shí)驗(yàn)爬取豆瓣網(wǎng)中電影頁(yè)面中的電影的基本信息。 每一個(gè)電影包括電影名稱、

    2024年02月02日
    瀏覽(22)
  • matlab數(shù)據(jù)的獲取、預(yù)處理、統(tǒng)計(jì)、可視化、降維 | 《matlab數(shù)學(xué)建模方法與實(shí)踐(第三版)》學(xué)習(xí)筆記

    matlab數(shù)據(jù)的獲取、預(yù)處理、統(tǒng)計(jì)、可視化、降維 | 《matlab數(shù)學(xué)建模方法與實(shí)踐(第三版)》學(xué)習(xí)筆記

    一、數(shù)據(jù)的獲取 1.1 從Excel中獲取 使用readtable() 使用xlsread()——xlswrite() 1.2? 從TXT中獲取 使用load() 使用textread() 使用fopen() fread() fclose()? 使用fprintf()寫入信息到txt ?1.3?從圖片中獲取 使用imread? 1.4 從視頻獲取? 使用視覺(jué)工具箱中的VideoFileReader? 二、數(shù)據(jù)的預(yù)處理 2.1 缺失值處

    2024年01月19日
    瀏覽(42)
  • 【預(yù)處理】——獲取可變參數(shù)宏的參數(shù)數(shù)量

    用于獲取可變參數(shù)宏實(shí)際傳遞了多少個(gè)參數(shù)。 COUNT_ARGS(1, 2, 3) ,填入了 3 個(gè)參數(shù),返回值就是 3 COUNT_ARGS(\\\"Hello\\\", \\\'a\\\', 3.14, 4) ,填入了 4 個(gè) 參數(shù),返回值就是 4 COUNT_ARGS(1) ,我們填入了 1 個(gè)參數(shù),返回值就是 1 __COUNT_ARGS 宏定義了一個(gè)帶有多個(gè)參數(shù)的宏,其中 _0 到 _20 是占位符參

    2024年02月15日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包