99精品久久精品一区二区-亚洲熟妇无码?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中構(gòu)建一個可控的虛擬環(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. 核心思路與架構(gòu)設計打通Unity到OpenPCDet的任督二脈整個流程的核心是設計一條從虛擬世界到檢測模型訓練的數(shù)據(jù)通路。這不僅僅是“導出幾個點”那么簡單它涉及到坐標系轉(zhuǎn)換、數(shù)據(jù)格式對齊、標注信息同步等一系列工程問題。下圖清晰地展示了我們設計的核心數(shù)據(jù)流與模塊架構(gòu)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)與解決思路結(jié)合上面的架構(gòu)圖整個流程面臨幾個核心挑戰(zhàn)挑戰(zhàn)一傳感器物理模擬Unity里沒有現(xiàn)成的、物理準確的激光雷達模型。我們需要用腳本模擬激光束的發(fā)射、碰撞檢測并計算返回點的坐標、距離和強度。強度模擬尤其復雜需要結(jié)合物體表面材質(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側(cè)環(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要求的目錄結(jié)構(gòu)組織數(shù)據(jù)。這種“Unity導出中間格式 - Python后處理”的架構(gòu)比在Unity中直接寫KITTI格式更靈活便于調(diào)試和擴展。4. Unity端虛擬激光雷達與場景構(gòu)建實戰(zhàn)現(xiàn)在我們進入Unity編輯器開始構(gòu)建核心的傳感器模擬和數(shù)據(jù)采集系統(tǒng)。4.1 構(gòu)建一個基礎的激光雷達傳感器腳本我們在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 場景布置與自動化腳本構(gòu)建基礎場景創(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坐標。你期望的結(jié)果應該是(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é)的格式寫入每個物體的信息。組織目錄結(jié)構(gòu)按照OpenPCDet的要求組織文件。通常結(jié)構(gòu)如下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ù)或檢測結(jié)果# 可視化數(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)換并打印結(jié)果與預期對比。技巧在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ù)組、結(jié)果數(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在线日| 激情五月婷| 天天操夜夜啊| 加勒比日本一区二区三区| 91九色丨国产丨爆乳| 婷婷五月激情热播| 五月婷婷97| 丁香五月天.com| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 99爽视频| 五月婷婷开心综合| 欧美日韩大黄| 99操中文视频| 婷婷色五月大香蕉在线观看| 影音先锋男士资源网一区| 色婷婷免费视频| 99热只有国产在线精品| 久久久这里都是精品| 91VIP在线观看| 久久婷婷综合五月天| 插插五月天| 久久伦乱| 97超碰在线免费观看| 乱乱av| 天天天干夜夜夜操| 久热这里只有精品视频6| 91九色丨国产丨爆乳| 久久人人做人人妻人人玩精品va| www.婷婷六月天| av人人干| 婷婷丁香五月综合| 99爱在线免费视频| 五月第四色| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 五月婷婷草| 五月天婷婷久久| 蜜乳久AV| 丁香五月影| 思思精品视频| 五月天成人免费视频| 成人短视频在线免费观看| 99精彩视频在线观看| 久久伊人五月天| 色爱综合五月| 97人人爱人人操| 久久婷五月影院| 九九热精品视频在线观看| 九九色综合网| 91chinese在线| 丁香五月影院| 色婷婷六月天| 天天干天天干天天干天天干天天干| 九九视频这里只有精品| 婷婷久久丁香| 大香蕉婷婷五月天| 久久久97| 欧美色婷婷| 亚洲网视屏| 色播五月天激情| 5月婷婷激情在线| 久久婷婷五月天激情唯美| 丁香五月 综合| 丁香五月天AV在线| 丁香婷婷偷拍| 思思久久99热只有频精品66| 99这里| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 婷婷色正月| 五月婷婷乱| 精品九九视频| www激情| 熟女激情五月天| 四色五月婷婷| 丁香五月123| www.com在线操视频免费观看| 久久ri精品| 玖玖色综合| 99热这里只有精品13| 色五月婷婷91| 亚洲综合网在线| 久久久久久久97| 丁香久久久| 婷婷激情视频| 丁香五月婷婷五月| 九月性爱网| 婷婷五月日本| 久色网| PORNY九色9l自拍视频成人| 色伊人啪| 初夜av| 伊人网色婷婷五月天| 六月天丁婷婷| 狠狠操天天干| 亚洲Av成人在线观看| 婷婷久久性爱| 伍月婷婷六月丁香| 性爱综合网| 大地9中文在线观看免费高清| 最近中文字幕2019视频1| 亚洲色区17| 久久天堂| 伍月婷婷六月丁香| 免费亚洲婷婷| 色婷婷操逼网| 国产综合激情五月久久| 久久伦乱| 伊人影院久久网| 欧美精品啪啪| 可以看的AV| 99热啪啪| 综合一啪| Jh7Uf088VHafNm| 色色色色色色网站| 丁香五月综合| 久久婷网| 日本五月天一页| 91日本在线观看| 翔田千里 50岁 无码| 久久五月网| 色五月激情综合| 成人精品在线观看| 九九aV| 精品久久久久久久人妻| 日本久久99| 日韩av高清| 丁香五月综合激情久久潮喷| 亚洲精品国产成人AV在线| 另类五月激情| 丁香婷婷少妇| 九九在线视频| 99久热在线精品| 这里只有精品网| 日狠狠| 99热全是精品| 激情五月婷婷色| 九九亚洲| 久热这里只精品| 婷婷综合五月激情| 99热综合| 综合亚洲五月天| 九九99免费理论| 九色七七| 婷婷色色丁香| 91丨九色丨首页| 99福利导航| 五月精品免费XXX| 热99这就是精品视频| 99在线爽| 99热色精品| 国模九区| 丁香六月婷婷一区二区三区| 二区成人视频| 激情五月婷| 666555。COm毛片| 国产VA播放| 91狠狠综合久久| 五月婷婷丁香网| 狠狠干 狠狠操| 99操视频| 中国AV性爱观看| 激情久久久| 九九精品在线视频观看| 色欲天天综合网| 九九热在线观看6| 五月天激情图片| 久久九九99桃花视频| 五月丁香人妻| 在线观看av网站| 五月婷婷官网色| 操笔无码| 国产古装妇女野外A片| 精品网站99| 久99久视频| 色五月婷婷 成人| 91欧美| 人妻爽爽爽久久久久久久久| AA片在线观看视频在线播放| 台湾佬天天日丁香婷婷五月天| 性爱久久| 日日日影院| 99热久久这里只有精品| 婷婷丁香激情五月天色色| 国产欧美日韩综合精品一区二区| 无码 色| 国产黄色av| 亚洲天堂aaaa| 六月99天天婷婷激情综合| 婷婷六月丁香五月| 丁香五月天BBw| 欧美日本99| 啪啪黄页网| www.婷婷| 婷婷日本在线| 激情五月天综合网| 激情丁香六月| 久久激情五月| 亚洲精品另类| 亚洲综合五月天| 五月丁香啪啪拍| 99福利视频导航| 久色大| 久久五月婷婷电影| 色99综合视频| 大香蕉 伊人夜| 99ri精品视频在线观看| 五月丁香六月激情综合在线| www999日韩精品| 深爱五月天| 婷婷开心久久| 五月婷六月综合在线观看| 婷婷五月综合国产精品| 丁香激情久久| 终合激情网| 97香蕉碰碰人妻国产欧美| 婷婷丁香六月| 精品人人操| 丁香五月婷婷成人网| 日本全黄一级999| 26uuu成人网| 五月婷深深爱激情网| 日韩综合久| 99精品网| 丁香五月另类色婷婷麻豆| 五月丁香AV、伊人业余、性色熟妇| 欧美69色| 婷婷五月丁香国产| 婷婷五月花| 欧美精品18| 婷婷六月爽| www.婷婷,com| 丁香六月成人网| 桃色五月天| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 91chinese 在线| 深爱丁香激情| www.久久久.com| 丁香五月大香蕉在线99| 99热综合| wwwxxx五月婷婷小说| 色婷| 久久精品4| 久久久九九视频精品18| 八戒青柠影视剧在线观看| 色婷婷六月| 五月色天情| 婷婷丁香色女人| 国产精品成av人在线视午夜片| 亚洲操B| 婷婷五月天改成什么了| 99色在线观看免费| 伊人久久婷婷| 99久久久免费| 丁香花婷婷五月天| 亚洲人人操| 婷婷99狠狠| 丁香五月天激情网址| www.日日日.com| 夜夜干天天操| 色婷狠狠| 停停五月色宗合| 五月丁香六月婷婷开心网| 丁香婷婷五月天色播| 99re热精品在线视频| 1024操逼视频| 激情丁香五月天综合| 丁香六月激情综合| 无码天天操| 天天爽夜夜爽夜夜爽精品| 中文字幕成人影视| 色色色国产| av激情在线| 激情婷| 婷婷亚洲在线| 丁香五月九九| 久9热视频在线观看| 啪啪综合网| 国产,欧美,学生妹,视频| 天天插天天干天天舔| 五月婷婷官网色| 9热在线视频| 天天视频精品9| 国产av天天插天天操天天爽| 久久久九九视频精品18| 97视频91| 综合色五月天| 九九超日本| 久七香蕉| 婷婷六月丁香在线| 99热这里只有精品一区| 五月婷丁香| 99久久极情精品一区| 日日夜夜狠狠操| 直接看的av| 五月欧美丁香在线观看| 色五月婷色彩免播放器| 色五月亚洲五月天| 色在线视频网2025| 久久免片| 99热在线极品极品| 日本精品99网站| 99热99ai| 婷婷五月激情天| 久久久久久综合88| 亚洲婷婷乱乱丁香| 99热激情| 91干网| 久草五月婷| 国产免费一区二区三区三州老师F1F1.CC| 久久久久久久久久婷婷| 五月天天天色| 天天拍夜夜爽| 色婷婷五月综合在线| 色综合久久天天综合网| 五月综合无码| 啪啪啪啪五月天| 91九九热| 婷婷五月精品中文字幕| 99玖玖精品| 99乱视频| 色综合色综合网| 色播五月综合网| 日本va欧美va国产激情| 丁香五月婷婷www..com| 激情综合网之激情五月| 五月丁香六月色| 丁香五月欧美| 天天狠狠色噜噜| www.五月天婷婷| 欧美日韩99| 丁香五月天社区婷婷| 色综合天堂| 婷婷五月天天| AV性爱网| 色欲天天综合| 狠狠色噜噜狠狠狠888| 五月婷久久| 狠狠色噜噜狠狠狠888了| 五月色激情综合网| 电影蜘蛛女| 天天噜| 97在线观视频免费观看| 综合激情五月天| 婷婷五月天激情诱惑| 亚洲色五月婷婷| 婷婷色六月| 色综久久AV| 色播五月天激情| 成人久碰| 99热精国产这里只有精品| 99色精品| 桃色五月婷婷| 精品人妻一区| 五月天激情综合网俺也去| 草五月| 99久久欧美| 婷婷五月天无码熟女| 99黄色性生活| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 婷婷五月在线观看| 激情丁香网| 五月婷婷五月丁香| 香蕉五月婷婷| 色婷婷婷婷五月天| 激情四射婷婷| 开心五月深爱五月丁香五月激情五月| 五月激情天| 玖玖视频福利| 婷婷六月天| 五月婷婷婷婷| 六月丁AV| 日本色婷婷| 69天堂99| 激情婷婷五月社区| 婷婷第一页| 久久开心五月天激情| 亚洲精品99| 五月婷丁香花| 丰满人妻妇伦又伦精品国产 | 国产裸舞福利资源在线视频| 国产在线中文字幕| 久久激情五月| 天天日天天插| 五月丁香好婷婷姑娘综合网| 丁香六月婷婷久久综合| 日本久碰| 无码动漫av| 1024亚洲| 亚洲视频操| 超碰在线综合| 成人网在线视频| 天天爽天天操| 夜夜夜叫天天天做| 久在线综合69| 色播播五月天| 丁香五月婷婷啪| 99精品视频在线观看| 丁香六月天AV| 色综合九九色综合88| 五月天播播中文字幕| 成人国产网站| 99久精品| 九九热最新| 丁香五月婷婷色五月| 亚洲成人影视在线| 超碰国产AV| 伊人久久艹| 亚洲中文字幕在线观看| 丁香六月激情综合| 五月丁香六月综合情在线观看| 九色自拍| 日本色超碰| 亚洲精品亚洲人成人网| 综合99在线| www.激情五月| eeuus五月婷| 欧美情色一区| 五月丁香综合久久| 欧美韩国日本| 亚洲V国产V欧美V久久久久久| 麻豆123区| 五月天AV大香蕉| 色婷婷小说| A A色色| 国精产品一区二区三区| 免费无码毛片一区二区A片| 开心激情播播五月天| 伊人激情综合网| 操操操B| 日本久久人人| 五月天天天色| 五月的婷婷六月丁香| 成人短视频在线免费观看| 色中色综合| 天天摸夜夜夜| 色97综合婷婷天天色| 好色婷婷| 五月久久丁香| 丰满老熟妇BBBBB搡BBB| 中文字幕精品推荐免费在线观| 五月WWW| 久久99视频| 久爱综合| 激情久久久| 五月丁香六月婷婷久久肏| WWW、日本色丁香、co m| 91黄操| 婷婷香蕉视频| 大香蕉视频99| 日本少妇裸体做爰高潮片| 97色片| 丁香五月五月婷婷| 99热这里只有精品一区| 色婷婷六月激情| 国产在线中文字幕| 婷婷五月大香蕉| .肏屄视频一区二区| 99色色| 五月丁香综合激情网| 2025天天操| 五月丁香色五月| 色色色777| 精典久久| 99操中文视频| 久热人妻| 久久99久久99久久99人受| 青青色com久久| 亚洲狠狠丁香婷婷香蕉| 免费看欧美成人A片无码| 亚洲激情视频在线观看| 六月丁香五月婷婷| 色色色色综合| 亚洲AV日韩在线观看| 五月丁香婷婷激情澎湃四射| 五月激情综合激情五月| 伦乱美欧| 99这里只有精品在线| 欧美成人无码一区二区三区| 五月香蕉综合| 欧美婷婷五月无砖| 五月色情网| 天天性视频| 在线综合网| 99热99热不卡| 丁香五月六月综合激情| 97操碰在线视频| 182TV大香蕉| 久久永久视频| www.狠狠| 亚洲国产精品SUV| 狠狠操天天干| 97luluse| 婷婷丁香91| 六月婷婷香蕉| 五月伊人综合| A片女女女女女女BBBB| 婷婷丁香九月| 丁香六月婷婷| 亚洲色婷婷婷婷人人爽| 逼逼AV| 婷婷六月色| av在线免费网站| 蜜臀AV在线成人| 五月婷婷激情视频| 五月丁香婷婷婷激情爱爱| 久久婷婷五月天激情唯美| 国产精品涩涩涩视频网站| 99操| 婷婷天天五月天| 99免费青青蜜臀| 97超碰在线免费观看| 婷婷趴趴| 99久热这里有精品| 天天干天天爽天天操| 久久久久久人妻| 在线不卡视频| 国产九月婷婷| 色五月首页| 色婷婷88| 久久婷.com| ai97re99一本| 开心五月婷婷综合在线精品素人| 久久婷婷五月天激情四射| 9l视频自拍九色9l视频自拍九色9l社区| 五月婷婷黄色| 99色在线观看视频者| 欧美日韩成人在线免费| 色欲Av五月天| 五月天婷婷丁香基地在线观看| 亚洲激情婷婷| 久热天堂| 五月丁香六月停停| 99操碰| 丁香五月婷婷激情四射深爱激情| 97碰| 免费不卡狠操美女视频网| 五月婷婷综合色啪首页| 九九人人自拍| 日本久久精品| 久久五月天色婷婷| 色色亚洲五月天| www.狠狠操| 婷婷五月天激情网| 狠狠色狠狠鲁| 99小精品| 欧美日综合| 国产女生爱爱AA| 婷婷六月丁香激情| 婷婷色爱| 国产3p露脸普通话对白| 六月婷婷激情| 五月丁香婷婷深深爱| 伊人久久大香线蕉av一区| 婷婷99狠狠| 婷婷五月天毛片| 狠狠干2007| 丁香九月久久| 999精品乱码77777| 日韩在线视频中文字幕| www.99riav99| 激情五月天之五月婷婷| 思思热精品在线视频| 爆乳熟女-区二区三区| 久久色五月| 五月婷婷三级| 天天射天天干天插色综合| 涩五月色婷婷| 99惹 精品在线| 五月丁香久久久日婷婷久久婷婷日| 色色色婷婷五月| 婷婷五月欧美| 丁香五月婷婷色播艳门照| 久久精彩视频| 十月丁香婷婷| 丁香五月影院| 人人色性网| 婷婷香蕉| 国产精品噜噜在线视频| 久久婷婷五月| 天天爱天天做综合| 五月天综合网| 天天在线久久综合| 欧美成人AAA片一区国产精品| 久热精品视频在线观| 婷婷激情四射| 色情五月天视频网| 182无码| 五月丁香色六月激情干大屄| 九九成人电影婷婷| 五月婷婷开心综合| 最新AV在线观看| A久久| 久热婷婷在线视频| 九九综合| 狠狠干婷婷| 色99色| 99成人网站| 色噜噜狠狠色综无码久久合欧美| 天天操夜夜爱| 超碰在线94| 激情婷婷综合五月少妇| 婷婷天天综合| 久久全色| 综合久久影院| 久久99热这里只有精品23| 五月天婷婷小说| 色色婷五月天| 激情国产五月| 五月婷婷六月色| 欧美三级黄色片久久| 99re在线观看| 色青五月天| 超碰成人在线免费观看| 国产精品久久7777777精品无码| 五月综合久久| 五月香蕉网| 狠狠色五月激情| 不卡在线视频| 日本五月天婷婷丁香| 婷婷丁香成人五月天| 精品久热| 欧美Va在线| 五月丁香九九| 国产人妻人伦精品一区二区| 成人丁香婷婷| 激情网第九色| 丁香九色不卡aaa| 婷婷六月啪啪| 狠狠五月天激情| 丁香婷婷色色| 久久丁香综合香蕉| 97色婷婷| 99热无码首页| 精品五月丁香| 97色色综合| 大陆极品少妇内射AAAAAA| 丁香五月电影| 天天草天天爱| 色九亚洲| 五月综合激情| 丁香婷婷色色| 99色热| 五月婷婷中文字幕| 综合色天天| 婷婷婷婷色| 色综合丁香| 99超碰人人| 天天干,夜夜爽| 99爱精品| 亚洲成人网址在线观看| 丁香五月 综合| seuuu婷婷| 天天干天天干天天干天天干天天干| 五月婷婷婷婷网| 欧美成性色| 欧美性交一区二区三区| 亚洲天堂婷婷丁香| 成人丁香五月| 97人人超| 91久久国产综合久久| 婷婷五月美女直播| 9|在线观看视频| 欧美性丁香色色五月天干干| 久草狼人| 六月丁香成人| AV九九| 另类激情五月| www超碰| 久久久91| 国产精品日日躁夜夜躁| 九九热只有精品| 99.色| 亚洲婷婷月丁香五月| 久久伊人9| 久久久九九视频精品18| 超碰人人摸AV| 久热re视频在线观看网站| 色色色综合网| 亚洲综合色色色| 久久新地址| 超碰免费大香蕉| 色停停五月,在线观看| 99色在线观看视频| 丁香六月天堂| 亚洲色情在线| 色婷婷五月综合网| 人人看人人摸人人| 99热只有精| 99爱免费视频| 丁香五月综合在线观看| 天天橾夜夜爽| 久久精品视频在这里有| 激情五月天激情五月天| 影音先锋91资源站| 激情综合在线观看| 99热国产精品| 日日操日日撸| 久操操| 狠狠干综合| 亚洲AV成人无码精品| 五月天婷婷综合色| 苗黎美女四级成人版一级二级毛片| 99热精品在线观看| 国产精品18久久久| 大香蕉久久视频久久视频| 99免费超碰在线| 五月丁香婷婷啪啪| 欧美情色一区| 亚洲成人无码免费| 99啪99| 大香蕉人妻| 国内裸舞二区| 九九热视频免费| 丁香六月久久| 任你草| 99热这里只有精品18| 国产黄色大片| Caop在线| 色五月五月婷婷| 99a级片| 五月丁香六月激情欧美综合| 午夜不卡久久精品无码免费| 激情综合五| 无毒黄色网址| 欧美激情综合色综合啪啪五月| www.99久| 婷婷丁香五月天狠狠| 五月天五月色婷婷综合| 丁香五月首页| 久久久99婷婷久久久久久| AAA久久| 日本天天综合| 久久开心五月天激情| 久久99精品久久久久久噜噜| 99久久九九| 一区二区传媒视频| 亚州欧美国产久精国产99综合视频| 五月天中文网| www色婷婷| 无遮羞AV| 亚洲不卡| 婷婷色五月综合| 色婷婷久久综合| 99热传媒| 精热在线综合网| 亚洲丁香五月| 这里只有精品1| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 亚洲婷婷免费| 国产精品久久久久9999小说 | 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 婷婷五月激情综合| 激情六月婷婷啪啪| 97人人草| 综合色色婷婷| 丁香五月婷婷啪啪视频| 婷婷九月丁香| 五月丁香五月综合欧美| 免费看欧美成人A片无码| 亚洲碰碰碰| 久色国产| 色情婷婷| 久久精品五月天| 色婷婷在线视频综合| 久9久9久9久9久9久9| 婷婷五月天综合久久日美女| 丁香九月综合| 五月天婷婷网站888| 激情 久久 婷婷| 色狠狠综合网| 久久综合激情婷婷激情| caopeng超碰| 激情九月婷婷| 九月丁香八月婷婷加勒比| 9久精品视频| 色屌丝中文字幕| 99视频综合| 日日婷婷不卡| 无码日本精品XXXXXXXXX| 久久婷婷五月丁香网| 婷婷淫淫狠狠六月| 综久久久| 婷婷开心久久| 成人无码免费一区二区中文| 在线五月色播| 五月婷婷色色| 91操操| 99热免费精品| 超碰电影在线播放| 婷婷色五月开心五月| 手机在线视频观看9| 丁香五月在线视频黑人| 免费观看欧美成人AA片爱我多深| 婷婷伊人无码| a网站免费观看| 丁香五月综合久久八| 五月激情六月综合| 538午夜激情| 丁香五月在线观看| 99国产小视频2013| 婷色五月| 婷婷五月天伊人网在线观看视频| 精品国产乱码久久久久久免费| 一区色色色色网| 六月综合婷婷开心伊人| 色五月xxx| 婷婷99| 五月色情网| 激情四射五月天| 五月色婷婷在线观看| 九九热这里| 久久这里只有精品07 | 日韩啪啪视频| 婷婷久久久| www.91色| 五月婷色丁香| 3p九色在线| 99热这里只有精品3| 婷婷娌伦网| 色欲久久综合| 婷婷久久婷婷色五月| 99热在线观看| 免费观看欧美成人AA片爱我多深| 久久日韩婷婷五月| enecarbon-materials.comWu染请涟系Bao护@wip1688 | 丁香九月激情久久| 99九九玖玖| www.激情| 久久ri精品视频| 淑女丝袜bi操逼123| 婷婷色在线播放| 任你艹| 色色99色色| 九九热这里只有国产精品| 婷婷五月天在线综合| 婷婷激情五月呦呦| 熟女激情五月天| 18久久| 大香蕉五月丁香| 亚洲va综合va国产va中文| 亚洲丁香婷婷| www.色综合.com| 激情涩涩网| 五月婷综合网| 九热电影av| 五月丁香激情综合| 国语精品探花| 99网址在线看| 丁香香蕉射射射| 天天爱天天做天天| 99这里只有精品视频在线| 国产精品美女久久久久AV超清| 激情5月婷婷| 五月天婷婷黄色视频| 97涩婷婷| 成人片在线播放| 五月天另类小说| 五月婷俺去也| 欧美日韩五月婷婷| JAPANRCEP老熟妇乱子伦视频 | 91久久| 婷婷夜夜夜夜| 超碰人妻在线| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 夜色综合网| 亚洲国产精品二二三三区 | 日本91在线| 久久这里只有国产精品视频| VA色婷婷| 人人看人人97| 久久婷婷五月天大香蕉| 色婷婷色99国产综合精品| 香蕉操亚洲| 色综合五月天| 久久伦乱| 国产日比| 99精品无码| 天天操夜夜玩!| 99爱这里只有精品免费视频| 婷婷五月天视| 色伊人啪| 免费成人中文字幕| 极品五月天| 色色精品色| 岛国AV网站| 福利视频在线播放| 人人干天天操五月丁香| 97人人干人人操| 色婷婷色九月| 丁香婷婷月| 日日干天天| 99在线观看| 久久曰曰| 五月天激情婷婷五月天久久| 开心婷婷五月花| 日韩啪啪自拍| 超碰免费在线| 色综合77777| 9久热精品在线视频| 色综合五月| 久久久久人妻网址| 欧洲第一久色| 五月丁香激情欧洲啪啪| 日日操夜夜爽天天天| 激情桃色网 | 日韩AAA| 第2色五月婷| 婷婷色婷婷| Av大香蕉| 久久狠狠欧美| 五月伊人综合| 亚洲VA欧美VA| 日本天天综合| 丁香五月婷婷乱| 开心五月深爱五月婷| 色综合色欲综合天天免费| 免费色色色| 亚洲色婷婷99一9|| 久久黄色网扯| 色五月激情综合| 久99久热只有精品国产99| 思99热精品久久只有精品| 五月五丁香婷婷| 偷拍视频五月天| 色婷婷六月天在线| 婷婷五月天激情网站| 天天五月天综合网址| 丁香五月天激情综合| 丁香五月婷在线观看| 五月天综合在线观看| 99热色精品| www.五月婷婷.com| 五月丁香婷婷色| 人妻久久久久久| 国产精品扒开腿做爽爽爽A片唱戏 亚洲爆乳无码精品AAA片蜜桃 | 婷婷五月综合社区在线| 国产永久一黄| 中文精品在| 婷婷成人网五月天| 开心五月深爱五月婷| 五月天色婷婷成人| AV在线大香蕉| 色www久视频| 97极品在线| 夜夜操少妇| 97婷婷丁香| 中文字幕乱码亚洲精品一区| 五月天停停日日| 久久婷婷啪啪视频| 少妇高潮呻吟A片免费看软件| 五月婷婷日| 婷婷六月婷婷| 91九色视频在线观看| 无码免费人妻A片AAA毛片西瓜| 艹天天射| 色综合五月婷婷狠狠干| 影音先锋91| 婷婷欠久少妇| 熟女五月天久久综合| 五月丁香啪啪综合网| 色五月婷婷很很操| 五月丁香网站| 五月丁香综合影院| 狠狠色激情综合| 一区视频网站| www网站在线观看| 狠狠操之狠狠操| 亚洲熟妇无码乱子AV电影| 屁股翘好撅高迎合跪趴| 91九色|疯狂|高潮|对白|| 99综合一区| 无码99| 99re热99| 五月丁香六月婷婷网| 国产真实乱了老女人视频| 97人人操人人爽| 五月丁香六月婷婷姐| 久久久久久五月天| 琪琪理论片| 五月丁香福利| 婷婷五月无码| 婷婷激情五月天在线| 免费无码毛片一区二区A片 | 麻豆AV一区二区三区| 日韩狠狠色| 大香蕉久久婷婷精品综合| 无码日本精品XXXXXXXXX| 色五月婷婷在线| 天天日天天爽夜夜爽| 成人网在线观看视频| 青草网在线观看| 激情婷婷丁香五月天| 婷婷色基地在线看| 色播五月丁香| 国产精品久久久久9999小说 | 天堂亚洲 在线| 五月丁香婷婷六月| 黄色中文字目| 五月丁香六月婷婷不卡免费无码 | 4438激情网| 婷婷香五月| 五月丁香婷婷成人网| 天天爱天天做天天舔| www.婷婷| 五月激情五月丁香| 狠狠的日| 男人的天堂999| 色五月人妻| 99热色无码| 亚洲中文字幕av| 亚洲AV日韩无码| 超碰在线精品| 综合大香蕉| 综合久久综合久久| 九九综合伊人| 2016日日夜夜操| 久久久免费精彩视频| 五月丁香啪啪啪免费看| 久久五月综合| 在线成人视频免费| 激情五月色综合网| 久久草中文日韩欧美| 玖玖激情五月天| 婷婷舔| 日日影院 | 婷婷五月丁香成人| 99国产99| 国产午夜一区二区三区| 丁香婷婷午夜| 99在线精品视频| 丁香婷最新动态| 97人人射| 思思热久久爱| 激情久久丁香| 丁香五月婷婷六月| 99成人精品六| 91在线人| 欧美丁香五月97色| 五月天天天综合| 婷婷激情五月呦呦| 色播五月网| 日本久久综合| 高清无码.com| 99热在线观看| 丁香激情综合| 婷婷九九| 99久久人妻精品无码二区| 开心激情播播五月天| 亚洲免费99| 丁香六月综合激情| 婷婷日日夜夜| 婷婷五月综合在线| 婷婷香草网| z色五月播播久久| 九九热亚洲中文在线观看免费| 麻豆观看夏晴子| www.婷婷| 丁香五月六月婷婷自拍| 五月婷婷亚洲色图| 中文AV网站| 天天色综合网1| 中文AV在线播放| 国产精品18久久久| 亚洲人成色A777777在线观看| 97亚洲色 torrent magnet| 激情五月天婷婷播播久久综合91| 中文字幕成人影视| 五月激情婷婷开心五月| 激情国产综合| 北京熟妇搡BBBB搡BBBB| 五月婷婷色五月| 26uuu淫色| 九九中文字幕九| 欧美成人精品三区综合A片| 五月天国产| 天天插天天很| 亚洲婷婷丁香| 91在线视频观看午夜福利| 91九色丨国产丨爆乳| 西瓜美女a片| 亚洲AV网站| 99色免费在线观看| 蜜桃人妻无码AV天堂三区| 九九热re99re6在线精品| 伊人久久婷婷五月天激情四射| 欧美日韩国产一区| 操操综合网婷婷| 婷婷丁香六月| 亚洲精品视频电影| 久久思思热视频| 亚洲激情综合色站| 五月丁香少妇| 亚洲第一成人无码A片| 婷婷福利影院| 久99精品视频| 亚洲欧洲中文日韩久久AV乱码| 91久久综合亚洲鲁鲁五月天| 中文字幕性爱丰满| 久婷婷五月丁香在线观看| 五月丁香婷婷成人版| 99九九这里有免费视频| 久热九九| 激情九月婷婷| 激情综合五月婷婷丁香| 久久99色色| 久久人妻久久| 天天夜天天色天天| 久99久视频精选| 日韩人妻AV在线| 久操热线| 91色涩| 亚州性爱99| 9伊人网| 国产亚洲99久久精品熟| 国产成人精品亚洲线观看| 婷婷午夜天| 99操逼视频| 97啪在线观看视频| 色婷婷丁香| 激情五月亚洲综合网| 99热这里是精品| 中文字幕日产A片在线看| 狠狠操天天日| www激情| 婷婷五月天亚洲| 丁香婷婷色五月激情综合| www.91热久久| 天天天综合网| 天天操综合网站| 丁香六月毛片| 99久久综合网| 天天日日天天| 97激情五月天| 六月亚洲| 狠狠色丁香婷婷基地| 久草五月天电影网| 色婷婷色五月综合| 99热免费精品| 国产97色在线 | 日韩| 久热免费| 丁香五月婷婷大香蕉| 人人摸人人干| 五月丁香啪啪综合| 亚洲精品影视| 五月色影院| 超碰九色| 丁香网五月天| 亚洲视频在线网| 婷婷五月天丁香成人社区| 老妇操B| 91操熟女| 丁香五月天欧洲在线| 五月天天天综合| 五月天色婷婷av| 日本熟女一区二区| 色五开心五月五月深深爱| se99视频| 五月五月婷婷| 天天操天天曰天天射| 日本久久婷婷| 久久色五月天| 丁香五月欧美| 婷婷五月天小说| 亚洲五月婷婷| 国产成人精品一区二三区熟女在线| 香蕉AV777XXX色综合一区 | 大香蕉人人网| 久久色天堂| 色亚洲视频| av五月天婷婷丁香| 色爱99| 五月天激情网站| 91性交在线播放| 天天色综| 99热大全在线观看| 久久久久99精品成人片| 婷婷五月激情图片| 强伦轩人妻一区二区电影| 丁香五月人妻熟女| 丁香六月婷婷综合缴| 97在线精品| 婷婷丁香五月天综合在线日韩| 色99免费视频中文| 久久久久久久丁香五月天婷婷| 色色色色av777| 色偷偷色婷婷| 亚洲第一成人无码A片| 日本九九九九九九| 俺去也婷婷| 99五月香婷婷丁香在线视频| 久婷首页| 天天摸天天爽| 天天爽天天爽| 五月婷精品| 久久精品一区二区三区四区| 成人色图情色成人网 www.5b5b5bcom 五月天 | 一本色道久久88综合日韩精品| 激情五月狠狠喔| 狠狠搞五月天| 国产裸舞表演WWWW| 思思久久精品| 99re在线免费视频| 亚州激情网| 96丁香六月婷婷蜜桃综合久久| 国产精品第一国产精品| 97干婷婷| 久久这里99| 99热这里只有精品4| 葵花AV在线| 五月婷婷伦理| 超碰a女人的天堂| 碰超亚洲| 人人操Av| 99久在线| 色综合久久综合| 婷婷色丁香五月| 婷婷综合网| A1片久久| 六月丁香激情最新更新| 99视频在线| 色婷婷激情五月天| 伊人青草成人| 亚洲天堂啪啪| 中文字幕欧美精品久久| 久久99这里| 99久久久久| 精品九九网| 婷婷九月丁香久久| 91久操| 婷婷的99视频网站| 日本色综合| 99热99日天天干| 婷婷激情五月综合基地| 激情九月综合| 五月丁香六月香综合激情| 五月婷婷黄网站大全| 婷婷五月激情的图片| 丁香五月综合激情性爱| 五月丁香婷婷三级| 操大屄五月天视频| 久久久久亚洲AV无码网影音先锋| 五月婷婷六月奇米网丁香| 欧美色五月| WWW.天天日| 婷婷色五月激情| 五月丁香六月婷婷啪啪| 五月天综合在线观看| 亚洲视频五区| 九九成人电影婷婷| 99色在线观看免费| 婷婷操逼| 91男同| 伊人久久婷| 久久黄色片| 亞洲自怕| 99热99干| 超碰69天堂| 天天色官网| 丁香六月天婷婷色| 99热这里只有精品一区| av在线婷婷| 亚洲色vA| 亚洲情欲久久| 日日干天天| 婷婷99视频精品| 激情欧美五月丁香|