JVET专家组下360Lib全景视频投影格式测试平台_jvet官方网站-程序员宅基地

技术标签: 全景视频  多媒体  JVET  360Lib  

最近在学习JVET下的360Lib测试平台。

不多废话,先把网址贴出来,再谈详细的……

JVET主页:https://jvet.hhi.fraunhofer.de/

JVET测试平台:https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/

360Lib测试平台:https://jvet.hhi.fraunhofer.de/svn/svn_360Lib/

JVET与H.266编码技术:http://blog.csdn.net/fan2273/article/details/79527249

下载:https://download.csdn.net/download/fan2273/10281796


首先,简单介绍一下JVET专家组。

了解视频编解码的,应该都知道MPEG专家组。MPEG专家组负责研究、制定、维护业界的视频图像领域标准与规范,沿用至今的许多视频编码格式都是由他们制定。

MPEG专家组下,亦有很多个不同方向的分支小组,分别负责细致领域的研究。其中,HEVC(H.265)便是由MPEG和VCEG的视频组联合开发的项目。

JVET与HEVC很像,他同样是由MPEG和VCEG专家组组成的一个项目、研究小组。HEVC研发维护的是H.265编码技术,而JVET则同时维护研发两套方案和平台。

JVET,全称联合视频探索小组,是未来视频压缩、编解码技术的研究小组。JVET负责研发、维护JEM(H.266)测试平台与360Lib(全景投影)测试平台。

H.266是在H.265基础上发展的新一代视频压缩技术。其压缩率比H.265提高20%,但复杂度亦提升了数倍。像HEVC提供的H.265测试平台HM(HEVC Model)一样,JVET针对H.266提供了JEM测试平台,以供研究者对H.266压缩编解码技术进行测试与研究。


由于重点在于360Lib,因此,关于JVET的JEM平台,这里不做过多展开,相关的介绍可以在项目内文档与官方站点中找到。


360Lib

360Lib是JVET针对全景视频的测试平台(软件)。

360Lib在JVET下由Subversion代码托管维护。使用者需下载Subversion客户端,进行代码下载与版本控制。

360Lib主要完成的是全景视频的投影工作。360Lib可作为插件,集成到HM与JEM之中,亦可单独运行。其中区别主要在于,转换投影后,可直接送入压缩编码而不再产生中间YUV,节省中间段时间。

在介绍360Lib之前,先需要和大家说一下全景视频的整一套采集到显示的流程。

一般全景视频的采集流程为:

采集——拼接——投影——压缩编码——封装

播放流程为:

解码——反投影——显示

360Lib主要完成的是“投影”与“反投影”这一步的工作。而“压缩编码”与“解码”则是由HM(H.265)或JEM平台(H.266)完成。

现在流行广泛的全景视频,基本是ERP(圆柱投影)格式,而在全景视频研究领域,投影格式有上十种之多,其中各有优劣,在这里不过多展开。

关于全景视频投影格式的相关介绍,推荐一下的博客中进行了解:

http://blog.csdn.net/lin453701006/article/category/6526713

由于不同投影格式在压缩比和画质重现上,有各自的优缺点,因此面对不同的使用场景,便出现了不同的选择方案。同时,由于全景视频发展迅速,然而仍未有较为统一的标准制定与产生。

JVET小组,将现行市场广泛运用的ERP投影格式,选作为基本参考投影格式(并非标准)。同时选择了约十种左右的格式为官方参考格式(在16年11月会议中卫7种,17年会议中更新),在360Lib中提供了转换模型。

360Lib使用者需认识到,360Lib测试平台仅作为研究平台使用。同时由于目前主流投影为ERP圆柱投影,因此,大多数播放器并不支持其他投影格式的播放显示。在进行投影格式转换、压缩测试的时候,需注意最终输出投影格式的问题。

360Lib说明文档:

该软件平台的说明文档一共有两份。一份为软件使用说明README,一份为JVET发布的360Lib指导手册。

README在项目根目录下,主要描述了如何build工程与如何进行命令行操作。

注意:请根据360Lib中的README文档,将360Lib的源码按说明,拷贝到JEM或HM的源码工程下目录,用360Lib中的vc工程发布构建。否则,直接使用360Lib的源码构建工程是无法得到纯360Lib APP的。必须需要和JEM或者HM搭配构建,即使你只要投影转换的360LibConvert也是!

manual文件为pdf文件在doc文件夹下,该文档主要介绍了JVET专家组最近一次会议上关于360Lib的参考规范制定与说明。该文档中有较多关于投影格式、评价模型的介绍叙述,适合研究者阅读学习。

360Lib基本操作:

首先,360Lib可以作为插件嵌入HM和JEM平台,也可以单独使用。

嵌入HM和JEM平台的步骤,请参考Subversion节点下的说明文档,选择与360Lib对应版本的HM与JEM,并使用Subversion补丁,进行项目的升级。(具体步骤,在官方文档中比较详细,且暂时未遇到错误与难点,这里不展开了)

若将360Lib与HM或JEM配合使用,请参考README文档中的命令行参数。

关于HM和JEM的配置文件设置与使用手册,推荐雷神的博客:

http://blog.csdn.net/leixiaohua1020/article/category/5974711

这里主要说一下,360Lib单独进行投影转换的使用方法。

README原文如下:

For the standalone application TApp360Convert, the example configuration files are in ./cfg-360Lib/360Lib
./bin/TApp360Convert -c ./cfg-360Lib/360Lib/360convert_ERP_Cubemap3x2.cfg -c ./cfg-360Lib/per-sequence/360/360test_Trolley.cfg -i ./test_seq/Trolley_8192x4096_30fps_8bit_420_erp.yuv -f 1 -o CMP3x2FromERP.yuv 

说明:

该部分描述了进行360Lib+HM(JEM)测试的必要步骤

1.一份基于YUV序列的cfg配置参数文件:

该文件格式如下:

#======== File I/O ===============
InputFile                     : xxxxxxxxx.yuv
InputBitDepth                 : 8           # Input bitdepth
InputChromaFormat             : 420         # Ratio of luminance to chrominance samples
FrameRate                     : 30          # Frame Rate per second
FrameSkip                     : 0           # Number of frames to be skipped in input
SourceWidth                   : 4096         # Input  frame width
SourceHeight                  : 2048         # Input  frame height
FramesToBeEncoded             : 300         # Number of frames to be coded


Level                         : 5.2

请将文件名、分辨率、深度、帧数(进行编码的帧数,非总帧数)调整为对应测试序列的相关属性。

官方提供了cfg格式作文参考,在../cfg-360Lib/per-sequence/360中

2.一份转换投影格式的cfg文件

该文件位于../cfg-36Lib/360Lib中,命名方式为360convert_from_to_cfg。具体转换请参考manual文档。

3.测试序列地址

4.转换帧数

360Lib单独使用的时候,在命令行中输入转码的帧数

360Lib+HM(JEM)使用时,在测试序列的配置文件中指定编码帧数

5.输出文件

命令行参数解析如下:

TApp360Convert

-c 360convert_ERP_Cubemap3x2.cfg投影转换cfg

-c 360test_Trolley.cfg序列cfg

-i Trolley.yuv输入序列

-f 1帧数

-o CMP3x2FromERP.yuv 输出序列


推荐,转换前,先使用YUV分析软件,确定YUV序列的色彩空间和总帧数。


命令行打印:

FaceSizeAlignment must be even for chroma 4:2:0 format, it is reset to 2.
CompactCodingFPFormat is automatically disabled for source video because it is only supported for OHP and ISP
CompactCodingFPFormat is automatically disabled for output video because it is only supported for OHP and ISP


Input          File                    : J:\test_seq\Dianying.yuv
Output         File                    : cubemap_3840x2880x8_cf1.yuv
Reference      File                    : NULL
SphFile        File                    : sphere_655362.txt
ViewPortFile   File                    : NULL
DynViewPortFile                        : NULL
SpherePointsFile File                  : NULL
Real     Format                        : 3840x2880 30Hz
Internal Format                        : 3840x2880 30Hz
Frame index                            : 0 - 1 (2 frames)
Input bit depth                        : (Y:8, C:8)
Internal bit depth                     : (Y:8, C:8)
Output bit depth                       : (Y:8, C:8)
Reference bit depth                    : (Y:8, C:8)


-----360 Video Parameters----
InputGeometryType: Equirectangular
ChromaFormat:1 Resolution:4096x2048xF1 FPStructure:1x1 | Id_0(R_0)  |


CodingGeometryType: Cubemap
ChromaFormat:1 Resolution:960x960xF6 FPStructure:4x3 | Id_2(R_90) Id_6(R_0) Id_7(R_0) Id_8(R_0)  | Id_1(R_0) Id_4(R_0) Id_0(R_0) Id_5(R_0)  | Id_3(R_270) Id_9(R_0) Id_10(R_0) Id_11(R_0)  |


Packed frame resolution: 3840x2880 (Input face resolution:960x960)
Interpolation method for luma: 5, interpolation method for chroma: 4
ChromaSampleLocType: 2


                   Input ChromaFormatIDC =   4:2:0
                Internal ChromaFormatIDC =   4:2:0 ChromaResample: 0
                  Output ChromaFormatIDC =   4:2:0


Frame#


Frame:0
Frame:1
 Total Time:       47.935 sec.


360Lib+HM使用:

首先,如果上面的步骤执行无误,说明你应该知道如何使用subversive代码托管,将360Lib的补丁打进HM平台或

JEM平台中。

关于360Lib结合HM的使用说明,在HM的doc文件夹中。结合使用依然需要参照360Lib中的README手册,并使用

cfg-360Lib文件夹中的配置文件。

首先,这里简单说一下单独使用360Lib和结合HM使用的具体区别。

HM及JEM,是一套编解码测试平台。在博文开头也比较详细的介绍了。

360Lib单独使用,可以将原始帧序列YUV文件在不同的投影格式之间转换,输出的文件依然是YUV,仅投影方式不同。

360Lib+HM使用,则是将ERP投影格式(默认输入投影格式),转换为其余投影格式,紧接着进行编码。

此时,这个转换投影+编码的过程,将不会输出中间YUV文件,而是直接生成编码后的.bin文件。

关于,360Lib+HM使用,能否使用其他投影格式YUV作为输入,暂时未找到解决方案(对HM平台仍在学习中,理论

上是可以直接进行编码的,但可能存在视窗、视点等问题)。

总的来说,360Lib+HM,输入为ERP格式YUV帧序列,进行指定的投影转换(cfg文件决定),输出编码后的.bin码流。

使用目标:

总的来说,360Lib是一个进行投影格式转换的程序或平台。

而360Lib+HM,则更偏向研究工作。

除了完成HM(JEM)的编码压缩工作,平台还将完成各种测试参数的评估(各种PSNR的计算),用以进行研究评估

,以下将放出详细的报表。

360Lib+HM的报表:

用例为1帧数据,WS-PSNR为JVET在JVET-D0040WS-PSNR for360 video objective quality evaluation

中提出关于评估360全景视频的信噪比的标准。

TAppEncoder.exe -c J:\cfg-360Lib\HM-16.14\encoder_randomaccess_main10.cfg -c J:\cfg-360Lib\encoder_360_ERP.cfg -c J:\cfg-360Lib\per-sequence\360\custom\360test_Dianying.cfg -c J:\cfg-360Lib\per-sequence\360\custom\360test_Dianying_DynamicViewports.cfg --SphFile=J:\cfg-360Lib\360Lib\sphere_655362.txt -i J:\test_seq\Dianying.yuv --CodingFaceWidth=2048 --CodingFaceHeight=1024 --IntraPeriod=32 -b HM_test.bin --SEIDecodedPictureHash=1  -o '' -q 27


HM software: Encoder Version [16.15] (including RExt)[Windows][VS 1900][32 bit]


CompactCodingFPFormat is automatically disabled for source video because it is only supported for OHP and ISP
CompactCodingFPFormat is automatically disabled for output video because it is only supported for OHP and ISP


Input          File                    : J:\test_seq\Dianying.yuv
Bitstream      File                    : HM_test.bin
Reconstruction File                    : ''
Real     Format                        : 2048x1024 30Hz
Internal Format                        : 2048x1024 30Hz
Sequence PSNR output                   : Linear average only
Sequence MSE output                    : Disabled
Frame MSE output                       : Disabled
Cabac-zero-word-padding                : Enabled
Frame/Field                            : Frame based coding
Frame index                            : 0 - 0 (1 frames)
Profile                                : main10
CU size / depth / total-depth          : 64 / 4 / 4
RQT trans. size (min / max)            : 4 / 32
Max RQT depth inter                    : 3
Max RQT depth intra                    : 3
Min PCM size                           : 8
Motion search range                    : 256
Intra period                           : 32
Decoding refresh type                  : 1
QP                                     : 27
Max dQP signaling depth                : 0
Cb QP Offset                           : 0
Cr QP Offset                           : 0
QP adaptation                          : 0 (range=0)
GOP size                               : 16
Input bit depth                        : (Y:8, C:8)
MSB-extended bit depth                 : (Y:8, C:8)
Internal bit depth                     : (Y:10, C:10)
PCM sample bit depth                   : (Y:8, C:8)
Intra reference smoothing              : Enabled
diff_cu_chroma_qp_offset_depth         : -1
extended_precision_processing_flag     : Disabled
implicit_rdpcm_enabled_flag            : Disabled
explicit_rdpcm_enabled_flag            : Disabled
transform_skip_rotation_enabled_flag   : Disabled
transform_skip_context_enabled_flag    : Disabled
cross_component_prediction_enabled_flag: Disabled
high_precision_offsets_enabled_flag    : Disabled
persistent_rice_adaptation_enabled_flag: Disabled
cabac_bypass_alignment_enabled_flag    : Disabled
log2_sao_offset_scale_luma             : 0
log2_sao_offset_scale_chroma           : 0
Cost function:                         : Lossy coding (default)
RateControl                            : 0
WPMethod                               : 0
Max Num Merge Candidates               : 5


TOOL CFG: IBD:1 HAD:1 RDQ:1 RDQTS:1 RDpenalty:0 LQP:0 SQP:0 ASR:0 MinSearchWindow:8 RestrictMESampling:0 FEN:1 ECU:0 FDM:1 CFM:0 ESD:0 RQT:1 TransformSkip:1 TransformSkipFast:1 TransformSkipLog2MaxSize:2 Slice: M=0 SliceSegment: M=0 CIP:0 SAO:1 PCM:0 TransQuantBypassEnabled:0 WPP:0 WPB:0 PME:2  WaveFrontSynchro:0 WaveFrontSubstreams:1 ScalingList:0 TMVPMode:1 AQpS:0 SignBitHidingFlag:1 RecalQP:0


-----360Lib software version [2.1]-----
-----360 video parameters----
SphereVideo:1
InputGeometryType: Equirectangular
ChromaFormat:1 Resolution:4096x2048xF1 FPStructure:1x1 | Id_0(R_0)  |
Compact type: 0


CodingGeometryType: Equirectangular
ChromaFormat:1 Resolution:2048x1024xF1 FPStructure:1x1 | Id_0(R_0)  |
Compact type: 0


Packed frame resolution: 2048x1024 (Input face resolution:2048x1024)
Interpolation method for luma: 5, interpolation method for chroma: 4
ChromaSampleLocType: 2
Input ChromaFormatIDC: 1; Internal ChromaFormatIDC: 1, ChromaResample: 0; Output ChromaFormatIDC: 1
Internal bit depth for projection conversion: 10, output bit depth from pejction conversion: 10


End to end S-PSNR-NN is enabled; SphFile file: J:\cfg-360Lib\360Lib\sphere_655362.txt
WS-PSNR is enabled
End to end S-PSNR-I is enabled; SphFile file: J:\cfg-360Lib\360Lib\sphere_655362.txt
End to end CPP-PSNR is enabled
End to end WS-PSNR is enabled
Static ViewPort PSNR calculation is not enabled!
ViewPort parameters for dynamic ViewPort PSNR calculation:
Number of viewports: 2, Resolutoin:856x856
Dyanmic viewport 0, hFOV:75.00, vFOV:75.00
Start viewport setting(POC_0): 75.00 -18.00; End viewport setting(POC_299): 165.00 12.00
Dyanmic viewport 1, hFOV:75.00, vFOV:75.00
Start viewport setting(POC_0): 104.00 -44.00; End viewport setting(POC_299): 194.00 -14.00
Cross-format S-PSNR-NN is enabled; SphFile file: J:\cfg-360Lib\360Lib\sphere_655362.txt
Cross-format S-PSNR-I is enabled; SphFile file: J:\cfg-360Lib\360Lib\sphere_655362.txt
Cross-format CPP-PSNR is enabled
-----360 video parameters----




Non-environment-variable-controlled macros set as follows:


                                RExt__DECODER_DEBUG_BIT_STATISTICS =   0
                                      RExt__HIGH_BIT_DEPTH_SUPPORT =   0
                            RExt__HIGH_PRECISION_FORWARD_TRANSFORM =   0
                                        O0043_BEST_EFFORT_DECODING =   0
                                         ME_ENABLE_ROUNDING_OF_MVS =   1


                   Input ChromaFormatIDC =   4:2:0
       Output (internal) ChromaFormatIDC =   4:2:0


POC    0 TId: 0 ( I-SLICE, nQP 24 QP 24 )     272056 bits [Y 48.2661 dB    U 48.7034 dB    V 49.8522 dB] [Y-WSPSNR 48.1169 dB   U-WSPSNR 48.6066 dB   V-WSPSNR 49.8494 dB] [Y-E2ESPSNR_NN 45.9106 dB    U-E2ESPSNR_NN 48.3878 dB    V-E2ESPSNR_NN 49.7914 dB] [Y-E2ESPSNR_I 46.1230 dB    U-E2ESPSNR_I 48.6015 dB    V-E2ESPSNR_I 50.0147 dB] [Y-E2ECPPPSNR 46.0824 dB   U-E2ECPPPSNR 48.6018 dB   V-E2ECPPPSNR 50.0001 dB] [Y-E2EWSPSNR 45.9425 dB   U-E2EWSPSNR 48.3623 dB   V-E2EWSPSNR 49.7785 dB] [Y-PSNR_DYN_VP0 49.3957 dB   U-PSNR_DYN_VP0 50.7293 dB   V-PSNR_DYN_VP0 51.8196 dB] [Y-PSNR_DYN_VP1 48.1459 dB   U-PSNR_DYN_VP1 51.2552 dB   V-PSNR_DYN_VP1 51.9641 dB] [Y-CFSPSNR_NN 41.6981 dB    U-CFSPSNR_NN 48.3675 dB    V-CFSPSNR_NN 49.7301 dB] [Y-CFSPSNR_I 46.1212 dB    U-CFSPSNR_I 48.5947 dB    V-CFSPSNR_I 50.0079 dB] [Y-CFCPPPSNR 45.9948 dB   U-CFCPPPSNR 48.6128 dB   V-CFCPPPSNR 50.0154 dB] [ET   236 ] [L0 ] [L1 ] [MD5:e58ae63a162a697dfdf1542f1cdf6f95,66d439a373c0406470b8caa240f1f6d7,4dc55a15852ccba83ac1ebebf3805bbf]




SUMMARY --------------------------------------------------------
        Total Frames |   Bitrate     Y-PSNR    U-PSNR    V-PSNR    YUV-PSNR  Y-WSPSNR  U-WSPSNR  V-WSPSNR    Y-E2ESPSNR_NN U-E2ESPSNR_NN V-E2ESPSNR_NN  Y-E2ESPSNR_I  U-E2ESPSNR_I  V-E2ESPSNR_I   Y-E2ECPPPSNR  U-E2ECPPPSNR  V-E2ECPPPSNR   Y-E2EWSPSNR U-E2EWSPSNR V-E2EWSPSNR  Y-PSNR_DYN_VP0 U-PSNR_DYN_VP0 V-PSNR_DYN_VP0  Y-PSNR_DYN_VP1 U-PSNR_DYN_VP1 V-PSNR_DYN_VP1  Y-CFSPSNR_NN U-CFSPSNR_NN V-CFSPSNR_NN  Y-CFSPSNR_I U-CFSPSNR_I V-CFSPSNR_I  Y-CFCPPPSNR  U-CFCPPPSNR  V-CFCPPPSNR
                1    a    8161.6800   48.2661   48.7034   49.8522   48.5671  48.1169   48.6066   49.8494     45.9106       48.3878       49.7914        46.1230       48.6015       50.0147        46.0824       48.6018       50.0001        45.9425     48.3623     49.7785      49.3957        50.7293        51.8196         48.1459        51.2552        51.9641         41.6981      48.3675      49.7301       46.1212     48.5947     50.0079      45.9948      48.6128      50.0154




I Slices--------------------------------------------------------
        Total Frames |   Bitrate     Y-PSNR    U-PSNR    V-PSNR    YUV-PSNR  Y-WSPSNR  U-WSPSNR  V-WSPSNR    Y-E2ESPSNR_NN U-E2ESPSNR_NN V-E2ESPSNR_NN  Y-E2ESPSNR_I  U-E2ESPSNR_I  V-E2ESPSNR_I   Y-E2ECPPPSNR  U-E2ECPPPSNR  V-E2ECPPPSNR   Y-E2EWSPSNR U-E2EWSPSNR V-E2EWSPSNR  Y-PSNR_DYN_VP0 U-PSNR_DYN_VP0 V-PSNR_DYN_VP0  Y-PSNR_DYN_VP1 U-PSNR_DYN_VP1 V-PSNR_DYN_VP1  Y-CFSPSNR_NN U-CFSPSNR_NN V-CFSPSNR_NN  Y-CFSPSNR_I U-CFSPSNR_I V-CFSPSNR_I  Y-CFCPPPSNR  U-CFCPPPSNR  V-CFCPPPSNR
                1    i    8161.6800   48.2661   48.7034   49.8522   48.5671  48.1169   48.6066   49.8494     45.9106       48.3878       49.7914        46.1230       48.6015       50.0147        46.0824       48.6018       50.0001        45.9425     48.3623     49.7785      49.3957        50.7293        51.8196         48.1459        51.2552        51.9641         41.6981      48.3675      49.7301       46.1212     48.5947     50.0079      45.9948      48.6128      50.0154




P Slices--------------------------------------------------------
        Total Frames |   Bitrate     Y-PSNR    U-PSNR    V-PSNR    YUV-PSNR
                0    p    -nan(ind)  -nan(ind)  -nan(ind)  -nan(ind)  -nan(ind)




B Slices--------------------------------------------------------
        Total Frames |   Bitrate     Y-PSNR    U-PSNR    V-PSNR    YUV-PSNR
                0    b    -nan(ind)  -nan(ind)  -nan(ind)  -nan(ind)  -nan(ind)


RVM: 0.000
Bytes written to file: 34064 (8175.360 kbps)


 Total Time:      446.559 sec.


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fan2273/article/details/77836660

智能推荐

Android底部弹窗的一些实现_安卓开发底部pop-程序员宅基地

文章浏览阅读7.4k次。本文主要是依照一些实际的开发经验,然后,总结一些是些安卓底部弹窗的一些实现的方法与思路,希望可以给你带来一些参考,能为您的开发带来一些灵感。可能自己经验还不是很足,目前所了解的实现底部弹窗的一些方式: 1.PopupWindow实现底部弹窗 2.dialog实现底部弹窗 3.dialogFragment实现底部弹窗 4.BottomSheetDialog实现底部弹窗接下来,就利用以上四种方式_安卓开发底部pop

计算机毕业设计选题分享-springboot电子文档交易系统04928(赠送源码数据库)JAVA、PHP,node.js,C++、python,大屏数据可视化等-程序员宅基地

文章浏览阅读946次,点赞28次,收藏18次。免费领取项目源码,请关注赞收藏并私信博主,谢谢-电子文档交易系统采取Mysql作为后台数据的主要存储单元,运用软件工程原理和开发方法,采用springboot的Java技术构建的一个管理系统,实现了本系统的全部功能。完成系统的主要模块的页面设计和功能实现。本文展示了首页页面的实现效果图,并通过代码和页面介绍了用户注册功能、文档分类、文档共享、付费文档、文档购买等功能的实现过程。

Win10环境下通过Qt(c++)结合dlib库,实现人脸识别并统计现图像中人脸数量,ui界面化_dlib qt-程序员宅基地

文章浏览阅读1.1k次。在win10平台,通过Qt5.12以及Dlib库,制作一个UI界面用于,实现人脸识别并统计现图像中人脸数量。该界面能够显示当前识别的图像,并显示当前图像中的人脸的个数。本实验目的在于,实现dlib库在win10平台的Qt上运行,不同于在python环境下的dlib库的使用,直接就能直接调用,非常简单便捷。在Qt(C++)中调用dlib,需要在相应的平台下先编译dlib源码,进行相关配置,在这之间还是遇到了不少的坑,本篇博客稍微记录一下。_dlib qt

ArcGIS API for Javascript加载各种来源的wms和wmts服务_arcgis js api wmts-程序员宅基地

文章浏览阅读1.5k次。1、加载wmts服务-使用WebTileLayer方式加载2、加载wms图层-使用BaseDynamicLayer方式加载_arcgis js api wmts

qt实现模拟路由器网络-建模课设_qt模拟实现小型城市组网-程序员宅基地

文章浏览阅读869次。说在前面首先,不是真的路由器,只是一些节点,但是使用的是OSPF协议,主要就是建立了一百多个节点,然后形成了一个连通图网络(深搜形成),接着找到最重要的十个节点(邻居最多的),最后输出这十个节点的路由表(老师的要求是路由表要有目的地,下一跳,以及路径长)。具有的功能直接看下面的截图就知道了。截图蓝色的就是最重要的十个节点这是十个路由器的路由表文件下一跳ip,目的地ip,路径,ip前三个数是乱写的,第四个是节点编号.h文件#ifndef MAINWINDOW_H#define MAINWI_qt模拟实现小型城市组网

python智慧交通大数据系统 实时监控 Flask框架 可视化(源码)_python技术在智慧交通大树后监控平台中的实时监控应用研究-程序员宅基地

文章浏览阅读905次,点赞23次,收藏11次。python智慧交通大数据系统 实时监控 Flask框架 可视化(源码)_python技术在智慧交通大树后监控平台中的实时监控应用研究

随便推点

ubuntu卸载显卡驱动和cuda_在乌班图安全模式下能删除显卡吗-程序员宅基地

文章浏览阅读1.7k次。2.卸载驱动sudo apt-get --purge remove nvidia*sudo apt autoremoveTo remove CUDA Toolkit:$ sudo apt-get --purge remove “cublas” “cuda*”To remove NVIDIA Drivers:$ sudo apt-get --purge remove “nvidia”..._在乌班图安全模式下能删除显卡吗

Silverlight/WPF/WP7一周学习导读(11月29日-12月5日)-程序员宅基地

文章浏览阅读55次。在学习总结前,让我们先来回顾一下上周Silverlight/WPF/WP7业界新鲜事。1. Silverlight 5 Beta新特性演示以及预告上周最令人激动的消息应该算是微软发布Silverlight 5 Beta新特性预告,如果你错过了FireStarter大会,可以通过这里查看Silverlight5新功能详细说明 -微软发布Silverlig...

Java 基础常见知识点&面试题总结(上),2022 最新版!_2022java面试需要会的知识点-程序员宅基地

文章浏览阅读152次。 拓展一下:“Write Once, Run Anywhere(一次编写,随处运行)”这句宣传口号,真心经典,流传了好多年!以至于,直到今天,依然有很多人觉得跨平台是 Java 语言最大的优势。实际上,跨平台已经不是 Java 最大的卖点了,各种 JDK 新特性也不是。目前市面上虚拟化技术已经非常成熟,比如你通过 Docker 就很容易实现跨平台了。在我看来,Java 强大的生态才是!JVMJava 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Li._2022java面试需要会的知识点

Elasticsearch的基础概念和配置实战-程序员宅基地

文章浏览阅读3.7k次。作者:禅与计算机程序设计艺术 1.简介Elasticsearch是一个开源分布式搜索及分析引擎,主要面向云计算环境和实时应用场景。在互联网行业中扮演着越来越重要的角色,从而影响到各个领域,包括IT、电子商务、金融、搜索等。本文将以实战的方式,带领读者了解Elastic Stack(El

Python入门实战:Python的人工智能应用-程序员宅基地

文章浏览阅读11次。1.背景介绍Python是一种高级、通用、解释型的编程语言,它具有简单易学、高效开发、可读性强等优点,因此在各个领域得到了广泛应用。在人工智能领域,Python也是最受欢迎的编程语言之一。Python的人工智能库和框架丰富,包括NumPy、Pandas、Scikit-learn、TensorFlow、PyTorch等,这些库和框架提供了丰富的功能和强

uni-app 开发微信小程序 自定义tabBar_uniapp iconpath-程序员宅基地

文章浏览阅读1.4k次。uni-app 微信小程序 自定义tabBar 底部导航_uniapp iconpath

推荐文章

热门文章

相关标签