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

ARTICLE DETAIL

資訊詳情

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

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

Unity虛擬仿真生成點云數據:打通OpenPCDet訓練流水線實戰(zhàn) 1. 項目概述為什么要在Unity里搞點云數據生成如果你正在做自動駕駛、機器人感知或者三維重建那你肯定對點云數據不陌生。激光雷達掃出來的那一堆三維空間點就是算法的“眼睛”。但現實是采集真實世界的點云數據成本高、周期長、場景受限還受天氣影響。這時候虛擬仿真就成了一個繞不開的利器。這個項目就是把兩個看似不搭界的工具鏈擰在一起Unity和OpenPCDet。Unity是頂級的實時3D內容創(chuàng)作平臺能生成高度逼真、物理規(guī)則正確的虛擬世界。OpenPCDet則是目前最流行、最易用的點云3D目標檢測開源框架之一基于PyTorch集成了PointPillar、PointRCNN、PV-RCNN等一系列SOTA模型。我們的目標很明確在Unity中構建一個可控的虛擬環(huán)境生成帶有精確標注信息的點云數據并最終能被OpenPCDet的pipeline無縫讀取和訓練。這聽起來像是個“縫合怪”但一旦跑通價值巨大。你可以批量生成雨雪霧天、黑夜、極端交通場景的數據可以隨意調整物體類別、密度和姿態(tài)成本幾乎為零。這對于算法模型的快速迭代、數據增強、以及解決真實數據中的長尾問題是降維打擊。我自己在推進自動駕駛感知項目時就深受數據匱乏之苦。等路采車隊回來標注團隊再標上幾周一個迭代周期就過去了。后來下定決心打通這條虛擬數據流水線中間踩了無數的坑從坐標轉換、數據格式到標注同步每一步都可能讓你卡上好幾天。這篇教程就是把我趟過的路、填過的坑系統(tǒng)地梳理出來讓你能避開我走過的彎路快速搭建起自己的虛擬數據生成工廠。2. 核心思路與架構設計打通Unity到OpenPCDet的任督二脈整個流程的核心是設計一條從虛擬世界到檢測模型訓練的數據通路。這不僅僅是“導出幾個點”那么簡單它涉及到坐標系轉換、數據格式對齊、標注信息同步等一系列工程問題。下圖清晰地展示了我們設計的核心數據流與模塊架構flowchart TD A[Unity虛擬環(huán)境] --|模擬激光雷達br生成原始點云與標注| B[數據生成模塊] B -- C{格式轉換與同步模塊} C --|轉換為PCD格式| D[點云數據br.pcd文件] C --|生成KITTI格式標注| E[標注文件br.txt文件] D -- F[OpenPCDet數據集目錄] E -- F F -- G[OpenPCDet數據預處理br創(chuàng)建gt_database等] G -- H[模型訓練與驗證]2.1 為什么是Unity OpenPCDet這個組合首先看Unity。選擇它而不是其他仿真軟件如CARLA其底層也是Unreal原因有幾個可控性與保真度Unity的渲染管線特別是URP/HDRP能產生極其逼真的圖像這對于模擬激光雷達的強度intensity信息至關重要。你可以精細控制材質的光學屬性。靈活的腳本與插件生態(tài)C#腳本和龐大的Asset Store資源讓我們可以自定義激光雷達模型、控制場景邏輯、編寫數據導出器非常靈活。性能與批量生成Unity可以無頭模式Headless Mode運行在服務器上批量跑仿真快速生成海量數據。物理引擎內置的NVIDIA PhysX或新的Unity Physics能提供剛體動力學模擬讓車輛碰撞、物體掉落等場景更真實。再看OpenPCDet。它不是一個基礎框架而是一個高度模塊化、工程化完善的開源項目。統(tǒng)一的基準它復現并統(tǒng)一了多個頂級點云檢測模型的代碼使用相同的評估標準和數據接口主要是KITTI格式避免了我們自己東拼西湊。易于擴展其數據加載、模型定義、損失函數都是模塊化的我們生成的數據只要符合它的約定就能立即用于訓練和評估。社區(qū)活躍遇到問題容易找到解決方案或討論。2.2 核心挑戰(zhàn)與解決思路結合上面的架構圖整個流程面臨幾個核心挑戰(zhàn)挑戰(zhàn)一傳感器物理模擬Unity里沒有現成的、物理準確的激光雷達模型。我們需要用腳本模擬激光束的發(fā)射、碰撞檢測并計算返回點的坐標、距離和強度。強度模擬尤其復雜需要結合物體表面材質、入射角、距離衰減等因素。解決思路不追求絕對物理正確而是追求“物理合理”和“一致性”。我們采用射線投射Raycast來模擬單束激光。強度值可以基于擊中物體的材質預設一個基礎反射率再乘以一個基于入射角射線與法線夾角的衰減系數和距離衰減系數。關鍵是同一類物體在不同距離、角度下其強度值的變化趨勢要合理并且整個數據集的模擬規(guī)則要一致。挑戰(zhàn)二坐標系轉換這是新手最容易栽跟頭的地方。Unity使用左手坐標系Y軸向上而自動駕駛領域常用的KITTI數據集和OpenPCDet使用右手坐標系Z軸向上。同時激光雷達的安裝位置、朝向偏航、俯仰、橫滾角都需要精確對齊。解決思路在數據導出的最后一步進行統(tǒng)一的坐標系變換。我們需要一個變換矩陣將Unity世界空間中的點左手系Y上轉換到以激光雷達為中心的右手坐標系Z上X前Y左。這個變換通常包含平移到雷達中心、旋轉對齊軸系、可能還有縮放。必須寫一個工具函數并反復驗證可以通過在場景中放置已知位置的標定物來驗證轉換是否正確。挑戰(zhàn)三數據與標注格式對齊OpenPCDet主要支持KITTI格式。這意味著我們的點云需要保存為.binKITTI原始點云或.pcd文件標注信息需要保存為特定的.txt文件每行包含物體類別、截斷/遮擋程度、觀測角、2D/3D邊界框等信息。解決思路在Unity中我們不僅要知道每個點打在了哪個物體上還要知道這個物體的3D邊界框在雷達坐標系下。這需要在場景中為每個可檢測物體車、人、騎行者等添加一個腳本實時計算其相對于雷達的3D包圍盒。標注文件中的參數如旋轉角繞Y軸、中心點、長寬高都需要從這個包圍盒精確計算出來。挑戰(zhàn)四流水線自動化最終我們需要的是一個“一鍵生成”或可批量調用的流程而不是在Unity編輯器里手動點擊播放、導出。解決思路利用Unity的命令行接口和C#腳本。我們可以編寫一個主控腳本負責按順序1加載場景2隨機化或按預設擺放物體、天氣、光照3運行仿真4觸發(fā)雷達掃描和數據導出5循環(huán)。然后通過命令行調用Unity可執(zhí)行文件并執(zhí)行這個腳本實現自動化批量生成。3. 環(huán)境搭建與工具鏈準備工欲善其事必先利其器。這一部分我們詳細列出所需的軟件、插件和初始配置。請嚴格按照步驟操作避免版本沖突。3.1 Unity側環(huán)境配置Unity版本選擇建議使用Unity 2021.3 LTS或2022.3 LTS版本。LTS長期支持版穩(wěn)定性高社區(qū)資源豐富。避免使用最新的技術預覽版可能遇到未知插件兼容性問題。安裝Unity Hub和指定版本編輯器從Unity官網下載并安裝Unity Hub。在Hub的“安裝”頁面添加所需的LTS版本編輯器。在安裝時務必勾選“Windows Build Support (IL2CPP)”或對應的Linux/Mac模塊如果你在服務器上做無頭模式生成以及“Linux/Mac/Windows Dedicated Server”模塊用于無頭模式。創(chuàng)建新項目使用3D (URP)模板創(chuàng)建新項目。URP通用渲染管線在保真度和性能上取得了很好的平衡且更適合后期自定義渲染效果來模擬激光雷達強度。項目命名建議為PointCloudSimulator。關鍵插件與Asset導入Obi Rope / 或自定義射線管理雖然我們可以自己寫射線代碼但使用一些高級射線或物理插件能更方便地管理成千上萬條激光束。Obi是一個強大的物理插件但其主要用于柔體。對于純雷達模擬自己編寫一個高效的多線程Raycast管理器是更直接的選擇。我們這里先以自研為主。場景資源從Asset Store獲取高質量的道路、車輛、行人、建筑資產包。推薦搜索“POLYGON”系列或“Synty Studios”的資產它們風格統(tǒng)一、面數優(yōu)化好。也可以使用開源的“Unity Robotics”倉庫中的URDF導入工具如果你有機器人模型的話。天空與天氣系統(tǒng)可以使用Unity的Post Processing Volumetric Fog來模擬霧天或使用資產如“Enviro - Sky and Weather”來動態(tài)控制天氣。3.2 Python與OpenPCDet環(huán)境配置強烈建議使用Anaconda管理Python環(huán)境避免污染系統(tǒng)環(huán)境。安裝Anaconda從官網下載并安裝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官網根據你的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 # 用于可視化點云和格式轉換 pip install pyntcloud # 可選用于處理PCD文件3.3 數據格式橋梁自定義導出工具規(guī)劃我們需要在Unity中編寫C#腳本負責模擬激光雷達掃描。收集命中點信息坐標、強度、物體ID。計算3D邊界框標注。將數據導出為中間格式如JSON或自定義二進制或直接轉換為KITTI格式。同時在Python端編寫一個后處理腳本負責讀取Unity導出的中間數據。執(zhí)行坐標系轉換。生成最終的.pcd/.bin點云文件和KITTI格式的.txt標注文件。按照OpenPCDet要求的目錄結構組織數據。這種“Unity導出中間格式 - Python后處理”的架構比在Unity中直接寫KITTI格式更靈活便于調試和擴展。4. Unity端虛擬激光雷達與場景構建實戰(zhàn)現在我們進入Unity編輯器開始構建核心的傳感器模擬和數據采集系統(tǒng)。4.1 構建一個基礎的激光雷達傳感器腳本我們在Unity中創(chuàng)建一個空的GameObject命名為LidarSensor并為其附加一個新的C#腳本LidarSimulator.cs。這個腳本的核心是模擬機械旋轉式激光雷達如Velodyne HDL-64E。我們需要定義幾個關鍵參數using UnityEngine; using System.Collections.Generic; using System.IO; public class LidarSimulator : MonoBehaviour { [Header(激光雷達參數)] public int channels 64; // 激光線數 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; // 旋轉頻率Hz public int pointsPerSecond 1300000; // 每秒點數估算值 [Header(輸出設置)] public string dataOutputPath LidarData; public bool saveEveryFrame false; public int frameRate 10; // 仿真幀率決定數據采集頻率 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() { // 每一幀模擬一次旋轉掃描簡化模型實際是連續(xù)旋轉 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; // 將垂直角轉換為弧度并計算該通道激光的全局方向 Quaternion verticalRotation Quaternion.AngleAxis(verticalAngle, transform.right); Vector3 channelBaseDirection verticalRotation * transform.forward; // 水平旋轉 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) { // 計算強度簡化模型基于距離和材質 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; // 應從材質屬性中讀取這里簡化 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列表轉換為JSON或自定義格式保存 // 實際應包含點坐標、強度以及后續(xù)要關聯的物體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等。對于學術研究和初步數據增強這個簡化模型已經能產生非常有用的數據。關鍵在于一致性即你的模擬規(guī)則在整個數據集中保持不變。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(); } // 提供一個方法根據給定的雷達變換信息計算該物體在雷達坐標系下的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個頂點轉換到雷達的局部坐標系 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軸的旋轉。這里簡化處理取物體自身Y軸旋轉。 // 更精確的做法是計算物體朝向在雷達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與點云數據一起保存。在SaveCurrentFrameData時還需要遍歷場景中所有DetectableObject調用其TryGetBoundingBoxInLidarSpace方法生成該幀的標注信息并保存為單獨的標注文件。4.3 場景布置與自動化腳本構建基礎場景創(chuàng)建一個平面作為地面導入道路模型、建筑、樹木等靜態(tài)資產。這些靜態(tài)資產通常不需要DetectableObject腳本除非你想檢測它們。創(chuàng)建車輛和行人預制體Prefab將帶有DetectableObject腳本的車輛、行人模型做成預制體。這樣便于批量放置和管理。編寫場景生成器創(chuàng)建一個SceneGenerator.cs腳本負責在運行時隨機或按預設路徑生成車輛和行人。這可以包括在車道線上生成車輛隊列。在斑馬線附近生成行人。隨機化車輛的顏色、型號通過替換子模型。為物體賦予初始速度或簡單的AI如沿著路徑點移動。集成到主流程修改LidarSimulator使其在Start時調用場景生成器然后開始仿真和數據記錄??梢栽O置一個總幀數或總時長到達后自動停止并退出應用Application.Quit()這對于命令行批量運行至關重要。5. 數據后處理從Unity到OpenPCDet格式的轉換Unity導出的數據如CSV或自定義二進制是“原始數據”我們需要將其轉換為OpenPCDet能夠直接讀取的標準格式。5.1 坐標系轉換詳解這是最關鍵的一步。假設我們的Unity場景和雷達傳感器設置如下Unity世界坐標系左手系Y軸向上X軸向右Z軸向前。我們的LidarSensorGameObject的Transform代表了雷達在Unity世界中的位置和朝向。目標坐標系KITTI/OpenPCDet雷達坐標系右手系Z軸向上X軸向前Y軸向左。轉換步驟獲取點在雷達局部坐標系下的坐標在Unity中我們通過lidarTransform.InverseTransformPoint(hit.point)已經得到了點相對于雷達的坐標(x_u, y_u, z_u)其中y_u是向上的。左手系到右手系的轉換從Unity左手系到KITTI右手系通常意味著其中一個軸需要反向。最常見的轉換是X - X, Y - Z, Z - Y并且可能需要調整正負號來匹配朝向。 經過實踐一個廣泛使用的轉換關系是x_kitti z_unity y_kitti -x_unity z_kitti y_unity但這取決于你的雷達傳感器在Unity中的朝向。如果你的雷達GameObject的Forward (Z) 指向Unity場景的前方比如車頭方向而你想讓KITTI坐標系中X軸指向車頭前方那么上述轉換可能不對。最可靠的方法是進行標定在Unity中將雷達放在原點(0,0,0)朝向設為(0,0,1)Unity的Z正方向。在雷達正前方1米處Unity Z軸1放置一個標定球。運行掃描導出該點的坐標假設得到(0, 0, 1)。應用你的轉換公式得到KITTI坐標。你期望的結果應該是(1, 0, 0)X前Y左Z上。如果不匹配調整公式。常見的正確轉換可能是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)應轉換為KITTI點(0, -1, 0)。驗證通過。5.2 生成KITTI格式標注文件KITTI標注文件.txt每行代表一個物體包含15個字段對于我們生成數據主要關注前14個字段說明我們的生成邏輯1類別 (如 ‘Car’, ‘Pedestrian’)從DetectableObject.GetCategoryLabel()獲取2截斷程度 (0~1)虛擬數據通常設為 0.0未截斷3遮擋程度 (0,1,2,3)虛擬數據通常設為 0完全可見4觀測角 (alpha)計算物體中心相對于雷達的方位角需轉換到相機坐標系虛擬數據可先粗略估計或設為05~82D邊界框 (左上右下)虛擬數據通常留空或填-1因為這是圖像坐標系下的框。我們只關注3D。9~113D尺寸 (高寬長)注意順序從TryGetBoundingBoxInLidarSpace輸出的size獲取。KITTI順序是高度、寬度、長度在相機坐標系下。在雷達坐標系下我們需要根據定義重新排序。通常size.y對應高size.x對應寬size.z對應長。但務必驗證12~143D位置 (x, y, z)從TryGetBoundingBoxInLidarSpace輸出的center獲取并應用與點云相同的坐標系轉換。15旋轉角 (ry繞Y軸)從TryGetBoundingBoxInLidarSpace輸出的rotationY獲取。關鍵提示KITTI的3D框定義是在相機坐標系下也是右手系Z前X右Y下。但OpenPCDet在加載KITTI數據時會將其轉換到雷達坐標系。因此我們生成標注時可以直接生成雷達坐標系下的3D框參數并忽略與相機相關的字段如2D框、觀測角alpha可以簡單計算或設0。許多基于KITTI訓練的研究代碼都提供了只使用雷達坐標標注的選項。最穩(wěn)妥的方法是參考OpenPCDet中kitti_dataset.py的標注加載部分看它具體期望什么坐標系下的數據。5.3 編寫Python后處理腳本創(chuàng)建一個convert_unity_to_kitti.py腳本其工作流程如下讀取Unity原始數據讀取你保存的JSON/CSV/二進制文件包含點云列表和每幀的物體標注信息。應用坐標系轉換對每個點云坐標和每個3D框中心點坐標應用5.1節(jié)確定的轉換公式。生成點云文件將轉換后的點云Nx4包含x,y,z,intensity保存為.bin文件純二進制float32數組或.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 (校準文件虛擬數據可以先放空文件或簡單模擬) │ ├── image_2 (空目錄或放置對應的虛擬相機圖像) │ ├── label_2 (存放我們生成的.txt標注文件) │ └── velodyne (存放我們生成的.bin或.pcd點云文件) └── testing (類似training如果沒有測試集就空著)生成數據集的劃分文件在ImageSets文件夾下的train.txt等文件中只需寫入幀的文件名不含擴展名例如000000 000001 000002 ...6. 在OpenPCDet中訓練與驗證虛擬數據數據準備就緒后我們終于可以在OpenPCDet中使用了。6.1 創(chuàng)建自定義數據集配置文件OpenPCDet使用YAML文件定義數據集。我們需要復制一個現有的KITTI配置文件如tools/cfgs/dataset_configs/kitti_dataset.yaml并修改。主要修改點DATASET: KittiDataset DATA_PATH: ../data/kitti # 你的數據根目錄 ... POINT_CLOUD_RANGE: [0, -40, -3, 70.4, 40, 1] # 點云感興趣區(qū)域根據你的場景調整 ... DATA_SPLIT: { train: train.txt, test: val.txt, # 通常用val集做測試 } INFO_PATH: { train: [kitti_infos_train.pkl], test: [kitti_infos_val.pkl], }然后你需要運行OpenPCDet的數據預處理腳本來生成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文件夾生成包含數據路徑、標注、難度等信息的pkl文件。6.2 訓練模型選擇一個模型例如PointPillar其配置文件在tools/cfgs/kitti_models/pointpillar.yaml。你需要修改其中的DATA_CONFIG部分指向你自定義的數據集配置文件。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注意虛擬數據的分布和真實數據有差異Domain Gap直接訓練可能效果有限。但我們的主要目的可能是驗證流水線確保數據能被正確讀取、模型能正常訓練。數據增強將虛擬數據與真實數據混合訓練。特定場景預訓練先在大量虛擬數據上預訓練再用少量真實數據微調。6.3 可視化與調試OpenPCDet提供了很好的可視化工具。在訓練前或訓練后可以使用以下命令可視化你的數據或檢測結果# 可視化數據集中的某一幀包括點云和3D框 python demo.py --cfg_file ${CONFIG_FILE} --ckpt ${CHECKPOINT_FILE} --data_path ${POINT_CLOUD_DATA} --ext .bin通過可視化你可以最直觀地檢查點云坐標轉換是否正確物體是否站在地面上Z軸向上場景方向是否符合預期3D標注框是否準確框是否緊密包裹物體旋轉角是否正確強度信息是否合理不同材質、不同距離的物體強度值是否有明顯差異7. 常見問題、避坑指南與性能優(yōu)化在這一年的摸索中我遇到了無數問題。這里列出最典型的幾個及其解決方案。7.1 數據生成與轉換中的典型問題問題1點云和3D框在可視化時對不上。排查這是坐標系轉換不一致導致的。確保點云轉換和3D框中心點轉換使用了完全相同的公式。單獨寫一個測試腳本用幾個已知空間關系的點如雷達原點、正前方1米點、正上方1米點進行轉換并打印結果與預期對比。技巧在Unity中創(chuàng)建一個簡單的標定場景放置幾個規(guī)則排列的立方體生成一幀數據。用Open3D在Python中加載轉換后的點云和3D框看它們是否重合。這是最有效的調試方法。問題2生成的3D框旋轉角ry不正確框的方向是歪的。原因TryGetBoundingBoxInLidarSpace中計算rotationY的方法過于簡化。它直接取了物體forward向量在雷達XZ平面投影的夾角但這可能不是物體實際朝向比如車頭可能并不嚴格朝向它的forward軸。解決方案對于規(guī)則物體如車輛一個更好的方法是使用主成分分析PCA或直接使用物體碰撞體Box Collider的方向。在Unity中如果物體使用BoxCollider你可以用boxCollider.transform.forward來獲取其本地軸向再轉換到雷達空間計算角度。問題3虛擬數據訓練出的模型在真實數據上完全失效Domain Gap太大。原因虛擬數據的點云分布密度、噪聲、反射強度與真實雷達差異巨大。緩解策略傳感器模型精細化在Unity雷達腳本中加入更真實的噪聲模型如距離相關的高斯噪聲、隨機丟點、模擬多路徑反射等。強度模擬為不同材質金屬、玻璃、塑料、植被分配不同的基礎反射率并讓反射率隨入射角變化更符合物理。數據混合訓練不要只用虛擬數據。采用課程學習或簡單混合的方式將虛擬數據和真實數據按比例如1:1, 1:3混合在一個數據集中進行訓練。域自適應技術考慮在模型中加入域自適應模塊或使用生成對抗網絡GAN風格遷移將虛擬點云風格遷移到更接近真實點云。7.2 Unity仿真性能優(yōu)化當場景復雜、激光雷達線數高時每幀數萬次Raycast會成為性能瓶頸。使用Jobs System和Burst CompilerUnity的C# Job System可以利用多核進行并行Raycast計算。將射線方向數組、結果數組轉換為NativeArray在Job中并行執(zhí)行RaycastCommand。降低更新頻率不一定每Unity幀都進行一次完整掃描。可以根據雷達的實際頻率如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í)行完畢后自動退出。參數化生成通過命令行參數或配置文件向Unity傳遞隨機種子、場景配置、生成幀數等參數實現生成數據的多樣性。任務隊列可以編寫一個Python主控腳本依次調用不同的Unity命令行生成不同天氣晴、雨、霧、不同時間晝、夜、不同交通密度的場景數據。打通Unity到OpenPCDet的虛擬數據生成管線是一個涉及計算機圖形學、傳感器物理、軟件工程和機器學習多個領域的綜合性項目。它沒有標準答案需要你根據自身需求不斷調整和優(yōu)化。但一旦這條管線穩(wěn)定運行它將成為你算法研發(fā)過程中最強大的武器之一讓你擺脫對昂貴、緩慢的真實數據采集的依賴專注于算法創(chuàng)新本身。希望這篇超詳細的指南能為你點亮這條路上的第一盞燈。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
粉嫩小泬久久久一区二区| 伊人一区二区三区| 久久偷偷色综合蜜桃| 无卡一区=区| 秋霞午夜成人福利片片| AV中文在线| 国产亚洲色婷婷99精品91| 后入人妻无码| 岛国黄色大片网站| 久操B网| 青青草色AV| 操逼逼福利视频| 国产午夜视频| 国产又黄又粗的视频| 欧美一区二区福利在线| 欧美日韩国产电影| 欧美人与动性人交a| 91蜜臀在线久久久久| 亚洲欧洲第二视频在线观看色图| 妇女性内射冈站HDWWWCOM| 一本一道人妻久久一区二区三区 | 国产极品美女高潮无套在线观看| 国产精品久久成人免费| 国产中文日韩欧美一区二区三区人妻丝袜美腿 | 麻豆精品三区视频| 精品一区二区三区麻豆| 密臀在线一区尤物| 91色欧美| 亚洲在线欧美| 亚州情色j区| 男人的天堂无码| 亚洲黄色视频在线观看视频| 色av中文字| 久久久久久久精| 丝袜AV一区二区三区| 性爱乱伦一区| 亚洲精品一区二区日本| 欧美伦乱爱| 97色论| 婷婷视频在线免费观看| 人人妻人人玩人人澡人人爽| 日本操逼视频导航| 美女十八禁| 色人久久| 国产丝袜高跟美女av免费观看| 呦呦影院| 嫩草 人人网精品| 一本大道不卡一二三区| 欧美综合 站| 97人人操人人摸| www.av不卡中文字幕| 去干网最新版| 黄页av| 99热99色| 日韩成年人性爱视频| 欧美性爱一内片一区二区三区| 亚洲av青草久久一区二区| 97色欧州| 99热超碰| 国内伊人久久久久久网站视频| 台湾佬中文娱乐自偷自拍| 欧美少妇色图| 中文字幕免费在线观看| 人妻在线中出视频| 国产吞精a级片激情电影| 情色大香蕉| 伊人网av| 亚洲最新中文字幕免费| 色噜噜人妻av中文字幕| 99欧美| 亚洲成人性爱网站在线播放| 超碰色老头| 99re9这里只有精品| 亚洲成熟国产精品美女| 国产辣妈在线视频福利| 青草地一本线一区二区三区| 精品一国2| 五月丁香婷婷啪啪| 91日产欧美| 中文伊人大香蕉视频| 性爱视频久久| 曰韩无码777| 在线视频五十市| 久草精品国产蜜臀| 黄色视频特级毛片| 欧洲亚洲国产综合在线| 天欧美在线| 久妇网| 国产精品日韩在线一区| 91无码精品| 97干在线| 狠狠色噜噜狠狠狠狠狠色综合久久 | 91女在线观看| 亚洲色综合| 日韩无码专区| 91精品91久久久中77777| 国产精品熟女乱伦| 久久久久久国产精品免费网站| 国产精品探花色| 啪啪一区| 黑人精品成人一区二区三区| 上海一级黄片| 三级网色| 亚洲国产成人7777| 欧美色狠| 亚洲 欧美 精品专区 极品| 国产青青综合伊人| 97在线亚洲| 久久一留热品黄| 亚洲日本成人动漫| 校园春色制服丝袜中文字亚洲| 亚洲在钱| 伊人96在线| 亚洲国内精品成人不卡| 青娱乐蜜桃臀AV色婷| 中文字幕狠狠玩| 精品国产一区二区三区四区在线看| 91黄射| 国产乱码精品久久久久久| 久久天堂婷婷网| 91亚洲不卡一区| 狠狠干妹子| 蜜臀99精品国产高清在线观看| 少妇3P性爱自拍| 亚洲aw毛茸茸在线| 啊啊啊啊啊啊好湿好爽视频| 九九热在线视频| 屁股久久久久久久| 日本久久999| 97超碰资源网| 99热国产精品| 亚洲日本加勒比在线| 啊啊啊好大好湿| 亚州综合色图| 久久9精品网站| 97欧美久久久久久久| 国产精品婬乱一级毛片彝族| 亚洲啪啪视频免费| 色就色综合| 丝袜视频网国产90| 九九九999久久久网站| 97中文热色| 99热这里只有精品18| 欧美91色| 欧美亚洲高清| 青娱乐休闲视频在线观看| 免费观看成人www精品视频| 岛国黄片网站| 日韩AC| 精品黑人一区二区| 色播五月丁香| 久久欧洲| 99热线麻豆 | 熟女乱伦A| 国产精品久久久久久 百度| 日本在线激情一区二区三区| 久jiu久神马影院| 红杏大香蕉| 欧美日韩免费专区在线| 亚洲欧美激情小说| 亚洲97超碰| 九九精品无码专区免费| 激情综合色| 欧美亚洲影视| 我想要啊 啊 啊| 青青草毛片| 色官网色综合| 青青草原人妻| 男人的天堂com| 国产福利精品98视频| 精品无码欧美三级| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 国产呦精品一区二区三区下载| 超碰免费人人| 91麻豆一二三区| 熟妇熟女一区二区三区| 五月色网| 国产精品天干天干综合网麻豆| 国产suv精品一区| 精品国产91内射久久| 国产精品熟女丝袜一区二区| 色男人色天堂东京热| 青青操少妇| 一级婬片120分钟试看| 亚洲男人的天堂网| 大鸡吧尹人在线| 操逼无码操逼| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 99在线啪| 婷婷丁香在线| 久久青青草原免费视频| 91欧美综合| 91色伦| 亚洲少妇在线观看| 亚洲色图超碰在线| 加勒比东京热五月天天堂网| 日本媚薬中文字幕在线| 国产 热久久久久国产精品| 看一级特黄a大一片| 美女久久久| 欧美色图私拍91| 色综91| 色香阁在线| 无码抄逼网| 影视综合无码少妇| 蜜桃久久久久久久| 一色网男人的天堂| 啊啊啊想要| 超碰AV在线| 日韩青久久| 99久久久er直播网址| www.婷婷五月天| 成人资源中文字幕在线观看| 日本在线视频导航| 啊啊啊啊在线播放| 国产日韩欧美三级片| 天天摸天天舔天天操| 久久黄片国产一区二区| 青青草伊人久久| 亚洲97成人在线观看| 国产精品熟女AV中文字幕在线播放| 久久AV无码AV| 日少妇亚洲版| 中文字幕日韩人妻视频| 人人澡综合涩| 8x福利精品第一福利视频导航| 亚洲精品日韩国产欧美| 日本在线一二| 免费视频在线一区二区不卡| 久久久一区二区| ?亚洲伊人伊成久久人综合网| 啊啊啊啊啊啊啊网址在线观看| 欧美成人四级在线播放| 久热这里| 中文字幕黄色片| 日韩素人无码一区二区三区三州| 日本高清一本二本免费不卡| 中文字幕人乱码中文字的预防方法 | 久久久精品91八戒| 成人5码视频| 国产亲戚伦亲在线| 久久国产视频性吧| 超碰人妻久久人妻中文97| 操逼无码一区| 欧美成人一级免费电影| 男男H黄动漫啪啪无遮挡网站| 欧美性生活免费网| 在线性黄高清免费视频| 97干在线| 国产四虎在线| 天美一区在线| 91综合中文字幕| 欧美性生活综合| 另类小色呦| 亚洲色图大香| 亚洲视频二区 | 在线女人91| 中文字幕成人| 99re这里只有精品3| 金莲网址| 精品区9| 亚洲av成人精品一区| 日本999精品| 午夜视频久久久| 午夜福利一区二区影院| 亚洲操逼网| 97爱啪| 大香蕉五月天| 狠狠操,使劲操| 中文字幕伊人| 久久精品亚洲婷婷| 日韩免费看黄片| 97爱| 色天天野狼综合社区| 亚洲AV资源| 99久久综合网| 天堂中文资源在线bt| 日韩免费a级毛片无码a∨| 亚洲AV色图一区| 久操不卡视频| 亚州操逼网| AV一起草在线| 放黄片放3级黄片没穿衣服| 欧美高潮| 丝袜狠狠草尤物 91| 偷拍欧美激情| 91狠婷| 国产99 中文字幕日韩小视频| 日韩无码极品| 亚洲欧洲成人在线电影| 亚洲影视综合| 亚洲九九爱| http://qxhbdz.com| 日本熟妇人妻中出视频| 无码最新| 资源在线观一 二| 国产色图乱伦| 成人线上超碰| 欧美色狠| 日韩成年人性爱视频| 美美91成人国产精品欧美精品久久久久久久| 日韩免费在线视频观看| 成人黄页| 午夜久久久| 一区二区三区四区色图| 久久久久久国产手机AV| 日本色色视频网站| AV99热18这里只有精品| 伊人久久亚洲色欲综合网站| 裸模AV女优| 黄色小说亚洲| 大香网伊人久久综合网eew| 中文字幕乱码人妻一区二区三区,99精品 | 日本性爱视频一级| 视频在线中文字幕| 亚洲图片在线| 日本三级精品| 91精品丝袜久久久久久| 亚洲毛片基地专区| 91视频精品| A级片日韩欧美国产欧美视频精选观看 | 亚州色图狠狠干| 一区二区三区精品视频| 日本岛国黄色网址| 性欧美| 亚洲中文字幕噜噜噜久久久| 蜜桃久久久久久久久久久久| 91oumei| 免费一级欧美片片线观看| 中文在线久久字幕| 青青久日| 久久久久久91香蕉国产| 中国黑人三级片网站上区| 9久久精品| 婷婷亚洲五月***久久| 久久熟女久| 偷看洗澡一二三区美女| 国产大陆天天艹| 美女主播色欲91抠b在线播放| 91bbb| 国产AV人人 夜夜人人澡| 国产深喉| 做爱A级亚欧| 久久久久久久久久精| 亚洲中文字幕久久人妻| 欧美性爱综合,免费| 久久夜嗨| 久久久中文版| 色播丁香| 亚洲天堂五月天国产| gogogo免费高清看中国国语| 日本护士高潮| 九九九久久久久| 一二三卡欧美日韩人妻免费精品| 人妻天天爽| 中文字幕在线观看AV| 久久精品一区二区三区四区五区| 日韩9区| 欧美亚洲首页| 视频国产欧美在线播放| 国产日韩区| 狠狠激情综合狠狠操中文字幕| 蜜臀99999| 天天做天天爱天天高潮| 激情网色| 欧美日韩性爱视屏免费看了| 丝袜美腿制服人妻二区中文字幕| 91站街按摩店老熟女熟女| 欧美视频中文字幕区| 亚洲无码99| 97玖玖人妻| 加勒比海成人视频网| 深夜激情| 亚洲无线码欧洲精品区别| 日韩亚洲中文字幕在线| 日本天天色| 亚洲精品骚逼| 精品久9| 国产美女mm131爽爽爽爽| 日本免费一区二| 黑人干亚洲| 日产中文字幕2020| 美国三级日本三级久久99| 天天透伊人| 大香焦A片| 激情五月综合网| 国产白丝AV| 伊人久大| 天天日天天舔天天喷天天射| 800zy一区二区| 色香网| 欧美一品道| 亚洲天堂,男人| 成年女人黄网站| 国产成人拍国产亚洲精品| 国产男女边吃边摸视频网站| 日韩免费在线观看不卡| 97在线免费看视频| 日日噜噜夜夜久久亚洲一区二区 | 欧美日韩性爱视屏免费看了| 中文字幕人妻色偷偷久久皮 | 免费在线黄片视频| 亚洲人妻熟妇三十三区| 欧美亚洲国产自久久| 久久久精品日本一道| 超碰97在线中文| 97超碰站| 91在线免费精品视频| 先锋激情∨在线视频播放| 天天躁日日躁AAA片李宗瑞| 日韩人妻资源网| 六月色色| 久久久久久久久国产| 亚洲一区二区AV| 国产精品自在线发布| 欧美少妇大量自拍视频在线观看| 无码人妻丰满熟妇奶水区毛片| 天天干夜夜肏| 日本免费一级AAA大片器| 日本高清久久| 97人亚洲综合字幕| 另类成人首页一区| 国产女人操逼视频| 天天摸天天舔天天操| 国产91影院| 婷婷五月天补不补| 婷婷15月天青娱乐| 日韩激情毛片一级久久久| 人妻啊啊人妻啊啊| 一卡二卡三卡| 婷婷五月天基地| 78超碰| 大香蕉碰碰| 亚洲自拍97| 久久精品国产72国产精品福利| 色拍偷亚洲| 8050午夜少妇无码| 日韩91网| 久久婷婷一区二| 色欲天天综合久久久无码网中文| 欧美日韩国产传媒在线精品| 好涩综合| oumeisetupian| 搡老女人老91妇女老熟女| 九九精品美女高溯喷水| 强奸乱伦免费网站| 欧美激情一区二区| 欧美性爱三区二区| 夜草欧美| 亚洲精品久久一区二区三区蜜桃臀| 94色色电影网| 伊人久久大香蕉线AV五月天| 操操操五月天婷婷丁香影院| 思思热在线| 热无码中文亚洲H一道本一区二区| 乱欲性色| 欧美午夜色妇色鬼| 色爱国产| 无码精品蜜桃一区二区三区ww| 歐美性天天| 五月婷婷爱六月丁香色| 翔田千里AV无码秘 三区| 国产久久男人天堂| 97干色天堂| 丁香五月影院| 日本一区视频在线观看| 91久久久老司机| 一区二区三区精品黑丝白丝酒店对鸡| 亚洲成人性| 人妻少妇色综合| 一区二区三区四区五区高清无码永久视频 | 极品色www影院| 国产精品白领在线观看| 女人香蕉久久毛毛片精品| 亚洲自拍欧美国产首页网曝| 麻豆视频test| 肥臀熟女福利视频一区二区| 亚欧国产无码精品在线| 欧美成人AⅤ大片在线观看| 日韩欧无码一区二区三区免费不卡| 啊啊啊啊啊好舒服视频| 欧美综合 站| 久久国产精品熟女人妻| 青青草白白色| 欧美视频第二页| 日han少妇无码| 伊人97色天使| 久久婷婷在线观看视频| 日产中文字幕2020| 国产精品丝袜久久亚洲不卡| 久久久久99精品成人片蜜臀| 91N综合网| 亚洲久9| 日韩av性爱在线播放| 国产精品人妻无码久久久老鸭窝| 中文字幕福利视频一区二区三区在线观看| 欧美图片校园春色| 呻吟 欧美 日本 中出| 国产精品懂色tv影视免费观看| 欧美激情内射| 偷拍三区| 9国产超碰| 伊人影院综合是一个与深夜成人在线| www黄片免费看com| 国产刺激视频| 亚洲五月婷| 1024亚洲中文字幕久在线看片你懂的| 丁香五月综合| 情色五月天网| 天天色综合影视网| 亚洲国产一级黄色视频| 在线播放免费av福利片| 国产成人精品日本视频| 久久AV无码网址| 97色插| 97碰久久| 亚洲欧洲国产综合av| 久热九九| 久久久99999久网站| 美女黄页网站| 青青操轻轻| 麻豆人妻少妇在线免费观看| 97色欧州| 国产精品美女视频诱惑| 欧亚性爱在线视频| 久久极品一区二区| 高潮9999外国| 91精品无码人妻系列| 亚洲中文字幕噜噜噜久久久| 久久精品成人一区二区三区蜜臀| 熟妇xxxxx性春色| 在线可观看的黄色网址| 免费看污网址| 欧美天天干| 亚洲天堂男人天堂网| 我想要 啊 啊 啊| 久久亚洲AV无码专区国产精品 | 欧美特大黄一级片片免费| 日韩啪啪啪啪啪| 精品无码一区二区| 看免费一级在线播放毛片| 秋霞男人网| 懂色av色欲av蜜臀av| 91挑色欧美| 激情小说亚洲| 国产久久久久久久久一区二区| 亚洲成人在线资源| 免费一级欧美片片线观看| 中文在线久久字幕| 91天堂色男人的天堂| 亚洲精品国产精品乱码不卡| 91天堂色男人的天堂| 天天操天天舔| 国产丰满熟夫69mpp| 偷看洗澡一二三区美女| 精品人妻一区二区三区在线视频不卡| AV一二区| 欧美色图20P| 欧美综合在线91| 欧美熟女操屄| 天天欧美| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 我要去看2个日本美女.com曹逼| 99青青草国产视频| 日韩操逼性鲍| 一级黄色性爱裸体视频| 免费国产视频| 综合另类| 久久永久无码人妻视频| 久久人妻| 精品人妻一区二区三区四区| 97超碰伊人| 亚洲一区二区性爱电影| 久久久精品视频免费观看| 综合欧美亚洲| 殴美在线AⅤ| 亚洲国产一级精品毛一级精品看免费视频| 床上啊啊啊一区二区三区| 欧美网站免费| 狼人综合婷婷激情四射| 97精品97| 午夜精品久久久久久久99热影院| 丁香激情网| 99啪啪| 五月婷婷综合激情| 大香樵伊人网| 亚洲国产一区二区三区在线 | 91人妻丝袜无码| 欧美 亚洲 偷拍自拍| 国产成人久久久精品免费AV| 4399成人黄A片| 激情婷婷丁香| 大香蕉综合| 国产精品亚洲四五区在线观看| 日韩一级二级三级免费看完整版国语版| 中文字幕aⅴ在线视频| 奇米四色影视777久久久| 99色色网| 97 国产精品| 91亚洲色人| 午夜国产综合视频在线观看| 午夜福利精品| 亚洲欧洲小说图片视频 | 超碰 av 女人天堂| 本道在线| caoni国产亚洲av| 操逼精品视频| 成人av影院在线观看| 加勒比海色香蕉婷婷| 青青青青草av在线观看| 国产精品午夜福利| 亚洲日韩视频二区| a在线视频免费观看| 泰国AV在线观看| 精品一区二区三区四区女| 国产熟码AV| 秋霞一集毛片观看| 图片区小说区| 日韩精品第3页| 亚洲熟女诱惑| 一级日本牲交大片好爽在线看| 在线国产探花| 91大神电影天堂| 色五月AV在线| 免费福利视频中文字幕| 99视频自拍| 成人黄页| 操人人| 欧美日综合| 欧美 亚洲 另类 综合| 免费一级欧美片片线观看| 国产欧美日产一区二区三区 - 国产欧美日| 三级AV入口| 日本熟妇自慰性高潮一区二区三区| 欧美性爱五月天| 极品色综合| 久久久性爱视频| 男女打扑克高清网站| 91色人| 亚欧性爱无码| 九色97| julia国产在线| 无码聚合| 国产美女精品| 青娱乐老司机视频| 人人透人人操| 91熟女.com| 一区二区三区黄色片a| av中文字幕在线熟女| 极品少妇久久久| 天天色播亚洲综合网站| 久久成年精品| 被窝影院午夜看片无码| 亚洲另类久操网| 东北女人高潮视频| 亚洲成av人片色午夜乱码| 欧美在线综合| 日韩性爱毛片操骚逼| 啊啊好多水| 啊啊啊好大好深| 粉嫩av在线一区二区| 日韩色女精品| 日韩色欲久久一二三四区| 大香蕉啪啪啪啪在线| 肏逼福利网站| 99热这里只有精| 久久精品国产亚洲5555| 国产欧美一区二区| 亚洲97在线| ′ !γ}丶。。久久精品欧美一区二区三区| 日本欧美不卡| 91精品黄在线观看| 欧美日韩狠狠爱| 国产天天骚| 日韩兔费看黄片| 99国产精品人妻人伦| 91人妻熟女| 久操大香蕉手机视频在线看| 精品999999| 97色爱| 欧美日韩国产成人高清| 欧美熟女妇同| 久久av成人无码免费| 国产精品久久久久久久久久久久久久久久| 日本熟女中文字幕一区| 大香蕉色欲AV| 中文字幕日本久久| 天天欧美| 69精品在线| 色欲天天婬色婬香WWW夜色| 性色高清在线| 欧美亚洲一级在线观看| 久久精品中文字幕女同| 色官网在线| 人妻夜爽夜夜爽| 91 在线亚洲| 狠狠操,使劲操| 91丝袜激情在线| 久草免费在线一区二区| 夜夜欢天天干| 大香蕉 222| 国产高清精品一区二区三区毛片 | 在线二区不卡| 国产精品一区二区在钱播放| 操逼日批| 美女让帅哥通她小鸡鸡| 久久免费精彩视频| 日韩精品资源专区二区| 九九九九精品一区| 另类在线| 欧美真人抽搐一进一出gif| 无码久| 色五月婷婷在线| 日韩啊V| 欧美激色| oumeisetu综合| 黄色AAAAA欧美| 午夜经典| 久久伊人青青草| 97久久超碰| 国产精品国产亚洲区艳妇糸列| 日韩无码AB| 午夜人妻精品综合在线| 麻豆综合一区av| 毛片99-全集电影手机免费观看完整-B029AV| 992这里有精品| 92性色国产午夜福利在线661| 青青草中日韩在线| 99re这里只有精品3| 人妻少妇被猛烈进入中| 久久欧美激情| 亚洲男人天堂2016| 老女人老91妇女老热女| 搡老女人老熟女91老熟女综合网| 蜜乳中文字幕a在线| 日本肏逼视频在线观看| 人妻日日夜夜精品| 综合网天天| 国产高潮AA片免费看| 亚洲熟妇熟在线电影视频| 夜色97| 人妻精品视频一区二区三区| 男人的天堂2010| 97国产精品久久久久 | 污电影在线观看| 色婷婷国产精品一区在线观看| 国产1769在线| 欧美十八禁视频| 天堂网 主播 亚洲| 尤物av网站| 99色色网| 天天草天天干天天日| 91成人无码| 99色综合| 日本一线产区和二线产区伦理片| 大香蕉强奸乱伦| 白丝在线一区| 免费的黄片有限公司| 亚洲宗合网| 欧美极品性爱天天射| 久久九九一区二区三区成人| 性久久久| 亚洲骚男同com| 五月天激情网图片| 超碰这里有精品| 无码不卡八戒| 999 久久久| 日韩日韩日韩-国产乱码精品一区二区| 强上我不卡卡| 福利在线观看一区二区| 老色鬼成人精品视频下载大在线观看| 日韩不卡在线一区二区| 日韩美女高潮喷水视频| 国产男女无套视频免费观看| 亚洲无992tv| 超碰99热中文字幕| 久久精品六区| 1769精品一区二区三区| 欧美人与性动交a美精品| 99精品国产户外露出| 97精品视频| 欧美中文字幕精品人妻| 熟女少妇一区二区三区| 黑人精品欧美一区二区蜜桃| 黄色一区三区| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 51国产午夜精品视频| 亚洲中文字幕在现观看| 曰韩中文人妻视频| 国产精品剧情| 大香蕉亚洲中文| 九九人人操| 久干9操| 97国产超碰| 人妻人妻天天碰| 欧美日韩性爱操大逼| 亚洲AV无码乱码| 男人天堂无码| 中文字幕综合人妻| 伊人综合色网| 69精品在线| 欧美在线l亚洲| 九九Av| 国产高清精品福利| 国产极品99热在线播放69| 国产h小视频在线观看免费| 欧美,日韩,中文,另类| 密臀AV在线| 亚洲综合色男人网| 婷婷大香蕉| 超碰精品日韩欧美国产| 欧美精品庄| 99精品久久久久久| 欧美91网站| 2019天天干| 久久伊人青青草| 懂色AV蜜臀无码精品APP| 美女天天干| 欧美综合综合| 97超碰人妻| 极品欧美一区二区三区| 免费试看60秒| 色色毛片| 96国产精品| 欧美性夜| 久久97超碰| 99av| 曰韩人妻中文字幕在线| 大香蕉78| 本道综合精品| 女色综合| 情趣丝袜无码操逼视频| 亚洲欧美首页| 成年人网站在线免费观看| 国内毛片无遮挡国产| 国产精品麻豆成人AV艾秋| 精品区9| 久草精品国产99| 操婢日韩| 六九九九| 一区二区播放| 啊啊啊啊免费视频| 亚洲欧美碰碰| 九热中文字幕| 欧美性生活免费网| 91精品无码人妻系列| 人人干人人操人人..com| 五月丁香影视| 超碰亚洲欧美日韩无| 国产熟码AV| 久久啊哟| 另类天堂| 亚洲国成人情色好看电影| 日韩午夜国产| 欧美日韩1234| 国产Aα| 亚洲黄色影视| 综合网亚| 91模特在线观看| 91精品国产91久久福利| 日韩人妻免费精品| 人人污日韩一区二区| 久久精品99久久久久久| 久久精品国产Aⅴ| 大香蕉黄色一区| 少妇与黑人高潮在线| 97超碰超| 又大又长又粗又爽又黄| 尤物网址| 伊人五月天| 中文久久一区| 在线日韩精品一区二区三区| 欧美爆乳精品一区二区| 亚洲一区日韩精品| 伊人色综合网| 美日韩一二三区| 在线a亚洲视频播放在线| 97色色婷婷| 啊啊啊久久久视频| 99久在线精品99re8热| 青青操少妇| 快播电影网日韩新片| 日韩人妻制服丝袜av| www.狠狠| 老鸭窝日丰县女人| 亚洲性爱电影| 国产乱伦性爱区| 人人干黄色| 美女诱惑1区2区| 清纯唯美激情| 天天操天天干一区二区 | 91狠狠综合久久| 爱av免费| 成人久久精品| 成人影院永久免费观看网址| 久久欧美1卡2卡3| 老熟女网站| 色婷婷五月综合激情中文字幕| 日韩图区| 色综合天天| 欧美成人亚洲精品| 亚洲乱码精品一区二区| 亚洲欧洲视频小说在线观看| 欧美天天干| 九九色综合| 中文字幕人妻丝袜乱一区三区| 亚洲aV无码成人在线观看| 色偷偷综合91久久噜噜| 人妻81p| 久久人妻无码毛片A片麻豆| 免费亚洲黄色视频在线观看| 九九九九九九九精品视频| 78m啪啪啪| 日日爽夜夜爽| 亚州性色| 成人片在线播放| 久久久久女教师免费一区| 国产亚洲在线观看| 蜜臀99久| 屌逼麻豆| 97精品| 99re8免费高清在线| 色黄污美女啪啪啪免费网站| 久久国产精品,久久国产| 人人操我人人干| 好舒服视频| 91AV入口| 夜草欧美| 亚洲黄色a级片| 麻豆一区二区AV天美| 综合久久中文字幕综合日韩精品| 亚洲图片 欧美电影| 蜜臀久久99精品久久久老,,| 亚洲春色一区二区三区| n1038 一二三区| 日韩在线一区高清在线| 超碰97首页| 国产大学生高潮在线播放| 午夜九九| 91在线页| 久久精品福利影院| 日本三级韩国三级美三级91| 日本精品不卡一二三区| 欧美日韩中文字幕不卡| 亚洲一区二区性爱电影| 国产丝袜美女在线一区| 国产精品夜夜| 亚州国产成人精品女人久久 | 不卡码视频| www.99视频| 亚洲AV无线| 亚洲啪啪视频一区二区| 欧美一二在线| 少妇无码av专区线| 青青草综合在线| 干B视频伊人网| 国产女同在线观看视频| 蜜臀久久99精品久久久久久-DVD原版全| 欧美亚洲成人在线一区二区三区| 婷婷伊人一区| 高潮内射在线| 久操大香蕉手机视频在线看| 大香蕉丝袜一级片| 日本性爱不卡视频| 深夜国产一区二区三区在线看| 日韩精品一区二区高清| 精品综合久久久久久五月天| 日日夜夜精品视频| 久草资源在线| 四虎av在线| 精品成人久久久人人亚洲| 日夜精品| 久久精品人妻一区二区三区| 男人的天堂2010| 精品亚洲国产成人AV制服丝袜| A片大香蕉在线| 91成人精品在线播放| 99热精品青草在线| 国产刺激视频| 青草成人免费视频一COm| 97免费视频网| 97色婷| 精品无码久久久久久国产浪潮| 上床啊啊啊| 色婷婷婷五月天激情四射| 大屁股xxxxx| 百度百度日本操逼| 午夜小电影在线插入淫高潮| 蜜乳AV免费观看| 日韩午夜啪啪视频| 人夜夜精品网站香蕉嫩草| 91 丝袜在线| 性性久久| 高清视频一区| 五月丁香六月综合缴清无码 | 日韩精品亚洲一二三| 久久久久9久久久久| 国产精品午夜高潮呻吟久久av| 91看黄片| 精品九九九九九| 插B在线观看| 伊人久久大香蕉线AV五月天| 人妻熟女字幕一区二区| 亚洲精品aa久久伊人| 久久内射| 亚洲交换| 97频视在线| av情色影音| 亚洲色图超碰在线| 久久精品国产免费观看99| 亚川综合视频| 蜜乳AV免费观看| 欧州91高潮| 亚欧操逼片在线观看| 久久久久久久久久久久久久久久9| 色哟哟-国产专区| 天天欧美色| 日本日逼视频网| 新婚人妻扶着粗大强行坐下| 日本东京热加勒比久久| 国产福利视频精品视频| 欧美91精品国产自产| 女生看匆91网站| 日韩欧美~中文字| 加勒比av网| 亚洲精品久久一区二区三区蜜桃臀| 少妇同性| 中文乱码99| 91九色丨国产丨爆乳| 欧美老熟另类| 久久九九视频九九视频| 久久无码成人| 欧美精品日韩久久久九| 秋霞成人一级在线观看| 天天躁日日躁AAAAXXXX国产 | 丝袜狠狠草尤物人妻av91| 操人妻少妇中文 | 今日头条成人一区二区三区四虎精品| 蜜桃久久久久久久| 手机av天堂久久久久| 久久乐| 综合色图亚洲欧美| 精品少妇一区二区三区免费观看| 操久久久久久| 天综合网| 97色五月天完| 日本人妻一区二区| 白丝AV网站| 亚州春色| 婷婷五月天无码| 四虎在线免费视频| 天天天做天天天爱天天天爽| 国产精品另类一区大香蕉| 高清无码91| 久九九九九九九九热| 国产精品一区二区三区四区五区| www国产精品| 亚洲欧美综合| 精品熟女呻吟久久91| 天天澡天天爽日日AV| 思思视频免费看网站| 一起草日韩| 欧美东京热精品A∨| 日本在线视频导航| 婷婷久久综合| 亚洲不卡不卡中文字幕不卡 | 殴美性色a级欧美| 区一在线观看| 美女黑人91神马| 日韩八十路老熟女| 亚洲精品国产拍免费91在线| 亚洲精品九九九| 亚洲国产91精品一区二区久久| 五月天婷婷在线看| 欧美大香蕉同搞| 婷婷六月色开| 色婷婷aV一区二区三区麻豆综合| 啊啊啊啊啊好大好舒服想要| 大香蕉综合在线| 国产精选视频| 亚洲在线网站| 亚洲精品啪视频| 天天舔天天| 吉田爱美AV在线| 91欧洲入口| 国产强奸乱伦第1页| 久久国产乱子伦精品免费女人| 亚洲欧洲综合视频在线| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 日韩97超碰| 老妇女91| 亚洲阿v天堂无码z2018| 久久xxxx| 欧美国产视频| 96国产精品| 国产高清视频无码在线| 97人人操人人摸人人爱| 大香蕉97久久| 中文字幕诱惑制服人妻丝袜美丝袜美| 快灬快灬 一下爽蜜桃在线观看| 色婷婷六月丁香七月婷婷| 久久av成人无码免费| 天天日B狠狠操| 蜜桃臀一区二区aV| 国产色图乱伦| 国产懂色精品国产av| 日韩在线视频1234| 2019亚洲男人天堂| 人人人干干人人干| 久精品无码av一区二免费国产在线观看 | 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 操一区| 亚洲精品国产av天美传媒| 丰满人妻一区二区三区免费 | 亚洲另类欧美精品| 91精品国产麻豆国产自产在| 五月天综合| 伊人久久亚洲中文字幕不卡| 日本精品一区二区三区四区的功能| 国产午夜激片Av毛片不卡| 久久久99久9| 91久热| 国产一级内射无挡观看| 欧美|91色综合| 91精品操美女| 日韩在线性爱免费视频| 99啪| 国产视频97| 久久久久久日韩| 高清不卡国产| 日本二三四区| 日韩av一级黄片| 97中文字幕色| 又大又大又大又粗爽高潮观看| 高清在线偷拍自拍视频| 嗯嗯啊啊好大好爽| 极品销魂美女一区二区| 国产精品麻豆成人AV艾秋| 人人妻天天做天天爽| 日韩欧美成人性爱在线| 蜜臀亚洲中文| 日少妇视频| 丁香五月成人| 精品无码一区二区人妻久久蜜桃| 伊人五月天婷婷| 九一亚洲国产免费| 大香蕉欧美| 午夜天堂精品久久久久91| 99草精| 国产亚洲禁久一区二区 | 日韩性爱再线视频| 美女裸体麻豆天美蜜桃91| 亚洲精品久久久久久久蜜桃臀| 志村玲子视频一区二区| 欧美内射少妇| 97超碰碰| 天天综合精品| 爱爱动态60秒| 2011国产精品| 啊啊啊啊免费视频|