搜尋
首頁科技週邊人工智慧自動駕駛技術框架梳理

自動駕駛技術框架梳理

Apr 11, 2023 pm 12:22 PM
系統無人駕駛

無人駕駛系統的核心可以概述為三個部分:感知(Perception),規劃(Planning)和控制(Control),這些部分的交互以及其與車輛硬體、其他車輛的交互可以用下圖表示: 

自動駕駛技術框架梳理

#感知是指無人駕駛系統從環境中收集資訊並從中提取相關知識的能力。其中,環境感知(Environmental Perception)特別指對於環境的場景理解能力,例如障礙物的位置,道路標誌/標記的偵測,行人車輛的偵測等資料的語意分類。一般來說,定位(Localization)也是感知的一部分,定位是無人車決定其相對於環境的位置的能力。

規劃是無人車為了某一目標而做出一些有目的性的決策的過程,對於無人駕駛車輛而言,這個目標通常是指從出發地到達目的土地,同時避免障礙物,並且不斷優化駕駛軌跡和行為以確保乘客的安全舒適。規劃層通常再細分為任務規劃(Mission Planning),行為規劃(Behavioral Planning)和動作規劃(Motion Planning)三層。

最後,控制則是無人車精準地執行規劃好的動作的能力,這些動作來自更高的層。

01 感知

#環境感知

為了確保無人車對環境的理解和把握,無人駕駛系統的環境感知部分通常需要獲取周圍環境的大量信息,具體來說包括:障礙物的位置,速度以及可能的行為,可行駛的區域,交通規則等等。無人車通常是透過融合光達(Lidar),相機(Camera),毫米波雷達(Millimeter Wave Radar)等多種感測器的數據來獲取這些信息,本節我們簡要地了解一下光達和相機在無人車感知中的應用。

雷射雷達是一類使用雷射進行偵測和測距的設備,它能夠每秒鐘向環境發送數百萬光脈衝,它的內部是一種旋轉的結構,這使得雷射雷達能夠即時的建立起周圍環境的3維地圖。

通常來說,雷射雷達以10Hz左右的速度對周圍環境進行旋轉掃描,其掃描一次的結果為密集的點構成的3維圖,每個點具備( x,y,z)訊息,這個圖稱為點雲圖(Point Cloud Graph),如下圖所示,是使用Velodyne VLP-32c雷射雷達建立的點雲地圖:

自動駕駛技術框架梳理

雷射雷達因其可靠性目前仍是無人駕駛系統中最重要的感測器,然而,在現實使用中,光達並不是完美的,往往存在點雲過於稀疏,甚至丟失部分點的問題,對於不規則的物體表面,使用光達很難辨別其模式,在諸如大雨天氣這類情況下,光達也無法使用。

為了理解點雲信息,通常來說,我們對點雲資料進行兩步驟操作:分割(Segmentation)和分類(Classification)。其中,分割是為了將點雲圖中離散的點聚集成若干個整體,而分類則是區分出這些整體屬於哪一個類別(比如說行人,車輛以及障礙物)。分割演算法可以被分類如下幾類:

  1. 基於邊的方法,例如梯度過濾等;
  2. 基於區域的方法,這類方法使用區域特徵對鄰近點進行聚類,聚類別的依據是使用一些指定的標準(如歐幾里德距離,表面法線等),這類方法通常是先在點雲中選取若干種子點(seed points),然後使用指定的標準從這些種子點出發對鄰近點進行聚類;
  3. 參數方法,這類方法使用預先定義的模型去擬合點雲,常見的方法包括隨機樣本一致性方法(Random Sample Consensus,RANSAC )和霍夫變換(Hough Transform,HT);
  4. #基於屬性的方法,首先計算每個點的屬性,然後對屬性相關聯的點進行聚類的方法;
  5. 基於圖的方法;
  6. #基於機器學習的方法;

在完成了點雲的目標分割以後,分割出來的目標需要被正確的分類,在這個環節,一般使用機器學習中的分類演算法,如支援向量機(Support Vector Machine,SVM)對聚類的特徵進行分類,最近幾年由於深度學習的發展,業界開始使用特別設計的捲積神經網路(Convolutional Neural Network,CNN)對三維的點雲聚類進行分類。

然而,不論是提取特徵-SVM的方法還是原始點雲-CNN的方法,由於雷射雷達點雲本身解析度低的原因,對於反射點稀疏的目標(例如行人),基於點雲的分類並不可靠,所以在實踐中,我們往往融合雷射雷達和相機感測器,利用相機的高解析度來對目標進行分類,利用Lidar的可靠性對障礙物偵測和測距,融合兩者的優點完成環境感知。

在無人駕駛系統中,我們通常使用影像視覺來完成道路的偵測和道路上目標的偵測。道路的偵測包含道路線的偵測(Lane Detection),可行駛區域的偵測(Drivable Area Detection);道路上路標的偵測包含其他車輛的偵測(Vehicle Detection),行人偵測(Pedestrian Detection),交通標誌和訊號的偵測(Traffic Sign Detection)等所有交通參與者的偵測和分類。

車道線的偵測涉及兩個方面:第一個是識別出車道線,對於彎曲的車道線,能夠計算出其曲率,第二是確定車輛本身相對於車道線的偏移(即無人車本身在車道線的哪個位置)。一種方法是抽取一些車道的特徵,包括邊緣特徵(通常是求梯度,如索貝爾算子),車道線的顏色特徵等,使用多項式擬合我們認為可能是車道線的像素,然後基於多項式以及目前相機在車上掛載的位置確定前方車道線的曲率和車輛相對於車道的偏離。

可行駛區域的檢測目前的一種做法是採用深度神經網路直接對場景進行分割,即透過訓練一個逐像素分類的深度神經網絡,完成對影像中可行駛區域的切割。

交通參與者的檢測和分類目前主要依賴深度學習模型,常用的模型包括兩類:

  • 以RCNN為代表的基於Region Proposal的深度學習目標檢測演算法(RCNN,SPP-NET,Fast-RCNN,Faster-RCNN等);
  • 以YOLO為代表的基於迴歸方法的深度學習目標偵測演算法(YOLO,SSD等);

##02 定位

##在無人車感知層面,定位的重要性不言而喻,無人車需要知道自己相對於環境的一個確切位置,這裡的定位不能存在超過10cm的誤差,試想一下,如果我們的無人車定位誤差在30厘米,那麼這將是一輛非常危險的無人車(無論是對行人還是乘客而言),因為無人駕駛的規劃和執行層並不知道它存在30厘米的誤差,它們仍然按照定位精準的前提來做出決策和控制,那麼對某些情況所做的決策就是錯的,從而造成事故。由此可見,無人車需要高精準度的定位。

目前使用最廣泛的無人車定位方法當屬融合全球定位系統(Global Positioning System,GPS)和慣性導航系統(Inertial Navigation System)定位方法,其中,GPS的定位精度在數十米到公分等級之間,高精度的GPS感測器價格也就相對昂貴。融合GPS/IMU的定位方法在GPS訊號缺失,微弱的情況下無法做到高精度定位,如地下停車場,周圍均為高樓的市區等,因此只能適用於部分場景的無人駕駛任務。

地圖輔助類定位演算法是另一類廣泛使用的無人車定位演算法,同步定位與地圖建構(Simultaneous Localization And Mapping,SLAM)是這類演算法的代表, SLAM的目標即建構地圖的同時使用該地圖進行定位,SLAM透過利用已經觀測到的環境特徵來確定當前車輛的位置以及當前觀測特徵的位置。

這是一個利用以往的先驗和當前的觀測來估計當前位置的過程,實踐上我們通常使用貝葉斯濾波器(Bayesian filter)來完成,具體來說包括卡爾曼濾波(Kalman Filter),擴展卡爾曼濾波(Extended Kalman Filter)以及粒子濾波(Particle Filter)。

SLAM雖然是機器人定位領域的研究熱點,但在實際無人車開發過程中使用SLAM定位卻存在問題,不同於機器人,無人車的運動是長距離的,大開放環境的。在長距離的運動中,隨著距離的增加,SLAM定位的偏差也會逐漸增大,造成定位失敗。

在實踐中,一種有效的無人車定位方法是改變原來SLAM中的掃描匹配類演算法,具體來說,我們不再在定位的同時製圖,而是事先使用感測器如光達對區域建構點雲地圖,透過程序和人工的處理將一部分「語義」添加到地圖中(例如車道線的具體標註,路網,紅綠燈的位置,當前路段的交通規則等等等),這個包含了語意的地圖就是我們無人駕駛汽車的高精度地圖(HD Map)。

在實際定位的時候,使用當前雷射雷達的掃描和事先建立的高精度地圖進行點雲匹配,確定我們的無人車在地圖中的具體位置,這類別方法被統稱為掃描匹配方法(Scan Matching),掃描匹配方法最常見的是迭代最近點法(Iterative Closest Point ,ICP),該方法基於當前掃描和目標掃描的距離度量來完成點雲配準。

除此以外,常態分佈變換(Normal Distributions Transform,NDT)也是進行點雲配準的常用方法,它基於點雲特徵直方圖來實現配準。基於點雲配準的定位方法也能達到10公分以內的定位精度。

雖然點雲配準能夠給出無人車相對於地圖的全局定位,但是這類方法過於依賴事先構建的高精度地圖,並且在開放的路段下仍然需要配合GPS定位使用,在場景相對單一的路段(如高速公路),使用GPS加點雲匹配的方法相對來說成本過高。

03 規劃

#任務規劃

無人駕駛規劃系統的分層結構設計源自於2007年舉辦的DAPRA城市挑戰賽,在比賽中多數參賽隊伍都將無人車的規劃模組分為三層設計:任務規劃,行為規劃和動作規劃,其中,任務規劃通常也被稱為路徑規劃或路由規劃(Route Planning),其負責相對頂層的路徑規劃,例如起點到終點的路徑選擇。

 我們可以把我們目前的道路系統處理成有向網路圖(Directed Graph Network),這個有向網路圖能夠表示道路和道路之間的連結情況,通行規則,道路的路寬等各種信息,其本質上就是我們前面的定位小節中提到的高精度地圖的“語義”部分,這個有向網絡圖被稱為路網圖(Route Network Graph),如下圖中所示:

自動駕駛技術框架梳理

#

這樣的路網圖中的每一個有向邊都是帶權重的,那麼,無人車的路徑規劃問題,就變成了在路網圖中,為了讓車輛達到某個目標(通常來說是從A地到B地),基於某種方法選取最優(即損失最小)的路徑的過程,那麼問題就變成了一個有向圖搜尋問題,傳統的演算法如迪科斯徹演算法(Dijkstra's Algorithm)和A*演算法(A* Algorithm)主要用於計算離散圖的最優路徑搜索,被用於搜尋路網圖中損失最小的路徑。

行為規劃

行為規劃有時也被稱為決策(Decision Maker),主要的任務是按照任務規劃的目標和目前的局部情況(其他的車輛和行人的位置和行為,當前的交通規則等),作出下一步無人車應該執行的決策,可以把這一層理解為車輛的副駕駛,他依據目標和當前的交通狀況指揮駕駛是跟車還是超車,是停車等行人通過還是繞過行人等等。

行為規劃的一種方法是使用包含大量動作短語的複雜有限狀態機(Finite State Machine,FSM)來實現,有限狀態機從一個基礎狀態出發,將根據不同的駕駛場景跳到不同的動作狀態,將動作短語傳遞給下層的動作規劃層,下圖是一個簡單的有限狀態機:

自動駕駛技術框架梳理

如上圖所示,每個狀態都是對車輛動作的決策,狀態和狀態之間存在一定的跳躍條件,某些狀態可以自循環(例如上圖中的循跡狀態和等待狀態)。雖然是目前無人車上採用的主流行為決策方法,有限狀態機仍然存在著很大的局限性:首先,要實現複雜的行為決策,需要人工設計大量的狀態;車輛有可能陷入有限狀態機沒有考慮過的狀態;如果有限狀態機沒有設計死鎖保護,車輛甚至可能陷入某種死鎖。

動作規劃

透過規劃一系列的動作以達到某種目的(比如說規避障礙物)的處理過程被稱為動作規劃。通常來說,考慮動作規劃演算法的表現通常使用兩個指標:計算效率(Computational Efficiency)和完整性(Completeness),所謂計算效率,即完成一次動作規劃的處理效率,動作規劃演算法的計算效率在很大程度上取決於配置空間(Configuration Space),如果一個動作規劃演算法能夠在問題有解的情況下在有限時間內返回一個解,並且能夠在無解的情況下返回無解,那麼我們稱該動作規劃演算法是完整的。

配置空間:一個定義了機器人所有可能配置的集合,它定義了機器人所能夠運動的維度,最簡單的二維離散問題,那麼配置空間就是[x, y],無人車的配置空間可以非常複雜,這取決於所使用的運動規劃演算法。

在引入了配置空間的概念以後,那麼無人車的動作規劃就變成了:在給定一個初始配置(Start Configuration),一個目標配置(Goal Configuration )以及若干的限制條件(Constraint)的情況下,在配置空間中找出一系列的動作到達目標配置,這些動作的執行結果就是將無人車從初始配置轉移至目標配置,同時滿足約束條件。

在無人車這個應用程式場景中,初始配置通常是無人車的當前狀態(目前的位置,速度和角速度等),目標配置則是來自動作規劃的上一層-行為規劃層,而限制條件則是車輛的運動限制(最大轉角幅度,最大加速度等)。

顯然,在高維度的配置空間來動作規劃的計算量是非常巨大的,為了確保規劃演算法的完整性,我們不得不搜尋幾乎所有的可能路徑,這就形成了連續動作規劃中的「維度災難」問題。目前動作規劃中解決此問題的核心概念是將連續空間模型轉換成離散模型,具體的方法可以歸納為兩類:組合規劃方法(Combinatorial Planning)和基於採樣的規劃方法(Sampling-Based Planning)。

運動規劃的組合方法透過連續的配置空間找到路徑,而無需借助近似值。由於這個屬性,它們可以被稱為精確演算法。組合方法透過對規劃問題建立離散表示來找到完整的解,如在Darpa城市挑戰賽(Darpa Urban Challenge)中,CMU的無人車BOSS所使用的動作規劃演算法,他們首先使用路徑規劃器產生備選的路徑和目標點(這些路徑和目標點事融合動力學可達的),然後透過最佳化演算法選擇最優的路徑。

另一種離散化的方法是網格分解方法(Grid Decomposition Approaches),在將配置空間網格化以後我們通常能夠使用離散圖搜尋演算法(如A* )找到一條優化路徑。

基於採樣的方法由於其機率完整性而被廣泛使用,最常見的演算法如PRM(Probabilistic Roadmaps),RRT(Rapidly-Exploring Random Tree),FMT(Fast- Marching Trees),在無人車的應用中,狀態採樣方法需要考慮兩個狀態的控制約束,同時還需要一個能夠有效地查詢採樣狀態和父狀態是否可達的方法。後文我們將詳細介紹State-Lattice Planners,一種基於採樣的運動規劃演算法。

04 控制

控制層作為無人車系統的最底層,其任務是將我們規劃好的動作實現,所以控制模組的評估指標即為控制的精準度。控制系統內部會存在測量,控制器透過比較車輛的測量和我們預期的狀態輸出控制動作,這個過程稱為回授控制(Feedback Control)。

回饋控制被廣泛的應用於自動化控制領域,其中最典型的回饋控制器當屬PID控制器(Proportional-Integral-Derivative Controller),PID控制器的控制原理是基於一個單純的誤差訊號,這個誤差訊號由三個組成:誤差的比例(Proportion),誤差的積分(Integral)和誤差的微分(Derivative)。

PID控制因其實現簡單,性能穩定到目前仍然是工業界最廣泛使用的控制器,但是作為純反饋控制器,PID控制器在無人車控制中卻存在一定的問題:PID控制器是單純基於當前誤差回授的,由於煞車機構的延遲性,會給我們的控製本身帶來延遲,而PID由於內部不存在系統模型,故PID不能對延遲建模,為了解決這個問題,我們引入基於模型預測的控制方法。

  • 預測模型:基於目前的狀態和控制輸入預測未來一段時間的狀態的模型,在無人車系統中,通常是指車輛的運動學/動力學模型;
  • 回饋校正:對模型施加了回饋校正的過程,使預測控制具有很強的抗擾動和克服系統不確定性的能力。
  • 滾動優化:滾動地優化控制序列,以獲得和參考軌跡最接近的預測序列。
  • 參考軌跡:即設定的軌跡。

下圖表示模型預測控制的基本結構,由於模型預測控制是基於運動模型進行最佳化,在PID控制中面臨的控制延時問題可以再建立模型考慮進去,所以模型預測控制在無人車控制中具有很高的應用價值。

自動駕駛技術框架梳理

05 結論

在本結我們概述了無人駕駛系統的基本結構,無人駕駛軟體系統通常被劃分為三層:感知,規劃和控制。從某種程度上而言,無人車在這種分層體系下就可以看作是一個“載人機器人”,其中,感知具體包括環境感知和定位,近年來深度學習的突破,使得基於圖像和深度學習的感知技術在環境感知中發揮了越來越重要的作用,借助人工智慧,我們不再局限於感知障礙物,而逐漸變成理解障礙物是什麼,理解場景,甚至預測目標障礙物的行為,機器學習和深度學習的內容我們將在後面兩章詳細了解。

在實際的無人車感知中,我們通常需要融合光達,相機和毫米波雷達等多種測量,這裡涉及到的如卡爾曼濾波,擴展卡爾曼濾波等融合演算法以及光達。

無人車和機器人的定位方法眾多,目前主流的方法一是使用GPS 慣性導航系統融合的方法,二是基於Lidar點雲掃描匹配的方法,將重點介紹ICP,NDT等基於點雲匹配的演算法。

規劃模組內部也被分成三層:任務規劃(也稱為路徑規劃),行為規劃和動作規劃,後文會介紹基於路網和離散路徑搜尋演算法的任務規劃方法,在行為規劃中,我們將重點放在有限狀態機在行為決策中的應用,在動作規劃演算法層,並著重在基於採樣的規劃方法。

無人車的控制模組我們傾向於使用基於模型預測的控制方法,但是在了解模型預測控制演算法之前,作為對基礎回饋控制的了解,我們前面了解了PID控制器。接著我們學習兩類最簡單的車輛模型-運動學自行車模型和動力學自行車模型,最後,我們介紹模型預測控制。

雖然將無人車理解為機器人並且使用機器人開發的思維處理無人車系統是目前工業界的共識,但是也不乏一些單純使用人工智慧或者是智能體來完成無人駕駛的案例。其中基於深度學習的端到端無人駕駛和基於強化學習的駕駛智能體是目前的研究熱點。

以上是自動駕駛技術框架梳理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
AI內部部署的隱藏危險:治理差距和災難性風險AI內部部署的隱藏危險:治理差距和災難性風險Apr 28, 2025 am 11:12 AM

Apollo Research的一份新報告顯示,先進的AI系統的不受檢查的內部部署構成了重大風險。 在大型人工智能公司中缺乏監督,普遍存在,允許潛在的災難性結果

構建AI測謊儀構建AI測謊儀Apr 28, 2025 am 11:11 AM

傳統測謊儀已經過時了。依靠腕帶連接的指針,打印出受試者生命體徵和身體反應的測謊儀,在識破謊言方面並不精確。這就是為什麼測謊結果通常不被法庭採納的原因,儘管它曾導致許多無辜者入獄。 相比之下,人工智能是一個強大的數據引擎,其工作原理是全方位觀察。這意味著科學家可以通過多種途徑將人工智能應用於尋求真相的應用中。 一種方法是像測謊儀一樣分析被審問者的生命體徵反應,但採用更詳細、更精確的比較分析。 另一種方法是利用語言標記來分析人們實際所說的話,並運用邏輯和推理。 俗話說,一個謊言會滋生另一個謊言,最終

AI是否已清除航空航天行業的起飛?AI是否已清除航空航天行業的起飛?Apr 28, 2025 am 11:10 AM

航空航天業是創新的先驅,它利用AI應對其最複雜的挑戰。 現代航空的越來越複雜性需要AI的自動化和實時智能功能,以提高安全性,降低操作

觀看北京的春季機器人比賽觀看北京的春季機器人比賽Apr 28, 2025 am 11:09 AM

機器人技術的飛速發展為我們帶來了一個引人入勝的案例研究。 來自Noetix的N2機器人重達40多磅,身高3英尺,據說可以後空翻。 Unitree公司推出的G1機器人重量約為N2的兩倍,身高約4英尺。比賽中還有許多體型更小的類人機器人參賽,甚至還有一款由風扇驅動前進的機器人。 數據解讀 這場半程馬拉松吸引了超過12,000名觀眾,但只有21台類人機器人參賽。儘管政府指出參賽機器人賽前進行了“強化訓練”,但並非所有機器人均完成了全程比賽。 冠軍——由北京類人機器人創新中心研發的Tiangong Ult

鏡子陷阱:人工智能倫理和人類想像力的崩潰鏡子陷阱:人工智能倫理和人類想像力的崩潰Apr 28, 2025 am 11:08 AM

人工智能以目前的形式並不是真正智能的。它擅長模仿和完善現有數據。 我們不是在創造人工智能,而是人工推斷 - 處理信息的機器,而人類則

新的Google洩漏揭示了方便的Google照片功能更新新的Google洩漏揭示了方便的Google照片功能更新Apr 28, 2025 am 11:07 AM

一份報告發現,在谷歌相冊Android版7.26版本的代碼中隱藏了一個更新的界面,每次查看照片時,都會在屏幕底部顯示一行新檢測到的面孔縮略圖。 新的面部縮略圖缺少姓名標籤,所以我懷疑您需要單獨點擊它們才能查看有關每個檢測到的人員的更多信息。就目前而言,此功能除了谷歌相冊已在您的圖像中找到這些人之外,不提供任何其他信息。 此功能尚未上線,因此我們不知道谷歌將如何準確地使用它。谷歌可以使用縮略圖來加快查找所選人員的更多照片的速度,或者可能用於其他目的,例如選擇要編輯的個人。我們拭目以待。 就目前而言

加固芬特的指南 - 分析Vidhya加固芬特的指南 - 分析VidhyaApr 28, 2025 am 09:30 AM

增強者通過教授模型根據人類反饋進行調整來震撼AI的開發。它將監督的學習基金會與基於獎勵的更新融合在一起,使其更安全,更準確,真正地幫助

讓我們跳舞:結構化運動以微調我們的人類神經網讓我們跳舞:結構化運動以微調我們的人類神經網Apr 27, 2025 am 11:09 AM

科學家已經廣泛研究了人類和更簡單的神經網絡(如秀麗隱桿線蟲中的神經網絡),以了解其功能。 但是,出現了一個關鍵問題:我們如何使自己的神經網絡與新穎的AI一起有效地工作

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。