最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Python創(chuàng)建位置生成器的示例詳解

 更新時間:2022年06月15日 14:27:40   作者:woshicver  
在這篇文章中,我們將探索如何利用Python在美國各地城市的地圖數(shù)據(jù)和公共電動自行車訂閱源上訓(xùn)練一個快速生成的對抗網(wǎng)絡(luò)(GAN)模型,需要的可以參考一下

介紹

在這篇文章中,我們將探索如何在美國各地城市的地圖數(shù)據(jù)和公共電動自行車訂閱源上訓(xùn)練一個快速生成的對抗網(wǎng)絡(luò)(GAN)模型。

然后,我們可以通過為包括東京在內(nèi)的世界各地城市創(chuàng)建合成數(shù)據(jù)集來測試該模型的學(xué)習(xí)和概括能力。

git clone https://github.com/gretelai/GAN-location-generator.git

在之前的一篇博客中,我們根據(jù)電子自行車訂閱源中的精確位置數(shù)據(jù)訓(xùn)練了一個基于LSTM的語言模型,并使用該模型為相同地區(qū)(如加利福尼亞州圣莫尼卡)生成合成和隱私增強數(shù)據(jù)集。

通過以不同的方式構(gòu)建問題,并結(jié)合地圖數(shù)據(jù)作為背景,我們可以創(chuàng)建一個模型,生成人類可能訪問世界各地的精確位置。

開始

我們可以通過將電動自行車位置數(shù)據(jù)編碼為像素到圖像中,然后訓(xùn)練類似于CycleGAN、Pix2pix和StyleGAN的圖像翻譯任務(wù)來對此進(jìn)行建模。

在這篇文章中,我們將使用由pix2pix和CycleGAN的作者創(chuàng)建的FastCUT模型,因為它的內(nèi)存效率高,訓(xùn)練速度快(適用于更高分辨率的位置)。

使用GitHub上完整的端到端示例,為自己的城市創(chuàng)建合成位置數(shù)據(jù)https://github.com/gretelai/GAN-location-generator.git

步驟

模擬訓(xùn)練步驟

  • 從地圖上精確的電動自行車位置創(chuàng)建DomainA
  • 從相同的地圖創(chuàng)建DomainB,但不包含位置
  • 訓(xùn)練FastCUT 翻譯DomainB->DomainA

合成數(shù)據(jù)生成步驟

  • 對于目標(biāo)地理位置,請下載新地圖(DomainC)
  • 在FastCUT模型上進(jìn)行推理,以預(yù)測車的位置(DomainC->DomainA)
  • 使用CV處理圖像以查找指示器位置并轉(zhuǎn)換為經(jīng)緯度

創(chuàng)建訓(xùn)練數(shù)據(jù)集

安裝依賴項后,運行python -m locations.create_training_data,創(chuàng)建一對512x512px地圖圖像,分別添加和不添加位置數(shù)據(jù)。

接下來,在數(shù)據(jù)集上訓(xùn)練我們的模型——本質(zhì)上是訓(xùn)練FastCUT模型,以預(yù)測電動自行車位置將在哪里。

CUDA_VISIBLE_DEVICES=0 python train.py
--gpu_ids 0 --dataroot ./datasets/ebike_data
--name locations_FastCUT --CUT_mode FastCUT --n_epochs 30

FastCUT模型將數(shù)據(jù)記錄到Visdom,讓我們可以監(jiān)控模型訓(xùn)練。

在下面的圖中,我們可以看到模型損失在訓(xùn)練期間減少,還可以看到圖像翻譯任務(wù)的預(yù)覽。

第一個圖像是真實的DomainA地圖數(shù)據(jù),第二個是帶有預(yù)測的自行車位置(假的)的DomainA圖像的翻譯版本,第三個是真實的DomainB位置。我們可以看到,即使經(jīng)歷了25個epoch,該模型仍在學(xué)習(xí)預(yù)測合理的滑板車位置,例如街角和道路沿線。

當(dāng)運行推薦的200個epoch時,該模型似乎過擬合,預(yù)測的滑板車位置從圖像中消失。在這個例子中,我看到了30個epoch有最好的表現(xiàn)。

創(chuàng)建測試數(shù)據(jù)集

運行下面的命令,創(chuàng)建東京市中心的訓(xùn)練數(shù)據(jù)集,或修改緯度和經(jīng)度參數(shù),為任何地理區(qū)域創(chuàng)建合成位置。

請注意,對于FastCUT python代碼的工作方式,我們需要將地圖網(wǎng)格圖像復(fù)制到testA和testB目錄中。

python -m location_utils.create_test_dataset --lat 35.652832 --lon 139.839478 --name Tokyo

現(xiàn)在,我們可以使用我們的模型來處理上面為網(wǎng)格創(chuàng)建的每個圖像,以預(yù)測東京各地的電動自行車位置。

CUDA_VISIBLE_DEVICES=0 python test.py --gpu_ids 0 
--dataroot ./datasets/ebike_data
--name locations_FastCUT 
--CUT_mode FastCUT --phase train --epoch 30 --num_test 225  
--preprocess scale_width --load_size 256

查看單個圖像的結(jié)果:

將合成圖像轉(zhuǎn)換回坐標(biāo)

現(xiàn)在我們的任務(wù)是把合成電動自行車從東京拍攝到的圖像轉(zhuǎn)換成真實世界的坐標(biāo),以建立我們的合成位置數(shù)據(jù)集。

為了提取電動自行車的位置,我們使用OpenCV應(yīng)用了一個圖像遮罩,該遮罩可以搜索圖像中的任何一組洋紅色像素。

創(chuàng)建遮罩后,我們可以計算遮罩中任何像素與圖像文件名中編碼的中心點緯度和經(jīng)度之間的距離。

import cv2 as cv
import numpy as np
 
def find_points(img_path: str) -> list:
    
    """ Return the pixel offsets of magenta-colored pixels in image """
    
    image = cv.imread(img_path)
    
    lower = np.array([225, 0, 225])
    
    upper = np.array([255, 5, 255])
    
    shape_mask = cv.inRange(image, lower, upper)
    
    pixel_x, pixel_y = np.where(shape_mask > 0)
    
    return pixel_x, pixel_y

請注意,根據(jù)城市在世界上的位置,每個緯度或經(jīng)度之間的物理距離可能會發(fā)生顯著變化,在將像素映射到位置時,我們需要使用基于橢球體的模型來計算精確的偏移量。

幸運的是,geopy Python庫使這變得很容易。

import geopy.distance
 
def point_to_geo(center_lat: float, center_lon: float, point_x: float, point_y: float) -> list:
    """ Convert pixel offset and center points to lat/lon coordinates"""
    
    # Center map around current lat / lon points
    
    d = geopy.distance.distance(kilometers=np.sqrt(box_side_km ** 2 + box_side_km ** 2))
    
    ne = d.destination(point=geopy.Point(center_lat, center_lon), bearing=315)
 
    pixel_to_km = box_side_km * 2 / image_pixels
 
    lat_d = geopy.distance.distance(kilometers=pixel_to_km * point_x)
    
    lon_d = geopy.distance.distance(kilometers=pixel_to_km * point_y)
    
    point_lat = lat_d.destination(point=ne, bearing=180).latitude
    
    point_lon = lon_d.destination(point=ne, bearing=90).longitude
    
    return [point_lat, point_lon]

下圖使用cv2.imshow函數(shù)預(yù)覽遮罩圖像,然后將其轉(zhuǎn)換回緯度和經(jīng)度坐標(biāo)。

放在一起

我們現(xiàn)在可以處理所有圖像,并將合成的位置縫合到東京所有地方的新數(shù)據(jù)集中。

在東京各地查看數(shù)據(jù)時,存在一些明確的誤報,尤其是在為水道生成位置的情況下。也許需要進(jìn)一步調(diào)整模型,或在訓(xùn)練數(shù)據(jù)(domainA或domainB)中提供更多水道的負(fù)面示例,將減少誤報。

然而,結(jié)果令人鼓舞(考慮到幾乎沒有模型或數(shù)據(jù)集調(diào)整),該模型似乎能夠模擬電動自行車數(shù)據(jù)集的分布和位置,該數(shù)據(jù)集是使用來自世界不同地區(qū)的地圖進(jìn)行訓(xùn)練的。

結(jié)論

在這篇文章中,我們嘗試了將視覺領(lǐng)域的上下文(例如地圖數(shù)據(jù))與表格數(shù)據(jù)結(jié)合起來,為世界上任何地方創(chuàng)建真實的位置數(shù)據(jù)。

到此這篇關(guān)于利用Python創(chuàng)建位置生成器的示例詳解的文章就介紹到這了,更多相關(guān)Python位置生成器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 詳解如何使用GPU大幅提高效率

    python 詳解如何使用GPU大幅提高效率

    CuPy是一個開源矩陣庫,使用NVIDIA CUDA加速。CuPy使用Python提供GPU加速計算。CUPY使用CUDA相關(guān)庫,包括 CuBLAS、CUDNN、Curand、CuoSver、CuPaSeSE、Cufft和NCCL,以充分利用GPU架構(gòu)
    2021-11-11
  • Python爬蟲爬取杭州24時溫度并展示操作示例

    Python爬蟲爬取杭州24時溫度并展示操作示例

    這篇文章主要介紹了Python爬蟲爬取杭州24時溫度并展示操作,結(jié)合實例形式分析了Python爬蟲進(jìn)行頁面爬取與數(shù)據(jù)分析、展示相關(guān)操作技巧,需要的朋友可以參考下
    2020-03-03
  • Python編寫一個鬧鐘功能

    Python編寫一個鬧鐘功能

    本文給大家分享一個python小程序之基于python編寫的一個鬧鐘功能,需要的的朋友參考下實現(xiàn)代碼吧
    2017-07-07
  • 基于python實現(xiàn)分析識別文章/內(nèi)容中的高頻詞和關(guān)鍵詞

    基于python實現(xiàn)分析識別文章/內(nèi)容中的高頻詞和關(guān)鍵詞

    要分析一篇文章的高頻詞和關(guān)鍵詞,可以使用 Python 中的 nltk 庫和 collections 庫或者jieba庫來實現(xiàn),本篇文章介紹基于兩種庫分別實現(xiàn)分析內(nèi)容中的高頻詞和關(guān)鍵詞,需要的朋友可以參考下
    2023-09-09
  • Python捕獲全局的KeyboardInterrupt異常的方法實現(xiàn)

    Python捕獲全局的KeyboardInterrupt異常的方法實現(xiàn)

    KeyboardInterrupt異常是Python中的一個標(biāo)準(zhǔn)異常,它通常發(fā)生在用戶通過鍵盤中斷了一個正在運行的程序,本文主要介紹了Python捕獲全局的KeyboardInterrupt異常的方法實現(xiàn),感興趣的可以了解一下
    2024-08-08
  • python 實現(xiàn)的IP 存活掃描腳本

    python 實現(xiàn)的IP 存活掃描腳本

    這篇文章主要介紹了python 實現(xiàn)的IP 存活掃描腳本,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • Python使用sqlite3第三方庫讀寫SQLite數(shù)據(jù)庫的方法步驟

    Python使用sqlite3第三方庫讀寫SQLite數(shù)據(jù)庫的方法步驟

    數(shù)據(jù)庫非常重要,程序的數(shù)據(jù)增刪改查需要數(shù)據(jù)庫支持,python處理數(shù)據(jù)庫非常簡單,而且不同類型的數(shù)據(jù)庫處理邏輯方式大同小異,下面這篇文章主要給大家介紹了關(guān)于Python使用sqlite3第三方庫讀寫SQLite數(shù)據(jù)庫的方法步驟,需要的朋友可以參考下
    2022-07-07
  • Python將圖片轉(zhuǎn)為漫畫風(fēng)格的示例

    Python將圖片轉(zhuǎn)為漫畫風(fēng)格的示例

    本文主要介紹了Python將圖片轉(zhuǎn)為漫畫風(fēng)格的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Python生成個性簽名圖片獲取GUI過程解析

    Python生成個性簽名圖片獲取GUI過程解析

    這篇文章主要介紹了Python生成個性簽名圖片獲取GUI過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Python基于sklearn庫的分類算法簡單應(yīng)用示例

    Python基于sklearn庫的分類算法簡單應(yīng)用示例

    這篇文章主要介紹了Python基于sklearn庫的分類算法,結(jié)合簡單實例形式分析了Python使用sklearn庫封裝樸素貝葉斯、K近鄰、邏輯回歸、SVM向量機等常見機器學(xué)習(xí)算法的分類調(diào)用相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07

最新評論

梨树县| 桐梓县| 那坡县| 调兵山市| 梁山县| 乐昌市| 赤壁市| 安乡县| 醴陵市| 林甸县| 新和县| 遂平县| 裕民县| 昌乐县| 恩平市| 香港 | 安西县| 德令哈市| 石渠县| 云林县| 靖宇县| 崇仁县| 和平县| 阿克陶县| 左权县| 和顺县| 长丰县| 获嘉县| 保康县| 吉安市| 永新县| 岱山县| 隆化县| 怀仁县| 吉木萨尔县| 德清县| 额济纳旗| 朝阳区| 乌鲁木齐县| 海晏县| 永顺县|