色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

AVM環視系統:魚眼相機去畸變算法及實戰

3D視覺工坊 ? 來源:自動駕駛與AI ? 2023-04-26 11:48 ? 次閱讀

前言

在近一年的AVM算法開發工作中,魚眼相機去畸變的玩法前前后后基本過了個遍。從最開始的調用Opencv API,到后來由于算法需要自己實現、正向的undis2fish、反向的fish2undis、魚眼上檢測、undis上標定,總之遇到很多坑,還好都解決了。正好最近有同學在AVM的帖子下面問這個東西的實現,今天在這里討論一下。本帖從魚眼相機模型開始講起,包含Opencv API調參、基于畸變表的參數擬合、魚眼相機去畸變算法原理和C++實現。

1. 魚眼相機基礎

1.1 魚眼相機模型

b3bca714-e379-11ed-ab56-dac502259ad0.png魚眼相機模型經過P點的入射光線沒有透鏡的話,本應交于相機成像平面的e點。然而,經過魚眼相機的折射,光線會交于相機成像平面的d點,就產生了畸變,因此畸變圖像整體上呈現出像素朝圖像中心點聚集的態勢。而去畸變,就是將折射到d點的點,重新映射回到e點,因此去畸變之后的圖像與原始的魚眼圖像相比,仿佛是把向心聚集的像素又重新向四周鋪展開來。下表中的兩幅圖分別為魚眼圖和去畸變之后的展開圖:b3d3824a-e379-11ed-ab56-dac502259ad0.png魚眼相機的投影方式有很多種假設,例如等距投影、等立體角投影、正交投影、體視投影、線性投影。但是真實的魚眼相機鏡頭并不完全遵循上述的這些模型假設。因此Kannala-Brandt提出了一種一般形式的估計,適用于不同類型的魚眼相機:b3f6ec26-e379-11ed-ab56-dac502259ad0.png,這個也是納入opencv中的魚眼相機畸變模型。現在基本上默認魚眼相機模型遵循上述公式。公式中的 為光線入射角,r()為上圖中 od 的長度。

1.2 基于畸變表的擬合方法

每個相機都有它固定的相機參數,包含內參、畸變系數。可以使用特定的相機標定方法,得到這些相機參數。通常,我們可以使用相機在不同位置、不同角度對著標定板拍攝幾十張照片,然后用某種優化方法,計算出相機參數的最優解,例如張正友棋盤格標定法。然而,基于標定板的方法標定出的結果取決于光照是否充足、圖像序列是否充足、全部的標定板序列是否能夠充滿整個圖像幅面等因素。也就是說汽車標定的過程中需要人工擺放標定板的位置,指望算法工程師將產線上的工人培訓得和他們一樣專業顯然不現實。大部分標定車間都是車開到標定場中間,十幾秒標定出AVM系統所需要的參數,主要是4個魚眼相機的外參,而非相機本身的參數(內參、畸變系數)。大概幾十秒搞定一輛車,不可能有人工標定相機內參的過程。好在相機在出廠時廠家一般都會提供相機的必要參數
  • 內參
{"focal_length": 950,"dx": 3,"dy": 3,"cx": 640,"cy": 480},通過這些參數可以計算出內參矩陣:"intrinsic" : [316.66,0.0,640,0.0,316.66,480,0.0,0.0,1.0]內參計算公式:b4071e48-e379-11ed-ab56-dac502259ad0.png中間矩陣為內參計算公式
  • 畸變表
b41866c6-e379-11ed-ab56-dac502259ad0.png畸變表通過畸變表可以得到畸變前后像素坐標的映射關系:其中angle表示光線的入射角 ,Real_Image_Height表示入射光線經過魚眼相機透鏡折射(出射角為 )與成像平面的交點(畸變點)。opencv Kannala-Brandt模型與畸變表之間的差異為:
  • opencv Kannala-Brandt相機畸變模型描述的是光線的入射角與其經過折射后在相機歸一化平面上的投影點距離歸一化平面中心的距離r
  • 畸變表描述的是光線的入射角與其經過折射后在相機的真實的成像平面上的投影點距離成像中心的距離r
兩者之間相差一個系數focal_length。即,如果使用畸變表擬合opencv Kannala-Brandt數學公式中的畸變參數,必須已知相機焦距focal_length,注意:這個focal_length是實際的物理概念,正兒八經的相機焦距,而不是相機內參矩陣中的f/dx。尋找與r的關系,是一種曲線擬合的問題。畸變表中提供了數據和 r() ,擬合的多項式為:b42f3c84-e379-11ed-ab56-dac502259ad0.png具體的實現方法可以使用python的curve_fit函數,即可擬合出合適的k0,k1,k2,k3,k4系數。上面提到opencv Kannala-Brandt與廠家給的畸變表之間相差一個系數:focal_length,因此,在做曲線擬合的時候,要把這部分考慮進去:

	theta_input=data[:,0]*3.14/180 theta_fit=np.arctan(self.data[:,1]/0.95)#focal_lenth=0.95 distort_data,_=curve_fit(func1,theta_input,theta_fit) 綜上,我們通過曲線擬合的方法得到了畸變參數。

2 Opencv API 魚眼圖像去畸變方法

Opencv提供了基于Kannala-Brandt數學模型的魚眼去畸變方法: cv::initUndistortRectifyMap,該函數使用相機的內參和畸變參數計算出映射圖mapx和mapy。

2.1 基礎魚眼圖像去畸變

其中入參K為魚眼相機內參,D為,,, 畸變參數,R我們一般設置為單位陣,P為去畸變圖像的相機內參,size為輸出圖像的大小;map1,map2為輸出的映射圖。

	@paramKCameraintrinsicmatrixf$cameramatrix{K}f$. @paramDInputvectorofdistortioncoefficientsf$distcoeffsfisheyef$. @paramRRectificationtransformationintheobjectspace:3x31-channel,orvector:3x1/1x3 1-channelor1x13-channel @paramPNewcameraintrinsicmatrix(3x3)ornewprojectionmatrix(3x4) @paramsizeUndistortedimagesize. @paramm1typeTypeofthefirstoutputmapthatcanbeCV_32FC1orCV_16SC2.SeeconvertMaps() fordetails. @parammap1Thefirstoutputmap. @parammap2Thesecondoutputmap. */ CV_EXPORTS_WvoidinitUndistortRectifyMap(InputArrayK,InputArrayD,InputArrayR,InputArrayP, constcv::Size&size,intm1type,OutputArraymap1,OutputArraymap2); 相機內參矩陣表示如下,其中 表示相機焦距 f 與相機cmos參數 的比值,這個 的物理意義為每個像素的實際長度,單位可以是mm/像素。 表示相機主點,即光心與圖像平面相交的坐標,單位為像素。b43ed7b6-e379-11ed-ab56-dac502259ad0.png那么問題來了,為什么既需要魚眼相機的內參,又需要輸出圖像的相機內參呢,它們之間是什么關系呢?最開始的時候,很多同學肯定是把這兩個相機內參設置成一樣的,即都設置成魚眼相機的大小,如下圖所示。代碼中去畸變之后圖像的內參是從魚眼相機內參深拷貝過來的。

	cv::MatR=cv::eye(3,3,CV_32F); cv::Matmapx_open,mapy_open; cv::Matintrinsic_undis; fish_intrinsic.copyTo(intrinsic_undis); //intrinsic_undis.at<float>(0,2)*=2; //intrinsic_undis.at<float>(1,2)*=2; cv::initUndistortRectifyMap( fish_intrinsic,m_undis2fish_params,R,intrinsic_undis, cv::Size(intrinsic_undis.at<float>(0,2)*2, intrinsic_undis.at<float>(1,2)*2), CV_32FC1,mapx_open,mapy_open); cv::Mattest; cv::remap(disImg[3],test,mapx_open,mapy_open,cv::INTER_LINEAR); b45164bc-e379-11ed-ab56-dac502259ad0.png左側為魚眼圖,右側為去畸變圖

2.2 相機主點參數調節

我們發現,上圖中右側去畸變之后雖然圖像幅面大小與魚眼圖相同都是1280*960,但是可視范圍變得很小。標定所需要的大方格沒有包含進來。因此,需要進一步調參,下面代碼中將去畸變之后圖像相機參數中的主點 , 擴大為原來的兩倍,且initUndistortRectifyMap函數輸出的去畸變圖像大小size是與去畸變之后圖像相機參數主點相關的,也就是圖像大小同樣跟著放大了兩倍。記住一點:initUndistortRectifyMap函數中的size參數一般都是與去畸變之后圖像的相機參數中主點大小強相關的。這一點在后面C++代碼手撕算法流程時候會提到。

	cv::MatR=cv::eye(3,3,CV_32F); cv::Matmapx_open,mapy_open; cv::Matintrinsic_undis; fish_intrinsic.copyTo(intrinsic_undis); intrinsic_undis.at<float>(0,2)*=2; intrinsic_undis.at<float>(1,2)*=2; cv::initUndistortRectifyMap( fish_intrinsic,m_undis2fish_params,R,intrinsic_undis, cv::Size(intrinsic_undis.at<float>(0,2)*2, intrinsic_undis.at<float>(1,2)*2), CV_32FC1,mapx_open,mapy_open); cv::Mattest; cv::remap(disImg[3],test,mapx_open,mapy_open,cv::INTER_LINEAR); b48007a4-e379-11ed-ab56-dac502259ad0.png去畸變圖像相機參數的主點擴大了兩倍,同時生成圖像大小擴到兩倍從上圖中我們依然不能獲得到右側完整的黑色大方格,因此需要進一步擴大去畸變后圖像相機主點位置以及生成圖像的分辨率:

	cv::MatR=cv::eye(3,3,CV_32F); cv::Matmapx_open,mapy_open; cv::Matintrinsic_undis; fish_intrinsic.copyTo(intrinsic_undis); intrinsic_undis.at<float>(0,2)*=4; intrinsic_undis.at<float>(1,2)*=4; cv::initUndistortRectifyMap( fish_intrinsic,m_undis2fish_params,R,intrinsic_undis, cv::Size(intrinsic_undis.at<float>(0,2)*2, intrinsic_undis.at<float>(1,2)*2), CV_32FC1,mapx_open,mapy_open); cv::Mattest; cv::remap(disImg[3],test,mapx_open,mapy_open,cv::INTER_LINEAR); b4a3707c-e379-11ed-ab56-dac502259ad0.png現在我已經把去畸變圖像相機內參的主點擴大為fish相機內參的4倍了,生成圖像的長寬也放大了4倍,像素數量總體放大16倍,這樣才勉強把大方格完全顯示出來。我們知道提取角點需要用到圖像處理算法,顯然對這么大的圖像做處理的效率非常低。

2.3 相機f參數調節

到目前位置,我們只討論了相機參數中主點的調參,想要解決上述問題還需要調整相機的 ,先不說理論,直接看調參結果,這里我們代碼中只調整了去畸變圖像相機參數中的,使它們縮小為原來的1/4。

	cv::MatR=cv::eye(3,3,CV_32F); cv::Matmapx_open,mapy_open; cv::Matintrinsic_undis; fish_intrinsic.copyTo(intrinsic_undis); intrinsic_undis.at<float>(0,0)/=4; intrinsic_undis.at<float>(1,1)/=4; /*intrinsic_undis.at<float>(0,2)*=4; intrinsic_undis.at<float>(1,2)*=4;*/ cv::initUndistortRectifyMap( fish_intrinsic,m_undis2fish_params,R,intrinsic_undis, cv::Size(intrinsic_undis.at<float>(0,2)*2, intrinsic_undis.at<float>(1,2)*2), CV_32FC1,mapx_open,mapy_open); cv::Mattest; cv::remap(disImg[3],test,mapx_open,mapy_open,cv::INTER_LINEAR); b4bd8e76-e379-11ed-ab56-dac502259ad0.png左側為魚眼圖,右側為去畸變圖,分辨率均為1280*960從圖中可以看出,當我們僅將相機焦距縮小時,可以看到更多的東西。雖然去畸變之后的圖像很小只有1280*960,但是卻可以看到完整的方格。本節我們討論了opencv API initUndistortRectifyMap函數的主點和f參數調節對于去畸變圖像的影響,接下來的第3節,我們將會從去畸變算法原理入手,C++實現一波該算法。做這件事的原因很簡單:opencv只提供了整張圖像從undis2fish的映射,在avm的視角轉換中,我們需要進行單個像素點的undis2fish,因此,我們需要自己實現一波這個去畸變過程結論:縮小相機焦距可以使FOV增大,在更小分辨率的圖像上呈現出更多的內容,看上去也是更加清晰。

3 魚眼去畸變算法及其實現

b4f83030-e379-11ed-ab56-dac502259ad0.png畸變映射關系魚眼去畸變的算法實現就是遍歷去畸變圖像上的每一個點,尋找它們在魚眼圖像上的像素點坐標,計算它們之間的映射關系C++實現:

	/* func:warpfromdistorttoundistort @paramf_dx:f/dx @paramf_dy:f/dy @paramlarge_center_h:undisimagecentery @paramlarge_center_w:undisimagecenterx @paramfish_center_h:fishimagecentery @paramfish_center_w:fishimagecenterx @paramundis_param:factoryparam @paramx:inputcoordinatexontheundisimage @paramy:inputcoordinateyontheundisimage */ cv::Vec2fwarpUndist2Fisheye(floatfish_scale,floatf_dx,floatf_dy,floatlarge_center_h, floatlarge_center_w,floatfish_center_h, floatfish_center_w,cv::Vec4dundis_param,floatx, floaty){ f_dx*=fish_scale; f_dy*=fish_scale; floaty_=(y-large_center_h)/f_dy;//normalizedplane floatx_=(x-large_center_w)/f_dx; floatr_=static_cast<float>(sqrt(pow(x_,2)+pow(y_,2))); //Lookuptable /*intnum=atan(r_)/atan(m_d)*1024; floatangle_distorted=m_Lut[num];*/ floatangle_undistorted=atan(r_);//theta floatangle_undistorted_p2=angle_undistorted*angle_undistorted; floatangle_undistorted_p3=angle_undistorted_p2*angle_undistorted; floatangle_undistorted_p5=angle_undistorted_p2*angle_undistorted_p3; floatangle_undistorted_p7=angle_undistorted_p2*angle_undistorted_p5; floatangle_undistorted_p9=angle_undistorted_p2*angle_undistorted_p7; floatangle_distorted=static_cast<float>(angle_undistorted+ undis_param[0]*angle_undistorted_p3+ undis_param[1]*angle_undistorted_p5+ undis_param[2]*angle_undistorted_p7+ undis_param[3]*angle_undistorted_p9); //scale floatscale=angle_distorted/(r_+0.00001f);//scale=r_disonthecameraimgplane //divider_undisonthenormalizedplane cv::Vec2fwarp_xy; floatxx=(x-large_center_w)/fish_scale; floatyy=(y-large_center_h)/fish_scale; warpPointOpencv(warp_xy,fish_center_h,fish_center_w,xx,yy,scale); returnwarp_xy; } voidwarpPointOpencv(cv::Vec2f&warp_xy,floatmap_center_h,floatmap_center_w, floatx_,floaty_,floatscale){ warp_xy[0]=x_*scale+map_center_w; warp_xy[1]=y_*scale+map_center_h; } 針對上述代碼,我們由淺入深地講述算法流程

3.1 基礎的魚眼去畸變(主點相關)

b3bca714-e379-11ed-ab56-dac502259ad0.png魚眼相機成像模型上述代碼中令fish_scale為1,先討論最簡單的,即讓去畸變圖像相機參數中的, 大小與魚眼圖相同,對照魚眼相機模型這張圖和代碼,我們來梳理一下算法流程:算法流程
  1. 首先,對于圖像平面上的像素點,要用相機的內參f、dx、dy,將其轉化到歸一化平面,對應上圖中的e點。并計算其距離歸一化平面中心的距離r_。并計算對應的入射角,即上圖中的 theta角
  2. 根據Kannala-Brandt的魚眼模型公式,使用事先擬合的k1,k2,k3,k4參數計算歸一化平面上去畸變之后點的位置r_distorted
  3. 在歸一化平面上計算去畸變前后點位置的比值:r_distorted/r_
  4. 3中計算的比值為歸一化平面上,同樣可以應用到相機成像平面以及圖像平面上。因此,可以對圖像平面上的像素點,乘上這個系數,就得到了魚眼圖上像素點的位置。
對于算法流程中的3,4:b537bd22-e379-11ed-ab56-dac502259ad0.png總體來講這個基礎的魚眼去畸變算法的實現思路就是:在歸一化平面上計算去畸變前后的像素坐標scale,然后運用到圖像平面上。b555ada0-e379-11ed-ab56-dac502259ad0.png主點位置示意圖如上圖所示,輸出的去畸變圖大小為Size,去畸變圖相機內參中的主點位置為 ,在算法的實現中,首先會創建Size大小的mesh_grid,即map,確定主點的位置,然后根據mesh_grid上每個點的坐標,計算其與主點的相對位置,然后進行后續的計算(轉換到歸一化平面、計算scale等),因此根據這個邏輯如果上面的主點不在Size的中心,就會導致相機實際拍攝到內容的中心在主點區域,但是右下角會有很多的延申。例如下圖這種:b56b8486-e379-11ed-ab56-dac502259ad0.png從上圖原始的魚眼圖中可以看出相機拍攝的內容中心大概在棋盤格附近,然而去畸變了之后棋盤格卻跑到了左上角。這就是因為我們設置的主點偏左上,沒有位于生成的去畸變圖的中心。這就是2.2節中提到的:initUndistortRectifyMap函數中的size參數一般都是與去畸變之后圖像的相機參數中主點大小強相關的。

3.2 進階的 魚眼去畸變(如何調整f)

正如第2節所說,我們需要在很小的圖像上呈現出大方格。這就需要調整f,這個過程不太容易理解,我們畫個圖來理解一下:b589ad62-e379-11ed-ab56-dac502259ad0.png相機焦距調整示意圖上圖中相機的真實焦距為f,假設cmos長度不變,我們只是把成像平面放在了 f/2 的位置上,顯然調整焦距后的相機FOV更大,能夠看到的東西越多。同理,對于標定車間中的大方格,假設我們調參使得 , 縮小一定的倍數,理論上就可以看到更多的內容。b5a51f3e-e379-11ed-ab56-dac502259ad0.png將相機內參 f 縮小為 f/2 意味著我們將相機的cmos推導距離相機光心 f/2 處,在這個平面上做映射。算法流程如下:
  • 將相機焦距調整為 f/2 后,使用新的焦距將 點轉換到歸一化平面上去,得到
  • 使用去畸變參數 ,,, 計算其畸變狀態下在歸一化平面上的位置
  • 使用前兩步的結果,計算去畸變前后線段的長度比例scale
  • 根據已知的 與 前面計算的scale計算出
  • *2將點映射到 f 平面上,就得到了在 f/2 成像平面上的去畸變映射關系。
上述最后一步不太容易理解:實際真實的畸變圖像是在 f 平面上,也就是說我們算出了 f/2 平面上畸變圖上 點映射到去畸變后的位置 還不夠,還需要進一步找到真實的畸變圖上的坐標,也就是 f 平面上的位置 ,因為我們最后都是要去真正的畸變圖上找點的, f/2 平面只是我們虛構的,只是假設cmos在 f/2 平面上。這個圖中我們最后一步×2,假設我們想把相機內參設為 f/3 ,那最后一步要×3。總之一句話:f平面才是我們真實拿到的fish圖,我們最終還是要在這個原始的fish圖上找點。在實驗中我們得到結論:
  • 當我們調整 f 使其更小時,相同的內容集中于更小的分辨率上,對于后續的圖像處理算法會更友好。很多鋸齒和模糊的問題都能得到改善
  • 在魚眼上檢測棋盤格角點要比在去畸變圖上檢測棋盤格角點更加準確,因為去畸變后大方格被拉伸的很嚴重。這個結論的依據是重投影誤差以及將魚眼檢測到的角點坐標映射到去畸變圖上后與直接在畸變圖上的位置做視覺上的比較。

3.3 Opencv API undistortPoints的實現

前面所有討論的都是undis2fish的過程。在實際的AVM標定中,通常是對魚眼相機檢測角點,因為去畸變之后圖像拉伸效果嚴重,提取的角點不準確。參考張正友標定法標定相機參數時,也是在獲取到的圖像上直接提取角點,解一個全局優化問題。因此,除了前面講到的undis2fish映射過程以外,我們還需要實現fish2undis的過程。這個過程Opencv提供了函數undistortPoints,即輸入為魚眼相機上點的坐標,輸出為去畸變圖像上點的坐標。這個過程是一個解b5bbb848-e379-11ed-ab56-dac502259ad0.png方程的問題,用到非線性優化,速度很慢。因此我們通過畸變表,構建了一個多項式,通過反向擬合的方法,提前擬合出fish2undis的方程系數:

	#forward self.distor_para,_=curve_fit(self.func,self.data[:,0],self.data[:,1]) #inverse f_inverse_para,_=curve_fit(self.func_inverse,self.data[:,1],self.data[:,0]) 計算fish2undis的過程與undis2fish(3.1,3.2)的過程略有不同,但都是尋找  之間的映射關系,因為 f 平面才是我們真實拿到的fish圖,我們最終還是要在這個原始的fish圖上找點。b5ce122c-e379-11ed-ab56-dac502259ad0.png實現代碼:

	cv::Vec2fCalibrateInit::warpFisheye2Undist(floatfish_scale,floatf_dx,floatf_dy,floatundis_center_h, floatundis_center_w,floatfish_center_h, floatfish_center_w,cv::Vec4dundis_param,floatx, floaty){ //f_dx*=fish_scale; //f_dy*=fish_scale; floaty_=(y-fish_center_h)/f_dy;//normalizedplane floatx_=(x-fish_center_w)/f_dx; floatr_distorted=static_cast<float>(sqrt(pow(x_,2)+pow(y_,2))); floatr_distorted_p2=r_distorted*r_distorted; floatr_distorted_p3=r_distorted_p2*r_distorted; floatr_distorted_p4=r_distorted_p2*r_distorted_p2; floatr_distorted_p5=r_distorted_p2*r_distorted_p3; floatangle_undistorted=static_cast<float>(r_distorted+ undis_param[0]*r_distorted_p2+ undis_param[1]*r_distorted_p3+ undis_param[2]*r_distorted_p4+ undis_param[3]*r_distorted_p5); //scale floatr_undistorted=tanf(angle_undistorted); floatscale=r_undistorted/(r_distorted+0.00001f);//scale=r_disonthecameraimgplane //divider_undisonthenormalizedplane cv::Vec2fwarp_xy; floatxx=(x-fish_center_w)*fish_scale; floatyy=(y-fish_center_h)*fish_scale; warpPointInverse(warp_xy,undis_center_h,undis_center_w,xx,yy,scale); returnwarp_xy; } voidCalibrateInit::Vec2f&warp_xy,floatmap_center_h,floatmap_center_w, floatx_,floaty_,floatscale){ warp_xy[0]=x_*scale+map_center_w; warp_xy[1]=y_*scale+map_center_h; } 

總結

本貼討論的內容為魚眼相機圖像基于畸變表的處理方法,AVM中畸變的運用非常靈活,所以筆者必須對它進行實現才可以靈活運用。據筆者所知有些AVM供應商的魚眼畸變參數并不一定是依賴畸變表,有的也會拿來一批攝像頭自行標定。具體那種方法更優,可能需要更多同行同學的實驗和討論得到結論。b5e3e4ee-e379-11ed-ab56-dac502259ad0.png


審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模型
    +關注

    關注

    1

    文章

    3229

    瀏覽量

    48810
  • AVM
    AVM
    +關注

    關注

    0

    文章

    12

    瀏覽量

    10714
  • 相機成像
    +關注

    關注

    0

    文章

    15

    瀏覽量

    5644

原文標題:AVM環視系統:魚眼相機去畸變算法及實戰

文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    高速球的完美結合 全景的發展方向

    全景攝像機是對現有監控系統的改造與升級。在全景監控系統中,只需要一臺
    發表于 08-07 10:21

    環視全景攝像頭應用在那些場合和起到作用有哪些

    ,技術上有其局限性,如上文所述的圖像失真等問題,以及環視全景攝像頭的超廣角效果,雖然能監控大范圍面積,但相對來說,它的焦距很短,使得偵測范圍大受限制,大約在半徑5米內可以看清人臉,更遠的話就會顯得模糊
    發表于 05-23 10:30

    一種新的圖像匹配策略

    相機具有較大的視角,已在視覺監控等領域得到了較為廣泛的應用。圖像具有嚴重的畸變
    發表于 01-15 11:37 ?22次下載

    汽車環視系統設計完整硬件平臺設計方案

    一、項目背景 1.1 研究背景 本項目研究內容是開展汽車環視系統((AVM)技術與產品的研究與開發,通過駕駛員實時實景環視輔助系統,提高汽車
    發表于 11-20 15:34 ?19次下載
    汽車<b class='flag-5'>環視</b><b class='flag-5'>系統</b>設計完整硬件平臺設計方案

    相機與PTZ相機相結合的主從目標監控系統

    提出了一種將相機和PTZ相機相結合的主從目標監控系統,充分利用
    發表于 11-22 17:39 ?6次下載
    <b class='flag-5'>魚</b><b class='flag-5'>眼</b><b class='flag-5'>相機</b>與PTZ<b class='flag-5'>相機</b>相結合的主從目標監控<b class='flag-5'>系統</b>

    KUS集團目前已研發出3D AVM全景環視系統

    3D AVM 全景環視系統,在汽車所有視場范圍安裝4到8個廣角攝像頭,收集同一時刻的多路視頻影像,處理成一幅360°的鳥瞰圖。通過中控顯示屏進行顯示,讓駕駛員直觀、清晰查看車輛周邊路況信息。幫助駕駛員輕松停泊車輛,并有效減少刮蹭
    的頭像 發表于 08-22 10:26 ?4161次閱讀

    基于可變形卷積網絡的圖像目標檢測方法

      環視圖像具有目標形變大和圖像失真的缺點,導致傳統網絡結構在對圖像進行目標檢測時效果不佳。為解決
    發表于 04-27 16:37 ?4次下載
    基于可變形卷積網絡的<b class='flag-5'>魚</b><b class='flag-5'>眼</b>圖像目標檢測方法

    基于除法畸變模型的鏡頭線性標定方法

    針對眼鏡頭的高精度標定需求,提岀一種基于除法畸變模型的線性標定方法。通過除法模型將題轉換為線性方程組求解問題相機畸變中心后對畸變方程矩陣進
    發表于 05-19 11:39 ?7次下載

    相機的成像原理與成像模型解析

    相機為了將盡可能大的真實世界投影到有限的成像平面內,相機允許了
    的頭像 發表于 09-26 10:06 ?5487次閱讀

    自動分析儀——薄膜檢測系統

    自動分析儀是對樹脂塑料薄膜大小和數量進行檢測分析后統計缺陷的數量級分布的
    的頭像 發表于 12-26 16:14 ?1047次閱讀
    <b class='flag-5'>魚</b><b class='flag-5'>眼</b>自動分析儀——薄膜<b class='flag-5'>魚</b><b class='flag-5'>眼</b>檢測<b class='flag-5'>系統</b>

    一種基于相位靶標的攝像機標定迭代畸變補償算法

    相機畸變是影響相機標定精度的關鍵因素。由于畸變補償不準確,傳統的標定方法不能滿足要求較高標定精度的測量系統的要求。本文提出了一種基于迭代
    的頭像 發表于 01-05 10:18 ?1348次閱讀

    AVM系統算法框架搭建的方法

    AVM(Around View Monitor),中文:全景環視系統AVM已經是一種較為成熟的技術,中高端車型均有部署,但詳細講述AVM
    的頭像 發表于 05-15 15:24 ?844次閱讀
    <b class='flag-5'>AVM</b><b class='flag-5'>系統</b><b class='flag-5'>算法</b>框架搭建的方法

    ESP32CAM-PSRAM廣角圖像識別開發板

    隨著虛擬現實、全景相機等應用的發展,攝像機的應用也隨之越來越多。而相對于傳統攝像機,M5Stack的
    的頭像 發表于 07-31 18:40 ?1891次閱讀
    ESP32CAM-PSRAM<b class='flag-5'>魚</b><b class='flag-5'>眼</b>廣角圖像識別開發板

    關于相機標定的畸變與矯正的分享

    在目標追蹤任務中,通常的球機或者槍機方案,無法避免人群遮擋的問題,從而導致較高的ID Swich,造成追蹤不穩定。
    的頭像 發表于 10-18 14:24 ?3299次閱讀
    關于<b class='flag-5'>魚</b><b class='flag-5'>眼</b><b class='flag-5'>相機</b>標定的<b class='flag-5'>畸變</b>與矯正的分享

    360全景環視原理說明

    總述全景環視系統是通過安裝在汽車前、后、左、右四個廣角攝像頭采集的車輛四周的實時畫面,通過攝像頭內參標定,外參標定,圖像畸變矯正,全景模
    發表于 01-17 09:51 ?24次下載
    主站蜘蛛池模板: 538在线播放| 中文字幕精品在线视频| 午夜理论片YY4399影院| 草莓视频在线看免费高清观看| 2020国产成人免费视频| 99爱在线观看精品视频| 啊好深啊别拔就射在里面| 俄罗斯XXXXXL18| 国产精品久久久久影院 | 亚洲午夜久久久精品电影院 | 午夜AV亚洲一码二中文字幕青青| 亚州视频一区| 一亲二脱三插| a视频免费看| 国产精品1区在线播放| 精品国产乱码久久久久久乱码| 久久精品视在线观看2| 女性BBWBBWBBWBBW| 手机精品在线| 亚洲综合AV色婷婷五月蜜臀| 99久久精品国产亚洲AV| 国产AV视频二区在线观看| 韩国女人高潮嗷嗷叫视频| 美女18毛片免费视频| 日韩高清一区二区三区不卡| 亚洲不卡视频| 97久久精品视频| 国产Av影片麻豆精品传媒| 精品一区二区三区免费观看| 披黑人猛躁10次高潮| 亚洲国产在线精品国自产拍五月| 最新在线黄色网址| 国产XXXXXX农村野外| 久久精品电影| 日韩精品专区在线影院重磅| 亚洲中文久久精品AV无码| yellow日本动漫高清| 精品三级久久久久电影网1| 人妖欧美一区二区三区四区| 亚洲免费一区| 冰山高冷受被c到哭np双性|