日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

Unity虛擬仿真生成點云數(shù)據(jù):打通OpenPCDet訓練流水線實戰(zhàn)

Unity虛擬仿真生成點云數(shù)據(jù):打通OpenPCDet訓練流水線實戰(zhàn) 1. 項目概述為什么要在Unity里搞點云數(shù)據(jù)生成如果你正在做自動駕駛、機器人感知或者三維重建那你肯定對點云數(shù)據(jù)不陌生。激光雷達掃出來的那一堆三維空間點就是算法的“眼睛”。但現(xiàn)實是采集真實世界的點云數(shù)據(jù)成本高、周期長、場景受限還受天氣影響。這時候虛擬仿真就成了一個繞不開的利器。這個項目就是把兩個看似不搭界的工具鏈擰在一起Unity和OpenPCDet。Unity是頂級的實時3D內(nèi)容創(chuàng)作平臺能生成高度逼真、物理規(guī)則正確的虛擬世界。OpenPCDet則是目前最流行、最易用的點云3D目標檢測開源框架之一基于PyTorch集成了PointPillar、PointRCNN、PV-RCNN等一系列SOTA模型。我們的目標很明確在Unity中構建一個可控的虛擬環(huán)境生成帶有精確標注信息的點云數(shù)據(jù)并最終能被OpenPCDet的pipeline無縫讀取和訓練。這聽起來像是個“縫合怪”但一旦跑通價值巨大。你可以批量生成雨雪霧天、黑夜、極端交通場景的數(shù)據(jù)可以隨意調(diào)整物體類別、密度和姿態(tài)成本幾乎為零。這對于算法模型的快速迭代、數(shù)據(jù)增強、以及解決真實數(shù)據(jù)中的長尾問題是降維打擊。我自己在推進自動駕駛感知項目時就深受數(shù)據(jù)匱乏之苦。等路采車隊回來標注團隊再標上幾周一個迭代周期就過去了。后來下定決心打通這條虛擬數(shù)據(jù)流水線中間踩了無數(shù)的坑從坐標轉(zhuǎn)換、數(shù)據(jù)格式到標注同步每一步都可能讓你卡上好幾天。這篇教程就是把我趟過的路、填過的坑系統(tǒng)地梳理出來讓你能避開我走過的彎路快速搭建起自己的虛擬數(shù)據(jù)生成工廠。2. 核心思路與架構設計打通Unity到OpenPCDet的任督二脈整個流程的核心是設計一條從虛擬世界到檢測模型訓練的數(shù)據(jù)通路。這不僅僅是“導出幾個點”那么簡單它涉及到坐標系轉(zhuǎn)換、數(shù)據(jù)格式對齊、標注信息同步等一系列工程問題。下圖清晰地展示了我們設計的核心數(shù)據(jù)流與模塊架構flowchart TD A[Unity虛擬環(huán)境] --|模擬激光雷達br生成原始點云與標注| B[數(shù)據(jù)生成模塊] B -- C{格式轉(zhuǎn)換與同步模塊} C --|轉(zhuǎn)換為PCD格式| D[點云數(shù)據(jù)br.pcd文件] C --|生成KITTI格式標注| E[標注文件br.txt文件] D -- F[OpenPCDet數(shù)據(jù)集目錄] E -- F F -- G[OpenPCDet數(shù)據(jù)預處理br創(chuàng)建gt_database等] G -- H[模型訓練與驗證]2.1 為什么是Unity OpenPCDet這個組合首先看Unity。選擇它而不是其他仿真軟件如CARLA其底層也是Unreal原因有幾個可控性與保真度Unity的渲染管線特別是URP/HDRP能產(chǎn)生極其逼真的圖像這對于模擬激光雷達的強度intensity信息至關重要。你可以精細控制材質(zhì)的光學屬性。靈活的腳本與插件生態(tài)C#腳本和龐大的Asset Store資源讓我們可以自定義激光雷達模型、控制場景邏輯、編寫數(shù)據(jù)導出器非常靈活。性能與批量生成Unity可以無頭模式Headless Mode運行在服務器上批量跑仿真快速生成海量數(shù)據(jù)。物理引擎內(nèi)置的NVIDIA PhysX或新的Unity Physics能提供剛體動力學模擬讓車輛碰撞、物體掉落等場景更真實。再看OpenPCDet。它不是一個基礎框架而是一個高度模塊化、工程化完善的開源項目。統(tǒng)一的基準它復現(xiàn)并統(tǒng)一了多個頂級點云檢測模型的代碼使用相同的評估標準和數(shù)據(jù)接口主要是KITTI格式避免了我們自己東拼西湊。易于擴展其數(shù)據(jù)加載、模型定義、損失函數(shù)都是模塊化的我們生成的數(shù)據(jù)只要符合它的約定就能立即用于訓練和評估。社區(qū)活躍遇到問題容易找到解決方案或討論。2.2 核心挑戰(zhàn)與解決思路結合上面的架構圖整個流程面臨幾個核心挑戰(zhàn)挑戰(zhàn)一傳感器物理模擬Unity里沒有現(xiàn)成的、物理準確的激光雷達模型。我們需要用腳本模擬激光束的發(fā)射、碰撞檢測并計算返回點的坐標、距離和強度。強度模擬尤其復雜需要結合物體表面材質(zhì)、入射角、距離衰減等因素。解決思路不追求絕對物理正確而是追求“物理合理”和“一致性”。我們采用射線投射Raycast來模擬單束激光。強度值可以基于擊中物體的材質(zhì)預設一個基礎反射率再乘以一個基于入射角射線與法線夾角的衰減系數(shù)和距離衰減系數(shù)。關鍵是同一類物體在不同距離、角度下其強度值的變化趨勢要合理并且整個數(shù)據(jù)集的模擬規(guī)則要一致。挑戰(zhàn)二坐標系轉(zhuǎn)換這是新手最容易栽跟頭的地方。Unity使用左手坐標系Y軸向上而自動駕駛領域常用的KITTI數(shù)據(jù)集和OpenPCDet使用右手坐標系Z軸向上。同時激光雷達的安裝位置、朝向偏航、俯仰、橫滾角都需要精確對齊。解決思路在數(shù)據(jù)導出的最后一步進行統(tǒng)一的坐標系變換。我們需要一個變換矩陣將Unity世界空間中的點左手系Y上轉(zhuǎn)換到以激光雷達為中心的右手坐標系Z上X前Y左。這個變換通常包含平移到雷達中心、旋轉(zhuǎn)對齊軸系、可能還有縮放。必須寫一個工具函數(shù)并反復驗證可以通過在場景中放置已知位置的標定物來驗證轉(zhuǎn)換是否正確。挑戰(zhàn)三數(shù)據(jù)與標注格式對齊OpenPCDet主要支持KITTI格式。這意味著我們的點云需要保存為.binKITTI原始點云或.pcd文件標注信息需要保存為特定的.txt文件每行包含物體類別、截斷/遮擋程度、觀測角、2D/3D邊界框等信息。解決思路在Unity中我們不僅要知道每個點打在了哪個物體上還要知道這個物體的3D邊界框在雷達坐標系下。這需要在場景中為每個可檢測物體車、人、騎行者等添加一個腳本實時計算其相對于雷達的3D包圍盒。標注文件中的參數(shù)如旋轉(zhuǎn)角繞Y軸、中心點、長寬高都需要從這個包圍盒精確計算出來。挑戰(zhàn)四流水線自動化最終我們需要的是一個“一鍵生成”或可批量調(diào)用的流程而不是在Unity編輯器里手動點擊播放、導出。解決思路利用Unity的命令行接口和C#腳本。我們可以編寫一個主控腳本負責按順序1加載場景2隨機化或按預設擺放物體、天氣、光照3運行仿真4觸發(fā)雷達掃描和數(shù)據(jù)導出5循環(huán)。然后通過命令行調(diào)用Unity可執(zhí)行文件并執(zhí)行這個腳本實現(xiàn)自動化批量生成。3. 環(huán)境搭建與工具鏈準備工欲善其事必先利其器。這一部分我們詳細列出所需的軟件、插件和初始配置。請嚴格按照步驟操作避免版本沖突。3.1 Unity側環(huán)境配置Unity版本選擇建議使用Unity 2021.3 LTS或2022.3 LTS版本。LTS長期支持版穩(wěn)定性高社區(qū)資源豐富。避免使用最新的技術預覽版可能遇到未知插件兼容性問題。安裝Unity Hub和指定版本編輯器從Unity官網(wǎng)下載并安裝Unity Hub。在Hub的“安裝”頁面添加所需的LTS版本編輯器。在安裝時務必勾選“Windows Build Support (IL2CPP)”或?qū)腖inux/Mac模塊如果你在服務器上做無頭模式生成以及“Linux/Mac/Windows Dedicated Server”模塊用于無頭模式。創(chuàng)建新項目使用3D (URP)模板創(chuàng)建新項目。URP通用渲染管線在保真度和性能上取得了很好的平衡且更適合后期自定義渲染效果來模擬激光雷達強度。項目命名建議為PointCloudSimulator。關鍵插件與Asset導入Obi Rope / 或自定義射線管理雖然我們可以自己寫射線代碼但使用一些高級射線或物理插件能更方便地管理成千上萬條激光束。Obi是一個強大的物理插件但其主要用于柔體。對于純雷達模擬自己編寫一個高效的多線程Raycast管理器是更直接的選擇。我們這里先以自研為主。場景資源從Asset Store獲取高質(zhì)量的道路、車輛、行人、建筑資產(chǎn)包。推薦搜索“POLYGON”系列或“Synty Studios”的資產(chǎn)它們風格統(tǒng)一、面數(shù)優(yōu)化好。也可以使用開源的“Unity Robotics”倉庫中的URDF導入工具如果你有機器人模型的話。天空與天氣系統(tǒng)可以使用Unity的Post Processing Volumetric Fog來模擬霧天或使用資產(chǎn)如“Enviro - Sky and Weather”來動態(tài)控制天氣。3.2 Python與OpenPCDet環(huán)境配置強烈建議使用Anaconda管理Python環(huán)境避免污染系統(tǒng)環(huán)境。安裝Anaconda從官網(wǎng)下載并安裝Anaconda。創(chuàng)建專用虛擬環(huán)境# 創(chuàng)建一個名為 openpcdet 的Python 3.8環(huán)境3.8是PyTorch兼容性較好的版本 conda create -n openpcdet python3.8 -y conda activate openpcdet安裝PyTorch 訪問PyTorch官網(wǎng)根據(jù)你的CUDA版本建議11.3或11.6選擇安裝命令。例如對于CUDA 11.3pip install torch1.12.1cu113 torchvision0.13.1cu113 torchaudio0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113克隆并安裝OpenPCDet# 克隆倉庫 git clone https://github.com/open-mmlab/OpenPCDet.git cd OpenPCDet # 安裝依賴 pip install -r requirements.txt # 編譯CUDA算子關鍵步驟 python setup.py develop注意編譯CUDA算子時請確保你的nvcc版本與PyTorch要求的CUDA版本一致。如果編譯失敗通常是環(huán)境問題請仔細檢查PyTorch版本、CUDA版本和nvcc版本是否匹配。安裝點云處理庫pip install open3d # 用于可視化點云和格式轉(zhuǎn)換 pip install pyntcloud # 可選用于處理PCD文件3.3 數(shù)據(jù)格式橋梁自定義導出工具規(guī)劃我們需要在Unity中編寫C#腳本負責模擬激光雷達掃描。收集命中點信息坐標、強度、物體ID。計算3D邊界框標注。將數(shù)據(jù)導出為中間格式如JSON或自定義二進制或直接轉(zhuǎn)換為KITTI格式。同時在Python端編寫一個后處理腳本負責讀取Unity導出的中間數(shù)據(jù)。執(zhí)行坐標系轉(zhuǎn)換。生成最終的.pcd/.bin點云文件和KITTI格式的.txt標注文件。按照OpenPCDet要求的目錄結構組織數(shù)據(jù)。這種“Unity導出中間格式 - Python后處理”的架構比在Unity中直接寫KITTI格式更靈活便于調(diào)試和擴展。4. Unity端虛擬激光雷達與場景構建實戰(zhàn)現(xiàn)在我們進入Unity編輯器開始構建核心的傳感器模擬和數(shù)據(jù)采集系統(tǒng)。4.1 構建一個基礎的激光雷達傳感器腳本我們在Unity中創(chuàng)建一個空的GameObject命名為LidarSensor并為其附加一個新的C#腳本LidarSimulator.cs。這個腳本的核心是模擬機械旋轉(zhuǎn)式激光雷達如Velodyne HDL-64E。我們需要定義幾個關鍵參數(shù)using UnityEngine; using System.Collections.Generic; using System.IO; public class LidarSimulator : MonoBehaviour { [Header(激光雷達參數(shù))] public int channels 64; // 激光線數(shù) public float maxRange 100.0f; // 最大探測距離米 public float minRange 0.5f; // 最小探測距離 public float horizontalFOV 360.0f; // 水平視場角 public float verticalFOV 26.8f; // 垂直視場角-24.8° 到 2° public float rotationFrequency 10.0f; // 旋轉(zhuǎn)頻率Hz public int pointsPerSecond 1300000; // 每秒點數(shù)估算值 [Header(輸出設置)] public string dataOutputPath LidarData; public bool saveEveryFrame false; public int frameRate 10; // 仿真幀率決定數(shù)據(jù)采集頻率 private ListVector4 currentFramePoints; // 存儲當前幀的點云Vector4的w分量存儲強度 private float horizontalAngleStep; private float verticalAngleStart; private float timePerRotation; private float currentRotationAngle 0f; private int frameCount 0; void Start() { // 計算步進角 horizontalAngleStep horizontalFOV / (pointsPerSecond / rotationFrequency / channels); verticalAngleStart -verticalFOV / 2.0f; timePerRotation 1.0f / rotationFrequency; currentFramePoints new ListVector4(); // 設置幀率 Application.targetFrameRate frameRate; // 創(chuàng)建輸出目錄 if (!Directory.Exists(dataOutputPath)) { Directory.CreateDirectory(dataOutputPath); } } void Update() { // 每一幀模擬一次旋轉(zhuǎn)掃描簡化模型實際是連續(xù)旋轉(zhuǎn) SimulateOneScan(); if (saveEveryFrame) { SaveCurrentFrameData(); } frameCount; } void SimulateOneScan() { currentFramePoints.Clear(); float deltaAngle horizontalAngleStep * Time.deltaTime * rotationFrequency * 360f; for (int ch 0; ch channels; ch) { float verticalAngle verticalAngleStart (verticalFOV / channels) * ch; // 將垂直角轉(zhuǎn)換為弧度并計算該通道激光的全局方向 Quaternion verticalRotation Quaternion.AngleAxis(verticalAngle, transform.right); Vector3 channelBaseDirection verticalRotation * transform.forward; // 水平旋轉(zhuǎn) Quaternion horizontalRotation Quaternion.AngleAxis(currentRotationAngle, transform.up); Vector3 rayDirection horizontalRotation * channelBaseDirection; // 發(fā)射射線 Ray ray new Ray(transform.position, rayDirection); RaycastHit hit; if (Physics.Raycast(ray, out hit, maxRange)) { if (hit.distance minRange) { // 計算強度簡化模型基于距離和材質(zhì) float intensity CalculateIntensity(hit.distance, hit.normal, rayDirection, hit.collider.material); Vector4 point new Vector4(hit.point.x, hit.point.y, hit.point.z, intensity); currentFramePoints.Add(point); } } } currentRotationAngle deltaAngle; if (currentRotationAngle 360f) currentRotationAngle - 360f; } float CalculateIntensity(float distance, Vector3 normal, Vector3 rayDir, Material material) { // 簡化強度模型 float baseReflectivity 0.5f; // 應從材質(zhì)屬性中讀取這里簡化 float distanceAttenuation Mathf.Exp(-0.02f * distance); // 距離衰減 float cosIncidentAngle Vector3.Dot(-rayDir.normalized, normal.normalized); cosIncidentAngle Mathf.Clamp(cosIncidentAngle, 0.05f, 1.0f); // 避免角度過小導致強度過大 float angleFactor Mathf.Pow(cosIncidentAngle, 0.5f); return baseReflectivity * distanceAttenuation * angleFactor * Random.Range(0.9f, 1.1f); // 加入微小噪聲 } void SaveCurrentFrameData() { string frameFilePath Path.Combine(dataOutputPath, $frame_{frameCount:D6}.json); // 這里將currentFramePoints列表轉(zhuǎn)換為JSON或自定義格式保存 // 實際應包含點坐標、強度以及后續(xù)要關聯(lián)的物體ID // 為簡化示例我們先保存為CSV格式便于查看 using (StreamWriter sw new StreamWriter(frameFilePath)) { sw.WriteLine(x,y,z,intensity); foreach (var pt in currentFramePoints) { sw.WriteLine(${pt.x},{pt.y},{pt.z},{pt.w}); } } Debug.Log($Saved frame data to: {frameFilePath}); } }注意這是一個高度簡化的模擬器。真實的激光雷達模型需要考慮光束發(fā)散角、多回波、噪聲模型高斯噪聲、隨機丟點、雷達截面RCS等。對于學術研究和初步數(shù)據(jù)增強這個簡化模型已經(jīng)能產(chǎn)生非常有用的數(shù)據(jù)。關鍵在于一致性即你的模擬規(guī)則在整個數(shù)據(jù)集中保持不變。4.2 為場景物體添加標注信息腳本為了讓系統(tǒng)知道哪個點屬于哪個物體我們需要給每個可檢測的物體如車輛、行人添加一個腳本DetectableObject.cs。using UnityEngine; public class DetectableObject : MonoBehaviour { public enum ObjectCategory { Car, Pedestrian, Cyclist, Misc } public ObjectCategory category ObjectCategory.Car; // 用于在雷達坐標系下計算3D框 private Renderer objectRenderer; private Collider objectCollider; void Start() { objectRenderer GetComponentInChildrenRenderer(); objectCollider GetComponentInChildrenCollider(); } // 提供一個方法根據(jù)給定的雷達變換信息計算該物體在雷達坐標系下的3D邊界框 public bool TryGetBoundingBoxInLidarSpace(Transform lidarTransform, out Vector3 center, out Vector3 size, out float rotationY) { center Vector3.zero; size Vector3.zero; rotationY 0f; if (objectRenderer null || objectCollider null) return false; // 獲取物體在世界坐標系下的軸對齊包圍盒AABB Bounds worldBounds objectRenderer.bounds; // 將包圍盒的8個頂點轉(zhuǎn)換到雷達的局部坐標系 Vector3[] corners new Vector3[8]; corners[0] lidarTransform.InverseTransformPoint(new Vector3(worldBounds.min.x, worldBounds.min.y, worldBounds.min.z)); corners[1] lidarTransform.InverseTransformPoint(new Vector3(worldBounds.min.x, worldBounds.min.y, worldBounds.max.z)); corners[2] lidarTransform.InverseTransformPoint(new Vector3(worldBounds.min.x, worldBounds.max.y, worldBounds.min.z)); corners[3] lidarTransform.InverseTransformPoint(new Vector3(worldBounds.min.x, worldBounds.max.y, worldBounds.max.z)); corners[4] lidarTransform.InverseTransformPoint(new Vector3(worldBounds.max.x, worldBounds.min.y, worldBounds.min.z)); corners[5] lidarTransform.InverseTransformPoint(new Vector3(worldBounds.max.x, worldBounds.min.y, worldBounds.max.z)); corners[6] lidarTransform.InverseTransformPoint(new Vector3(worldBounds.max.x, worldBounds.max.y, worldBounds.min.z)); corners[7] lidarTransform.InverseTransformPoint(new Vector3(worldBounds.max.x, worldBounds.max.y, worldBounds.max.z)); // 在雷達坐標系下計算新的AABB Vector3 min corners[0]; Vector3 max corners[0]; foreach (Vector3 corner in corners) { min Vector3.Min(min, corner); max Vector3.Max(max, corner); } center (min max) / 2.0f; size max - min; // 計算偏航角繞雷達坐標系Y軸的旋轉(zhuǎn)。這里簡化處理取物體自身Y軸旋轉(zhuǎn)。 // 更精確的做法是計算物體朝向在雷達XZ平面上的投影與雷達X軸的夾角。 Vector3 objectForwardInLidarSpace lidarTransform.InverseTransformDirection(transform.forward); rotationY Mathf.Atan2(objectForwardInLidarSpace.x, objectForwardInLidarSpace.z); // 注意坐標系差異 return true; } // 獲取類別標簽字符串用于KITTI格式 public string GetCategoryLabel() { switch (category) { case ObjectCategory.Car: return Car; case ObjectCategory.Pedestrian: return Pedestrian; case ObjectCategory.Cyclist: return Cyclist; default: return Misc; } } }然后我們需要修改LidarSimulator的射線檢測部分在擊中物體時不僅記錄點還要記錄擊中的物體ID可以通過hit.collider.gameObject.GetComponentDetectableObject()獲取并將這個ID與點云數(shù)據(jù)一起保存。在SaveCurrentFrameData時還需要遍歷場景中所有DetectableObject調(diào)用其TryGetBoundingBoxInLidarSpace方法生成該幀的標注信息并保存為單獨的標注文件。4.3 場景布置與自動化腳本構建基礎場景創(chuàng)建一個平面作為地面導入道路模型、建筑、樹木等靜態(tài)資產(chǎn)。這些靜態(tài)資產(chǎn)通常不需要DetectableObject腳本除非你想檢測它們。創(chuàng)建車輛和行人預制體Prefab將帶有DetectableObject腳本的車輛、行人模型做成預制體。這樣便于批量放置和管理。編寫場景生成器創(chuàng)建一個SceneGenerator.cs腳本負責在運行時隨機或按預設路徑生成車輛和行人。這可以包括在車道線上生成車輛隊列。在斑馬線附近生成行人。隨機化車輛的顏色、型號通過替換子模型。為物體賦予初始速度或簡單的AI如沿著路徑點移動。集成到主流程修改LidarSimulator使其在Start時調(diào)用場景生成器然后開始仿真和數(shù)據(jù)記錄??梢栽O置一個總幀數(shù)或總時長到達后自動停止并退出應用Application.Quit()這對于命令行批量運行至關重要。5. 數(shù)據(jù)后處理從Unity到OpenPCDet格式的轉(zhuǎn)換Unity導出的數(shù)據(jù)如CSV或自定義二進制是“原始數(shù)據(jù)”我們需要將其轉(zhuǎn)換為OpenPCDet能夠直接讀取的標準格式。5.1 坐標系轉(zhuǎn)換詳解這是最關鍵的一步。假設我們的Unity場景和雷達傳感器設置如下Unity世界坐標系左手系Y軸向上X軸向右Z軸向前。我們的LidarSensorGameObject的Transform代表了雷達在Unity世界中的位置和朝向。目標坐標系KITTI/OpenPCDet雷達坐標系右手系Z軸向上X軸向前Y軸向左。轉(zhuǎn)換步驟獲取點在雷達局部坐標系下的坐標在Unity中我們通過lidarTransform.InverseTransformPoint(hit.point)已經(jīng)得到了點相對于雷達的坐標(x_u, y_u, z_u)其中y_u是向上的。左手系到右手系的轉(zhuǎn)換從Unity左手系到KITTI右手系通常意味著其中一個軸需要反向。最常見的轉(zhuǎn)換是X - X, Y - Z, Z - Y并且可能需要調(diào)整正負號來匹配朝向。 經(jīng)過實踐一個廣泛使用的轉(zhuǎn)換關系是x_kitti z_unity y_kitti -x_unity z_kitti y_unity但這取決于你的雷達傳感器在Unity中的朝向。如果你的雷達GameObject的Forward (Z) 指向Unity場景的前方比如車頭方向而你想讓KITTI坐標系中X軸指向車頭前方那么上述轉(zhuǎn)換可能不對。最可靠的方法是進行標定在Unity中將雷達放在原點(0,0,0)朝向設為(0,0,1)Unity的Z正方向。在雷達正前方1米處Unity Z軸1放置一個標定球。運行掃描導出該點的坐標假設得到(0, 0, 1)。應用你的轉(zhuǎn)換公式得到KITTI坐標。你期望的結果應該是(1, 0, 0)X前Y左Z上。如果不匹配調(diào)整公式。常見的正確轉(zhuǎn)換可能是x_k z_u, y_k -x_u, z_k y_u。驗證Unity點(0,0,1) - (1, 0, 0)符合預期。再在雷達正左方1米處Unity X軸1放一個球Unity點(1,0,0)應轉(zhuǎn)換為KITTI點(0, -1, 0)。驗證通過。5.2 生成KITTI格式標注文件KITTI標注文件.txt每行代表一個物體包含15個字段對于我們生成數(shù)據(jù)主要關注前14個字段說明我們的生成邏輯1類別 (如 ‘Car’, ‘Pedestrian’)從DetectableObject.GetCategoryLabel()獲取2截斷程度 (0~1)虛擬數(shù)據(jù)通常設為 0.0未截斷3遮擋程度 (0,1,2,3)虛擬數(shù)據(jù)通常設為 0完全可見4觀測角 (alpha)計算物體中心相對于雷達的方位角需轉(zhuǎn)換到相機坐標系虛擬數(shù)據(jù)可先粗略估計或設為05~82D邊界框 (左上右下)虛擬數(shù)據(jù)通常留空或填-1因為這是圖像坐標系下的框。我們只關注3D。9~113D尺寸 (高寬長)注意順序從TryGetBoundingBoxInLidarSpace輸出的size獲取。KITTI順序是高度、寬度、長度在相機坐標系下。在雷達坐標系下我們需要根據(jù)定義重新排序。通常size.y對應高size.x對應寬size.z對應長。但務必驗證12~143D位置 (x, y, z)從TryGetBoundingBoxInLidarSpace輸出的center獲取并應用與點云相同的坐標系轉(zhuǎn)換。15旋轉(zhuǎn)角 (ry繞Y軸)從TryGetBoundingBoxInLidarSpace輸出的rotationY獲取。關鍵提示KITTI的3D框定義是在相機坐標系下也是右手系Z前X右Y下。但OpenPCDet在加載KITTI數(shù)據(jù)時會將其轉(zhuǎn)換到雷達坐標系。因此我們生成標注時可以直接生成雷達坐標系下的3D框參數(shù)并忽略與相機相關的字段如2D框、觀測角alpha可以簡單計算或設0。許多基于KITTI訓練的研究代碼都提供了只使用雷達坐標標注的選項。最穩(wěn)妥的方法是參考OpenPCDet中kitti_dataset.py的標注加載部分看它具體期望什么坐標系下的數(shù)據(jù)。5.3 編寫Python后處理腳本創(chuàng)建一個convert_unity_to_kitti.py腳本其工作流程如下讀取Unity原始數(shù)據(jù)讀取你保存的JSON/CSV/二進制文件包含點云列表和每幀的物體標注信息。應用坐標系轉(zhuǎn)換對每個點云坐標和每個3D框中心點坐標應用5.1節(jié)確定的轉(zhuǎn)換公式。生成點云文件將轉(zhuǎn)換后的點云Nx4包含x,y,z,intensity保存為.bin文件純二進制float32數(shù)組或.pcd文件PCL庫格式可用open3d讀寫。保存為.binpoints.astype(np.float32).tofile(‘xxxx.bin’)保存為.pcd使用open3d.geometry.PointCloud然后open3d.io.write_point_cloud。生成標注文件為每一幀創(chuàng)建一個同名的.txt文件按照5.2節(jié)的格式寫入每個物體的信息。組織目錄結構按照OpenPCDet的要求組織文件。通常結構如下OpenPCDet └── data └── kitti ├── ImageSets │ └── train.txt (和val.txt, test.txt里面是幀ID列表如000000, 000001) ├── training │ ├── calib (校準文件虛擬數(shù)據(jù)可以先放空文件或簡單模擬) │ ├── image_2 (空目錄或放置對應的虛擬相機圖像) │ ├── label_2 (存放我們生成的.txt標注文件) │ └── velodyne (存放我們生成的.bin或.pcd點云文件) └── testing (類似training如果沒有測試集就空著)生成數(shù)據(jù)集的劃分文件在ImageSets文件夾下的train.txt等文件中只需寫入幀的文件名不含擴展名例如000000 000001 000002 ...6. 在OpenPCDet中訓練與驗證虛擬數(shù)據(jù)數(shù)據(jù)準備就緒后我們終于可以在OpenPCDet中使用了。6.1 創(chuàng)建自定義數(shù)據(jù)集配置文件OpenPCDet使用YAML文件定義數(shù)據(jù)集。我們需要復制一個現(xiàn)有的KITTI配置文件如tools/cfgs/dataset_configs/kitti_dataset.yaml并修改。主要修改點DATASET: KittiDataset DATA_PATH: ../data/kitti # 你的數(shù)據(jù)根目錄 ... POINT_CLOUD_RANGE: [0, -40, -3, 70.4, 40, 1] # 點云感興趣區(qū)域根據(jù)你的場景調(diào)整 ... DATA_SPLIT: { train: train.txt, test: val.txt, # 通常用val集做測試 } INFO_PATH: { train: [kitti_infos_train.pkl], test: [kitti_infos_val.pkl], }然后你需要運行OpenPCDet的數(shù)據(jù)預處理腳本來生成kitti_infos_train.pkl等文件cd OpenPCDet/tools python -m pcdet.datasets.kitti.kitti_dataset create_kitti_infos tools/cfgs/dataset_configs/your_custom_kitti.yaml這個命令會解析你的label_2和velodyne文件夾生成包含數(shù)據(jù)路徑、標注、難度等信息的pkl文件。6.2 訓練模型選擇一個模型例如PointPillar其配置文件在tools/cfgs/kitti_models/pointpillar.yaml。你需要修改其中的DATA_CONFIG部分指向你自定義的數(shù)據(jù)集配置文件。DATA_CONFIG: _BASE_CONFIG_: cfgs/dataset_configs/your_custom_kitti.yaml然后開始訓練python train.py --cfg_file tools/cfgs/kitti_models/pointpillar.yaml --batch_size 4 --workers 4注意虛擬數(shù)據(jù)的分布和真實數(shù)據(jù)有差異Domain Gap直接訓練可能效果有限。但我們的主要目的可能是驗證流水線確保數(shù)據(jù)能被正確讀取、模型能正常訓練。數(shù)據(jù)增強將虛擬數(shù)據(jù)與真實數(shù)據(jù)混合訓練。特定場景預訓練先在大量虛擬數(shù)據(jù)上預訓練再用少量真實數(shù)據(jù)微調(diào)。6.3 可視化與調(diào)試OpenPCDet提供了很好的可視化工具。在訓練前或訓練后可以使用以下命令可視化你的數(shù)據(jù)或檢測結果# 可視化數(shù)據(jù)集中的某一幀包括點云和3D框 python demo.py --cfg_file ${CONFIG_FILE} --ckpt ${CHECKPOINT_FILE} --data_path ${POINT_CLOUD_DATA} --ext .bin通過可視化你可以最直觀地檢查點云坐標轉(zhuǎn)換是否正確物體是否站在地面上Z軸向上場景方向是否符合預期3D標注框是否準確框是否緊密包裹物體旋轉(zhuǎn)角是否正確強度信息是否合理不同材質(zhì)、不同距離的物體強度值是否有明顯差異7. 常見問題、避坑指南與性能優(yōu)化在這一年的摸索中我遇到了無數(shù)問題。這里列出最典型的幾個及其解決方案。7.1 數(shù)據(jù)生成與轉(zhuǎn)換中的典型問題問題1點云和3D框在可視化時對不上。排查這是坐標系轉(zhuǎn)換不一致導致的。確保點云轉(zhuǎn)換和3D框中心點轉(zhuǎn)換使用了完全相同的公式。單獨寫一個測試腳本用幾個已知空間關系的點如雷達原點、正前方1米點、正上方1米點進行轉(zhuǎn)換并打印結果與預期對比。技巧在Unity中創(chuàng)建一個簡單的標定場景放置幾個規(guī)則排列的立方體生成一幀數(shù)據(jù)。用Open3D在Python中加載轉(zhuǎn)換后的點云和3D框看它們是否重合。這是最有效的調(diào)試方法。問題2生成的3D框旋轉(zhuǎn)角ry不正確框的方向是歪的。原因TryGetBoundingBoxInLidarSpace中計算rotationY的方法過于簡化。它直接取了物體forward向量在雷達XZ平面投影的夾角但這可能不是物體實際朝向比如車頭可能并不嚴格朝向它的forward軸。解決方案對于規(guī)則物體如車輛一個更好的方法是使用主成分分析PCA或直接使用物體碰撞體Box Collider的方向。在Unity中如果物體使用BoxCollider你可以用boxCollider.transform.forward來獲取其本地軸向再轉(zhuǎn)換到雷達空間計算角度。問題3虛擬數(shù)據(jù)訓練出的模型在真實數(shù)據(jù)上完全失效Domain Gap太大。原因虛擬數(shù)據(jù)的點云分布密度、噪聲、反射強度與真實雷達差異巨大。緩解策略傳感器模型精細化在Unity雷達腳本中加入更真實的噪聲模型如距離相關的高斯噪聲、隨機丟點、模擬多路徑反射等。強度模擬為不同材質(zhì)金屬、玻璃、塑料、植被分配不同的基礎反射率并讓反射率隨入射角變化更符合物理。數(shù)據(jù)混合訓練不要只用虛擬數(shù)據(jù)。采用課程學習或簡單混合的方式將虛擬數(shù)據(jù)和真實數(shù)據(jù)按比例如1:1, 1:3混合在一個數(shù)據(jù)集中進行訓練。域自適應技術考慮在模型中加入域自適應模塊或使用生成對抗網(wǎng)絡GAN風格遷移將虛擬點云風格遷移到更接近真實點云。7.2 Unity仿真性能優(yōu)化當場景復雜、激光雷達線數(shù)高時每幀數(shù)萬次Raycast會成為性能瓶頸。使用Jobs System和Burst CompilerUnity的C# Job System可以利用多核進行并行Raycast計算。將射線方向數(shù)組、結果數(shù)組轉(zhuǎn)換為NativeArray在Job中并行執(zhí)行RaycastCommand。降低更新頻率不一定每Unity幀都進行一次完整掃描??梢愿鶕?jù)雷達的實際頻率如10Hz來更新在間隔幀里不進行計算。簡化碰撞體對遠處的物體或復雜的模型使用簡化的Mesh Collider或甚至Box/Sphere Collider來代替高精度的碰撞體能大幅提升Raycast性能。使用空間劃分對于超大場景可以考慮動態(tài)加載只對雷達周圍的區(qū)域進行物理模擬。7.3 自動化與批量生成最終目標是無人值守的批量生成。命令行運行Unity/path/to/Unity -batchmode -nographics -projectPath /path/to/yourProject -executeMethod YourNamespace.YourClass.YourMethod -quit-batchmode: 無頭模式運行。-nographics: 不初始化圖形設備節(jié)省資源。-executeMethod: 指定啟動后執(zhí)行的靜態(tài)C#方法。在這個方法里你可以啟動你的場景生成和仿真流程。-quit: 執(zhí)行完畢后自動退出。參數(shù)化生成通過命令行參數(shù)或配置文件向Unity傳遞隨機種子、場景配置、生成幀數(shù)等參數(shù)實現(xiàn)生成數(shù)據(jù)的多樣性。任務隊列可以編寫一個Python主控腳本依次調(diào)用不同的Unity命令行生成不同天氣晴、雨、霧、不同時間晝、夜、不同交通密度的場景數(shù)據(jù)。打通Unity到OpenPCDet的虛擬數(shù)據(jù)生成管線是一個涉及計算機圖形學、傳感器物理、軟件工程和機器學習多個領域的綜合性項目。它沒有標準答案需要你根據(jù)自身需求不斷調(diào)整和優(yōu)化。但一旦這條管線穩(wěn)定運行它將成為你算法研發(fā)過程中最強大的武器之一讓你擺脫對昂貴、緩慢的真實數(shù)據(jù)采集的依賴專注于算法創(chuàng)新本身。希望這篇超詳細的指南能為你點亮這條路上的第一盞燈。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲成人碰碰| 91碰碰| 激情小说在线视频| 九九热精品视频六| 国产亚洲精品美女| 亚洲欧洲美腿丝袜| 丰满的三级少妇欧美久久久| 污污汅18禁网站在线永久免费观看| 男女香蕉一区二区| 青青国产在线拍揄自揄拍| 乱伦3P视频| 国产精品com| 国产性爱欧美性爱在线| 99国产在线绯色一区| 日本Xx性爱| 免费A片三p视频| 精品少妇99| 影音先锋一区二区在线资源| 91丝袜在线观看视频在线观看| 特级毛片特黄久久免费看| 欧美91精品国产自产| 99热99re6国产在线播放| 97欧美精品综合| 久久亚洲婷婷| 91在线色| 久久亚洲不卡一区二区三区 | 91干熟女| 激激五月| 人妻天天操天天爽视频免费| 天天综合精品| 久久精品国产亚洲AV成人直播| 婷婷五月天激情四射| 97久久国产精品| 天天插天天操天天摸天天射天天看| 内射黑人| 毛片麻豆91糖心精品毛情片| 少妇熟女视频一区二区三区| 欧美后入式| 欧美精品不卡一二三四在线91| 欧美久久久| 人妻少妇三级| 蜜桃视频啊啊啊啊| 亚洲中文字幕av| 免费99精品国产自在在线| 青青草玖玖爱| 日韩精品系列| 欧美性暴力猛交| 女优大全 - 91n| 日本高清视频在线观看黄已三辽| 天天影视综合色| 97操97干| 亚洲欧美色图片| 91欧美亚洲| 中文字幕丰满子伦无码专区在线视频最新 | 玖玖超碰熟| 青青青艹在线视频| 色97国产69香蕉| 久久久免费高清中文视频| 搡老女人老91妇女熟女| 国产无码精品成人| 久久久久人妻二区精品叶可怜| 国产第12页| 色在线亚洲视频www| 91色黑人少妇| 四虎免费视频| 韩日色费| 色婷亚洲五月在线观看| 日日干日日操五月天伦理视频| 你草精品在线视频| 精品女同一区二区三区| 日韩成人高清一区二区| 国产女人和拘做爰视频| av国产无码| 国产精品女同| 久久综合久色欧美综合狠狠| 99re免费| 成人福利视频网| 人妻日日夜夜精品| 大色网久久| 亚洲伊人成综合成人网| 国产又大又硬又长又粗| 中文啪啪视频| 欧综合网| 国产操操日韩三级黄| 色噜噜婷婷| 亚洲限制级| 激情另类激情| 成人5码视频| 精品国产自在在线99| 嗯嗯啊啊视频一区二区三区| 欧美翘臀视频网站一区二区三区 | 91neishe| 男人天堂久久精品不卡| 久久只有精品| 香蕉综合网| 嗯嗯啊啊好疼| 青春草莓视频在线观看网址| 欧美综合骚| 97国产|免费| 涩涩涩综合| 女优视频第10页| 美女91在线观看| 欧美激情区| 午夜寂寞欧美| 亚洲欧美在线综合| 一道α片欧美| 理论久久婷婷网 8| 久 久无码人妻AV| 国产精品久久久久综合| 97超碰人操| 少妇厨房愉情理伦片bd在线观看| 四虎AV无码| 熟妇色99| 人人操AV| 抽插亚洲无码| 欧美黄页在线| 欧美黑人熟妇精品91| 麻豆啪啪啪视频| 超碰538| 人妻无一区二区三区| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 天天欧美欧美亚洲网| 国产AV天美传媒一区二区三区 | 另类欧美色| 色婷视频| 边做饭边操逼逼| 极品五月天噜噜| 欧日韩一二三f区| 久久69精品久久久久久久| 天天透伊人| 久操97| 婷婷综合视频| 天天日天天干天天操| 蜜臀久久一区二区| 超碰97久久| 美女在线H91| 97爱| 天天综合网合集91| www狠狠| 日韩一卡二卡三卡| 欧美性,色九九| 黄片视频,下载| 黑人粗大V S日韩女优视频| 日韩性爱电影一区| 九t超碰| 熟妇视频一区二区三区在线观看| 操逼大黄片| AV中文字幕剧情1区2区3| 日本视频在线观看污污污| 亚洲欧美精品久| 国语国产操逼伊人AV网| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 国产久久久久久| 午夜人妻精品综合在线| 欧美性爱精品七区| 91超碰碰在线| 日韩在线人妻网站| 色欲日韩欧美在线一区| 麻豆91熟妇人妻中文字幕茄子| 大香樵伊人网| 国产日韩色综合| 欧美激情黑人| 亚洲有码 视频一区| 免费日韩黄片| av2014 日韩在线中文字幕| 6080yy午夜理论三级一区二区三区无码| 午夜理论片在线观看免费| 婷婷五月天激情网| av东京热男人的天堂| 中文字幕成人乱码熟女精品国50| 学生妹天天看| 国产黄a三级三级三级av在线看| 九九九色| 大香蕉性欧美| 清清草影| 欧美久久九九| 亚洲图片欧洲图片aⅴ| 日逼97| AV99热18这里只有精品| 69人妻精品一区二区绯色| 欧洲欧美视频一区二区| 少妇一区二区三区| 少妇人妻在线| 欧亚日韩三区| 日本 成 人 小说 电影 一区二区| 熟女乱3伦999| 网友自拍第一页| 亚洲综合夜色| 欧美激情超碰777| 免費黃色視頻觀看一| 乱伦日本中文自拍| 搡老女人老91二区| 尤物视频偷拍免费| 裸体美女久久久| 久久亚洲不卡| 色婷婷成人| 精品一啪| 亚洲欧美日韩精品久久久一区二区| 综合97| 四季av一区二区凹凸精品小说| 女同性恋一区二区三区精品视频| 91人妻爽爽人人做人人澡| 亚洲第一成人影院色播| 亚洲天堂中文字| 日韩激情电影中文字幕 | 色屁屁影院www国产| 亚洲狠| 在线a v| 精品免费视频国产一区| 啊啊啊啊啊好多水| 男人天堂资源| 天天影视亚洲| 91色香| 久久激情视频| 国产成人五月天丁香花| 高潮9999外国| 久草这里只有精品| 久久在肏| 久久夜夜| 亚洲 日本 国产 综合| 国产精品久久天天干| 久久精品国产精品一区| 中文字幕精品一区二区精| 久久受www免费人成| 秋霞午夜成人福利片片| 91伊人久| 一本一道vs波多野结衣| 黄片免费看黄片免费看| 91超级碰碰| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 一区二区影院| A片 AV一级在线播放观看免费 | 翔田千里A片一区二区| 屁屁影院一区二区三区国产 | 99久久精品无码一区二区毛片免费 | 精品妇女一区二区三区| 少妇啪啪自拍| 精品国产乱码久久久久久影片| 欧美色日本| av午夜影院在线播放| 香蕉免费一区二区三区不读| 蜜桃av综合网发布| 九久9精品| 亚洲天堂久| 国产成人91一区二区三区| 粉嫩国产精品久久粉嫩| 变态乱伦伪娘灌肠一区二区| 性色av大全| 综合色久欲| 在线看片国产精品每日更新| sewuyueav| 操逼精品视频| 啊啊啊好湿久久| 插日本熟女视频| 亚洲人妻五月丁香婷婷| 人妻内射一区二区在线视频| 日本加勒比无码专区| 亚洲欧美日韩中文久久自慰| 凹凸视频特色日本特黄| 激情黄色片在线观看| 精品成人久久久人人亚洲| 国产精品网站免费| 大香蕉琪琪日本女优不卡| 97人妻色| 视频国产精品未满十八禁止在线观看| JuliaAnnXXX888| 人妻内射一区二区在线视频| 欧美综合在线91| 欧美另类色| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 激情网五月天| 激情99| 精品黑人一区二区| 国产欧美一区激情交| 精品性爱一区二区| 亚洲色五月| 狠狠穞A片一區二區三區| 亚欧精品久久久久久久久久久| 欧美日韩性爱操大逼| 一级黄色性爱A级片| 激情色图| 亚洲激情色片 | 日韩在线一区高清在线| 搡老熟女免费视频 | 尤物视频网 刘玥| 经典丝袜一区| 77777亚洲蜜臀精品久久综合蜜臀| 狠狠躁日日躁夜夜躁A| 免费综合亚洲中文| 欧美性少妇| v91av| 免费人人搞97| 台湾大香蕉99热| 夜夜嗨一区| AV中文字幕三四五| 东亚亚洲无码高清| 精品一区96| 欧洲与亚洲欧美精品中文字幕| 在线小说视频一区| 91久久九九精品国产综合| 国产成人精品无码久久| 又黄又爽在线观看视频| 亚洲校园激情| 久久久久久国产手机AV| 蜜臀AV成人精品蜜臀| 超碰偷拍| 国产CHASE男男GAYGA 毛多色婷婷| 久热99| 91天天c| 久久久久久亚洲Av无码精| 91丨九色丨大屁股| 91欧美丝袜| 在线免费观看日韩一区| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 欧美九九九九九| 国产超碰人人操| 十八禁黄色| 欧美国产伊人久久久久| 超碰99热中文字幕| 久9re热视频这里只有精品| 色啪网| 日韩熟女精一区二区三区不卡| 亚欧无码在线| www.人人摸在线视频| 99热只有这里有精品| 综合天天。| 成人性爱高清视频免费看| 亚洲资源一区| 国产成人亚洲精品自产在线| 丝袜美腿操av| 熟女中出视频| 国产av强奸美女| 伊人991| 成年女人黄网站| 中亚黄色三级大片| 亚洲国产一区二区三区在线| 操逼天美3区| 精品妇操一区二区三区| 亚洲久热| 亚洲av无码国产精品字幕| 毛片麻豆91糖心精品毛情片| 天天操天天射青青草| 91看黄片| 久久精品人妻一区| 美女久久久久久久久久久| 日韩av三四区| 97人人操人人干| 国产AV色黄看到爽| 国产主播福利| 欧洲综合色| 超碰午夜| 欧美最大综合网| 中国黑人三级片网站上区| 熟女人妇一区二区三区| 亚洲日本激情| 69少妇一区二区| 久久久中文| 欧美综合综合| 99热在线只有精品| 欧美精品欧美精品系列| 亚州久久9| 日本不卡高清免v欧美日韩在线观看| 国产精品国产自产高清AV| 东北毛片| 老司机午夜精品视频| 五十路一区无码| 天天亚洲| 亚洲天堂男人在线| 久久一二三四不卡 | 操香逼| 国内自拍 日韩激情 99| 乱伦Av网| 欧亚免费视频| 日韩AV片| 午夜天堂精品久久| 日韩射图| 九九久久精品| 91色情黑丝搞鸡在线观看一区二区三区三州 | 九九99精品视频在线观看| 国内精品伊人久久久久影院会| 精品久久久av| 成年人三级黄色片视频| av绯色| av片在线观看免费播放| 九九热最新| 1区2区3区在线视频| 亚洲高清视频在线观看| 激情视频图片| 欧美亚洲第一页| 色999;丁香五月| 亚洲十八禁止| 91色色网站| 国产日韩欧美中文在线播放 | 无码人妻精品一区二区三区九九| 亚洲天天综合| 亚欧无码在线| 东北老女人的激情视频| 亚洲色图欧洲| 91超碰人人操| 国产99999久久精品| 久久精品国产精品一区| 久操大香蕉| yazhousetuoumei| 夜夜嗨一区| 以及麻豆国产入口在线观看免费| 人人透人人操| 国产免费一区| 国产99久久99热这里只有精品15 | www欧美性爱| 久久一二区四| 婷婷操逼| 噜噜噜亚洲精品| 人妻色偷色噜| 色噜噜狠狠色综合日日| 91热| 97久精品| 超碰91在线| 五月婷婷六月色| 国产精品丝袜在线| 日本青青草在线| 欧美色91| 久久激情综合| 10000部十八禁看电影| 少好三P| 麻豆天美91| 丁香激情网| 深夜激情| 色色色999| 欧美体内射精| 97人人操人人摸人人爱| 乱色老一区二区三区的观看方式| 成人美女av| 亚洲视频二区| 天天视频黄| 精品女人999| 欧美精品激情| 色蜜AV| 亚洲欧美另类小说| 亚洲 综合 欧美| 97超碰超碰| 久久大香蕉手机高清| 78精品| 伊人五月天| 欧美亚综合色图| 国产亚洲色婷婷久久99精品91葵花宝典| 九九九久千久久激情蜜桃在线看 | 91综合无码| 亚洲黄色影视| 黄色免费网| 国产一区二区三区久久精品太古里| 亚洲,日韩,欧美,成人播放| 欧美另类自拍| 亚洲一区二区性爱电影| 天天射天天色成人| 二对二中文字幕。| 国产自产自拍| 蜜臀Av一区二区三区| 亚洲精品丝袜-不卡成人免费…… 久久久久成人蜜桃精品 | 九九毛片这里只有精品| 精品欧美А∨无码黑人大荫蒂| 国产小黄片在线免费观看| 丁香激情网| 欧美激情一区| 蜜桃狠狠色伊人亚洲综合| 丁香五月激情五月| 亚洲精品影视老司机| 五月天婷婷社区| 日本最新免费韩国1区2区视频播放| 欧美激情中文字幕另类小说| 欧美懂色综合网| 老女人老91妇女老热女| 校园春色 男人天堂 | 伊人丁香五月婷婷| 久久专区| 精品午夜福利| 男女啊啊啊| 日韩无码久久熟女一级片| 婷婷六月天| 亚洲国产成人高清在线| 亚洲九月丁香| 天天爽天天| 日韩性爱免费视频在线网站| 成人免费看吃奶视频网站| 男人天堂新在线| 无码人妻毛片丰满熟妇精品区| 日本性一区| 在线观看av区| www国产天美久久久| 天天激情干| 国产精品爆乳懂色蜜乳| 欧美性爱一区二区三区| 精品国产乱码久久久影院| 大香蕉在线免| 99re热| 日韩射图| 久久系列| 日本十八禁免费看污网站| www久久国产精品| 天天夜躁日日躁狠狠2002| 韩国手机不卡无码三级视频| 激情 欧美 亚洲 小说| 香蕉久久AⅤ...| 亚洲成人美女无吗| 久操视频免费在线观看| 色呦呦、国产精品| 伊人玖玖网| 91亚洲丝袜| 91丨九色丨国产打屁股| 国产精品高朝久久久久久久| 日少妇视频| 可以免费看黄片的视频| 操逼日韩无码| 欧美色图片91| 影音先锋中文字幕日本好一区二区| 国产精品成人AV片免费看网站| 91亚洲高清| 五月天婷婷在线看| 亚洲人妻AV| 色天使大香蕉| 国产又猛又粗又爽又黄| 免费的黄片wwwwww| 久久久久密臀一区二区| 特色a在线上| 在线A日本| 大香伊人在线一区| 九九九九久久久久| 8050午夜少妇无码| 中文字幕AV片| 国产精品成人无码a v毛片| 久久久蜜桃一区二区三区| 亚洲黄a三级三级三级看三级| 东北少妇高潮zzzz| 五月丁香六月婷| 成人久久久精品| 99精品久久久久久久婷婷蜜桃| 丁香五月av| 精品人妻美妇91job| 91+欧美| 欧美色网络| 天美麻花大全视频| 久久亚州大香蕉| 熟女人妇一区二区三区| 日本孕妇孕交| 欧美成人黄网色网站| 百度百度日本操逼| 18禁超污无遮挡无码免费网| 国产精品久久久久久久免牛肉蒲团 | 91激情国产| 天天干天天狼在线视频| 午夜一区| 中文字幕片| 人人操,人人插| 中国黑人三级片网站上区| 波多野42部无码喷潮在线观看| 久久久久久91香蕉国产| 欧美极品性爱天天射| 91高潮喷水美女| 性在久久久久久| 热久久无毒不卡| 超碰AV在线| 国产精品高潮久久久无码| 亚码人妻| 国产精品视频播放| 婷婷啪啪| 另类一区| www..com操老师| 17c嫩草51久久91嫩草| 欧美中字不卡| 日韩天堂av电影在线观看| 欧美黄片欧美黄片xxx| 美女91在线| 国内毛片免费h片在线| 密乳视频在线| 91情色在线| 一区二区三区视频在线观看免费| BBBBB97COM| 伊人影院在线理论播放| 欧美日韩99精品麻豆传媒| 男人的天堂一区三区| 性爱综合网| 五月丁香久久| 老汉网| 中文字幕亚洲永久精品| 黄久在线| 冬京热男人的天堂| 在线国产探花| 情趣丝袜无码操逼视频| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 免费在线观看AV无码网站| 偷窥自拍亚洲| 丝袜性亚洲| 色五月婷婷五月天| 欧美日韩第一页| 久久久国产av美女私房| 91色插| 国产超碰欧美| 97热视频在线观看| 日韩天天本| 国产亚洲 中文欧美久久| 在线国产福利网址导航| 亚洲欧美洲综合| 日韩不卡一二三四| 久久夜嗨| 男人的天堂不卡一区二区 | 欧美日韩岛国大片在线观看| 亚洲欧美日韩制服另类| 东京热,男人的天堂| 黄色免费一级在线毛片| 久久久久99精品成人片蜜臀| 亚欧美色图| 日韩丝袜高跟制服在线观看| 老鸭窝黄色视频网站| 日韩一级二级| 91jk色拍| 色偷偷男人的天堂麻豆| 综合网 欧美| 久久伊人在线五区| 日韩少妇丰满亚洲| 精品久久9| 欧美大的香蕉有线电视视频| 超碰91在线| 免费观看网黄| 亚洲强奸乱伦影视网| 夜夜嗨一区二区| 久久午夜伦| 人妻无码久久一区二区三区免费| 色拍偷亚洲| 中文字幕精品探花视频| 很很热性爱视频| 一区,二区,三区网站| 欧美色综合图片| 91这里只有精品| 九九热九九| 日韩不卡码| a级免费在线观看| 亚洲操人| 午夜成人福利影视| 丝袜色综合| 国产黄片精品在线| 偷窥自拍亚洲色图| 情色大香蕉| 夜夜天天噜狠狠爱2021| 超碰午夜在线| 三上悠亚在线毛片91| 五月丁香综合激情| 91久久久老司机| 玖玖爱在线视频免费观看| 激情五月婷| 91精品操美女| 国产精品久久久久中文字幕| 亚洲色图欧美另类在线| 九九综合九九综合| 天天影视色香色欲| 美女久久久| 超碰久久中文| 欧美影院一区二区三区| 激情四射婷婷四五月天| 男人的天堂网页| 一牛影视久久久一区二区三区| 超碰吊日色| 97香蕉碰碰人妻国产欧美| 久9爱精品| 激情五月天婷婷| 96麻豆精品一区二区三区| 操逼片国产| 日欧毛片久久| 日日噜噜夜夜狠狠视频无| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 亚洲图片欧美偷拍| www.91色| 日韩免费在线视频观看| 国产精品97超碰| 情色五月天久久久| 一区二区激情国产熟女| 在线视频日韩欧美国产| 亚洲伊人a线观看视频| 国产尤物在线三区| 午夜毛片高清免费不卡| 麻豆天美电影一区二区| 欧美日韩99| 国产精品一级毛片不卡视| 亚洲 欧美 日韩 国产一区二区 | 在线观看亚洲成人精品| 亚洲小说视频| 亚洲成人帖图| 97视频新免费| 2000亚洲男人天堂| 亚洲国产一级中文综合久久天堂在线免费观看 | 亚洲国产欧美一区二区潘金莲| 精品久久97观看在线视频| 北京美女一区二区| 久久日本熟妇熟色高清| 日韩欧美成人大香蕉| 激情久久久| 欧美性爱精品一区二区| 激情一区二区| 国产精品成人午夜福利| 青青草色AV| 超碰人人干天天射| 九九九成人| 9精品久久久久| 人人爽夜夜玩视频| 91男同| 欧美日韩国产人人| 学生妹天天看| 日日骚av| 另类欧美综合| 日日摸日日碰夜夜爽视频| 久操视频这里只有精品| 亚洲欧美骚| 超碰99在线| 美女啊啊啊啊啊啊| 热99re69精品8在线播放| 亚洲情色 自拍| 欧综合网| 久久久久9999| 麻豆天天躁天天揉揉AV| 91色插| 加勒比综合| 日韩三级伊人| 亚洲春色欧美激情自拍| 青青伊人这里只有精品| 亚洲精品第一| 啪啪啪精品视频| 无码抄逼网| 看日韩美女二区三区免费操逼视频 | 中文字幕 码精品视频网站| 亚洲无码精品AV久久久| 香蕉视频欧美一卡二卡| 91一区二区三区蜜桃| 韩三级a视频在线观看| 国产精品美女在线一区| 国产亚洲禁久一区二区| 奇米狠999| 99热9| 免费一级毛片在线视频观看| 国产亚洲人妻综合日韩 久久| 亚洲精品视频在线| 人妻在线大香蕉| 免费国产| 狠狠干妹子| 精品一区二区三区蜜桃| 日韩精品资源专区二区| JIZZJIZZ国产精品喷水| 97色伦欧美| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊| 无码九九九九| 人妻精品一区二区三区| 18禁止看精品中文字幕| 一区在线国产播放| 91艹逼精品| 东京太热男人的天堂久久久| 老司机深夜18禁污污网站| 欧美人人AAA| 绑缚麻绳人妻寝取完整版| 日本黄色精品| 东北少妇高潮zzzz| 日本九九九九| 成人精品欧洲亚洲| 狠狠操使劲操| 97久久超碰| 97视频www| 欧美日韩大香蕉| 婷婷久热| 日韩亚洲97| 国产v亚洲v日韩v欧美v片另类| 国语av最新自产拍在线观看| 欧美 青青草| 可乐操亚洲蜜911| 亚洲无线码欧洲精品区别| 国产99热| 97草草| 中文字幕AV乱伦| 日韩免费大片一级播放| 丰满翘臀美女影院视频| 96国产精品| 亚洲欧洲精品视频发布| 天天干天天日天天射黄色大片| 亚洲骚男同com| 亚洲无992tv| 天天射影院| 国产精品久久久久久久免牛肉蒲团| 国产美女口爆吞精视频| 夜夜中出国产| 中文久久久| 色五月首页| 久久久青青草| 桃花色涩综合影院| 久9爱精品| 国模无码一区二区三区在线| 男人的天堂2000| 呦呦影院| 亚洲吊色| 精品久久久久久AV无码| 91最新综合| 极品国产内射| 97色97好| 人人贴人人摸| 992这里有精品| 人妻久久| 精品性爱无码在线播放| 大屁股国产在线视频| 乱伦av麻豆| 伊人大香蕉在线| 人人操人人93| 吉田爱美AV在线| 玖玖爱在线视频免费观看| 久久久久久性爱片| 黄色无码高清黄色无码网站| 开心六月色| 91一区二区三区蜜桃| 日韩精品熟妇| 家庭乱伦国产| 欧美一区二区三熟女剧情| 影音先锋乱| 国产区在线| 超碰成人国产| 97精品综合久久网| 艹少妇网站| 精品大全99999| 91超碰人人操| 精品黄色电影| 97色欧州| 国模无码一区二区三区在线| 爱丝福利| 人妻啊啊人妻啊啊| 少妇一级婬片免费放一级a性色.| 亚洲视频,小说| 99久久e免费热视| 欧美人妻一区二区| 又大又长又爽| 999亚洲国产视频| 热G综合热G中文| 中文字幕高清20页视频| 韩国手机不卡无码三级视频| 玖色AV| 夜夜操青青草| 骚货操死你| 国产精品视频电影| 亚洲欧洲综合av在线| 伊人午夜福利视频| 亚洲欧美大香蕉| 26uuu国产亚洲综合| 日本黄色天堂| 爽爽淫人网| 国产一区二区在线播放量| 精彩久久中文| 射 色综合| 天天上日日上日韩精品| 91女优在线观看| 3p国产欧美99热| 91操熟女| 久久久久久中文字幕中文字幕最新| 久久产精品一区二区三区电影 | 99热18这里只有精品| 国产精品人妻熟女aⅴ| 欧美九九九| 青青草啪啪网| 伊人成人中文字幕久久网| 人妻二区| 亚洲a色| av麻豆啪啪| 久久一二三四五六七八九区区区| 蜜臀久久久99久久久久 | 无码人妻精品一区二区三区99不卡| 91 综合 色| 狠狠久久四虎| 三级三级三级日本99| 欧美黄色片在线播放| 欧美欧美少妇| 超碰日韩美妻| 青青操青娱乐| 亚洲第一无码播放立川理惠| 国内亚洲高清无码| 91美女精品| 精彩久久中文| 国产在线不卡导航| 久久久激情| 国产精品免费1区2区视频| 亚州性9| 色男人色天堂东京热| 欧美v日韩欧亚洲电影天堂色诱,国产传媒| 天天谢天天干| 国产精品高潮久久久无码| 欧美青青视频| 在线观看A啊啊啊| 色色99| 人人操人人大香蕉| 亚洲97超碰| 男人的天堂Va| 在线情色电影 91大 | 九九热在线视频| 色狠狠综合| 家庭乱伦性爱av| 久久久久亚洲三级电影| 97超色| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 91热| 亚洲成人AB| 97国产综合欧美| 91欧美性| 亚洲欧美内射| 国产女主播视频在线观看| 国产精品一区二区后入| 最新精品久久蜜桃 | 嫩呦国产一区二区三区AV| 94色色电影网| 黄久久| 青青草一区二区高清无码视频| 99热线麻豆| 精品久久久一本一道| 激情情色五月天| 91国产丝袜美女| 在线观看A啊啊啊| 97久久精品国产| www.AV有限公司一区| 精品一久久久| 亚洲码和欧洲精品激情系列| 日本午夜福利视频| 婷婷五月天av| 熟女视频久久| 亚洲精品久久久久毛片A片拉屎| 久久系列| 国产一国产一级毛片古装| 亚洲色婷婷久久91| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 五月丁香激情啪啪| 欧美 亚洲 偷拍自拍| 日韩欧美中文| 五月天婷婷基地| 久久精品人体| 日本在线不卡123| 中美日韩毛片| 欧美人妻中出| 黄页网站成人免费| 天美传媒AV在线| 无码不卡亚洲成?人片| 精品国产乱码| 国产视频一区二区免费| 亚洲最大无码中文字幕网站| 亚洲色图激情小说| 97视频在| 久久中久文96| 大逼色网站| 日本潮催一卡操| 在线性黄高清免费视频| 一区二区三区精品黑丝白丝酒店对鸡| 超碰国产情侣自拍网| 国产成人天堂| 综合网亚洲在线| 97色伦97色伦国产欧美| 久久久成人国产精品无码| 91N欧美| 欧美一品道| 色妇综合网| 色综合久久av| 欧美另类色图片| 天天天天天天天天综合| 人妻夜爽夜夜爽| 日韩福利综合一区| 亚洲天堂热| 91亚洲欧美色图| 97精品视频在线播放| 日韩精品在线放| 亚洲精品日日夜夜52| 精品人妻一区二区免费蜜桃| 性欧美| 亚洲电影中字一区二区| 最新国产亚洲精品精品国产亚洲综合| 中文字幕老熟妇黄色视频| 伊人97色天使| 97天天| 殴美在线AⅤ| 后入内射蜜桃臀| 精品丰满熟妇人妻一区| 我要去看2个日本美女.com曹逼| 精品婷婷| 蜜桃久久久久久久久久久久| 思思热国产高清| 国产黄色影片在线观看| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 96久久久| 啪啪视频亚洲第一| 天天操av懂色| 久久精品操| 久久久久久日韩| 蜜臀av在线播放一区二区三区| 国产久久久久影院老熟女| 亚洲国产综合视频| 亚洲欧美精品一区天堂久久| 亚洲第一页欧美| 91色花堂| 国产三级电影免费观看| 使劲用力艹少妇视频一区二区| 香蕉国产精品麻豆亚洲欧美日韩| 色色色综合网| 男人综合网| 天天干人人干天天日97| 二区熟妇韩日| 免费观看成人www精品视频| 日本一级一级一级一级| 亚洲图片 欧美电影| 黄色电影观看久久9| 99国产精品久久久久久久成人热 | 激情五月综合网| 久久久啊啊啊| 91黑人无码激情在线| 色婷婷蜜臀av| 乱伦熟妇一区二区| 九九英色视频| 亚洲av无码成电影在线播放| 欧美色图私拍91| 日产欧美电影一区二区三区| 天天综合精品| 日韩免费高清大片在线| 日韩中文字幕熟妇人妻 | 国产福利精品最新在线| 欲色啪| 亚洲精品aa久久伊人| 人人妻天天做天天爽| 欧美日韩操逼动图| 麻豆精品三区视频| 国产精品女久久久久av爽| 超碰爽人妻熟女Av| 九九热AV| 国产午夜视频| 人人操我人人干| 人妻 欧美 中文| 亚洲精品国语在线播放| 97一区二区蜜臀| 国产精品干干干| 婷婷久草| 久久露脸国产老熟女| 91日产桃蜜| 精品超碰中文在线| 精品蜜乳AV免费观看| 欧美爆操91| 日韩精品国产一区二区| 97就爱干| 激情接吻视频久久久久久| 无卡一区=区| 玖玖在线视频| 五码视频在线观看| 九九九九免费高| 成人短视频在线观看| 97爱亚洲| 99国产在线绯色一区| 亚洲无码一二三区| 亚洲天天天| 男人的天堂.com| 欧美日本一区二区a人| 夜夜嗨一区二区三区三州加勒比| 女优视频第10页| 日B操| 丝袜狠狠草尤物 91| 67914亚洲精品| 国产亚洲深夜激情| 亚州欧美另类| 色婷视频| 日韩性爱1级片视频| 中文字幕乱妇免费视频| 99re6久热只有精品6在线直播 | 丁香六月综合激情| 亚洲中文字幕在线视频一区二区| 日韩一999精品| 久久婷婷综合国际产色怕| 97天天日| 999 久久久| 久久久精品成人国产| 特污精品女优骚货黄色视频在线免费观看| 久久综合日韩亚洲欧美| 嫩草影院在线观看精品| 夜夜爽夜夜高潮夜夜爽| 啊啊啊啊啊好舒服视频| 蜜臀久久一区二区| 99精品欧美一区二区三区桃色| 四虎在线视频| 一区二区三区四区久久视1| 亚洲综合另类| 亚欧性爱ab| 亚洲精品一区二区日本| 国产蜜臀在线| 精品十三区| 26uuu国产| 亚洲乱码尤物193YW| 久久产精品一区二区三区电影| 亚洲人成色9999精品久久| 激情专区综合| 大香蕉免费3| 丰满人妻一区二区三区四区| 69精品在线| 国产精品自在线发布| 国产精品电影大全| 夜夜嗨一区二区三区三州加勒比| 密臀视频一区二区三区| 成人婷婷丁香| 国产亚洲精品一区二区三区| 天天射天天色成人| 91男同| 少妇色综合| 亚洲和欧美裸体美女双飞视频| 大奶啊啊好爽| 人人干人人搞人人摸| 亚洲第一黄色av网站| jazzjazz国产精品麻豆| 国产精品熟女一区二区三区| 亚洲人妻色图| 撸撸成人在线视频| 日韩精品熟妇| 激情五月婷婷| 性暴力欧美猛交在线直播| 国产精品久久aV| 久久久人妻| 免费超碰97久久| 97视频在线观看高清资源| WWW操逼| 亚洲国成人情色好看电影| 丁香六月婷婷综合| 一区二区娱乐网站| 狠狠综合网| 黄色av片三级三级三级免费看| 午夜.DJ高清在线观看免费7| 免费国产电影一区二区| 天天躁日日躁狠狠躁| 草草草视频| 超碰91在线| 97国产综合欧美| 日本最新1区2区3区| 玖玖大干人妻| 日本最新免费韩国1区2区视频播放| 亚洲人在线成线成人| 美女淫穴| 激情开心五月天| 国产精品女同| 久久亚洲不卡一区二区三区| 蜜臀久久一区二区| 一二三四免费视频| 校园春色 男人天堂| 国产欧美日韩女同性恋ww喷水精品| 99视频内射三四| 天美传媒国产原创中文字幕亚洲欧美另类 | 五月婷婷激情综合| 五月天综合在线| HEYZO高无码国产精品227| 中文字幕国产| 淫荡少妇免费| 日韩 欧美 视频 在线 一区| 91强热人妻| 熟女字幕| 色乱二区| 五月婷婷无码| 翘臀vidoes| 熟妇熟女亚洲天堂网| 亚洲天堂综合AV| 亚洲情色1区| 好看的久久不射无码影视影院| 黄色一区三区| 97碰碰色| 亚洲av综合伊人久久| av一区二区三区不卡|